@xwiki/cristal-electron-renderer 1.2.0 → 1.4.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 (269) hide show
  1. package/package.json +19 -19
  2. package/dist/AttachmentPreview-DNQ6Ebkw.css +0 -1
  3. package/dist/AttachmentPreview-Ecn8Pmvf.js +0 -2
  4. package/dist/AttachmentPreview-Ecn8Pmvf.js.map +0 -1
  5. package/dist/AuthServiceBanner-7KaHK0Au.js +0 -2
  6. package/dist/AuthServiceBanner-7KaHK0Au.js.map +0 -1
  7. package/dist/AuthServiceBanner-BArubXdu.css +0 -1
  8. package/dist/DeletePage-DA6E5XYv.js +0 -2
  9. package/dist/DeletePage-DA6E5XYv.js.map +0 -1
  10. package/dist/GitHubLoginMenu-Crh899SM.js +0 -2
  11. package/dist/GitHubLoginMenu-Crh899SM.js.map +0 -1
  12. package/dist/LoggedInMenu-kH3kWMGK.js +0 -2
  13. package/dist/LoggedInMenu-kH3kWMGK.js.map +0 -1
  14. package/dist/LoginMenu-D_c21AxX.js +0 -2
  15. package/dist/LoginMenu-D_c21AxX.js.map +0 -1
  16. package/dist/MovePage-BHS998Jm.css +0 -1
  17. package/dist/MovePage-Du2Z2i7H.js +0 -2
  18. package/dist/MovePage-Du2Z2i7H.js.map +0 -1
  19. package/dist/NextcloudLoginMenu-BTVdL-FM.js +0 -2
  20. package/dist/NextcloudLoginMenu-BTVdL-FM.js.map +0 -1
  21. package/dist/NextcloudLoginMenu-DGCgMCya.css +0 -1
  22. package/dist/RenamePage-CQF0H3Kh.js +0 -2
  23. package/dist/RenamePage-CQF0H3Kh.js.map +0 -1
  24. package/dist/SettingsConfigurations-B9GWI5mw.css +0 -1
  25. package/dist/SettingsConfigurations-Cy7Cfmm4.js +0 -2
  26. package/dist/SettingsConfigurations-Cy7Cfmm4.js.map +0 -1
  27. package/dist/c-config-menu-BGV5XXU8.css +0 -1
  28. package/dist/c-config-menu-C99poXWy.js +0 -2
  29. package/dist/c-config-menu-C99poXWy.js.map +0 -1
  30. package/dist/c-edit-blocknote-ByH5aYGe.js +0 -257
  31. package/dist/c-edit-blocknote-ByH5aYGe.js.map +0 -1
  32. package/dist/c-edit-blocknote-gIdUYHeV.css +0 -1
  33. package/dist/chunk.24ZZSBUF-BmQPh48m.js +0 -89
  34. package/dist/chunk.24ZZSBUF-BmQPh48m.js.map +0 -1
  35. package/dist/chunk.36O46B5H-Cv2poSyf.js +0 -64
  36. package/dist/chunk.36O46B5H-Cv2poSyf.js.map +0 -1
  37. package/dist/chunk.3LWOA5DF-D8Va5Pmw.js +0 -77
  38. package/dist/chunk.3LWOA5DF-D8Va5Pmw.js.map +0 -1
  39. package/dist/chunk.3RPBFEDE-DI7eSlIl.js +0 -2
  40. package/dist/chunk.3RPBFEDE-DI7eSlIl.js.map +0 -1
  41. package/dist/chunk.4TUIT776-BvlNwMXD.js +0 -18
  42. package/dist/chunk.4TUIT776-BvlNwMXD.js.map +0 -1
  43. package/dist/chunk.6CTB5ZDJ-9Su7bEUQ.js +0 -2
  44. package/dist/chunk.6CTB5ZDJ-9Su7bEUQ.js.map +0 -1
  45. package/dist/chunk.7E4JTYWU-Ci99jpyG.js +0 -75
  46. package/dist/chunk.7E4JTYWU-Ci99jpyG.js.map +0 -1
  47. package/dist/chunk.AJ3ENQ5C-zot94vv9.js +0 -2
  48. package/dist/chunk.AJ3ENQ5C-zot94vv9.js.map +0 -1
  49. package/dist/chunk.B4BZKR24-B0iVuGLD.js +0 -2
  50. package/dist/chunk.B4BZKR24-B0iVuGLD.js.map +0 -1
  51. package/dist/chunk.D5YQDJ7X-_UyNui_V.js +0 -2
  52. package/dist/chunk.D5YQDJ7X-_UyNui_V.js.map +0 -1
  53. package/dist/chunk.DFHYNK3F-bS0lNIuO.js +0 -86
  54. package/dist/chunk.DFHYNK3F-bS0lNIuO.js.map +0 -1
  55. package/dist/chunk.GMYPQTFK-BT1AAYXJ.js +0 -2
  56. package/dist/chunk.GMYPQTFK-BT1AAYXJ.js.map +0 -1
  57. package/dist/chunk.J5ZM7LIC-n6gjp3-L.js +0 -244
  58. package/dist/chunk.J5ZM7LIC-n6gjp3-L.js.map +0 -1
  59. package/dist/chunk.JCXLDPQF-BOaK9AtU.js +0 -622
  60. package/dist/chunk.JCXLDPQF-BOaK9AtU.js.map +0 -1
  61. package/dist/chunk.JHOXTQXA-CWkZ1weQ.js +0 -24
  62. package/dist/chunk.JHOXTQXA-CWkZ1weQ.js.map +0 -1
  63. package/dist/chunk.JQBT7BOV-BKSO0Hfn.js +0 -3378
  64. package/dist/chunk.JQBT7BOV-BKSO0Hfn.js.map +0 -1
  65. package/dist/chunk.JXOKFADN-DpK3Q_uU.js +0 -785
  66. package/dist/chunk.JXOKFADN-DpK3Q_uU.js.map +0 -1
  67. package/dist/chunk.KPLQLAWP-DUYDfZ7-.js +0 -163
  68. package/dist/chunk.KPLQLAWP-DUYDfZ7-.js.map +0 -1
  69. package/dist/chunk.LD4M4QGE-cX1_6HT7.js +0 -2
  70. package/dist/chunk.LD4M4QGE-cX1_6HT7.js.map +0 -1
  71. package/dist/chunk.NYIIDP5N-AHr3eTN0.js +0 -2
  72. package/dist/chunk.NYIIDP5N-AHr3eTN0.js.map +0 -1
  73. package/dist/chunk.R45OWEVP-WMyXo-Fn.js +0 -181
  74. package/dist/chunk.R45OWEVP-WMyXo-Fn.js.map +0 -1
  75. package/dist/chunk.RWUUFNUL-BJhNq5wM.js +0 -2
  76. package/dist/chunk.RWUUFNUL-BJhNq5wM.js.map +0 -1
  77. package/dist/chunk.RY756JLP-BUknFjxa.js +0 -22
  78. package/dist/chunk.RY756JLP-BUknFjxa.js.map +0 -1
  79. package/dist/chunk.SI4ACBFK-BB831ml8.js +0 -58
  80. package/dist/chunk.SI4ACBFK-BB831ml8.js.map +0 -1
  81. package/dist/chunk.TRHSUYII-DFnBKJNh.js +0 -140
  82. package/dist/chunk.TRHSUYII-DFnBKJNh.js.map +0 -1
  83. package/dist/chunk.XA43ZQPC-maNlqVLX.js +0 -395
  84. package/dist/chunk.XA43ZQPC-maNlqVLX.js.map +0 -1
  85. package/dist/chunk.XSFJLY2D-ldEKWtxN.js +0 -178
  86. package/dist/chunk.XSFJLY2D-ldEKWtxN.js.map +0 -1
  87. package/dist/chunk.YHLNUJ7P-BGNuPG1R.js +0 -109
  88. package/dist/chunk.YHLNUJ7P-BGNuPG1R.js.map +0 -1
  89. package/dist/chunk.ZGGPD2XJ-DD1S3h7C.js +0 -2
  90. package/dist/chunk.ZGGPD2XJ-DD1S3h7C.js.map +0 -1
  91. package/dist/chunk.ZH2AND3P-CzagA8cz.js +0 -288
  92. package/dist/chunk.ZH2AND3P-CzagA8cz.js.map +0 -1
  93. package/dist/class-map-DmaCJs8c.js +0 -2
  94. package/dist/class-map-DmaCJs8c.js.map +0 -1
  95. package/dist/filesystem-internal-link-serializer-BmtbMUwV.js +0 -2
  96. package/dist/filesystem-internal-link-serializer-BmtbMUwV.js.map +0 -1
  97. package/dist/floating-ui.dom-1S43Ew4Q.js +0 -2
  98. package/dist/floating-ui.dom-1S43Ew4Q.js.map +0 -1
  99. package/dist/github-CRi3Ye_z.js +0 -3
  100. package/dist/github-CRi3Ye_z.js.map +0 -1
  101. package/dist/github-internal-link-serializer-ChUBU16v.js +0 -2
  102. package/dist/github-internal-link-serializer-ChUBU16v.js.map +0 -1
  103. package/dist/hocuspocus-provider.esm-DpwNtHpL.js +0 -2
  104. package/dist/hocuspocus-provider.esm-DpwNtHpL.js.map +0 -1
  105. package/dist/if-defined-O-hFrvt0.js +0 -2
  106. package/dist/if-defined-O-hFrvt0.js.map +0 -1
  107. package/dist/index-B1WxkRNy.js +0 -254
  108. package/dist/index-B1WxkRNy.js.map +0 -1
  109. package/dist/index-BgL5UHSB.css +0 -1
  110. package/dist/index-DWPjg9z3.js +0 -2
  111. package/dist/index-DWPjg9z3.js.map +0 -1
  112. package/dist/index-qhuTooVL.js +0 -3
  113. package/dist/index-qhuTooVL.js.map +0 -1
  114. package/dist/index.html +0 -13
  115. package/dist/live-z5w0O4st.js +0 -2
  116. package/dist/live-z5w0O4st.js.map +0 -1
  117. package/dist/module-RjUF93sV.js +0 -717
  118. package/dist/module-RjUF93sV.js.map +0 -1
  119. package/dist/native-48B9X9Wg.js +0 -2
  120. package/dist/native-48B9X9Wg.js.map +0 -1
  121. package/dist/nextcloud-B3M7otLC.js +0 -31
  122. package/dist/nextcloud-B3M7otLC.js.map +0 -1
  123. package/dist/nextcloud-internal-link-serializer-6Syv5TEU.js +0 -7
  124. package/dist/nextcloud-internal-link-serializer-6Syv5TEU.js.map +0 -1
  125. package/dist/offline-3x82kJQp.js +0 -4
  126. package/dist/offline-3x82kJQp.js.map +0 -1
  127. package/dist/query-x48B6FB_.js +0 -2
  128. package/dist/query-x48B6FB_.js.map +0 -1
  129. package/dist/shoelace-ZF5apisL.js +0 -3
  130. package/dist/shoelace-ZF5apisL.js.map +0 -1
  131. package/dist/static-Dm20cmTz.js +0 -3
  132. package/dist/static-Dm20cmTz.js.map +0 -1
  133. package/dist/staticBuild-BOgweg16.js +0 -2
  134. package/dist/staticBuild-BOgweg16.js.map +0 -1
  135. package/dist/translations-D5nOIu3x.js +0 -2
  136. package/dist/translations-D5nOIu3x.js.map +0 -1
  137. package/dist/translations-Ds9OkLNv.js +0 -2
  138. package/dist/translations-Ds9OkLNv.js.map +0 -1
  139. package/dist/vuetify-BxGNBe1U.js +0 -19
  140. package/dist/vuetify-BxGNBe1U.js.map +0 -1
  141. package/dist/vuetify-DJa-zcj7.css +0 -1
  142. package/dist/worker-BgcG6AhJ.js +0 -202
  143. package/dist/worker-BgcG6AhJ.js.map +0 -1
  144. package/dist/x-alert-BeYgGEHw.js +0 -2
  145. package/dist/x-alert-BeYgGEHw.js.map +0 -1
  146. package/dist/x-alert-BhErtBtU.css +0 -1
  147. package/dist/x-alert-DfYpLdml.css +0 -1
  148. package/dist/x-alert-Dy2REhpp.js +0 -2
  149. package/dist/x-alert-Dy2REhpp.js.map +0 -1
  150. package/dist/x-avatar-2efH4gNX.css +0 -1
  151. package/dist/x-avatar-C4CTlSRd.js +0 -2
  152. package/dist/x-avatar-C4CTlSRd.js.map +0 -1
  153. package/dist/x-avatar-DzYlPdwz.js +0 -2
  154. package/dist/x-avatar-DzYlPdwz.js.map +0 -1
  155. package/dist/x-breadcrumb-3U5TzpgN.js +0 -2
  156. package/dist/x-breadcrumb-3U5TzpgN.js.map +0 -1
  157. package/dist/x-breadcrumb-BMSNlvvi.css +0 -1
  158. package/dist/x-breadcrumb-BYgHeSE3.js +0 -2
  159. package/dist/x-breadcrumb-BYgHeSE3.js.map +0 -1
  160. package/dist/x-btn-9AKb7ryY.js +0 -2
  161. package/dist/x-btn-9AKb7ryY.js.map +0 -1
  162. package/dist/x-btn-CWfGjEgy.js +0 -2
  163. package/dist/x-btn-CWfGjEgy.js.map +0 -1
  164. package/dist/x-btn-DPGq6Sd-.css +0 -1
  165. package/dist/x-btn.vue_vue_type_script_setup_true_lang-D3pg_1oq.js +0 -2
  166. package/dist/x-btn.vue_vue_type_script_setup_true_lang-D3pg_1oq.js.map +0 -1
  167. package/dist/x-card-BiFAsKLZ.js +0 -2
  168. package/dist/x-card-BiFAsKLZ.js.map +0 -1
  169. package/dist/x-card-blonMcP4.js +0 -2
  170. package/dist/x-card-blonMcP4.js.map +0 -1
  171. package/dist/x-checkbox-BoqoQxdA.css +0 -1
  172. package/dist/x-checkbox-CfFCxOCr.js +0 -2
  173. package/dist/x-checkbox-CfFCxOCr.js.map +0 -1
  174. package/dist/x-checkbox-VDSX4CX7.js +0 -2
  175. package/dist/x-checkbox-VDSX4CX7.js.map +0 -1
  176. package/dist/x-col-DsUQg5Gm.js +0 -2
  177. package/dist/x-col-DsUQg5Gm.js.map +0 -1
  178. package/dist/x-container-B1osS5wH.js +0 -2
  179. package/dist/x-container-B1osS5wH.js.map +0 -1
  180. package/dist/x-dialog-Bk9LE0HR.css +0 -1
  181. package/dist/x-dialog-Cwb1fieH.js +0 -2
  182. package/dist/x-dialog-Cwb1fieH.js.map +0 -1
  183. package/dist/x-dialog-VzzVz38L.css +0 -1
  184. package/dist/x-dialog-eOwazoAI.js +0 -2
  185. package/dist/x-dialog-eOwazoAI.js.map +0 -1
  186. package/dist/x-divider-Bf6b5P6D.js +0 -2
  187. package/dist/x-divider-Bf6b5P6D.js.map +0 -1
  188. package/dist/x-divider-D36BIsQM.js +0 -2
  189. package/dist/x-divider-D36BIsQM.js.map +0 -1
  190. package/dist/x-dropdown-CxWpPIwn.css +0 -1
  191. package/dist/x-dropdown-DfwjES9w.js +0 -2
  192. package/dist/x-dropdown-DfwjES9w.js.map +0 -1
  193. package/dist/x-dropdown-GNs7ILlc.css +0 -1
  194. package/dist/x-dropdown-ds5_iBZ4.js +0 -2
  195. package/dist/x-dropdown-ds5_iBZ4.js.map +0 -1
  196. package/dist/x-file-input-B9mfyR4z.js +0 -2
  197. package/dist/x-file-input-B9mfyR4z.js.map +0 -1
  198. package/dist/x-file-input-BSstA5LD.css +0 -1
  199. package/dist/x-file-input-DftepgSQ.js +0 -2
  200. package/dist/x-file-input-DftepgSQ.js.map +0 -1
  201. package/dist/x-form-C5eClK9q.js +0 -2
  202. package/dist/x-form-C5eClK9q.js.map +0 -1
  203. package/dist/x-form-CK24VrXN.css +0 -1
  204. package/dist/x-form-DGUS5Veh.css +0 -1
  205. package/dist/x-form-etxLXE0R.js +0 -2
  206. package/dist/x-form-etxLXE0R.js.map +0 -1
  207. package/dist/x-img-CNPL9bZj.js +0 -2
  208. package/dist/x-img-CNPL9bZj.js.map +0 -1
  209. package/dist/x-img-DYWmHySi.js +0 -2
  210. package/dist/x-img-DYWmHySi.js.map +0 -1
  211. package/dist/x-load-BlPeW_ej.css +0 -1
  212. package/dist/x-load-CM4p-BU2.css +0 -1
  213. package/dist/x-load-CatWwBSt.js +0 -2
  214. package/dist/x-load-CatWwBSt.js.map +0 -1
  215. package/dist/x-load-pklPPw3d.js +0 -2
  216. package/dist/x-load-pklPPw3d.js.map +0 -1
  217. package/dist/x-menu-BmuGyRjl.css +0 -1
  218. package/dist/x-menu-C0JNNHR2.js +0 -2
  219. package/dist/x-menu-C0JNNHR2.js.map +0 -1
  220. package/dist/x-menu-CKBWYMym.js +0 -2
  221. package/dist/x-menu-CKBWYMym.js.map +0 -1
  222. package/dist/x-menu-item-9k48D3Mw.js +0 -2
  223. package/dist/x-menu-item-9k48D3Mw.js.map +0 -1
  224. package/dist/x-menu-item-fSf-cD7q.js +0 -2
  225. package/dist/x-menu-item-fSf-cD7q.js.map +0 -1
  226. package/dist/x-menu-label-BDlCFsFH.js +0 -2
  227. package/dist/x-menu-label-BDlCFsFH.js.map +0 -1
  228. package/dist/x-menu-label-C8o6TwqC.js +0 -2
  229. package/dist/x-menu-label-C8o6TwqC.js.map +0 -1
  230. package/dist/x-menu-label-DhRAj-fk.css +0 -1
  231. package/dist/x-row-DsUQg5Gm.js +0 -2
  232. package/dist/x-row-DsUQg5Gm.js.map +0 -1
  233. package/dist/x-search-C6XAaOXg.js +0 -2
  234. package/dist/x-search-C6XAaOXg.js.map +0 -1
  235. package/dist/x-search-CmWnWxsP.js +0 -2
  236. package/dist/x-search-CmWnWxsP.js.map +0 -1
  237. package/dist/x-select-C8GSGs-Z.js +0 -2
  238. package/dist/x-select-C8GSGs-Z.js.map +0 -1
  239. package/dist/x-select-Da6f14h4.js +0 -2
  240. package/dist/x-select-Da6f14h4.js.map +0 -1
  241. package/dist/x-tab-BDpZS53n.js +0 -2
  242. package/dist/x-tab-BDpZS53n.js.map +0 -1
  243. package/dist/x-tab-DV937RB-.js +0 -2
  244. package/dist/x-tab-DV937RB-.js.map +0 -1
  245. package/dist/x-tab-group-C3YcH4jU.js +0 -2
  246. package/dist/x-tab-group-C3YcH4jU.js.map +0 -1
  247. package/dist/x-tab-group-CT7pAQGH.js +0 -2
  248. package/dist/x-tab-group-CT7pAQGH.js.map +0 -1
  249. package/dist/x-tab-panel--wEPqeL9.js +0 -2
  250. package/dist/x-tab-panel--wEPqeL9.js.map +0 -1
  251. package/dist/x-tab-panel-BV2Axw5I.js +0 -2
  252. package/dist/x-tab-panel-BV2Axw5I.js.map +0 -1
  253. package/dist/x-text-field-B0juKwq0.js +0 -2
  254. package/dist/x-text-field-B0juKwq0.js.map +0 -1
  255. package/dist/x-text-field-CNuOWA3c.js +0 -2
  256. package/dist/x-text-field-CNuOWA3c.js.map +0 -1
  257. package/dist/x-tree-Aj-ivC70.js +0 -2
  258. package/dist/x-tree-Aj-ivC70.js.map +0 -1
  259. package/dist/x-tree-CUnE9yj-.js +0 -2
  260. package/dist/x-tree-CUnE9yj-.js.map +0 -1
  261. package/dist/x-tree-D0WG-8EM.css +0 -1
  262. package/dist/x-tree-OLo4IKf9.css +0 -1
  263. package/dist/xwiki-BeDAdEBl.js +0 -4
  264. package/dist/xwiki-BeDAdEBl.js.map +0 -1
  265. package/dist/xwiki-internal-link-serializer-Cd8xorru-_7nXuj98.js +0 -2
  266. package/dist/xwiki-internal-link-serializer-Cd8xorru-_7nXuj98.js.map +0 -1
  267. package/dist/xwiki-logo-color-DZ9bdNW4.svg +0 -18
  268. package/dist/yjs-VtUl3AlT.js +0 -6
  269. package/dist/yjs-VtUl3AlT.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-BgcG6AhJ.js","sources":["../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/Reflect.js","../../node_modules/.pnpm/@vue+shared@3.5.30/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/.pnpm/@vue+reactivity@3.5.30/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-core@3.5.30/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/.pnpm/@inversifyjs+common@1.5.2/node_modules/@inversifyjs/common/lib/esm/index.js","../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/ReflectLite.js","../../node_modules/.pnpm/@inversifyjs+reflect-metadata-utils@1.4.1_reflect-metadata@0.2.2/node_modules/@inversifyjs/reflect-metadata-utils/lib/esm/index.js","../../node_modules/.pnpm/@inversifyjs+core@9.2.0_reflect-metadata@0.2.2/node_modules/@inversifyjs/core/lib/esm/index.js","../../node_modules/.pnpm/@inversifyjs+plugin@0.2.0/node_modules/@inversifyjs/plugin/lib/esm/index.js","../../node_modules/.pnpm/@inversifyjs+container@1.15.0_reflect-metadata@0.2.2/node_modules/@inversifyjs/container/lib/esm/index.js","../../node_modules/.pnpm/@xwiki+platform-api@18.2.0_inversify@7.11.0_reflect-metadata@0.2.2__reflect-metadata@0._8aa9a0f9d1f4541127bb7939d30d123f/node_modules/@xwiki/platform-api/dist/index.es.js","../../sharedworker/impl/src/components/workerCristalApp.ts","../../sharedworker/impl/src/components/workerQueueWorker.ts","../../node_modules/.pnpm/pinia@3.0.4_typescript@5.9.3_vue@3.5.30_typescript@5.9.3_/node_modules/pinia/dist/pinia.mjs","../../core/alerts/alerts-default/src/defaultAlertsService.ts","../../core/alerts/alerts-default/src/defaultAlertsServiceProvider.ts","../../core/alerts/alerts-default/src/index.ts","../../core/authentication/authentication-default/src/defaultAuthenticationManagerProvider.ts","../../core/authentication/authentication-default/src/index.ts","../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/dist/dexie.min.js","../../node_modules/.pnpm/dexie@4.3.0/node_modules/dexie/import-wrapper-prod.mjs","../../core/backends/backend-dexie/src/dexiePageStorage.ts","../../core/backends/backend-dexie/src/dexieOfflineStorage.ts","../../core/backends/backend-dexie/src/wrappingOfflineStorage.ts","../../core/backends/backend-dexie/src/index.ts","../../core/backends/backend-github/src/GitHubWikiConfig.ts","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/identity.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/visit.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/doc/directives.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/doc/anchors.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/doc/applyReviver.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/toJS.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/Node.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/Alias.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/Scalar.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/doc/createNode.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/Collection.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyComment.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/foldFlowLines.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyString.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringify.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyPair.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/log.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/Pair.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyCollection.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/YAMLMap.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/common/map.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/nodes/YAMLSeq.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/common/seq.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/common/string.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/common/null.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/core/bool.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyNumber.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/core/float.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/core/int.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/core/schema.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/json/schema.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/tags.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/schema/Schema.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/stringify/stringifyDocument.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/doc/Document.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/errors.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-props.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/util-contains-newline.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/util-map-includes.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-block-map.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-block-seq.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-end.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/compose-collection.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/compose-scalar.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/compose-node.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/compose-doc.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/compose/composer.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/parse/cst.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/parse/lexer.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/parse/line-counter.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/parse/parser.js","../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/browser/dist/public-api.js","../../core/page/page-default/src/defaultPageReader.ts","../../core/page/page-default/src/defaultPageWriter.ts","../../node_modules/.pnpm/@xwiki+platform-backend-api@18.2.0_inversify@7.11.0_reflect-metadata@0.2.2__reflect-met_39c61304894660f041534d3fb80bb24b/node_modules/@xwiki/platform-backend-api/dist/index.es.js","../../node_modules/.pnpm/mime@4.1.0/node_modules/mime/dist/types/other.js","../../node_modules/.pnpm/mime@4.1.0/node_modules/mime/dist/types/standard.js","../../node_modules/.pnpm/mime@4.1.0/node_modules/mime/dist/src/Mime.js","../../node_modules/.pnpm/mime@4.1.0/node_modules/mime/dist/src/index.js","../../core/backends/backend-github/src/githubStorage.ts","../../utils/inversify/src/index.ts","../../core/backends/backend-github/src/index.ts","../../core/backends/backend-nextcloud/src/NextcloudWikiConfig.ts","../../node_modules/.pnpm/@xwiki+platform-model-api@18.2.0/node_modules/@xwiki/platform-model-api/dist/index.es.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/util.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/validator.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","../../node_modules/.pnpm/strnum@2.2.1/node_modules/strnum/strnum.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/ignoreAttributes.js","../../node_modules/.pnpm/path-expression-matcher@1.1.3/node_modules/path-expression-matcher/src/Expression.js","../../node_modules/.pnpm/path-expression-matcher@1.1.3/node_modules/path-expression-matcher/src/Matcher.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/node2json.js","../../node_modules/.pnpm/fast-xml-parser@5.5.7/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","../../core/backends/backend-nextcloud/src/nextcloudStorage.ts","../../core/backends/backend-nextcloud/src/index.ts","../../core/backends/backend-xwiki/src/XWikiWikiConfig.ts","../../core/xwiki/xwiki-utils/src/index.ts","../../core/backends/backend-xwiki/src/xwikiStorage.ts","../../core/backends/backend-xwiki/src/index.ts","../../extension-manager/src/components/defaultComponent.ts","../../extension-manager/src/components/defaultExtensionConfig.ts","../../extension-manager/src/components/defaultExtensionManager.ts","../../extension-manager/src/components/componentsInit.ts","../../extension-manager/src/components/cristalLoader.ts","../../node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.mjs","../../sharedworker/impl/src/components/worker.ts"],"sourcesContent":["/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof globalThis === \"object\" ? globalThis :\n typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n sloppyModeThis();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect !== \"undefined\") {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter, root);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n function makeExporter(target, previous) {\n return function (key, value) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n if (previous)\n previous(key, value);\n };\n }\n function functionThis() {\n try {\n return Function(\"return this;\")();\n }\n catch (_) { }\n }\n function indirectEvalThis() {\n try {\n return (void 0, eval)(\"(function() { return this; })()\");\n }\n catch (_) { }\n }\n function sloppyModeThis() {\n return functionThis() || indirectEvalThis();\n }\n })(function (exporter, root) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var _Map = typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n var registrySymbol = supportsSymbol ? Symbol.for(\"@reflect-metadata:registry\") : undefined;\n var metadataRegistry = GetOrCreateMetadataRegistry();\n var metadataProvider = CreateMetadataProvider(metadataRegistry);\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return;\n return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ true);\n provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var provider = GetMetadataProvider(O, P, /*create*/ false);\n if (!provider) {\n return [];\n }\n return provider.OrdinaryOwnMetadataKeys(O, P);\n }\n // 6 ECMAScript Data Types and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n function SameValueZero(x, y) {\n return x === y || x !== x && y !== y;\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // Global metadata registry\n // - Allows `import \"reflect-metadata\"` and `import \"reflect-metadata/no-conflict\"` to interoperate.\n // - Uses isolated metadata if `Reflect` is frozen before the registry can be installed.\n /**\n * Creates a registry used to allow multiple `reflect-metadata` providers.\n */\n function CreateMetadataRegistry() {\n var fallback;\n if (!IsUndefined(registrySymbol) &&\n typeof root.Reflect !== \"undefined\" &&\n !(registrySymbol in root.Reflect) &&\n typeof root.Reflect.defineMetadata === \"function\") {\n // interoperate with older version of `reflect-metadata` that did not support a registry.\n fallback = CreateFallbackProvider(root.Reflect);\n }\n var first;\n var second;\n var rest;\n var targetProviderMap = new _WeakMap();\n var registry = {\n registerProvider: registerProvider,\n getProvider: getProvider,\n setProvider: setProvider,\n };\n return registry;\n function registerProvider(provider) {\n if (!Object.isExtensible(registry)) {\n throw new Error(\"Cannot add provider to a frozen registry.\");\n }\n switch (true) {\n case fallback === provider: break;\n case IsUndefined(first):\n first = provider;\n break;\n case first === provider: break;\n case IsUndefined(second):\n second = provider;\n break;\n case second === provider: break;\n default:\n if (rest === undefined)\n rest = new _Set();\n rest.add(provider);\n break;\n }\n }\n function getProviderNoCache(O, P) {\n if (!IsUndefined(first)) {\n if (first.isProviderFor(O, P))\n return first;\n if (!IsUndefined(second)) {\n if (second.isProviderFor(O, P))\n return first;\n if (!IsUndefined(rest)) {\n var iterator = GetIterator(rest);\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n return undefined;\n }\n var provider = IteratorValue(next);\n if (provider.isProviderFor(O, P)) {\n IteratorClose(iterator);\n return provider;\n }\n }\n }\n }\n }\n if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {\n return fallback;\n }\n return undefined;\n }\n function getProvider(O, P) {\n var providerMap = targetProviderMap.get(O);\n var provider;\n if (!IsUndefined(providerMap)) {\n provider = providerMap.get(P);\n }\n if (!IsUndefined(provider)) {\n return provider;\n }\n provider = getProviderNoCache(O, P);\n if (!IsUndefined(provider)) {\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return provider;\n }\n function hasProvider(provider) {\n if (IsUndefined(provider))\n throw new TypeError();\n return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);\n }\n function setProvider(O, P, provider) {\n if (!hasProvider(provider)) {\n throw new Error(\"Metadata provider not registered.\");\n }\n var existingProvider = getProvider(O, P);\n if (existingProvider !== provider) {\n if (!IsUndefined(existingProvider)) {\n return false;\n }\n var providerMap = targetProviderMap.get(O);\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return true;\n }\n }\n /**\n * Gets or creates the shared registry of metadata providers.\n */\n function GetOrCreateMetadataRegistry() {\n var metadataRegistry;\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n metadataRegistry = root.Reflect[registrySymbol];\n }\n if (IsUndefined(metadataRegistry)) {\n metadataRegistry = CreateMetadataRegistry();\n }\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n Object.defineProperty(root.Reflect, registrySymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: metadataRegistry\n });\n }\n return metadataRegistry;\n }\n function CreateMetadataProvider(registry) {\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var metadata = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var targetMetadata = metadata.get(O);\n if (IsUndefined(targetMetadata))\n return false;\n return targetMetadata.has(P);\n },\n OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata,\n OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata,\n OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata,\n OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys,\n OrdinaryDeleteMetadata: OrdinaryDeleteMetadata,\n };\n metadataRegistry.registerProvider(provider);\n return provider;\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = metadata.get(O);\n var createdTargetMetadata = false;\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n metadata.set(O, targetMetadata);\n createdTargetMetadata = true;\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n if (!registry.setProvider(O, P, provider)) {\n targetMetadata.delete(P);\n if (createdTargetMetadata) {\n metadata.delete(O);\n }\n throw new Error(\"Wrong provider for target.\");\n }\n }\n return metadataMap;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n function OrdinaryDeleteMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(MetadataKey))\n return false;\n if (metadataMap.size === 0) {\n var targetMetadata = metadata.get(O);\n if (!IsUndefined(targetMetadata)) {\n targetMetadata.delete(P);\n if (targetMetadata.size === 0) {\n metadata.delete(targetMetadata);\n }\n }\n }\n return true;\n }\n }\n function CreateFallbackProvider(reflect) {\n var defineMetadata = reflect.defineMetadata, hasOwnMetadata = reflect.hasOwnMetadata, getOwnMetadata = reflect.getOwnMetadata, getOwnMetadataKeys = reflect.getOwnMetadataKeys, deleteMetadata = reflect.deleteMetadata;\n var metadataOwner = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var metadataPropertySet = metadataOwner.get(O);\n if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {\n return true;\n }\n if (getOwnMetadataKeys(O, P).length) {\n if (IsUndefined(metadataPropertySet)) {\n metadataPropertySet = new _Set();\n metadataOwner.set(O, metadataPropertySet);\n }\n metadataPropertySet.add(P);\n return true;\n }\n return false;\n },\n OrdinaryDefineOwnMetadata: defineMetadata,\n OrdinaryHasOwnMetadata: hasOwnMetadata,\n OrdinaryGetOwnMetadata: getOwnMetadata,\n OrdinaryOwnMetadataKeys: getOwnMetadataKeys,\n OrdinaryDeleteMetadata: deleteMetadata,\n };\n return provider;\n }\n /**\n * Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation,\n * then this module's metadata provider is assigned to the object.\n */\n function GetMetadataProvider(O, P, Create) {\n var registeredProvider = metadataRegistry.getProvider(O, P);\n if (!IsUndefined(registeredProvider)) {\n return registeredProvider;\n }\n if (Create) {\n if (metadataRegistry.setProvider(O, P, metadataProvider)) {\n return metadataProvider;\n }\n throw new Error(\"Illegal state.\");\n }\n return undefined;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n var Map = /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (SameValueZero(key, this._cacheKey)) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (!SameValueZero(this._cacheKey, key)) {\n this._cacheIndex = -1;\n for (var i = 0; i < this._keys.length; i++) {\n if (SameValueZero(this._keys[i], key)) {\n this._cacheIndex = i;\n break;\n }\n }\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n return Map;\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n var Set = /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.keys(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n return Set;\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n var array = new Uint8Array(size);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(array);\n }\n else if (typeof msCrypto !== \"undefined\") {\n msCrypto.getRandomValues(array);\n }\n else {\n FillRandomBytes(array, size);\n }\n return array;\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n","/**\n* @vue/shared v3.5.30\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.30\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.__v_skip = true;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n activeEffectScope = this.prevScope;\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || !isIntegerKey(String(_key))) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.30\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n n2.el.__isMounted = false;\n queuePostRenderEffect(() => {\n mountToTarget();\n delete n2.el.__isMounted;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, props, type }\n }, key) {\n let cssModules;\n return !!(accessCache[key] || __VUE_OPTIONS_API__ && data !== EMPTY_OBJ && key[0] !== \"$\" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext(\"useSlots\").slots;\n}\nfunction useAttrs() {\n return getContext(\"useAttrs\").attrs;\n}\nfunction getContext(calledFunctionName) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`${calledFunctionName}() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (isArray(a) && isArray(b)) return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n const inSSRSetup = isInSSRComponentSetup;\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (inSSRSetup) {\n setInSSRSetupState(false);\n }\n const restore = () => {\n setCurrentInstance(ctx);\n if (inSSRSetup) {\n setInSSRSetupState(true);\n }\n };\n const cleanup = () => {\n if (getCurrentInstance() !== ctx) ctx.scope.off();\n unsetCurrentInstance();\n if (inSSRSetup) {\n setInSSRSetupState(false);\n }\n };\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n restore();\n Promise.resolve().then(() => Promise.resolve().then(cleanup));\n throw e;\n });\n }\n return [\n awaitable,\n () => {\n restore();\n Promise.resolve().then(cleanup);\n }\n ];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val,\n enumerable: true\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.el = null;\n render(cloned, rootContainer, namespace);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n if (hasOwn(context.provides, key)) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n } else {\n warn$1(\n `App already provides property with key \"${String(key)}\" inherited from its parent element. It will be overwritten with the new value.`\n );\n }\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n const camelizedName = camelize(name);\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][camelizedName]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const hyphenatedName = hyphenate(name);\n const modifiers = getModelModifiers(props, camelizedName);\n const res = customRef((track, trigger) => {\n let localValue;\n let prevSetValue = EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[camelizedName];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nconst mixinEmitsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinEmitsCache : appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction hasPropValueChanged(nextProps, prevProps, key) {\n const nextProp = nextProps[key];\n const prevProp = prevProps[key];\n if (key === \"style\" && isObject(nextProp) && isObject(prevProp)) {\n return !looseEqual(nextProp, prevProp);\n }\n return nextProp !== prevProp;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !camelizePropsKey.includes(key)\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key === \"_\" || key === \"_ctx\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || !isInternalKey(key)) {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;\n perf.mark(endTag);\n perf.measure(measureName, startTag, endTag);\n perf.clearMeasures(measureName);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n } else if (ref == null && n1 && n1.ref != null) {\n setRef(n1.ref, null, parentSuspense, n1, true);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n const customElement = n1.el && n1.el._isVueCE ? n1.el : null;\n try {\n if (customElement) {\n customElement._beginPatch();\n }\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } finally {\n if (customElement) {\n customElement._endPatch();\n }\n }\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n initialVNode.placeholder = placeholder.el;\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce && root.ce._hasShadowRoot()) {\n root.ce._injectChildStyle(\n type,\n instance.parent ? instance.parent.type : void 0\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n queuePostRenderEffect(() => {\n if (!instance.isUnmounted) update();\n }, parentSuspense);\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchorVNode = c2[nextIndex + 1];\n const anchor = nextIndex + 1 < l2 ? (\n // #13559, #14173 fallback to el placeholder for unresolved async component\n anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)\n ) : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => {\n if (vnode.ctx.isUnmounted) {\n hostRemove(el);\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const performLeave = () => {\n if (el._isLeaving) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n pauseTracking();\n setRef(ref, null, parentSuspense, vnode, true);\n resetTracking();\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n let instance;\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n instance = container._vnode.component;\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs(instance);\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= -33;\n job.flags &= -5;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n if (c2.patchFlag === -1) {\n c2 = ch2[i] = cloneIfMounted(c2);\n }\n c2.el = c1.el;\n }\n if (c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n c2.el && (c2.el.__vnode = c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\nfunction resolveAsyncComponentPlaceholder(anchorVnode) {\n if (anchorVnode.placeholder) {\n return anchorVnode.placeholder;\n }\n const instance = anchorVnode.component;\n if (instance) {\n return resolveAsyncComponentPlaceholder(instance.subTree);\n }\n return null;\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(pendingBranch, newBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2,\n isInFallback\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n if (isInFallback && vnode2.ssFallback) {\n vnode2.ssFallback.el = null;\n }\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) === container2) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n if (!delayEnter && isInFallback && vnode2.ssFallback) {\n queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense);\n }\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n vnode2.placeholder = null;\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = /* @__PURE__ */ Symbol.for(\"v-fgt\");\nconst Text = /* @__PURE__ */ Symbol.for(\"v-txt\");\nconst Comment = /* @__PURE__ */ Symbol.for(\"v-cmt\");\nconst Static = /* @__PURE__ */ Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock && inVOnce) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= -257;\n n2.shapeFlag &= -513;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n placeholder: vnode.placeholder,\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized || isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n pauseTracking();\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n const isAsyncSetup = isPromise(setupResult);\n resetTracking();\n reset();\n if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n markAsyncBoundary(instance);\n }\n if (isAsyncSetup) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = formatComponentName(instance, Component);\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])\\w/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(\n instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n try {\n setBlockTracking(-1);\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n } finally {\n setBlockTracking(1);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n pauseTracking();\n const value = obj.value;\n resetTracking();\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.30\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","function e(e){return(\"object\"==typeof e&&null!==e||\"function\"==typeof e)&&\"function\"==typeof e.then}function t(e){switch(typeof e){case\"string\":case\"symbol\":return e.toString();case\"function\":return e.name;default:throw new Error(`Unexpected ${typeof e} service id type`)}}const n=Symbol.for(\"@inversifyjs/common/islazyServiceIdentifier\");class r{[n];#e;constructor(e){this.#e=e,this[n]=!0}static is(e){return\"object\"==typeof e&&null!==e&&!0===e[n]}unwrap(){return this.#e()}}export{r as LazyServiceIdentifier,e as isPromise,t as stringifyServiceIdentifier};\n//# sourceMappingURL=index.js.map\n","/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof globalThis === \"object\" ? globalThis :\n typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n sloppyModeThis();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect !== \"undefined\") {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter, root);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n function makeExporter(target, previous) {\n return function (key, value) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n if (previous)\n previous(key, value);\n };\n }\n function sloppyModeThis() {\n throw new ReferenceError(\"globalThis could not be found. Please polyfill globalThis before loading this module.\");\n }\n })(function (exporter, root) {\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : fail(\"Symbol.toPrimitive not found.\");\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : fail(\"Symbol.iterator not found.\");\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var _Map = typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : fail(\"A valid Map constructor could not be found.\");\n var _Set = typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : fail(\"A valid Set constructor could not be found.\");\n var _WeakMap = typeof WeakMap === \"function\" ? WeakMap : fail(\"A valid WeakMap constructor could not be found.\");\n var registrySymbol = supportsSymbol ? Symbol.for(\"@reflect-metadata:registry\") : undefined;\n var metadataRegistry = GetOrCreateMetadataRegistry();\n var metadataProvider = CreateMetadataProvider(metadataRegistry);\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return;\n return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ true);\n provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var provider = GetMetadataProvider(O, P, /*create*/ false);\n if (!provider) {\n return [];\n }\n return provider.OrdinaryOwnMetadataKeys(O, P);\n }\n // 6 ECMAScript Data Types and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n function fail(e) {\n throw e;\n }\n // Global metadata registry\n // - Allows `import \"reflect-metadata\"` and `import \"reflect-metadata/no-conflict\"` to interoperate.\n // - Uses isolated metadata if `Reflect` is frozen before the registry can be installed.\n /**\n * Creates a registry used to allow multiple `reflect-metadata` providers.\n */\n function CreateMetadataRegistry() {\n var fallback;\n if (!IsUndefined(registrySymbol) &&\n typeof root.Reflect !== \"undefined\" &&\n !(registrySymbol in root.Reflect) &&\n typeof root.Reflect.defineMetadata === \"function\") {\n // interoperate with older version of `reflect-metadata` that did not support a registry.\n fallback = CreateFallbackProvider(root.Reflect);\n }\n var first;\n var second;\n var rest;\n var targetProviderMap = new _WeakMap();\n var registry = {\n registerProvider: registerProvider,\n getProvider: getProvider,\n setProvider: setProvider,\n };\n return registry;\n function registerProvider(provider) {\n if (!Object.isExtensible(registry)) {\n throw new Error(\"Cannot add provider to a frozen registry.\");\n }\n switch (true) {\n case fallback === provider: break;\n case IsUndefined(first):\n first = provider;\n break;\n case first === provider: break;\n case IsUndefined(second):\n second = provider;\n break;\n case second === provider: break;\n default:\n if (rest === undefined)\n rest = new _Set();\n rest.add(provider);\n break;\n }\n }\n function getProviderNoCache(O, P) {\n if (!IsUndefined(first)) {\n if (first.isProviderFor(O, P))\n return first;\n if (!IsUndefined(second)) {\n if (second.isProviderFor(O, P))\n return first;\n if (!IsUndefined(rest)) {\n var iterator = GetIterator(rest);\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n return undefined;\n }\n var provider = IteratorValue(next);\n if (provider.isProviderFor(O, P)) {\n IteratorClose(iterator);\n return provider;\n }\n }\n }\n }\n }\n if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {\n return fallback;\n }\n return undefined;\n }\n function getProvider(O, P) {\n var providerMap = targetProviderMap.get(O);\n var provider;\n if (!IsUndefined(providerMap)) {\n provider = providerMap.get(P);\n }\n if (!IsUndefined(provider)) {\n return provider;\n }\n provider = getProviderNoCache(O, P);\n if (!IsUndefined(provider)) {\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return provider;\n }\n function hasProvider(provider) {\n if (IsUndefined(provider))\n throw new TypeError();\n return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);\n }\n function setProvider(O, P, provider) {\n if (!hasProvider(provider)) {\n throw new Error(\"Metadata provider not registered.\");\n }\n var existingProvider = getProvider(O, P);\n if (existingProvider !== provider) {\n if (!IsUndefined(existingProvider)) {\n return false;\n }\n var providerMap = targetProviderMap.get(O);\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return true;\n }\n }\n /**\n * Gets or creates the shared registry of metadata providers.\n */\n function GetOrCreateMetadataRegistry() {\n var metadataRegistry;\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n metadataRegistry = root.Reflect[registrySymbol];\n }\n if (IsUndefined(metadataRegistry)) {\n metadataRegistry = CreateMetadataRegistry();\n }\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n Object.defineProperty(root.Reflect, registrySymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: metadataRegistry\n });\n }\n return metadataRegistry;\n }\n function CreateMetadataProvider(registry) {\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var metadata = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var targetMetadata = metadata.get(O);\n if (IsUndefined(targetMetadata))\n return false;\n return targetMetadata.has(P);\n },\n OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata,\n OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata,\n OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata,\n OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys,\n OrdinaryDeleteMetadata: OrdinaryDeleteMetadata,\n };\n metadataRegistry.registerProvider(provider);\n return provider;\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = metadata.get(O);\n var createdTargetMetadata = false;\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n metadata.set(O, targetMetadata);\n createdTargetMetadata = true;\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n if (!registry.setProvider(O, P, provider)) {\n targetMetadata.delete(P);\n if (createdTargetMetadata) {\n metadata.delete(O);\n }\n throw new Error(\"Wrong provider for target.\");\n }\n }\n return metadataMap;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n function OrdinaryDeleteMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(MetadataKey))\n return false;\n if (metadataMap.size === 0) {\n var targetMetadata = metadata.get(O);\n if (!IsUndefined(targetMetadata)) {\n targetMetadata.delete(P);\n if (targetMetadata.size === 0) {\n metadata.delete(targetMetadata);\n }\n }\n }\n return true;\n }\n }\n function CreateFallbackProvider(reflect) {\n var defineMetadata = reflect.defineMetadata, hasOwnMetadata = reflect.hasOwnMetadata, getOwnMetadata = reflect.getOwnMetadata, getOwnMetadataKeys = reflect.getOwnMetadataKeys, deleteMetadata = reflect.deleteMetadata;\n var metadataOwner = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var metadataPropertySet = metadataOwner.get(O);\n if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {\n return true;\n }\n if (getOwnMetadataKeys(O, P).length) {\n if (IsUndefined(metadataPropertySet)) {\n metadataPropertySet = new _Set();\n metadataOwner.set(O, metadataPropertySet);\n }\n metadataPropertySet.add(P);\n return true;\n }\n return false;\n },\n OrdinaryDefineOwnMetadata: defineMetadata,\n OrdinaryHasOwnMetadata: hasOwnMetadata,\n OrdinaryGetOwnMetadata: getOwnMetadata,\n OrdinaryOwnMetadataKeys: getOwnMetadataKeys,\n OrdinaryDeleteMetadata: deleteMetadata,\n };\n return provider;\n }\n /**\n * Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation,\n * then this module's metadata provider is assigned to the object.\n */\n function GetMetadataProvider(O, P, Create) {\n var registeredProvider = metadataRegistry.getProvider(O, P);\n if (!IsUndefined(registeredProvider)) {\n return registeredProvider;\n }\n if (Create) {\n if (metadataRegistry.setProvider(O, P, metadataProvider)) {\n return metadataProvider;\n }\n throw new Error(\"Illegal state.\");\n }\n return undefined;\n }\n });\n})(Reflect || (Reflect = {}));\n","function t(t){return n=>(n.push(...t),n)}function n(t){return n=>(n.push(t),n)}function e(t,n){return e=>(e[n]=t,e)}function u(){return[]}function f(){return new Map}function r(){return new Set}function c(t,n,e){return Reflect.getOwnMetadata(n,t,e)}function o(t,n,e){return Reflect.getMetadata(n,t,e)}function a(t,n,e,u){Reflect.defineMetadata(n,e,t,u)}function i(t,n,e,u,f){const r=u(c(t,n,f)??e());Reflect.defineMetadata(n,r,t,f)}function d(t,n,e,u,f){const r=u(o(t,n,f)??e());Reflect.defineMetadata(n,r,t,f)}function M(t){return n=>{for(const e of t)n.add(e);return n}}export{t as buildArrayMetadataWithArray,n as buildArrayMetadataWithElement,e as buildArrayMetadataWithIndex,u as buildEmptyArrayMetadata,f as buildEmptyMapMetadata,r as buildEmptySetMetadata,c as getOwnReflectMetadata,o as getReflectMetadata,a as setReflectMetadata,i as updateOwnReflectMetadata,d as updateReflectMetadata,M as updateSetMetadataWithList};\n//# sourceMappingURL=index.js.map\n","import{getOwnReflectMetadata as e,setReflectMetadata as t,updateOwnReflectMetadata as n}from\"@inversifyjs/reflect-metadata-utils\";import{getBaseType as i}from\"@inversifyjs/prototype-utils\";import{stringifyServiceIdentifier as o,LazyServiceIdentifier as r,isPromise as s}from\"@inversifyjs/common\";const a=\"@inversifyjs/container/bindingId\";function c(){const i=e(Object,a)??0;return i===Number.MAX_SAFE_INTEGER?t(Object,a,Number.MIN_SAFE_INTEGER):n(Object,a,()=>i,e=>e+1),i}const d={Request:\"Request\",Singleton:\"Singleton\",Transient:\"Transient\"},u={ConstantValue:\"ConstantValue\",DynamicValue:\"DynamicValue\",Factory:\"Factory\",Instance:\"Instance\",Provider:\"Provider\",ResolvedValue:\"ResolvedValue\",ServiceRedirection:\"ServiceRedirection\"};function*l(...e){for(const t of e)yield*t}class p{#e;#t;#n;constructor(e){this.#e=new Map,this.#t={};for(const t of Reflect.ownKeys(e))this.#t[t]=new Map;this.#n=e}add(e,t){this.#i(e).push(t);for(const n of Reflect.ownKeys(t))this.#o(n,t[n]).push(e)}clone(){const e=this.#r(),t=this.#s(),n=Reflect.ownKeys(this.#n),i=this._buildNewInstance(this.#n);this.#a(this.#e,i.#e,e,t);for(const t of n)this.#c(this.#t[t],i.#t[t],e);return i}get(e,t){return this.#t[e].get(t)}getAllKeys(e){return this.#t[e].keys()}removeByRelation(e,t){const n=this.get(e,t);if(void 0===n)return;const i=new Set(n);for(const n of i){const i=this.#e.get(n);if(void 0===i)throw new Error(\"Expecting model relation, none found\");for(const o of i)o[e]===t&&this.#d(n,o);this.#e.delete(n)}}_buildNewInstance(e){return new p(e)}_cloneModel(e){return e}_cloneRelation(e){return e}#r(){const e=new Map;for(const t of this.#e.keys()){const n=this._cloneModel(t);e.set(t,n)}return e}#s(){const e=new Map;for(const t of this.#e.values())for(const n of t){const t=this._cloneRelation(n);e.set(n,t)}return e}#i(e){let t=this.#e.get(e);return void 0===t&&(t=[],this.#e.set(e,t)),t}#o(e,t){let n=this.#t[e].get(t);return void 0===n&&(n=[],this.#t[e].set(t,n)),n}#u(e,t){const n=t.get(e);if(void 0===n)throw new Error(\"Expecting model to be cloned, none found\");return n}#l(e,t){const n=t.get(e);if(void 0===n)throw new Error(\"Expecting relation to be cloned, none found\");return n}#c(e,t,n){for(const[i,o]of e){const e=new Array;for(const t of o)e.push(this.#u(t,n));t.set(i,e)}}#a(e,t,n,i){for(const[o,r]of e){const e=new Array;for(const t of r)e.push(this.#l(t,i));t.set(this.#u(o,n),e)}}#d(e,t){for(const n of Reflect.ownKeys(t))this.#p(e,n,t[n])}#p(e,t,n){const i=this.#t[t].get(n);if(void 0!==i){const o=i.indexOf(e);-1!==o&&i.splice(o,1),0===i.length&&this.#t[t].delete(n)}}}var f;!function(e){e.moduleId=\"moduleId\",e.serviceId=\"serviceId\"}(f||(f={}));class v{#f;#v;constructor(e,t){this.#f=t??new p({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#v=e}static build(e){return new v(e)}add(e,t){this.#f.add(e,t)}clone(){return new v(this.#v,this.#f.clone())}get(e){const t=[],n=this.#f.get(f.serviceId,e);void 0!==n&&t.push(n);const i=this.#v()?.get(e);if(void 0!==i&&t.push(i),0!==t.length)return l(...t)}removeAllByModuleId(e){this.#f.removeByRelation(f.moduleId,e)}removeAllByServiceId(e){this.#f.removeByRelation(f.serviceId,e)}}const h=\"@inversifyjs/core/classMetadataReflectKey\";function g(){return{constructorArguments:[],lifecycle:{postConstructMethodNames:new Set,preDestroyMethodNames:new Set},properties:new Map,scope:void 0}}const m=\"@inversifyjs/core/pendingClassMetadataCountReflectKey\";const y=Symbol.for(\"@inversifyjs/core/InversifyCoreError\");class M extends Error{[y];kind;constructor(e,t,n){super(t,n),this[y]=!0,this.kind=e}static is(e){return\"object\"==typeof e&&null!==e&&!0===e[y]}static isErrorOfKind(e,t){return M.is(e)&&e.kind===t}}var I,b,w,C,S;function N(t){const n=e(t,h)??g();if(!function(t){const n=e(t,m);return void 0!==n&&0!==n}(t))return function(e,t){const n=[];if(t.length<e.length)throw new M(I.missingInjectionDecorator,`Found unexpected missing metadata on type \"${e.name}\". \"${e.name}\" constructor requires at least ${e.length.toString()} arguments, found ${t.length.toString()} instead.\\nAre you using @inject, @multiInject or @unmanaged decorators in every non optional constructor argument?\\n\\nIf you're using typescript and want to rely on auto injection, set \"emitDecoratorMetadata\" compiler option to true`);for(let e=0;e<t.length;++e)void 0===t[e]&&n.push(e);if(n.length>0)throw new M(I.missingInjectionDecorator,`Found unexpected missing metadata on type \"${e.name}\" at constructor indexes \"${n.join('\", \"')}\".\\n\\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\\n\\nIf you're using typescript and want to rely on auto injection, set \"emitDecoratorMetadata\" compiler option to true`)}(t,n.constructorArguments),n;!function(e,t){const n=[];for(let i=0;i<t.constructorArguments.length;++i){const o=t.constructorArguments[i];void 0!==o&&o.kind!==b.unknown||n.push(` - Missing or incomplete metadata for type \"${e.name}\" at constructor argument with index ${i.toString()}.\\nEvery constructor parameter must be decorated either with @inject, @multiInject or @unmanaged decorator.`)}for(const[i,o]of t.properties)o.kind===b.unknown&&n.push(` - Missing or incomplete metadata for type \"${e.name}\" at property \"${i.toString()}\".\\nThis property must be decorated either with @inject or @multiInject decorator.`);if(0===n.length)throw new M(I.unknown,`Unexpected class metadata for type \"${e.name}\" with uncompletion traces.\\nThis might be caused by one of the following reasons:\\n\\n1. A third party library is targeting inversify reflection metadata.\\n2. A bug is causing the issue. Consider submiting an issue to fix it.`);throw new M(I.missingInjectionDecorator,`Invalid class metadata at type ${e.name}:\\n\\n${n.join(\"\\n\\n\")}`)}(t,n)}function P(e,t){const n=N(t).scope??e.scope;return{cache:{isRight:!1,value:void 0},id:c(),implementationType:t,isSatisfiedBy:()=>!0,moduleId:void 0,onActivation:void 0,onDeactivation:void 0,scope:n,serviceIdentifier:t,type:u.Instance}}function A(e){return e.isRight?{isRight:!0,value:e.value}:e}function x(e){switch(e.type){case u.ConstantValue:case u.DynamicValue:return function(e){return{cache:A(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type,value:e.value}}(e);case u.Factory:return function(e){return{cache:A(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case u.Instance:return function(e){return{cache:A(e.cache),id:e.id,implementationType:e.implementationType,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case u.Provider:return function(e){return{cache:A(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,provider:e.provider,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case u.ResolvedValue:return function(e){return{cache:A(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,metadata:e.metadata,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case u.ServiceRedirection:return function(e){return{id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,serviceIdentifier:e.serviceIdentifier,targetServiceIdentifier:e.targetServiceIdentifier,type:e.type}}(e)}}!function(e){e[e.injectionDecoratorConflict=0]=\"injectionDecoratorConflict\",e[e.missingInjectionDecorator=1]=\"missingInjectionDecorator\",e[e.planning=2]=\"planning\",e[e.resolution=3]=\"resolution\",e[e.unknown=4]=\"unknown\"}(I||(I={})),function(e){e[e.unknown=32]=\"unknown\"}(b||(b={})),function(e){e.id=\"id\",e.moduleId=\"moduleId\",e.serviceId=\"serviceId\"}(w||(w={}));class R extends p{_buildNewInstance(e){return new R(e)}_cloneModel(e){return x(e)}}class T{#h;#g;#v;constructor(e,t,n){this.#g=n??new R({id:{isOptional:!1},moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#v=e,this.#h=t}static build(e,t){return new T(e,t)}clone(){return new T(this.#v,this.#h,this.#g.clone())}get(e){const t=this.getNonParentBindings(e)??this.#v()?.get(e);if(void 0!==t)return t;const n=this.#m(e);return void 0===n?n:[n]}*getChained(e){const t=this.getNonParentBindings(e);void 0!==t&&(yield*t);const n=this.#v();if(void 0===n){if(void 0===t){const t=this.#m(e);void 0!==t&&(yield t)}}else yield*n.getChained(e)}getBoundServices(){const e=new Set(this.#g.getAllKeys(w.serviceId)),t=this.#v();if(void 0!==t)for(const n of t.getBoundServices())e.add(n);return e}getById(e){return this.#g.get(w.id,e)??this.#v()?.getById(e)}getByModuleId(e){return this.#g.get(w.moduleId,e)??this.#v()?.getByModuleId(e)}getNonParentBindings(e){return this.#g.get(w.serviceId,e)}getNonParentBoundServices(){return this.#g.getAllKeys(w.serviceId)}removeById(e){this.#g.removeByRelation(w.id,e)}removeAllByModuleId(e){this.#g.removeByRelation(w.moduleId,e)}removeAllByServiceId(e){this.#g.removeByRelation(w.serviceId,e)}set(e){const t={[w.id]:e.id,[w.serviceId]:e.serviceIdentifier};void 0!==e.moduleId&&(t[w.moduleId]=e.moduleId),this.#g.add(e,t)}#m(e){if(void 0===this.#h||\"function\"!=typeof e)return;const t=P(this.#h,e);return this.set(t),t}}!function(e){e.moduleId=\"moduleId\",e.serviceId=\"serviceId\"}(C||(C={}));class j{#y;#v;constructor(e,t){this.#y=t??new p({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#v=e}static build(e){return new j(e)}add(e,t){this.#y.add(e,t)}clone(){return new j(this.#v,this.#y.clone())}get(e){const t=[],n=this.#y.get(C.serviceId,e);void 0!==n&&t.push(n);const i=this.#v()?.get(e);if(void 0!==i&&t.push(i),0!==t.length)return l(...t)}removeAllByModuleId(e){this.#y.removeByRelation(C.moduleId,e)}removeAllByServiceId(e){this.#y.removeByRelation(C.serviceId,e)}}function B(e,t,n,i){const o=Array.isArray(e)?e:[e];if(void 0!==n)if(\"number\"!=typeof n)if(void 0!==i)for(const e of o)e(t,n,i);else Reflect.decorate(o,t.prototype,n);else for(const e of o)e(t,void 0,n);else Reflect.decorate(o,t)}function F(){return 0}function k(e){return t=>{void 0!==t&&t.kind===b.unknown&&n(e,m,F,e=>e-1)}}function $(e,t){return(...n)=>i=>{if(void 0===i)return e(...n);if(i.kind===S.unmanaged)throw new M(I.injectionDecoratorConflict,\"Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found\");return t(i,...n)}}function D(e){if(e.kind!==b.unknown&&!0!==e.isFromTypescriptParamType)throw new M(I.injectionDecoratorConflict,\"Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found\")}!function(e){e[e.multipleInjection=0]=\"multipleInjection\",e[e.singleInjection=1]=\"singleInjection\",e[e.unmanaged=2]=\"unmanaged\"}(S||(S={}));const V=$(function(e,t,n){return e===S.multipleInjection?{chained:n?.chained??!1,kind:e,name:void 0,optional:!1,tags:new Map,value:t}:{kind:e,name:void 0,optional:!1,tags:new Map,value:t}},function(e,t,n,i){return D(e),t===S.multipleInjection?{...e,chained:i?.chained??!1,kind:t,value:n}:{...e,kind:t,value:n}});function O(e,t){return n=>{const i=n.properties.get(t);return n.properties.set(t,e(i)),n}}var E;function _(e,t,n,i){if(M.isErrorOfKind(i,I.injectionDecoratorConflict)){const o=function(e,t,n){if(void 0===n){if(void 0===t)throw new M(I.unknown,\"Unexpected undefined property and index values\");return{kind:E.property,property:t,targetClass:e.constructor}}return\"number\"==typeof n?{index:n,kind:E.parameter,targetClass:e}:{kind:E.method,method:t,targetClass:e}}(e,t,n);throw new M(I.injectionDecoratorConflict,`Unexpected injection error.\\n\\nCause:\\n\\n${i.message}\\n\\nDetails\\n\\n${function(e){switch(e.kind){case E.method:return`[class: \"${e.targetClass.name}\", method: \"${e.method.toString()}\"]`;case E.parameter:return`[class: \"${e.targetClass.name}\", index: \"${e.index.toString()}\"]`;case E.property:return`[class: \"${e.targetClass.name}\", property: \"${e.property.toString()}\"]`}}(o)}`,{cause:i})}throw i}function z(e,t){return(i,o,r)=>{try{void 0===r?function(e,t){const i=L(e,t);return(e,t)=>{n(e.constructor,h,g,O(i(e),t))}}(e,t)(i,o):\"number\"==typeof r?function(e,t){const i=L(e,t);return(e,t,o)=>{if(!function(e,t){return\"function\"==typeof e&&void 0===t}(e,t))throw new M(I.injectionDecoratorConflict,`Found an @inject decorator in a non constructor parameter.\\nFound @inject decorator at method \"${t?.toString()??\"\"}\" at class \"${e.constructor.name}\"`);n(e,h,g,function(e,t){return n=>{const i=n.constructorArguments[t];return n.constructorArguments[t]=e(i),n}}(i(e),o))}}(e,t)(i,o,r):function(e,t){const i=L(e,t);return(e,t,o)=>{if(!function(e){return void 0!==e.set}(o))throw new M(I.injectionDecoratorConflict,`Found an @inject decorator in a non setter property method.\\nFound @inject decorator at method \"${t.toString()}\" at class \"${e.constructor.name}\"`);n(e.constructor,h,g,O(i(e),t))}}(e,t)(i,o,r)}catch(e){_(i,o,r,e)}}}function L(e,t){return n=>{const i=t(n);return t=>(i(t),e(t))}}function U(e){return z(V(S.singleInjection,e),k)}!function(e){e[e.method=0]=\"method\",e[e.parameter=1]=\"parameter\",e[e.property=2]=\"property\"}(E||(E={}));const K=\"@inversifyjs/core/classIsInjectableFlagReflectKey\";const q=[Array,BigInt,Boolean,Function,Number,Object,String];function G(t){const i=e(t,\"design:paramtypes\");void 0!==i&&n(t,h,g,function(e){return t=>(e.forEach((e,n)=>{var i;void 0!==t.constructorArguments[n]||(i=e,q.includes(i))||(t.constructorArguments[n]=function(e){return{isFromTypescriptParamType:!0,kind:S.singleInjection,name:void 0,optional:!1,tags:new Map,value:e}}(e))}),t)}(i))}function W(i){return o=>{!function(n){if(void 0!==e(n,K))throw new M(I.injectionDecoratorConflict,`Cannot apply @injectable decorator multiple times at class \"${n.name}\"`);t(n,K,!0)}(o),G(o),void 0!==i&&n(o,h,g,e=>({...e,scope:i}))}}function X(e,t,n){let i;return e.extendConstructorArguments??!0?(i=[...t.constructorArguments],n.constructorArguments.map((e,t)=>{i[t]=e})):i=n.constructorArguments,i}function H(e,t,n){return e?new Set([...t,...n]):n}function J(e,t,n){const i=e.lifecycle?.extendPostConstructMethods??!0,o=H(e.lifecycle?.extendPreDestroyMethods??!0,t.lifecycle.preDestroyMethodNames,n.lifecycle.preDestroyMethodNames);return{postConstructMethodNames:H(i,t.lifecycle.postConstructMethodNames,n.lifecycle.postConstructMethodNames),preDestroyMethodNames:o}}function Q(e,t,n){let i;return i=e.extendProperties??!0?new Map(l(t.properties,n.properties)):n.properties,i}function Y(e){return t=>{const i=N(e.type);n(t,h,g,function(e,t){const n=n=>({constructorArguments:X(e,t,n),lifecycle:J(e,t,n),properties:Q(e,t,n),scope:n.scope});return n}(e,i))}}function Z(e){return t=>{const n=i(t);if(void 0===n)throw new M(I.injectionDecoratorConflict,`Expected base type for type \"${t.name}\", none found.`);Y({...e,type:n})(t)}}function ee(e){return t=>{const n=[];let o=i(t);for(;void 0!==o&&o!==Object;){const e=o;n.push(e),o=i(e)}n.reverse();for(const i of n)Y({...e,type:i})(t)}}function te(e,t){return z(V(S.multipleInjection,e,t),k)}function ne(e){return t=>{void 0===t&&n(e,m,F,e=>e+1)}}function ie(e){return t=>{const n=t??{kind:b.unknown,name:void 0,optional:!1,tags:new Map};if(n.kind===S.unmanaged)throw new M(I.injectionDecoratorConflict,\"Unexpected injection found. Found @unmanaged injection with additional @named, @optional, @tagged or @targetName injections\");return e(n)}}function oe(e){const t=ie(function(e){return t=>{if(void 0!==t.name)throw new M(I.injectionDecoratorConflict,\"Unexpected duplicated named decorator\");return t.name=e,t}}(e));return z(t,ne)}function re(e){if(e.optional)throw new M(I.injectionDecoratorConflict,\"Unexpected duplicated optional decorator\");return e.optional=!0,e}function se(){return z(ie(re),ne)}function ae(){return(e,t,i)=>{try{n(e.constructor,h,g,(o=t,e=>{if(e.lifecycle.postConstructMethodNames.has(o))throw new M(I.injectionDecoratorConflict,`Unexpected duplicated postConstruct method ${o.toString()}`);return e.lifecycle.postConstructMethodNames.add(o),e}))}catch(n){_(e,t,void 0,n)}var o}}function ce(){return(e,t,i)=>{try{n(e.constructor,h,g,(o=t,e=>{if(e.lifecycle.preDestroyMethodNames.has(o))throw new M(I.injectionDecoratorConflict,`Unexpected duplicated preDestroy method ${o.toString()}`);return e.lifecycle.preDestroyMethodNames.add(o),e}))}catch(n){_(e,t,void 0,n)}var o}}function de(e,t){const n=ie(function(e,t){return n=>{if(n.tags.has(e))throw new M(I.injectionDecoratorConflict,\"Unexpected duplicated tag decorator with existing tag\");return n.tags.set(e,t),n}}(e,t));return z(n,ne)}function ue(){return{kind:S.unmanaged}}const le=$(ue,function(e){if(D(e),function(e){return void 0!==e.name||e.optional||e.tags.size>0}(e))throw new M(I.injectionDecoratorConflict,\"Unexpected injection found. Found @unmanaged injection with additional @named, @optional, @tagged or @targetName injections\");return ue()});function pe(){return z(le(),k)}var fe;!function(e){e[e.multipleInjection=0]=\"multipleInjection\",e[e.singleInjection=1]=\"singleInjection\"}(fe||(fe={}));const ve=/stack space|call stack|too much recursion/i,he=/too much recursion/;function ge(e){try{return e instanceof Error&&(e instanceof RangeError&&ve.test(e.message)||\"InternalError\"===e.name&&he.test(e.message))}catch(e){return e instanceof SyntaxError&&e.message.includes(\"Stack overflow\")}}function me(e,t){if(ge(t)){const n=function(e){const t=[...e];if(0===t.length)return\"(No dependency trace)\";return t.map(o).join(\" -> \")}(function(e){const t=new Set;for(const n of e.servicesBranch){if(t.has(n))return[...t,n];t.add(n)}return[...t]}(e));throw new M(I.planning,`Circular dependency found: ${n}`,{cause:t})}throw t}const ye=Symbol.for(\"@inversifyjs/core/LazyPlanServiceNode\");class Me{[ye];_serviceIdentifier;_serviceNode;constructor(e,t){this[ye]=!0,this._serviceNode=e,this._serviceIdentifier=t}get bindings(){return this._getNode().bindings}get isContextFree(){return this._getNode().isContextFree}get serviceIdentifier(){return this._serviceIdentifier}set bindings(e){this._getNode().bindings=e}set isContextFree(e){this._getNode().isContextFree=e}static is(e){return\"object\"==typeof e&&null!==e&&!0===e[ye]}invalidate(){this._serviceNode=void 0}isExpanded(){return void 0!==this._serviceNode}_getNode(){return void 0===this._serviceNode&&(this._serviceNode=this._buildPlanServiceNode()),this._serviceNode}}class Ie{#M;constructor(e){this.#M=e}get name(){return this.#M.elem.name}get serviceIdentifier(){return this.#M.elem.serviceIdentifier}get tags(){return this.#M.elem.tags}getAncestor(){if(this.#M.elem.getAncestorsCalled=!0,void 0!==this.#M.previous)return new Ie(this.#M.previous)}}function be(e,t,n){const i=n?.customServiceIdentifier??t.serviceIdentifier,o=(!0===n?.chained?[...e.operations.getBindingsChained(i)]:[...e.operations.getBindings(i)??[]]).filter(e=>e.isSatisfiedBy(t));if(0===o.length&&void 0!==e.autobindOptions&&\"function\"==typeof i){const n=P(e.autobindOptions,i);e.operations.setBinding(n),n.isSatisfiedBy(t)&&o.push(n)}return o}class we{last;constructor(e){this.last=e}concat(e){return new we({elem:e,previous:this.last})}[Symbol.iterator](){let e=this.last;return{next:()=>{if(void 0===e)return{done:!0,value:void 0};const t=e.elem;return e=e.previous,{done:!1,value:t}}}}}function Ce(e){const t=new Map;return void 0!==e.rootConstraints.tag&&t.set(e.rootConstraints.tag.key,e.rootConstraints.tag.value),new we({elem:{getAncestorsCalled:!1,name:e.rootConstraints.name,serviceIdentifier:e.rootConstraints.serviceIdentifier,tags:t},previous:void 0})}function Se(e){return void 0!==e.redirections}function Ne(e,t,n,i){const r=n.elem.serviceIdentifier,s=n.previous?.elem.serviceIdentifier;Array.isArray(e)?function(e,t,n,i,r,s){if(0!==e.length){const t=s[s.length-1]??n,a=`Ambiguous bindings found for service: \"${o(t)}\".${Re(s)}\\n\\nRegistered bindings:\\n\\n${e.map(e=>function(e){switch(e.type){case u.Instance:return`[ type: \"${e.type}\", serviceIdentifier: \"${o(e.serviceIdentifier)}\", scope: \"${e.scope}\", implementationType: \"${e.implementationType.name}\" ]`;case u.ServiceRedirection:return`[ type: \"${e.type}\", serviceIdentifier: \"${o(e.serviceIdentifier)}\", redirection: \"${o(e.targetServiceIdentifier)}\" ]`;default:return`[ type: \"${e.type}\", serviceIdentifier: \"${o(e.serviceIdentifier)}\", scope: \"${e.scope}\" ]`}}(e.binding)).join(\"\\n\")}\\n\\nTrying to resolve bindings for \"${Ae(n,i)}\".${xe(r)}`;throw new M(I.planning,a)}t||Pe(n,i,r,s)}(e,t,r,s,n.elem,i):function(e,t,n,i,o,r){void 0!==e||t||Pe(n,i,o,r)}(e,t,r,s,n.elem,i)}function Pe(e,t,n,i){const r=i[i.length-1]??e,s=`No bindings found for service: \"${o(r)}\".\\n\\nTrying to resolve bindings for \"${Ae(e,t)}\".${Re(i)}${xe(n)}`;throw new M(I.planning,s)}function Ae(e,t){return void 0===t?`${o(e)} (Root service)`:o(t)}function xe(e){const t=0===e.tags.size?\"\":`\\n- tags:\\n - ${[...e.tags.keys()].map(e=>e.toString()).join(\"\\n - \")}`;return`\\n\\nBinding constraints:\\n- service identifier: ${o(e.serviceIdentifier)}\\n- name: ${e.name?.toString()??\"-\"}${t}`}function Re(e){return 0===e.length?\"\":`\\n\\n- service redirections:\\n - ${e.map(e=>o(e)).join(\"\\n - \")}`}function Te(e,t,n,i){if(1===e.redirections.length){const[o]=e.redirections;return void(Se(o)&&Te(o,t,n,[...i,o.binding.targetServiceIdentifier]))}Ne(e.redirections,t,n,i)}function je(e,t,n){if(Array.isArray(e.bindings)&&1===e.bindings.length){const[i]=e.bindings;return void(Se(i)&&Te(i,t,n,[i.binding.targetServiceIdentifier]))}Ne(e.bindings,t,n,[])}function Be(e){return r.is(e)?e.unwrap():e}function Fe(e){return(t,n,i)=>{const o=Be(i.value),r=n.concat({getAncestorsCalled:!1,name:i.name,serviceIdentifier:o,tags:i.tags}),s=new Ie(r.last),a=i.kind===S.multipleInjection&&i.chained,c=be(t,s,{chained:a}),d=[],u={bindings:d,isContextFree:!0,serviceIdentifier:o};if(d.push(...e(t,r,c,u,a)),u.isContextFree=!r.last.elem.getAncestorsCalled,i.kind===S.singleInjection){je(u,i.optional,r.last);const[e]=d;u.bindings=e}return u}}function ke(e){return(t,n,i)=>{const o=Be(i.value),r=n.concat({getAncestorsCalled:!1,name:i.name,serviceIdentifier:o,tags:i.tags}),s=new Ie(r.last),a=i.kind===fe.multipleInjection&&i.chained,c=be(t,s,{chained:a}),d=[],u={bindings:d,isContextFree:!0,serviceIdentifier:o};if(d.push(...e(t,r,c,u,a)),u.isContextFree=!r.last.elem.getAncestorsCalled,i.kind===fe.singleInjection){je(u,i.optional,r.last);const[e]=d;u.bindings=e}return u}}function $e(e){const t=function(e){return(t,n,i)=>{const o={binding:n,classMetadata:t.operations.getClassMetadata(n.implementationType),constructorParams:[],propertyParams:new Map},r={autobindOptions:t.autobindOptions,node:o,operations:t.operations,servicesBranch:t.servicesBranch};return e(r,i)}}(e),n=function(e){return(t,n,i)=>{const o={binding:n,params:[]},r={autobindOptions:t.autobindOptions,node:o,operations:t.operations,servicesBranch:t.servicesBranch};return e(r,i)}}(e),i=(e,i,r,s,a)=>{const c=Se(s)?s.binding.targetServiceIdentifier:s.serviceIdentifier;e.servicesBranch.push(c);const d=[];for(const s of r)switch(s.type){case u.Instance:d.push(t(e,s,i));break;case u.ResolvedValue:d.push(n(e,s,i));break;case u.ServiceRedirection:{const t=o(e,i,s,a);d.push(t);break}default:d.push({binding:s})}return e.servicesBranch.pop(),d},o=function(e){return(t,n,i,o)=>{const r={binding:i,redirections:[]},s=be(t,new Ie(n.last),{chained:o,customServiceIdentifier:i.targetServiceIdentifier});return r.redirections.push(...e(t,n,s,r,o)),r}}(i);return i}function De(e,t,n,i){if(void 0!==e&&(Me.is(n)&&!n.isExpanded()||n.isContextFree)){const i={tree:{root:n}};t.setPlan(e,i)}else t.setNonCachedServiceNode(n,i)}class Ve extends Me{#I;#b;#w;#C;constructor(e,t,n,i,o){super(o,Be(i.value)),this.#b=t,this.#I=e,this.#w=n,this.#C=i}_buildPlanServiceNode(){return this.#b(this.#I,this.#w,this.#C)}}class Oe extends Me{#I;#S;#w;#N;constructor(e,t,n,i,o){super(o,Be(i.value)),this.#I=e,this.#S=t,this.#w=n,this.#N=i}_buildPlanServiceNode(){return this.#S(this.#I,this.#w,this.#N)}}function Ee(e,t,n,i){const o=function(e,t){const n=function(e,t){return(n,i,o)=>{if(o.kind===S.unmanaged)return;const s=function(e){let t;if(0===e.tags.size)t=void 0;else{if(1!==e.tags.size)return;{const[n,i]=e.tags.entries().next().value;t={key:n,value:i}}}const n=r.is(e.value)?e.value.unwrap():e.value;return e.kind===S.multipleInjection?{chained:e.chained,isMultiple:!0,name:e.name,optional:e.optional,serviceIdentifier:n,tag:t}:{isMultiple:!1,name:e.name,optional:e.optional,serviceIdentifier:n,tag:t}}(o);if(void 0!==s){const e=n.operations.getPlan(s);if(void 0!==e&&e.tree.root.isContextFree)return e.tree.root}const a=t(n,i,o),c=new Ve(n,e,i,o,a);return De(s,n.operations,c,{bindingConstraintsList:i,chainedBindings:o.kind===S.multipleInjection&&o.chained,optionalBindings:o.optional}),c}}(e,t);return(e,t,i)=>{const o=t.classMetadata;for(const[r,s]of o.constructorArguments.entries())t.constructorParams[r]=n(e,i,s);for(const[r,s]of o.properties){const o=n(e,i,s);void 0!==o&&t.propertyParams.set(r,o)}return e.node}}(e,n),s=function(e,t){const n=function(e,t){return(n,i,o)=>{const s=function(e){let t;if(0===e.tags.size)t=void 0;else{if(1!==e.tags.size)return;{const[n,i]=e.tags.entries().next().value;t={key:n,value:i}}}const n=r.is(e.value)?e.value.unwrap():e.value;return e.kind===fe.multipleInjection?{chained:e.chained,isMultiple:!0,name:e.name,optional:e.optional,serviceIdentifier:n,tag:t}:{isMultiple:!1,name:e.name,optional:e.optional,serviceIdentifier:n,tag:t}}(o);if(void 0!==s){const e=n.operations.getPlan(s);if(void 0!==e&&e.tree.root.isContextFree)return e.tree.root}const a=t(n,i,o),c=new Oe(n,e,i,o,a);return De(s,n.operations,c,{bindingConstraintsList:i,chainedBindings:o.kind===fe.multipleInjection&&o.chained,optionalBindings:o.optional}),c}}(e,t);return(e,t,i)=>{const o=t.binding.metadata;for(const[r,s]of o.arguments.entries())t.params[r]=n(e,i,s);return e.node}}(t,i);return(e,t)=>e.node.binding.type===u.Instance?o(e,e.node,t):s(e,e.node,t)}class _e extends Me{#I;constructor(e,t){super(t,t.serviceIdentifier),this.#I=e}_buildPlanServiceNode(){return qe(this.#I)}}const ze=Fe(Ke),Le=ke(Ke),Ue=$e(Ee(ze,Le,ze,Le));function Ke(e,t,n,i,o){return Ue(e,t,n,i,o)}const qe=function(e){return t=>{const n=Ce(t),i=new Ie(n.last),o=t.rootConstraints.isMultiple&&t.rootConstraints.chained,r=be(t,i,{chained:o}),s=[],a={bindings:s,isContextFree:!0,serviceIdentifier:t.rootConstraints.serviceIdentifier};if(s.push(...e(t,n,r,a,o)),a.isContextFree=!n.last.elem.getAncestorsCalled,!t.rootConstraints.isMultiple){je(a,t.rootConstraints.isOptional??!1,n.last);const[e]=s;a.bindings=e}return a}}(Ue);function Ge(e){try{const t=function(e){return e.rootConstraints.isMultiple?{chained:e.rootConstraints.chained,isMultiple:!0,name:e.rootConstraints.name,optional:e.rootConstraints.isOptional??!1,serviceIdentifier:e.rootConstraints.serviceIdentifier,tag:e.rootConstraints.tag}:{isMultiple:!1,name:e.rootConstraints.name,optional:e.rootConstraints.isOptional??!1,serviceIdentifier:e.rootConstraints.serviceIdentifier,tag:e.rootConstraints.tag}}(e),n=e.operations.getPlan(t);if(void 0!==n)return n;const i=qe(e),o={tree:{root:new _e(e,i)}};return e.operations.setPlan(t,o),o}catch(t){me(e,t)}}var We;!function(e){e.bindingAdded=\"bindingAdded\",e.bindingRemoved=\"bindingRemoved\"}(We||(We={}));class Xe{#P;#A;#x;constructor(){this.#P=[],this.#A=8,this.#x=1024}*[Symbol.iterator](){let e=0;for(const t of this.#P){const n=t.deref();void 0===n?++e:yield n}this.#P.length>=this.#A&&this.#R(e)&&this.#T(e)}push(e){const t=new WeakRef(e);if(this.#P.push(t),this.#P.length>=this.#A&&this.#P.length%this.#x===0){let e=0;for(const t of this.#P)void 0===t.deref()&&++e;this.#R(e)&&this.#T(e)}}#T(e){const t=new Array(this.#P.length-e);let n=0;for(const e of this.#P)e.deref()&&(t[n++]=e);this.#P=t}#R(e){return e>=.5*this.#P.length}}const He=$e(Ee(ze,Le,function(e,t,n){return Je(e,t,n)},function(e,t,n){return Qe(e,t,n)})),Je=function(e){const t=Fe(e);return(e,n,i)=>{try{return t(e,n,i)}catch(e){if(M.isErrorOfKind(e,I.planning))return;throw e}}}(He),Qe=function(e){const t=ke(e);return(e,n,i)=>{try{return t(e,n,i)}catch(e){if(M.isErrorOfKind(e,I.planning))return;throw e}}}(He);function Ye(e,t,n,i,o){if(Me.is(t)&&!t.isExpanded())return{isContextFreeBinding:!0,shouldInvalidateServiceNode:!1};const r=new Ie(i.last);return!n.isSatisfiedBy(r)||i.last.elem.getAncestorsCalled?{isContextFreeBinding:!i.last.elem.getAncestorsCalled,shouldInvalidateServiceNode:!1}:function(e,t,n,i,o){let r;try{[r]=He(e,i,[n],t,o)}catch(e){if(ge(e))return{isContextFreeBinding:!1,shouldInvalidateServiceNode:!0};throw e}return function(e,t){if(Array.isArray(e.bindings))e.bindings.push(t);else{if(void 0!==e.bindings){if(!Me.is(e))throw new M(I.planning,\"Unexpected non-lazy plan service node. This is likely a bug in the planning logic. Please, report this issue\");return{isContextFreeBinding:!0,shouldInvalidateServiceNode:!0}}e.bindings=t}return{isContextFreeBinding:!0,shouldInvalidateServiceNode:!1}}(t,r)}(e,t,n,i,o)}function Ze(e,t,n,i){if(Me.is(e)&&!e.isExpanded())return{bindingNodeRemoved:void 0,isContextFreeBinding:!0};const o=new Ie(n.last);if(!t.isSatisfiedBy(o)||n.last.elem.getAncestorsCalled)return{bindingNodeRemoved:void 0,isContextFreeBinding:!n.last.elem.getAncestorsCalled};let r;if(Array.isArray(e.bindings))e.bindings=e.bindings.filter(e=>e.binding!==t||(r=e,!1));else if(e.bindings?.binding===t)if(r=e.bindings,i)e.bindings=void 0;else{if(!Me.is(e))throw new M(I.planning,\"Unexpected non-lazy plan service node. This is likely a bug in the planning logic. Please, report this issue\");e.invalidate()}return{bindingNodeRemoved:r,isContextFreeBinding:!0}}class et{#j;#B;#F;#k;#$;#D;constructor(){this.#j=new Map,this.#B=this.#V(),this.#F=this.#V(),this.#k=this.#V(),this.#$=this.#V(),this.#D=new Xe}clearCache(){for(const e of this.#O())e.clear();for(const e of this.#D)e.clearCache()}get(e){return void 0===e.name?void 0===e.tag?this.#E(this.#B,e).get(e.serviceIdentifier):this.#E(this.#$,e).get(e.serviceIdentifier)?.get(e.tag.key)?.get(e.tag.value):void 0===e.tag?this.#E(this.#F,e).get(e.serviceIdentifier)?.get(e.name):this.#E(this.#k,e).get(e.serviceIdentifier)?.get(e.name)?.get(e.tag.key)?.get(e.tag.value)}invalidateServiceBinding(e){this.#_(e),this.#z(e),this.#L(e),this.#U(e),this.#K(e);for(const t of this.#D)t.invalidateServiceBinding(e)}set(e,t){void 0===e.name?void 0===e.tag?this.#E(this.#B,e).set(e.serviceIdentifier,t):this.#q(this.#q(this.#E(this.#$,e),e.serviceIdentifier),e.tag.key).set(e.tag.value,t):void 0===e.tag?this.#q(this.#E(this.#F,e),e.serviceIdentifier).set(e.name,t):this.#q(this.#q(this.#q(this.#E(this.#k,e),e.serviceIdentifier),e.name),e.tag.key).set(e.tag.value,t)}setNonCachedServiceNode(e,t){let n=this.#j.get(e.serviceIdentifier);void 0===n&&(n=new Map,this.#j.set(e.serviceIdentifier,n)),n.set(e,t)}subscribe(e){this.#D.push(e)}#V(){const e=new Array(8);for(let t=0;t<e.length;++t)e[t]=new Map;return e}#G(e,t,n,i){const o=!!(2&t);let r;if(o){r={chained:!!(0&t),isMultiple:o,serviceIdentifier:e.binding.serviceIdentifier}}else r={isMultiple:o,serviceIdentifier:e.binding.serviceIdentifier};return!!(1&t)&&(r.isOptional=!0),void 0!==n&&(r.name=n),void 0!==i&&(r.tag=i),{autobindOptions:void 0,operations:e.operations,rootConstraints:r,servicesBranch:[]}}#q(e,t){let n=e.get(t);return void 0===n&&(n=new Map,e.set(t,n)),n}#E(e,t){return e[this.#W(t)]}#O(){return[this.#j,...this.#B,...this.#F,...this.#k,...this.#$]}#W(e){return e.isMultiple?(e.chained?4:0)|(e.optional?1:0)|2:e.optional?1:0}#z(e){for(const[t,n]of this.#F.entries()){const i=n.get(e.binding.serviceIdentifier);if(void 0!==i)for(const[n,o]of i.entries())this.#X(e,o,t,n,void 0)}}#L(e){for(const[t,n]of this.#k.entries()){const i=n.get(e.binding.serviceIdentifier);if(void 0!==i)for(const[n,o]of i.entries())for(const[i,r]of o.entries())for(const[o,s]of r.entries())this.#X(e,s,t,n,{key:i,value:o})}}#H(e){switch(e.binding.type){case u.ServiceRedirection:for(const t of e.redirections)this.#H(t);break;case u.Instance:for(const t of e.constructorParams)void 0!==t&&this.#J(t);for(const t of e.propertyParams.values())this.#J(t);break;case u.ResolvedValue:for(const t of e.params)this.#J(t)}}#J(e){const t=this.#j.get(e.serviceIdentifier);void 0!==t&&t.has(e)&&(t.delete(e),this.#Q(e))}#Q(e){if((!Me.is(e)||e.isExpanded())&&void 0!==e.bindings)if(Array.isArray(e.bindings))for(const t of e.bindings)this.#H(t);else this.#H(e.bindings)}#K(e){const t=this.#j.get(e.binding.serviceIdentifier);if(void 0!==t)switch(e.kind){case We.bindingAdded:for(const[n,i]of t){const t=Ye({autobindOptions:void 0,operations:e.operations,servicesBranch:[]},n,e.binding,i.bindingConstraintsList,i.chainedBindings);t.isContextFreeBinding?t.shouldInvalidateServiceNode&&Me.is(n)&&(this.#Q(n),n.invalidate()):this.clearCache()}break;case We.bindingRemoved:for(const[n,i]of t){const t=Ze(n,e.binding,i.bindingConstraintsList,i.optionalBindings);t.isContextFreeBinding?void 0!==t.bindingNodeRemoved&&this.#H(t.bindingNodeRemoved):this.clearCache()}}}#_(e){for(const[t,n]of this.#B.entries()){const i=n.get(e.binding.serviceIdentifier);this.#X(e,i,t,void 0,void 0)}}#U(e){for(const[t,n]of this.#$.entries()){const i=n.get(e.binding.serviceIdentifier);if(void 0!==i)for(const[n,o]of i.entries())for(const[i,r]of o.entries())this.#X(e,r,t,void 0,{key:n,value:i})}}#X(e,t,n,i,o){if(void 0!==t&&Me.is(t.tree.root)){const c=this.#G(e,n,i,o);switch(e.kind){case We.bindingAdded:{const n=(r=c,s=t.tree.root,a=e.binding,Me.is(s)&&!s.isExpanded()?{isContextFreeBinding:!0,shouldInvalidateServiceNode:!1}:Ye(r,s,a,Ce(r),r.rootConstraints.isMultiple&&r.rootConstraints.chained));n.isContextFreeBinding?n.shouldInvalidateServiceNode&&(this.#Q(t.tree.root),t.tree.root.invalidate()):this.clearCache()}break;case We.bindingRemoved:{const n=function(e,t,n){return Me.is(t)&&!t.isExpanded()?{bindingNodeRemoved:void 0,isContextFreeBinding:!0}:Ze(t,n,Ce(e),e.rootConstraints.isOptional??!1)}(c,t.tree.root,e.binding);n.isContextFreeBinding?void 0!==n.bindingNodeRemoved&&this.#H(n.bindingNodeRemoved):this.clearCache()}}}var r,s,a}}function tt(e,t){if(ge(t)){const n=function(e){const t=[...e];if(0===t.length)return\"(No dependency trace)\";return t.map(o).join(\" -> \")}(function(e){const t=e.planResult.tree.root,n=[];function i(e){const t=n.indexOf(e);if(-1!==t){return[...n.slice(t),e].map(e=>e.serviceIdentifier)}n.push(e);try{for(const t of function(e){const t=[],n=e.bindings;if(void 0===n)return t;const i=e=>{if(Se(e))for(const t of e.redirections)i(t);else switch(e.binding.type){case u.Instance:{const n=e;for(const e of n.constructorParams)void 0!==e&&t.push(e);for(const e of n.propertyParams.values())t.push(e);break}case u.ResolvedValue:{const n=e;for(const e of n.params)t.push(e);break}}};if(Array.isArray(n))for(const e of n)i(e);else i(n);return t}(e)){const e=i(t);if(void 0!==e)return e}}finally{n.pop()}}return i(t)??[]}(e));throw new M(I.planning,`Circular dependency found: ${n}`,{cause:t})}throw t}function nt(e,t){return s(t)?(e.cache={isRight:!0,value:t},t.then(t=>it(e,t))):it(e,t)}function it(e,t){return e.cache={isRight:!0,value:t},t}function ot(e,t,n){const i=e.getActivations(t);return void 0===i?n:s(n)?rt(e,n,i[Symbol.iterator]()):function(e,t,n){let i=t,o=n.next();for(;!0!==o.done;){const t=o.value(e.context,i);if(s(t))return rt(e,t,n);i=t,o=n.next()}return i}(e,n,i[Symbol.iterator]())}async function rt(e,t,n){let i=await t,o=n.next();for(;!0!==o.done;)i=await o.value(e.context,i),o=n.next();return i}function st(e,t,n){let i=n;if(void 0!==t.onActivation){const n=t.onActivation;i=s(i)?i.then(t=>n(e.context,t)):n(e.context,i)}return ot(e,t.serviceIdentifier,i)}function at(e){return(t,n)=>{if(n.cache.isRight)return n.cache.value;return nt(n,st(t,n,e(t,n)))}}const ct=at(function(e,t){return t.value});function dt(e){return e}function ut(e,t){return(n,i)=>{const o=e(i);switch(o.scope){case d.Singleton:if(o.cache.isRight)return o.cache.value;return nt(o,st(n,o,t(n,i)));case d.Request:{if(n.requestScopeCache.has(o.id))return n.requestScopeCache.get(o.id);const e=st(n,o,t(n,i));return n.requestScopeCache.set(o.id,e),e}case d.Transient:return st(n,o,t(n,i))}}}const lt=(e=>ut(dt,e))(function(e,t){return t.value(e.context)});const pt=at(function(e,t){return t.factory(e.context)});function ft(e,t,n){const i=function(e,t,n){if(!(n in e))throw new M(I.resolution,`Expecting a \"${n.toString()}\" property when resolving \"${t.implementationType.name}\" class @postConstruct decorated method, none found.`);if(\"function\"!=typeof e[n])throw new M(I.resolution,`Expecting a \"${n.toString()}\" method when resolving \"${t.implementationType.name}\" class @postConstruct decorated method, a non function property was found instead.`);{let i;try{i=e[n]()}catch(e){throw new M(I.resolution,`Unexpected error found when calling \"${n.toString()}\" @postConstruct decorated method on class \"${t.implementationType.name}\"`,{cause:e})}if(s(i))return async function(e,t,n){try{await n}catch(n){throw new M(I.resolution,`Unexpected error found when calling \"${t.toString()}\" @postConstruct decorated method on class \"${e.implementationType.name}\"`,{cause:n})}}(t,n,i)}}(e,t,n);return s(i)?i.then(()=>e):e}function vt(e,t,n){if(0===n.size)return e;let i=e;for(const e of n)i=s(i)?i.then(n=>ft(n,t,e)):ft(i,t,e);return i}function ht(e){return(t,n,i)=>{const o=new i.binding.implementationType(...t),r=e(n,o,i);return s(r)?r.then(()=>vt(o,i.binding,i.classMetadata.lifecycle.postConstructMethodNames)):vt(o,i.binding,i.classMetadata.lifecycle.postConstructMethodNames)}}const gt=at(function(e,t){return t.provider(e.context)});function mt(e){return e.binding}function yt(e){return e.binding}const Mt=function(e){return(t,n,i)=>{const o=[];for(const[r,a]of i.propertyParams){const c=i.classMetadata.properties.get(r);if(void 0===c)throw new M(I.resolution,`Expecting metadata at property \"${r.toString()}\", none found`);c.kind!==S.unmanaged&&void 0!==a.bindings&&(n[r]=e(t,a),s(n[r])&&o.push((async()=>{n[r]=await n[r]})()))}if(o.length>0)return Promise.all(o).then(()=>{})}}(At),It=function(e){return function t(n,i){const o=[];for(const r of i.redirections)Se(r)?o.push(...t(n,r)):o.push(e(n,r));return o}}(Pt),bt=function(e,t,n){return(i,o)=>{const r=e(i,o);return s(r)?t(r,i,o):n(r,i,o)}}(function(e){return(t,n)=>{const i=[];for(const o of n.constructorParams)void 0===o?i.push(void 0):i.push(e(t,o));return i.some(s)?Promise.all(i):i}}(At),function(e){return async(t,n,i)=>{const o=await t;return e(o,n,i)}}(ht(Mt)),ht(Mt)),wt=function(e){return(t,n)=>{const i=e(t,n);return s(i)?i.then(e=>n.binding.factory(...e)):n.binding.factory(...i)}}(function(e){return(t,n)=>{const i=[];for(const o of n.params)i.push(e(t,o));return i.some(s)?Promise.all(i):i}}(At)),Ct=(e=>ut(mt,e))(bt),St=(e=>ut(yt,e))(wt);function Nt(e){try{return At(e,e.planResult.tree.root)}catch(t){tt(e,t)}}function Pt(e,t){switch(t.binding.type){case u.ConstantValue:return ct(e,t.binding);case u.DynamicValue:return lt(e,t.binding);case u.Factory:return pt(e,t.binding);case u.Instance:return Ct(e,t);case u.Provider:return gt(e,t.binding);case u.ResolvedValue:return St(e,t)}}function At(e,t){if(void 0!==t.bindings)return Array.isArray(t.bindings)?function(e,t){const n=[];for(const i of t)Se(i)?n.push(...It(e,i)):n.push(Pt(e,i));if(n.some(s))return Promise.all(n);return n}(e,t.bindings):function(e,t){if(Se(t)){const n=It(e,t);if(1===n.length)return n[0];throw new M(I.resolution,\"Unexpected multiple resolved values on single injection\")}return Pt(e,t)}(e,t.bindings)}function xt(e){return void 0!==e.scope}function Rt(e,t){if(\"function\"==typeof e[t]){return e[t]()}}function Tt(e,t){const n=e.lifecycle.preDestroyMethodNames;if(0===n.size)return;let i;for(const e of n)i=void 0===i?Rt(t,e):i.then(()=>Rt(t,e));return i}function jt(e,t,n){const i=e.getDeactivations(t);if(void 0!==i)return s(n)?Bt(n,i[Symbol.iterator]()):function(e,t){let n=t.next();for(;!0!==n.done;){const i=n.value(e);if(s(i))return Bt(e,t);n=t.next()}}(n,i[Symbol.iterator]())}async function Bt(e,t){const n=await e;let i=t.next();for(;!0!==i.done;)await i.value(n),i=t.next()}function Ft(e,t){const n=function(e,t){if(t.type===u.Instance){const n=e.getClassMetadata(t.implementationType),i=t.cache.value;return s(i)?i.then(e=>Tt(n,e)):Tt(n,i)}}(e,t);return void 0===n?kt(e,t):n.then(()=>kt(e,t))}function kt(e,t){const n=t.cache;return s(n.value)?n.value.then(n=>$t(e,t,n)):$t(e,t,n.value)}function $t(e,t,n){let i;if(void 0!==t.onDeactivation){i=(0,t.onDeactivation)(n)}return void 0===i?jt(e,t.serviceIdentifier,n):i.then(()=>jt(e,t.serviceIdentifier,n))}function Dt(e,t){if(void 0===t)return;const n=function(e){const t=[];for(const n of e)xt(n)&&n.scope===d.Singleton&&n.cache.isRight&&t.push(n);return t}(t),i=[];for(const t of n){const n=Ft(e,t);void 0!==n&&i.push(n)}return i.length>0?Promise.all(i).then(()=>{}):void 0}function Vt(e,t){const n=e.getBindingsFromModule(t);return Dt(e,n)}function Ot(e,t){const n=e.getBindings(t);return Dt(e,n)}export{v as ActivationsService,T as BindingService,We as CacheBindingInvalidationKind,S as ClassElementMetadataKind,j as DeactivationsService,M as InversifyCoreError,I as InversifyCoreErrorKind,Me as LazyPlanServiceNode,et as PlanResultCacheService,fe as ResolvedValueElementMetadataKind,d as bindingScopeValues,u as bindingTypeValues,B as decorate,c as getBindingId,N as getClassMetadata,U as inject,Z as injectFromBase,ee as injectFromHierarchy,W as injectable,te as multiInject,oe as named,se as optional,Ge as plan,ae as postConstruct,ce as preDestroy,Nt as resolve,Dt as resolveBindingsDeactivations,Vt as resolveModuleDeactivations,Ot as resolveServiceDeactivations,de as tagged,pe as unmanaged};\n//# sourceMappingURL=index.js.map\n","const t=Symbol.for(\"@inversifyjs/plugin/isPlugin\");class n{[t]=!0;_container;_context;constructor(t,n){this._container=t,this._context=n}}export{n as Plugin,t as isPlugin};\n//# sourceMappingURL=index.js.map\n","import\"reflect-metadata/lite\";import{getOwnReflectMetadata as e,setReflectMetadata as n,updateOwnReflectMetadata as i}from\"@inversifyjs/reflect-metadata-utils\";import{getClassMetadata as t,bindingTypeValues as r,getBindingId as a,bindingScopeValues as s,ResolvedValueElementMetadataKind as o,CacheBindingInvalidationKind as c,resolveBindingsDeactivations as d,resolveServiceDeactivations as l,resolveModuleDeactivations as u,plan as h,resolve as v,ActivationsService as g,BindingService as b,DeactivationsService as f,PlanResultCacheService as p}from\"@inversifyjs/core\";import{LazyServiceIdentifier as S,stringifyServiceIdentifier as M,isPromise as R}from\"@inversifyjs/common\";import{isPlugin as y}from\"@inversifyjs/plugin\";const m=\"@inversifyjs/container/bindingId\";class w{#e;#n;constructor(t){this.#e=function(){const t=e(Object,m)??0;return t===Number.MAX_SAFE_INTEGER?n(Object,m,Number.MIN_SAFE_INTEGER):i(Object,m,()=>t,e=>e+1),t}(),this.#n=t}get id(){return this.#e}load(e){return this.#n(e)}}const A=Symbol.for(\"@inversifyjs/container/bindingIdentifier\");function I(e){return\"object\"==typeof e&&null!==e&&!0===e[A]}class P{static always=e=>!0}const C=Symbol.for(\"@inversifyjs/container/InversifyContainerError\");class B extends Error{[C];kind;constructor(e,n,i){super(n,i),this[C]=!0,this.kind=e}static is(e){return\"object\"==typeof e&&null!==e&&!0===e[C]}static isErrorOfKind(e,n){return B.is(e)&&e.kind===n}}var O;function x(e){return{[A]:!0,id:e.id}}function k(e){return n=>{for(let i=n.getAncestor();void 0!==i;i=i.getAncestor())if(e(i))return!0;return!1}}function N(e){return n=>n.name===e}function U(e){return n=>n.serviceIdentifier===e}function F(e,n){return i=>i.tags.has(e)&&i.tags.get(e)===n}function D(e){return void 0===e.name&&0===e.tags.size}function j(e){const n=k(e);return e=>!n(e)}function T(e){return n=>{const i=n.getAncestor();return void 0===i||!e(i)}}function V(e){return n=>{const i=n.getAncestor();return void 0!==i&&e(i)}}!function(e){e[e.invalidOperation=0]=\"invalidOperation\"}(O||(O={}));class E{#i;constructor(e){this.#i=e}getIdentifier(){return x(this.#i)}inRequestScope(){return this.#i.scope=s.Request,new G(this.#i)}inSingletonScope(){return this.#i.scope=s.Singleton,new G(this.#i)}inTransientScope(){return this.#i.scope=s.Transient,new G(this.#i)}}class L{#t;#r;#a;#s;constructor(e,n,i,t){this.#t=e,this.#r=n,this.#a=i,this.#s=t}to(e){const n=t(e),i={cache:{isRight:!1,value:void 0},id:a(),implementationType:e,isSatisfiedBy:P.always,moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,scope:n.scope??this.#a,serviceIdentifier:this.#s,type:r.Instance};return this.#t(i),new H(i)}toSelf(){if(\"function\"!=typeof this.#s)throw new Error('\"toSelf\" function can only be applied when a newable function is used as service identifier');return this.to(this.#s)}toConstantValue(e){const n={cache:{isRight:!1,value:void 0},id:a(),isSatisfiedBy:P.always,moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,scope:s.Singleton,serviceIdentifier:this.#s,type:r.ConstantValue,value:e};return this.#t(n),new G(n)}toDynamicValue(e){const n={cache:{isRight:!1,value:void 0},id:a(),isSatisfiedBy:P.always,moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,scope:this.#a,serviceIdentifier:this.#s,type:r.DynamicValue,value:e};return this.#t(n),new H(n)}toResolvedValue(e,n){const i={cache:{isRight:!1,value:void 0},factory:e,id:a(),isSatisfiedBy:P.always,metadata:this.#o(n),moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,scope:this.#a,serviceIdentifier:this.#s,type:r.ResolvedValue};return this.#t(i),new H(i)}toFactory(e){const n={cache:{isRight:!1,value:void 0},factory:e,id:a(),isSatisfiedBy:P.always,moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,scope:s.Singleton,serviceIdentifier:this.#s,type:r.Factory};return this.#t(n),new G(n)}toProvider(e){const n={cache:{isRight:!1,value:void 0},id:a(),isSatisfiedBy:P.always,moduleId:this.#r,onActivation:void 0,onDeactivation:void 0,provider:e,scope:s.Singleton,serviceIdentifier:this.#s,type:r.Provider};return this.#t(n),new G(n)}toService(e){const n={id:a(),isSatisfiedBy:P.always,moduleId:this.#r,serviceIdentifier:this.#s,targetServiceIdentifier:e,type:r.ServiceRedirection};this.#t(n)}#o(e){return{arguments:(e??[]).map(e=>function(e){return\"object\"==typeof e&&!S.is(e)}(e)?function(e){return!0===e.isMultiple}(e)?{chained:e.chained??!1,kind:o.multipleInjection,name:e.name,optional:e.optional??!1,tags:new Map((e.tags??[]).map(e=>[e.key,e.value])),value:e.serviceIdentifier}:{kind:o.singleInjection,name:e.name,optional:e.optional??!1,tags:new Map((e.tags??[]).map(e=>[e.key,e.value])),value:e.serviceIdentifier}:{kind:o.singleInjection,name:void 0,optional:!1,tags:new Map,value:e})}}}class ${#i;constructor(e){this.#i=e}getIdentifier(){return x(this.#i)}onActivation(e){return this.#i.onActivation=e,new q(this.#i)}onDeactivation(e){if(this.#i.onDeactivation=e,this.#i.scope!==s.Singleton)throw new B(O.invalidOperation,`Binding for service \"${M(this.#i.serviceIdentifier)}\" has a deactivation function, but its scope is not singleton. Deactivation functions can only be used with singleton bindings.`);return new q(this.#i)}}class q{#i;constructor(e){this.#i=e}getIdentifier(){return x(this.#i)}when(e){return this.#i.isSatisfiedBy=e,new $(this.#i)}whenAnyAncestor(e){return this.when(k(e))}whenAnyAncestorIs(e){return this.when(k(U(e)))}whenAnyAncestorNamed(e){return this.when(function(e){return k(N(e))}(e))}whenAnyAncestorTagged(e,n){return this.when(function(e,n){return k(F(e,n))}(e,n))}whenDefault(){return this.when(D)}whenNamed(e){return this.when(N(e))}whenNoParent(e){return this.when(T(e))}whenNoParentIs(e){return this.when(T(U(e)))}whenNoParentNamed(e){return this.when(function(e){return T(N(e))}(e))}whenNoParentTagged(e,n){return this.when(function(e,n){return T(F(e,n))}(e,n))}whenParent(e){return this.when(V(e))}whenParentIs(e){return this.when(V(U(e)))}whenParentNamed(e){return this.when(function(e){return V(N(e))}(e))}whenParentTagged(e,n){return this.when(function(e,n){return V(F(e,n))}(e,n))}whenTagged(e,n){return this.when(F(e,n))}whenNoAncestor(e){return this.when(j(e))}whenNoAncestorIs(e){return this.when(j(U(e)))}whenNoAncestorNamed(e){return this.when(function(e){return j(N(e))}(e))}whenNoAncestorTagged(e,n){return this.when(function(e,n){return j(F(e,n))}(e,n))}}class G extends q{#c;constructor(e){super(e),this.#c=new $(e)}onActivation(e){return this.#c.onActivation(e)}onDeactivation(e){return this.#c.onDeactivation(e)}}class H extends G{#d;constructor(e){super(e),this.#d=new E(e)}inRequestScope(){return this.#d.inRequestScope()}inSingletonScope(){return this.#d.inSingletonScope()}inTransientScope(){return this.#d.inTransientScope()}}class _{#l;#a;#u;#h;constructor(e,n,i,t){this.#l=e,this.#a=n,this.#u=i,this.#h=t}bind(e){return new L(e=>{this.#v(e)},void 0,this.#a,e)}isBound(e,n){const i=this.#h.bindingService.get(e);return this.#g(e,i,n)}isCurrentBound(e,n){const i=this.#h.bindingService.getNonParentBindings(e);return this.#g(e,i,n)}async rebind(e){return await this.unbind(e),this.bind(e)}rebindSync(e){return this.unbindSync(e),this.bind(e)}async unbind(e){await this.#b(e)}async unbindAll(){await this.#f()}unbindAllSync(){if(void 0!==this.#f())throw new B(O.invalidOperation,\"Unexpected asynchronous deactivation when unbinding all services. Consider using Container.unbindAll() instead.\")}unbindSync(e){void 0!==this.#b(e)&&this.#p(e)}#v(e){this.#h.bindingService.set(e),this.#u.invalidateService({binding:e,kind:c.bindingAdded})}#p(e){let n;if(I(e)){const t=this.#h.bindingService.getById(e.id),r=(i=t,function(e){if(void 0===e)return;const n=e.next();return!0!==n.done?n.value:void 0}(i?.[Symbol.iterator]()))?.serviceIdentifier;n=void 0===r?\"Unexpected asynchronous deactivation when unbinding binding identifier. Consider using Container.unbind() instead.\":`Unexpected asynchronous deactivation when unbinding \"${M(r)}\" binding. Consider using Container.unbind() instead.`}else n=`Unexpected asynchronous deactivation when unbinding \"${M(e)}\" service. Consider using Container.unbind() instead.`;var i;throw new B(O.invalidOperation,n)}#b(e){return I(e)?this.#S(e):this.#M(e)}#S(e){const n=this.#h.bindingService.getById(e.id),i=void 0===n?void 0:[...n],t=d(this.#l,n);if(void 0!==t)return t.then(()=>{this.#R(i,e)});this.#R(i,e)}#R(e,n){if(this.#h.bindingService.removeById(n.id),void 0!==e)for(const n of e)this.#u.invalidateService({binding:n,kind:c.bindingRemoved})}#f(){const e=[...this.#h.bindingService.getNonParentBoundServices()],n=e.map(e=>l(this.#l,e));if(n.some(e=>R(e)))return Promise.all(n).then(()=>{this.#y(e)});this.#y(e)}#y(e){for(const n of e)this.#h.activationService.removeAllByServiceId(n),this.#h.bindingService.removeAllByServiceId(n),this.#h.deactivationService.removeAllByServiceId(n);this.#h.planResultCacheService.clearCache()}#M(e){const n=this.#h.bindingService.get(e),i=void 0===n?void 0:[...n],t=d(this.#l,n);if(void 0!==t)return t.then(()=>{this.#m(e,i)});this.#m(e,i)}#m(e,n){if(this.#h.activationService.removeAllByServiceId(e),this.#h.bindingService.removeAllByServiceId(e),this.#h.deactivationService.removeAllByServiceId(e),void 0!==n)for(const e of n)this.#u.invalidateService({binding:e,kind:c.bindingRemoved})}#g(e,n,i){if(void 0===n)return!1;const t={getAncestor:()=>{},name:i?.name,serviceIdentifier:e,tags:new Map};void 0!==i?.tag&&t.tags.set(i.tag.key,i.tag.value);for(const e of n)if(e.isSatisfiedBy(t))return!0;return!1}}class z{#w;#l;#a;#u;#h;constructor(e,n,i,t,r){this.#w=e,this.#l=n,this.#a=i,this.#u=t,this.#h=r}async load(...e){await Promise.all(this.#n(...e))}loadSync(...e){const n=this.#n(...e);for(const e of n)if(void 0!==e)throw new B(O.invalidOperation,\"Unexpected asynchronous module load. Consider using Container.load() instead.\")}async unload(...e){await Promise.all(this.#A(...e)),this.#I(e)}unloadSync(...e){const n=this.#A(...e);for(const e of n)if(void 0!==e)throw new B(O.invalidOperation,\"Unexpected asynchronous module unload. Consider using Container.unload() instead.\");this.#I(e)}#P(e){return{bind:n=>new L(e=>{this.#v(e)},e,this.#a,n),isBound:this.#w.isBound.bind(this.#w),onActivation:(n,i)=>{this.#h.activationService.add(i,{moduleId:e,serviceId:n})},onDeactivation:(n,i)=>{this.#h.deactivationService.add(i,{moduleId:e,serviceId:n})},rebind:this.#w.rebind.bind(this.#w),rebindSync:this.#w.rebindSync.bind(this.#w),unbind:this.#w.unbind.bind(this.#w),unbindSync:this.#w.unbindSync.bind(this.#w)}}#I(e){for(const n of e)this.#h.activationService.removeAllByModuleId(n.id),this.#h.bindingService.removeAllByModuleId(n.id),this.#h.deactivationService.removeAllByModuleId(n.id);this.#h.planResultCacheService.clearCache()}#n(...e){return e.map(e=>e.load(this.#P(e.id)))}#v(e){this.#h.bindingService.set(e),this.#u.invalidateService({binding:e,kind:c.bindingAdded})}#A(...e){return e.map(e=>u(this.#l,e.id))}}class K{deactivationParams;constructor(e){this.deactivationParams=function(e){return{getBindings:e.bindingService.get.bind(e.bindingService),getBindingsFromModule:e.bindingService.getByModuleId.bind(e.bindingService),getClassMetadata:t,getDeactivations:e.deactivationService.get.bind(e.deactivationService)}}(e),e.onReset(()=>{!function(e,n){n.getBindings=e.bindingService.get.bind(e.bindingService),n.getBindingsFromModule=e.bindingService.getByModuleId.bind(e.bindingService),n.getDeactivations=e.deactivationService.get.bind(e.deactivationService)}(e,this.deactivationParams)})}}class X{planParamsOperations;#h;constructor(e){this.#h=e,this.planParamsOperations={getBindings:this.#h.bindingService.get.bind(this.#h.bindingService),getBindingsChained:this.#h.bindingService.getChained.bind(this.#h.bindingService),getClassMetadata:t,getPlan:this.#h.planResultCacheService.get.bind(this.#h.planResultCacheService),setBinding:this.#v.bind(this),setNonCachedServiceNode:this.#h.planResultCacheService.setNonCachedServiceNode.bind(this.#h.planResultCacheService),setPlan:this.#h.planResultCacheService.set.bind(this.#h.planResultCacheService)},this.#h.onReset(()=>{this.#C()})}#C(){this.planParamsOperations.getBindings=this.#h.bindingService.get.bind(this.#h.bindingService),this.planParamsOperations.getBindingsChained=this.#h.bindingService.getChained.bind(this.#h.bindingService),this.planParamsOperations.setBinding=this.#v.bind(this)}#v(e){this.#h.bindingService.set(e),this.#h.planResultCacheService.invalidateServiceBinding({binding:e,kind:c.bindingAdded,operations:this.planParamsOperations})}}class J{#B;#h;constructor(e,n){this.#B=e,this.#h=n}invalidateService(e){this.#h.planResultCacheService.invalidateServiceBinding({...e,operations:this.#B.planParamsOperations})}}class Q{#O;#x;#k;#h;constructor(e,n,i){this.#h=n,this.#k=i,this.#O=this.#N(e),this.#x=this.#U()}register(e,n){const i=new n(e,this.#x);if(!0!==i[y])throw new B(O.invalidOperation,\"Invalid plugin. The plugin must extend the Plugin class\");i.load(this.#O)}#N(e){return{define:(n,i)=>{if(Object.prototype.hasOwnProperty.call(e,n))throw new B(O.invalidOperation,`Container already has a method named \"${String(n)}\"`);e[n]=i},onPlan:this.#k.onPlan.bind(this.#k)}}#U(){const e=this.#h;return{get activationService(){return e.activationService},get bindingService(){return e.bindingService},get deactivationService(){return e.deactivationService},get planResultCacheService(){return e.planResultCacheService}}}}class W{activationService;bindingService;deactivationService;planResultCacheService;#F;constructor(e,n,i,t){this.activationService=e,this.bindingService=n,this.deactivationService=i,this.planResultCacheService=t,this.#F=[]}reset(e,n,i){this.activationService=e,this.bindingService=n,this.deactivationService=i,this.planResultCacheService.clearCache();for(const e of this.#F)e()}onReset(e){this.#F.push(e)}}class Y{#D;#a;#j;#T;#V;#B;#h;constructor(e,n,i,t){this.#B=e,this.#h=n,this.#T=this.#E(),this.#D=i,this.#a=t,this.#j=e=>this.#h.activationService.get(e),this.#V=[],this.#h.onReset(()=>{this.#C()})}get(e,n){const i=this.#L(!1,e,n),t=this.#$(i);if(R(t))throw new B(O.invalidOperation,`Unexpected asynchronous service when resolving service \"${M(e)}\"`);return t}getAll(e,n){const i=this.#L(!0,e,n),t=this.#$(i);if(R(t))throw new B(O.invalidOperation,`Unexpected asynchronous service when resolving service \"${M(e)}\"`);return t}async getAllAsync(e,n){const i=this.#L(!0,e,n);return this.#$(i)}async getAsync(e,n){const i=this.#L(!1,e,n);return this.#$(i)}onPlan(e){this.#V.push(e)}#C(){this.#T=this.#E()}#q(e,n,i){const t=i?.name,r=i?.optional??!1,a=i?.tag;return e?{chained:i?.chained??!1,isMultiple:e,name:t,optional:r,serviceIdentifier:n,tag:a}:{isMultiple:e,name:t,optional:r,serviceIdentifier:n,tag:a}}#G(e,n,i){const t={autobindOptions:i?.autobind??this.#D?{scope:this.#a}:void 0,operations:this.#B.planParamsOperations,rootConstraints:this.#H(e,n,i),servicesBranch:[]};return this.#_(t,i),t}#H(e,n,i){return n?{chained:i?.chained??!1,isMultiple:n,serviceIdentifier:e}:{isMultiple:n,serviceIdentifier:e}}#L(e,n,i){const t=this.#q(e,n,i),r=this.#h.planResultCacheService.get(t);if(void 0!==r)return r;const a=h(this.#G(n,e,i));for(const e of this.#V)e(t,a);return a}#E(){return{get:this.get.bind(this),getAll:this.getAll.bind(this),getAllAsync:this.getAllAsync.bind(this),getAsync:this.getAsync.bind(this)}}#$(e){return v({context:this.#T,getActivations:this.#j,planResult:e,requestScopeCache:new Map})}#_(e,n){void 0!==n&&(void 0!==n.name&&(e.rootConstraints.name=n.name),!0===n.optional&&(e.rootConstraints.isOptional=!0),void 0!==n.tag&&(e.rootConstraints.tag={key:n.tag.key,value:n.tag.value}),e.rootConstraints.isMultiple&&(e.rootConstraints.chained=n?.chained??!1))}}class Z{#h;#z;constructor(e){this.#h=e,this.#z=[]}restore(){const e=this.#z.pop();if(void 0===e)throw new B(O.invalidOperation,\"No snapshot available to restore\");this.#h.reset(e.activationService,e.bindingService,e.deactivationService)}snapshot(){this.#z.push({activationService:this.#h.activationService.clone(),bindingService:this.#h.bindingService.clone(),deactivationService:this.#h.deactivationService.clone()})}}const ee=s.Transient;class ne{#w;#K;#X;#h;#k;#J;constructor(e){const n=e?.autobind??!1,i=e?.defaultScope??ee;this.#h=this.#Q(e,n,i);const t=new X(this.#h),r=new J(t,this.#h),a=new K(this.#h);this.#w=new _(a.deactivationParams,i,r,this.#h),this.#K=new z(this.#w,a.deactivationParams,i,r,this.#h),this.#k=new Y(t,this.#h,n,i),this.#X=new Q(this,this.#h,this.#k),this.#J=new Z(this.#h)}bind(e){return this.#w.bind(e)}get(e,n){return this.#k.get(e,n)}getAll(e,n){return this.#k.getAll(e,n)}async getAllAsync(e,n){return this.#k.getAllAsync(e,n)}async getAsync(e,n){return this.#k.getAsync(e,n)}isBound(e,n){return this.#w.isBound(e,n)}isCurrentBound(e,n){return this.#w.isCurrentBound(e,n)}async load(...e){return this.#K.load(...e)}loadSync(...e){this.#K.loadSync(...e)}onActivation(e,n){this.#h.activationService.add(n,{serviceId:e})}onDeactivation(e,n){this.#h.deactivationService.add(n,{serviceId:e})}register(e){this.#X.register(this,e)}restore(){this.#J.restore()}async rebind(e){return this.#w.rebind(e)}rebindSync(e){return this.#w.rebindSync(e)}snapshot(){this.#J.snapshot()}async unbind(e){await this.#w.unbind(e)}async unbindAll(){await this.#w.unbindAll()}unbindAllSync(){this.#w.unbindAllSync()}unbindSync(e){this.#w.unbindSync(e)}async unload(...e){return this.#K.unload(...e)}unloadSync(...e){this.#K.unloadSync(...e)}#W(e,n){if(e)return{scope:n}}#Q(e,n,i){const t=this.#W(n,i);if(void 0===e?.parent)return new W(g.build(()=>{}),b.build(()=>{},t),f.build(()=>{}),new p);const r=new p,a=e.parent;return a.#h.planResultCacheService.subscribe(r),new W(g.build(()=>a.#h.activationService),b.build(()=>a.#h.bindingService,t),f.build(()=>a.#h.deactivationService),r)}}export{ne as Container,w as ContainerModule,B as InversifyContainerError,O as InversifyContainerErrorKind};\n//# sourceMappingURL=index.js.map\n","import { defineAsyncComponent as m } from \"vue\";\nimport { injectable as o, inject as d, optional as p } from \"inversify\";\nfunction S(e, t, s) {\n e.component(t, m(s));\n}\nclass a {\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n jsonld;\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(t) {\n this.jsonld = t;\n }\n getIdentifier() {\n return this.jsonld.identifier;\n }\n setIdentifier(t) {\n this.jsonld.identifier = t;\n }\n getName() {\n return this.jsonld.name;\n }\n setName(t) {\n this.jsonld.name = t;\n }\n getText() {\n return this.jsonld.text;\n }\n setText(t) {\n this.jsonld.text = t;\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(t) {\n return this.jsonld[t];\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(t, s) {\n this.jsonld[t] = s;\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getSource() {\n return this.jsonld;\n }\n}\nclass _ {\n id;\n name;\n mode = \"\";\n source;\n syntax;\n html;\n document;\n css;\n js;\n version;\n headline = \"\";\n headlineRaw = \"\";\n lastModificationDate;\n lastAuthor;\n canEdit = !0;\n constructor(t = \"\", s = \"\", i = \"\", n = \"\") {\n this.document = new a({}), this.source = i, this.syntax = n, this.html = \"\", this.name = s, this.id = t, this.css = [], this.js = [], this.version = \"\";\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toObject() {\n return {\n id: this.id,\n name: this.name,\n source: this.source,\n syntax: this.syntax,\n html: this.html,\n document: this.document.getSource(),\n css: this.css,\n js: this.js,\n version: this.version\n };\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fromObject(t) {\n this.id = t.id, this.name = t.name, this.source = t.source, this.syntax = t.syntax, this.html = t.html, this.document = new a(t.document), this.css = t.css, this.js = t.js, this.version = t.version;\n }\n}\nclass x {\n constructor() {\n }\n}\nvar L = Object.getOwnPropertyDescriptor, C = (e, t, s, i) => {\n for (var n = i > 1 ? void 0 : i ? L(t, s) : t, l = e.length - 1, r; l >= 0; l--)\n (r = e[l]) && (n = r(n) || n);\n return n;\n}, g = (e, t) => (s, i) => t(s, i, e);\nlet f = class {\n constructor(e) {\n this.loggerConfig = e;\n }\n // @ts-expect-error module is temporarily undefined during class\n // initialization\n module;\n setModule(e) {\n this.module = e;\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debug(...e) {\n (!this.loggerConfig || this.loggerConfig.hasLevelId(this.module, 4)) && e.unshift(this.module + \":\"), console.debug.apply(null, e);\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n info(...e) {\n e.unshift(this.module + \":\"), console.info.apply(null, e);\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n warn(...e) {\n e.unshift(this.module + \":\"), console.warn.apply(null, e);\n }\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error(...e) {\n e.unshift(this.module + \":\"), console.error.apply(null, e);\n }\n};\nf = C([\n o(),\n g(0, d(\"LoggerConfig\")),\n g(0, p())\n], f);\nvar D = Object.getOwnPropertyDescriptor, w = (e, t, s, i) => {\n for (var n = i > 1 ? void 0 : i ? D(t, s) : t, l = e.length - 1, r; l >= 0; l--)\n (r = e[l]) && (n = r(n) || n);\n return n;\n};\nlet h = class {\n config;\n computedConfig;\n defaultLevel;\n // @ts-expect-error defaultLevelId is temporarily undefined during class\n // initialization\n defaultLevelId;\n levels = /* @__PURE__ */ new Map();\n constructor(e = \"error\") {\n this.config = /* @__PURE__ */ new Map(), this.defaultLevel = e, this.computedConfig = /* @__PURE__ */ new Map(), this.levels.set(\"error\", 1), this.levels.set(\"warn\", 2), this.levels.set(\"info\", 3), this.levels.set(\"debug\", 4);\n }\n addLevel(e, t) {\n const s = this.levels.get(t);\n s != null && this.config.forEach((i) => {\n if (i.startsWith(e)) {\n const n = this.computedConfig.get(i);\n (n == null || s && s > n) && s && this.computedConfig.set(i, s);\n }\n });\n }\n getLevels() {\n return this.config;\n }\n getLevel(e) {\n let t = this.config.get(e);\n return t || (t = this.defaultLevel), t;\n }\n getLevelId(e) {\n const t = this.levels.get(e);\n return t || 10;\n }\n setDefaultLevel(e) {\n this.defaultLevel = e, this.defaultLevelId = this.getLevelId(this.defaultLevel);\n }\n getDefaultLevel() {\n return this.defaultLevel;\n }\n getDefaultLevelId() {\n return this.defaultLevelId ? this.defaultLevelId : (this.defaultLevelId = this.getLevelId(this.defaultLevel), this.defaultLevelId);\n }\n hasLevel(e, t) {\n let s = this.computedConfig.get(e);\n s || (s = this.getDefaultLevelId());\n const i = this.getLevelId(t);\n return !!(i && s >= i);\n }\n hasLevelId(e, t) {\n let s = this.computedConfig.get(e);\n s || (s = this.getDefaultLevelId());\n const i = t;\n return !!(i && s >= i);\n }\n};\nh = w([\n o()\n], h);\nvar O = Object.getOwnPropertyDescriptor, j = (e, t, s, i) => {\n for (var n = i > 1 ? void 0 : i ? O(t, s) : t, l = e.length - 1, r; l >= 0; l--)\n (r = e[l]) && (n = r(n) || n);\n return n;\n}, I = (e, t) => (s, i) => t(s, i, e);\nlet u = class {\n // @ts-expect-error name is temporarily undefined during class\n // initialization\n name;\n // @ts-expect-error baseURL is temporarily undefined during class\n // initialization\n baseURL;\n // @ts-expect-error baseRestURL is temporarily undefined during class\n // initialization\n baseRestURL;\n /**\n * Realtime endpoint URL.\n * @since 18.0.0RC1\n * @beta\n */\n realtimeURL;\n /**\n * Authentication server base URL.\n * @since 18.0.0RC1\n * @beta\n */\n authenticationBaseURL;\n /**\n * Authentication Manager component to use.\n * By default, resolves to configuration type.\n * @since 18.0.0RC1\n * @beta\n */\n authenticationManager;\n // @ts-expect-error homePage is temporarily undefined during class\n // initialization\n homePage;\n // @ts-expect-error storage is temporarily undefined during class\n // initialization\n storage;\n // @ts-expect-error serverRendering is temporarily undefined during class\n // initialization\n serverRendering;\n // @ts-expect-error designSystem is temporarily undefined during class\n // initialization\n designSystem;\n // @ts-expect-error editor is temporarily undefined during class\n // initialization\n editor;\n // @ts-expect-error offline is temporarily undefined during class\n // initialization\n offline;\n offlineSetup;\n /**\n * Root location to store pages.\n * @since 18.0.0RC1\n * @beta\n */\n storageRoot;\n // @ts-expect-error cristal is temporarily undefined during class\n // initialization\n cristal;\n logger;\n constructor(e) {\n this.logger = e, this.logger.setModule(\"storage.components.defaultWikiStorage\"), this.offlineSetup = !1;\n }\n setConfig(e, t, s, i, n, l, r, c, v) {\n Object.assign(this, {\n name: e,\n baseURL: t,\n baseRestURL: s,\n homePage: i,\n serverRendering: n,\n designSystem: l,\n offline: r,\n editor: c,\n ...v\n });\n }\n setConfigFromObject(e) {\n Object.assign(this, e);\n }\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n setupOfflineStorage() {\n if (this.logger.debug(\"Checking offline storage\"), this.offline && this.cristal) {\n this.logger.debug(\"Looking for wrapping offline storage\");\n const e = this.cristal.getContainer().get(\"WrappingStorage\");\n e ? (this.logger.debug(\"Offline local storage is ready\"), e.setStorage(this.storage), e.setWikiConfig(this.storage.getWikiConfig()), this.storage = e) : this.logger.debug(\"Failed Looking for wrapping offline storage\");\n } else\n this.cristal || this.logger.debug(\"Cristal not initialized\"), this.offline || this.logger.debug(\"Offline mode not activated\");\n }\n isSupported(e) {\n return e == \"html\";\n }\n initialize() {\n this.offline && !this.offlineSetup && (this.setupOfflineStorage(), this.offlineSetup = !0, this.storage.isStorageReady());\n }\n defaultPageName() {\n return \"index\";\n }\n getType() {\n return \"Default\";\n }\n getNewPageDefaultName() {\n return \"newpage\";\n }\n};\nu = j([\n o(),\n I(0, d(\"Logger\"))\n], u);\nexport {\n x as ComponentInit,\n f as DefaultLogger,\n h as DefaultLoggerConfig,\n _ as DefaultPageData,\n u as DefaultWikiConfig,\n a as JSONLDDocument,\n S as registerAsyncComponent\n};\n//# sourceMappingURL=index.es.js.map\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultLogger } from \"@xwiki/platform-api\";\nimport { injectable } from \"inversify\";\nimport type {\n CristalApp,\n Logger,\n LoggerConfig,\n PageData,\n SkinManager,\n WikiConfig,\n} from \"@xwiki/platform-api\";\nimport type { Configurations } from \"@xwiki/platform-configuration-api\";\nimport type { Container } from \"inversify\";\nimport type { App, Component } from \"vue\";\nimport type { Router } from \"vue-router\";\n\n@injectable()\nexport class WorkerCristalApp implements CristalApp {\n // @ts-expect-error wikiConfig is temporarily undefined during class\n // initialization\n private wikiConfig: WikiConfig;\n // @ts-expect-error container is temporarily undefined during class\n // initialization\n private container: Container;\n private availableConfigurations: Map<string, WikiConfig>;\n\n public constructor() {\n this.availableConfigurations = new Map<string, WikiConfig>();\n }\n\n getApp(): App {\n throw new Error(\"Method not implemented.\");\n }\n\n getRouter(): Router {\n throw new Error(\"Method not implemented.\");\n }\n\n getContainer(): Container {\n return this.container;\n }\n\n setContainer(container: Container): void {\n this.container = container;\n }\n\n getWikiConfig(): WikiConfig {\n return this.wikiConfig;\n }\n\n setWikiConfig(wikiConfig: WikiConfig): void {\n this.wikiConfig = wikiConfig;\n }\n\n getSkinManager(): SkinManager {\n throw new Error(\"Method not implemented.\");\n }\n\n switchConfig(): void {}\n\n setAvailableConfigurations(configs: Configurations): void {\n for (const configKey in configs) {\n const wikiConfigObject = configs[configKey];\n const configType = wikiConfigObject?.configType;\n if (wikiConfigObject) {\n const wikiConfig = this.container.get<WikiConfig>(\"WikiConfig\", {\n name: configType,\n });\n wikiConfig.setConfigFromObject(wikiConfigObject);\n this.availableConfigurations.set(configKey, wikiConfig);\n }\n }\n }\n\n getAvailableConfigurations(): Map<string, WikiConfig> {\n return this.availableConfigurations;\n }\n\n deleteAvailableConfiguration(configName: string): void {\n this.availableConfigurations.delete(configName);\n }\n\n run(): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n getUIXTemplates(): Promise<Component[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n getMenuEntries(): string[] {\n throw new Error(\"Method not implemented.\");\n }\n\n getCurrentPage(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n getCurrentContent(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n getCurrentSource(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n getCurrentSyntax(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n setCurrentPage(): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n setContentRef(): void {\n throw new Error(\"Method not implemented.\");\n }\n\n loadPageFromURL(): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n loadPage(): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n getPage(): Promise<PageData> {\n throw new Error(\"Method not implemented.\");\n }\n\n getLogger(): Logger {\n return new DefaultLogger();\n }\n\n getLoggerConfig(): LoggerConfig {\n throw new Error(\"Method not implemented.\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { injectable } from \"inversify\";\nimport type { QueueWorker } from \"@xwiki/cristal-sharedworker-api\";\n\n@injectable()\nexport default class WorkerQueueWorker implements QueueWorker {\n public constructor() {\n this.initialize();\n }\n\n public initialize(): void {}\n\n public getStatus(): boolean {\n return true;\n }\n\n public async increment(): Promise<number> {\n return 0;\n }\n\n public async addToQueue(): Promise<void> {}\n\n public async getQueueSize(): Promise<number> {\n return 0;\n }\n}\n","/*!\n * pinia v3.0.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = (process.env.NODE_ENV !== 'production')\n ? () => {\n const pinia = hasInjectionContext() && inject(piniaSymbol);\n if (!pinia && !IS_CLIENT) {\n console.error(`[🍍]: Pinia instance not found in context. This falls back to the global activePinia which exposes you to cross-request pollution on the server. Most of the time, it means you are calling \"useStore()\" in the wrong place.\\n` +\n `Read https://vuejs.org/guide/reusability/composables.html to learn more`);\n }\n return pinia || activePinia;\n }\n : () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n detail: 0,\n screenX: 80,\n screenY: 20,\n clientX: 80,\n clientY: 20,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0,\n relatedTarget: null,\n });\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.add(callback);\n const removeSubscription = () => {\n const isDel = subscriptions.delete(callback);\n isDel && onCleanup();\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return (!isPlainObject(obj) ||\n !Object.prototype.hasOwnProperty.call(obj, skipHydrateSymbol));\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = new Set();\n let actionSubscriptions = new Set();\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions.clear();\n actionSubscriptions.clear();\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackSet = new Set();\n const onErrorCallbackSet = new Set();\n function after(callback) {\n afterCallbackSet.add(callback);\n }\n function onError(callback) {\n onErrorCallbackSet.add(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackSet, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackSet, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackSet, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackSet, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { injectable } from \"inversify\";\nimport { defineStore, storeToRefs } from \"pinia\";\nimport type {\n Action,\n Alert,\n AlertsService,\n Type as AlertType,\n} from \"@xwiki/cristal-alerts-api\";\nimport type { Store, StoreDefinition } from \"pinia\";\nimport type { Ref } from \"vue\";\n\ntype Id = \"alerts\";\ntype State = {\n alerts: Alert[];\n id: number;\n};\n/**\n * Take a given type \"Type\" and wraps each of its fields in a readonly Ref.\n */\ntype WrappedRefs<Type> = {\n readonly [Property in keyof Type]: Ref<Type[Property]>;\n};\ntype StateRefs = WrappedRefs<State>;\ntype Getters = Record<string, never>;\ntype Actions = {\n createAlert(type: AlertType, message: string, actions?: Action[]): void;\n deleteAlert(id: number): void;\n};\ntype AlertsStoreDefinition = StoreDefinition<Id, State, Getters, Actions>;\ntype AlertsStore = Store<Id, State, Getters, Actions>;\n\nconst alertsStore: AlertsStoreDefinition = defineStore<\n Id,\n State,\n Getters,\n Actions\n>(\"alerts\", {\n state() {\n return {\n alerts: [],\n id: 0,\n };\n },\n actions: {\n createAlert(type: AlertType, message: string, actions?: Action[]) {\n const foundAlert = this.alerts.find(\n (a) => a.type == type && a.message == message && a.actions == actions,\n );\n if (foundAlert) {\n foundAlert.duplicatesCount++;\n } else {\n this.alerts.push({\n id: this.id++,\n type: type,\n message: message,\n actions: actions,\n duplicatesCount: 0,\n });\n }\n },\n deleteAlert(id: number) {\n for (const i of this.alerts.keys()) {\n if (this.alerts[i].id == id) {\n this.alerts.splice(i, 1);\n break;\n }\n }\n },\n },\n});\n\n/**\n * @since 0.11\n * @beta\n */\n@injectable()\nexport class DefaultAlertsService implements AlertsService {\n private readonly refs: StateRefs;\n private readonly store: AlertsStore;\n\n constructor() {\n // An internal store is kept to easily provide refs for updatable elements.\n this.store = alertsStore();\n this.refs = storeToRefs(this.store);\n }\n\n list(): StateRefs[\"alerts\"] {\n return this.refs.alerts;\n }\n\n info(message: string, actions?: Action[]): void {\n this.store.createAlert(\"info\", message, actions);\n }\n\n success(message: string, actions?: Action[]): void {\n this.store.createAlert(\"success\", message, actions);\n }\n\n warning(message: string, actions?: Action[]): void {\n this.store.createAlert(\"warning\", message, actions);\n }\n\n error(message: string, actions?: Action[]): void {\n this.store.createAlert(\"error\", message, actions);\n }\n\n dismiss(id: number): void {\n this.store.deleteAlert(id);\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { inject, injectable } from \"inversify\";\nimport type {\n AlertsService,\n AlertsServiceProvider,\n} from \"@xwiki/cristal-alerts-api\";\nimport type { CristalApp } from \"@xwiki/platform-api\";\n\n/**\n * Provider for {@link DefaultAlertsService}.\n * @since 0.13\n * @beta\n */\n@injectable()\nexport class DefaultAlertsServiceProvider implements AlertsServiceProvider {\n constructor(@inject(\"CristalApp\") private readonly cristal: CristalApp) {}\n\n get(): AlertsService {\n return this.cristal.getContainer().get<AlertsService>(\"AlertsService\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultAlertsService } from \"./defaultAlertsService\";\nimport { DefaultAlertsServiceProvider } from \"./defaultAlertsServiceProvider\";\nimport { Container } from \"inversify\";\nimport type {\n AlertsService,\n AlertsServiceProvider,\n} from \"@xwiki/cristal-alerts-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<AlertsService>(\"AlertsService\")\n .to(DefaultAlertsService)\n .inSingletonScope();\n container\n .bind<AlertsServiceProvider>(\"AlertsServiceProvider\")\n .to(DefaultAlertsServiceProvider)\n .inSingletonScope();\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { inject, injectable } from \"inversify\";\nimport type { CristalApp } from \"@xwiki/platform-api\";\nimport type {\n AuthenticationManager,\n AuthenticationManagerProvider,\n} from \"@xwiki/platform-authentication-api\";\n\n/**\n * Default implementation of the authentication manager. Resolve the class\n * by looking for a component with the provided name in inversify.\n * @since 0.11\n * @beta\n */\n@injectable()\nclass DefaultAuthenticationManagerProvider implements AuthenticationManagerProvider {\n constructor(@inject(\"CristalApp\") private cristalApp: CristalApp) {}\n\n get(type?: string): AuthenticationManager | undefined {\n const resolvedType =\n type ??\n this.cristalApp.getWikiConfig().authenticationManager ??\n this.cristalApp.getWikiConfig().getType();\n try {\n return this.cristalApp\n .getContainer()\n .get(\"AuthenticationManager\", { name: resolvedType });\n } catch (e) {\n this.cristalApp\n .getLogger(\"authentication.api\")\n .warn(\n `Couldn't resolve AuthenticationManager for type=[${resolvedType}]`,\n e,\n );\n return undefined;\n }\n }\n}\n\nexport { DefaultAuthenticationManagerProvider };\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultAuthenticationManagerProvider } from \"./defaultAuthenticationManagerProvider\";\nimport { Container } from \"inversify\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/platform-authentication-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<AuthenticationManagerProvider>(\"AuthenticationManagerProvider\")\n .to(DefaultAuthenticationManagerProvider)\n .inSingletonScope();\n }\n}\n","((e,t)=>{\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Dexie=t()})(this,function(){var B=function(e,t){return(B=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};var _=function(){return(_=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function R(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||((r=r||Array.prototype.slice.call(t,0,o))[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}var f=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,O=Object.keys,x=Array.isArray;function a(t,n){return\"object\"==typeof n&&O(n).forEach(function(e){t[e]=n[e]}),t}\"undefined\"==typeof Promise||f.Promise||(f.Promise=Promise);var F=Object.getPrototypeOf,M={}.hasOwnProperty;function m(e,t){return M.call(e,t)}function N(t,n){\"function\"==typeof n&&(n=n(F(t))),(\"undefined\"==typeof Reflect?O:Reflect.ownKeys)(n).forEach(function(e){u(t,e,n[e])})}var L=Object.defineProperty;function u(e,t,n,r){L(e,t,a(n&&m(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function U(t){return{from:function(e){return t.prototype=Object.create(e.prototype),u(t.prototype,\"constructor\",t),{extend:N.bind(null,t.prototype)}}}}var V=Object.getOwnPropertyDescriptor;var z=[].slice;function W(e,t,n){return z.call(e,t,n)}function Y(e,t){return t(e)}function $(e){if(!e)throw new Error(\"Assertion Failed\")}function Q(e){f.setImmediate?setImmediate(e):setTimeout(e,0)}function c(e,t){if(\"string\"==typeof t&&m(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,o=t.length;r<o;++r){var i=c(e,t[r]);n.push(i)}return n}var a,u=t.indexOf(\".\");return-1===u||null==(a=e[t.substr(0,u)])?void 0:c(a,t.substr(u+1))}function b(e,t,n){if(e&&void 0!==t&&!(\"isFrozen\"in Object&&Object.isFrozen(e)))if(\"string\"!=typeof t&&\"length\"in t){$(\"string\"!=typeof n&&\"length\"in n);for(var r=0,o=t.length;r<o;++r)b(e,t[r],n[r])}else{var i,a,u=t.indexOf(\".\");-1!==u?(i=t.substr(0,u),\"\"===(u=t.substr(u+1))?void 0===n?x(e)&&!isNaN(parseInt(i))?e.splice(i,1):delete e[i]:e[i]=n:b(a=(a=e[i])&&m(e,i)?a:e[i]={},u,n)):void 0===n?x(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}function G(e){var t,n={};for(t in e)m(e,t)&&(n[t]=e[t]);return n}var X=[].concat;function H(e){return X.apply([],e)}var e=\"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\".split(\",\").concat(H([8,16,32,64].map(function(t){return[\"Int\",\"Uint\",\"Float\"].map(function(e){return e+t+\"Array\"})}))).filter(function(e){return f[e]}),J=new Set(e.map(function(e){return f[e]}));var Z=null;function ee(e){Z=new WeakMap;e=function e(t){if(!t||\"object\"!=typeof t)return t;var n=Z.get(t);if(n)return n;if(x(t)){n=[],Z.set(t,n);for(var r=0,o=t.length;r<o;++r)n.push(e(t[r]))}else if(J.has(t.constructor))n=t;else{var i,a=F(t);for(i in n=a===Object.prototype?{}:Object.create(a),Z.set(t,n),t)m(t,i)&&(n[i]=e(t[i]))}return n}(e);return Z=null,e}var te={}.toString;function ne(e){return te.call(e).slice(8,-1)}var re=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",oe=\"symbol\"==typeof re?function(e){var t;return null!=e&&(t=e[re])&&t.apply(e)}:function(){return null};function ie(e,t){t=e.indexOf(t);0<=t&&e.splice(t,1)}var ae={};function n(e){var t,n,r,o;if(1===arguments.length){if(x(e))return e.slice();if(this===ae&&\"string\"==typeof e)return[e];if(o=oe(e))for(n=[];!(r=o.next()).done;)n.push(r.value);else{if(null==e)return[e];if(\"number\"!=typeof(t=e.length))return[e];for(n=new Array(t);t--;)n[t]=e[t]}}else for(t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];return n}var ue=\"undefined\"!=typeof Symbol?function(e){return\"AsyncFunction\"===e[Symbol.toStringTag]}:function(){return!1},e=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],t=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(e),se={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function ce(e,t){this.name=e,this.message=t}function le(e,t){return e+\". Errors: \"+Object.keys(t).map(function(e){return t[e].toString()}).filter(function(e,t,n){return n.indexOf(e)===t}).join(\"\\n\")}function fe(e,t,n,r){this.failures=t,this.failedKeys=r,this.successCount=n,this.message=le(e,t)}function he(e,t){this.name=\"BulkError\",this.failures=Object.keys(t).map(function(e){return t[e]}),this.failuresByPos=t,this.message=le(e,this.failures)}U(ce).from(Error).extend({toString:function(){return this.name+\": \"+this.message}}),U(fe).from(ce),U(he).from(ce);var de=t.reduce(function(e,t){return e[t]=t+\"Error\",e},{}),pe=ce,k=t.reduce(function(e,n){var r=n+\"Error\";function t(e,t){this.name=r,e?\"string\"==typeof e?(this.message=\"\".concat(e).concat(t?\"\\n \"+t:\"\"),this.inner=t||null):\"object\"==typeof e&&(this.message=\"\".concat(e.name,\" \").concat(e.message),this.inner=e):(this.message=se[n]||r,this.inner=null)}return U(t).from(pe),e[n]=t,e},{}),ye=(k.Syntax=SyntaxError,k.Type=TypeError,k.Range=RangeError,e.reduce(function(e,t){return e[t+\"Error\"]=k[t],e},{}));e=t.reduce(function(e,t){return-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=k[t]),e},{});function g(){}function ve(e){return e}function me(t,n){return null==t||t===ve?n:function(e){return n(t(e))}}function be(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function ge(o,i){return o===g?i:function(){var e=o.apply(this,arguments),t=(void 0!==e&&(arguments[0]=e),this.onsuccess),n=this.onerror,r=(this.onsuccess=null,this.onerror=null,i.apply(this,arguments));return t&&(this.onsuccess=this.onsuccess?be(t,this.onsuccess):t),n&&(this.onerror=this.onerror?be(n,this.onerror):n),void 0!==r?r:e}}function we(n,r){return n===g?r:function(){n.apply(this,arguments);var e=this.onsuccess,t=this.onerror;this.onsuccess=this.onerror=null,r.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?be(e,this.onsuccess):e),t&&(this.onerror=this.onerror?be(t,this.onerror):t)}}function _e(o,i){return o===g?i:function(e){var t=o.apply(this,arguments),e=(a(e,t),this.onsuccess),n=this.onerror,r=(this.onsuccess=null,this.onerror=null,i.apply(this,arguments));return e&&(this.onsuccess=this.onsuccess?be(e,this.onsuccess):e),n&&(this.onerror=this.onerror?be(n,this.onerror):n),void 0===t?void 0===r?void 0:r:a(t,r)}}function xe(e,t){return e===g?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ke(o,i){return o===g?i:function(){var e=o.apply(this,arguments);if(e&&\"function\"==typeof e.then){for(var t=this,n=arguments.length,r=new Array(n);n--;)r[n]=arguments[n];return e.then(function(){return i.apply(t,r)})}return i.apply(this,arguments)}}e.ModifyError=fe,e.DexieError=ce,e.BulkError=he;var l=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function Oe(e){l=e}var Pe={},Ke=100,Ee=\"undefined\"==typeof Promise?[]:(t=Promise.resolve(),\"undefined\"!=typeof crypto&&crypto.subtle?[Ee=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0])),F(Ee),t]:[t,F(t),t]),t=Ee[0],Se=Ee[1],Se=Se&&Se.then,je=t&&t.constructor,Ae=!!Ee[2];var Ce=function(e,t){Re.push([e,t]),Ie&&(queueMicrotask(Ye),Ie=!1)},Te=!0,Ie=!0,qe=[],De=[],Be=ve,s={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:g,pgp:!1,env:{},finalize:g},P=s,Re=[],Fe=0,Me=[];function K(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this._lib=!1;var t=this._PSD=P;if(\"function\"!=typeof e){if(e!==Pe)throw new TypeError(\"Not a function\");this._state=arguments[1],this._value=arguments[2],!1===this._state&&Ue(this,this._value)}else this._state=null,this._value=null,++t.ref,function t(r,e){try{e(function(n){if(null===r._state){if(n===r)throw new TypeError(\"A promise cannot be resolved with itself.\");var e=r._lib&&$e();n&&\"function\"==typeof n.then?t(r,function(e,t){n instanceof K?n._then(e,t):n.then(e,t)}):(r._state=!0,r._value=n,Ve(r)),e&&Qe()}},Ue.bind(null,r))}catch(e){Ue(r,e)}}(this,e)}var Ne={get:function(){var u=P,t=et;function e(n,r){var o=this,i=!u.global&&(u!==P||t!==et),a=i&&!v(),e=new K(function(e,t){ze(o,new Le(ut(n,u,i,a),ut(r,u,i,a),e,t,u))});return this._consoleTask&&(e._consoleTask=this._consoleTask),e}return e.prototype=Pe,e},set:function(e){u(this,\"then\",e&&e.prototype===Pe?Ne:{get:function(){return e},set:Ne.set})}};function Le(e,t,n,r,o){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=o}function Ue(e,t){var n,r;De.push(t),null===e._state&&(n=e._lib&&$e(),t=Be(t),e._state=!1,e._value=t,r=e,qe.some(function(e){return e._value===r._value})||qe.push(r),Ve(e),n)&&Qe()}function Ve(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)ze(e,t[n]);var o=e._PSD;--o.ref||o.finalize(),0===Fe&&(++Fe,Ce(function(){0==--Fe&&Ge()},[]))}function ze(e,t){if(null===e._state)e._listeners.push(t);else{var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Fe,Ce(We,[n,e,t])}}function We(e,t,n){try{var r,o=t._value;!t._state&&De.length&&(De=[]),r=l&&t._consoleTask?t._consoleTask.run(function(){return e(o)}):e(o),t._state||-1!==De.indexOf(o)||(e=>{for(var t=qe.length;t;)if(qe[--t]._value===e._value)return qe.splice(t,1)})(t),n.resolve(r)}catch(e){n.reject(e)}finally{0==--Fe&&Ge(),--n.psd.ref||n.psd.finalize()}}function Ye(){at(s,function(){$e()&&Qe()})}function $e(){var e=Te;return Ie=Te=!1,e}function Qe(){var e,t,n;do{for(;0<Re.length;)for(e=Re,Re=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}}while(0<Re.length);Ie=Te=!0}function Ge(){for(var e=qe,t=(qe=[],e.forEach(function(e){e._PSD.onunhandled.call(null,e._value,e)}),Me.slice(0)),n=t.length;n;)t[--n]()}function Xe(e){return new K(Pe,!1,e)}function E(n,r){var o=P;return function(){var e=$e(),t=P;try{return h(o,!0),n.apply(this,arguments)}catch(e){r&&r(e)}finally{h(t,!1),e&&Qe()}}}N(K.prototype,{then:Ne,_then:function(e,t){ze(this,new Le(null,null,e,t,P))},catch:function(e){var t,n;return 1===arguments.length?this.then(null,e):(t=e,n=arguments[1],\"function\"==typeof t?this.then(null,function(e){return(e instanceof t?n:Xe)(e)}):this.then(null,function(e){return(e&&e.name===t?n:Xe)(e)}))},finally:function(t){return this.then(function(e){return K.resolve(t()).then(function(){return e})},function(e){return K.resolve(t()).then(function(){return Xe(e)})})},timeout:function(r,o){var i=this;return r<1/0?new K(function(e,t){var n=setTimeout(function(){return t(new k.Timeout(o))},r);i.then(e,t).finally(clearTimeout.bind(null,n))}):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&u(K.prototype,Symbol.toStringTag,\"Dexie.Promise\"),s.env=it(),N(K,{all:function(){var i=n.apply(null,arguments).map(rt);return new K(function(n,r){0===i.length&&n([]);var o=i.length;i.forEach(function(e,t){return K.resolve(e).then(function(e){i[t]=e,--o||n(i)},r)})})},resolve:function(n){return n instanceof K?n:n&&\"function\"==typeof n.then?new K(function(e,t){n.then(e,t)}):new K(Pe,!0,n)},reject:Xe,race:function(){var e=n.apply(null,arguments).map(rt);return new K(function(t,n){e.map(function(e){return K.resolve(e).then(t,n)})})},PSD:{get:function(){return P},set:function(e){return P=e}},totalEchoes:{get:function(){return et}},newPSD:y,usePSD:at,scheduler:{get:function(){return Ce},set:function(e){Ce=e}},rejectionMapper:{get:function(){return Be},set:function(e){Be=e}},follow:function(o,n){return new K(function(e,t){return y(function(n,r){var e=P;e.unhandleds=[],e.onunhandled=r,e.finalize=be(function(){var t,e=this;t=function(){0===e.unhandleds.length?n():r(e.unhandleds[0])},Me.push(function e(){t(),Me.splice(Me.indexOf(e),1)}),++Fe,Ce(function(){0==--Fe&&Ge()},[])},e.finalize),o()},n,e,t)})}}),je&&(je.allSettled&&u(K,\"allSettled\",function(){var e=n.apply(null,arguments).map(rt);return new K(function(n){0===e.length&&n([]);var r=e.length,o=new Array(r);e.forEach(function(e,t){return K.resolve(e).then(function(e){return o[t]={status:\"fulfilled\",value:e}},function(e){return o[t]={status:\"rejected\",reason:e}}).then(function(){return--r||n(o)})})})}),je.any&&\"undefined\"!=typeof AggregateError&&u(K,\"any\",function(){var e=n.apply(null,arguments).map(rt);return new K(function(n,r){0===e.length&&r(new AggregateError([]));var o=e.length,i=new Array(o);e.forEach(function(e,t){return K.resolve(e).then(function(e){return n(e)},function(e){i[t]=e,--o||r(new AggregateError(i))})})})}),je.withResolvers)&&(K.withResolvers=je.withResolvers);var i={awaits:0,echoes:0,id:0},He=0,Je=[],Ze=0,et=0,tt=0;function y(e,t,n,r){var o=P,i=Object.create(o),t=(i.parent=o,i.ref=0,i.global=!1,i.id=++tt,s.env,i.env=Ae?{Promise:K,PromiseProp:{value:K,configurable:!0,writable:!0},all:K.all,race:K.race,allSettled:K.allSettled,any:K.any,resolve:K.resolve,reject:K.reject}:{},t&&a(i,t),++o.ref,i.finalize=function(){--this.parent.ref||this.parent.finalize()},at(i,e,n,r));return 0===i.ref&&i.finalize(),t}function nt(){return i.id||(i.id=++He),++i.awaits,i.echoes+=Ke,i.id}function v(){return!!i.awaits&&(0==--i.awaits&&(i.id=0),i.echoes=i.awaits*Ke,!0)}function rt(e){return i.echoes&&e&&e.constructor===je?(nt(),e.then(function(e){return v(),e},function(e){return v(),w(e)})):e}function ot(){var e=Je[Je.length-1];Je.pop(),h(e,!1)}function h(e,t){var n,r,o=P;(t?!i.echoes||Ze++&&e===P:!Ze||--Ze&&e===P)||queueMicrotask(t?function(e){++et,i.echoes&&0!=--i.echoes||(i.echoes=i.awaits=i.id=0),Je.push(P),h(e,!0)}.bind(null,e):ot),e!==P&&(P=e,o===s&&(s.env=it()),Ae)&&(n=s.env.Promise,r=e.env,o.global||e.global)&&(Object.defineProperty(f,\"Promise\",r.PromiseProp),n.all=r.all,n.race=r.race,n.resolve=r.resolve,n.reject=r.reject,r.allSettled&&(n.allSettled=r.allSettled),r.any)&&(n.any=r.any)}function it(){var e=f.Promise;return Ae?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(f,\"Promise\"),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject}:{}}function at(e,t,n,r,o){var i=P;try{return h(e,!0),t(n,r,o)}finally{h(i,!1)}}function ut(t,n,r,o){return\"function\"!=typeof t?t:function(){var e=P;r&&nt(),h(n,!0);try{return t.apply(this,arguments)}finally{h(e,!1),o&&queueMicrotask(v)}}}function st(e){Promise===je&&0===i.echoes?0===Ze?e():enqueueNativeMicroTask(e):setTimeout(e,0)}-1===(\"\"+Se).indexOf(\"[native code]\")&&(nt=v=g);var w=K.reject;var ct=String.fromCharCode(65535),S=\"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\",lt=\"String expected.\",ft=[],ht=\"__dbnames\",dt=\"readonly\",pt=\"readwrite\";function yt(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var vt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function mt(t){return\"string\"!=typeof t||/\\./.test(t)?function(e){return e}:function(e){return void 0===e[t]&&t in e&&delete(e=ee(e))[t],e}}function bt(){throw k.Type(\"Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.\")}function j(e,t){try{var n=gt(e),r=gt(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return t<e?1:e<t?-1:0;case\"binary\":for(var o=wt(e),i=wt(t),a=o.length,u=i.length,s=a<u?a:u,c=0;c<s;++c)if(o[c]!==i[c])return o[c]<i[c]?-1:1;return a===u?0:a<u?-1:1;case\"Array\":for(var l=e,f=t,h=l.length,d=f.length,p=h<d?h:d,y=0;y<p;++y){var v=j(l[y],f[y]);if(0!==v)return v}return h===d?0:h<d?-1:1}}catch(e){}return NaN}function gt(e){var t=typeof e;return\"object\"==t&&(ArrayBuffer.isView(e)||\"ArrayBuffer\"===(t=ne(e)))?\"binary\":t}function wt(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}function _t(t,n,r){var e=t.schema.yProps;return e?(n&&0<r.numFailures&&(n=n.filter(function(e,t){return!r.failures[t]})),Promise.all(e.map(function(e){e=e.updatesTable;return n?t.db.table(e).where(\"k\").anyOf(n).delete():t.db.table(e).clear()})).then(function(){return r})):r}kt.prototype.execute=function(e){var t=this[\"@@propmod\"];if(void 0!==t.add){var n=t.add;if(x(n))return R(R([],x(e)?e:[],!0),n,!0).sort();if(\"number\"==typeof n)return(Number(e)||0)+n;if(\"bigint\"==typeof n)try{return BigInt(e)+n}catch(e){return BigInt(0)+n}throw new TypeError(\"Invalid term \".concat(n))}if(void 0!==t.remove){var r=t.remove;if(x(r))return x(e)?e.filter(function(e){return!r.includes(e)}).sort():[];if(\"number\"==typeof r)return Number(e)-r;if(\"bigint\"==typeof r)try{return BigInt(e)-r}catch(e){return BigInt(0)-r}throw new TypeError(\"Invalid subtrahend \".concat(r))}n=null==(n=t.replacePrefix)?void 0:n[0];return n&&\"string\"==typeof e&&e.startsWith(n)?t.replacePrefix[1]+e.substring(n.length):e};var xt=kt;function kt(e){this[\"@@propmod\"]=e}function Ot(e,t){for(var n=O(t),r=n.length,o=!1,i=0;i<r;++i){var a=n[i],u=t[a],s=c(e,a);u instanceof xt?(b(e,a,u.execute(s)),o=!0):s!==u&&(b(e,a,u),o=!0)}return o}r.prototype._trans=function(e,r,t){var n=this._tx||P.trans,o=this.name,i=l&&\"undefined\"!=typeof console&&console.createTask&&console.createTask(\"Dexie: \".concat(\"readonly\"===e?\"read\":\"write\",\" \").concat(this.name));function a(e,t,n){if(n.schema[o])return r(n.idbtrans,n);throw new k.NotFound(\"Table \"+o+\" not part of transaction\")}var u=$e();try{var s=n&&n.db._novip===this.db._novip?n===P.trans?n._promise(e,a,t):y(function(){return n._promise(e,a,t)},{trans:n,transless:P.transless||P}):function t(n,r,o,i){if(n.idbdb&&(n._state.openComplete||P.letThrough||n._vip)){var a=n._createTransaction(r,o,n._dbSchema);try{a.create(),n._state.PR1398_maxLoop=3}catch(e){return e.name===de.InvalidState&&n.isOpen()&&0<--n._state.PR1398_maxLoop?(console.warn(\"Dexie: Need to reopen db\"),n.close({disableAutoOpen:!1}),n.open().then(function(){return t(n,r,o,i)})):w(e)}return a._promise(r,function(e,t){return y(function(){return P.trans=a,i(e,t,a)})}).then(function(e){if(\"readwrite\"===r)try{a.idbtrans.commit()}catch(e){}return\"readonly\"===r?e:a._completion.then(function(){return e})})}if(n._state.openComplete)return w(new k.DatabaseClosed(n._state.dbOpenError));if(!n._state.isBeingOpened){if(!n._state.autoOpen)return w(new k.DatabaseClosed);n.open().catch(g)}return n._state.dbReadyPromise.then(function(){return t(n,r,o,i)})}(this.db,e,[this.name],a);return i&&(s._consoleTask=i,s=s.catch(function(e){return console.trace(e),w(e)})),s}finally{u&&Qe()}},r.prototype.get=function(t,e){var n=this;return t&&t.constructor===Object?this.where(t).first(e):null==t?w(new k.Type(\"Invalid argument to Table.get()\")):this._trans(\"readonly\",function(e){return n.core.get({trans:e,key:t}).then(function(e){return n.hook.reading.fire(e)})}).then(e)},r.prototype.where=function(i){if(\"string\"==typeof i)return new this.db.WhereClause(this,i);if(x(i))return new this.db.WhereClause(this,\"[\".concat(i.join(\"+\"),\"]\"));var n=O(i);if(1===n.length)return this.where(n[0]).equals(i[n[0]]);var e=this.schema.indexes.concat(this.schema.primKey).filter(function(t){if(t.compound&&n.every(function(e){return 0<=t.keyPath.indexOf(e)})){for(var e=0;e<n.length;++e)if(-1===n.indexOf(t.keyPath[e]))return!1;return!0}return!1}).sort(function(e,t){return e.keyPath.length-t.keyPath.length})[0];if(e&&this.db._maxKey!==ct)return t=e.keyPath.slice(0,n.length),this.where(t).equals(t.map(function(e){return i[e]}));!e&&l&&console.warn(\"The query \".concat(JSON.stringify(i),\" on \").concat(this.name,\" would benefit from a \")+\"compound index [\".concat(n.join(\"+\"),\"]\"));var a=this.schema.idxByName;function u(e,t){return 0===j(e,t)}var t=n.reduce(function(e,t){var n=e[0],e=e[1],r=a[t],o=i[t];return[n||r,n||!r?yt(e,r&&r.multi?function(e){e=c(e,t);return x(e)&&e.some(function(e){return u(o,e)})}:function(e){return u(o,c(e,t))}):e]},[null,null]),r=t[0],t=t[1];return r?this.where(r.name).equals(i[r.keyPath]).filter(t):e?this.filter(t):this.where(n).equals(\"\")},r.prototype.filter=function(e){return this.toCollection().and(e)},r.prototype.count=function(e){return this.toCollection().count(e)},r.prototype.offset=function(e){return this.toCollection().offset(e)},r.prototype.limit=function(e){return this.toCollection().limit(e)},r.prototype.each=function(e){return this.toCollection().each(e)},r.prototype.toArray=function(e){return this.toCollection().toArray(e)},r.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},r.prototype.orderBy=function(e){return new this.db.Collection(new this.db.WhereClause(this,x(e)?\"[\".concat(e.join(\"+\"),\"]\"):e))},r.prototype.reverse=function(){return this.toCollection().reverse()},r.prototype.mapToClass=function(r){for(var i=this.db,a=this.name,o=((this.schema.mappedClass=r).prototype instanceof bt&&(r=(e=>{var t=o,n=e;if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=t}function o(){return null!==e&&e.apply(this,arguments)||this}return B(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r),Object.defineProperty(o.prototype,\"db\",{get:function(){return i},enumerable:!1,configurable:!0}),o.prototype.table=function(){return a},o})(r)),new Set),e=r.prototype;e;e=F(e))Object.getOwnPropertyNames(e).forEach(function(e){return o.add(e)});function t(e){if(!e)return e;var t,n=Object.create(r.prototype);for(t in e)if(!o.has(t))try{n[t]=e[t]}catch(e){}return n}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),r},r.prototype.defineClass=function(){return this.mapToClass(function(e){a(this,e)})},r.prototype.add=function(t,n){var r=this,e=this.schema.primKey,o=e.auto,i=e.keyPath,a=t;return i&&o&&(a=mt(i)(t)),this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"add\",keys:null!=n?[n]:null,values:[a]})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):e.lastResult}).then(function(e){if(i)try{b(t,i,e)}catch(e){}return e})},r.prototype.upsert=function(r,o){var i=this,a=this.schema.primKey.keyPath;return this._trans(\"readwrite\",function(n){return i.core.get({trans:n,key:r}).then(function(t){var e=null!=t?t:{};return Ot(e,o),a&&b(e,a,r),i.core.mutate({trans:n,type:\"put\",values:[e],keys:[r],upsert:!0,updates:{keys:[r],changeSpecs:[o]}}).then(function(e){return e.numFailures?K.reject(e.failures[0]):!!t})})})},r.prototype.update=function(e,t){return\"object\"!=typeof e||x(e)?this.where(\":id\").equals(e).modify(t):void 0===(e=c(e,this.schema.primKey.keyPath))?w(new k.InvalidArgument(\"Given object does not contain its primary key\")):this.where(\":id\").equals(e).modify(t)},r.prototype.put=function(t,n){var r=this,e=this.schema.primKey,o=e.auto,i=e.keyPath,a=t;return i&&o&&(a=mt(i)(t)),this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"put\",values:[a],keys:null!=n?[n]:null})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):e.lastResult}).then(function(e){if(i)try{b(t,i,e)}catch(e){}return e})},r.prototype.delete=function(t){var n=this;return this._trans(\"readwrite\",function(e){return n.core.mutate({trans:e,type:\"delete\",keys:[t]}).then(function(e){return _t(n,[t],e)}).then(function(e){return e.numFailures?K.reject(e.failures[0]):void 0})})},r.prototype.clear=function(){var t=this;return this._trans(\"readwrite\",function(e){return t.core.mutate({trans:e,type:\"deleteRange\",range:vt}).then(function(e){return _t(t,null,e)})}).then(function(e){return e.numFailures?K.reject(e.failures[0]):void 0})},r.prototype.bulkGet=function(t){var n=this;return this._trans(\"readonly\",function(e){return n.core.getMany({keys:t,trans:e}).then(function(e){return e.map(function(e){return n.hook.reading.fire(e)})})})},r.prototype.bulkAdd=function(o,e,t){var i=this,a=Array.isArray(e)?e:void 0,u=(t=t||(a?void 0:e))?t.allKeys:void 0;return this._trans(\"readwrite\",function(e){var t=i.schema.primKey,n=t.auto,t=t.keyPath;if(t&&a)throw new k.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(a&&a.length!==o.length)throw new k.InvalidArgument(\"Arguments objects and keys must have the same length\");var r=o.length,n=t&&n?o.map(mt(t)):o;return i.core.mutate({trans:e,type:\"add\",keys:a,values:n,wantResults:u}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return u?e.results:e.lastResult;throw new he(\"\".concat(i.name,\".bulkAdd(): \").concat(t,\" of \").concat(r,\" operations failed\"),n)})})},r.prototype.bulkPut=function(o,e,t){var i=this,a=Array.isArray(e)?e:void 0,u=(t=t||(a?void 0:e))?t.allKeys:void 0;return this._trans(\"readwrite\",function(e){var t=i.schema.primKey,n=t.auto,t=t.keyPath;if(t&&a)throw new k.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(a&&a.length!==o.length)throw new k.InvalidArgument(\"Arguments objects and keys must have the same length\");var r=o.length,n=t&&n?o.map(mt(t)):o;return i.core.mutate({trans:e,type:\"put\",keys:a,values:n,wantResults:u}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return u?e.results:e.lastResult;throw new he(\"\".concat(i.name,\".bulkPut(): \").concat(t,\" of \").concat(r,\" operations failed\"),n)})})},r.prototype.bulkUpdate=function(t){var h=this,n=this.core,r=t.map(function(e){return e.key}),o=t.map(function(e){return e.changes}),d=[];return this._trans(\"readwrite\",function(e){return n.getMany({trans:e,keys:r,cache:\"clone\"}).then(function(c){var l=[],f=[],s=(t.forEach(function(e,t){var n=e.key,r=e.changes,o=c[t];if(o){for(var i=0,a=Object.keys(r);i<a.length;i++){var u=a[i],s=r[u];if(u===h.schema.primKey.keyPath){if(0!==j(s,n))throw new k.Constraint(\"Cannot update primary key in bulkUpdate()\")}else b(o,u,s)}d.push(t),l.push(n),f.push(o)}}),l.length);return n.mutate({trans:e,type:\"put\",keys:l,values:f,updates:{keys:r,changeSpecs:o}}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return s;for(var r=0,o=Object.keys(n);r<o.length;r++){var i,a=o[r],u=d[Number(a)];null!=u&&(i=n[a],delete n[a],n[u]=i)}throw new he(\"\".concat(h.name,\".bulkUpdate(): \").concat(t,\" of \").concat(s,\" operations failed\"),n)})})})},r.prototype.bulkDelete=function(t){var r=this,o=t.length;return this._trans(\"readwrite\",function(e){return r.core.mutate({trans:e,type:\"delete\",keys:t}).then(function(e){return _t(r,t,e)})}).then(function(e){var t=e.numFailures,n=e.failures;if(0===t)return e.lastResult;throw new he(\"\".concat(r.name,\".bulkDelete(): \").concat(t,\" of \").concat(o,\" operations failed\"),n)})};var Pt=r;function r(){}function Kt(o){function t(e,t){if(t){for(var n=arguments.length,r=new Array(n-1);--n;)r[n-1]=arguments[n];return a[e].subscribe.apply(null,r),o}if(\"string\"==typeof e)return a[e]}var a={};t.addEventType=u;for(var e=1,n=arguments.length;e<n;++e)u(arguments[e]);return t;function u(e,n,r){var o,i;if(\"object\"!=typeof e)return n=n||xe,i={subscribers:[],fire:r=r||g,subscribe:function(e){-1===i.subscribers.indexOf(e)&&(i.subscribers.push(e),i.fire=n(i.fire,e))},unsubscribe:function(t){i.subscribers=i.subscribers.filter(function(e){return e!==t}),i.fire=i.subscribers.reduce(n,r)}},a[e]=t[e]=i;O(o=e).forEach(function(e){var t=o[e];if(x(t))u(e,o[e][0],o[e][1]);else{if(\"asap\"!==t)throw new k.InvalidArgument(\"Invalid event config\");var n=u(e,ve,function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];n.subscribers.forEach(function(e){Q(function(){e.apply(null,t)})})})}})}}function Et(e,t){return U(t).from({prototype:e}),t}function St(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function jt(e,t){e.filter=yt(e.filter,t)}function At(e,t,n){var r=e.replayFilter;e.replayFilter=r?function(){return yt(r(),t())}:t,e.justLimit=n&&!r}function Ct(e,t){if(e.isPrimKey)return t.primaryKey;var n=t.getIndexByKeyPath(e.index);if(n)return n;throw new k.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\")}function Tt(e,t,n){var r=Ct(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function It(e,i,t,n){var a,r,u=e.replayFilter?yt(e.filter,e.replayFilter()):e.filter;return e.or?(a={},r=function(e,t,n){var r,o;u&&!u(t,n,function(e){return t.stop(e)},function(e){return t.fail(e)})||(\"[object ArrayBuffer]\"===(o=\"\"+(r=t.primaryKey))&&(o=\"\"+new Uint8Array(r)),m(a,o))||(a[o]=!0,i(e,t,n))},Promise.all([e.or._iterate(r,t),qt(Tt(e,n,t),e.algorithm,r,!e.keysOnly&&e.valueMapper)])):qt(Tt(e,n,t),yt(e.algorithm,u),i,!e.keysOnly&&e.valueMapper)}function qt(e,r,o,i){var a=E(i?function(e,t,n){return o(i(e),t,n)}:o);return e.then(function(n){if(n)return n.start(function(){var t=function(){return n.continue()};r&&!r(n,function(e){return t=e},function(e){n.stop(e),t=g},function(e){n.fail(e),t=g})||a(n.value,n,function(e){return t=e}),t()})})}o.prototype._read=function(e,t){var n=this._ctx;return n.error?n.table._trans(null,w.bind(null,n.error)):n.table._trans(\"readonly\",e).then(t)},o.prototype._write=function(e){var t=this._ctx;return t.error?t.table._trans(null,w.bind(null,t.error)):t.table._trans(\"readwrite\",e,\"locked\")},o.prototype._addAlgorithm=function(e){var t=this._ctx;t.algorithm=yt(t.algorithm,e)},o.prototype._iterate=function(e,t){return It(this._ctx,e,t,this._ctx.table.core)},o.prototype.clone=function(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&a(n,e),t._ctx=n,t},o.prototype.raw=function(){return this._ctx.valueMapper=null,this},o.prototype.each=function(t){var n=this._ctx;return this._read(function(e){return It(n,t,e,n.table.core)})},o.prototype.count=function(e){var o=this;return this._read(function(e){var t,n=o._ctx,r=n.table.core;return St(n,!0)?r.count({trans:e,query:{index:Ct(n,r.schema),range:n.range}}).then(function(e){return Math.min(e,n.limit)}):(t=0,It(n,function(){return++t,!1},e,r).then(function(){return t}))}).then(e)},o.prototype.sortBy=function(e,t){var n=e.split(\".\").reverse(),r=n[0],o=n.length-1;function i(e,t){return t?i(e[n[t]],t-1):e[r]}var a=\"next\"===this._ctx.dir?1:-1;function u(e,t){return j(i(e,o),i(t,o))*a}return this.toArray(function(e){return e.sort(u)}).then(t)},o.prototype.toArray=function(e){var i=this;return this._read(function(e){var t,n,r,o=i._ctx;return\"next\"===o.dir&&St(o,!0)&&0<o.limit?(t=o.valueMapper,n=Ct(o,o.table.core.schema),o.table.core.query({trans:e,limit:o.limit,values:!0,query:{index:n,range:o.range}}).then(function(e){e=e.result;return t?e.map(t):e})):(r=[],It(o,function(e){return r.push(e)},e,o.table.core).then(function(){return r}))},e)},o.prototype.offset=function(t){var e=this._ctx;return t<=0||(e.offset+=t,St(e)?At(e,function(){var n=t;return function(e,t){return 0===n||(1===n?--n:t(function(){e.advance(n),n=0}),!1)}}):At(e,function(){var e=t;return function(){return--e<0}})),this},o.prototype.limit=function(e){return this._ctx.limit=Math.min(this._ctx.limit,e),At(this._ctx,function(){var r=e;return function(e,t,n){return--r<=0&&t(n),0<=r}},!0),this},o.prototype.until=function(r,o){return jt(this._ctx,function(e,t,n){return!r(e.value)||(t(n),o)}),this},o.prototype.first=function(e){return this.limit(1).toArray(function(e){return e[0]}).then(e)},o.prototype.last=function(e){return this.reverse().first(e)},o.prototype.filter=function(t){var e;return jt(this._ctx,function(e){return t(e.value)}),(e=this._ctx).isMatch=yt(e.isMatch,t),this},o.prototype.and=function(e){return this.filter(e)},o.prototype.or=function(e){return new this.db.WhereClause(this._ctx.table,e,this)},o.prototype.reverse=function(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},o.prototype.desc=function(){return this.reverse()},o.prototype.eachKey=function(n){var e=this._ctx;return e.keysOnly=!e.isMatch,this.each(function(e,t){n(t.key,t)})},o.prototype.eachUniqueKey=function(e){return this._ctx.unique=\"unique\",this.eachKey(e)},o.prototype.eachPrimaryKey=function(n){var e=this._ctx;return e.keysOnly=!e.isMatch,this.each(function(e,t){n(t.primaryKey,t)})},o.prototype.keys=function(e){var t=this._ctx,n=(t.keysOnly=!t.isMatch,[]);return this.each(function(e,t){n.push(t.key)}).then(function(){return n}).then(e)},o.prototype.primaryKeys=function(e){var n=this._ctx;if(\"next\"===n.dir&&St(n,!0)&&0<n.limit)return this._read(function(e){var t=Ct(n,n.table.core.schema);return n.table.core.query({trans:e,values:!1,limit:n.limit,query:{index:t,range:n.range}})}).then(function(e){return e.result}).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(e,t){r.push(t.primaryKey)}).then(function(){return r}).then(e)},o.prototype.uniqueKeys=function(e){return this._ctx.unique=\"unique\",this.keys(e)},o.prototype.firstKey=function(e){return this.limit(1).keys(function(e){return e[0]}).then(e)},o.prototype.lastKey=function(e){return this.reverse().firstKey(e)},o.prototype.distinct=function(){var n,e=this._ctx,e=e.index&&e.table.schema.idxByName[e.index];return e&&e.multi&&(n={},jt(this._ctx,function(e){var e=e.primaryKey.toString(),t=m(n,e);return n[e]=!0,!t})),this},o.prototype.modify=function(x){var n=this,k=this._ctx;return this._write(function(p){function y(e,t){var n=t.failures;u+=e-t.numFailures;for(var r=0,o=O(n);r<o.length;r++){var i=o[r];a.push(n[i])}}var v=\"function\"==typeof x?x:function(e){return Ot(e,x)},m=k.table.core,e=m.schema.primaryKey,b=e.outbound,g=e.extractKey,w=200,e=n.db._options.modifyChunkSize,a=(e&&(w=\"object\"==typeof e?e[m.name]||e[\"*\"]||200:e),[]),u=0,t=[],_=x===Bt;return n.clone().primaryKeys().then(function(f){function h(s){var c=Math.min(w,f.length-s),l=f.slice(s,s+c);return(_?Promise.resolve([]):m.getMany({trans:p,keys:l,cache:\"immutable\"})).then(function(e){var n=[],t=[],r=b?[]:null,o=_?l:[];if(!_)for(var i=0;i<c;++i){var a=e[i],u={value:ee(a),primKey:f[s+i]};!1!==v.call(u,u.value,u)&&(null==u.value?o.push(f[s+i]):b||0===j(g(a),g(u.value))?(t.push(u.value),b&&r.push(f[s+i])):(o.push(f[s+i]),n.push(u.value)))}return Promise.resolve(0<n.length&&m.mutate({trans:p,type:\"add\",values:n}).then(function(e){for(var t in e.failures)o.splice(parseInt(t),1);y(n.length,e)})).then(function(){return(0<t.length||d&&\"object\"==typeof x)&&m.mutate({trans:p,type:\"put\",keys:r,values:t,criteria:d,changeSpec:\"function\"!=typeof x&&x,isAdditionalChunk:0<s}).then(function(e){return y(t.length,e)})}).then(function(){return(0<o.length||d&&_)&&m.mutate({trans:p,type:\"delete\",keys:o,criteria:d,isAdditionalChunk:0<s}).then(function(e){return _t(k.table,o,e)}).then(function(e){return y(o.length,e)})}).then(function(){return f.length>s+c&&h(s+w)})})}var d=St(k)&&k.limit===1/0&&(\"function\"!=typeof x||_)&&{index:k.index,range:k.range};return h(0).then(function(){if(0<a.length)throw new fe(\"Error modifying one or more objects\",a,u,t);return f.length})})})},o.prototype.delete=function(){var o=this._ctx,n=o.range;return!St(o)||o.table.schema.yProps||!o.isPrimKey&&3!==n.type?this.modify(Bt):this._write(function(e){var t=o.table.core.schema.primaryKey,r=n;return o.table.core.count({trans:e,query:{index:t,range:r}}).then(function(n){return o.table.core.mutate({trans:e,type:\"deleteRange\",range:r}).then(function(e){var t=e.failures,e=e.numFailures;if(e)throw new fe(\"Could not delete some values\",Object.keys(t).map(function(e){return t[e]}),n-e);return n-e})})})};var Dt=o;function o(){}var Bt=function(e,t){return t.value=null};function Rt(e,t){return e<t?-1:e===t?0:1}function Ft(e,t){return t<e?-1:e===t?0:1}function A(e,t,n){e=e instanceof Ut?new e.Collection(e):e;return e._ctx.error=new(n||TypeError)(t),e}function Mt(e){return new e.Collection(e,function(){return Lt(\"\")}).limit(0)}function Nt(e,s,n,r){var o,c,l,f,h,d,p,y=n.length;if(!n.every(function(e){return\"string\"==typeof e}))return A(e,lt);function t(e){o=\"next\"===e?function(e){return e.toUpperCase()}:function(e){return e.toLowerCase()},c=\"next\"===e?function(e){return e.toLowerCase()}:function(e){return e.toUpperCase()},l=\"next\"===e?Rt:Ft;var t=n.map(function(e){return{lower:c(e),upper:o(e)}}).sort(function(e,t){return l(e.lower,t.lower)});f=t.map(function(e){return e.upper}),h=t.map(function(e){return e.lower}),p=\"next\"===(d=e)?\"\":r}t(\"next\");var e=new e.Collection(e,function(){return C(f[0],h[y-1]+r)}),v=(e._ondirectionchange=function(e){t(e)},0);return e._addAlgorithm(function(e,t,n){var r=e.key;if(\"string\"==typeof r){var o=c(r);if(s(o,h,v))return!0;for(var i=null,a=v;a<y;++a){var u=((e,t,n,r,o,i)=>{for(var a=Math.min(e.length,r.length),u=-1,s=0;s<a;++s){var c=t[s];if(c!==r[s])return o(e[s],n[s])<0?e.substr(0,s)+n[s]+n.substr(s+1):o(e[s],r[s])<0?e.substr(0,s)+r[s]+n.substr(s+1):0<=u?e.substr(0,u)+t[u]+n.substr(u+1):null;o(e[s],c)<0&&(u=s)}return a<r.length&&\"next\"===i?e+n.substr(e.length):a<e.length&&\"prev\"===i?e.substr(0,n.length):u<0?null:e.substr(0,u)+r[u]+n.substr(u+1)})(r,o,f[a],h[a],l,d);null===u&&null===i?v=a+1:(null===i||0<l(i,u))&&(i=u)}t(null!==i?function(){e.continue(i+p)}:n)}return!1}),e}function C(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Lt(e){return{type:1,lower:e,upper:e}}Object.defineProperty(d.prototype,\"Collection\",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),d.prototype.between=function(e,t,n,r){n=!1!==n,r=!0===r;try{return 0<this._cmp(e,t)||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?Mt(this):new this.Collection(this,function(){return C(e,t,!n,!r)})}catch(e){return A(this,S)}},d.prototype.equals=function(e){return null==e?A(this,S):new this.Collection(this,function(){return Lt(e)})},d.prototype.above=function(e){return null==e?A(this,S):new this.Collection(this,function(){return C(e,void 0,!0)})},d.prototype.aboveOrEqual=function(e){return null==e?A(this,S):new this.Collection(this,function(){return C(e,void 0,!1)})},d.prototype.below=function(e){return null==e?A(this,S):new this.Collection(this,function(){return C(void 0,e,!1,!0)})},d.prototype.belowOrEqual=function(e){return null==e?A(this,S):new this.Collection(this,function(){return C(void 0,e)})},d.prototype.startsWith=function(e){return\"string\"!=typeof e?A(this,lt):this.between(e,e+ct,!0,!0)},d.prototype.startsWithIgnoreCase=function(e){return\"\"===e?this.startsWith(e):Nt(this,function(e,t){return 0===e.indexOf(t[0])},[e],ct)},d.prototype.equalsIgnoreCase=function(e){return Nt(this,function(e,t){return e===t[0]},[e],\"\")},d.prototype.anyOfIgnoreCase=function(){var e=n.apply(ae,arguments);return 0===e.length?Mt(this):Nt(this,function(e,t){return-1!==t.indexOf(e)},e,\"\")},d.prototype.startsWithAnyOfIgnoreCase=function(){var e=n.apply(ae,arguments);return 0===e.length?Mt(this):Nt(this,function(t,e){return e.some(function(e){return 0===t.indexOf(e)})},e,ct)},d.prototype.anyOf=function(){var e,o,t=this,i=n.apply(ae,arguments),a=this._cmp;try{i.sort(a)}catch(e){return A(this,S)}return 0===i.length?Mt(this):((e=new this.Collection(this,function(){return C(i[0],i[i.length-1])}))._ondirectionchange=function(e){a=\"next\"===e?t._ascending:t._descending,i.sort(a)},o=0,e._addAlgorithm(function(e,t,n){for(var r=e.key;0<a(r,i[o]);)if(++o===i.length)return t(n),!1;return 0===a(r,i[o])||(t(function(){e.continue(i[o])}),!1)}),e)},d.prototype.notEqual=function(e){return this.inAnyRange([[-1/0,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},d.prototype.noneOf=function(){var e=n.apply(ae,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return A(this,S)}var t=e.reduce(function(e,t){return e?e.concat([[e[e.length-1][1],t]]):[[-1/0,t]]},null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})},d.prototype.inAnyRange=function(e,t){var i=this,a=this._cmp,u=this._ascending,n=this._descending,s=this._min,c=this._max;if(0===e.length)return Mt(this);if(!e.every(function(e){return void 0!==e[0]&&void 0!==e[1]&&u(e[0],e[1])<=0}))return A(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",k.InvalidArgument);var r=!t||!1!==t.includeLowers,o=t&&!0===t.includeUppers;var l,f=u;function h(e,t){return f(e[0],t[0])}try{(l=e.reduce(function(e,t){for(var n=0,r=e.length;n<r;++n){var o=e[n];if(a(t[0],o[1])<0&&0<a(t[1],o[0])){o[0]=s(o[0],t[0]),o[1]=c(o[1],t[1]);break}}return n===r&&e.push(t),e},[])).sort(h)}catch(e){return A(this,S)}var d=0,p=o?function(e){return 0<u(e,l[d][1])}:function(e){return 0<=u(e,l[d][1])},y=r?function(e){return 0<n(e,l[d][0])}:function(e){return 0<=n(e,l[d][0])};var v=p,t=new this.Collection(this,function(){return C(l[0][0],l[l.length-1][1],!r,!o)});return t._ondirectionchange=function(e){f=\"next\"===e?(v=p,u):(v=y,n),l.sort(h)},t._addAlgorithm(function(e,t,n){for(var r,o=e.key;v(o);)if(++d===l.length)return t(n),!1;return!p(r=o)&&!y(r)||(0===i._cmp(o,l[d][1])||0===i._cmp(o,l[d][0])||t(function(){f===u?e.continue(l[d][0]):e.continue(l[d][1])}),!1)}),t},d.prototype.startsWithAnyOf=function(){var e=n.apply(ae,arguments);return e.every(function(e){return\"string\"==typeof e})?0===e.length?Mt(this):this.inAnyRange(e.map(function(e){return[e,e+ct]})):A(this,\"startsWithAnyOf() only works with strings\")};var Ut=d;function d(){}function T(t){return E(function(e){return Vt(e),t(e.target.error),!1})}function Vt(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var zt=\"storagemutated\",Wt=\"x-storagemutated-1\",Yt=Kt(null,zt),$t=(p.prototype._lock=function(){return $(!P.global),++this._reculock,1!==this._reculock||P.global||(P.lockOwnerFor=this),this},p.prototype._unlock=function(){if($(!P.global),0==--this._reculock)for(P.global||(P.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var e=this._blockedFuncs.shift();try{at(e[1],e[0])}catch(e){}}return this},p.prototype._locked=function(){return this._reculock&&P.lockOwnerFor!==this},p.prototype.create=function(t){var n=this;if(this.mode){var e=this.db.idbdb,r=this.db._state.dbOpenError;if($(!this.idbtrans),!t&&!e)switch(r&&r.name){case\"DatabaseClosedError\":throw new k.DatabaseClosed(r);case\"MissingAPIError\":throw new k.MissingAPI(r.message,r);default:throw new k.OpenFailed(r)}if(!this.active)throw new k.TransactionInactive;$(null===this._completion._state),(t=this.idbtrans=t||(this.db.core||e).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=E(function(e){Vt(e),n._reject(t.error)}),t.onabort=E(function(e){Vt(e),n.active&&n._reject(new k.Abort(t.error)),n.active=!1,n.on(\"abort\").fire(e)}),t.oncomplete=E(function(){n.active=!1,n._resolve(),\"mutatedParts\"in t&&Yt.storagemutated.fire(t.mutatedParts)})}return this},p.prototype._promise=function(n,r,o){var e,i=this;return\"readwrite\"===n&&\"readwrite\"!==this.mode?w(new k.ReadOnly(\"Transaction is readonly\")):this.active?this._locked()?new K(function(e,t){i._blockedFuncs.push([function(){i._promise(n,r,o).then(e,t)},P])}):o?y(function(){var e=new K(function(e,t){i._lock();var n=r(e,t,i);n&&n.then&&n.then(e,t)});return e.finally(function(){return i._unlock()}),e._lib=!0,e}):((e=new K(function(e,t){var n=r(e,t,i);n&&n.then&&n.then(e,t)}))._lib=!0,e):w(new k.TransactionInactive)},p.prototype._root=function(){return this.parent?this.parent._root():this},p.prototype.waitFor=function(e){var t,r=this._root(),o=K.resolve(e),i=(r._waitingFor?r._waitingFor=r._waitingFor.then(function(){return o}):(r._waitingFor=o,r._waitingQueue=[],t=r.idbtrans.objectStore(r.storeNames[0]),function e(){for(++r._spinCount;r._waitingQueue.length;)r._waitingQueue.shift()();r._waitingFor&&(t.get(-1/0).onsuccess=e)}()),r._waitingFor);return new K(function(t,n){o.then(function(e){return r._waitingQueue.push(E(t.bind(null,e)))},function(e){return r._waitingQueue.push(E(n.bind(null,e)))}).finally(function(){r._waitingFor===i&&(r._waitingFor=null)})})},p.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new k.Abort))},p.prototype.table=function(e){var t=this._memoizedTables||(this._memoizedTables={});if(m(t,e))return t[e];var n=this.schema[e];if(n)return(n=new this.db.Table(e,n,this)).core=this.db.core.table(e),t[e]=n;throw new k.NotFound(\"Table \"+e+\" not part of transaction\")},p);function p(){}function Qt(e,t,n,r,o,i,a,u){return{name:e,keyPath:t,unique:n,multi:r,auto:o,compound:i,src:(n&&!a?\"&\":\"\")+(r?\"*\":\"\")+(o?\"++\":\"\")+Gt(t),type:u}}function Gt(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function Xt(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:(r=function(e){return[e.name,e]},n.reduce(function(e,t,n){t=r(t,n);return t&&(e[t[0]]=t[1]),e},{}))};var r}var Ht=function(e){try{return e.only([[]]),Ht=function(){return[[]]},[[]]}catch(e){return Ht=function(){return ct},ct}};function Jt(t){return null==t?function(){}:\"string\"==typeof t?1===(n=t).split(\".\").length?function(e){return e[n]}:function(e){return c(e,n)}:function(e){return c(e,t)};var n}function Zt(e){return[].slice.call(e)}var en=0;function tn(e){return null==e?\":id\":\"string\"==typeof e?e:\"[\".concat(e.join(\"+\"),\"]\")}function nn(e,o,t){function _(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");var t=e.lower,n=e.upper,r=e.lowerOpen,e=e.upperOpen;return void 0===t?void 0===n?null:o.upperBound(n,!!e):void 0===n?o.lowerBound(t,!!r):o.bound(t,n,!!r,!!e)}function n(e){var h,w=e.name;return{name:w,schema:e,mutate:function(e){var y=e.trans,v=e.type,m=e.keys,b=e.values,g=e.range;return new Promise(function(t,e){t=E(t);var n=y.objectStore(w),r=null==n.keyPath,o=\"put\"===v||\"add\"===v;if(!o&&\"delete\"!==v&&\"deleteRange\"!==v)throw new Error(\"Invalid operation type: \"+v);var i,a=(m||b||{length:1}).length;if(m&&b&&m.length!==b.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===a)return t({numFailures:0,failures:{},results:[],lastResult:void 0});function u(e){++l,Vt(e)}var s=[],c=[],l=0;if(\"deleteRange\"===v){if(4===g.type)return t({numFailures:l,failures:c,results:[],lastResult:void 0});3===g.type?s.push(i=n.clear()):s.push(i=n.delete(_(g)))}else{var r=o?r?[b,m]:[b,null]:[m,null],f=r[0],h=r[1];if(o)for(var d=0;d<a;++d)s.push(i=h&&void 0!==h[d]?n[v](f[d],h[d]):n[v](f[d])),i.onerror=u;else for(d=0;d<a;++d)s.push(i=n[v](f[d])),i.onerror=u}function p(e){e=e.target.result,s.forEach(function(e,t){return null!=e.error&&(c[t]=e.error)}),t({numFailures:l,failures:c,results:\"delete\"===v?m:s.map(function(e){return e.result}),lastResult:e})}i.onerror=function(e){u(e),p(e)},i.onsuccess=p})},getMany:function(e){var f=e.trans,h=e.keys;return new Promise(function(t,e){t=E(t);for(var n,r=f.objectStore(w),o=h.length,i=new Array(o),a=0,u=0,s=function(e){e=e.target;i[e._pos]=e.result,++u===a&&t(i)},c=T(e),l=0;l<o;++l)null!=h[l]&&((n=r.get(h[l]))._pos=l,n.onsuccess=s,n.onerror=c,++a);0===a&&t(i)})},get:function(e){var r=e.trans,o=e.key;return new Promise(function(t,e){t=E(t);var n=r.objectStore(w).get(o);n.onsuccess=function(e){return t(e.target.result)},n.onerror=T(e)})},query:(h=a,function(f){return new Promise(function(n,e){n=E(n);var r,o,i,t=f.trans,a=f.values,u=f.limit,s=f.query,c=u===1/0?void 0:u,l=s.index,s=s.range,t=t.objectStore(w),t=l.isPrimaryKey?t:t.index(l.name),l=_(s);if(0===u)return n({result:[]});h?((s=a?t.getAll(l,c):t.getAllKeys(l,c)).onsuccess=function(e){return n({result:e.target.result})},s.onerror=T(e)):(r=0,o=!a&&\"openKeyCursor\"in t?t.openKeyCursor(l):t.openCursor(l),i=[],o.onsuccess=function(e){var t=o.result;return!t||(i.push(a?t.value:t.primaryKey),++r===u)?n({result:i}):void t.continue()},o.onerror=T(e))})}),openCursor:function(e){var c=e.trans,i=e.values,a=e.query,u=e.reverse,l=e.unique;return new Promise(function(t,n){t=E(t);var e=a.index,r=a.range,o=c.objectStore(w),o=e.isPrimaryKey?o:o.index(e.name),e=u?l?\"prevunique\":\"prev\":l?\"nextunique\":\"next\",s=!i&&\"openKeyCursor\"in o?o.openKeyCursor(_(r),e):o.openCursor(_(r),e);s.onerror=T(n),s.onsuccess=E(function(e){var r,o,i,a,u=s.result;u?(u.___id=++en,u.done=!1,r=u.continue.bind(u),o=(o=u.continuePrimaryKey)&&o.bind(u),i=u.advance.bind(u),a=function(){throw new Error(\"Cursor not stopped\")},u.trans=c,u.stop=u.continue=u.continuePrimaryKey=u.advance=function(){throw new Error(\"Cursor not started\")},u.fail=E(n),u.next=function(){var e=this,t=1;return this.start(function(){return t--?e.continue():e.stop()}).then(function(){return e})},u.start=function(e){function t(){if(s.result)try{e()}catch(e){u.fail(e)}else u.done=!0,u.start=function(){throw new Error(\"Cursor behind last entry\")},u.stop()}var n=new Promise(function(t,e){t=E(t),s.onerror=T(e),u.fail=e,u.stop=function(e){u.stop=u.continue=u.continuePrimaryKey=u.advance=a,t(e)}});return s.onsuccess=E(function(e){s.onsuccess=t,t()}),u.continue=r,u.continuePrimaryKey=o,u.advance=i,t(),n},t(u)):t(null)},n)})},count:function(e){var t=e.query,o=e.trans,i=t.index,a=t.range;return new Promise(function(t,e){var n=o.objectStore(w),n=i.isPrimaryKey?n:n.index(i.name),r=_(a),r=r?n.count(r):n.count();r.onsuccess=E(function(e){return t(e.target.result)}),r.onerror=T(e)})}}}r=t,i=Zt((t=e).objectStoreNames);var r,t={schema:{name:t.name,tables:i.map(function(e){return r.objectStore(e)}).map(function(t){var e=t.keyPath,n=t.autoIncrement,r=x(e),o={},r={name:t.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:null==e,compound:r,keyPath:e,autoIncrement:n,unique:!0,extractKey:Jt(e)},indexes:Zt(t.indexNames).map(function(e){return t.index(e)}).map(function(e){var t=e.name,n=e.unique,r=e.multiEntry,e=e.keyPath,t={name:t,compound:x(e),keyPath:e,unique:n,multiEntry:r,extractKey:Jt(e)};return o[tn(e)]=t}),getIndexByKeyPath:function(e){return o[tn(e)]}};return o[\":id\"]=r.primaryKey,null!=e&&(o[tn(e)]=r.primaryKey),r})},hasGetAll:0<i.length&&\"getAll\"in r.objectStore(i[0])&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604)},i=t.schema,a=t.hasGetAll,t=i.tables.map(n),u={};return t.forEach(function(e){return u[e.name]=e}),{stack:\"dbcore\",transaction:e.transaction.bind(e),table:function(e){if(u[e])return u[e];throw new Error(\"Table '\".concat(e,\"' not found\"))},MIN_KEY:-1/0,MAX_KEY:Ht(o),schema:i}}function rn(e,t,n,r){n=n.IDBKeyRange;return t=nn(t,n,r),{dbcore:e.dbcore.reduce(function(e,t){t=t.create;return _(_({},e),t(e))},t)}}function on(n,e){var t=e.db,t=rn(n._middlewares,t,n._deps,e);n.core=t.dbcore,n.tables.forEach(function(e){var t=e.name;n.core.schema.tables.some(function(e){return e.name===t})&&(e.core=n.core.table(t),n[t]instanceof n.Table)&&(n[t].core=e.core)})}function an(o,e,t,i){t.forEach(function(n){var r=i[n];e.forEach(function(e){var t=function e(t,n){return V(t,n)||(t=F(t))&&e(t,n)}(e,n);(!t||\"value\"in t&&void 0===t.value)&&(e===o.Transaction.prototype||e instanceof o.Transaction?u(e,n,{get:function(){return this.table(n)},set:function(e){L(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):e[n]=new o.Table(n,r))})})}function un(n,e){e.forEach(function(e){for(var t in e)e[t]instanceof n.Table&&delete e[t]})}function sn(e,t){return e._cfg.version-t._cfg.version}function cn(n,r,o,e){var i=n._dbSchema,a=(o.objectStoreNames.contains(\"$meta\")&&!i.$meta&&(i.$meta=Xt(\"$meta\",mn(\"\")[0],[]),n._storeNames.push(\"$meta\")),n._createTransaction(\"readwrite\",n._storeNames,i)),u=(a.create(o),a._completion.catch(e),a._reject.bind(a)),s=P.transless||P;y(function(){if(P.trans=a,P.transless=s,0!==r)return on(n,o),t=r,((e=a).storeNames.includes(\"$meta\")?e.table(\"$meta\").get(\"version\").then(function(e){return null!=e?e:t}):K.resolve(t)).then(function(e){var s=n,c=e,l=a,f=o,t=[],e=s._versions,h=s._dbSchema=yn(0,s.idbdb,f);return 0===(e=e.filter(function(e){return e._cfg.version>=c})).length?K.resolve():(e.forEach(function(u){t.push(function(){var t,n,r,o=h,e=u._cfg.dbschema,i=(vn(s,o,f),vn(s,e,f),h=s._dbSchema=e,fn(o,e)),a=(i.add.forEach(function(e){hn(f,e[0],e[1].primKey,e[1].indexes)}),i.change.forEach(function(e){if(e.recreate)throw new k.Upgrade(\"Not yet support for changing primary key\");var t=f.objectStore(e.name);e.add.forEach(function(e){return pn(t,e)}),e.change.forEach(function(e){t.deleteIndex(e.name),pn(t,e)}),e.del.forEach(function(e){return t.deleteIndex(e)})}),u._cfg.contentUpgrade);if(a&&u._cfg.version>c)return on(s,f),l._memoizedTables={},t=G(e),i.del.forEach(function(e){t[e]=o[e]}),un(s,[s.Transaction.prototype]),an(s,[s.Transaction.prototype],O(t),t),l.schema=t,(n=ue(a))&&nt(),e=K.follow(function(){var e;(r=a(l))&&n&&(e=v.bind(null,null),r.then(e,e))}),r&&\"function\"==typeof r.then?K.resolve(r):e.then(function(){return r})}),t.push(function(e){var t,n,r=u._cfg.dbschema;t=r,n=e,[].slice.call(n.db.objectStoreNames).forEach(function(e){return null==t[e]&&n.db.deleteObjectStore(e)}),un(s,[s.Transaction.prototype]),an(s,[s.Transaction.prototype],s._storeNames,s._dbSchema),l.schema=s._dbSchema}),t.push(function(e){s.idbdb.objectStoreNames.contains(\"$meta\")&&(Math.ceil(s.idbdb.version/10)===u._cfg.version?(s.idbdb.deleteObjectStore(\"$meta\"),delete s._dbSchema.$meta,s._storeNames=s._storeNames.filter(function(e){return\"$meta\"!==e})):e.objectStore(\"$meta\").put(u._cfg.version,\"version\"))})}),function e(){return t.length?K.resolve(t.shift()(l.idbtrans)).then(e):K.resolve()}().then(function(){dn(h,f)}))}).catch(u);var e,t;O(i).forEach(function(e){hn(o,e,i[e].primKey,i[e].indexes)}),on(n,o),K.follow(function(){return n.on.populate.fire(a)}).catch(u)})}function ln(e,r){dn(e._dbSchema,r),r.db.version%10!=0||r.objectStoreNames.contains(\"$meta\")||r.db.createObjectStore(\"$meta\").add(Math.ceil(r.db.version/10-1),\"version\");var t=yn(0,e.idbdb,r);vn(e,e._dbSchema,r);for(var n=0,o=fn(t,e._dbSchema).change;n<o.length;n++){var i=(t=>{if(t.change.length||t.recreate)return console.warn(\"Unable to patch indexes of table \".concat(t.name,\" because it has changes on the type of index or primary key.\")),{value:void 0};var n=r.objectStore(t.name);t.add.forEach(function(e){l&&console.debug(\"Dexie upgrade patch: Creating missing index \".concat(t.name,\".\").concat(e.src)),pn(n,e)})})(o[n]);if(\"object\"==typeof i)return i.value}}function fn(e,t){var n,r={del:[],add:[],change:[]};for(n in e)t[n]||r.del.push(n);for(n in t){var o=e[n],i=t[n];if(o){var a={name:n,def:i,recreate:!1,del:[],add:[],change:[]};if(\"\"+(o.primKey.keyPath||\"\")!=\"\"+(i.primKey.keyPath||\"\")||o.primKey.auto!==i.primKey.auto)a.recreate=!0,r.change.push(a);else{var u=o.idxByName,s=i.idxByName,c=void 0;for(c in u)s[c]||a.del.push(c);for(c in s){var l=u[c],f=s[c];l?l.src!==f.src&&a.change.push(f):a.add.push(f)}(0<a.del.length||0<a.add.length||0<a.change.length)&&r.change.push(a)}}else r.add.push([n,i])}return r}function hn(e,t,n,r){var o=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});r.forEach(function(e){return pn(o,e)})}function dn(t,n){O(t).forEach(function(e){n.db.objectStoreNames.contains(e)||(l&&console.debug(\"Dexie: Creating missing table\",e),hn(n,e,t[e].primKey,t[e].indexes))})}function pn(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function yn(e,t,u){var s={};return W(t.objectStoreNames,0).forEach(function(e){for(var t=u.objectStore(e),n=Qt(Gt(a=t.keyPath),a||\"\",!0,!1,!!t.autoIncrement,a&&\"string\"!=typeof a,!0),r=[],o=0;o<t.indexNames.length;++o){var i=t.index(t.indexNames[o]),a=i.keyPath,i=Qt(i.name,a,!!i.unique,!!i.multiEntry,!1,a&&\"string\"!=typeof a,!1);r.push(i)}s[e]=Xt(e,n,r)}),s}function vn(e,t,n){for(var r=n.db.objectStoreNames,o=0;o<r.length;++o){var i=r[o],a=n.objectStore(i);e._hasGetAll=\"getAll\"in a;for(var u=0;u<a.indexNames.length;++u){var s,c=a.indexNames[u],l=a.index(c).keyPath,l=\"string\"==typeof l?l:\"[\"+W(l).join(\"+\")+\"]\";t[i]&&(s=t[i].idxByName[l])&&(s.name=c,delete t[i].idxByName[l],t[i].idxByName[c]=s)}}\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&f.WorkerGlobalScope&&f instanceof f.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604&&(e._hasGetAll=!1)}function mn(e){return e.split(\",\").map(function(e,t){var n=e.split(\":\"),r=null==(r=n[1])?void 0:r.trim(),n=(e=n[0].trim()).replace(/([&*]|\\+\\+)/g,\"\"),o=/^\\[/.test(n)?n.match(/^\\[(.*)\\]$/)[1].split(\"+\"):n;return Qt(n,o||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),x(o),0===t,r)})}gn.prototype._createTableSchema=Xt,gn.prototype._parseIndexSyntax=mn,gn.prototype._parseStoresSpec=function(r,o){var i=this;O(r).forEach(function(e){if(null!==r[e]){var t=i._parseIndexSyntax(r[e]),n=t.shift();if(!n)throw new k.Schema(\"Invalid schema for table \"+e+\": \"+r[e]);if(n.unique=!0,n.multi)throw new k.Schema(\"Primary key cannot be multiEntry*\");t.forEach(function(e){if(e.auto)throw new k.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new k.Schema(\"Index must have a name and cannot be an empty string\")});n=i._createTableSchema(e,n,t);o[e]=n}})},gn.prototype.stores=function(e){var t=this.db,e=(this._cfg.storesSource=this._cfg.storesSource?a(this._cfg.storesSource,e):e,t._versions),n={},r={};return e.forEach(function(e){a(n,e._cfg.storesSource),r=e._cfg.dbschema={},e._parseStoresSpec(n,r)}),t._dbSchema=r,un(t,[t._allTables,t,t.Transaction.prototype]),an(t,[t._allTables,t,t.Transaction.prototype,this._cfg.tables],O(r),r),t._storeNames=O(r),this},gn.prototype.upgrade=function(e){return this._cfg.contentUpgrade=ke(this._cfg.contentUpgrade||g,e),this};var bn=gn;function gn(){}function wn(e,t){var n=e._dbNamesDB;return n||(n=e._dbNamesDB=new q(ht,{addons:[],indexedDB:e,IDBKeyRange:t})).version(1).stores({dbnames:\"name\"}),n.table(\"dbnames\")}function _n(e){return e&&\"function\"==typeof e.databases}function xn(e){return y(function(){return P.letThrough=!0,e()})}function kn(e){return!(\"from\"in e)}var I=function(e,t){var n;if(!this)return n=new I,e&&\"d\"in e&&a(n,e),n;a(this,arguments.length?{d:1,from:e,to:1<arguments.length?t:e}:{d:0})};function On(e,t,n){var r=j(t,n);if(!isNaN(r)){if(0<r)throw RangeError();if(kn(e))return a(e,{from:t,to:n,d:1});var r=e.l,o=e.r;if(j(n,e.from)<0)return r?On(r,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Sn(e);if(0<j(t,e.to))return o?On(o,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Sn(e);j(t,e.from)<0&&(e.from=t,e.l=null,e.d=o?o.d+1:1),0<j(n,e.to)&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);t=!e.r;r&&!e.l&&Pn(e,r),o&&t&&Pn(e,o)}}function Pn(e,t){kn(t)||function e(t,n){var r=n.from,o=n.l,i=n.r;On(t,r,n.to),o&&e(t,o),i&&e(t,i)}(e,t)}function Kn(e,t){var n=En(t),r=n.next();if(!r.done)for(var o=r.value,i=En(e),a=i.next(o.from),u=a.value;!r.done&&!a.done;){if(j(u.from,o.to)<=0&&0<=j(u.to,o.from))return!0;j(o.from,u.from)<0?o=(r=n.next(u.from)).value:u=(a=i.next(o.from)).value}return!1}function En(e){var n=kn(e)?null:{s:0,n:e};return{next:function(e){for(var t=0<arguments.length;n;)switch(n.s){case 0:if(n.s=1,t)for(;n.n.l&&j(e,n.n.from)<0;)n={up:n,n:n.n.l,s:1};else for(;n.n.l;)n={up:n,n:n.n.l,s:1};case 1:if(n.s=2,!t||j(e,n.n.to)<=0)return{value:n.n,done:!1};case 2:if(n.n.r){n.s=3,n={up:n,n:n.n.r,s:0};continue}case 3:n=n.up}return{done:!0}}}}function Sn(e){var t,n,r,o=((null==(o=e.r)?void 0:o.d)||0)-((null==(o=e.l)?void 0:o.d)||0),o=1<o?\"r\":o<-1?\"l\":\"\";o&&(t=\"r\"==o?\"l\":\"r\",n=_({},e),r=e[o],e.from=r.from,e.to=r.to,e[o]=r[o],n[o]=r[t],(e[t]=n).d=jn(n)),e.d=jn(e)}function jn(e){var t=e.r,e=e.l;return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}function An(t,n){return O(n).forEach(function(e){t[e]?Pn(t[e],n[e]):t[e]=function e(t){var n,r,o={};for(n in t)m(t,n)&&(r=t[n],o[n]=!r||\"object\"!=typeof r||J.has(r.constructor)?r:e(r));return o}(n[e])}),t}function Cn(t,n){return t.all||n.all||Object.keys(t).some(function(e){return n[e]&&Kn(n[e],t[e])})}N(I.prototype,((t={add:function(e){return Pn(this,e),this},addKey:function(e){return On(this,e,e),this},addKeys:function(e){var t=this;return e.forEach(function(e){return On(t,e,e)}),this},hasKey:function(e){var t=En(this).next(e).value;return t&&j(t.from,e)<=0&&0<=j(t.to,e)}})[re]=function(){return En(this)},t));var Tn={},In={},qn=!1;function Dn(e){An(In,e),qn||(qn=!0,setTimeout(function(){qn=!1,Bn(In,!(In={}))},0))}function Bn(e,t){void 0===t&&(t=!1);var n=new Set;if(e.all)for(var r=0,o=Object.values(Tn);r<o.length;r++)Rn(u=o[r],e,n,t);else for(var i in e){var a,u,i=/^idb\\:\\/\\/(.*)\\/(.*)\\//.exec(i);i&&(a=i[1],i=i[2],u=Tn[\"idb://\".concat(a,\"/\").concat(i)])&&Rn(u,e,n,t)}n.forEach(function(e){return e()})}function Rn(e,t,n,r){for(var o=[],i=0,a=Object.entries(e.queries.query);i<a.length;i++){for(var u=a[i],s=u[0],c=[],l=0,f=u[1];l<f.length;l++){var h=f[l];Cn(t,h.obsSet)?h.subscribers.forEach(function(e){return n.add(e)}):r&&c.push(h)}r&&o.push([s,c])}if(r)for(var d=0,p=o;d<p.length;d++){var y=p[d],s=y[0],c=y[1];e.queries.query[s]=c}}function Fn(h){var d=h._state,r=h._deps.indexedDB;if(d.isBeingOpened||h.idbdb)return d.dbReadyPromise.then(function(){return d.dbOpenError?w(d.dbOpenError):h});d.isBeingOpened=!0,d.dbOpenError=null,d.openComplete=!1;var t=d.openCanceller,p=Math.round(10*h.verno),y=!1;function e(){if(d.openCanceller!==t)throw new k.DatabaseClosed(\"db.open() was cancelled\")}function v(){return new K(function(c,n){if(e(),!r)throw new k.MissingAPI;var l=h.name,f=d.autoSchema||!p?r.open(l):r.open(l,p);if(!f)throw new k.MissingAPI;f.onerror=T(n),f.onblocked=E(h._fireOnBlocked),f.onupgradeneeded=E(function(e){var t;m=f.transaction,d.autoSchema&&!h._options.allowEmptyDB?(f.onerror=Vt,m.abort(),f.result.close(),(t=r.deleteDatabase(l)).onsuccess=t.onerror=E(function(){n(new k.NoSuchDatabase(\"Database \".concat(l,\" doesnt exist\")))})):(m.onerror=T(n),t=e.oldVersion>Math.pow(2,62)?0:e.oldVersion,b=t<1,h.idbdb=f.result,y&&ln(h,m),cn(h,t/10,m,n))},n),f.onsuccess=E(function(){m=null;var e,t,n,r,o,i,a=h.idbdb=f.result,u=W(a.objectStoreNames);if(0<u.length)try{var s=a.transaction(1===(o=u).length?o[0]:o,\"readonly\");if(d.autoSchema)i=a,r=s,(n=h).verno=i.version/10,r=n._dbSchema=yn(0,i,r),n._storeNames=W(i.objectStoreNames,0),an(n,[n._allTables],O(r),r);else if(vn(h,h._dbSchema,s),t=s,((t=fn(yn(0,(e=h).idbdb,t),e._dbSchema)).add.length||t.change.some(function(e){return e.add.length||e.change.length}))&&!y)return console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.\"),a.close(),p=a.version+1,y=!0,c(v());on(h,s)}catch(e){}ft.push(h),a.onversionchange=E(function(e){d.vcFired=!0,h.on(\"versionchange\").fire(e)}),a.onclose=E(function(){h.close({disableAutoOpen:!1})}),b&&(u=h._deps,o=l,_n(i=u.indexedDB)||o===ht||wn(i,u.IDBKeyRange).put({name:o}).catch(g)),c()},n)}).catch(function(e){switch(null==e?void 0:e.name){case\"UnknownError\":if(0<d.PR1398_maxLoop)return d.PR1398_maxLoop--,console.warn(\"Dexie: Workaround for Chrome UnknownError on open()\"),v();break;case\"VersionError\":if(0<p)return p=0,v()}return K.reject(e)})}var n,o=d.dbReadyResolve,m=null,b=!1;return K.race([t,(\"undefined\"==typeof navigator?K.resolve():!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){function t(){return indexedDB.databases().finally(e)}n=setInterval(t,100),t()}).finally(function(){return clearInterval(n)}):Promise.resolve()).then(v)]).then(function(){return e(),d.onReadyBeingFired=[],K.resolve(xn(function(){return h.on.ready.fire(h.vip)})).then(function e(){var t;if(0<d.onReadyBeingFired.length)return t=d.onReadyBeingFired.reduce(ke,g),d.onReadyBeingFired=[],K.resolve(xn(function(){return t(h.vip)})).then(e)})}).finally(function(){d.openCanceller===t&&(d.onReadyBeingFired=null,d.isBeingOpened=!1)}).catch(function(e){d.dbOpenError=e;try{m&&m.abort()}catch(e){}return t===d.openCanceller&&h._close(),w(e)}).finally(function(){d.openComplete=!0,o()}).then(function(){var n;return b&&(n={},h.tables.forEach(function(t){t.schema.indexes.forEach(function(e){e.name&&(n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/\").concat(e.name)]=new I(-1/0,[[[]]]))}),n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/\")]=n[\"idb://\".concat(h.name,\"/\").concat(t.name,\"/:dels\")]=new I(-1/0,[[[]]])}),Yt(zt).fire(n),Bn(n,!0)),h})}function Mn(t){function e(e){return t.next(e)}var r=n(e),o=n(function(e){return t.throw(e)});function n(n){return function(e){var e=n(e),t=e.value;return e.done?t:t&&\"function\"==typeof t.then?t.then(r,o):x(t)?Promise.all(t).then(r,o):r(t)}}return n(e)()}function Nn(e,t,n){for(var r=x(e)?e.slice():[e],o=0;o<n;++o)r.push(t);return r}var Ln={stack:\"dbcore\",name:\"VirtualIndexMiddleware\",level:1,create:function(l){return _(_({},l),{table:function(e){var i=l.table(e),e=i.schema,u={},s=[];function c(e,t,n){var r=tn(e),o=u[r]=u[r]||[],i=null==e?0:\"string\"==typeof e?1:e.length,a=0<t,r=_(_({},n),{name:a?\"\".concat(r,\"(virtual-from:\").concat(n.name,\")\"):n.name,lowLevelIndex:n,isVirtual:a,keyTail:t,keyLength:i,extractKey:Jt(e),unique:!a&&n.unique});return o.push(r),r.isPrimaryKey||s.push(r),1<i&&c(2===i?e[0]:e.slice(0,i-1),t+1,n),o.sort(function(e,t){return e.keyTail-t.keyTail}),r}var t=c(e.primaryKey.keyPath,0,e.primaryKey);u[\":id\"]=[t];for(var n=0,r=e.indexes;n<r.length;n++){var o=r[n];c(o.keyPath,0,o)}function a(e){var t,n=e.query.index;return n.isVirtual?_(_({},e),{query:{index:n.lowLevelIndex,range:(t=e.query.range,n=n.keyTail,{type:1===t.type?2:t.type,lower:Nn(t.lower,t.lowerOpen?l.MAX_KEY:l.MIN_KEY,n),lowerOpen:!0,upper:Nn(t.upper,t.upperOpen?l.MIN_KEY:l.MAX_KEY,n),upperOpen:!0})}}):e}return _(_({},i),{schema:_(_({},e),{primaryKey:t,indexes:s,getIndexByKeyPath:function(e){return(e=u[tn(e)])&&e[0]}}),count:function(e){return i.count(a(e))},query:function(e){return i.query(a(e))},openCursor:function(t){var e=t.query.index,r=e.keyTail,o=e.keyLength;return e.isVirtual?i.openCursor(a(t)).then(function(e){return e&&n(e)}):i.openCursor(t);function n(n){return Object.create(n,{continue:{value:function(e){null!=e?n.continue(Nn(e,t.reverse?l.MAX_KEY:l.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,o).concat(t.reverse?l.MIN_KEY:l.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value:function(e,t){n.continuePrimaryKey(Nn(e,l.MAX_KEY,r),t)}},primaryKey:{get:function(){return n.primaryKey}},key:{get:function(){var e=n.key;return 1===o?e[0]:e.slice(0,o)}},value:{get:function(){return n.value}}})}}})}})}};function Un(o,i,a,u){return a=a||{},u=u||\"\",O(o).forEach(function(e){var t,n,r;m(i,e)?(t=o[e],n=i[e],\"object\"==typeof t&&\"object\"==typeof n&&t&&n?(r=ne(t))!==ne(n)?a[u+e]=i[e]:\"Object\"===r?Un(t,n,a,u+e+\".\"):t!==n&&(a[u+e]=i[e]):t!==n&&(a[u+e]=i[e])):a[u+e]=void 0}),O(i).forEach(function(e){m(o,e)||(a[u+e]=i[e])}),a}function Vn(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}var zn={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:function(e){return _(_({},e),{table:function(r){var y=e.table(r),v=y.schema.primaryKey;return _(_({},y),{mutate:function(e){var t=P.trans,n=t.table(r).hook,h=n.deleting,d=n.creating,p=n.updating;switch(e.type){case\"add\":if(d.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"put\":if(d.fire===g&&p.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"delete\":if(h.fire===g)break;return t._promise(\"readwrite\",function(){return a(e)},!0);case\"deleteRange\":if(h.fire===g)break;return t._promise(\"readwrite\",function(){return function n(r,o,i){return y.query({trans:r,values:!1,query:{index:v,range:o},limit:i}).then(function(e){var t=e.result;return a({type:\"delete\",keys:t,trans:r}).then(function(e){return 0<e.numFailures?Promise.reject(e.failures[0]):t.length<i?{failures:[],numFailures:0,lastResult:void 0}:n(r,_(_({},o),{lower:t[t.length-1],lowerOpen:!0}),i)})})}(e.trans,e.range,1e4)},!0)}return y.mutate(e);function a(c){var e,t,n,l=P.trans,f=c.keys||Vn(v,c);if(f)return\"delete\"!==(c=\"add\"===c.type||\"put\"===c.type?_(_({},c),{keys:f}):_({},c)).type&&(c.values=R([],c.values,!0)),c.keys&&(c.keys=R([],c.keys,!0)),e=y,n=f,(\"add\"===(t=c).type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})).then(function(u){var s=f.map(function(e,t){var n,r,o,i=u[t],a={onerror:null,onsuccess:null};return\"delete\"===c.type?h.fire.call(a,e,i,l):\"add\"===c.type||void 0===i?(n=d.fire.call(a,e,c.values[t],l),null==e&&null!=n&&(c.keys[t]=e=n,v.outbound||b(c.values[t],v.keyPath,e))):(n=Un(i,c.values[t]),(r=p.fire.call(a,n,e,i,l))&&(o=c.values[t],Object.keys(r).forEach(function(e){m(o,e)?o[e]=r[e]:b(o,e,r[e])}))),a});return y.mutate(c).then(function(e){for(var t=e.failures,n=e.results,r=e.numFailures,e=e.lastResult,o=0;o<f.length;++o){var i=(n||f)[o],a=s[o];null==i?a.onerror&&a.onerror(t[o]):a.onsuccess&&a.onsuccess(\"put\"===c.type&&u[o]?c.values[o]:i)}return{failures:t,results:n,numFailures:r,lastResult:e}}).catch(function(t){return s.forEach(function(e){return e.onerror&&e.onerror(t)}),Promise.reject(t)})});throw new Error(\"Keys missing\")}}})}})}};function Wn(e,t,n){try{if(!t)return null;if(t.keys.length<e.length)return null;for(var r=[],o=0,i=0;o<t.keys.length&&i<e.length;++o)0===j(t.keys[o],e[i])&&(r.push(n?ee(t.values[o]):t.values[o]),++i);return r.length===e.length?r:null}catch(e){return null}}var Yn={stack:\"dbcore\",level:-1,create:function(t){return{table:function(e){var n=t.table(e);return _(_({},n),{getMany:function(t){var e;return t.cache?(e=Wn(t.keys,t.trans._cache,\"clone\"===t.cache))?K.resolve(e):n.getMany(t).then(function(e){return t.trans._cache={keys:t.keys,values:\"clone\"===t.cache?ee(e):e},e}):n.getMany(t)},mutate:function(e){return\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e)}})}}}};function $n(e,t){return\"readonly\"===e.trans.mode&&!!e.subscr&&!e.trans.explicit&&\"disabled\"!==e.trans.db._options.cache&&!t.schema.primaryKey.outbound}function Qn(e,t){switch(e){case\"query\":return t.values&&!t.unique;case\"get\":case\"getMany\":case\"count\":case\"openCursor\":return!1}}var Gn={stack:\"dbcore\",level:0,name:\"Observability\",create:function(b){var g=b.schema.name,w=new I(b.MIN_KEY,b.MAX_KEY);return _(_({},b),{transaction:function(e,t,n){if(P.subscr&&\"readonly\"!==t)throw new k.ReadOnly(\"Readwrite transaction in liveQuery context. Querier source: \".concat(P.querier));return b.transaction(e,t,n)},table:function(d){function e(e){var t,e=e.query;return[t=e.index,new I(null!=(t=(e=e.range).lower)?t:b.MIN_KEY,null!=(t=e.upper)?t:b.MAX_KEY)]}var p=b.table(d),y=p.schema,v=y.primaryKey,t=y.indexes,c=v.extractKey,l=v.outbound,m=v.autoIncrement&&t.filter(function(e){return e.compound&&e.keyPath.includes(v.keyPath)}),n=_(_({},p),{mutate:function(a){function u(e){return e=\"idb://\".concat(g,\"/\").concat(d,\"/\").concat(e),n[e]||(n[e]=new I)}var e,i,s,t=a.trans,n=a.mutatedParts||(a.mutatedParts={}),r=u(\"\"),o=u(\":dels\"),c=a.type,l=\"deleteRange\"===a.type?[a.range]:\"delete\"===a.type?[a.keys]:a.values.length<50?[Vn(v,a).filter(function(e){return e}),a.values]:[],f=l[0],l=l[1],h=a.trans._cache;return x(f)?(r.addKeys(f),(c=\"delete\"===c||f.length===l.length?Wn(f,h):null)||o.addKeys(f),(c||l)&&(e=u,i=c,s=l,y.indexes.forEach(function(t){var n=e(t.name||\"\");function r(e){return null!=e?t.extractKey(e):null}function o(e){t.multiEntry&&x(e)?e.forEach(function(e){return n.addKey(e)}):n.addKey(e)}(i||s).forEach(function(e,t){var n=i&&r(i[t]),t=s&&r(s[t]);0!==j(n,t)&&(null!=n&&o(n),null!=t)&&o(t)})}))):f?(l={from:null!=(h=f.lower)?h:b.MIN_KEY,to:null!=(c=f.upper)?c:b.MAX_KEY},o.add(l),r.add(l)):(r.add(w),o.add(w),y.indexes.forEach(function(e){return u(e.name).add(w)})),p.mutate(a).then(function(i){return!f||\"add\"!==a.type&&\"put\"!==a.type||(r.addKeys(i.results),m&&m.forEach(function(t){for(var e=a.values.map(function(e){return t.extractKey(e)}),n=t.keyPath.findIndex(function(e){return e===v.keyPath}),r=0,o=i.results.length;r<o;++r)e[r][n]=i.results[r];u(t.name).addKeys(e)})),t.mutatedParts=An(t.mutatedParts||{},n),i})}}),f={get:function(e){return[v,new I(e.key)]},getMany:function(e){return[v,(new I).addKeys(e.keys)]},count:e,query:e,openCursor:e};return O(f).forEach(function(s){n[s]=function(o){var e=P.subscr,t=!!e,n=$n(P,p)&&Qn(s,o)?o.obsSet={}:e;if(t){var i,e=function(e){e=\"idb://\".concat(g,\"/\").concat(d,\"/\").concat(e);return n[e]||(n[e]=new I)},a=e(\"\"),u=e(\":dels\"),t=f[s](o),r=t[0],t=t[1];if((\"query\"===s&&r.isPrimaryKey&&!o.values?u:e(r.name||\"\")).add(t),!r.isPrimaryKey){if(\"count\"!==s)return i=\"query\"===s&&l&&o.values&&p.query(_(_({},o),{values:!1})),p[s].apply(this,arguments).then(function(t){if(\"query\"===s){if(l&&o.values)return i.then(function(e){e=e.result;return a.addKeys(e),t});var e=o.values?t.result.map(c):t.result;(o.values?a:u).addKeys(e)}else{var n,r;if(\"openCursor\"===s)return r=o.values,(n=t)&&Object.create(n,{key:{get:function(){return u.addKey(n.primaryKey),n.key}},primaryKey:{get:function(){var e=n.primaryKey;return u.addKey(e),e}},value:{get:function(){return r&&a.addKey(n.primaryKey),n.value}}})}return t});u.add(w)}}return p[s].apply(this,arguments)}}),n}})}};function Xn(e,t,n){var r;return 0===n.numFailures?t:\"deleteRange\"===t.type||(r=t.keys?t.keys.length:\"values\"in t&&t.values?t.values.length:1,n.numFailures===r)?null:(r=_({},t),x(r.keys)&&(r.keys=r.keys.filter(function(e,t){return!(t in n.failures)})),\"values\"in r&&x(r.values)&&(r.values=r.values.filter(function(e,t){return!(t in n.failures)})),r)}function Hn(e,t){return n=e,(void 0===(r=t).lower||(r.lowerOpen?0<j(n,r.lower):0<=j(n,r.lower)))&&(n=e,void 0===(r=t).upper||(r.upperOpen?j(n,r.upper)<0:j(n,r.upper)<=0));var n,r}function Jn(e,d,t,n,r,o){var i,p,y,v,m,a;return!t||0===t.length||(i=d.query.index,p=i.multiEntry,y=d.query.range,v=n.schema.primaryKey.extractKey,m=i.extractKey,a=(i.lowLevelIndex||i).extractKey,(n=t.reduce(function(e,t){var n=e,r=[];if(\"add\"===t.type||\"put\"===t.type)for(var o=new I,i=t.values.length-1;0<=i;--i){var a,u=t.values[i],s=v(u);!o.hasKey(s)&&(a=m(u),p&&x(a)?a.some(function(e){return Hn(e,y)}):Hn(a,y))&&(o.addKey(s),r.push(u))}switch(t.type){case\"add\":var c=(new I).addKeys(d.values?e.map(function(e){return v(e)}):e),n=e.concat(d.values?r.filter(function(e){e=v(e);return!c.hasKey(e)&&(c.addKey(e),!0)}):r.map(function(e){return v(e)}).filter(function(e){return!c.hasKey(e)&&(c.addKey(e),!0)}));break;case\"put\":var l=(new I).addKeys(t.values.map(function(e){return v(e)}));n=e.filter(function(e){return!l.hasKey(d.values?v(e):e)}).concat(d.values?r:r.map(function(e){return v(e)}));break;case\"delete\":var f=(new I).addKeys(t.keys);n=e.filter(function(e){return!f.hasKey(d.values?v(e):e)});break;case\"deleteRange\":var h=t.range;n=e.filter(function(e){return!Hn(v(e),h)})}return n},e))===e)?e:(n.sort(function(e,t){return j(a(e),a(t))||j(v(e),v(t))}),d.limit&&d.limit<1/0&&(n.length>d.limit?n.length=d.limit:e.length===d.limit&&n.length<d.limit&&(r.dirty=!0)),o?Object.freeze(n):n)}function Zn(e,t){return 0===j(e.lower,t.lower)&&0===j(e.upper,t.upper)&&!!e.lowerOpen==!!t.lowerOpen&&!!e.upperOpen==!!t.upperOpen}function er(e,t){return((e,t,n,r)=>{if(void 0===e)return void 0!==t?-1:0;if(void 0===t)return 1;if(0===(e=j(e,t))){if(n&&r)return 0;if(n)return 1;if(r)return-1}return e})(e.lower,t.lower,e.lowerOpen,t.lowerOpen)<=0&&0<=((e,t,n,r)=>{if(void 0===e)return void 0!==t?1:0;if(void 0===t)return-1;if(0===(e=j(e,t))){if(n&&r)return 0;if(n)return-1;if(r)return 1}return e})(e.upper,t.upper,e.upperOpen,t.upperOpen)}function tr(n,r,o,e){n.subscribers.add(o),e.addEventListener(\"abort\",function(){var e,t;n.subscribers.delete(o),0===n.subscribers.size&&(e=n,t=r,setTimeout(function(){0===e.subscribers.size&&ie(t,e)},3e3))})}var nr={stack:\"dbcore\",level:0,name:\"Cache\",create:function(k){var O=k.schema.name;return _(_({},k),{transaction:function(g,w,e){var _,t,x=k.transaction(g,w,e);return\"readwrite\"===w&&(e=(_=new AbortController).signal,x.addEventListener(\"abort\",(t=function(b){return function(){if(_.abort(),\"readwrite\"===w){for(var t=new Set,e=0,n=g;e<n.length;e++){var r=n[e],o=Tn[\"idb://\".concat(O,\"/\").concat(r)];if(o){var i=k.table(r),a=o.optimisticOps.filter(function(e){return e.trans===x});if(x._explicit&&b&&x.mutatedParts)for(var u=0,s=Object.values(o.queries.query);u<s.length;u++)for(var c=0,l=(d=s[u]).slice();c<l.length;c++)Cn((p=l[c]).obsSet,x.mutatedParts)&&(ie(d,p),p.subscribers.forEach(function(e){return t.add(e)}));else if(0<a.length){o.optimisticOps=o.optimisticOps.filter(function(e){return e.trans!==x});for(var f=0,h=Object.values(o.queries.query);f<h.length;f++)for(var d,p,y,v=0,m=(d=h[f]).slice();v<m.length;v++)null!=(p=m[v]).res&&x.mutatedParts&&(b&&!p.dirty?(y=Object.isFrozen(p.res),y=Jn(p.res,p.req,a,i,p,y),p.dirty?(ie(d,p),p.subscribers.forEach(function(e){return t.add(e)})):y!==p.res&&(p.res=y,p.promise=K.resolve({result:y}))):(p.dirty&&ie(d,p),p.subscribers.forEach(function(e){return t.add(e)})))}}}t.forEach(function(e){return e()})}}})(!1),{signal:e}),x.addEventListener(\"error\",t(!1),{signal:e}),x.addEventListener(\"complete\",t(!0),{signal:e})),x},table:function(s){var c=k.table(s),o=c.schema.primaryKey;return _(_({},c),{mutate:function(t){var n,e=P.trans;return!o.outbound&&\"disabled\"!==e.db._options.cache&&!e.explicit&&\"readwrite\"===e.idbtrans.mode&&(n=Tn[\"idb://\".concat(O,\"/\").concat(s)])?(e=c.mutate(t),\"add\"!==t.type&&\"put\"!==t.type||!(50<=t.values.length||Vn(o,t).some(function(e){return null==e}))?(n.optimisticOps.push(t),t.mutatedParts&&Dn(t.mutatedParts),e.then(function(e){0<e.numFailures&&(ie(n.optimisticOps,t),(e=Xn(0,t,e))&&n.optimisticOps.push(e),t.mutatedParts)&&Dn(t.mutatedParts)}),e.catch(function(){ie(n.optimisticOps,t),t.mutatedParts&&Dn(t.mutatedParts)})):e.then(function(r){var e=Xn(0,_(_({},t),{values:t.values.map(function(e,t){var n;return r.failures[t]?e:(b(n=null!=(n=o.keyPath)&&n.includes(\".\")?ee(e):_({},e),o.keyPath,r.results[t]),n)})}),r);n.optimisticOps.push(e),queueMicrotask(function(){return t.mutatedParts&&Dn(t.mutatedParts)})}),e):c.mutate(t)},query:function(t){var o,e,n,r,i,a,u;return $n(P,c)&&Qn(\"query\",t)?(o=\"immutable\"===(null==(n=P.trans)?void 0:n.db._options.cache),e=(n=P).requery,n=n.signal,a=((e,t,n,r)=>{var o=Tn[\"idb://\".concat(e,\"/\").concat(t)];if(!o)return[];if(!(e=o.queries[n]))return[null,!1,o,null];var i=e[(r.query?r.query.index.name:null)||\"\"];if(!i)return[null,!1,o,null];switch(n){case\"query\":var a=i.find(function(e){return e.req.limit===r.limit&&e.req.values===r.values&&Zn(e.req.query.range,r.query.range)});return a?[a,!0,o,i]:[i.find(function(e){return(\"limit\"in e.req?e.req.limit:1/0)>=r.limit&&(!r.values||e.req.values)&&er(e.req.query.range,r.query.range)}),!1,o,i];case\"count\":a=i.find(function(e){return Zn(e.req.query.range,r.query.range)});return[a,!!a,o,i]}})(O,s,\"query\",t),u=a[0],r=a[2],i=a[3],u&&a[1]?u.obsSet=t.obsSet:(a=c.query(t).then(function(e){var t=e.result;if(u&&(u.res=t),o){for(var n=0,r=t.length;n<r;++n)Object.freeze(t[n]);Object.freeze(t)}else e.result=ee(t);return e}).catch(function(e){return i&&u&&ie(i,u),Promise.reject(e)}),u={obsSet:t.obsSet,promise:a,subscribers:new Set,type:\"query\",req:t,dirty:!1},i?i.push(u):(i=[u],(r=r||(Tn[\"idb://\".concat(O,\"/\").concat(s)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[t.query.index.name||\"\"]=i)),tr(u,i,e,n),u.promise.then(function(e){return{result:Jn(e.result,t,null==r?void 0:r.optimisticOps,c,u,o)}})):c.query(t)}})}})}};function rr(e,r){return new Proxy(e,{get:function(e,t,n){return\"db\"===t?r:Reflect.get(e,t,n)}})}D.prototype.version=function(t){if(isNaN(t)||t<.1)throw new k.Type(\"Given version is not a positive number\");if(t=Math.round(10*t)/10,this.idbdb||this._state.isBeingOpened)throw new k.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,t);var e=this._versions,n=e.filter(function(e){return e._cfg.version===t})[0];return n||(n=new this.Version(t),e.push(n),e.sort(sn),n.stores({}),this._state.autoSchema=!1),n},D.prototype._whenReady=function(e){var n=this;return this.idbdb&&(this._state.openComplete||P.letThrough||this._vip)?e():new K(function(e,t){if(n._state.openComplete)return t(new k.DatabaseClosed(n._state.dbOpenError));if(!n._state.isBeingOpened){if(!n._state.autoOpen)return void t(new k.DatabaseClosed);n.open().catch(g)}n._state.dbReadyPromise.then(e,t)}).then(e)},D.prototype.use=function(e){var t=e.stack,n=e.create,r=e.level,e=e.name,o=(e&&this.unuse({stack:t,name:e}),this._middlewares[t]||(this._middlewares[t]=[]));return o.push({stack:t,create:n,level:null==r?10:r,name:e}),o.sort(function(e,t){return e.level-t.level}),this},D.prototype.unuse=function(e){var t=e.stack,n=e.name,r=e.create;return t&&this._middlewares[t]&&(this._middlewares[t]=this._middlewares[t].filter(function(e){return r?e.create!==r:!!n&&e.name!==n})),this},D.prototype.open=function(){var e=this;return at(s,function(){return Fn(e)})},D.prototype._close=function(){this.on.close.fire(new CustomEvent(\"close\"));var n=this._state,e=ft.indexOf(this);if(0<=e&&ft.splice(e,1),this.idbdb){try{this.idbdb.close()}catch(e){}this.idbdb=null}n.isBeingOpened||(n.dbReadyPromise=new K(function(e){n.dbReadyResolve=e}),n.openCanceller=new K(function(e,t){n.cancelOpen=t}))},D.prototype.close=function(e){var e=(void 0===e?{disableAutoOpen:!0}:e).disableAutoOpen,t=this._state;e?(t.isBeingOpened&&t.cancelOpen(new k.DatabaseClosed),this._close(),t.autoOpen=!1,t.dbOpenError=new k.DatabaseClosed):(this._close(),t.autoOpen=this._options.autoOpen||t.isBeingOpened,t.openComplete=!1,t.dbOpenError=null)},D.prototype.delete=function(n){var o=this,i=(void 0===n&&(n={disableAutoOpen:!0}),0<arguments.length&&\"object\"!=typeof arguments[0]),a=this._state;return new K(function(r,t){function e(){o.close(n);var e=o._deps.indexedDB.deleteDatabase(o.name);e.onsuccess=E(function(){var e,t,n;e=o._deps,t=o.name,_n(n=e.indexedDB)||t===ht||wn(n,e.IDBKeyRange).delete(t).catch(g),r()}),e.onerror=T(t),e.onblocked=o._fireOnBlocked}if(i)throw new k.InvalidArgument(\"Invalid closeOptions argument to db.delete()\");a.isBeingOpened?a.dbReadyPromise.then(e):e()})},D.prototype.backendDB=function(){return this.idbdb},D.prototype.isOpen=function(){return null!==this.idbdb},D.prototype.hasBeenClosed=function(){var e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name},D.prototype.hasFailed=function(){return null!==this._state.dbOpenError},D.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(D.prototype,\"tables\",{get:function(){var t=this;return O(this._allTables).map(function(e){return t._allTables[e]})},enumerable:!1,configurable:!0}),D.prototype.transaction=function(){var e=function(e,t,n){var r=arguments.length;if(r<2)throw new k.InvalidArgument(\"Too few arguments\");for(var o=new Array(r-1);--r;)o[r-1]=arguments[r];return n=o.pop(),[e,H(o),n]}.apply(this,arguments);return this._transaction.apply(this,e)},D.prototype._transaction=function(e,t,n){var r,o,i=this,a=P.trans,u=(a&&a.db===this&&-1===e.indexOf(\"!\")||(a=null),-1!==e.indexOf(\"?\"));e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(o=t.map(function(e){e=e instanceof i.Table?e.name:e;if(\"string\"!=typeof e)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return e}),\"r\"==e||e===dt)r=dt;else{if(\"rw\"!=e&&e!=pt)throw new k.InvalidArgument(\"Invalid transaction mode: \"+e);r=pt}if(a){if(a.mode===dt&&r===pt){if(!u)throw new k.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");a=null}a&&o.forEach(function(e){if(a&&-1===a.storeNames.indexOf(e)){if(!u)throw new k.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");a=null}}),u&&a&&!a.active&&(a=null)}}catch(n){return a?a._promise(null,function(e,t){t(n)}):w(n)}var s=function o(i,a,u,s,c){return K.resolve().then(function(){var e=P.transless||P,t=i._createTransaction(a,u,i._dbSchema,s),e=(t.explicit=!0,{trans:t,transless:e});if(s)t.idbtrans=s.idbtrans;else try{t.create(),t.idbtrans._explicit=!0,i._state.PR1398_maxLoop=3}catch(e){return e.name===de.InvalidState&&i.isOpen()&&0<--i._state.PR1398_maxLoop?(console.warn(\"Dexie: Need to reopen db\"),i.close({disableAutoOpen:!1}),i.open().then(function(){return o(i,a,u,null,c)})):w(e)}var n,r=ue(c),e=(r&&nt(),K.follow(function(){var e;(n=c.call(t,t))&&(r?(e=v.bind(null,null),n.then(e,e)):\"function\"==typeof n.next&&\"function\"==typeof n.throw&&(n=Mn(n)))},e));return(n&&\"function\"==typeof n.then?K.resolve(n).then(function(e){return t.active?e:w(new k.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\"))}):e.then(function(){return n})).then(function(e){return s&&t._resolve(),t._completion.then(function(){return e})}).catch(function(e){return t._reject(e),w(e)})})}.bind(null,this,r,o,a,n);return a?a._promise(r,s,\"lock\"):P.trans?at(P.transless,function(){return i._whenReady(s)}):this._whenReady(s)},D.prototype.table=function(e){if(m(this._allTables,e))return this._allTables[e];throw new k.InvalidTable(\"Table \".concat(e,\" does not exist\"))};var q=D;function D(e,t){var i,r,a,n,o,u=this,s=(this._middlewares={},this.verno=0,D.dependencies),s=(this._options=t=_({addons:D.addons,autoOpen:!0,indexedDB:s.indexedDB,IDBKeyRange:s.IDBKeyRange,cache:\"cloned\"},t),this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange},t.addons),c=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:g,dbReadyPromise:null,cancelOpen:g,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:t.autoOpen}),l=(c.dbReadyPromise=new K(function(e){c.dbReadyResolve=e}),c.openCanceller=new K(function(e,t){c.cancelOpen=t}),this._state=c,this.name=e,this.on=Kt(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ke,g]}),this.once=function(n,r){var o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];u.on(n).unsubscribe(o),r.apply(u,e)};return u.on(n,o)},this.on.ready.subscribe=Y(this.on.ready.subscribe,function(o){return function(n,r){D.vip(function(){var t,e=u._state;e.openComplete?(e.dbOpenError||K.resolve().then(n),r&&o(n)):e.onReadyBeingFired?(e.onReadyBeingFired.push(n),r&&o(n)):(o(n),t=u,r||o(function e(){t.on.ready.unsubscribe(n),t.on.ready.unsubscribe(e)}))})}}),this.Collection=(i=this,Et(Dt.prototype,function(e,t){this.db=i;var n=vt,r=null;if(t)try{n=t()}catch(e){r=e}var t=e._ctx,e=t.table,o=e.hook.reading.fire;this._ctx={table:e,index:t.index,isPrimKey:!t.index||e.schema.primKey.keyPath&&t.index===e.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:t.or,valueMapper:o!==ve?o:null}})),this.Table=(r=this,Et(Pt.prototype,function(e,t,n){this.db=r,this._tx=n,this.name=e,this.schema=t,this.hook=r._allTables[e]?r._allTables[e].hook:Kt(null,{creating:[ge,g],reading:[me,ve],updating:[_e,g],deleting:[we,g]})})),this.Transaction=(a=this,Et($t.prototype,function(e,t,n,r,o){var i=this;\"readonly\"!==e&&t.forEach(function(e){e=null==(e=n[e])?void 0:e.yProps;e&&(t=t.concat(e.map(function(e){return e.updatesTable})))}),this.db=a,this.mode=e,this.storeNames=t,this.schema=n,this.chromeTransactionDurability=r,this.idbtrans=null,this.on=Kt(this,\"complete\",\"error\",\"abort\"),this.parent=o||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new K(function(e,t){i._resolve=e,i._reject=t}),this._completion.then(function(){i.active=!1,i.on.complete.fire()},function(e){var t=i.active;return i.active=!1,i.on.error.fire(e),i.parent?i.parent._reject(e):t&&i.idbtrans&&i.idbtrans.abort(),w(e)})})),this.Version=(n=this,Et(bn.prototype,function(e){this.db=n,this._cfg={version:e,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(o=this,Et(Ut.prototype,function(e,t,n){if(this.db=o,this._ctx={table:e,index:\":id\"===t?null:t,or:n},this._cmp=this._ascending=j,this._descending=function(e,t){return j(t,e)},this._max=function(e,t){return 0<j(e,t)?e:t},this._min=function(e,t){return j(e,t)<0?e:t},this._IDBKeyRange=o._deps.IDBKeyRange,!this._IDBKeyRange)throw new k.MissingAPI})),this.on(\"versionchange\",function(e){0<e.newVersion?console.warn(\"Another connection wants to upgrade database '\".concat(u.name,\"'. Closing db now to resume the upgrade.\")):console.warn(\"Another connection wants to delete database '\".concat(u.name,\"'. Closing db now to resume the delete request.\")),u.close({disableAutoOpen:!1})}),this.on(\"blocked\",function(e){!e.newVersion||e.newVersion<e.oldVersion?console.warn(\"Dexie.delete('\".concat(u.name,\"') was blocked\")):console.warn(\"Upgrade '\".concat(u.name,\"' blocked by other connection holding version \").concat(e.oldVersion/10))}),this._maxKey=Ht(t.IDBKeyRange),this._createTransaction=function(e,t,n,r){return new u.Transaction(e,t,n,u._options.chromeTransactionDurability,r)},this._fireOnBlocked=function(t){u.on(\"blocked\").fire(t),ft.filter(function(e){return e.name===u.name&&e!==u&&!e._state.vcFired}).map(function(e){return e.on(\"versionchange\").fire(t)})},this.use(Yn),this.use(nr),this.use(Gn),this.use(Ln),this.use(zn),new Proxy(this,{get:function(e,t,n){var r;return\"_vip\"===t||(\"table\"===t?function(e){return rr(u.table(e),l)}:(r=Reflect.get(e,t,n))instanceof Pt?rr(r,l):\"tables\"===t?r.map(function(e){return rr(e,l)}):\"_createTransaction\"===t?function(){return rr(r.apply(this,arguments),l)}:r)}}));this.vip=l,s.forEach(function(e){return e(u)})}var or,Se=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\",ir=(ar.prototype.subscribe=function(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})},ar.prototype[Se]=function(){return this},ar);function ar(e){this._subscribe=e}try{or={indexedDB:f.indexedDB||f.mozIndexedDB||f.webkitIndexedDB||f.msIndexedDB,IDBKeyRange:f.IDBKeyRange||f.webkitIDBKeyRange}}catch(e){or={indexedDB:null,IDBKeyRange:null}}function ur(h){var d,p=!1,e=new ir(function(r){var o=ue(h);var i,a=!1,u={},s={},e={get closed(){return a},unsubscribe:function(){a||(a=!0,i&&i.abort(),c&&Yt.storagemutated.unsubscribe(f))}},c=(r.start&&r.start(e),!1),l=function(){return st(t)};var f=function(e){An(u,e),Cn(s,u)&&l()},t=function(){var t,n,e;!a&&or.indexedDB&&(u={},t={},i&&i.abort(),i=new AbortController,e=(e=>{var t=$e();try{o&&nt();var n=y(h,e);return n=o?n.finally(v):n}finally{t&&Qe()}})(n={subscr:t,signal:i.signal,requery:l,querier:h,trans:null}),Promise.resolve(e).then(function(e){p=!0,d=e,a||n.signal.aborted||(u={},(e=>{for(var t in e)if(m(e,t))return;return 1})(s=t)||c||(Yt(zt,f),c=!0),st(function(){return!a&&r.next&&r.next(e)}))},function(e){p=!1,[\"DatabaseClosedError\",\"AbortError\"].includes(null==e?void 0:e.name)||a||st(function(){a||r.error&&r.error(e)})}))};return setTimeout(l,0),e});return e.hasValue=function(){return p},e.getValue=function(){return d},e}var sr=q;function cr(e){var t=fr;try{fr=!0,Yt.storagemutated.fire(e),Bn(e,!0)}finally{fr=t}}N(sr,_(_({},e),{delete:function(e){return new sr(e,{addons:[]}).delete()},exists:function(e){return new sr(e,{addons:[]}).open().then(function(e){return e.close(),!0}).catch(\"NoSuchDatabaseError\",function(){return!1})},getDatabaseNames:function(e){try{return t=sr.dependencies,n=t.indexedDB,t=t.IDBKeyRange,(_n(n)?Promise.resolve(n.databases()).then(function(e){return e.map(function(e){return e.name}).filter(function(e){return e!==ht})}):wn(n,t).toCollection().primaryKeys()).then(e)}catch(e){return w(new k.MissingAPI)}var t,n},defineClass:function(){return function(e){a(this,e)}},ignoreTransaction:function(e){return P.trans?at(P.transless,e):e()},vip:xn,async:function(t){return function(){try{var e=Mn(t.apply(this,arguments));return e&&\"function\"==typeof e.then?e:K.resolve(e)}catch(e){return w(e)}}},spawn:function(e,t,n){try{var r=Mn(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:K.resolve(r)}catch(e){return w(e)}},currentTransaction:{get:function(){return P.trans||null}},waitFor:function(e,t){e=K.resolve(\"function\"==typeof e?sr.ignoreTransaction(e):e).timeout(t||6e4);return P.trans?P.trans.waitFor(e):e},Promise:K,debug:{get:function(){return l},set:function(e){Oe(e)}},derive:U,extend:a,props:N,override:Y,Events:Kt,on:Yt,liveQuery:ur,extendObservabilitySet:An,getByKeyPath:c,setByKeyPath:b,delByKeyPath:function(t,e){\"string\"==typeof e?b(t,e,void 0):\"length\"in e&&[].map.call(e,function(e){b(t,e,void 0)})},shallowClone:G,deepClone:ee,getObjectDiff:Un,cmp:j,asap:Q,minKey:-1/0,addons:[],connections:ft,errnames:de,dependencies:or,cache:Tn,semVer:\"4.3.0\",version:\"4.3.0\".split(\".\").map(function(e){return parseInt(e)}).reduce(function(e,t,n){return e+t/Math.pow(10,2*n)})})),sr.maxKey=Ht(sr.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(Yt(zt,function(e){fr||(e=new CustomEvent(Wt,{detail:e}),fr=!0,dispatchEvent(e),fr=!1)}),addEventListener(Wt,function(e){e=e.detail;fr||cr(e)}));var lr,fr=!1,hr=function(){};return\"undefined\"!=typeof BroadcastChannel&&((hr=function(){(lr=new BroadcastChannel(Wt)).onmessage=function(e){return e.data&&cr(e.data)}})(),\"function\"==typeof lr.unref&&lr.unref(),Yt(zt,function(e){fr||lr.postMessage(e)})),\"undefined\"!=typeof addEventListener&&(addEventListener(\"pagehide\",function(e){if(!q.disableBfCache&&e.persisted){l&&console.debug(\"Dexie: handling persisted pagehide\"),null!=lr&&lr.close();for(var t=0,n=ft;t<n.length;t++)n[t].close({disableAutoOpen:!1})}}),addEventListener(\"pageshow\",function(e){!q.disableBfCache&&e.persisted&&(l&&console.debug(\"Dexie: handling persisted pageshow\"),hr(),cr({all:new I(-1/0,[[]])}))})),K.rejectionMapper=function(e,t){return!e||e instanceof ce||e instanceof TypeError||e instanceof SyntaxError||!e.name||!ye[e.name]?e:(t=new ye[e.name](t||e.message,e),\"stack\"in e&&u(t,\"stack\",{get:function(){return this.inner.stack}}),t)},Oe(l),_(q,Object.freeze({__proto__:null,Dexie:q,Entity:bt,PropModification:xt,RangeSet:I,add:function(e){return new xt({add:e})},cmp:j,default:q,liveQuery:ur,mergeRanges:Pn,rangesOverlap:Kn,remove:function(e){return new xt({remove:e})},replacePrefix:function(e,t){return new xt({replacePrefix:[e,t]})}}),{default:q}),q});\n//# sourceMappingURL=dexie.min.js.map","// Making the module version consumable via require - to prohibit\n// multiple occurrancies of the same module in the same app\n// (dual package hazard, https://nodejs.org/api/packages.html#dual-package-hazard)\nimport _Dexie from \"./dist/dexie.min.js\";\nconst DexieSymbol = Symbol.for(\"Dexie\");\nconst Dexie = globalThis[DexieSymbol] || (globalThis[DexieSymbol] = _Dexie);\nif (_Dexie.semVer !== Dexie.semVer) {\n throw new Error(`Two different versions of Dexie loaded in the same app: ${_Dexie.semVer} and ${Dexie.semVer}`);\n}\nconst {\n liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider } = Dexie;\nexport { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Dexie, Entity,\n PropModification, replacePrefix, add, remove,\n DexieYProvider};\nexport default Dexie;\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { default as Dexie } from \"dexie\";\nimport type { Table } from \"dexie\";\n\nexport default class DexiePageStorage extends Dexie {\n pages!: Table<object>;\n\n constructor(wikiName: string) {\n super(\"pages_\" + wikiName);\n this.version(2).stores({\n pages:\n // Primary key and indexed props\n \"id, name, content, document, css, js, document.name, document.headline, document.creator\",\n });\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport DexiePageStorage from \"./dexiePageStorage\";\nimport { DefaultPageData } from \"@xwiki/platform-api\";\nimport { inject, injectable } from \"inversify\";\nimport type { Logger, PageData } from \"@xwiki/platform-api\";\nimport type { OfflineStorage } from \"@xwiki/platform-backend-api\";\n\n@injectable()\nexport default class DexieOfflineStorage implements OfflineStorage {\n private pageStorageMap: Map<string, DexiePageStorage> = new Map<\n string,\n DexiePageStorage\n >();\n private logger: Logger;\n\n constructor(@inject(\"Logger\") logger: Logger) {\n this.logger = logger;\n this.logger.setModule(\"storage.components.dexieOfflineStorage\");\n }\n\n getPageStorage(wikiName: string): DexiePageStorage {\n let pageStorage = this.pageStorageMap.get(wikiName);\n if (pageStorage == null) {\n pageStorage = new DexiePageStorage(wikiName);\n this.pageStorageMap.set(wikiName, pageStorage);\n }\n return pageStorage;\n }\n\n async getPage(wikiName: string, id: string): Promise<PageData | undefined> {\n try {\n this.logger.debug(\"Ready to load page from local storage\", id);\n const pageStorage = this.getPageStorage(wikiName);\n this.logger.debug(\"pageStorage is ready, asking for page\");\n const pageObject = await pageStorage.pages.get(id);\n const pageData = new DefaultPageData();\n pageData.fromObject(pageObject);\n return pageData;\n } catch (e) {\n this.logger.debug(\"Exception while trying to read from local storage\", e);\n return undefined;\n }\n }\n\n async savePage(wikiName: string, id: string, page: PageData): Promise<void> {\n try {\n const pageStorage = this.getPageStorage(wikiName);\n // Put must be used instead of get since the later does not allow for\n // content update.\n await pageStorage.pages.put(page.toObject(), id);\n } catch (e) {\n this.logger.debug(\n \"Exception while trying to store in local storage\",\n wikiName,\n id,\n page,\n e,\n );\n }\n }\n\n async updatePage(\n wikiName: string,\n id: string,\n page: PageData,\n ): Promise<void> {\n try {\n const pageStorage = this.getPageStorage(wikiName);\n this.logger.debug(\"Ready to store\", page);\n await pageStorage.pages.update(id, page.toObject());\n } catch (e) {\n this.logger.debug(\n \"Exception while trying to store in local storage\",\n wikiName,\n id,\n page,\n e,\n );\n }\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { inject, injectable } from \"inversify\";\nimport type { QueueWorker } from \"@xwiki/cristal-sharedworker-api\";\nimport type {\n AttachmentsData,\n Document,\n Logger,\n PageAttachment,\n PageData,\n Storage,\n WikiConfig,\n WrappingStorage,\n} from \"@xwiki/platform-api\";\nimport type { OfflineStorage } from \"@xwiki/platform-backend-api\";\n\n@injectable()\nexport class WrappingOfflineStorage implements WrappingStorage {\n public logger: Logger;\n // @ts-expect-error storage can be temporarily undefined during class\n // initialization\n public storage: Storage;\n public offlineStorage: OfflineStorage;\n public queueWorker: QueueWorker;\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"OfflineStorage\") offlineStorage: OfflineStorage,\n @inject(\"QueueWorker\") queueWorker: QueueWorker,\n ) {\n this.logger = logger;\n this.logger.setModule(\"storage.components.wrappingOfflineStorage\");\n this.offlineStorage = offlineStorage;\n this.queueWorker = queueWorker;\n }\n\n public setStorage(storage: Storage): void {\n this.storage = storage;\n }\n\n public getStorage(): Storage {\n return this.storage;\n }\n\n public setWikiConfig(config: WikiConfig): void {\n return this.storage.setWikiConfig(config);\n }\n\n public getWikiConfig(): WikiConfig {\n return this.storage.getWikiConfig();\n }\n\n public async isStorageReady(): Promise<boolean> {\n return this.storage.isStorageReady();\n }\n\n public getPageRestURL(page: string, syntax: string): string {\n return this.storage.getPageRestURL(page, syntax);\n }\n\n public getPageFromViewURL(url: string): string | null {\n return this.storage.getPageFromViewURL(url);\n }\n\n public getImageURL(page: string, image: string): string {\n return this.storage.getImageURL(page, image);\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async getPageContent(\n page: string,\n syntax: string,\n _revision?: string,\n requeue?: boolean,\n ): Promise<PageData | undefined> {\n this.logger.debug(\"Trying to get data for page \", page);\n if (this.offlineStorage) {\n this.logger.debug(\"Asking offline storage for \", page);\n const pageData = await this.offlineStorage.getPage(\n this.getWikiConfig().name,\n page + \"_\" + syntax,\n );\n if (pageData != null && pageData != undefined) {\n this.logger.debug(\"Loading data from local storage for page\", page);\n // Adding page to refresh queue in shared worker\n if (requeue == undefined || requeue) {\n this.queueWorker.addToQueue(\n this.getWikiConfig().name + \":\" + page + \"_\" + syntax,\n );\n }\n return pageData;\n } else {\n this.logger.debug(\n \"Could not find data in local storage for page\",\n page,\n );\n return this.savePageContent(page, syntax);\n }\n } else {\n this.logger.debug(\"No offline local storage available\");\n return this.storage.getPageContent(page, syntax);\n }\n }\n\n public getAttachments(page: string): Promise<AttachmentsData | undefined> {\n // TODO: add support for offline storage of attachments.\n return this.storage.getAttachments(page);\n }\n\n getAttachment(\n page: string,\n name: string,\n ): Promise<PageAttachment | undefined> {\n return this.storage.getAttachment(page, name);\n }\n\n private async savePageContent(\n page: string,\n syntax: string,\n ): Promise<PageData> {\n const pageData = await this.storage.getPageContent(page, syntax);\n if (pageData) {\n pageData.id = page + \"_\" + syntax;\n this.logger.debug(\"Saving page to offline storage\", page);\n this.offlineStorage.savePage(\n this.getWikiConfig().name,\n page + \"_\" + syntax,\n pageData,\n );\n\n return pageData;\n } else {\n throw new Error(\"Can't save missing page.\");\n }\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async updatePageContent(\n page: string,\n syntax: string,\n ): Promise<boolean> {\n const currentPageData = await this.offlineStorage.getPage(\n this.getWikiConfig().name,\n page + \"_\" + syntax,\n );\n const pageData = await this.storage.getPageContent(page, syntax);\n if (currentPageData && pageData) {\n pageData.id = page + \"_\" + syntax;\n this.logger.debug(\"Saving page to offline storage\", page);\n this.offlineStorage.savePage(\n this.getWikiConfig().name,\n page + \"_\" + syntax,\n pageData,\n );\n return true;\n } else if (currentPageData?.version != pageData?.version && pageData) {\n pageData.id = page + \"_\" + syntax;\n this.logger.debug(\"Updating page to offline storage\", page);\n this.offlineStorage.updatePage(\n this.getWikiConfig().name,\n page + \"_\" + syntax,\n pageData,\n );\n return true;\n } else {\n this.logger.debug(\n \"Local storage not updated, because version are identical\",\n );\n return false;\n }\n }\n\n public async getPanelContent(\n panel: string,\n contextPage: string,\n syntax: string,\n ): Promise<PageData> {\n return this.storage.getPanelContent(panel, contextPage, syntax);\n }\n\n public async getEditField(\n document: Document,\n fieldName: string,\n ): Promise<string> {\n return await this.storage.getEditField(document, fieldName);\n }\n\n save(\n page: string,\n title: string,\n content: string,\n syntax: string,\n ): Promise<unknown> {\n return this.storage.save(page, title, content, syntax);\n }\n\n async saveAttachments(\n page: string,\n files: File[],\n ): Promise<undefined | (undefined | string)[]> {\n return this.storage.saveAttachments(page, files);\n }\n\n async delete(page: string): Promise<{ success: boolean; error?: string }> {\n return this.storage.delete(page);\n }\n\n async move(\n page: string,\n newPage: string,\n preserveChildren: boolean,\n ): Promise<{ success: boolean; error?: string }> {\n return this.storage.move(page, newPage, preserveChildren);\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport DexieOfflineStorage from \"./dexieOfflineStorage\";\nimport { WrappingOfflineStorage } from \"./wrappingOfflineStorage\";\nimport { Container } from \"inversify\";\nimport type { WrappingStorage } from \"@xwiki/platform-api\";\nimport type { OfflineStorage } from \"@xwiki/platform-backend-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<WrappingStorage>(\"WrappingStorage\")\n .to(WrappingOfflineStorage)\n .inSingletonScope();\n container\n .bind<OfflineStorage>(\"OfflineStorage\")\n .to(DexieOfflineStorage)\n .inSingletonScope();\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultWikiConfig } from \"@xwiki/platform-api\";\nimport { inject, injectable, named } from \"inversify\";\nimport type { CristalApp, Logger, Storage } from \"@xwiki/platform-api\";\n\n@injectable()\nexport class GitHubWikiConfig extends DefaultWikiConfig {\n override storage: Storage;\n override cristal: CristalApp;\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"Storage\") @named(\"GitHub\") storage: Storage,\n @inject(\"CristalApp\") cristal: CristalApp,\n ) {\n super(logger);\n this.storage = storage;\n this.cristal = cristal;\n this.storage.setWikiConfig(this);\n if (this.homePage == \"\") {\n this.homePage = \"README.md\";\n }\n }\n\n override defaultPageName(): string {\n return \"README\";\n }\n\n override getType(): string {\n return \"GitHub\";\n }\n}\n","const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n prevAnchors ?? (prevAnchors = anchorNames(doc));\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n // eslint-disable-next-line @typescript-eslint/no-array-delete\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair, hasAnchor } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc, ctx) {\n let nodes;\n if (ctx?.aliasResolveCache) {\n nodes = ctx.aliasResolveCache;\n }\n else {\n nodes = [];\n visit(doc, {\n Node: (_key, node) => {\n if (isAlias(node) || hasAnchor(node))\n nodes.push(node);\n }\n });\n if (ctx)\n ctx.aliasResolveCache = nodes;\n }\n let found = undefined;\n for (const node of nodes) {\n if (node === this)\n break;\n if (node.anchor === this.source)\n found = node;\n }\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc, ctx);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (data?.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n ref.anchor ?? (ref.anchor = onAnchor(value));\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_FLOW, FOLD_QUOTED, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n // Leading | or > is added later\n let header = (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (!literal) {\n const foldedValue = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n let literalFallback = false;\n const foldOptions = getFoldOptions(ctx, true);\n if (blockQuote !== 'folded' && type !== Scalar.BLOCK_FOLDED) {\n foldOptions.onOverflow = () => {\n literalFallback = true;\n };\n }\n const body = foldFlowLines(`${start}${foldedValue}${end}`, indent, FOLD_BLOCK, foldOptions);\n if (!literalFallback)\n return `>${header}\\n${indent}${body}`;\n }\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `|${header}\\n${indent}${start}${value}${end}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trailingComma: false,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n' && valueComment)\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { isScalar, isAlias, isSeq, isMap } from '../../nodes/identity.js';\nimport { Scalar } from '../../nodes/Scalar.js';\n\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nconst MERGE_KEY = '<<';\nconst merge = {\n identify: value => value === MERGE_KEY ||\n (typeof value === 'symbol' && value.description === MERGE_KEY),\n default: 'key',\n tag: 'tag:yaml.org,2002:merge',\n test: /^<<$/,\n resolve: () => Object.assign(new Scalar(Symbol(MERGE_KEY)), {\n addToJSMap: addMergeToJSMap\n }),\n stringify: () => MERGE_KEY\n};\nconst isMergeKey = (ctx, key) => (merge.identify(key) ||\n (isScalar(key) &&\n (!key.type || key.type === Scalar.PLAIN) &&\n merge.identify(key.value))) &&\n ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);\nfunction addMergeToJSMap(ctx, map, value) {\n value = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (isSeq(value))\n for (const it of value.items)\n mergeValue(ctx, map, it);\n else if (Array.isArray(value))\n for (const it of value)\n mergeValue(ctx, map, it);\n else\n mergeValue(ctx, map, value);\n}\nfunction mergeValue(ctx, map, value) {\n const source = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\n\nexport { addMergeToJSMap, isMergeKey, merge };\n","import { warn } from '../log.js';\nimport { isMergeKey, addMergeToJSMap } from '../schema/yaml-1.1/merge.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isNode } from './identity.js';\nimport { toJS } from './toJS.js';\n\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (isNode(key) && key.addToJSMap)\n key.addToJSMap(ctx, map, value);\n // TODO: Should drop this special case for bare << handling\n else if (isMergeKey(ctx, key))\n addMergeToJSMap(ctx, map, value);\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n reqNewline || (reqNewline = lines.length > linesAtValue || str.includes('\\n'));\n if (i < items.length - 1) {\n str += ',';\n }\n else if (ctx.options.trailingComma) {\n if (ctx.options.lineWidth > 0) {\n reqNewline || (reqNewline = lines.reduce((sum, line) => sum + line.length + 2, 2) +\n (str.length + 2) >\n ctx.options.lineWidth);\n }\n if (reqNewline) {\n str += ',';\n }\n }\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { MAP, isPair, isScalar } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = Object.is(value, -0) ? '-0' : JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^\\d/.test(n)) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true$|^false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n if (!value)\n return '';\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n type ?? (type = Scalar.BLOCK_LITERAL);\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { createPair, Pair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value?.toISOString().replace(/(T00:00:00)?\\.000Z$/, '') ?? ''\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { merge } from './merge.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n merge,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { floatNaN, floatExp, float } from './core/float.js';\nimport { intOct, intHex, int } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { merge } from './yaml-1.1/merge.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, intTime, floatTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n merge,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:merge': merge,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName, addMergeTag) {\n const schemaTags = schemas.get(schemaName);\n if (schemaTags && !customTags) {\n return addMergeTag && !schemaTags.includes(merge)\n ? schemaTags.concat(merge)\n : schemaTags.slice();\n }\n let tags = schemaTags;\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n if (addMergeTag)\n tags = tags.concat(merge);\n return tags.reduce((tags, tag) => {\n const tagObj = typeof tag === 'string' ? tagsByName[tag] : tag;\n if (!tagObj) {\n const tagName = JSON.stringify(tag);\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`);\n }\n if (!tags.includes(tagObj))\n tags.push(tagObj);\n return tags;\n }, []);\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name, merge);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n stringKeys: false,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end?.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else if (!found || indicator !== 'seq-item-ind')\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b || (isScalar(a) && isScalar(b) && a.value === b.value);\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n ctx.atKey = true;\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n ctx.atKey = false;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value?.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n ctx.atKey = true;\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n ctx.atKey = false;\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source?.[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n const endRange = (valueNode ?? keyNode).range;\n map.range = [keyNode.range[0], endRange[1], endRange[2]];\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce?.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt?.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection ?? 'scalar'}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = { x: 2, u: 4, U: 8 }[next];\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n if (isNaN(code)) {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n return String.fromCodePoint(code);\n}\n\nexport { resolveFlowScalar };\n","import { isScalar, SCALAR } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n let tag;\n if (ctx.options.stringKeys && ctx.atKey) {\n tag = ctx.schema[SCALAR];\n }\n else if (tagName)\n tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError);\n else if (token.type === 'scalar')\n tag = findScalarTagByTest(ctx, value, token, onError);\n else\n tag = ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ atKey, directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => (tag.default === true || (atKey && tag.default === 'key')) &&\n tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n pos ?? (pos = before.length);\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { isScalar } from '../nodes/identity.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n try {\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n }\n catch (error) {\n // Almost certainly here due to a stack overflow\n const message = error instanceof Error ? error.message : String(error);\n onError(token, 'RESOURCE_EXHAUSTION', message);\n }\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n isSrcToken = false;\n }\n }\n node ?? (node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError));\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (atKey &&\n ctx.options.stringKeys &&\n (!isScalar(node) ||\n typeof node.value !== 'string' ||\n (node.tag && node.tag !== 'tag:yaml.org,2002:str'))) {\n const msg = 'With stringKeys, all keys must be strings';\n onError(tag ?? token, 'NON_STRING_KEY', msg);\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atKey: false,\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n Array.prototype.push.apply(doc.errors, this.errors);\n Array.prototype.push.apply(doc.warnings, this.warnings);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '<BOM>';\n case DOCUMENT:\n return '<DOC>';\n case FLOW_END:\n return '<FLOW_END>';\n case SCALAR:\n return '<SCALAR>';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return yield* this.parseBlockStart();\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n switch (this.charAt(0)) {\n case '!':\n return ((yield* this.pushTag()) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '&':\n return ((yield* this.pushUntil(isNotAnchorChar)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n return ((yield* this.pushCount(1)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n }\n }\n }\n return 0;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n Array.prototype.push.apply(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n Array.prototype.push.apply(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && top?.type !== 'doc-end') {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (bv.type === 'block-seq') {\n if (!it.explicitKey &&\n it.sep &&\n !includesToken(it.sep, 'newline')) {\n yield* this.pop({\n type: 'error',\n offset: this.offset,\n message: 'Unexpected block-seq-ind on same line with key',\n source: this.source\n });\n return;\n }\n }\n else if (atMapIndent) {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top?.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { isDocument } from './nodes/identity.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n if (isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\nimport { parse } from \"yaml\";\nimport type { PageReader } from \"@xwiki/cristal-page-api\";\n\n/**\n * @since 0.20\n * @beta\n */\nclass DefaultPageReader implements PageReader {\n readPage(pageContent: string): { content: string; [key: string]: unknown } {\n const lines = pageContent.split(\"\\n\");\n if (lines[0] == \"---\") {\n // Remove the first element\n lines.shift();\n const endFrontMatterIndex = lines.findIndex((line) => line == \"---\");\n if (endFrontMatterIndex >= 0) {\n // We only try to read the front matter if we can find two '---' lines\n const frontMatterContent = lines\n .slice(0, endFrontMatterIndex)\n .join(\"\\n\");\n const parsedYaml = parse(frontMatterContent);\n return {\n ...parsedYaml,\n content: lines.slice(endFrontMatterIndex + 1).join(\"\\n\"),\n };\n } else {\n return {\n content: pageContent,\n };\n }\n } else {\n // When the page does not start with '---' it's content is returned as-is\n return {\n content: pageContent,\n };\n }\n }\n}\n\nexport { DefaultPageReader };\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\nimport { stringify } from \"yaml\";\nimport type { PageWriter } from \"@xwiki/cristal-page-api\";\n\n/**\n * @since 0.20\n * @beta\n */\nclass DefaultPageWriter implements PageWriter {\n writePage(page: { content: string; [key: string]: unknown }): string {\n const { content, ...metadata } = page;\n if (metadata && Object.keys(metadata).length > 0) {\n return `---\n${stringify(metadata)}---\n${content ?? \"\"}`;\n } else {\n return (content ?? \"\") as string;\n }\n }\n}\n\nexport { DefaultPageWriter };\n","import { injectable as l, unmanaged as c, inject as p } from \"inversify\";\nvar v = Object.getOwnPropertyDescriptor, u = (t, r, o, e) => {\n for (var i = e > 1 ? void 0 : e ? v(r, o) : r, s = t.length - 1, a; s >= 0; s--)\n (a = t[s]) && (i = a(i) || i);\n return i;\n}, f = (t, r) => (o, e) => r(o, e, t);\nlet n = class {\n logger;\n // @ts-expect-error wikiConfig is temporarily undefined during class\n // initialization\n wikiConfig;\n constructor(t, r) {\n this.logger = t, this.logger.setModule(r);\n }\n setWikiConfig(t) {\n this.logger.debug(\"Setting wiki Config: \", t), this.wikiConfig = t;\n }\n getWikiConfig() {\n return this.wikiConfig;\n }\n};\nn = u([\n l(),\n f(0, c())\n], n);\nvar _ = Object.getOwnPropertyDescriptor, C = (t, r, o, e) => {\n for (var i = e > 1 ? void 0 : e ? _(r, o) : r, s = t.length - 1, a; s >= 0; s--)\n (a = t[s]) && (i = a(i) || i);\n return i;\n}, h = (t, r) => (o, e) => r(o, e, t);\nlet g = class {\n constructor(t) {\n this.cristalApp = t;\n }\n get() {\n return this.cristalApp.getWikiConfig().storage;\n }\n};\ng = C([\n l(),\n h(0, p(\"CristalApp\"))\n], g);\nclass w {\n constructor(r) {\n r.bind(\"StorageProvider\").to(g).inSingletonScope();\n }\n}\nexport {\n n as AbstractStorage,\n w as ComponentInit\n};\n//# sourceMappingURL=index.es.js.map\n","const types = {\n 'application/prs.cww': ['cww'],\n 'application/prs.xsf+xml': ['xsf'],\n 'application/vnd.1000minds.decision-model+xml': ['1km'],\n 'application/vnd.3gpp.pic-bw-large': ['plb'],\n 'application/vnd.3gpp.pic-bw-small': ['psb'],\n 'application/vnd.3gpp.pic-bw-var': ['pvb'],\n 'application/vnd.3gpp2.tcap': ['tcap'],\n 'application/vnd.3m.post-it-notes': ['pwn'],\n 'application/vnd.accpac.simply.aso': ['aso'],\n 'application/vnd.accpac.simply.imp': ['imp'],\n 'application/vnd.acucobol': ['acu'],\n 'application/vnd.acucorp': ['atc', 'acutc'],\n 'application/vnd.adobe.air-application-installer-package+zip': ['air'],\n 'application/vnd.adobe.formscentral.fcdt': ['fcdt'],\n 'application/vnd.adobe.fxp': ['fxp', 'fxpl'],\n 'application/vnd.adobe.xdp+xml': ['xdp'],\n 'application/vnd.adobe.xfdf': ['*xfdf'],\n 'application/vnd.age': ['age'],\n 'application/vnd.ahead.space': ['ahead'],\n 'application/vnd.airzip.filesecure.azf': ['azf'],\n 'application/vnd.airzip.filesecure.azs': ['azs'],\n 'application/vnd.amazon.ebook': ['azw'],\n 'application/vnd.americandynamics.acc': ['acc'],\n 'application/vnd.amiga.ami': ['ami'],\n 'application/vnd.android.package-archive': ['apk'],\n 'application/vnd.anser-web-certificate-issue-initiation': ['cii'],\n 'application/vnd.anser-web-funds-transfer-initiation': ['fti'],\n 'application/vnd.antix.game-component': ['atx'],\n 'application/vnd.apple.installer+xml': ['mpkg'],\n 'application/vnd.apple.keynote': ['key'],\n 'application/vnd.apple.mpegurl': ['m3u8'],\n 'application/vnd.apple.numbers': ['numbers'],\n 'application/vnd.apple.pages': ['pages'],\n 'application/vnd.apple.pkpass': ['pkpass'],\n 'application/vnd.aristanetworks.swi': ['swi'],\n 'application/vnd.astraea-software.iota': ['iota'],\n 'application/vnd.audiograph': ['aep'],\n 'application/vnd.autodesk.fbx': ['fbx'],\n 'application/vnd.balsamiq.bmml+xml': ['bmml'],\n 'application/vnd.blueice.multipass': ['mpm'],\n 'application/vnd.bmi': ['bmi'],\n 'application/vnd.businessobjects': ['rep'],\n 'application/vnd.chemdraw+xml': ['cdxml'],\n 'application/vnd.chipnuts.karaoke-mmd': ['mmd'],\n 'application/vnd.cinderella': ['cdy'],\n 'application/vnd.citationstyles.style+xml': ['csl'],\n 'application/vnd.claymore': ['cla'],\n 'application/vnd.cloanto.rp9': ['rp9'],\n 'application/vnd.clonk.c4group': ['c4g', 'c4d', 'c4f', 'c4p', 'c4u'],\n 'application/vnd.cluetrust.cartomobile-config': ['c11amc'],\n 'application/vnd.cluetrust.cartomobile-config-pkg': ['c11amz'],\n 'application/vnd.commonspace': ['csp'],\n 'application/vnd.contact.cmsg': ['cdbcmsg'],\n 'application/vnd.cosmocaller': ['cmc'],\n 'application/vnd.crick.clicker': ['clkx'],\n 'application/vnd.crick.clicker.keyboard': ['clkk'],\n 'application/vnd.crick.clicker.palette': ['clkp'],\n 'application/vnd.crick.clicker.template': ['clkt'],\n 'application/vnd.crick.clicker.wordbank': ['clkw'],\n 'application/vnd.criticaltools.wbs+xml': ['wbs'],\n 'application/vnd.ctc-posml': ['pml'],\n 'application/vnd.cups-ppd': ['ppd'],\n 'application/vnd.curl.car': ['car'],\n 'application/vnd.curl.pcurl': ['pcurl'],\n 'application/vnd.dart': ['dart'],\n 'application/vnd.data-vision.rdz': ['rdz'],\n 'application/vnd.dbf': ['dbf'],\n 'application/vnd.dcmp+xml': ['dcmp'],\n 'application/vnd.dece.data': ['uvf', 'uvvf', 'uvd', 'uvvd'],\n 'application/vnd.dece.ttml+xml': ['uvt', 'uvvt'],\n 'application/vnd.dece.unspecified': ['uvx', 'uvvx'],\n 'application/vnd.dece.zip': ['uvz', 'uvvz'],\n 'application/vnd.denovo.fcselayout-link': ['fe_launch'],\n 'application/vnd.dna': ['dna'],\n 'application/vnd.dolby.mlp': ['mlp'],\n 'application/vnd.dpgraph': ['dpg'],\n 'application/vnd.dreamfactory': ['dfac'],\n 'application/vnd.ds-keypoint': ['kpxx'],\n 'application/vnd.dvb.ait': ['ait'],\n 'application/vnd.dvb.service': ['svc'],\n 'application/vnd.dynageo': ['geo'],\n 'application/vnd.ecowin.chart': ['mag'],\n 'application/vnd.enliven': ['nml'],\n 'application/vnd.epson.esf': ['esf'],\n 'application/vnd.epson.msf': ['msf'],\n 'application/vnd.epson.quickanime': ['qam'],\n 'application/vnd.epson.salt': ['slt'],\n 'application/vnd.epson.ssf': ['ssf'],\n 'application/vnd.eszigno3+xml': ['es3', 'et3'],\n 'application/vnd.ezpix-album': ['ez2'],\n 'application/vnd.ezpix-package': ['ez3'],\n 'application/vnd.fdf': ['*fdf'],\n 'application/vnd.fdsn.mseed': ['mseed'],\n 'application/vnd.fdsn.seed': ['seed', 'dataless'],\n 'application/vnd.flographit': ['gph'],\n 'application/vnd.fluxtime.clip': ['ftc'],\n 'application/vnd.framemaker': ['fm', 'frame', 'maker', 'book'],\n 'application/vnd.frogans.fnc': ['fnc'],\n 'application/vnd.frogans.ltf': ['ltf'],\n 'application/vnd.fsc.weblaunch': ['fsc'],\n 'application/vnd.fujitsu.oasys': ['oas'],\n 'application/vnd.fujitsu.oasys2': ['oa2'],\n 'application/vnd.fujitsu.oasys3': ['oa3'],\n 'application/vnd.fujitsu.oasysgp': ['fg5'],\n 'application/vnd.fujitsu.oasysprs': ['bh2'],\n 'application/vnd.fujixerox.ddd': ['ddd'],\n 'application/vnd.fujixerox.docuworks': ['xdw'],\n 'application/vnd.fujixerox.docuworks.binder': ['xbd'],\n 'application/vnd.fuzzysheet': ['fzs'],\n 'application/vnd.genomatix.tuxedo': ['txd'],\n 'application/vnd.geogebra.file': ['ggb'],\n 'application/vnd.geogebra.slides': ['ggs'],\n 'application/vnd.geogebra.tool': ['ggt'],\n 'application/vnd.geometry-explorer': ['gex', 'gre'],\n 'application/vnd.geonext': ['gxt'],\n 'application/vnd.geoplan': ['g2w'],\n 'application/vnd.geospace': ['g3w'],\n 'application/vnd.gmx': ['gmx'],\n 'application/vnd.google-apps.document': ['gdoc'],\n 'application/vnd.google-apps.drawing': ['gdraw'],\n 'application/vnd.google-apps.form': ['gform'],\n 'application/vnd.google-apps.jam': ['gjam'],\n 'application/vnd.google-apps.map': ['gmap'],\n 'application/vnd.google-apps.presentation': ['gslides'],\n 'application/vnd.google-apps.script': ['gscript'],\n 'application/vnd.google-apps.site': ['gsite'],\n 'application/vnd.google-apps.spreadsheet': ['gsheet'],\n 'application/vnd.google-earth.kml+xml': ['kml'],\n 'application/vnd.google-earth.kmz': ['kmz'],\n 'application/vnd.gov.sk.xmldatacontainer+xml': ['xdcf'],\n 'application/vnd.grafeq': ['gqf', 'gqs'],\n 'application/vnd.groove-account': ['gac'],\n 'application/vnd.groove-help': ['ghf'],\n 'application/vnd.groove-identity-message': ['gim'],\n 'application/vnd.groove-injector': ['grv'],\n 'application/vnd.groove-tool-message': ['gtm'],\n 'application/vnd.groove-tool-template': ['tpl'],\n 'application/vnd.groove-vcard': ['vcg'],\n 'application/vnd.hal+xml': ['hal'],\n 'application/vnd.handheld-entertainment+xml': ['zmm'],\n 'application/vnd.hbci': ['hbci'],\n 'application/vnd.hhe.lesson-player': ['les'],\n 'application/vnd.hp-hpgl': ['hpgl'],\n 'application/vnd.hp-hpid': ['hpid'],\n 'application/vnd.hp-hps': ['hps'],\n 'application/vnd.hp-jlyt': ['jlt'],\n 'application/vnd.hp-pcl': ['pcl'],\n 'application/vnd.hp-pclxl': ['pclxl'],\n 'application/vnd.hydrostatix.sof-data': ['sfd-hdstx'],\n 'application/vnd.ibm.minipay': ['mpy'],\n 'application/vnd.ibm.modcap': ['afp', 'listafp', 'list3820'],\n 'application/vnd.ibm.rights-management': ['irm'],\n 'application/vnd.ibm.secure-container': ['sc'],\n 'application/vnd.iccprofile': ['icc', 'icm'],\n 'application/vnd.igloader': ['igl'],\n 'application/vnd.immervision-ivp': ['ivp'],\n 'application/vnd.immervision-ivu': ['ivu'],\n 'application/vnd.insors.igm': ['igm'],\n 'application/vnd.intercon.formnet': ['xpw', 'xpx'],\n 'application/vnd.intergeo': ['i2g'],\n 'application/vnd.intu.qbo': ['qbo'],\n 'application/vnd.intu.qfx': ['qfx'],\n 'application/vnd.ipunplugged.rcprofile': ['rcprofile'],\n 'application/vnd.irepository.package+xml': ['irp'],\n 'application/vnd.is-xpr': ['xpr'],\n 'application/vnd.isac.fcs': ['fcs'],\n 'application/vnd.jam': ['jam'],\n 'application/vnd.jcp.javame.midlet-rms': ['rms'],\n 'application/vnd.jisp': ['jisp'],\n 'application/vnd.joost.joda-archive': ['joda'],\n 'application/vnd.kahootz': ['ktz', 'ktr'],\n 'application/vnd.kde.karbon': ['karbon'],\n 'application/vnd.kde.kchart': ['chrt'],\n 'application/vnd.kde.kformula': ['kfo'],\n 'application/vnd.kde.kivio': ['flw'],\n 'application/vnd.kde.kontour': ['kon'],\n 'application/vnd.kde.kpresenter': ['kpr', 'kpt'],\n 'application/vnd.kde.kspread': ['ksp'],\n 'application/vnd.kde.kword': ['kwd', 'kwt'],\n 'application/vnd.kenameaapp': ['htke'],\n 'application/vnd.kidspiration': ['kia'],\n 'application/vnd.kinar': ['kne', 'knp'],\n 'application/vnd.koan': ['skp', 'skd', 'skt', 'skm'],\n 'application/vnd.kodak-descriptor': ['sse'],\n 'application/vnd.las.las+xml': ['lasxml'],\n 'application/vnd.llamagraphics.life-balance.desktop': ['lbd'],\n 'application/vnd.llamagraphics.life-balance.exchange+xml': ['lbe'],\n 'application/vnd.lotus-1-2-3': ['123'],\n 'application/vnd.lotus-approach': ['apr'],\n 'application/vnd.lotus-freelance': ['pre'],\n 'application/vnd.lotus-notes': ['nsf'],\n 'application/vnd.lotus-organizer': ['org'],\n 'application/vnd.lotus-screencam': ['scm'],\n 'application/vnd.lotus-wordpro': ['lwp'],\n 'application/vnd.macports.portpkg': ['portpkg'],\n 'application/vnd.mapbox-vector-tile': ['mvt'],\n 'application/vnd.mcd': ['mcd'],\n 'application/vnd.medcalcdata': ['mc1'],\n 'application/vnd.mediastation.cdkey': ['cdkey'],\n 'application/vnd.mfer': ['mwf'],\n 'application/vnd.mfmp': ['mfm'],\n 'application/vnd.micrografx.flo': ['flo'],\n 'application/vnd.micrografx.igx': ['igx'],\n 'application/vnd.mif': ['mif'],\n 'application/vnd.mobius.daf': ['daf'],\n 'application/vnd.mobius.dis': ['dis'],\n 'application/vnd.mobius.mbk': ['mbk'],\n 'application/vnd.mobius.mqy': ['mqy'],\n 'application/vnd.mobius.msl': ['msl'],\n 'application/vnd.mobius.plc': ['plc'],\n 'application/vnd.mobius.txf': ['txf'],\n 'application/vnd.mophun.application': ['mpn'],\n 'application/vnd.mophun.certificate': ['mpc'],\n 'application/vnd.mozilla.xul+xml': ['xul'],\n 'application/vnd.ms-artgalry': ['cil'],\n 'application/vnd.ms-cab-compressed': ['cab'],\n 'application/vnd.ms-excel': ['xls', 'xlm', 'xla', 'xlc', 'xlt', 'xlw'],\n 'application/vnd.ms-excel.addin.macroenabled.12': ['xlam'],\n 'application/vnd.ms-excel.sheet.binary.macroenabled.12': ['xlsb'],\n 'application/vnd.ms-excel.sheet.macroenabled.12': ['xlsm'],\n 'application/vnd.ms-excel.template.macroenabled.12': ['xltm'],\n 'application/vnd.ms-fontobject': ['eot'],\n 'application/vnd.ms-htmlhelp': ['chm'],\n 'application/vnd.ms-ims': ['ims'],\n 'application/vnd.ms-lrm': ['lrm'],\n 'application/vnd.ms-officetheme': ['thmx'],\n 'application/vnd.ms-outlook': ['msg'],\n 'application/vnd.ms-pki.seccat': ['cat'],\n 'application/vnd.ms-pki.stl': ['*stl'],\n 'application/vnd.ms-powerpoint': ['ppt', 'pps', 'pot'],\n 'application/vnd.ms-powerpoint.addin.macroenabled.12': ['ppam'],\n 'application/vnd.ms-powerpoint.presentation.macroenabled.12': ['pptm'],\n 'application/vnd.ms-powerpoint.slide.macroenabled.12': ['sldm'],\n 'application/vnd.ms-powerpoint.slideshow.macroenabled.12': ['ppsm'],\n 'application/vnd.ms-powerpoint.template.macroenabled.12': ['potm'],\n 'application/vnd.ms-project': ['*mpp', 'mpt'],\n 'application/vnd.ms-visio.viewer': ['vdx'],\n 'application/vnd.ms-word.document.macroenabled.12': ['docm'],\n 'application/vnd.ms-word.template.macroenabled.12': ['dotm'],\n 'application/vnd.ms-works': ['wps', 'wks', 'wcm', 'wdb'],\n 'application/vnd.ms-wpl': ['wpl'],\n 'application/vnd.ms-xpsdocument': ['xps'],\n 'application/vnd.mseq': ['mseq'],\n 'application/vnd.musician': ['mus'],\n 'application/vnd.muvee.style': ['msty'],\n 'application/vnd.mynfc': ['taglet'],\n 'application/vnd.nato.bindingdataobject+xml': ['bdo'],\n 'application/vnd.neurolanguage.nlu': ['nlu'],\n 'application/vnd.nitf': ['ntf', 'nitf'],\n 'application/vnd.noblenet-directory': ['nnd'],\n 'application/vnd.noblenet-sealer': ['nns'],\n 'application/vnd.noblenet-web': ['nnw'],\n 'application/vnd.nokia.n-gage.ac+xml': ['*ac'],\n 'application/vnd.nokia.n-gage.data': ['ngdat'],\n 'application/vnd.nokia.n-gage.symbian.install': ['n-gage'],\n 'application/vnd.nokia.radio-preset': ['rpst'],\n 'application/vnd.nokia.radio-presets': ['rpss'],\n 'application/vnd.novadigm.edm': ['edm'],\n 'application/vnd.novadigm.edx': ['edx'],\n 'application/vnd.novadigm.ext': ['ext'],\n 'application/vnd.oasis.opendocument.chart': ['odc'],\n 'application/vnd.oasis.opendocument.chart-template': ['otc'],\n 'application/vnd.oasis.opendocument.database': ['odb'],\n 'application/vnd.oasis.opendocument.formula': ['odf'],\n 'application/vnd.oasis.opendocument.formula-template': ['odft'],\n 'application/vnd.oasis.opendocument.graphics': ['odg'],\n 'application/vnd.oasis.opendocument.graphics-template': ['otg'],\n 'application/vnd.oasis.opendocument.image': ['odi'],\n 'application/vnd.oasis.opendocument.image-template': ['oti'],\n 'application/vnd.oasis.opendocument.presentation': ['odp'],\n 'application/vnd.oasis.opendocument.presentation-template': ['otp'],\n 'application/vnd.oasis.opendocument.spreadsheet': ['ods'],\n 'application/vnd.oasis.opendocument.spreadsheet-template': ['ots'],\n 'application/vnd.oasis.opendocument.text': ['odt'],\n 'application/vnd.oasis.opendocument.text-master': ['odm'],\n 'application/vnd.oasis.opendocument.text-template': ['ott'],\n 'application/vnd.oasis.opendocument.text-web': ['oth'],\n 'application/vnd.olpc-sugar': ['xo'],\n 'application/vnd.oma.dd2+xml': ['dd2'],\n 'application/vnd.openblox.game+xml': ['obgx'],\n 'application/vnd.openofficeorg.extension': ['oxt'],\n 'application/vnd.openstreetmap.data+xml': ['osm'],\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': [\n 'pptx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slide': [\n 'sldx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow': [\n 'ppsx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.template': [\n 'potx',\n ],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['xlsx'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template': [\n 'xltx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [\n 'docx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template': [\n 'dotx',\n ],\n 'application/vnd.osgeo.mapguide.package': ['mgp'],\n 'application/vnd.osgi.dp': ['dp'],\n 'application/vnd.osgi.subsystem': ['esa'],\n 'application/vnd.palm': ['pdb', 'pqa', 'oprc'],\n 'application/vnd.pawaafile': ['paw'],\n 'application/vnd.pg.format': ['str'],\n 'application/vnd.pg.osasli': ['ei6'],\n 'application/vnd.picsel': ['efif'],\n 'application/vnd.pmi.widget': ['wg'],\n 'application/vnd.pocketlearn': ['plf'],\n 'application/vnd.powerbuilder6': ['pbd'],\n 'application/vnd.previewsystems.box': ['box'],\n 'application/vnd.procrate.brushset': ['brushset'],\n 'application/vnd.procreate.brush': ['brush'],\n 'application/vnd.procreate.dream': ['drm'],\n 'application/vnd.proteus.magazine': ['mgz'],\n 'application/vnd.publishare-delta-tree': ['qps'],\n 'application/vnd.pvi.ptid1': ['ptid'],\n 'application/vnd.pwg-xhtml-print+xml': ['xhtm'],\n 'application/vnd.quark.quarkxpress': [\n 'qxd',\n 'qxt',\n 'qwd',\n 'qwt',\n 'qxl',\n 'qxb',\n ],\n 'application/vnd.rar': ['rar'],\n 'application/vnd.realvnc.bed': ['bed'],\n 'application/vnd.recordare.musicxml': ['mxl'],\n 'application/vnd.recordare.musicxml+xml': ['musicxml'],\n 'application/vnd.rig.cryptonote': ['cryptonote'],\n 'application/vnd.rim.cod': ['cod'],\n 'application/vnd.rn-realmedia': ['rm'],\n 'application/vnd.rn-realmedia-vbr': ['rmvb'],\n 'application/vnd.route66.link66+xml': ['link66'],\n 'application/vnd.sailingtracker.track': ['st'],\n 'application/vnd.seemail': ['see'],\n 'application/vnd.sema': ['sema'],\n 'application/vnd.semd': ['semd'],\n 'application/vnd.semf': ['semf'],\n 'application/vnd.shana.informed.formdata': ['ifm'],\n 'application/vnd.shana.informed.formtemplate': ['itp'],\n 'application/vnd.shana.informed.interchange': ['iif'],\n 'application/vnd.shana.informed.package': ['ipk'],\n 'application/vnd.simtech-mindmapper': ['twd', 'twds'],\n 'application/vnd.smaf': ['mmf'],\n 'application/vnd.smart.teacher': ['teacher'],\n 'application/vnd.software602.filler.form+xml': ['fo'],\n 'application/vnd.solent.sdkm+xml': ['sdkm', 'sdkd'],\n 'application/vnd.spotfire.dxp': ['dxp'],\n 'application/vnd.spotfire.sfs': ['sfs'],\n 'application/vnd.stardivision.calc': ['sdc'],\n 'application/vnd.stardivision.draw': ['sda'],\n 'application/vnd.stardivision.impress': ['sdd'],\n 'application/vnd.stardivision.math': ['smf'],\n 'application/vnd.stardivision.writer': ['sdw', 'vor'],\n 'application/vnd.stardivision.writer-global': ['sgl'],\n 'application/vnd.stepmania.package': ['smzip'],\n 'application/vnd.stepmania.stepchart': ['sm'],\n 'application/vnd.sun.wadl+xml': ['wadl'],\n 'application/vnd.sun.xml.calc': ['sxc'],\n 'application/vnd.sun.xml.calc.template': ['stc'],\n 'application/vnd.sun.xml.draw': ['sxd'],\n 'application/vnd.sun.xml.draw.template': ['std'],\n 'application/vnd.sun.xml.impress': ['sxi'],\n 'application/vnd.sun.xml.impress.template': ['sti'],\n 'application/vnd.sun.xml.math': ['sxm'],\n 'application/vnd.sun.xml.writer': ['sxw'],\n 'application/vnd.sun.xml.writer.global': ['sxg'],\n 'application/vnd.sun.xml.writer.template': ['stw'],\n 'application/vnd.sus-calendar': ['sus', 'susp'],\n 'application/vnd.svd': ['svd'],\n 'application/vnd.symbian.install': ['sis', 'sisx'],\n 'application/vnd.syncml+xml': ['xsm'],\n 'application/vnd.syncml.dm+wbxml': ['bdm'],\n 'application/vnd.syncml.dm+xml': ['xdm'],\n 'application/vnd.syncml.dmddf+xml': ['ddf'],\n 'application/vnd.tao.intent-module-archive': ['tao'],\n 'application/vnd.tcpdump.pcap': ['pcap', 'cap', 'dmp'],\n 'application/vnd.tmobile-livetv': ['tmo'],\n 'application/vnd.trid.tpt': ['tpt'],\n 'application/vnd.triscape.mxs': ['mxs'],\n 'application/vnd.trueapp': ['tra'],\n 'application/vnd.ufdl': ['ufd', 'ufdl'],\n 'application/vnd.uiq.theme': ['utz'],\n 'application/vnd.umajin': ['umj'],\n 'application/vnd.unity': ['unityweb'],\n 'application/vnd.uoml+xml': ['uoml', 'uo'],\n 'application/vnd.vcx': ['vcx'],\n 'application/vnd.visio': ['vsd', 'vst', 'vss', 'vsw', 'vsdx', 'vtx'],\n 'application/vnd.visionary': ['vis'],\n 'application/vnd.vsf': ['vsf'],\n 'application/vnd.wap.wbxml': ['wbxml'],\n 'application/vnd.wap.wmlc': ['wmlc'],\n 'application/vnd.wap.wmlscriptc': ['wmlsc'],\n 'application/vnd.webturbo': ['wtb'],\n 'application/vnd.wolfram.player': ['nbp'],\n 'application/vnd.wordperfect': ['wpd'],\n 'application/vnd.wqd': ['wqd'],\n 'application/vnd.wt.stf': ['stf'],\n 'application/vnd.xara': ['xar'],\n 'application/vnd.xfdl': ['xfdl'],\n 'application/vnd.yamaha.hv-dic': ['hvd'],\n 'application/vnd.yamaha.hv-script': ['hvs'],\n 'application/vnd.yamaha.hv-voice': ['hvp'],\n 'application/vnd.yamaha.openscoreformat': ['osf'],\n 'application/vnd.yamaha.openscoreformat.osfpvg+xml': ['osfpvg'],\n 'application/vnd.yamaha.smaf-audio': ['saf'],\n 'application/vnd.yamaha.smaf-phrase': ['spf'],\n 'application/vnd.yellowriver-custom-menu': ['cmp'],\n 'application/vnd.zul': ['zir', 'zirz'],\n 'application/vnd.zzazz.deck+xml': ['zaz'],\n 'application/x-7z-compressed': ['7z'],\n 'application/x-abiword': ['abw'],\n 'application/x-ace-compressed': ['ace'],\n 'application/x-apple-diskimage': ['*dmg'],\n 'application/x-arj': ['arj'],\n 'application/x-authorware-bin': ['aab', 'x32', 'u32', 'vox'],\n 'application/x-authorware-map': ['aam'],\n 'application/x-authorware-seg': ['aas'],\n 'application/x-bcpio': ['bcpio'],\n 'application/x-bdoc': ['*bdoc'],\n 'application/x-bittorrent': ['torrent'],\n 'application/x-blender': ['blend'],\n 'application/x-blorb': ['blb', 'blorb'],\n 'application/x-bzip': ['bz'],\n 'application/x-bzip2': ['bz2', 'boz'],\n 'application/x-cbr': ['cbr', 'cba', 'cbt', 'cbz', 'cb7'],\n 'application/x-cdlink': ['vcd'],\n 'application/x-cfs-compressed': ['cfs'],\n 'application/x-chat': ['chat'],\n 'application/x-chess-pgn': ['pgn'],\n 'application/x-chrome-extension': ['crx'],\n 'application/x-cocoa': ['cco'],\n 'application/x-compressed': ['*rar'],\n 'application/x-conference': ['nsc'],\n 'application/x-cpio': ['cpio'],\n 'application/x-csh': ['csh'],\n 'application/x-debian-package': ['*deb', 'udeb'],\n 'application/x-dgc-compressed': ['dgc'],\n 'application/x-director': [\n 'dir',\n 'dcr',\n 'dxr',\n 'cst',\n 'cct',\n 'cxt',\n 'w3d',\n 'fgd',\n 'swa',\n ],\n 'application/x-doom': ['wad'],\n 'application/x-dtbncx+xml': ['ncx'],\n 'application/x-dtbook+xml': ['dtb'],\n 'application/x-dtbresource+xml': ['res'],\n 'application/x-dvi': ['dvi'],\n 'application/x-envoy': ['evy'],\n 'application/x-eva': ['eva'],\n 'application/x-font-bdf': ['bdf'],\n 'application/x-font-ghostscript': ['gsf'],\n 'application/x-font-linux-psf': ['psf'],\n 'application/x-font-pcf': ['pcf'],\n 'application/x-font-snf': ['snf'],\n 'application/x-font-type1': ['pfa', 'pfb', 'pfm', 'afm'],\n 'application/x-freearc': ['arc'],\n 'application/x-futuresplash': ['spl'],\n 'application/x-gca-compressed': ['gca'],\n 'application/x-glulx': ['ulx'],\n 'application/x-gnumeric': ['gnumeric'],\n 'application/x-gramps-xml': ['gramps'],\n 'application/x-gtar': ['gtar'],\n 'application/x-hdf': ['hdf'],\n 'application/x-httpd-php': ['php'],\n 'application/x-install-instructions': ['install'],\n 'application/x-ipynb+json': ['ipynb'],\n 'application/x-iso9660-image': ['*iso'],\n 'application/x-iwork-keynote-sffkey': ['*key'],\n 'application/x-iwork-numbers-sffnumbers': ['*numbers'],\n 'application/x-iwork-pages-sffpages': ['*pages'],\n 'application/x-java-archive-diff': ['jardiff'],\n 'application/x-java-jnlp-file': ['jnlp'],\n 'application/x-keepass2': ['kdbx'],\n 'application/x-latex': ['latex'],\n 'application/x-lua-bytecode': ['luac'],\n 'application/x-lzh-compressed': ['lzh', 'lha'],\n 'application/x-makeself': ['run'],\n 'application/x-mie': ['mie'],\n 'application/x-mobipocket-ebook': ['*prc', 'mobi'],\n 'application/x-ms-application': ['application'],\n 'application/x-ms-shortcut': ['lnk'],\n 'application/x-ms-wmd': ['wmd'],\n 'application/x-ms-wmz': ['wmz'],\n 'application/x-ms-xbap': ['xbap'],\n 'application/x-msaccess': ['mdb'],\n 'application/x-msbinder': ['obd'],\n 'application/x-mscardfile': ['crd'],\n 'application/x-msclip': ['clp'],\n 'application/x-msdos-program': ['*exe'],\n 'application/x-msdownload': ['*exe', '*dll', 'com', 'bat', '*msi'],\n 'application/x-msmediaview': ['mvb', 'm13', 'm14'],\n 'application/x-msmetafile': ['*wmf', '*wmz', '*emf', 'emz'],\n 'application/x-msmoney': ['mny'],\n 'application/x-mspublisher': ['pub'],\n 'application/x-msschedule': ['scd'],\n 'application/x-msterminal': ['trm'],\n 'application/x-mswrite': ['wri'],\n 'application/x-netcdf': ['nc', 'cdf'],\n 'application/x-ns-proxy-autoconfig': ['pac'],\n 'application/x-nzb': ['nzb'],\n 'application/x-perl': ['pl', 'pm'],\n 'application/x-pilot': ['*prc', '*pdb'],\n 'application/x-pkcs12': ['p12', 'pfx'],\n 'application/x-pkcs7-certificates': ['p7b', 'spc'],\n 'application/x-pkcs7-certreqresp': ['p7r'],\n 'application/x-rar-compressed': ['*rar'],\n 'application/x-redhat-package-manager': ['rpm'],\n 'application/x-research-info-systems': ['ris'],\n 'application/x-sea': ['sea'],\n 'application/x-sh': ['sh'],\n 'application/x-shar': ['shar'],\n 'application/x-shockwave-flash': ['swf'],\n 'application/x-silverlight-app': ['xap'],\n 'application/x-sql': ['*sql'],\n 'application/x-stuffit': ['sit'],\n 'application/x-stuffitx': ['sitx'],\n 'application/x-subrip': ['srt'],\n 'application/x-sv4cpio': ['sv4cpio'],\n 'application/x-sv4crc': ['sv4crc'],\n 'application/x-t3vm-image': ['t3'],\n 'application/x-tads': ['gam'],\n 'application/x-tar': ['tar'],\n 'application/x-tcl': ['tcl', 'tk'],\n 'application/x-tex': ['tex'],\n 'application/x-tex-tfm': ['tfm'],\n 'application/x-texinfo': ['texinfo', 'texi'],\n 'application/x-tgif': ['*obj'],\n 'application/x-ustar': ['ustar'],\n 'application/x-virtualbox-hdd': ['hdd'],\n 'application/x-virtualbox-ova': ['ova'],\n 'application/x-virtualbox-ovf': ['ovf'],\n 'application/x-virtualbox-vbox': ['vbox'],\n 'application/x-virtualbox-vbox-extpack': ['vbox-extpack'],\n 'application/x-virtualbox-vdi': ['vdi'],\n 'application/x-virtualbox-vhd': ['vhd'],\n 'application/x-virtualbox-vmdk': ['vmdk'],\n 'application/x-wais-source': ['src'],\n 'application/x-web-app-manifest+json': ['webapp'],\n 'application/x-x509-ca-cert': ['der', 'crt', 'pem'],\n 'application/x-xfig': ['fig'],\n 'application/x-xliff+xml': ['*xlf'],\n 'application/x-xpinstall': ['xpi'],\n 'application/x-xz': ['xz'],\n 'application/x-zip-compressed': ['*zip'],\n 'application/x-zmachine': ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'],\n 'audio/vnd.dece.audio': ['uva', 'uvva'],\n 'audio/vnd.digital-winds': ['eol'],\n 'audio/vnd.dra': ['dra'],\n 'audio/vnd.dts': ['dts'],\n 'audio/vnd.dts.hd': ['dtshd'],\n 'audio/vnd.lucent.voice': ['lvp'],\n 'audio/vnd.ms-playready.media.pya': ['pya'],\n 'audio/vnd.nuera.ecelp4800': ['ecelp4800'],\n 'audio/vnd.nuera.ecelp7470': ['ecelp7470'],\n 'audio/vnd.nuera.ecelp9600': ['ecelp9600'],\n 'audio/vnd.rip': ['rip'],\n 'audio/x-aac': ['*aac'],\n 'audio/x-aiff': ['aif', 'aiff', 'aifc'],\n 'audio/x-caf': ['caf'],\n 'audio/x-flac': ['flac'],\n 'audio/x-m4a': ['*m4a'],\n 'audio/x-matroska': ['mka'],\n 'audio/x-mpegurl': ['m3u'],\n 'audio/x-ms-wax': ['wax'],\n 'audio/x-ms-wma': ['wma'],\n 'audio/x-pn-realaudio': ['ram', 'ra'],\n 'audio/x-pn-realaudio-plugin': ['rmp'],\n 'audio/x-realaudio': ['*ra'],\n 'audio/x-wav': ['*wav'],\n 'chemical/x-cdx': ['cdx'],\n 'chemical/x-cif': ['cif'],\n 'chemical/x-cmdf': ['cmdf'],\n 'chemical/x-cml': ['cml'],\n 'chemical/x-csml': ['csml'],\n 'chemical/x-xyz': ['xyz'],\n 'image/prs.btif': ['btif', 'btf'],\n 'image/prs.pti': ['pti'],\n 'image/vnd.adobe.photoshop': ['psd'],\n 'image/vnd.airzip.accelerator.azv': ['azv'],\n 'image/vnd.blockfact.facti': ['facti'],\n 'image/vnd.dece.graphic': ['uvi', 'uvvi', 'uvg', 'uvvg'],\n 'image/vnd.djvu': ['djvu', 'djv'],\n 'image/vnd.dvb.subtitle': ['*sub'],\n 'image/vnd.dwg': ['dwg'],\n 'image/vnd.dxf': ['dxf'],\n 'image/vnd.fastbidsheet': ['fbs'],\n 'image/vnd.fpx': ['fpx'],\n 'image/vnd.fst': ['fst'],\n 'image/vnd.fujixerox.edmics-mmr': ['mmr'],\n 'image/vnd.fujixerox.edmics-rlc': ['rlc'],\n 'image/vnd.microsoft.icon': ['ico'],\n 'image/vnd.ms-dds': ['dds'],\n 'image/vnd.ms-modi': ['mdi'],\n 'image/vnd.ms-photo': ['wdp'],\n 'image/vnd.net-fpx': ['npx'],\n 'image/vnd.pco.b16': ['b16'],\n 'image/vnd.tencent.tap': ['tap'],\n 'image/vnd.valve.source.texture': ['vtf'],\n 'image/vnd.wap.wbmp': ['wbmp'],\n 'image/vnd.xiff': ['xif'],\n 'image/vnd.zbrush.pcx': ['pcx'],\n 'image/x-3ds': ['3ds'],\n 'image/x-adobe-dng': ['dng'],\n 'image/x-cmu-raster': ['ras'],\n 'image/x-cmx': ['cmx'],\n 'image/x-freehand': ['fh', 'fhc', 'fh4', 'fh5', 'fh7'],\n 'image/x-icon': ['*ico'],\n 'image/x-jng': ['jng'],\n 'image/x-mrsid-image': ['sid'],\n 'image/x-ms-bmp': ['*bmp'],\n 'image/x-pcx': ['*pcx'],\n 'image/x-pict': ['pic', 'pct'],\n 'image/x-portable-anymap': ['pnm'],\n 'image/x-portable-bitmap': ['pbm'],\n 'image/x-portable-graymap': ['pgm'],\n 'image/x-portable-pixmap': ['ppm'],\n 'image/x-rgb': ['rgb'],\n 'image/x-tga': ['tga'],\n 'image/x-xbitmap': ['xbm'],\n 'image/x-xpixmap': ['xpm'],\n 'image/x-xwindowdump': ['xwd'],\n 'message/vnd.wfa.wsc': ['wsc'],\n 'model/vnd.bary': ['bary'],\n 'model/vnd.cld': ['cld'],\n 'model/vnd.collada+xml': ['dae'],\n 'model/vnd.dwf': ['dwf'],\n 'model/vnd.gdl': ['gdl'],\n 'model/vnd.gtw': ['gtw'],\n 'model/vnd.mts': ['*mts'],\n 'model/vnd.opengex': ['ogex'],\n 'model/vnd.parasolid.transmit.binary': ['x_b'],\n 'model/vnd.parasolid.transmit.text': ['x_t'],\n 'model/vnd.pytha.pyox': ['pyo', 'pyox'],\n 'model/vnd.sap.vds': ['vds'],\n 'model/vnd.usda': ['usda'],\n 'model/vnd.usdz+zip': ['usdz'],\n 'model/vnd.valve.source.compiled-map': ['bsp'],\n 'model/vnd.vtu': ['vtu'],\n 'text/prs.lines.tag': ['dsc'],\n 'text/vnd.curl': ['curl'],\n 'text/vnd.curl.dcurl': ['dcurl'],\n 'text/vnd.curl.mcurl': ['mcurl'],\n 'text/vnd.curl.scurl': ['scurl'],\n 'text/vnd.dvb.subtitle': ['sub'],\n 'text/vnd.familysearch.gedcom': ['ged'],\n 'text/vnd.fly': ['fly'],\n 'text/vnd.fmi.flexstor': ['flx'],\n 'text/vnd.graphviz': ['gv'],\n 'text/vnd.in3d.3dml': ['3dml'],\n 'text/vnd.in3d.spot': ['spot'],\n 'text/vnd.sun.j2me.app-descriptor': ['jad'],\n 'text/vnd.wap.wml': ['wml'],\n 'text/vnd.wap.wmlscript': ['wmls'],\n 'text/x-asm': ['s', 'asm'],\n 'text/x-c': ['c', 'cc', 'cxx', 'cpp', 'h', 'hh', 'dic'],\n 'text/x-component': ['htc'],\n 'text/x-fortran': ['f', 'for', 'f77', 'f90'],\n 'text/x-handlebars-template': ['hbs'],\n 'text/x-java-source': ['java'],\n 'text/x-lua': ['lua'],\n 'text/x-markdown': ['mkd'],\n 'text/x-nfo': ['nfo'],\n 'text/x-opml': ['opml'],\n 'text/x-org': ['*org'],\n 'text/x-pascal': ['p', 'pas'],\n 'text/x-processing': ['pde'],\n 'text/x-sass': ['sass'],\n 'text/x-scss': ['scss'],\n 'text/x-setext': ['etx'],\n 'text/x-sfv': ['sfv'],\n 'text/x-suse-ymp': ['ymp'],\n 'text/x-uuencode': ['uu'],\n 'text/x-vcalendar': ['vcs'],\n 'text/x-vcard': ['vcf'],\n 'video/vnd.dece.hd': ['uvh', 'uvvh'],\n 'video/vnd.dece.mobile': ['uvm', 'uvvm'],\n 'video/vnd.dece.pd': ['uvp', 'uvvp'],\n 'video/vnd.dece.sd': ['uvs', 'uvvs'],\n 'video/vnd.dece.video': ['uvv', 'uvvv'],\n 'video/vnd.dvb.file': ['dvb'],\n 'video/vnd.fvt': ['fvt'],\n 'video/vnd.mpegurl': ['mxu', 'm4u'],\n 'video/vnd.ms-playready.media.pyv': ['pyv'],\n 'video/vnd.uvvu.mp4': ['uvu', 'uvvu'],\n 'video/vnd.vivo': ['viv'],\n 'video/x-f4v': ['f4v'],\n 'video/x-fli': ['fli'],\n 'video/x-flv': ['flv'],\n 'video/x-m4v': ['m4v'],\n 'video/x-matroska': ['mkv', 'mk3d', 'mks'],\n 'video/x-mng': ['mng'],\n 'video/x-ms-asf': ['asf', 'asx'],\n 'video/x-ms-vob': ['vob'],\n 'video/x-ms-wm': ['wm'],\n 'video/x-ms-wmv': ['wmv'],\n 'video/x-ms-wmx': ['wmx'],\n 'video/x-ms-wvx': ['wvx'],\n 'video/x-msvideo': ['avi'],\n 'video/x-sgi-movie': ['movie'],\n 'video/x-smv': ['smv'],\n 'x-conference/x-cooltalk': ['ice'],\n};\nObject.freeze(types);\nexport default types;\n","const types = {\n 'application/andrew-inset': ['ez'],\n 'application/appinstaller': ['appinstaller'],\n 'application/applixware': ['aw'],\n 'application/appx': ['appx'],\n 'application/appxbundle': ['appxbundle'],\n 'application/atom+xml': ['atom'],\n 'application/atomcat+xml': ['atomcat'],\n 'application/atomdeleted+xml': ['atomdeleted'],\n 'application/atomsvc+xml': ['atomsvc'],\n 'application/atsc-dwd+xml': ['dwd'],\n 'application/atsc-held+xml': ['held'],\n 'application/atsc-rsat+xml': ['rsat'],\n 'application/automationml-aml+xml': ['aml'],\n 'application/automationml-amlx+zip': ['amlx'],\n 'application/bdoc': ['bdoc'],\n 'application/calendar+xml': ['xcs'],\n 'application/ccxml+xml': ['ccxml'],\n 'application/cdfx+xml': ['cdfx'],\n 'application/cdmi-capability': ['cdmia'],\n 'application/cdmi-container': ['cdmic'],\n 'application/cdmi-domain': ['cdmid'],\n 'application/cdmi-object': ['cdmio'],\n 'application/cdmi-queue': ['cdmiq'],\n 'application/cpl+xml': ['cpl'],\n 'application/cu-seeme': ['cu'],\n 'application/cwl': ['cwl'],\n 'application/dash+xml': ['mpd'],\n 'application/dash-patch+xml': ['mpp'],\n 'application/davmount+xml': ['davmount'],\n 'application/dicom': ['dcm'],\n 'application/docbook+xml': ['dbk'],\n 'application/dssc+der': ['dssc'],\n 'application/dssc+xml': ['xdssc'],\n 'application/ecmascript': ['ecma'],\n 'application/emma+xml': ['emma'],\n 'application/emotionml+xml': ['emotionml'],\n 'application/epub+zip': ['epub'],\n 'application/exi': ['exi'],\n 'application/express': ['exp'],\n 'application/fdf': ['fdf'],\n 'application/fdt+xml': ['fdt'],\n 'application/font-tdpfr': ['pfr'],\n 'application/geo+json': ['geojson'],\n 'application/gml+xml': ['gml'],\n 'application/gpx+xml': ['gpx'],\n 'application/gxf': ['gxf'],\n 'application/gzip': ['gz'],\n 'application/hjson': ['hjson'],\n 'application/hyperstudio': ['stk'],\n 'application/inkml+xml': ['ink', 'inkml'],\n 'application/ipfix': ['ipfix'],\n 'application/its+xml': ['its'],\n 'application/java-archive': ['jar', 'war', 'ear'],\n 'application/java-serialized-object': ['ser'],\n 'application/java-vm': ['class'],\n 'application/javascript': ['*js'],\n 'application/json': ['json', 'map'],\n 'application/json5': ['json5'],\n 'application/jsonml+json': ['jsonml'],\n 'application/ld+json': ['jsonld'],\n 'application/lgr+xml': ['lgr'],\n 'application/lost+xml': ['lostxml'],\n 'application/mac-binhex40': ['hqx'],\n 'application/mac-compactpro': ['cpt'],\n 'application/mads+xml': ['mads'],\n 'application/manifest+json': ['webmanifest'],\n 'application/marc': ['mrc'],\n 'application/marcxml+xml': ['mrcx'],\n 'application/mathematica': ['ma', 'nb', 'mb'],\n 'application/mathml+xml': ['mathml'],\n 'application/mbox': ['mbox'],\n 'application/media-policy-dataset+xml': ['mpf'],\n 'application/mediaservercontrol+xml': ['mscml'],\n 'application/metalink+xml': ['metalink'],\n 'application/metalink4+xml': ['meta4'],\n 'application/mets+xml': ['mets'],\n 'application/mmt-aei+xml': ['maei'],\n 'application/mmt-usd+xml': ['musd'],\n 'application/mods+xml': ['mods'],\n 'application/mp21': ['m21', 'mp21'],\n 'application/mp4': ['*mp4', '*mpg4', 'mp4s', 'm4p'],\n 'application/msix': ['msix'],\n 'application/msixbundle': ['msixbundle'],\n 'application/msword': ['doc', 'dot'],\n 'application/mxf': ['mxf'],\n 'application/n-quads': ['nq'],\n 'application/n-triples': ['nt'],\n 'application/node': ['cjs'],\n 'application/octet-stream': [\n 'bin',\n 'dms',\n 'lrf',\n 'mar',\n 'so',\n 'dist',\n 'distz',\n 'pkg',\n 'bpk',\n 'dump',\n 'elc',\n 'deploy',\n 'exe',\n 'dll',\n 'deb',\n 'dmg',\n 'iso',\n 'img',\n 'msi',\n 'msp',\n 'msm',\n 'buffer',\n ],\n 'application/oda': ['oda'],\n 'application/oebps-package+xml': ['opf'],\n 'application/ogg': ['ogx'],\n 'application/omdoc+xml': ['omdoc'],\n 'application/onenote': [\n 'onetoc',\n 'onetoc2',\n 'onetmp',\n 'onepkg',\n 'one',\n 'onea',\n ],\n 'application/oxps': ['oxps'],\n 'application/p2p-overlay+xml': ['relo'],\n 'application/patch-ops-error+xml': ['xer'],\n 'application/pdf': ['pdf'],\n 'application/pgp-encrypted': ['pgp'],\n 'application/pgp-keys': ['asc'],\n 'application/pgp-signature': ['sig', '*asc'],\n 'application/pics-rules': ['prf'],\n 'application/pkcs10': ['p10'],\n 'application/pkcs7-mime': ['p7m', 'p7c'],\n 'application/pkcs7-signature': ['p7s'],\n 'application/pkcs8': ['p8'],\n 'application/pkix-attr-cert': ['ac'],\n 'application/pkix-cert': ['cer'],\n 'application/pkix-crl': ['crl'],\n 'application/pkix-pkipath': ['pkipath'],\n 'application/pkixcmp': ['pki'],\n 'application/pls+xml': ['pls'],\n 'application/postscript': ['ai', 'eps', 'ps'],\n 'application/provenance+xml': ['provx'],\n 'application/pskc+xml': ['pskcxml'],\n 'application/raml+yaml': ['raml'],\n 'application/rdf+xml': ['rdf', 'owl'],\n 'application/reginfo+xml': ['rif'],\n 'application/relax-ng-compact-syntax': ['rnc'],\n 'application/resource-lists+xml': ['rl'],\n 'application/resource-lists-diff+xml': ['rld'],\n 'application/rls-services+xml': ['rs'],\n 'application/route-apd+xml': ['rapd'],\n 'application/route-s-tsid+xml': ['sls'],\n 'application/route-usd+xml': ['rusd'],\n 'application/rpki-ghostbusters': ['gbr'],\n 'application/rpki-manifest': ['mft'],\n 'application/rpki-roa': ['roa'],\n 'application/rsd+xml': ['rsd'],\n 'application/rss+xml': ['rss'],\n 'application/rtf': ['rtf'],\n 'application/sbml+xml': ['sbml'],\n 'application/scvp-cv-request': ['scq'],\n 'application/scvp-cv-response': ['scs'],\n 'application/scvp-vp-request': ['spq'],\n 'application/scvp-vp-response': ['spp'],\n 'application/sdp': ['sdp'],\n 'application/senml+xml': ['senmlx'],\n 'application/sensml+xml': ['sensmlx'],\n 'application/set-payment-initiation': ['setpay'],\n 'application/set-registration-initiation': ['setreg'],\n 'application/shf+xml': ['shf'],\n 'application/sieve': ['siv', 'sieve'],\n 'application/smil+xml': ['smi', 'smil'],\n 'application/sparql-query': ['rq'],\n 'application/sparql-results+xml': ['srx'],\n 'application/sql': ['sql'],\n 'application/srgs': ['gram'],\n 'application/srgs+xml': ['grxml'],\n 'application/sru+xml': ['sru'],\n 'application/ssdl+xml': ['ssdl'],\n 'application/ssml+xml': ['ssml'],\n 'application/swid+xml': ['swidtag'],\n 'application/tei+xml': ['tei', 'teicorpus'],\n 'application/thraud+xml': ['tfi'],\n 'application/timestamped-data': ['tsd'],\n 'application/toml': ['toml'],\n 'application/trig': ['trig'],\n 'application/ttml+xml': ['ttml'],\n 'application/ubjson': ['ubj'],\n 'application/urc-ressheet+xml': ['rsheet'],\n 'application/urc-targetdesc+xml': ['td'],\n 'application/voicexml+xml': ['vxml'],\n 'application/wasm': ['wasm'],\n 'application/watcherinfo+xml': ['wif'],\n 'application/widget': ['wgt'],\n 'application/winhlp': ['hlp'],\n 'application/wsdl+xml': ['wsdl'],\n 'application/wspolicy+xml': ['wspolicy'],\n 'application/xaml+xml': ['xaml'],\n 'application/xcap-att+xml': ['xav'],\n 'application/xcap-caps+xml': ['xca'],\n 'application/xcap-diff+xml': ['xdf'],\n 'application/xcap-el+xml': ['xel'],\n 'application/xcap-ns+xml': ['xns'],\n 'application/xenc+xml': ['xenc'],\n 'application/xfdf': ['xfdf'],\n 'application/xhtml+xml': ['xhtml', 'xht'],\n 'application/xliff+xml': ['xlf'],\n 'application/xml': ['xml', 'xsl', 'xsd', 'rng'],\n 'application/xml-dtd': ['dtd'],\n 'application/xop+xml': ['xop'],\n 'application/xproc+xml': ['xpl'],\n 'application/xslt+xml': ['*xsl', 'xslt'],\n 'application/xspf+xml': ['xspf'],\n 'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],\n 'application/yang': ['yang'],\n 'application/yin+xml': ['yin'],\n 'application/zip': ['zip'],\n 'application/zip+dotlottie': ['lottie'],\n 'audio/3gpp': ['*3gpp'],\n 'audio/aac': ['adts', 'aac'],\n 'audio/adpcm': ['adp'],\n 'audio/amr': ['amr'],\n 'audio/basic': ['au', 'snd'],\n 'audio/midi': ['mid', 'midi', 'kar', 'rmi'],\n 'audio/mobile-xmf': ['mxmf'],\n 'audio/mp3': ['*mp3'],\n 'audio/mp4': ['m4a', 'mp4a', 'm4b'],\n 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],\n 'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],\n 'audio/s3m': ['s3m'],\n 'audio/silk': ['sil'],\n 'audio/wav': ['wav'],\n 'audio/wave': ['*wav'],\n 'audio/webm': ['weba'],\n 'audio/xm': ['xm'],\n 'font/collection': ['ttc'],\n 'font/otf': ['otf'],\n 'font/ttf': ['ttf'],\n 'font/woff': ['woff'],\n 'font/woff2': ['woff2'],\n 'image/aces': ['exr'],\n 'image/apng': ['apng'],\n 'image/avci': ['avci'],\n 'image/avcs': ['avcs'],\n 'image/avif': ['avif'],\n 'image/bmp': ['bmp', 'dib'],\n 'image/cgm': ['cgm'],\n 'image/dicom-rle': ['drle'],\n 'image/dpx': ['dpx'],\n 'image/emf': ['emf'],\n 'image/fits': ['fits'],\n 'image/g3fax': ['g3'],\n 'image/gif': ['gif'],\n 'image/heic': ['heic'],\n 'image/heic-sequence': ['heics'],\n 'image/heif': ['heif'],\n 'image/heif-sequence': ['heifs'],\n 'image/hej2k': ['hej2'],\n 'image/ief': ['ief'],\n 'image/jaii': ['jaii'],\n 'image/jais': ['jais'],\n 'image/jls': ['jls'],\n 'image/jp2': ['jp2', 'jpg2'],\n 'image/jpeg': ['jpg', 'jpeg', 'jpe'],\n 'image/jph': ['jph'],\n 'image/jphc': ['jhc'],\n 'image/jpm': ['jpm', 'jpgm'],\n 'image/jpx': ['jpx', 'jpf'],\n 'image/jxl': ['jxl'],\n 'image/jxr': ['jxr'],\n 'image/jxra': ['jxra'],\n 'image/jxrs': ['jxrs'],\n 'image/jxs': ['jxs'],\n 'image/jxsc': ['jxsc'],\n 'image/jxsi': ['jxsi'],\n 'image/jxss': ['jxss'],\n 'image/ktx': ['ktx'],\n 'image/ktx2': ['ktx2'],\n 'image/pjpeg': ['jfif'],\n 'image/png': ['png'],\n 'image/sgi': ['sgi'],\n 'image/svg+xml': ['svg', 'svgz'],\n 'image/t38': ['t38'],\n 'image/tiff': ['tif', 'tiff'],\n 'image/tiff-fx': ['tfx'],\n 'image/webp': ['webp'],\n 'image/wmf': ['wmf'],\n 'message/disposition-notification': ['disposition-notification'],\n 'message/global': ['u8msg'],\n 'message/global-delivery-status': ['u8dsn'],\n 'message/global-disposition-notification': ['u8mdn'],\n 'message/global-headers': ['u8hdr'],\n 'message/rfc822': ['eml', 'mime', 'mht', 'mhtml'],\n 'model/3mf': ['3mf'],\n 'model/gltf+json': ['gltf'],\n 'model/gltf-binary': ['glb'],\n 'model/iges': ['igs', 'iges'],\n 'model/jt': ['jt'],\n 'model/mesh': ['msh', 'mesh', 'silo'],\n 'model/mtl': ['mtl'],\n 'model/obj': ['obj'],\n 'model/prc': ['prc'],\n 'model/step': ['step', 'stp', 'stpnc', 'p21', '210'],\n 'model/step+xml': ['stpx'],\n 'model/step+zip': ['stpz'],\n 'model/step-xml+zip': ['stpxz'],\n 'model/stl': ['stl'],\n 'model/u3d': ['u3d'],\n 'model/vrml': ['wrl', 'vrml'],\n 'model/x3d+binary': ['*x3db', 'x3dbz'],\n 'model/x3d+fastinfoset': ['x3db'],\n 'model/x3d+vrml': ['*x3dv', 'x3dvz'],\n 'model/x3d+xml': ['x3d', 'x3dz'],\n 'model/x3d-vrml': ['x3dv'],\n 'text/cache-manifest': ['appcache', 'manifest'],\n 'text/calendar': ['ics', 'ifb'],\n 'text/coffeescript': ['coffee', 'litcoffee'],\n 'text/css': ['css'],\n 'text/csv': ['csv'],\n 'text/html': ['html', 'htm', 'shtml'],\n 'text/jade': ['jade'],\n 'text/javascript': ['js', 'mjs'],\n 'text/jsx': ['jsx'],\n 'text/less': ['less'],\n 'text/markdown': ['md', 'markdown'],\n 'text/mathml': ['mml'],\n 'text/mdx': ['mdx'],\n 'text/n3': ['n3'],\n 'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],\n 'text/richtext': ['rtx'],\n 'text/rtf': ['*rtf'],\n 'text/sgml': ['sgml', 'sgm'],\n 'text/shex': ['shex'],\n 'text/slim': ['slim', 'slm'],\n 'text/spdx': ['spdx'],\n 'text/stylus': ['stylus', 'styl'],\n 'text/tab-separated-values': ['tsv'],\n 'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],\n 'text/turtle': ['ttl'],\n 'text/uri-list': ['uri', 'uris', 'urls'],\n 'text/vcard': ['vcard'],\n 'text/vtt': ['vtt'],\n 'text/wgsl': ['wgsl'],\n 'text/xml': ['*xml'],\n 'text/yaml': ['yaml', 'yml'],\n 'video/3gpp': ['3gp', '3gpp'],\n 'video/3gpp2': ['3g2'],\n 'video/h261': ['h261'],\n 'video/h263': ['h263'],\n 'video/h264': ['h264'],\n 'video/iso.segment': ['m4s'],\n 'video/jpeg': ['jpgv'],\n 'video/jpm': ['*jpm', '*jpgm'],\n 'video/mj2': ['mj2', 'mjp2'],\n 'video/mp2t': ['ts', 'm2t', 'm2ts', 'mts'],\n 'video/mp4': ['mp4', 'mp4v', 'mpg4'],\n 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],\n 'video/ogg': ['ogv'],\n 'video/quicktime': ['qt', 'mov'],\n 'video/webm': ['webm'],\n};\nObject.freeze(types);\nexport default types;\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions;\nclass Mime {\n constructor(...args) {\n _Mime_extensionToType.set(this, new Map());\n _Mime_typeToExtension.set(this, new Map());\n _Mime_typeToExtensions.set(this, new Map());\n for (const arg of args) {\n this.define(arg);\n }\n }\n define(typeMap, force = false) {\n for (let [type, extensions] of Object.entries(typeMap)) {\n type = type.toLowerCase();\n extensions = extensions.map((ext) => ext.toLowerCase());\n if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").has(type)) {\n __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").set(type, new Set());\n }\n const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type);\n let first = true;\n for (let extension of extensions) {\n const starred = extension.startsWith('*');\n extension = starred ? extension.slice(1) : extension;\n allExtensions?.add(extension);\n if (first) {\n __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").set(type, extension);\n }\n first = false;\n if (starred)\n continue;\n const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(extension);\n if (currentType && currentType != type && !force) {\n throw new Error(`\"${type} -> ${extension}\" conflicts with \"${currentType} -> ${extension}\". Pass \\`force=true\\` to override this definition.`);\n }\n __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").set(extension, type);\n }\n }\n return this;\n }\n getType(path) {\n if (typeof path !== 'string')\n return null;\n const last = path.replace(/^.*[/\\\\]/s, '').toLowerCase();\n const ext = last.replace(/^.*\\./s, '').toLowerCase();\n const hasPath = last.length < path.length;\n const hasDot = ext.length < last.length - 1;\n if (!hasDot && hasPath)\n return null;\n return __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(ext) ?? null;\n }\n getExtension(type) {\n if (typeof type !== 'string')\n return null;\n type = type?.split?.(';')[0];\n return ((type && __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").get(type.trim().toLowerCase())) ?? null);\n }\n getAllExtensions(type) {\n if (typeof type !== 'string')\n return null;\n return __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type.toLowerCase()) ?? null;\n }\n _freeze() {\n this.define = () => {\n throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');\n };\n Object.freeze(this);\n for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").values()) {\n Object.freeze(extensions);\n }\n return this;\n }\n _getTestState() {\n return {\n types: __classPrivateFieldGet(this, _Mime_extensionToType, \"f\"),\n extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\"),\n };\n }\n}\n_Mime_extensionToType = new WeakMap(), _Mime_typeToExtension = new WeakMap(), _Mime_typeToExtensions = new WeakMap();\nexport default Mime;\n","import otherTypes from '../types/other.js';\nimport standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes, otherTypes)._freeze();\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport {\n DefaultPageReader,\n DefaultPageWriter,\n} from \"@xwiki/cristal-page-default\";\nimport { DefaultPageData } from \"@xwiki/platform-api\";\nimport { AbstractStorage } from \"@xwiki/platform-backend-api\";\nimport { inject, injectable } from \"inversify\";\nimport mime from \"mime\";\nimport type { AlertsServiceProvider } from \"@xwiki/cristal-alerts-api\";\nimport type {\n AttachmentsData,\n Logger,\n PageAttachment,\n PageData,\n} from \"@xwiki/platform-api\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/platform-authentication-api\";\n\n@injectable()\nexport class GitHubStorage extends AbstractStorage {\n private readonly ATTACHMENTS = \"attachments\";\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"AuthenticationManagerProvider\")\n private readonly authenticationManagerProvider: AuthenticationManagerProvider,\n @inject(\"AlertsServiceProvider\")\n private readonly alertsServiceProvider: AlertsServiceProvider,\n ) {\n super(logger, \"storage.components.githubStorage\");\n }\n\n public async isStorageReady(): Promise<boolean> {\n return true;\n }\n\n getPageRestURL(page: string, _syntax: string, revision?: string): string {\n this.logger?.debug(\"GitHub Loading page\", page);\n let baseRestURL = `${this.wikiConfig.baseRestURL}/contents/${page}`;\n if (revision) {\n baseRestURL = `${baseRestURL}?ref=${revision}`;\n }\n return baseRestURL;\n }\n\n private getPageRestMetaURL(page: string, _syntax: string, revision?: string) {\n const split = page.split(\"/\");\n split[split.length - 1] = `.${split[split.length - 1]}`;\n let baseRestURL = `${this.wikiConfig.baseRestURL}/contents/${split.join(\"/\")}`;\n if (revision) {\n baseRestURL = `${baseRestURL}?ref=${revision}`;\n }\n return baseRestURL;\n }\n\n getPageFromViewURL(url: string): string | null {\n let page = null;\n if (url.startsWith(this.wikiConfig.baseURL)) {\n const uri = url.replace(this.wikiConfig.baseURL, \"\");\n page = uri;\n }\n return page;\n }\n\n getImageURL(page: string, image: string): string {\n const directory = page.replace(/[^/]*$/, \"\");\n return `${this.wikiConfig.baseURL}/${directory}${image}`;\n }\n\n hashCode = function (str: string): string {\n let hash = 0,\n i,\n chr;\n if (str.length === 0) {\n return \"\" + hash;\n }\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return \"\" + hash;\n };\n\n async getPageContent(\n page: string,\n syntax: string,\n revision?: string,\n ): Promise<PageData | undefined> {\n this.logger?.debug(\"GitHub Loading page\", page);\n const url = this.getPageRestURL(`${page}.md`, syntax, revision);\n const response = await fetch(url, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github.raw+json\",\n },\n });\n\n if (response.status >= 200 && response.status < 300) {\n const { content, ...json } = new DefaultPageReader().readPage(\n await response.text(),\n );\n const { date, name, username } = await this.getLastEditDetails(\n page,\n revision,\n );\n\n return Object.assign(new DefaultPageData(), {\n source: content,\n syntax: \"markdown/1.2\",\n ...json,\n id: page,\n headline: json.name,\n headlineRaw: json.name,\n canEdit:\n (await this.authenticationManagerProvider.get()?.isAuthenticated()) ??\n false,\n lastModificationDate: date,\n lastAuthor: { name, username },\n });\n } else {\n return undefined;\n }\n }\n\n /**\n * @since 0.9\n * @beta\n */\n async getAttachments(page: string): Promise<AttachmentsData | undefined> {\n const url = `${this.getPageRestMetaURL(page, \"\")}/${this.ATTACHMENTS}`;\n const response = await fetch(url, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github.raw+json\",\n },\n });\n if (response.status >= 200 && response.status < 300) {\n const jsonResponse: Array<{ name: string }> = await response.json();\n return {\n attachments: await Promise.all(\n jsonResponse.map(\n async (a) => (await this.getAttachment(page, a.name))!,\n ),\n ),\n count: jsonResponse.length,\n };\n } else {\n return { attachments: [], count: 0 };\n }\n }\n\n async getAttachment(\n page: string,\n name: string,\n ): Promise<PageAttachment | undefined> {\n const url = `${this.getPageRestMetaURL(page, \"\")}/${this.ATTACHMENTS}/${name}`;\n const response = await fetch(url, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github.object+json\",\n },\n });\n if (response.status >= 200 && response.status < 300) {\n const jsonResponse: {\n download_url: string;\n name: string;\n path: string;\n size: number;\n } = await response.json();\n\n const commitsUrl = new URL(`${this.wikiConfig.baseRestURL}/commits`);\n commitsUrl.search = new URLSearchParams([\n [\"path\", jsonResponse.path],\n [\"per_page\", \"1\"],\n ]).toString();\n const commitsResponse = await fetch(commitsUrl, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github+json\",\n },\n });\n const jsonCommitsResponse: Array<{\n commit: { author: { name: string; date: string } };\n }> = await commitsResponse.json();\n\n return {\n reference: jsonResponse.name,\n id: jsonResponse.path,\n size: jsonResponse.size,\n href: jsonResponse.download_url,\n mimetype: mime.getType(jsonResponse.name) ?? \"\",\n date: new Date(jsonCommitsResponse[0].commit.author.date),\n author: jsonCommitsResponse[0].commit.author.name,\n };\n } else {\n return undefined;\n }\n }\n\n async getPanelContent(): Promise<PageData> {\n return new DefaultPageData();\n }\n\n async getEditField(): Promise<string> {\n return \"\";\n }\n\n async save(page: string, title: string, content: string): Promise<unknown> {\n const pageRestUrl = this.getPageRestURL(`${page}.md`, \"\");\n\n const headResponse = await fetch(pageRestUrl, {\n method: \"HEAD\",\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github.object+json\",\n },\n });\n const sha =\n headResponse.status >= 200 && headResponse.status < 300\n ? headResponse.headers.get(\"ETag\")!.slice(3, -1)\n : undefined;\n\n const pageContent = new DefaultPageWriter().writePage({\n content,\n name: title,\n syntax: \"markdown/1.2\",\n });\n const putResponse = await fetch(pageRestUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n body: JSON.stringify({\n content: btoa(pageContent),\n message: `Update ${page}`,\n sha: sha,\n }),\n });\n if (!putResponse.ok) {\n const errorMessage = await putResponse.text();\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n this.alertsServiceProvider\n .get()\n .error(`Could not save page ${page}. Reason: ${errorMessage}`);\n // We need to throw an error to notify the editor that the save failed.\n throw new Error(errorMessage);\n }\n return;\n }\n\n async saveAttachments(\n page: string,\n files: File[],\n ): Promise<undefined | (string | undefined)[]> {\n const urls: Promise<string | undefined>[] = [];\n\n for (const file of files) {\n const fileUrl = `${this.getPageRestMetaURL(page, \"\")}/${this.ATTACHMENTS}/${file.name}`;\n const sha = await this.computeAttachmentSHA(fileUrl);\n\n urls.push(this.uploadAttachment(fileUrl, file, sha, page));\n }\n return Promise.all(urls);\n }\n\n private async computeAttachmentSHA(fileUrl: string) {\n const headResponse = await fetch(fileUrl, {\n method: \"HEAD\",\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github.object+json\",\n },\n });\n return headResponse.status >= 200 && headResponse.status < 300\n ? headResponse.headers.get(\"ETag\")!.slice(3, -1)\n : undefined;\n }\n\n private uploadAttachment(\n fileUrl: string,\n file: File,\n sha: string | undefined,\n page: string,\n ): Promise<string | undefined> {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = async () => {\n const putResponse = await fetch(fileUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n body: JSON.stringify({\n content: (reader.result! as string).split(\",\")[1],\n message: `Upload ${file.name}`,\n sha: sha,\n }),\n });\n if (!putResponse.ok) {\n const errorMessage = await putResponse.text();\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n this.alertsServiceProvider\n .get()\n .error(\n `Could not upload attachment ${file.name} for page ${page}. Reason: ${errorMessage}`,\n );\n resolve(undefined);\n } else {\n resolve((await putResponse.json()).content.download_url as string);\n }\n };\n reader.readAsDataURL(file);\n });\n }\n\n async delete(page: string): Promise<{ success: boolean; error?: string }> {\n // We only support the default branch in GitHubStorage right now.\n // We can only get its name from the baseURL property, or by querying it.\n // TODO: Support branches (https://jira.xwiki.org/browse/CRISTAL-563)\n const branch = this.wikiConfig.baseURL.split(\"/\").pop();\n\n // Get the current HEAD before doing anything.\n const headCommit = (\n await (\n await fetch(`${this.wikiConfig.baseRestURL}/git/ref/heads/${branch}`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n })\n ).json()\n ).object.sha;\n\n // Create a new tree without the page we want removed.\n // Using the tree creation API with a base tree and a node with a null sha\n // will clone the base tree with the node removed.\n const treeResponse = await fetch(\n `${this.wikiConfig.baseRestURL}/git/trees`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n body: JSON.stringify({\n base_tree: branch,\n tree: [\n {\n path: `${page}.md`,\n mode: \"040000\",\n type: \"tree\",\n sha: null,\n },\n ],\n }),\n },\n );\n\n if (!treeResponse.ok) {\n return { success: false, error: await treeResponse.text() };\n }\n\n // Create a child commit to the HEAD commit, referencing the new tree.\n const commitResponse = await fetch(\n `${this.wikiConfig.baseRestURL}/git/commits`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n body: JSON.stringify({\n tree: (await treeResponse.json()).sha,\n message: `Delete ${page}`,\n parents: [headCommit],\n }),\n },\n );\n\n if (!commitResponse.ok) {\n return { success: false, error: await commitResponse.text() };\n }\n\n // Finally, we update the branch ref to target the new commit.\n // We don't use \"force\" to ensure fast-forward only.\n return await fetch(\n `${this.wikiConfig.baseRestURL}/git/refs/heads/${branch}`,\n {\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/vnd.github+json\",\n ...(await this.getCredentials()),\n },\n body: JSON.stringify({\n sha: (await commitResponse.json()).sha,\n }),\n },\n ).then(async (response) => {\n if (response.ok) {\n return { success: true };\n } else {\n return { success: false, error: await response.text() };\n }\n });\n }\n\n async move(): Promise<{ success: boolean; error?: string }> {\n // TODO: to be implemented in CRISTAL-436.\n throw new Error(\"Move not supported\");\n }\n\n private async getCredentials(): Promise<{ Authorization?: string }> {\n const authorizationHeader = await this.authenticationManagerProvider\n .get()\n ?.getAuthorizationHeader();\n const headers: { Authorization?: string } = {};\n if (authorizationHeader) {\n headers[\"Authorization\"] = authorizationHeader;\n }\n return headers;\n }\n\n private async getLastEditDetails(\n page: string,\n revision?: string,\n ): Promise<{ date: Date; username: string; name: string }> {\n if (revision) {\n const commitsUrl = new URL(\n `${this.wikiConfig.baseRestURL}/commits/${revision}`,\n );\n const commitsResponse = await fetch(commitsUrl, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github+json\",\n },\n });\n const jsonCommitsResponse: {\n commit: { author: { login: string; name: string; date: string } };\n } = await commitsResponse.json();\n\n return {\n date: new Date(jsonCommitsResponse.commit.author.date),\n username: jsonCommitsResponse.commit.author.login,\n name: jsonCommitsResponse.commit.author.name,\n };\n } else {\n const commitsUrl = new URL(`${this.wikiConfig.baseRestURL}/commits`);\n commitsUrl.search = new URLSearchParams([\n [\"path\", `${page}.md`],\n [\"per_page\", \"1\"],\n ]).toString();\n const commitsResponse = await fetch(commitsUrl, {\n cache: \"no-store\",\n headers: {\n ...(await this.getCredentials()),\n Accept: \"application/vnd.github+json\",\n },\n });\n const jsonCommitsResponse: Array<{\n commit: { author: { login: string; name: string; date: string } };\n }> = await commitsResponse.json();\n\n return {\n date: new Date(jsonCommitsResponse[0].commit.author.date),\n username: jsonCommitsResponse[0].commit.author.login,\n name: jsonCommitsResponse[0].commit.author.name,\n };\n }\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport type { BindingConstraints, MetadataName } from \"inversify\";\n\n/**\n * Condition to bind a component both on a named scope and the default scope.\n * @since 0.18\n * @beta\n */\nfunction whenNamedOrDefault(\n name: MetadataName,\n): (constraints: BindingConstraints) => boolean {\n return (constraints: BindingConstraints) =>\n constraints.name == name || constraints.name == undefined;\n}\n\nexport { whenNamedOrDefault };\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { GitHubWikiConfig } from \"./GitHubWikiConfig\";\nimport { GitHubStorage } from \"./githubStorage\";\nimport { whenNamedOrDefault } from \"@xwiki/cristal-utils-inversify\";\nimport { Container } from \"inversify\";\nimport type { Storage, WikiConfig } from \"@xwiki/platform-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<WikiConfig>(\"WikiConfig\")\n .to(GitHubWikiConfig)\n .when(whenNamedOrDefault(\"GitHub\"));\n container.bind<Storage>(\"Storage\").to(GitHubStorage).whenNamed(\"GitHub\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultWikiConfig } from \"@xwiki/platform-api\";\nimport { inject, injectable, named } from \"inversify\";\nimport type { CristalApp, Logger, Storage } from \"@xwiki/platform-api\";\n\n/**\n * Configuration instance for the Nextcloud backend.\n *\n * @since 0.9\n * @beta\n */\n@injectable()\nexport class NextcloudWikiConfig extends DefaultWikiConfig {\n override storage: Storage;\n override cristal: CristalApp;\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"Storage\") @named(\"Nextcloud\") storage: Storage,\n @inject(\"CristalApp\") cristal: CristalApp,\n ) {\n super(logger);\n this.cristal = cristal;\n this.storage = storage;\n this.storage.setWikiConfig(this);\n }\n\n override isSupported(format: string): boolean {\n return format == \"html\";\n }\n\n override defaultPageName(): string {\n return \"home\";\n }\n\n override getType(): string {\n return \"Nextcloud\";\n }\n}\n","var c = /* @__PURE__ */ ((e) => (e[e.WIKI = 0] = \"WIKI\", e[e.SPACE = 1] = \"SPACE\", e[e.DOCUMENT = 2] = \"DOCUMENT\", e[e.ATTACHMENT = 3] = \"ATTACHMENT\", e))(c || {});\nclass r {\n type = 0;\n name;\n constructor(a) {\n this.name = a;\n }\n}\nclass m {\n type = 1;\n wiki;\n names;\n constructor(a, ...t) {\n this.wiki = a, this.names = t;\n }\n}\nclass n {\n type = 2;\n space;\n name;\n /**\n * Indicates whether the current document reference is terminal.\n * @since 18.0.0RC1\n * @beta\n */\n terminal;\n constructor(a, t, s) {\n this.space = t, this.name = a, this.terminal = s ?? !1;\n }\n}\nclass o {\n type = 3;\n name;\n document;\n /**\n * @since 18.0.0RC1\n */\n _metadata;\n /**\n *\n * @param name - the name of the attachment\n * @param document - the document reference of the attachment\n * @param metadata - (since 0.22) the metadata of the attachment, can be used to store additional information\n * about the attachment (e.g., additional information for a given backend)\n */\n constructor(a, t, s) {\n this.name = a, this.document = t, this._metadata = s ?? {};\n }\n get metadata() {\n return this._metadata;\n }\n}\nexport {\n o as AttachmentReference,\n n as DocumentReference,\n c as EntityType,\n m as SpaceReference,\n r as WikiReference\n};\n//# sourceMappingURL=index.es.js.map\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n}\n\nexport const isName = function (string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nexport function getValue(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n}\n\n/**\n * Dangerous property names that could lead to prototype pollution or security issues\n */\nexport const DANGEROUS_PROPERTY_NAMES = [\n // '__proto__',\n // 'constructor',\n // 'prototype',\n 'hasOwnProperty',\n 'toString',\n 'valueOf',\n '__defineGetter__',\n '__defineSetter__',\n '__lookupGetter__',\n '__lookupSetter__'\n];\n\nexport const criticalProperties = [\"__proto__\", \"constructor\", \"prototype\"];","'use strict';\n\nimport { getAllMatches, isName } from './util.js';\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n\n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i + 1] === '?') {\n i += 2;\n i = readPI(xmlData, i);\n if (i.err) return i;\n } else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n\n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) {\n //don't push into stack\n } else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i + 1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else {\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\" + xmlData[i] + \"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n } else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\" +\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '') +\n \"' found.\", { line: 1, col: 1 });\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char) {\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\" + matches[i][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\" + matches[i][2] + \"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\" + matches[i][2] + \"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!Object.prototype.hasOwnProperty.call(attrNames, attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","import { DANGEROUS_PROPERTY_NAMES, criticalProperties } from \"../util.js\";\n\nconst defaultOnDangerousProperty = (name) => {\n if (DANGEROUS_PROPERTY_NAMES.includes(name)) {\n return \"__\" + name;\n }\n return name;\n};\n\n\nexport const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function (tagName, val) {\n return val;\n },\n attributeValueProcessor: function (attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function (tagName, jPath, attrs) {\n return tagName\n },\n // skipEmptyListItem: false\n captureMetaData: false,\n maxNestedTags: 100,\n strictReservedNames: true,\n jPath: true, // if true, pass jPath string to callbacks; if false, pass matcher instance\n onDangerousProperty: defaultOnDangerousProperty\n};\n\n\n/**\n * Validates that a property name is safe to use\n * @param {string} propertyName - The property name to validate\n * @param {string} optionName - The option field name (for error message)\n * @throws {Error} If property name is dangerous\n */\nfunction validatePropertyName(propertyName, optionName) {\n if (typeof propertyName !== 'string') {\n return; // Only validate string property names\n }\n\n const normalized = propertyName.toLowerCase();\n if (DANGEROUS_PROPERTY_NAMES.some(dangerous => normalized === dangerous.toLowerCase())) {\n throw new Error(\n `[SECURITY] Invalid ${optionName}: \"${propertyName}\" is a reserved JavaScript keyword that could cause prototype pollution`\n );\n }\n\n if (criticalProperties.some(dangerous => normalized === dangerous.toLowerCase())) {\n throw new Error(\n `[SECURITY] Invalid ${optionName}: \"${propertyName}\" is a reserved JavaScript keyword that could cause prototype pollution`\n );\n }\n}\n\n/**\n * Normalizes processEntities option for backward compatibility\n * @param {boolean|object} value \n * @returns {object} Always returns normalized object\n */\nfunction normalizeProcessEntities(value) {\n // Boolean backward compatibility\n if (typeof value === 'boolean') {\n return {\n enabled: value, // true or false\n maxEntitySize: 10000,\n maxExpansionDepth: 10,\n maxTotalExpansions: 1000,\n maxExpandedLength: 100000,\n maxEntityCount: 100,\n allowedTags: null,\n tagFilter: null\n };\n }\n\n // Object config - merge with defaults\n if (typeof value === 'object' && value !== null) {\n return {\n enabled: value.enabled !== false,\n maxEntitySize: Math.max(1, value.maxEntitySize ?? 10000),\n maxExpansionDepth: Math.max(1, value.maxExpansionDepth ?? 10),\n maxTotalExpansions: Math.max(1, value.maxTotalExpansions ?? 1000),\n maxExpandedLength: Math.max(1, value.maxExpandedLength ?? 100000),\n maxEntityCount: Math.max(1, value.maxEntityCount ?? 100),\n allowedTags: value.allowedTags ?? null,\n tagFilter: value.tagFilter ?? null\n };\n }\n\n // Default to enabled with limits\n return normalizeProcessEntities(true);\n}\n\nexport const buildOptions = function (options) {\n const built = Object.assign({}, defaultOptions, options);\n\n // Validate property names to prevent prototype pollution\n const propertyNameOptions = [\n { value: built.attributeNamePrefix, name: 'attributeNamePrefix' },\n { value: built.attributesGroupName, name: 'attributesGroupName' },\n { value: built.textNodeName, name: 'textNodeName' },\n { value: built.cdataPropName, name: 'cdataPropName' },\n { value: built.commentPropName, name: 'commentPropName' }\n ];\n\n for (const { value, name } of propertyNameOptions) {\n if (value) {\n validatePropertyName(value, name);\n }\n }\n\n if (built.onDangerousProperty === null) {\n built.onDangerousProperty = defaultOnDangerousProperty;\n }\n\n // Always normalize processEntities for backward compatibility and validation\n built.processEntities = normalizeProcessEntities(built.processEntities);\n\n // Convert old-style stopNodes for backward compatibility\n if (built.stopNodes && Array.isArray(built.stopNodes)) {\n built.stopNodes = built.stopNodes.map(node => {\n if (typeof node === 'string' && node.startsWith('*.')) {\n // Old syntax: *.tagname meant \"tagname anywhere\"\n // Convert to new syntax: ..tagname\n return '..' + node.substring(2);\n }\n return node;\n });\n }\n //console.debug(built.processEntities)\n return built;\n};","'use strict';\n\nlet METADATA_SYMBOL;\n\nif (typeof Symbol !== \"function\") {\n METADATA_SYMBOL = \"@@xmlMetadata\";\n} else {\n METADATA_SYMBOL = Symbol(\"XML Node Metadata\");\n}\n\nexport default class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = Object.create(null); //attributes map\n }\n add(key, val) {\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node, startIndex) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n // if requested, add the startIndex\n if (startIndex !== undefined) {\n // Note: for now we just overwrite the metadata. If we had more complex metadata,\n // we might need to do an object append here: metadata = { ...metadata, startIndex }\n this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex };\n }\n }\n /** symbol used for metadata */\n static getMetaDataSymbol() {\n return METADATA_SYMBOL;\n }\n}\n","import { isName } from '../util.js';\n\nexport default class DocTypeReader {\n constructor(options) {\n this.suppressValidationErr = !options;\n this.options = options;\n }\n\n readDocType(xmlData, i) {\n const entities = Object.create(null);\n let entityCount = 0;\n\n if (xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E') {\n i = i + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === '<' && !comment) { //Determine the tag type\n if (hasBody && hasSeq(xmlData, \"!ENTITY\", i)) {\n i += 7;\n let entityName, val;\n [entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);\n if (val.indexOf(\"&\") === -1) { //Parameter entities are not supported\n if (this.options.enabled !== false &&\n this.options.maxEntityCount != null &&\n entityCount >= this.options.maxEntityCount) {\n throw new Error(\n `Entity count (${entityCount + 1}) exceeds maximum allowed (${this.options.maxEntityCount})`\n );\n }\n //const escaped = entityName.replace(/[.\\-+*:]/g, '\\\\.');\n const escaped = entityName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n entities[entityName] = {\n regx: RegExp(`&${escaped};`, \"g\"),\n val: val\n };\n entityCount++;\n }\n }\n else if (hasBody && hasSeq(xmlData, \"!ELEMENT\", i)) {\n i += 8;//Not supported\n const { index } = this.readElementExp(xmlData, i + 1);\n i = index;\n } else if (hasBody && hasSeq(xmlData, \"!ATTLIST\", i)) {\n i += 8;//Not supported\n // const {index} = this.readAttlistExp(xmlData,i+1);\n // i = index;\n } else if (hasBody && hasSeq(xmlData, \"!NOTATION\", i)) {\n i += 9;//Not supported\n const { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr);\n i = index;\n } else if (hasSeq(xmlData, \"!--\", i)) comment = true;\n else throw new Error(`Invalid DOCTYPE`);\n\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i] === '>') { //Read tag content\n if (comment) {\n if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i] === '[') {\n hasBody = true;\n } else {\n exp += xmlData[i];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i };\n }\n readEntityExp(xmlData, i) {\n //External entities are not supported\n // <!ENTITY ext SYSTEM \"http://normal-website.com\" >\n\n //Parameter entities are not supported\n // <!ENTITY entityname \"&anotherElement;\">\n\n //Internal entities are supported\n // <!ENTITY entityname \"replacement text\">\n\n // Skip leading whitespace after <!ENTITY\n i = skipWhitespace(xmlData, i);\n\n // Read entity name\n const startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i]) && xmlData[i] !== '\"' && xmlData[i] !== \"'\") {\n i++;\n }\n let entityName = xmlData.substring(startIndex, i);\n\n validateEntityName(entityName);\n\n // Skip whitespace after entity name\n i = skipWhitespace(xmlData, i);\n\n // Check for unsupported constructs (external entities or parameter entities)\n if (!this.suppressValidationErr) {\n if (xmlData.substring(i, i + 6).toUpperCase() === \"SYSTEM\") {\n throw new Error(\"External entities are not supported\");\n } else if (xmlData[i] === \"%\") {\n throw new Error(\"Parameter entities are not supported\");\n }\n }\n\n // Read entity value (internal entity)\n let entityValue = \"\";\n [i, entityValue] = this.readIdentifierVal(xmlData, i, \"entity\");\n\n // Validate entity size\n if (this.options.enabled !== false &&\n this.options.maxEntitySize != null &&\n entityValue.length > this.options.maxEntitySize) {\n throw new Error(\n `Entity \"${entityName}\" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`\n );\n }\n\n i--;\n return [entityName, entityValue, i];\n }\n\n readNotationExp(xmlData, i) {\n // Skip leading whitespace after <!NOTATION\n i = skipWhitespace(xmlData, i);\n\n // Read notation name\n\n const startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i])) {\n i++;\n }\n let notationName = xmlData.substring(startIndex, i);\n\n !this.suppressValidationErr && validateEntityName(notationName);\n\n // Skip whitespace after notation name\n i = skipWhitespace(xmlData, i);\n\n // Check identifier type (SYSTEM or PUBLIC)\n const identifierType = xmlData.substring(i, i + 6).toUpperCase();\n if (!this.suppressValidationErr && identifierType !== \"SYSTEM\" && identifierType !== \"PUBLIC\") {\n throw new Error(`Expected SYSTEM or PUBLIC, found \"${identifierType}\"`);\n }\n i += identifierType.length;\n\n // Skip whitespace after identifier type\n i = skipWhitespace(xmlData, i);\n\n // Read public identifier (if PUBLIC)\n let publicIdentifier = null;\n let systemIdentifier = null;\n\n if (identifierType === \"PUBLIC\") {\n [i, publicIdentifier] = this.readIdentifierVal(xmlData, i, \"publicIdentifier\");\n\n // Skip whitespace after public identifier\n i = skipWhitespace(xmlData, i);\n\n // Optionally read system identifier\n if (xmlData[i] === '\"' || xmlData[i] === \"'\") {\n [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, \"systemIdentifier\");\n }\n } else if (identifierType === \"SYSTEM\") {\n // Read system identifier (mandatory for SYSTEM)\n [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, \"systemIdentifier\");\n\n if (!this.suppressValidationErr && !systemIdentifier) {\n throw new Error(\"Missing mandatory system identifier for SYSTEM notation\");\n }\n }\n\n return { notationName, publicIdentifier, systemIdentifier, index: --i };\n }\n\n readIdentifierVal(xmlData, i, type) {\n let identifierVal = \"\";\n const startChar = xmlData[i];\n if (startChar !== '\"' && startChar !== \"'\") {\n throw new Error(`Expected quoted string, found \"${startChar}\"`);\n }\n i++;\n\n const startIndex = i;\n while (i < xmlData.length && xmlData[i] !== startChar) {\n i++;\n }\n identifierVal = xmlData.substring(startIndex, i);\n\n if (xmlData[i] !== startChar) {\n throw new Error(`Unterminated ${type} value`);\n }\n i++;\n return [i, identifierVal];\n }\n\n readElementExp(xmlData, i) {\n // <!ELEMENT br EMPTY>\n // <!ELEMENT div ANY>\n // <!ELEMENT title (#PCDATA)>\n // <!ELEMENT book (title, author+)>\n // <!ELEMENT name (content-model)>\n\n // Skip leading whitespace after <!ELEMENT\n i = skipWhitespace(xmlData, i);\n\n // Read element name\n const startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i])) {\n i++;\n }\n let elementName = xmlData.substring(startIndex, i);\n\n // Validate element name\n if (!this.suppressValidationErr && !isName(elementName)) {\n throw new Error(`Invalid element name: \"${elementName}\"`);\n }\n\n // Skip whitespace after element name\n i = skipWhitespace(xmlData, i);\n let contentModel = \"\";\n // Expect '(' to start content model\n if (xmlData[i] === \"E\" && hasSeq(xmlData, \"MPTY\", i)) i += 4;\n else if (xmlData[i] === \"A\" && hasSeq(xmlData, \"NY\", i)) i += 2;\n else if (xmlData[i] === \"(\") {\n i++; // Move past '('\n\n // Read content model\n const startIndex = i;\n while (i < xmlData.length && xmlData[i] !== \")\") {\n i++;\n }\n contentModel = xmlData.substring(startIndex, i);\n\n if (xmlData[i] !== \")\") {\n throw new Error(\"Unterminated content model\");\n }\n\n } else if (!this.suppressValidationErr) {\n throw new Error(`Invalid Element Expression, found \"${xmlData[i]}\"`);\n }\n\n return {\n elementName,\n contentModel: contentModel.trim(),\n index: i\n };\n }\n\n readAttlistExp(xmlData, i) {\n // Skip leading whitespace after <!ATTLIST\n i = skipWhitespace(xmlData, i);\n\n // Read element name\n let startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i])) {\n i++;\n }\n let elementName = xmlData.substring(startIndex, i);\n\n // Validate element name\n validateEntityName(elementName)\n\n // Skip whitespace after element name\n i = skipWhitespace(xmlData, i);\n\n // Read attribute name\n startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i])) {\n i++;\n }\n let attributeName = xmlData.substring(startIndex, i);\n\n // Validate attribute name\n if (!validateEntityName(attributeName)) {\n throw new Error(`Invalid attribute name: \"${attributeName}\"`);\n }\n\n // Skip whitespace after attribute name\n i = skipWhitespace(xmlData, i);\n\n // Read attribute type\n let attributeType = \"\";\n if (xmlData.substring(i, i + 8).toUpperCase() === \"NOTATION\") {\n attributeType = \"NOTATION\";\n i += 8; // Move past \"NOTATION\"\n\n // Skip whitespace after \"NOTATION\"\n i = skipWhitespace(xmlData, i);\n\n // Expect '(' to start the list of notations\n if (xmlData[i] !== \"(\") {\n throw new Error(`Expected '(', found \"${xmlData[i]}\"`);\n }\n i++; // Move past '('\n\n // Read the list of allowed notations\n let allowedNotations = [];\n while (i < xmlData.length && xmlData[i] !== \")\") {\n\n\n const startIndex = i;\n while (i < xmlData.length && xmlData[i] !== \"|\" && xmlData[i] !== \")\") {\n i++;\n }\n let notation = xmlData.substring(startIndex, i);\n\n // Validate notation name\n notation = notation.trim();\n if (!validateEntityName(notation)) {\n throw new Error(`Invalid notation name: \"${notation}\"`);\n }\n\n allowedNotations.push(notation);\n\n // Skip '|' separator or exit loop\n if (xmlData[i] === \"|\") {\n i++; // Move past '|'\n i = skipWhitespace(xmlData, i); // Skip optional whitespace after '|'\n }\n }\n\n if (xmlData[i] !== \")\") {\n throw new Error(\"Unterminated list of notations\");\n }\n i++; // Move past ')'\n\n // Store the allowed notations as part of the attribute type\n attributeType += \" (\" + allowedNotations.join(\"|\") + \")\";\n } else {\n // Handle simple types (e.g., CDATA, ID, IDREF, etc.)\n const startIndex = i;\n while (i < xmlData.length && !/\\s/.test(xmlData[i])) {\n i++;\n }\n attributeType += xmlData.substring(startIndex, i);\n\n // Validate simple attribute type\n const validTypes = [\"CDATA\", \"ID\", \"IDREF\", \"IDREFS\", \"ENTITY\", \"ENTITIES\", \"NMTOKEN\", \"NMTOKENS\"];\n if (!this.suppressValidationErr && !validTypes.includes(attributeType.toUpperCase())) {\n throw new Error(`Invalid attribute type: \"${attributeType}\"`);\n }\n }\n\n // Skip whitespace after attribute type\n i = skipWhitespace(xmlData, i);\n\n // Read default value\n let defaultValue = \"\";\n if (xmlData.substring(i, i + 8).toUpperCase() === \"#REQUIRED\") {\n defaultValue = \"#REQUIRED\";\n i += 8;\n } else if (xmlData.substring(i, i + 7).toUpperCase() === \"#IMPLIED\") {\n defaultValue = \"#IMPLIED\";\n i += 7;\n } else {\n [i, defaultValue] = this.readIdentifierVal(xmlData, i, \"ATTLIST\");\n }\n\n return {\n elementName,\n attributeName,\n attributeType,\n defaultValue,\n index: i\n }\n }\n}\n\n\n\nconst skipWhitespace = (data, index) => {\n while (index < data.length && /\\s/.test(data[index])) {\n index++;\n }\n return index;\n};\n\n\n\nfunction hasSeq(data, seq, i) {\n for (let j = 0; j < seq.length; j++) {\n if (seq[j] !== data[i + j + 1]) return false;\n }\n return true;\n}\n\nfunction validateEntityName(name) {\n if (isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\nconst consider = {\n hex: true,\n // oct: false,\n leadingZeros: true,\n decimalPoint: \"\\.\",\n eNotation: true,\n //skipLike: /regex/,\n infinity: \"original\", // \"null\", \"infinity\" (Infinity type), \"string\" (\"Infinity\" (the string literal))\n};\n\nexport default function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n\n let trimmedStr = str.trim();\n\n if (options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n else if (str === \"0\") return 0;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return parse_int(trimmedStr, 16);\n // }else if (options.oct && octRegex.test(str)) {\n // return Number.parseInt(val, 8);\n } else if (!isFinite(trimmedStr)) { //Infinity\n return handleInfinity(str, Number(trimmedStr), options);\n } else if (trimmedStr.includes('e') || trimmedStr.includes('E')) { //eNotation\n return resolveEnotation(str, trimmedStr, options);\n // }else if (options.parseBin && binRegex.test(str)) {\n // return Number.parseInt(val, 2);\n } else {\n //separate negative sign, leading zeros, and rest number\n const match = numRegex.exec(trimmedStr);\n // +00.123 => [ , '+', '00', '.123', ..\n if (match) {\n const sign = match[1] || \"\";\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n const decimalAdjacentToLeadingZeros = sign ? // 0., -00., 000.\n str[leadingZeros.length + 1] === \".\"\n : str[leadingZeros.length] === \".\";\n\n //trim ending zeros for floating number\n if (!options.leadingZeros //leading zeros are not allowed\n && (leadingZeros.length > 1\n || (leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros))) {\n // 00, 00.3, +03.24, 03, 03.24\n return str;\n }\n else {//no leading zeros or leading zeros are allowed\n const num = Number(trimmedStr);\n const parsedStr = String(num);\n\n if (num === 0) return num;\n if (parsedStr.search(/[eE]/) !== -1) { //given number is long and parsed to eNotation\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) { //floating number\n if (parsedStr === \"0\") return num; //0.0\n else if (parsedStr === numTrimmedByZeros) return num; //0.456. 0.79000\n else if (parsedStr === `${sign}${numTrimmedByZeros}`) return num;\n else return str;\n }\n\n let n = leadingZeros ? numTrimmedByZeros : trimmedStr;\n if (leadingZeros) {\n // -009 => -9\n return (n === parsedStr) || (sign + n === parsedStr) ? num : str\n } else {\n // +9\n return (n === parsedStr) || (n === sign + parsedStr) ? num : str\n }\n }\n } else { //non-numeric string\n return str;\n }\n }\n}\n\nconst eNotationRegx = /^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;\nfunction resolveEnotation(str, trimmedStr, options) {\n if (!options.eNotation) return str;\n const notation = trimmedStr.match(eNotationRegx);\n if (notation) {\n let sign = notation[1] || \"\";\n const eChar = notation[3].indexOf(\"e\") === -1 ? \"E\" : \"e\";\n const leadingZeros = notation[2];\n const eAdjacentToLeadingZeros = sign ? // 0E.\n str[leadingZeros.length + 1] === eChar\n : str[leadingZeros.length] === eChar;\n\n if (leadingZeros.length > 1 && eAdjacentToLeadingZeros) return str;\n else if (leadingZeros.length === 1\n && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)) {\n return Number(trimmedStr);\n } else if (leadingZeros.length > 0) {\n // Has leading zeros — only accept if leadingZeros option allows it\n if (options.leadingZeros && !eAdjacentToLeadingZeros) {\n trimmedStr = (notation[1] || \"\") + notation[3];\n return Number(trimmedStr);\n } else return str;\n } else {\n // No leading zeros — always valid e-notation, parse it\n return Number(trimmedStr);\n }\n } else {\n return str;\n }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {//float\n numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substring(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n}\n\nfunction parse_int(numStr, base) {\n //polyfill\n if (parseInt) return parseInt(numStr, base);\n else if (Number.parseInt) return Number.parseInt(numStr, base);\n else if (window && window.parseInt) return window.parseInt(numStr, base);\n else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}\n\n/**\n * Handle infinite values based on user option\n * @param {string} str - original input string\n * @param {number} num - parsed number (Infinity or -Infinity)\n * @param {object} options - user options\n * @returns {string|number|null} based on infinity option\n */\nfunction handleInfinity(str, num, options) {\n const isPositive = num === Infinity;\n\n switch (options.infinity.toLowerCase()) {\n case \"null\":\n return null;\n case \"infinity\":\n return num; // Return Infinity or -Infinity\n case \"string\":\n return isPositive ? \"Infinity\" : \"-Infinity\";\n case \"original\":\n default:\n return str; // Return original string like \"1e1000\"\n }\n}","export default function getIgnoreAttributesFn(ignoreAttributes) {\n if (typeof ignoreAttributes === 'function') {\n return ignoreAttributes\n }\n if (Array.isArray(ignoreAttributes)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes) {\n if (typeof pattern === 'string' && attrName === pattern) {\n return true\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true\n }\n }\n }\n }\n return () => false\n}","/**\n * Expression - Parses and stores a tag pattern expression\n * \n * Patterns are parsed once and stored in an optimized structure for fast matching.\n * \n * @example\n * const expr = new Expression(\"root.users.user\");\n * const expr2 = new Expression(\"..user[id]:first\");\n * const expr3 = new Expression(\"root/users/user\", { separator: '/' });\n */\nexport default class Expression {\n /**\n * Create a new Expression\n * @param {string} pattern - Pattern string (e.g., \"root.users.user\", \"..user[id]\")\n * @param {Object} options - Configuration options\n * @param {string} options.separator - Path separator (default: '.')\n */\n constructor(pattern, options = {}) {\n this.pattern = pattern;\n this.separator = options.separator || '.';\n this.segments = this._parse(pattern);\n\n // Cache expensive checks for performance (O(1) instead of O(n))\n this._hasDeepWildcard = this.segments.some(seg => seg.type === 'deep-wildcard');\n this._hasAttributeCondition = this.segments.some(seg => seg.attrName !== undefined);\n this._hasPositionSelector = this.segments.some(seg => seg.position !== undefined);\n }\n\n /**\n * Parse pattern string into segments\n * @private\n * @param {string} pattern - Pattern to parse\n * @returns {Array} Array of segment objects\n */\n _parse(pattern) {\n const segments = [];\n\n // Split by separator but handle \"..\" specially\n let i = 0;\n let currentPart = '';\n\n while (i < pattern.length) {\n if (pattern[i] === this.separator) {\n // Check if next char is also separator (deep wildcard)\n if (i + 1 < pattern.length && pattern[i + 1] === this.separator) {\n // Flush current part if any\n if (currentPart.trim()) {\n segments.push(this._parseSegment(currentPart.trim()));\n currentPart = '';\n }\n // Add deep wildcard\n segments.push({ type: 'deep-wildcard' });\n i += 2; // Skip both separators\n } else {\n // Regular separator\n if (currentPart.trim()) {\n segments.push(this._parseSegment(currentPart.trim()));\n }\n currentPart = '';\n i++;\n }\n } else {\n currentPart += pattern[i];\n i++;\n }\n }\n\n // Flush remaining part\n if (currentPart.trim()) {\n segments.push(this._parseSegment(currentPart.trim()));\n }\n\n return segments;\n }\n\n /**\n * Parse a single segment\n * @private\n * @param {string} part - Segment string (e.g., \"user\", \"ns::user\", \"user[id]\", \"ns::user:first\")\n * @returns {Object} Segment object\n */\n _parseSegment(part) {\n const segment = { type: 'tag' };\n\n // NEW NAMESPACE SYNTAX (v2.0):\n // ============================\n // Namespace uses DOUBLE colon (::)\n // Position uses SINGLE colon (:)\n // \n // Examples:\n // \"user\" → tag\n // \"user:first\" → tag + position\n // \"user[id]\" → tag + attribute\n // \"user[id]:first\" → tag + attribute + position\n // \"ns::user\" → namespace + tag\n // \"ns::user:first\" → namespace + tag + position\n // \"ns::user[id]\" → namespace + tag + attribute\n // \"ns::user[id]:first\" → namespace + tag + attribute + position\n // \"ns::first\" → namespace + tag named \"first\" (NO ambiguity!)\n //\n // This eliminates all ambiguity:\n // :: = namespace separator\n // : = position selector\n // [] = attributes\n\n // Step 1: Extract brackets [attr] or [attr=value]\n let bracketContent = null;\n let withoutBrackets = part;\n\n const bracketMatch = part.match(/^([^\\[]+)(\\[[^\\]]*\\])(.*)$/);\n if (bracketMatch) {\n withoutBrackets = bracketMatch[1] + bracketMatch[3];\n if (bracketMatch[2]) {\n const content = bracketMatch[2].slice(1, -1);\n if (content) {\n bracketContent = content;\n }\n }\n }\n\n // Step 2: Check for namespace (double colon ::)\n let namespace = undefined;\n let tagAndPosition = withoutBrackets;\n\n if (withoutBrackets.includes('::')) {\n const nsIndex = withoutBrackets.indexOf('::');\n namespace = withoutBrackets.substring(0, nsIndex).trim();\n tagAndPosition = withoutBrackets.substring(nsIndex + 2).trim(); // Skip ::\n\n if (!namespace) {\n throw new Error(`Invalid namespace in pattern: ${part}`);\n }\n }\n\n // Step 3: Parse tag and position (single colon :)\n let tag = undefined;\n let positionMatch = null;\n\n if (tagAndPosition.includes(':')) {\n const colonIndex = tagAndPosition.lastIndexOf(':'); // Use last colon for position\n const tagPart = tagAndPosition.substring(0, colonIndex).trim();\n const posPart = tagAndPosition.substring(colonIndex + 1).trim();\n\n // Verify position is a valid keyword\n const isPositionKeyword = ['first', 'last', 'odd', 'even'].includes(posPart) ||\n /^nth\\(\\d+\\)$/.test(posPart);\n\n if (isPositionKeyword) {\n tag = tagPart;\n positionMatch = posPart;\n } else {\n // Not a valid position keyword, treat whole thing as tag\n tag = tagAndPosition;\n }\n } else {\n tag = tagAndPosition;\n }\n\n if (!tag) {\n throw new Error(`Invalid segment pattern: ${part}`);\n }\n\n segment.tag = tag;\n if (namespace) {\n segment.namespace = namespace;\n }\n\n // Step 4: Parse attributes\n if (bracketContent) {\n if (bracketContent.includes('=')) {\n const eqIndex = bracketContent.indexOf('=');\n segment.attrName = bracketContent.substring(0, eqIndex).trim();\n segment.attrValue = bracketContent.substring(eqIndex + 1).trim();\n } else {\n segment.attrName = bracketContent.trim();\n }\n }\n\n // Step 5: Parse position selector\n if (positionMatch) {\n const nthMatch = positionMatch.match(/^nth\\((\\d+)\\)$/);\n if (nthMatch) {\n segment.position = 'nth';\n segment.positionValue = parseInt(nthMatch[1], 10);\n } else {\n segment.position = positionMatch;\n }\n }\n\n return segment;\n }\n\n /**\n * Get the number of segments\n * @returns {number}\n */\n get length() {\n return this.segments.length;\n }\n\n /**\n * Check if expression contains deep wildcard\n * @returns {boolean}\n */\n hasDeepWildcard() {\n return this._hasDeepWildcard;\n }\n\n /**\n * Check if expression has attribute conditions\n * @returns {boolean}\n */\n hasAttributeCondition() {\n return this._hasAttributeCondition;\n }\n\n /**\n * Check if expression has position selectors\n * @returns {boolean}\n */\n hasPositionSelector() {\n return this._hasPositionSelector;\n }\n\n /**\n * Get string representation\n * @returns {string}\n */\n toString() {\n return this.pattern;\n }\n}","/**\n * Matcher - Tracks current path in XML/JSON tree and matches against Expressions\n * \n * The matcher maintains a stack of nodes representing the current path from root to\n * current tag. It only stores attribute values for the current (top) node to minimize\n * memory usage. Sibling tracking is used to auto-calculate position and counter.\n * \n * @example\n * const matcher = new Matcher();\n * matcher.push(\"root\", {});\n * matcher.push(\"users\", {});\n * matcher.push(\"user\", { id: \"123\", type: \"admin\" });\n * \n * const expr = new Expression(\"root.users.user\");\n * matcher.matches(expr); // true\n */\nexport default class Matcher {\n /**\n * Create a new Matcher\n * @param {Object} options - Configuration options\n * @param {string} options.separator - Default path separator (default: '.')\n */\n constructor(options = {}) {\n this.separator = options.separator || '.';\n this.path = [];\n this.siblingStacks = [];\n // Each path node: { tag: string, values: object, position: number, counter: number }\n // values only present for current (last) node\n // Each siblingStacks entry: Map<tagName, count> tracking occurrences at each level\n }\n\n /**\n * Push a new tag onto the path\n * @param {string} tagName - Name of the tag\n * @param {Object} attrValues - Attribute key-value pairs for current node (optional)\n * @param {string} namespace - Namespace for the tag (optional)\n */\n push(tagName, attrValues = null, namespace = null) {\n // Remove values from previous current node (now becoming ancestor)\n if (this.path.length > 0) {\n const prev = this.path[this.path.length - 1];\n prev.values = undefined;\n }\n\n // Get or create sibling tracking for current level\n const currentLevel = this.path.length;\n if (!this.siblingStacks[currentLevel]) {\n this.siblingStacks[currentLevel] = new Map();\n }\n\n const siblings = this.siblingStacks[currentLevel];\n\n // Create a unique key for sibling tracking that includes namespace\n const siblingKey = namespace ? `${namespace}:${tagName}` : tagName;\n\n // Calculate counter (how many times this tag appeared at this level)\n const counter = siblings.get(siblingKey) || 0;\n\n // Calculate position (total children at this level so far)\n let position = 0;\n for (const count of siblings.values()) {\n position += count;\n }\n\n // Update sibling count for this tag\n siblings.set(siblingKey, counter + 1);\n\n // Create new node\n const node = {\n tag: tagName,\n position: position,\n counter: counter\n };\n\n // Store namespace if provided\n if (namespace !== null && namespace !== undefined) {\n node.namespace = namespace;\n }\n\n // Store values only for current node\n if (attrValues !== null && attrValues !== undefined) {\n node.values = attrValues;\n }\n\n this.path.push(node);\n }\n\n /**\n * Pop the last tag from the path\n * @returns {Object|undefined} The popped node\n */\n pop() {\n if (this.path.length === 0) {\n return undefined;\n }\n\n const node = this.path.pop();\n\n // Clean up sibling tracking for levels deeper than current\n // After pop, path.length is the new depth\n // We need to clean up siblingStacks[path.length + 1] and beyond\n if (this.siblingStacks.length > this.path.length + 1) {\n this.siblingStacks.length = this.path.length + 1;\n }\n\n return node;\n }\n\n /**\n * Update current node's attribute values\n * Useful when attributes are parsed after push\n * @param {Object} attrValues - Attribute values\n */\n updateCurrent(attrValues) {\n if (this.path.length > 0) {\n const current = this.path[this.path.length - 1];\n if (attrValues !== null && attrValues !== undefined) {\n current.values = attrValues;\n }\n }\n }\n\n /**\n * Get current tag name\n * @returns {string|undefined}\n */\n getCurrentTag() {\n return this.path.length > 0 ? this.path[this.path.length - 1].tag : undefined;\n }\n\n /**\n * Get current namespace\n * @returns {string|undefined}\n */\n getCurrentNamespace() {\n return this.path.length > 0 ? this.path[this.path.length - 1].namespace : undefined;\n }\n\n /**\n * Get current node's attribute value\n * @param {string} attrName - Attribute name\n * @returns {*} Attribute value or undefined\n */\n getAttrValue(attrName) {\n if (this.path.length === 0) return undefined;\n const current = this.path[this.path.length - 1];\n return current.values?.[attrName];\n }\n\n /**\n * Check if current node has an attribute\n * @param {string} attrName - Attribute name\n * @returns {boolean}\n */\n hasAttr(attrName) {\n if (this.path.length === 0) return false;\n const current = this.path[this.path.length - 1];\n return current.values !== undefined && attrName in current.values;\n }\n\n /**\n * Get current node's sibling position (child index in parent)\n * @returns {number}\n */\n getPosition() {\n if (this.path.length === 0) return -1;\n return this.path[this.path.length - 1].position ?? 0;\n }\n\n /**\n * Get current node's repeat counter (occurrence count of this tag name)\n * @returns {number}\n */\n getCounter() {\n if (this.path.length === 0) return -1;\n return this.path[this.path.length - 1].counter ?? 0;\n }\n\n /**\n * Get current node's sibling index (alias for getPosition for backward compatibility)\n * @returns {number}\n * @deprecated Use getPosition() or getCounter() instead\n */\n getIndex() {\n return this.getPosition();\n }\n\n /**\n * Get current path depth\n * @returns {number}\n */\n getDepth() {\n return this.path.length;\n }\n\n /**\n * Get path as string\n * @param {string} separator - Optional separator (uses default if not provided)\n * @param {boolean} includeNamespace - Whether to include namespace in output (default: true)\n * @returns {string}\n */\n toString(separator, includeNamespace = true) {\n const sep = separator || this.separator;\n return this.path.map(n => {\n if (includeNamespace && n.namespace) {\n return `${n.namespace}:${n.tag}`;\n }\n return n.tag;\n }).join(sep);\n }\n\n /**\n * Get path as array of tag names\n * @returns {string[]}\n */\n toArray() {\n return this.path.map(n => n.tag);\n }\n\n /**\n * Reset the path to empty\n */\n reset() {\n this.path = [];\n this.siblingStacks = [];\n }\n\n /**\n * Match current path against an Expression\n * @param {Expression} expression - The expression to match against\n * @returns {boolean} True if current path matches the expression\n */\n matches(expression) {\n const segments = expression.segments;\n\n if (segments.length === 0) {\n return false;\n }\n\n // Handle deep wildcard patterns\n if (expression.hasDeepWildcard()) {\n return this._matchWithDeepWildcard(segments);\n }\n\n // Simple path matching (no deep wildcards)\n return this._matchSimple(segments);\n }\n\n /**\n * Match simple path (no deep wildcards)\n * @private\n */\n _matchSimple(segments) {\n // Path must be same length as segments\n if (this.path.length !== segments.length) {\n return false;\n }\n\n // Match each segment bottom-to-top\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const node = this.path[i];\n const isCurrentNode = (i === this.path.length - 1);\n\n if (!this._matchSegment(segment, node, isCurrentNode)) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Match path with deep wildcards\n * @private\n */\n _matchWithDeepWildcard(segments) {\n let pathIdx = this.path.length - 1; // Start from current node (bottom)\n let segIdx = segments.length - 1; // Start from last segment\n\n while (segIdx >= 0 && pathIdx >= 0) {\n const segment = segments[segIdx];\n\n if (segment.type === 'deep-wildcard') {\n // \"..\" matches zero or more levels\n segIdx--;\n\n if (segIdx < 0) {\n // Pattern ends with \"..\", always matches\n return true;\n }\n\n // Find where next segment matches in the path\n const nextSeg = segments[segIdx];\n let found = false;\n\n for (let i = pathIdx; i >= 0; i--) {\n const isCurrentNode = (i === this.path.length - 1);\n if (this._matchSegment(nextSeg, this.path[i], isCurrentNode)) {\n pathIdx = i - 1;\n segIdx--;\n found = true;\n break;\n }\n }\n\n if (!found) {\n return false;\n }\n } else {\n // Regular segment\n const isCurrentNode = (pathIdx === this.path.length - 1);\n if (!this._matchSegment(segment, this.path[pathIdx], isCurrentNode)) {\n return false;\n }\n pathIdx--;\n segIdx--;\n }\n }\n\n // All segments must be consumed\n return segIdx < 0;\n }\n\n /**\n * Match a single segment against a node\n * @private\n * @param {Object} segment - Segment from Expression\n * @param {Object} node - Node from path\n * @param {boolean} isCurrentNode - Whether this is the current (last) node\n * @returns {boolean}\n */\n _matchSegment(segment, node, isCurrentNode) {\n // Match tag name (* is wildcard)\n if (segment.tag !== '*' && segment.tag !== node.tag) {\n return false;\n }\n\n // Match namespace if specified in segment\n if (segment.namespace !== undefined) {\n // Segment has namespace - node must match it\n if (segment.namespace !== '*' && segment.namespace !== node.namespace) {\n return false;\n }\n }\n // If segment has no namespace, it matches nodes with or without namespace\n\n // Match attribute name (check if node has this attribute)\n // Can only check for current node since ancestors don't have values\n if (segment.attrName !== undefined) {\n if (!isCurrentNode) {\n // Can't check attributes for ancestor nodes (values not stored)\n return false;\n }\n\n if (!node.values || !(segment.attrName in node.values)) {\n return false;\n }\n\n // Match attribute value (only possible for current node)\n if (segment.attrValue !== undefined) {\n const actualValue = node.values[segment.attrName];\n // Both should be strings\n if (String(actualValue) !== String(segment.attrValue)) {\n return false;\n }\n }\n }\n\n // Match position (only for current node)\n if (segment.position !== undefined) {\n if (!isCurrentNode) {\n // Can't check position for ancestor nodes\n return false;\n }\n\n const counter = node.counter ?? 0;\n\n if (segment.position === 'first' && counter !== 0) {\n return false;\n } else if (segment.position === 'odd' && counter % 2 !== 1) {\n return false;\n } else if (segment.position === 'even' && counter % 2 !== 0) {\n return false;\n } else if (segment.position === 'nth') {\n if (counter !== segment.positionValue) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n /**\n * Create a snapshot of current state\n * @returns {Object} State snapshot\n */\n snapshot() {\n return {\n path: this.path.map(node => ({ ...node })),\n siblingStacks: this.siblingStacks.map(map => new Map(map))\n };\n }\n\n /**\n * Restore state from snapshot\n * @param {Object} snapshot - State snapshot\n */\n restore(snapshot) {\n this.path = snapshot.path.map(node => ({ ...node }));\n this.siblingStacks = snapshot.siblingStacks.map(map => new Map(map));\n }\n}","'use strict';\n///@ts-check\n\nimport { getAllMatches, isExist, DANGEROUS_PROPERTY_NAMES, criticalProperties } from '../util.js';\nimport xmlNode from './xmlNode.js';\nimport DocTypeReader from './DocTypeReader.js';\nimport toNumber from \"strnum\";\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\nimport { Expression, Matcher } from 'path-expression-matcher';\n\n// const regx =\n// '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n// .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n// Helper functions for attribute and namespace handling\n\n/**\n * Extract raw attributes (without prefix) from prefixed attribute map\n * @param {object} prefixedAttrs - Attributes with prefix from buildAttributesMap\n * @param {object} options - Parser options containing attributeNamePrefix\n * @returns {object} Raw attributes for matcher\n */\nfunction extractRawAttributes(prefixedAttrs, options) {\n if (!prefixedAttrs) return {};\n\n // Handle attributesGroupName option\n const attrs = options.attributesGroupName\n ? prefixedAttrs[options.attributesGroupName]\n : prefixedAttrs;\n\n if (!attrs) return {};\n\n const rawAttrs = {};\n for (const key in attrs) {\n // Remove the attribute prefix to get raw name\n if (key.startsWith(options.attributeNamePrefix)) {\n const rawName = key.substring(options.attributeNamePrefix.length);\n rawAttrs[rawName] = attrs[key];\n } else {\n // Attribute without prefix (shouldn't normally happen, but be safe)\n rawAttrs[key] = attrs[key];\n }\n }\n return rawAttrs;\n}\n\n/**\n * Extract namespace from raw tag name\n * @param {string} rawTagName - Tag name possibly with namespace (e.g., \"soap:Envelope\")\n * @returns {string|undefined} Namespace or undefined\n */\nfunction extractNamespace(rawTagName) {\n if (!rawTagName || typeof rawTagName !== 'string') return undefined;\n\n const colonIndex = rawTagName.indexOf(':');\n if (colonIndex !== -1 && colonIndex > 0) {\n const ns = rawTagName.substring(0, colonIndex);\n // Don't treat xmlns as a namespace\n if (ns !== 'xmlns') {\n return ns;\n }\n }\n return undefined;\n}\n\nexport default class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: \"\\\"\" },\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => fromCodePoint(str, 10, \"&#\") },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => fromCodePoint(str, 16, \"&#x\") },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n this.entityExpansionCount = 0;\n this.currentExpandedLength = 0;\n\n // Initialize path matcher for path-expression-matcher\n this.matcher = new Matcher();\n\n // Flag to track if current node is a stop node (optimization)\n this.isCurrentNodeStopNode = false;\n\n // Pre-compile stopNodes expressions\n if (this.options.stopNodes && this.options.stopNodes.length > 0) {\n this.stopNodeExpressions = [];\n for (let i = 0; i < this.options.stopNodes.length; i++) {\n const stopNodeExp = this.options.stopNodes[i];\n if (typeof stopNodeExp === 'string') {\n // Convert string to Expression object\n this.stopNodeExpressions.push(new Expression(stopNodeExp));\n } else if (stopNodeExp instanceof Expression) {\n // Already an Expression object\n this.stopNodeExpressions.push(stopNodeExp);\n }\n }\n }\n }\n\n}\n\nfunction addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n const escaped = ent.replace(/[.\\-+*:]/g, '\\\\.');\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + escaped + \";\", \"g\"),\n val: externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string|Matcher} jPath - jPath string or Matcher instance based on options.jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val, tagName, jPath);\n\n // Pass jPath string or matcher based on options.jPath setting\n const jPathOrMatcher = this.options.jPath ? jPath.toString() : jPath;\n const newval = this.options.tagValueProcessor(tagName, val, jPathOrMatcher, hasAttributes, isLeafNode);\n if (newval === null || newval === undefined) {\n //don't parse\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n //overwrite\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n\n // First pass: parse all attributes and update matcher with raw values\n // This ensures the matcher has all attribute values when processors run\n const rawAttrsForMatcher = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n const oldVal = matches[i][4];\n\n if (attrName.length && oldVal !== undefined) {\n let parsedVal = oldVal;\n if (this.options.trimValues) {\n parsedVal = parsedVal.trim();\n }\n parsedVal = this.replaceEntitiesValue(parsedVal, tagName, jPath);\n rawAttrsForMatcher[attrName] = parsedVal;\n }\n }\n\n // Update matcher with raw attribute values BEFORE running processors\n if (Object.keys(rawAttrsForMatcher).length > 0 && typeof jPath === 'object' && jPath.updateCurrent) {\n jPath.updateCurrent(rawAttrsForMatcher);\n }\n\n // Second pass: now process attributes with matcher having full attribute context\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n\n // Convert jPath to string if needed for ignoreAttributesFn\n const jPathStr = this.options.jPath ? jPath.toString() : jPath;\n if (this.ignoreAttributesFn(attrName, jPathStr)) {\n continue\n }\n\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n //if (aName === \"__proto__\") aName = \"#__proto__\";\n aName = sanitizeName(aName, this.options);\n\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal, tagName, jPath);\n\n // Pass jPath string or matcher based on options.jPath setting\n const jPathOrMatcher = this.options.jPath ? jPath.toString() : jPath;\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPathOrMatcher);\n if (newVal === null || newVal === undefined) {\n //don't parse\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n //overwrite\n attrs[aName] = newVal;\n } else {\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function (xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n\n // Reset matcher for new document\n this.matcher.reset();\n\n // Reset entity expansion counters for this document\n this.entityExpansionCount = 0;\n this.currentExpandedLength = 0;\n\n const docTypeReader = new DocTypeReader(this.options.processEntities);\n for (let i = 0; i < xmlData.length; i++) {//for each char in XML data\n const ch = xmlData[i];\n if (ch === '<') {\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if (xmlData[i + 1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i + 2, closeIndex).trim();\n\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n\n tagName = transformTagName(this.options.transformTagName, tagName, \"\", this.options).tagName;\n\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, this.matcher);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = this.matcher.getCurrentTag();\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n // Pop the unpaired tag\n this.matcher.pop();\n this.tagsNodeStack.pop();\n }\n // Pop the closing tag\n this.matcher.pop();\n this.isCurrentNodeStopNode = false; // Reset flag when closing tag\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n\n let tagData = readTagExp(xmlData, i, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, this.matcher);\n if ((this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags) {\n //do nothing\n } else {\n\n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, this.matcher, tagData.tagName);\n }\n this.addChild(currentNode, childNode, this.matcher, i);\n }\n\n\n i = tagData.closeIndex + 1;\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\")\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, this.matcher);\n\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i = endIndex;\n } else if (xmlData.substr(i + 1, 2) === '!D') {\n const result = docTypeReader.readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n } else if (xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9, closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, this.matcher);\n\n let val = this.parseTextData(tagExp, currentNode.tagname, this.matcher, true, false, true, true);\n if (val == undefined) val = \"\";\n\n //cdata should be set even if it is 0 length string\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n\n i = closeIndex + 2;\n } else {//Opening tag\n let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n\n // Safety check: readTagExp can return undefined\n if (!result) {\n // Log context for debugging\n const context = xmlData.substring(Math.max(0, i - 50), Math.min(xmlData.length, i + 50));\n throw new Error(`readTagExp returned undefined at position ${i}. Context: \"${context}\"`);\n }\n\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n ({ tagName, tagExp } = transformTagName(this.options.transformTagName, tagName, tagExp, this.options));\n\n if (this.options.strictReservedNames &&\n (tagName === this.options.commentPropName\n || tagName === this.options.cdataPropName\n || tagName === this.options.textNodeName\n || tagName === this.options.attributesGroupName\n )) {\n throw new Error(`Invalid tag name: ${tagName}`);\n }\n\n //save text as child node\n if (currentNode && textData) {\n if (currentNode.tagname !== '!xml') {\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, this.matcher, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n this.matcher.pop();\n }\n\n // Clean up self-closing syntax BEFORE processing attributes\n // This is where tagExp gets the trailing / removed\n let isSelfClosing = false;\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n isSelfClosing = true;\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n // Re-check attrExpPresent after cleaning\n attrExpPresent = (tagName !== tagExp);\n }\n\n // Now process attributes with CLEAN tagExp (no trailing /)\n let prefixedAttrs = null;\n let rawAttrs = {};\n let namespace = undefined;\n\n // Extract namespace from rawTagName\n namespace = extractNamespace(rawTagName);\n\n // Push tag to matcher FIRST (with empty attrs for now) so callbacks see correct path\n if (tagName !== xmlObj.tagname) {\n this.matcher.push(tagName, {}, namespace);\n }\n\n // Now build attributes - callbacks will see correct matcher state\n if (tagName !== tagExp && attrExpPresent) {\n // Build attributes (returns prefixed attributes for the tree)\n // Note: buildAttributesMap now internally updates the matcher with raw attributes\n prefixedAttrs = this.buildAttributesMap(tagExp, this.matcher, tagName);\n\n if (prefixedAttrs) {\n // Extract raw attributes (without prefix) for our use\n rawAttrs = extractRawAttributes(prefixedAttrs, this.options);\n }\n }\n\n // Now check if this is a stop node (after attributes are set)\n if (tagName !== xmlObj.tagname) {\n this.isCurrentNodeStopNode = this.isItStopNode(this.stopNodeExpressions, this.matcher);\n }\n\n const startIndex = i;\n if (this.isCurrentNodeStopNode) {\n let tagContent = \"\";\n\n // For self-closing tags, content is empty\n if (isSelfClosing) {\n i = result.closeIndex;\n }\n //unpaired tag\n else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i = result.closeIndex;\n }\n //normal tag\n else {\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result) throw new Error(`Unexpected end of ${rawTagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n\n if (prefixedAttrs) {\n childNode[\":@\"] = prefixedAttrs;\n }\n\n // For stop nodes, store raw content as-is without any processing\n childNode.add(this.options.textNodeName, tagContent);\n\n this.matcher.pop(); // Pop the stop node tag\n this.isCurrentNodeStopNode = false; // Reset flag\n\n this.addChild(currentNode, childNode, this.matcher, startIndex);\n } else {\n //selfClosing tag\n if (isSelfClosing) {\n ({ tagName, tagExp } = transformTagName(this.options.transformTagName, tagName, tagExp, this.options));\n\n const childNode = new xmlNode(tagName);\n if (prefixedAttrs) {\n childNode[\":@\"] = prefixedAttrs;\n }\n this.addChild(currentNode, childNode, this.matcher, startIndex);\n this.matcher.pop(); // Pop self-closing tag\n this.isCurrentNodeStopNode = false; // Reset flag\n }\n else if (this.options.unpairedTags.indexOf(tagName) !== -1) {//unpaired tag\n const childNode = new xmlNode(tagName);\n if (prefixedAttrs) {\n childNode[\":@\"] = prefixedAttrs;\n }\n this.addChild(currentNode, childNode, this.matcher, startIndex);\n this.matcher.pop(); // Pop unpaired tag\n this.isCurrentNodeStopNode = false; // Reset flag\n i = result.closeIndex;\n // Continue to next iteration without changing currentNode\n continue;\n }\n //opening tag\n else {\n const childNode = new xmlNode(tagName);\n if (this.tagsNodeStack.length > this.options.maxNestedTags) {\n throw new Error(\"Maximum nested tags exceeded\");\n }\n this.tagsNodeStack.push(currentNode);\n\n if (prefixedAttrs) {\n childNode[\":@\"] = prefixedAttrs;\n }\n this.addChild(currentNode, childNode, this.matcher, startIndex);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n } else {\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, matcher, startIndex) {\n // unset startIndex if not requested\n if (!this.options.captureMetaData) startIndex = undefined;\n\n // Pass jPath string or matcher based on options.jPath setting\n const jPathOrMatcher = this.options.jPath ? matcher.toString() : matcher;\n const result = this.options.updateTag(childNode.tagname, jPathOrMatcher, childNode[\":@\"])\n if (result === false) {\n //do nothing\n } else if (typeof result === \"string\") {\n childNode.tagname = result\n currentNode.addChild(childNode, startIndex);\n } else {\n currentNode.addChild(childNode, startIndex);\n }\n}\n\n/**\n * @param {object} val - Entity object with regex and val properties\n * @param {string} tagName - Tag name\n * @param {string|Matcher} jPath - jPath string or Matcher instance based on options.jPath\n */\nfunction replaceEntitiesValue(val, tagName, jPath) {\n const entityConfig = this.options.processEntities;\n\n if (!entityConfig || !entityConfig.enabled) {\n return val;\n }\n\n // Check if tag is allowed to contain entities\n if (entityConfig.allowedTags) {\n const jPathOrMatcher = this.options.jPath ? jPath.toString() : jPath;\n const allowed = Array.isArray(entityConfig.allowedTags)\n ? entityConfig.allowedTags.includes(tagName)\n : entityConfig.allowedTags(tagName, jPathOrMatcher);\n\n if (!allowed) {\n return val;\n }\n }\n\n // Apply custom tag filter if provided\n if (entityConfig.tagFilter) {\n const jPathOrMatcher = this.options.jPath ? jPath.toString() : jPath;\n if (!entityConfig.tagFilter(tagName, jPathOrMatcher)) {\n return val; // Skip based on custom filter\n }\n }\n\n // Replace DOCTYPE entities\n for (const entityName of Object.keys(this.docTypeEntities)) {\n const entity = this.docTypeEntities[entityName];\n const matches = val.match(entity.regx);\n\n if (matches) {\n // Track expansions\n this.entityExpansionCount += matches.length;\n\n // Check expansion limit\n if (entityConfig.maxTotalExpansions &&\n this.entityExpansionCount > entityConfig.maxTotalExpansions) {\n throw new Error(\n `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${entityConfig.maxTotalExpansions}`\n );\n }\n\n // Store length before replacement\n const lengthBefore = val.length;\n val = val.replace(entity.regx, entity.val);\n\n // Check expanded length immediately after replacement\n if (entityConfig.maxExpandedLength) {\n this.currentExpandedLength += (val.length - lengthBefore);\n\n if (this.currentExpandedLength > entityConfig.maxExpandedLength) {\n throw new Error(\n `Total expanded content size exceeded: ${this.currentExpandedLength} > ${entityConfig.maxExpandedLength}`\n );\n }\n }\n }\n }\n // Replace standard entities\n for (const entityName of Object.keys(this.lastEntities)) {\n const entity = this.lastEntities[entityName];\n const matches = val.match(entity.regex);\n if (matches) {\n this.entityExpansionCount += matches.length;\n if (entityConfig.maxTotalExpansions &&\n this.entityExpansionCount > entityConfig.maxTotalExpansions) {\n throw new Error(\n `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${entityConfig.maxTotalExpansions}`\n );\n }\n }\n val = val.replace(entity.regex, entity.val);\n }\n if (val.indexOf('&') === -1) return val;\n\n // Replace HTML entities if enabled\n if (this.options.htmlEntities) {\n for (const entityName of Object.keys(this.htmlEntities)) {\n const entity = this.htmlEntities[entityName];\n const matches = val.match(entity.regex);\n if (matches) {\n //console.log(matches);\n this.entityExpansionCount += matches.length;\n if (entityConfig.maxTotalExpansions &&\n this.entityExpansionCount > entityConfig.maxTotalExpansions) {\n throw new Error(\n `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${entityConfig.maxTotalExpansions}`\n );\n }\n }\n val = val.replace(entity.regex, entity.val);\n }\n }\n\n // Replace ampersand entity last\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n\n return val;\n}\n\n\nfunction saveTextToParentTag(textData, parentNode, matcher, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if (isLeafNode === undefined) isLeafNode = parentNode.child.length === 0\n\n textData = this.parseTextData(textData,\n parentNode.tagname,\n matcher,\n false,\n parentNode[\":@\"] ? Object.keys(parentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n parentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * @param {Array<Expression>} stopNodeExpressions - Array of compiled Expression objects\n * @param {Matcher} matcher - Current path matcher\n */\nfunction isItStopNode(stopNodeExpressions, matcher) {\n if (!stopNodeExpressions || stopNodeExpressions.length === 0) return false;\n\n for (let i = 0; i < stopNodeExpressions.length; i++) {\n if (matcher.matches(stopNodeExpressions[i])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index: index\n }\n }\n } else {\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n const closingIndex = xmlData.indexOf(str, i);\n if (closingIndex === -1) {\n throw new Error(errMsg)\n } else {\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {//separate tag name and attributes expression\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n rawTagName: rawTagName,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i) {\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\") {\n if (xmlData[i + 1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i: closeIndex\n }\n }\n }\n i = closeIndex;\n } else if (xmlData[i + 1] === '?') {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\")\n i = closeIndex;\n } else if (xmlData.substr(i + 1, 3) === '!--') {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\")\n i = closeIndex;\n } else if (xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i = tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if (newval === 'true') return true;\n else if (newval === 'false') return false;\n else return toNumber(val, options);\n } else {\n if (isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\nfunction fromCodePoint(str, base, prefix) {\n const codePoint = Number.parseInt(str, base);\n\n if (codePoint >= 0 && codePoint <= 0x10FFFF) {\n return String.fromCodePoint(codePoint);\n } else {\n return prefix + str + \";\";\n }\n}\n\nfunction transformTagName(fn, tagName, tagExp, options) {\n if (fn) {\n const newTagName = fn(tagName);\n if (tagExp === tagName) {\n tagExp = newTagName\n }\n tagName = newTagName;\n }\n tagName = sanitizeName(tagName, options);\n return { tagName, tagExp };\n}\n\n\n\nfunction sanitizeName(name, options) {\n if (criticalProperties.includes(name)) {\n throw new Error(`[SECURITY] Invalid name: \"${name}\" is a reserved JavaScript keyword that could cause prototype pollution`);\n } else if (DANGEROUS_PROPERTY_NAMES.includes(name)) {\n return options.onDangerousProperty(name);\n }\n return name;\n}","'use strict';\n\nimport XmlNode from './xmlNode.js';\nimport { Matcher } from 'path-expression-matcher';\n\nconst METADATA_SYMBOL = XmlNode.getMetaDataSymbol();\n\n/**\n * Helper function to strip attribute prefix from attribute map\n * @param {object} attrs - Attributes with prefix (e.g., {\"@_class\": \"code\"})\n * @param {string} prefix - Attribute prefix to remove (e.g., \"@_\")\n * @returns {object} Attributes without prefix (e.g., {\"class\": \"code\"})\n */\nfunction stripAttributePrefix(attrs, prefix) {\n if (!attrs || typeof attrs !== 'object') return {};\n if (!prefix) return attrs;\n\n const rawAttrs = {};\n for (const key in attrs) {\n if (key.startsWith(prefix)) {\n const rawName = key.substring(prefix.length);\n rawAttrs[rawName] = attrs[key];\n } else {\n // Attribute without prefix (shouldn't normally happen, but be safe)\n rawAttrs[key] = attrs[key];\n }\n }\n return rawAttrs;\n}\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @param {Matcher} matcher - Path matcher instance\n * @returns \n */\nexport default function prettify(node, options, matcher) {\n return compress(node, options, matcher);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {Matcher} matcher - Path matcher instance\n * @returns object\n */\nfunction compress(arr, options, matcher) {\n let text;\n const compressedObj = {}; //This is intended to be a plain object\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n\n // Push current property to matcher WITH RAW ATTRIBUTES (no prefix)\n if (property !== undefined && property !== options.textNodeName) {\n const rawAttrs = stripAttributePrefix(\n tagObj[\":@\"] || {},\n options.attributeNamePrefix\n );\n matcher.push(property, rawAttrs);\n }\n\n if (property === options.textNodeName) {\n if (text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === undefined) {\n continue;\n } else if (tagObj[property]) {\n\n let val = compress(tagObj[property], options, matcher);\n const isLeaf = isLeafTag(val, options);\n\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], matcher, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if (tagObj[METADATA_SYMBOL] !== undefined && typeof val === \"object\" && val !== null) {\n val[METADATA_SYMBOL] = tagObj[METADATA_SYMBOL]; // copy over metadata\n }\n\n\n if (compressedObj[property] !== undefined && Object.prototype.hasOwnProperty.call(compressedObj, property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n\n // Pass jPath string or matcher based on options.jPath setting\n const jPathOrMatcher = options.jPath ? matcher.toString() : matcher;\n if (options.isArray(property, jPathOrMatcher, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n\n // Pop property from matcher after processing\n if (property !== undefined && property !== options.textNodeName) {\n matcher.pop();\n }\n }\n\n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== undefined) compressedObj[options.textNodeName] = text;\n\n\n return compressedObj;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, matcher, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i]; // This is the PREFIXED name (e.g., \"@_class\")\n\n // Strip prefix for matcher path (for isArray callback)\n const rawAttrName = atrrName.startsWith(options.attributeNamePrefix)\n ? atrrName.substring(options.attributeNamePrefix.length)\n : atrrName;\n\n // For attributes, we need to create a temporary path\n // Pass jPath string or matcher based on options.jPath setting\n const jPathOrMatcher = options.jPath\n ? matcher.toString() + \".\" + rawAttrName\n : matcher;\n\n if (options.isArray(atrrName, jPathOrMatcher, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n\n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}","import { buildOptions } from './OptionsBuilder.js';\nimport OrderedObjParser from './OrderedObjParser.js';\nimport prettify from './node2json.js';\nimport { validate } from \"../validator.js\";\nimport XmlNode from './xmlNode.js';\n\nexport default class XMLParser {\n\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Uint8Array} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData !== \"string\" && xmlData.toString) {\n xmlData = xmlData.toString();\n } else if (typeof xmlData !== \"string\") {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n\n if (validationOption) {\n if (validationOption === true) validationOption = {}; //validate with default options\n\n const result = validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`)\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options, orderedObjParser.matcher);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\")\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\")\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n\n /**\n * Returns a Symbol that can be used to access the metadata\n * property on a node.\n * \n * If Symbol is not available in the environment, an ordinary property is used\n * and the name of the property is here returned.\n * \n * The XMLMetaData property is only present when `captureMetaData`\n * is true in the options.\n */\n static getMetaDataSymbol() {\n return XmlNode.getMetaDataSymbol();\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport {\n DefaultPageReader,\n DefaultPageWriter,\n} from \"@xwiki/cristal-page-default\";\nimport { DefaultPageData } from \"@xwiki/platform-api\";\nimport { AbstractStorage } from \"@xwiki/platform-backend-api\";\nimport { DocumentReference, SpaceReference } from \"@xwiki/platform-model-api\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { inject, injectable } from \"inversify\";\nimport type { AlertsServiceProvider } from \"@xwiki/cristal-alerts-api\";\nimport type { HTTPHeadersProvider } from \"@xwiki/cristal-nextcloud-http-headers\";\nimport type {\n AttachmentsData,\n CristalApp,\n Logger,\n PageAttachment,\n PageData,\n} from \"@xwiki/platform-api\";\nimport type {\n AuthenticationManagerProvider,\n UserDetails,\n} from \"@xwiki/platform-authentication-api\";\nimport type { DocumentService } from \"@xwiki/platform-document-api\";\n\n/**\n * Access Nextcloud storage through http.\n * Read and write files to a ~/.cristal directory where all persistent data is\n * stored, unless the \"storageRoot\" configuration option has been set to\n * another directory.\n *\n * @since 0.9\n * @beta\n */\n@injectable()\nexport class NextcloudStorage extends AbstractStorage {\n private readonly ATTACHMENTS = \"attachments\";\n private initBaseContentCalled: boolean = false;\n private authenticatedHTTPHeadersProvider: HTTPHeadersProvider | undefined;\n private documentService: DocumentService | undefined;\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"AuthenticationManagerProvider\")\n private authenticationManagerProvider: AuthenticationManagerProvider,\n @inject(\"AlertsServiceProvider\")\n private readonly alertsServiceProvider: AlertsServiceProvider,\n @inject(\"CristalApp\") private readonly cristalApp: CristalApp,\n ) {\n super(logger, \"storage.components.nextcloudStorage\");\n }\n\n async getEditField(): Promise<string> {\n // TODO: unsupported\n return \"\";\n }\n\n getImageURL(): string {\n // TODO: unsupported\n return \"\";\n }\n\n // We inject a specific HTTPHeadersProvider that exists only for Nextcloud.\n // However, all storages are always resolved no matter the current\n // configuration, so this injection needs to be lazy.\n // We do not have a way to lazily inject the HTTPHeadersProvider,\n // so we rely on this helper instead accessing the container directly.\n private async getAuthenticatedHTTPHeaders(): Promise<Headers> {\n if (!this.authenticatedHTTPHeadersProvider) {\n this.authenticatedHTTPHeadersProvider = this.cristalApp\n .getContainer()\n .get(\"HTTPHeadersProvider\", { name: \"Nextcloud/Authenticated\" });\n }\n return await this.authenticatedHTTPHeadersProvider!.getHeaders();\n }\n\n // The DocumentService cannot be injected before the storage is fully\n // initialized. We do not have a way to lazily inject it so we rely on this\n // helper instead.\n private getDocumentService(): DocumentService {\n if (!this.documentService) {\n this.documentService = this.cristalApp\n .getContainer()\n .get(\"DocumentService\")!;\n }\n return this.documentService;\n }\n\n private getRootUrl(username: string) {\n const config = this.getWikiConfig();\n return `${config.baseRestURL}${\n config.storageRoot ?? `/files/${username}/.cristal`\n }`.replace(\"${username}\", username);\n }\n\n // eslint-disable-next-line max-statements\n async getPageContent(page: string): Promise<PageData | undefined> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n const pageData = new DefaultPageData();\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n pageData.html = \"Not logged-in.\";\n pageData.canEdit = false;\n return pageData;\n }\n\n await this.initBaseContent(username!);\n try {\n const response = await fetch(`${this.getRootUrl(username)}/${page}.md`, {\n method: \"GET\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n });\n\n if (response.status >= 200 && response.status < 300) {\n const { lastModificationDate, lastAuthor } =\n await this.getLastEditDetails(page, username!);\n\n const parsedContent = new DefaultPageReader().readPage(\n await response.text(),\n );\n\n // A PageData instance must be returned as toObject is expected to be\n // available to serialize page data. For instance, for the offline\n // storage\n const pageData = new DefaultPageData();\n pageData.source = parsedContent.content;\n pageData.name = parsedContent.name as string;\n pageData.headline = parsedContent.name as string;\n pageData.headlineRaw = parsedContent.name as string;\n pageData.syntax = parsedContent.syntax as string;\n pageData.lastAuthor = lastAuthor;\n pageData.lastModificationDate = lastModificationDate;\n pageData.canEdit = true;\n return pageData;\n } else {\n return undefined;\n }\n } catch (e) {\n console.error(\"Unable to get page content\", e);\n return undefined;\n }\n }\n\n private async getLastEditDetails(\n page: string,\n username: string,\n ): Promise<{ lastModificationDate?: Date; lastAuthor?: UserDetails }> {\n let lastModificationDate: Date | undefined;\n let lastAuthor: UserDetails | undefined;\n const response = await fetch(`${this.getRootUrl(username!)}/${page}.md`, {\n body: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <d:propfind xmlns:d=\"DAV:\">\n <d:prop xmlns:oc=\"http://owncloud.org/ns\">\n <d:getlastmodified />\n <oc:owner-id />\n <oc:owner-display-name />\n </d:prop>\n </d:propfind>`,\n method: \"PROPFIND\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n });\n if (response.status >= 200 && response.status < 300) {\n // window.DOMParser can't be used because it is not available in web\n // workers.\n const prop = new XMLParser().parse(await response.text())[\n \"d:multistatus\"\n ][\"d:response\"][\"d:propstat\"][\"d:prop\"];\n const modified = prop[\"d:getlastmodified\"];\n if (modified) {\n lastModificationDate = new Date(Date.parse(modified));\n }\n lastAuthor = {\n username: prop[\"oc:owner-id\"],\n name: prop[\"oc:owner-display-name\"],\n };\n }\n\n return { lastModificationDate, lastAuthor };\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n async getAttachments(page: string): Promise<AttachmentsData | undefined> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n return undefined;\n }\n\n const response = await fetch(this.getAttachmentsBasePath(page, username!), {\n method: \"PROPFIND\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n });\n\n if (response.status >= 200 && response.status < 300) {\n const text = await response.text();\n const data = new window.DOMParser().parseFromString(text, \"text/xml\");\n\n const responses = data.getElementsByTagName(\"d:response\");\n const attachments: PageAttachment[] = [];\n for (let i = 0; i < responses.length; i++) {\n const dresponse = responses[i];\n if (dresponse.getElementsByTagName(\"d:getcontenttype\").length > 0) {\n attachments.push(this.parseAttachment(dresponse));\n }\n }\n\n return { attachments };\n } else {\n return undefined;\n }\n }\n\n async getAttachment(\n page: string,\n name: string,\n ): Promise<PageAttachment | undefined> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n return undefined;\n }\n\n const propfindResponse = await fetch(\n this.getAttachmentBasePath(name, page, username!),\n {\n method: \"PROPFIND\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n },\n );\n\n if (propfindResponse.status >= 200 && propfindResponse.status < 300) {\n const text = await propfindResponse.text();\n const data = new window.DOMParser().parseFromString(text, \"text/xml\");\n const response = data.getElementsByTagName(\"d:response\")[0];\n return this.parseAttachment(response);\n } else {\n return undefined;\n }\n }\n\n private getAttachmentsBasePath(page: string, username: string) {\n const metaDirPath = this.convertToMetaSegments(page).join(\"/\");\n return `${this.getRootUrl(username!)}/${metaDirPath}/${this.ATTACHMENTS}`;\n }\n\n private getAttachmentBasePath(name: string, page: string, username: string) {\n return `${this.getAttachmentsBasePath(page, username)}/${name}`;\n }\n\n async save(page: string, title: string, content: string): Promise<unknown> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n return;\n }\n\n // Splits the page reference along the / and create intermediate directories\n // for each segment, expect the last one where the content and title are\n // persisted.\n const newDirectories = page.split(\"/\");\n\n // Create the root directory. We also need to create all intermediate directories.\n const rootURL = this.getRootUrl(username!);\n await this.createIntermediateDirectories(\n rootURL,\n newDirectories.slice(0, newDirectories.length - 1),\n );\n\n const body = new DefaultPageWriter().writePage({\n content,\n name: title,\n syntax: \"markdown/1.2\",\n });\n await fetch(`${rootURL}/${newDirectories.join(\"/\")}.md`, {\n method: \"PUT\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n body,\n });\n\n return;\n }\n\n private convertToMetaSegments(page: string) {\n const directories = page.split(\"/\");\n return [\n ...directories.slice(0, directories.length - 1),\n `.${directories[directories.length - 1]}`,\n ];\n }\n\n private async createIntermediateDirectories(\n rootURL: string,\n directories: string[],\n ) {\n await this.createDirectory(rootURL);\n\n for (let i = 0; i < directories.length; i++) {\n // The intermediate directories must exist for the target file to be\n // accepted by webdav.\n await this.createDirectory(\n `${rootURL}/${directories.slice(0, i + 1).join(\"/\")}`,\n );\n }\n }\n\n async saveAttachments(\n page: string,\n files: File[],\n ): Promise<undefined | (undefined | string)[]> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n this.alertsServiceProvider\n .get()\n .error(\n `Could not save attachments for page ${page}, the user is not properly logged-in.`,\n );\n return undefined;\n }\n\n return Promise.all(\n files.map((file) => this.saveAttachment(page, file, username!)),\n );\n }\n\n private async saveAttachment(\n page: string,\n file: File,\n username: string,\n ): Promise<string | undefined> {\n const directories = this.convertToMetaSegments(page);\n\n // Create the root directory. We also need to create all intermediate directories.\n const rootURL = this.getRootUrl(username!);\n await this.createIntermediateDirectories(rootURL, [\n ...directories,\n this.ATTACHMENTS,\n ]);\n\n const fileURL =\n this.getAttachmentsBasePath(page, username) + \"/\" + file.name;\n await fetch(fileURL, {\n method: \"PUT\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n body: file,\n });\n return;\n }\n\n getPageFromViewURL(): string | null {\n return null;\n }\n\n getPageRestURL(): string {\n return \"\";\n }\n\n async getPanelContent(): Promise<PageData> {\n // TODO: unsupported\n return new DefaultPageData();\n }\n\n async delete(page: string): Promise<{ success: boolean; error?: string }> {\n const username = (\n await this.authenticationManagerProvider.get()?.getUserDetails()\n )?.username;\n if (!username) {\n return { success: false, error: \"Not logged-in.\" };\n }\n\n const rootURL = this.getRootUrl(username!);\n const results = await Promise.all([\n await this.deletePageFile(rootURL, page),\n await this.deletePageFolder(rootURL, page),\n ]);\n\n const errors = results\n .filter((it) => !it.success)\n .map((it) => it.error)\n .filter((it) => it !== undefined);\n if (errors.length > 0) {\n return { success: false, error: errors.join(\", \") };\n } else {\n return { success: true };\n }\n }\n\n private async deletePageFile(rootURL: string, page: string) {\n return await fetch(`${rootURL}/${page}.md`, {\n method: \"DELETE\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n }).then(async (response) => {\n if (response.ok) {\n return { success: true };\n } else {\n return { success: false, error: await response.text() };\n }\n });\n }\n\n private async deletePageFolder(rootURL: string, page: string) {\n return await fetch(\n `${rootURL}/${this.convertToMetaSegments(page).join(\"/\")}`,\n {\n method: \"DELETE\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n },\n ).then(async (response) => {\n // A 404 is acceptable because the metadata folder might not exist.\n // If the page actually does not exist, this should be raised by\n // deletePageFile() instead.\n if (response.ok || response.status == 404) {\n return { success: true };\n } else {\n return { success: false, error: await response.text() };\n }\n });\n }\n\n async move(): Promise<{ success: boolean; error?: string }> {\n // TODO: to be implemented in CRISTAL-435.\n throw new Error(\"Move not supported\");\n }\n\n async isStorageReady(): Promise<boolean> {\n return true;\n }\n\n private async createDirectory(currentTarget: string) {\n await fetch(currentTarget, {\n method: \"MKCOL\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n });\n }\n\n private parseAttachment(element: Element): PageAttachment {\n const id = element.getElementsByTagName(\"d:href\")[0].textContent!;\n const mimetype =\n element.getElementsByTagName(\"d:getcontenttype\")[0].textContent!;\n const size = parseInt(\n element.getElementsByTagName(\"d:getcontentlength\")[0].textContent!,\n );\n const date = Date.parse(\n element.getElementsByTagName(\"d:getlastmodified\")[0].textContent!,\n );\n const segments = id.split(\"/\");\n const href = `${this.getWikiConfig().baseURL}${id}`;\n const reference = segments[segments.length - 1];\n\n return {\n mimetype,\n reference,\n id,\n href,\n size,\n date: new Date(date),\n // For now nextcloud does not allow for shared Cristal storage, so all files are owned by the current user\n author: undefined,\n };\n }\n\n private async initBaseContent(username: string) {\n if (!this.initBaseContentCalled) {\n this.initBaseContentCalled = true;\n try {\n const res = await fetch(this.getRootUrl(username!), {\n method: \"GET\",\n headers: await this.getAuthenticatedHTTPHeaders(),\n });\n // if .cristal does not exist, initialize it with a default content.\n if (res.status === 404) {\n await this.save(\n \"home\",\n \"\",\n \"# Welcome\\n\" +\n \"\\n\" +\n \"This is a new **Cristal** wiki.\\n\" +\n \"\\n\" +\n \"You can use it to take your *own* notes.\\n\" +\n \"\\n\" +\n \"Enjoy!\",\n );\n await this.getDocumentService().notifyDocumentChange(\n \"update\",\n new DocumentReference(\"home\", new SpaceReference()),\n );\n }\n } catch (e) {\n console.error(\"Failed to initialize Cristal default content\", e);\n }\n }\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { NextcloudWikiConfig } from \"./NextcloudWikiConfig\";\nimport { NextcloudStorage } from \"./nextcloudStorage\";\nimport { whenNamedOrDefault } from \"@xwiki/cristal-utils-inversify\";\nimport { Container } from \"inversify\";\nimport type { Storage, WikiConfig } from \"@xwiki/platform-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<WikiConfig>(\"WikiConfig\")\n .to(NextcloudWikiConfig)\n .when(whenNamedOrDefault(\"Nextcloud\"));\n container\n .bind<Storage>(\"Storage\")\n .to(NextcloudStorage)\n .whenNamed(\"Nextcloud\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultWikiConfig } from \"@xwiki/platform-api\";\nimport { inject, injectable, named } from \"inversify\";\nimport type { CristalApp, Logger, Storage } from \"@xwiki/platform-api\";\n\n@injectable()\nexport class XWikiWikiConfig extends DefaultWikiConfig {\n override storage: Storage;\n override cristal: CristalApp;\n\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"Storage\") @named(\"XWiki\") storage: Storage,\n @inject(\"CristalApp\") cristal: CristalApp,\n ) {\n super(logger);\n this.cristal = cristal;\n this.storage = storage;\n this.storage.setWikiConfig(this);\n if (this.homePage == \"\") {\n this.homePage = \"Main.WebHome\";\n }\n }\n\n override isSupported(format: string): boolean {\n return format == \"html\" || format == \"jsonld\";\n }\n\n override defaultPageName(): string {\n return \"Main.WebHome\";\n }\n\n override getType(): string {\n return \"XWiki\";\n }\n\n override getNewPageDefaultName(): string {\n return \"NewPage\";\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport type { WikiConfig } from \"@xwiki/platform-api\";\n\n/**\n * Returns URL to XWiki spaces rest API for a given document.\n *\n * @param wikiConfig - the current wiki configuration\n * @param documentId - the id of the document\n * @returns the crafted URL\n * @since 0.9\n * @beta\n */\nexport function getRestSpacesApiUrl(\n wikiConfig: WikiConfig,\n documentId: string,\n): string {\n const splittedDocumentId = documentId.split(\":\");\n const wiki = splittedDocumentId.length > 1 ? splittedDocumentId[0] : \"xwiki\";\n const doc =\n splittedDocumentId.length > 1\n ? splittedDocumentId[1]\n : splittedDocumentId[0];\n return `${wikiConfig.baseURL}/rest/wikis/${wiki}/spaces/${encodeURIComponent(\n doc,\n )\n .replace(/((?:%5C%5C)*)%5C\\./g, \"$1%2E\") // Unescape dots in identifiers\n .replace(/%5C%5C/g, \"%5C\") // Unescape backslashes in identifiers\n .replace(/\\.(?=.*\\.)/g, \"/spaces/\") // Transform separators to spaces endpoints\n .replace(/\\./, \"/pages/\")}`; // Transform last separator to pages endpoint\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { getRestSpacesApiUrl } from \"@xwiki/cristal-xwiki-utils\";\nimport { DefaultPageData, JSONLDDocument } from \"@xwiki/platform-api\";\nimport { AbstractStorage } from \"@xwiki/platform-backend-api\";\nimport { inject, injectable } from \"inversify\";\nimport type { AlertsServiceProvider } from \"@xwiki/cristal-alerts-api\";\nimport type {\n AttachmentsData,\n Document,\n Logger,\n PageAttachment,\n PageData,\n} from \"@xwiki/platform-api\";\nimport type { AuthenticationManagerProvider } from \"@xwiki/platform-authentication-api\";\n\n/**\n * The type of individual attachments.\n * @since 0.21\n * @beta\n */\ntype Attachment = {\n id: string;\n name: string;\n size: number;\n longSize: number;\n version: string;\n pageId: string;\n pageVersion: string;\n mimeType: string;\n author: string;\n authorName: string | null;\n date: number;\n xwikiRelativeUrl: string;\n xwikiAbsoluteUrl: string;\n // TODO: add hierarchy\n};\n\n/**\n * The attachments rest response type\n * @since 0.9\n * @beta\n */\ntype AttachmentsRest = {\n attachments: Attachment[];\n};\n\n@injectable()\nexport class XWikiStorage extends AbstractStorage {\n constructor(\n @inject(\"Logger\") logger: Logger,\n @inject(\"AuthenticationManagerProvider\")\n private authenticationManagerProvider: AuthenticationManagerProvider,\n @inject(\"AlertsServiceProvider\")\n private readonly alertsServiceProvider: AlertsServiceProvider,\n ) {\n super(logger, \"storage.components.xwikiStorage\");\n }\n\n public async isStorageReady(): Promise<boolean> {\n return true;\n }\n\n getPageRestURL(page: string, syntax: string, revision?: string): string {\n this.logger?.debug(\"XWiki Loading page\", page);\n const url = new URL(\n this.buildPageRestBaseURL(page, [\"rest\", \"cristal\", \"wikis\", \"xwiki\"]),\n );\n const searchParams = new URLSearchParams([[\"format\", syntax]]);\n if (revision) {\n searchParams.append(\"revision\", revision);\n }\n url.search = searchParams.toString();\n return url.toString();\n }\n\n getPageFromViewURL(url: string): string | null {\n let page: string | null;\n if (url.startsWith(this.wikiConfig.baseURL)) {\n const uri = url.replace(this.wikiConfig.baseURL, \"\");\n page = uri\n .replace(\"/bin\", \"\")\n .replace(\"/view/\", \"\")\n .replaceAll(\"%5C\", \"%5C%5C\") // Escape backslashes in identifiers\n .replaceAll(\".\", \"%5C.\") // Escape dots in identifiers\n .replaceAll(\"/\", \".\"); // Convert separators from slashes to dots\n if (page.endsWith(\".\")) {\n page += \"WebHome\";\n }\n page = decodeURIComponent(page);\n } else {\n page = null;\n }\n return page;\n }\n\n getImageURL(page: string, image: string): string {\n if (page == \"\") {\n page = \"Main.WebHome\";\n }\n const imageURL =\n this.wikiConfig.baseURL +\n \"/bin/download/\" +\n page.replace(\".\", \"/\") +\n \"/\" +\n image;\n this.logger?.debug(\"final image url \", imageURL);\n return imageURL;\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n async getPageContent(\n page: string,\n syntax: string,\n revision?: string,\n ): Promise<PageData | undefined> {\n this.logger?.debug(\"XWiki Loading page\", page);\n if (page == \"\") {\n page = \"Main.WebHome\";\n }\n\n let url;\n if (revision) {\n // We don't need to check rights for older revisions, they are read-only.\n // If we can fetch them successfully that's enough to display them.\n url = new URL(\n `${getRestSpacesApiUrl(this.wikiConfig, page)}/history/${revision}`,\n );\n } else {\n url = new URL(getRestSpacesApiUrl(this.wikiConfig, page));\n url.search = new URLSearchParams([\n [\"checkRight\", \"edit\"],\n [\"supportedSyntax\", \"markdown/1.2\"],\n ]).toString();\n }\n this.logger?.debug(\"XWiki Loading url\", url);\n const response = await fetch(url, {\n cache: \"no-store\",\n headers: {\n Accept: \"application/json\",\n ...(await this.getCredentials()),\n },\n });\n\n let json;\n try {\n json = await response.json();\n if (!response.ok) {\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n this.alertsServiceProvider\n .get()\n .error(`Could not load page ${page}. Reason: ${json.message}`);\n return undefined;\n }\n } catch {\n // Return undefined in case of missing page.\n return undefined;\n }\n\n const pageContentData = new DefaultPageData();\n pageContentData.syntax = json.syntax;\n pageContentData.source = json.content;\n pageContentData.html = json.renderedContent;\n pageContentData.version = `${json.majorVersion}.${json.minorVersion}`;\n pageContentData.headlineRaw = json.rawTitle;\n pageContentData.headline = json.title;\n\n const pageName = json.hierarchy.items.pop().name;\n pageContentData.name =\n pageName != \"WebHome\" ? pageName : json.hierarchy.items.pop().name;\n\n pageContentData.lastModificationDate = new Date(json.modified);\n pageContentData.lastAuthor = { name: json.author };\n pageContentData.canEdit =\n json.rights?.find(\n (right: { value: boolean; name: string }) => right.name == \"edit\",\n )?.value ?? false;\n\n pageContentData.document = new JSONLDDocument({\n encodingFormat: pageContentData.syntax,\n name: pageContentData.name,\n identifier: json.fullName,\n headline: pageContentData.headline,\n headlineRaw: pageContentData.headlineRaw,\n text: pageContentData.source,\n html: pageContentData.html,\n });\n\n return pageContentData;\n }\n\n async getAttachments(page: string): Promise<AttachmentsData | undefined> {\n const response = await fetch(this.buildAttachmentsURL(page), {\n headers: { Accept: \"application/json\", ...(await this.getCredentials()) },\n });\n const json: AttachmentsRest = await response.json();\n const attachments = json.attachments.map(\n ({ id, name, mimeType, xwikiAbsoluteUrl, size, date, author }) => {\n return {\n id,\n reference: name,\n mimetype: mimeType,\n href: xwikiAbsoluteUrl,\n size,\n date: new Date(date),\n author,\n };\n },\n );\n // TODO: It's currently not possible to get the attachment count from\n // XWiki's rest endpoints without asking for the full list of attachments\n // of a page (see XWIKI-22297).\n return { attachments };\n }\n\n async getAttachment(\n page: string,\n name: string,\n ): Promise<PageAttachment | undefined> {\n const attachments = await this.getAttachments(page);\n if (attachments) {\n return attachments.attachments.filter((a) => a.reference == name)[0];\n }\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n async getPanelContent(panel: string, contextPage: string): Promise<PageData> {\n const url =\n this.wikiConfig.baseURL +\n \"/rest/cristal/panel?media=json\" +\n \"&page=\" +\n contextPage +\n \"&panel=\" +\n panel;\n this.logger?.debug(\"XWiki Loading url\", url);\n const response = await fetch(url, { cache: \"no-store\" });\n const json = await response.json();\n const panelContentData = new DefaultPageData();\n panelContentData.source = json.source;\n panelContentData.syntax = \"xwiki\";\n panelContentData.html = json.content;\n panelContentData.css = json.css;\n panelContentData.js = json.js;\n return panelContentData;\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n async getEditField(document: Document, fieldName: string): Promise<string> {\n // http://localhost:15680/xwiki/bin/get/Blog/BlogIntroduction?xpage=display&mode=edit&property=Blog.BlogPostClass.category\n // http://localhost:15680/xwiki/bin/get/Help/Applications/Movies/Modern%20Times?xpage=display&mode=edit&property=Help.Applications.Movies.Code.MoviesClass%5B0%5D.staticList1&type=object&language=\n //\n try {\n // TODO get rid of any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fieldMapping: any = document.get(\"xwikiMapping\")[fieldName];\n let type = fieldMapping[\"type\"];\n let xwikiFieldName = fieldMapping[\"fieldName\"];\n if (type == null) {\n type = \"document\";\n }\n if (xwikiFieldName == null) {\n xwikiFieldName = fieldName;\n }\n const url =\n this.wikiConfig.baseURL +\n \"/bin/get/\" +\n document.getIdentifier().replaceAll(\".\", \"/\") +\n \"?xpage=display&mode=edit&type=\" +\n type +\n \"&property=\" +\n document.get(\"className\") +\n \".\" +\n xwikiFieldName;\n this.logger?.debug(\"XWiki Loading Field url\", url);\n const response = await fetch(url, { cache: \"no-store\" });\n return await response.text();\n } catch (e) {\n this.logger?.error(\n \"Exception looking for edit field for field\",\n fieldName,\n e,\n );\n return \"\";\n }\n }\n\n async save(page: string, title: string, content: string): Promise<unknown> {\n const url = this.buildPageRestBaseURL(page, [\"rest\", \"wikis\", \"xwiki\"]);\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(await this.getCredentials()),\n },\n // TODO: the syntax provided by the save is ignored and the content is always saved as markdown.\n body: JSON.stringify({ content, title, syntax: \"markdown/1.2\" }),\n });\n if (!response.ok) {\n const errorMessage = await response.text();\n // TODO: Fix CRISTAL-383 (Error messages in Storages are not translated)\n this.alertsServiceProvider\n .get()\n .error(`Could not save page ${page}. Reason: ${errorMessage}`);\n // We need to throw an error to notify the editor that the save failed.\n throw new Error(errorMessage);\n }\n\n return;\n }\n\n async saveAttachments(\n page: string,\n files: File[],\n ): Promise<undefined | (undefined | string)[]> {\n await Promise.all(files.map((file) => this.saveAttachment(page, file)));\n return undefined;\n }\n\n async saveAttachment(page: string, file: File): Promise<unknown> {\n const response = await fetch(\n `${this.buildAttachmentsURL(page)}/${file.name}`,\n {\n method: \"PUT\",\n body: file,\n headers: {\n ...(await this.getCredentials()),\n \"Content-Type\": file.type,\n },\n },\n );\n if (!response.ok) {\n // TODO: make translatable and adapt technical error messages from the backend to human readable errors.\n throw new Error(\n `Failed to upload the attachment. Reason: [${response.statusText}]`,\n );\n }\n return;\n }\n\n async delete(page: string): Promise<{ success: boolean; error?: string }> {\n const url = this.buildPageRestBaseURL(page, [\"rest\", \"wikis\", \"xwiki\"]);\n\n const success = await fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(await this.getCredentials()),\n },\n }).then(async (response) => {\n if (response.ok) {\n return { success: true };\n } else {\n return { success: false, error: await response.text() };\n }\n });\n\n return success;\n }\n\n async move(): Promise<{ success: boolean; error?: string }> {\n // TODO: to be implemented in CRISTAL-434.\n throw new Error(\"Move not supported\");\n }\n\n private async getCredentials(): Promise<{ Authorization?: string }> {\n const authorizationHeader = await this.authenticationManagerProvider\n .get()\n ?.getAuthorizationHeader();\n const headers: { Authorization?: string } = {};\n if (authorizationHeader) {\n headers[\"Authorization\"] = authorizationHeader;\n }\n return headers;\n }\n\n private buildPageRestBaseURL(page: string, segments: string[]) {\n const url = this.wikiConfig.baseURL;\n // We split around dots that are not escaped.\n // (i.e., not preceded by an odd number of backslashes)\n const referenceParts = page.split(/(?<=(?<!\\\\)(?:\\\\\\\\)*)\\./);\n for (let i = 0; i < referenceParts.length; i++) {\n const segment = i < referenceParts.length - 1 ? \"spaces\" : \"pages\";\n segments.push(segment);\n // We unescape previously escaped dots, if any.\n segments.push(referenceParts[i].replace(/\\\\\\./g, \".\"));\n }\n\n return `${url}/${segments.join(\"/\")}`;\n }\n\n private buildAttachmentsURL(page: string) {\n return `${getRestSpacesApiUrl(this.wikiConfig, page)}/attachments`;\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { XWikiWikiConfig } from \"./XWikiWikiConfig\";\nimport { XWikiStorage } from \"./xwikiStorage\";\nimport { whenNamedOrDefault } from \"@xwiki/cristal-utils-inversify\";\nimport { Container } from \"inversify\";\nimport type { Storage, WikiConfig } from \"@xwiki/platform-api\";\n\n/**\n * @beta\n */\nexport class ComponentInit {\n constructor(container: Container) {\n container\n .bind<WikiConfig>(\"WikiConfig\")\n .to(XWikiWikiConfig)\n .when(whenNamedOrDefault(\"XWiki\"));\n container.bind<Storage>(\"Storage\").to(XWikiStorage).whenNamed(\"XWiki\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport \"reflect-metadata\";\nimport { injectable } from \"inversify\";\nimport type { CristalComponent } from \"../api/cristalComponent\";\n\n/**\n * @since 0.1\n * @beta\n */\n@injectable()\nexport class DefaultComponent implements CristalComponent {\n public name: string;\n public hint: string;\n public priority: number;\n public singleton: boolean;\n\n constructor() {\n this.name = \"component.name\";\n this.hint = \"default\";\n this.priority = 1000;\n this.singleton = false;\n }\n\n getName(): string {\n return this.name;\n }\n\n getHint(): string {\n return this.hint;\n }\n getPriority(): number {\n return this.priority;\n }\n isSingleton(): boolean {\n return this.singleton;\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport type { ExtensionConfig } from \"../api/extensionConfig\";\n\n/**\n * @since 0.1\n * @beta\n */\nexport class DefaultExtensionConfig implements ExtensionConfig {\n name: string;\n entryFile: string | null;\n staticModule: boolean | false;\n\n constructor(\n name: string,\n entryFile: string | null,\n staticModule: boolean | false,\n ) {\n this.name = name;\n this.entryFile = entryFile;\n this.staticModule = staticModule;\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport \"reflect-metadata\";\nimport { DefaultComponent } from \"./defaultComponent\";\nimport { DefaultExtensionConfig } from \"./defaultExtensionConfig\";\nimport { inject, injectable } from \"inversify\";\nimport type { ExtensionConfig } from \"../api/extensionConfig\";\nimport type { ExtensionManager } from \"../api/extensionManager\";\nimport type { Logger } from \"@xwiki/platform-api\";\nimport type { Container } from \"inversify\";\n\n/**\n * @since 0.1\n * @beta\n */\n@injectable()\nexport class DefaultExtensionManager\n extends DefaultComponent\n implements ExtensionManager\n{\n protected remoteExtensions: Map<string, ExtensionConfig> = new Map<\n string,\n ExtensionConfig\n >();\n protected remoteExtensionDefaultURL = \"/apps/\";\n protected remoteExtensionDefaultEntryFile = \"main.bundle.js\";\n\n public logger: Logger;\n\n constructor(@inject(\"Logger\") logger: Logger) {\n super();\n this.logger = logger;\n this.logger.setModule(\n \"extensionmanager.components.defaultExtensionManager\",\n );\n }\n\n addRemoteExtension(\n name: string,\n customEntryFile: string | null,\n staticModule: boolean | false,\n ): void {\n this.remoteExtensions.set(\n name,\n new DefaultExtensionConfig(name, customEntryFile, staticModule),\n );\n }\n\n setRemoteExtensionsConfig(\n remoteExtensionDefaultURL: string,\n remoteExtensionDefaultEntryFile: string,\n ): void {\n this.remoteExtensionDefaultURL = remoteExtensionDefaultURL;\n this.remoteExtensionDefaultEntryFile = remoteExtensionDefaultEntryFile;\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n async loadExtension(\n extensionName: string,\n container: Container,\n ): Promise<void> {\n try {\n const componentConfig = this.remoteExtensions.get(extensionName);\n const entryFile =\n componentConfig && componentConfig.entryFile\n ? componentConfig.entryFile\n : this.remoteExtensionDefaultEntryFile;\n const importPath =\n this.remoteExtensionDefaultURL + extensionName + \"/\" + entryFile;\n const cssImportPath =\n this.remoteExtensionDefaultURL + extensionName + \"/style.css\";\n\n this.logger?.debug(\"Ready to import \", importPath);\n // css loading\n try {\n const cssModule = await import(/* @vite-ignore */ cssImportPath, {\n assert: { type: \"text/css\" },\n });\n document.adoptedStyleSheets = [cssModule.default];\n } catch {\n // TODO handle exception or comment why can safely be ignored\n }\n // js loading\n const componentInitModule = await import(/* @vite-ignore */ importPath);\n if (componentInitModule != null) {\n this.logger?.debug(\n \"Found components Init for \",\n extensionName,\n componentInitModule,\n );\n const ComponentInit = componentInitModule.ComponentInit;\n new ComponentInit(container);\n this.logger?.debug(\"Succesfull components Init for \", extensionName);\n } else {\n this.logger?.debug(\"No components to load for \", extensionName);\n }\n return;\n } catch (e) {\n this.logger?.error(\n \"Exception while loading components from \",\n extensionName,\n e,\n );\n }\n }\n\n async loadExtensions(container: Container): Promise<void> {\n // loading component from App module\n for (const key of this.remoteExtensions.keys()) {\n await this.loadExtension(key, container);\n }\n return;\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport { DefaultExtensionManager } from \"./defaultExtensionManager\";\nimport type { ExtensionManager } from \"../api/extensionManager\";\nimport type { Logger } from \"@xwiki/platform-api\";\nimport type { Container } from \"inversify\";\n\n/**\n * @since 0.1\n * @beta\n */\nexport default class ComponentInit {\n logger: Logger;\n\n constructor(container: Container) {\n this.logger = container.get<Logger>(\"Logger\");\n this.logger.setModule(\"extensionmanager.components.componentsInit\");\n\n this.logger?.debug(\"Init Extension Manager components begin\");\n container\n .bind<ExtensionManager>(\"ExtensionManager\")\n .to(DefaultExtensionManager);\n this.logger?.debug(\"Init Extension Manager components end\");\n }\n}\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport ComponentInit from \"./componentsInit\";\nimport { DefaultLogger, DefaultLoggerConfig } from \"@xwiki/platform-api\";\nimport { Container } from \"inversify\";\nimport type { ExtensionManager } from \"../api/extensionManager\";\nimport type { Logger, LoggerConfig } from \"@xwiki/platform-api\";\n\n/**\n * @since 0.1\n * @beta\n */\nexport class CristalLoader {\n // @ts-expect-error logger can be temporarily undefined during class\n // initialization\n public logger: Logger;\n // @ts-expect-error container can be temporarily undefined during class\n // initialization\n public container: Container;\n public extensionList: Array<string>;\n\n public constructor(extensionList: Array<string>) {\n this.extensionList = extensionList;\n }\n public getLogger(module: string): Logger {\n let logger = this.container.get<Logger>(\"Logger\");\n if (!logger) {\n logger = new DefaultLogger();\n }\n logger.setModule(module);\n return logger;\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async loadExtensionManager(\n staticExtensionManager: boolean,\n ): Promise<void> {\n const extensionName = \"extension-manager\";\n const importPath = \"/apps/\" + extensionName + \"/main.bundle.dev.js\";\n try {\n if (staticExtensionManager) {\n // Static version with extension manager bundled in app package\n this.logger?.debug(\"Loading static extension Manager\");\n new ComponentInit(this.container);\n } else {\n // Dynamic version loading extension manager as an external library\n this.logger?.debug(\n \"Dynamic extension Manager. Ready to import \",\n importPath,\n );\n const componentInitModule = await import(/* @vite-ignore */ importPath);\n if (componentInitModule != null) {\n this.logger?.debug(\n \"Found components Init for \",\n extensionName,\n componentInitModule,\n );\n const ComponentInit = componentInitModule.ComponentInit;\n new ComponentInit(this.container);\n this.logger?.debug(\"Succesfull components Init for \", extensionName);\n } else {\n this.logger?.debug(\"No components to load for \", extensionName);\n }\n }\n } catch (e) {\n this.logger?.error(\n \"Exception while loading extension Manager from \",\n importPath,\n e,\n );\n }\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async loadExtensions(\n staticExtensionManager: boolean,\n staticBuild: boolean,\n ): Promise<ExtensionManager | null> {\n this.logger?.debug(\"Start app\");\n await this.loadExtensionManager(staticExtensionManager);\n\n const extensionManager =\n this.container.get<ExtensionManager>(\"ExtensionManager\");\n this.logger?.debug(\"Extension Manager is \", extensionManager);\n\n if (extensionManager != null) {\n if (!staticBuild) {\n extensionManager.setRemoteExtensionsConfig(\n \"/apps/\",\n \"main.bundle.dev.js\",\n );\n for (const extName in this.extensionList) {\n extensionManager.addRemoteExtension(extName, \"\", true);\n }\n\n // loading all extensions from other modules\n await extensionManager.loadExtensions(this.container);\n }\n this.logger?.debug(\"After extensions loading\");\n } else {\n this.logger?.debug(\"Could not start extension Manager\");\n }\n return extensionManager;\n }\n\n public initializeContainer(): void {\n this.container = new Container();\n\n // Register main CristalApp component\n this.container\n .bind<LoggerConfig>(\"LoggerConfig\")\n .to(DefaultLoggerConfig)\n .inSingletonScope();\n this.container.bind<Logger>(\"Logger\").to(DefaultLogger);\n\n const loggerConfig = this.container.get<LoggerConfig>(\"LoggerConfig\");\n if (loggerConfig) {\n loggerConfig.setDefaultLevel(\"debug\");\n }\n this.logger = this.getLogger(\"index.ts\");\n this.logger?.debug(\"Logging initialized\");\n }\n\n public getConfigFromPathName(pathname: string): string {\n let configName: string = \"\";\n\n if (pathname.startsWith(\"/\")) {\n const i1 = pathname.indexOf(\"/\", 1);\n if (i1 != -1) {\n configName = pathname.substring(1, i1);\n }\n }\n\n if (configName == null || configName == \"\") {\n configName = \"XWiki\";\n }\n\n return configName;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","/**\n * See the LICENSE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport \"reflect-metadata\";\nimport { WorkerCristalApp } from \"./workerCristalApp\";\nimport WorkerQueueWorker from \"./workerQueueWorker\";\nimport { ComponentInit as AlertsDefaultComponentInit } from \"@xwiki/cristal-alerts-default\";\nimport { ComponentInit as AuthenticationDefaultComponentInit } from \"@xwiki/cristal-authentication-default\";\nimport { ComponentInit as DexieBackendComponentInit } from \"@xwiki/cristal-backend-dexie\";\nimport { ComponentInit as GithubBackendComponentInit } from \"@xwiki/cristal-backend-github\";\nimport { ComponentInit as NextcloudBackendComponentInit } from \"@xwiki/cristal-backend-nextcloud\";\nimport { ComponentInit as XWikiBackendComponentInit } from \"@xwiki/cristal-backend-xwiki\";\nimport { CristalLoader } from \"@xwiki/cristal-extension-manager\";\nimport * as Comlink from \"comlink\";\nimport type { MyWorker, QueueWorker } from \"@xwiki/cristal-sharedworker-api\";\nimport type {\n CristalApp,\n WikiConfig,\n WrappingStorage,\n} from \"@xwiki/platform-api\";\nimport type {\n ConfigurationLoader,\n Configurations,\n} from \"@xwiki/platform-configuration-api\";\nimport type { Container } from \"inversify\";\n\nasync function loadConfigWeb() {\n const loadConfig: ConfigurationLoader = (\n await import(\"@xwiki/cristal-configuration-web\")\n ).loadConfig(\"/config.json\");\n return await loadConfig();\n}\n\n/**\n * Currently, the best know option is to search for a process value at runtime and to decide how to load the\n * configuration based on this information.\n */\nasync function loadConfig(): Promise<Configurations> {\n try {\n // @ts-expect-error process is not a known variable and might not be defined\n if (!process || !process.versions || !process.versions[\"electron\"]) {\n // Default configurations are loaded with Electron settings.\n return {};\n } else {\n return await loadConfigWeb();\n }\n } catch {\n return await loadConfigWeb();\n }\n}\n\nexport class Worker implements MyWorker {\n private currentNumber: number = 0;\n private queue: Array<string> = [];\n // @ts-expect-error container is temporarily undefined during class\n // initialization\n private container: Container;\n // @ts-expect-error cristal is temporarily undefined during class\n // initialization\n private cristal: CristalApp;\n // @ts-expect-error configMap is temporarily undefined during class\n // initialization\n private configMap: Map<string, object>;\n private initialized: boolean = false;\n // @ts-expect-error fct is temporarily undefined during class\n // initialization\n private fct: (a: string) => void;\n\n /*\n Start worker thread\n */\n public async start(): Promise<void> {\n console.log(\"Starting worker thread\");\n await this.initialize();\n while (true) {\n await this.sleep(1000);\n await this.checkQueue();\n }\n }\n\n public setPageLoadedCallback(fct: (a: string) => void): void {\n this.fct = fct;\n }\n\n public sleep(ms: number): Promise<unknown> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n public async checkQueue(): Promise<void> {\n // console.log(\"Checking queue\");\n const size = this.getQueueSize();\n // console.log(\"Current queue size is \", size, this.queue);\n if (size > 0) {\n if (this.initialized) {\n const page = this.queue.pop();\n if (page) {\n await this.handleQueueItem(page);\n }\n await this.checkQueue();\n } else {\n console.log(\n \"Worker cristal code not initialized yet. Cannot process queue items.\",\n );\n }\n }\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async handleQueueItem(page: string): Promise<void> {\n console.log(\"Handling queue item code ready to process\", page);\n\n try {\n let configName = null;\n let pageName = null;\n let type = null;\n const index1 = page.indexOf(\":\");\n const index2 = page.lastIndexOf(\"_\");\n if (index1 != -1 && index2 != -1) {\n configName = page.substring(0, index1);\n pageName = page.substring(index1 + 1, index2);\n type = page.substring(index2 + 1);\n\n const wikiConfig = this.getWikiConfig(configName);\n if (wikiConfig == undefined) {\n console.log(\"Could not find config for page\", page);\n } else {\n console.log(\"Updating page \", pageName, type);\n const storage = wikiConfig.storage as WrappingStorage;\n const result = await storage.updatePageContent(pageName, type);\n if (result) {\n console.log(\"Page updated. Calling back to main thread\");\n this.fct(page);\n }\n }\n } else {\n console.log(\"Could not process page\", page);\n }\n } catch (e) {\n console.log(\"Exception while trying to load\", page, e);\n }\n }\n\n public add(a: number): number {\n console.log(\"Worker in add\");\n this.currentNumber += a;\n return this.currentNumber;\n }\n\n public addToQueue(page: string): void {\n console.log(\"Worker in addToQueue\", page);\n if (!this.queue.includes(page)) {\n this.queue.push(page);\n }\n return;\n }\n\n public getQueueSize(): number {\n console.log(\"Worker in getQueueSize\");\n return this.queue.length;\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public getWikiConfig(configName: string): WikiConfig | undefined {\n const wikiConfigObject = this.configMap.get(configName);\n if (wikiConfigObject == null) {\n console.error(\"Failed to find wikiConfig for configName\", configName);\n return undefined;\n }\n const wikiConfigMap = new Map(Object.entries(wikiConfigObject));\n const configType = wikiConfigMap.get(\"configType\");\n console.log(\n \"Looking for wikiConfig for name\",\n configName,\n \"and type\",\n configType,\n );\n\n let wikiConfig;\n try {\n wikiConfig = this.container.get<WikiConfig>(\"WikiConfig\", {\n name: configType,\n });\n this.cristal.setWikiConfig(wikiConfig);\n wikiConfig.setConfigFromObject(wikiConfigObject);\n\n // Make sure we have initialized this config\n // This is necessary for offline mode\n wikiConfig.initialize();\n\n console.debug(\n \"Found wikiConfig for\",\n configName,\n \"and type\",\n configType,\n \":\",\n wikiConfig,\n );\n return wikiConfig;\n } catch (e) {\n console.error(\n \"Failed to find wikiConfig for name\",\n configName,\n \"and type\",\n configType,\n e,\n );\n return undefined;\n }\n }\n\n // TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n // eslint-disable-next-line max-statements\n public async initialize(): Promise<void> {\n console.log(\"Starting initialize\");\n const extensionList: Array<string> = [\"storage\"];\n const config = await loadConfig();\n this.configMap = new Map(Object.entries(config));\n console.log(\"Loaded json config\", this.configMap);\n const cristalLoader = new CristalLoader(extensionList);\n cristalLoader.initializeContainer();\n this.container = cristalLoader.container;\n console.log(\"Container status\", this.container);\n this.container\n .bind<CristalApp>(\"CristalApp\")\n .to(WorkerCristalApp)\n .inSingletonScope();\n this.container\n .bind<QueueWorker>(\"QueueWorker\")\n .to(WorkerQueueWorker)\n .inSingletonScope();\n this.cristal = this.container.get<CristalApp>(\"CristalApp\");\n this.cristal.setContainer(this.container);\n console.log(\"Container status\", this.container);\n // TODO: find a way to do this loading differently. Here we need to\n // explicitly depend on all required storage and this is not good.\n new DexieBackendComponentInit(cristalLoader.container);\n new GithubBackendComponentInit(cristalLoader.container);\n new NextcloudBackendComponentInit(cristalLoader.container);\n new XWikiBackendComponentInit(cristalLoader.container);\n new AuthenticationDefaultComponentInit(cristalLoader.container);\n new AlertsDefaultComponentInit(cristalLoader.container);\n console.log(\"Loading storage components\");\n this.initialized = true;\n console.log(\"Finished initialize\");\n }\n}\n\nconst worker = new Worker();\nworker.start();\n\nonconnect = (e) => {\n Comlink.expose(worker, e.ports[0]);\n};\nconsole.log(\"Worker code loaded\");\n"],"names":["Reflect","factory","root","global","sloppyModeThis","exporter","makeExporter","target","previous","key","value","functionThis","indirectEvalThis","hasOwn","supportsSymbol","toPrimitiveSymbol","iteratorSymbol","supportsCreate","supportsProto","downLevel","HashMap","MakeDictionary","map","functionPrototype","_Map","CreateMapPolyfill","_Set","CreateSetPolyfill","_WeakMap","CreateWeakMapPolyfill","registrySymbol","metadataRegistry","GetOrCreateMetadataRegistry","metadataProvider","CreateMetadataProvider","decorate","decorators","propertyKey","attributes","IsUndefined","IsArray","IsConstructor","DecorateConstructor","IsObject","IsNull","ToPropertyKey","DecorateProperty","metadata","metadataKey","metadataValue","decorator","IsPropertyKey","OrdinaryDefineOwnMetadata","defineMetadata","hasMetadata","OrdinaryHasMetadata","hasOwnMetadata","OrdinaryHasOwnMetadata","getMetadata","OrdinaryGetMetadata","getOwnMetadata","OrdinaryGetOwnMetadata","getMetadataKeys","OrdinaryMetadataKeys","getOwnMetadataKeys","OrdinaryOwnMetadataKeys","deleteMetadata","provider","GetMetadataProvider","i","decorated","descriptor","MetadataKey","O","P","parent","OrdinaryGetPrototypeOf","ToBoolean","MetadataValue","ownKeys","parentKeys","set","keys","_i","ownKeys_1","hasKey","_a","parentKeys_1","Type","x","IsSymbol","ToPrimitive","input","PreferredType","hint","exoticToPrim","GetMethod","result","OrdinaryToPrimitive","valueOf","toString_1","IsCallable","argument","ToString","SameValueZero","y","V","func","GetIterator","obj","method","iterator","IteratorValue","iterResult","IteratorStep","IteratorClose","f","proto","prototype","prototypeProto","constructor","CreateMetadataRegistry","fallback","CreateFallbackProvider","first","second","rest","targetProviderMap","registry","registerProvider","getProvider","setProvider","getProviderNoCache","next","providerMap","hasProvider","existingProvider","targetMetadata","OrdinaryDeleteMetadata","GetOrCreateMetadataMap","Create","createdTargetMetadata","metadataMap","keysObj","k","nextValue","e","reflect","metadataOwner","metadataPropertySet","registeredProvider","cacheSentinel","arraySentinel","MapIterator","values","selector","index","error","Map","size","getKey","getValue","getEntry","insert","_","Set","UUID_SIZE","rootKey","CreateUniqueKey","WeakMap","table","GetOrCreateWeakMapTable","CreateUUID","create","FillRandomBytes","buffer","GenRandomBytes","array","data","offset","byte","makeMap","str","val","EMPTY_OBJ","NOOP","extend","remove","arr","el","hasOwnProperty","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","toRawType","isPlainObject","isIntegerKey","hasChanged","oldValue","def","writable","_globalThis","getGlobalThis","activeEffectScope","EffectScope","detached","l","fn","currentEffectScope","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","raw","toReactive","shallowReadArray","toRaw","toWrapped","item","isReadonly","toReadonly","isReactive","arrayInstrumentations","args","thisArg","apply","v","searchProxy","separator","noTracking","reduce","comparer","self","wrapValue","iter","isShallow","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","wrapInitialAccumulator","acc","res","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","isRef","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","reactive","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","targetType","existingProxy","proxy","isProxy","markRaw","r","ref","createRef","RefImpl","useDirectValue","unref","ref2","toRefs","ret","propertyToRef","ObjectRefImpl","_object","_key","_defaultValue","newVal","nestedRef","GetterRefImpl","_getter","toRef","source","defaultValue","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPostFlushCbs","deduped","a","b","currentRenderingInstance","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","provides","hasInjectionContext","ssrContextKey","useSSRContext","doWatch","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","ctx","watchStopHandle","currentInstance","isPre","queuePostRenderEffect","isFirstRun","watch$1","queueEffectWithSuspense","suspense","g","registerGlobalSetter","setters","computed$1","t","n","fail","c","u","d","#n","#i","#r","#s","#a","#c","o","#d","#u","#l","#p","#f","#v","h","m","M","I","w","C","S","N","A","R","T","#h","#g","#m","j$2","j","#y","F","$","D","E","z","L","U","K","q","G","W","ne","ie","oe","re","se","ue","le","pe","fe","ve","he","ge","me","ye","Me","Ie","#M","be","we","Ce","Se","Ne","Re","Ae","xe","Pe","Te","je","Be","Fe","ke","$e","De","Ve","#I","#b","#w","#C","Oe","#S","#N","Ee","_e","qe","ze","Ke","Le","Ue","Ge","We","Xe","#P","#A","#x","#R","#T","He","Je","Qe","Ye","Ze","et","#j","#B","#F","#k","#$","#D","#V","#O","#E","#_","#z","#L","#U","#K","#q","#G","#W","#X","#H","#J","#Q","tt","nt","it","ot","rt","st","at","ct","dt","ut","lt","pt","ft","vt","ht","gt","mt","yt","Mt","At","It","Pt","bt","wt","Ct","St","Nt","xt","Rt","Tt","jt","Bt","Ft","kt","$t","Dt","Vt","Ot","B","#t","H","#o","_$1","X","J","Q","Y","Z","ee","WorkerCristalApp","container","wikiConfig","configs","configKey","wikiConfigObject","configType","configName","DefaultLogger","__decorateClass","injectable","WorkerQueueWorker","activePinia","setActivePinia","pinia","piniaSymbol","MutationType","noop","addSubscription","subscriptions","onCleanup","removeSubscription","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","assign","createOptionsStore","hot","state","actions","getters","initialState","store","setup","localState","computedGetters","name","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","action","wrappedAction","afterCallbackSet","onErrorCallbackSet","after","onError","partialStore","stopWatcher","setupStore","prop","actionValue","extender","defineStore","setupOptions","isSetupStore","useStore","hasContext","storeToRefs","rawStore","refs","alertsStore","message","foundAlert","DefaultAlertsService","DefaultAlertsServiceProvider","cristal","__decorateParam","ComponentInit$6","DefaultAuthenticationManagerProvider","cristalApp","resolvedType","ComponentInit$5","module","this","te","ae","ce","de","_t","Kt","Et","qt","Ut","Lt","zt","Wt","Yt","Qt","Gt","Xt","Ht","Jt","Zt","en","tn","nn","rn","on","an","un","sn","cn","mn","yn","vn","hn","pn","dn","ln","gn","bn","wn","_n","xn","kn","On","Sn","Pn","Kn","En","jn","An","Cn","Tn","In","qn","Dn","Bn","Rn","Fn","Mn","Nn","Ln","Un","Vn","zn","Wn","Yn","$n","Qn","Gn","Xn","Hn","Jn","Zn","er","tr","nr","rr","or","ir","ar","ur","sr","cr","fr","lr","hr","DexieSymbol","Dexie","_Dexie","liveQuery","mergeRanges","rangesOverlap","RangeSet","cmp","Entity","PropModification","replacePrefix","add","DexieYProvider","DexiePageStorage","wikiName","DexieOfflineStorage","logger","pageStorage","pageObject","pageData","DefaultPageData","page","WrappingOfflineStorage","offlineStorage","queueWorker","storage","config","syntax","url","image","_revision","requeue","currentPageData","panel","contextPage","document","fieldName","title","content","files","newPage","preserveChildren","ComponentInit$4","GitHubWikiConfig","DefaultWikiConfig","ALIAS","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","node","isDocument","isScalar","isSeq","isCollection","isNode","hasAnchor","BREAK","SKIP","REMOVE","visit","visitor","visitor_","initVisitor","visit_","path","ctrl","callVisitor","replaceNode","ci","ck","cv","escapeChars","escapeTagName","ch","Directives","yaml","tags","copy","line","parts","handle","prefix","version","isValid","verbatim","suffix","tag","doc","lines","tagEntries","tagNames","anchorIsValid","anchor","msg","anchorNames","anchors","findNewAnchor","exclude","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","applyReviver","reviver","len","v0","v1","toJS","arg","NodeBase","mapAsMap","maxAliasCount","onAnchor","count","Alias","nodes","found","_arg","getAliasCount","_onComment","_onChompKeep","src","kc","vc","isScalarValue","Scalar","defaultTagPrefix","findTagObject","tagName","match","tagObj","createNode","aliasDuplicateObjects","onTagObj","schema","collectionFromPath","isEmptyPath","Collection","keepScalar","allowScalar","stringifyComment","indentComment","comment","indent","lineComment","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","text","mode","indentAtStart","lineWidth","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","split","overflow","escStart","escEnd","consumeMoreIndentedLines","fold","getFoldOptions","isBlock","containsDocumentMarker","lineLengthOverLimit","indentLength","limit","strLen","doubleQuotedString","json","implicitKey","minMultiLineLength","code","singleQuotedString","quotedString","singleQuote","qs","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","blockQuote","commentString","literal","chomp","endStart","endNlPos","startWithSpace","startEnd","startNlPos","header","foldedValue","literalFallback","foldOptions","body","plainString","actualString","indentStep","inFlow","test","compat","stringifyString","ss","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","opt","getTagObject","testMatch","stringifyProps","props","stringify","stringifyPair","allNullValues","indentSeq","simpleKeys","keyComment","explicitKey","keyCommentDone","chompKeep","vsb","vcb","valueComment","valueCommentDone","valueStr","ws","cs","vs0","nl0","hasNewline","flow","hasPropsLine","sp0","warn","logLevel","warning","MERGE_KEY","merge","addMergeToJSMap","isMergeKey","mergeValue","srcMap","addPairToJSMap","jsKey","stringKey","stringifyKey","jsValue","strCtx","strKey","jsonStr","createPair","Pair","pair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","items","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","sum","ic","findPair","YAMLMap","keepUndefined","replacer","overwrite","_pair","sortEntries","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","sv","stringifyNumber","format","minFractionDigits","num","floatNaN","floatExp","float","dot","intIdentify","intResolve","radix","intAsBigInt","intStringify","intOct","_onError","int","intHex","stringifyJSON","jsonScalars","jsonError","binary","buf","resolvePairs","createPairs","iterable","pairs","YAMLOMap","omap","seenKeys","boolStringify","trueTag","falseTag","sign","intBin","YAMLSet","keepPair","parseSexagesimal","asBigInt","stringifySexagesimal","_60","intTime","floatTime","timestamp","year","month","day","hour","minute","millisec","date","tz","schemas","schema$1","schema$2","tagsByName","coreKnownTags","getTags","customTags","schemaName","addMergeTag","schemaTags","sortMapEntriesByKey","Schema","resolveKnownTags","sortMapEntries","toStringDefaults","stringifyDocument","hasDirectives","dir","contentComment","dc","Document","_replacer","assertCollection","keyToStr","asStr","anchorPrefix","setAnchors","jsonArg","contents","YAMLError","pos","YAMLParseError","YAMLWarning","prettifyError","lc","col","lineStr","trimStart","pointer","resolveProps","tokens","indicator","parentIndent","startOnNewline","spaceBefore","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","token","containsNewline","flowIndentCheck","fc","mapIncludes","search","uniqueKeys","isEqual","startColMsg","resolveBlockMap","composeNode","composeEmptyNode","bm","NodeClass","commentEnd","collItem","sep","keyProps","keyStart","keyNode","valueProps","valueNode","resolveBlockSeq","bs","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","atRoot","prevItemComment","loop","endRange","expectedEnd","cePos","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","trimIndent","contentStart","prevMoreIndented","crlf","strict","length","ts","resolveFlowScalar","rel","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","badChar","foldLines","foldNewline","cc","escapeCodes","parseCharCode","wsStart","composeScalar","range","findScalarTagByName","findScalarTagByTest","matchWithTest","atKey","directives","emptyScalarPosition","before","isSrcToken","composeAlias","alias","composeDoc","opts","contentEnd","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","afterDoc","forceDoc","endOffset","BOM","DOCUMENT","FLOW_END","tokenType","isEmpty","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","incomplete","dirEnd","sp","ch0","ch1","quote","qb","lastChar","allowEmpty","allowTabs","LineCounter","low","high","mid","includesToken","list","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","fixFlowSeqItems","Parser","onNewLine","lexeme","top","bv","atMapIndent","atNextItem","fs","docEnd","parseOptions","prettyErrors","parseDocument","lineCounter","parser","composer","_doc","parse","_reviver","DefaultPageReader","pageContent","endFrontMatterIndex","frontMatterContent","DefaultPageWriter","types","__classPrivateFieldGet","kind","_Mime_extensionToType","_Mime_typeToExtension","_Mime_typeToExtensions","Mime","typeMap","force","extensions","ext","allExtensions","extension","starred","currentType","hasPath","mime","standardTypes","otherTypes","GitHubStorage","AbstractStorage","authenticationManagerProvider","alertsServiceProvider","_syntax","revision","baseRestURL","directory","hash","chr","response","username","jsonResponse","commitsUrl","jsonCommitsResponse","pageRestUrl","headResponse","sha","putResponse","errorMessage","urls","file","fileUrl","resolve","reader","branch","headCommit","treeResponse","commitResponse","authorizationHeader","headers","whenNamedOrDefault","constraints","ComponentInit$3","NextcloudWikiConfig","nameStartChar","nameChar","nameRegexp","regexName","getAllMatches","regex","matches","allmatches","isName","isExist","DANGEROUS_PROPERTY_NAMES","criticalProperties","defaultOptions","validate","xmlData","tagFound","reachedRoot","readPI","tagStartPos","readCommentAndCDATA","closingTag","validateTagName","getErrorObject","getLineNumberForPosition","readAttributeStr","attrStr","attrStrStart","validateAttributeString","otg","openPos","afterAmp","validateAmpersand","isWhiteSpace","char","tagname","angleBracketsCount","doubleQuote","startChar","tagClosed","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","validateNumberAmpersand","lineNumber","defaultOnDangerousProperty","jPath","attrs","validatePropertyName","propertyName","optionName","normalized","dangerous","normalizeProcessEntities","buildOptions","built","propertyNameOptions","METADATA_SYMBOL","XmlNode","startIndex","DocTypeReader","entities","entityCount","hasBody","exp","hasSeq","entityName","escaped","skipWhitespace","validateEntityName","entityValue","notationName","identifierType","publicIdentifier","systemIdentifier","identifierVal","elementName","contentModel","attributeName","attributeType","allowedNotations","notation","validTypes","hexRegex","numRegex","consider","toNumber","trimmedStr","parse_int","resolveEnotation","leadingZeros","numTrimmedByZeros","trimZeros","decimalAdjacentToLeadingZeros","parsedStr","handleInfinity","eNotationRegx","eChar","eAdjacentToLeadingZeros","numStr","base","isPositive","getIgnoreAttributesFn","ignoreAttributes","pattern","Expression","seg","segments","currentPart","part","segment","bracketContent","withoutBrackets","bracketMatch","namespace","tagAndPosition","nsIndex","positionMatch","colonIndex","tagPart","posPart","eqIndex","nthMatch","Matcher","attrValues","currentLevel","siblings","siblingKey","counter","position","current","includeNamespace","expression","isCurrentNode","pathIdx","segIdx","nextSeg","actualValue","snapshot","extractRawAttributes","prefixedAttrs","rawAttrs","rawName","extractNamespace","rawTagName","ns","OrderedObjParser","fromCodePoint","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","replaceEntitiesValue","readStopNodeData","saveTextToParentTag","addChild","stopNodeExp","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","jPathOrMatcher","newval","parseValue","attrsRegx","rawAttrsForMatcher","oldVal","parsedVal","jPathStr","aName","sanitizeName","attrCollection","xmlObj","xmlNode","currentNode","textData","docTypeReader","closeIndex","findClosingIndex","transformTagName","lastTagName","tagData","readTagExp","childNode","endIndex","tagExp","context","attrExpPresent","lastTag","isSelfClosing","tagContent","matcher","entityConfig","entity","lengthBefore","parentNode","stopNodeExpressions","tagExpWithClosingIndex","closingChar","attrBoundary","errMsg","closingIndex","removeNSPrefix","separatorIndex","openTagCount","shouldParse","codePoint","newTagName","stripAttributePrefix","prettify","compress","compressedObj","property","propName","isLeaf","isLeafTag","assignAttributes","attrMap","atrrName","rawAttrName","textNodeName","propCount","XMLParser","validationOption","orderedObjParser","orderedResult","NextcloudStorage","lastModificationDate","lastAuthor","parsedContent","modified","responses","attachments","dresponse","propfindResponse","metaDirPath","newDirectories","rootURL","directories","fileURL","errors","currentTarget","element","mimetype","href","reference","DocumentReference","SpaceReference","ComponentInit$2","XWikiWikiConfig","getRestSpacesApiUrl","documentId","splittedDocumentId","wiki","XWikiStorage","searchParams","imageURL","pageContentData","pageName","right","JSONLDDocument","mimeType","xwikiAbsoluteUrl","author","panelContentData","fieldMapping","xwikiFieldName","referenceParts","ComponentInit$1","DefaultComponent","DefaultExtensionConfig","entryFile","staticModule","DefaultExtensionManager","customEntryFile","remoteExtensionDefaultURL","remoteExtensionDefaultEntryFile","extensionName","componentConfig","importPath","cssImportPath","cssModule","componentInitModule","ComponentInit","CristalLoader","extensionList","staticExtensionManager","staticBuild","extensionManager","extName","Container","DefaultLoggerConfig","loggerConfig","pathname","i1","proxyMarker","createEndpoint","releaseProxy","finalizer","throwMarker","proxyTransferHandler","port1","port2","expose","port","throwTransferHandler","serialized","transferHandlers","isAllowedOrigin","allowedOrigins","origin","allowedOrigin","ep","ev","argumentList","fromWireValue","returnValue","transfer","wireValue","transferables","toWireValue","closeEndPoint","isMessagePort","endpoint","pendingListeners","resolver","createProxy","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","proxyFinalizers","newCount","registerProxy","unregisterProxy","isProxyReleased","_target","_thisArg","rawArgumentList","processArguments","myFlat","processed","transferCache","transfers","handler","serializedValue","generateUUID","loadConfigWeb","loadConfig","Worker","fct","ms","index1","index2","cristalLoader","DexieBackendComponentInit","GithubBackendComponentInit","NextcloudBackendComponentInit","XWikiBackendComponentInit","AuthenticationDefaultComponentInit","AlertsDefaultComponentInit","worker","Comlink.expose"],"mappings":"2QAcA,IAAIA,EACJ,OAAC,SAAUA,EAAS,EAGf,SAAUC,EAAS,CAChB,IAAIC,EAAO,OAAO,YAAe,SAAW,WACxC,OAAOC,IAAW,SAAWA,GACzB,OAAO,MAAS,SAAW,KACvB,OAAO,MAAS,SAAW,KACvBC,EAAc,EAC1BC,EAAWC,EAAaN,CAAO,EAC/B,OAAOE,EAAK,QAAY,MACxBG,EAAWC,EAAaJ,EAAK,QAASG,CAAQ,GAElDJ,EAAQI,EAAUH,CAAI,EAClB,OAAOA,EAAK,QAAY,MACxBA,EAAK,QAAUF,GAEnB,SAASM,EAAaC,EAAQC,EAAU,CACpC,OAAO,SAAUC,EAAKC,EAAO,CACzB,OAAO,eAAeH,EAAQE,EAAK,CAAE,aAAc,GAAM,SAAU,GAAM,MAAOC,CAAK,CAAE,EACnFF,GACAA,EAASC,EAAKC,CAAK,CACvC,CACA,CACQ,SAASC,GAAe,CACpB,GAAI,CACA,OAAO,SAAS,cAAc,EAAC,CAC/C,MACsB,CAAA,CACtB,CACQ,SAASC,GAAmB,CACxB,GAAI,CACA,SAAgB,MAAM,iCAAiC,CACvE,MACsB,CAAA,CACtB,CACQ,SAASR,GAAiB,CACtB,OAAOO,EAAY,GAAMC,EAAgB,CACrD,CACA,GAAO,SAAUP,EAAUH,EAAM,CACzB,IAAIW,EAAS,OAAO,UAAU,eAE1BC,EAAiB,OAAO,QAAW,WACnCC,EAAoBD,GAAkB,OAAO,OAAO,YAAgB,IAAc,OAAO,YAAc,gBACvGE,EAAiBF,GAAkB,OAAO,OAAO,SAAa,IAAc,OAAO,SAAW,aAC9FG,EAAiB,OAAO,OAAO,QAAW,WAC1CC,EAAgB,CAAE,UAAW,CAAA,CAAE,YAAc,MAC7CC,EAAY,CAACF,GAAkB,CAACC,EAChCE,EAAU,CAEV,OAAQH,EACF,UAAY,CAAE,OAAOI,GAAe,OAAO,OAAO,IAAI,CAAC,CAAE,EACzDH,EACI,UAAY,CAAE,OAAOG,GAAe,CAAE,UAAW,IAAI,CAAE,CAAE,EACzD,UAAY,CAAE,OAAOA,GAAe,CAAA,CAAE,CAAE,EAClD,IAAKF,EACC,SAAUG,EAAKb,EAAK,CAAE,OAAOI,EAAO,KAAKS,EAAKb,CAAG,CAAE,EACnD,SAAUa,EAAKb,EAAK,CAAE,OAAOA,KAAOa,CAAI,EAC9C,IAAKH,EACC,SAAUG,EAAKb,EAAK,CAAE,OAAOI,EAAO,KAAKS,EAAKb,CAAG,EAAIa,EAAIb,CAAG,EAAI,MAAU,EAC1E,SAAUa,EAAKb,EAAK,CAAE,OAAOa,EAAIb,CAAG,CAAE,GAG5Cc,EAAoB,OAAO,eAAe,QAAQ,EAClDC,EAAO,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMC,GAAiB,EACzGC,EAAO,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMC,GAAiB,EACzGC,EAAW,OAAO,SAAY,WAAa,QAAUC,GAAqB,EAC1EC,EAAiBhB,EAAiB,OAAO,IAAI,4BAA4B,EAAI,OAC7EiB,EAAmBC,EAA2B,EAC9CC,EAAmBC,EAAuBH,CAAgB,EAwC9D,SAASI,GAASC,EAAY7B,EAAQ8B,EAAaC,EAAY,CAC3D,GAAKC,GAAYF,CAAW,EAYvB,CACD,GAAI,CAACG,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACd,GAAI,CAACK,GAAclC,CAAM,EACrB,MAAM,IAAI,UACd,OAAOmC,GAAoBN,EAAY7B,CAAM,CAC7D,KAlB2C,CAC3B,GAAI,CAACiC,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACd,GAAI,CAACO,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,GAAI,CAACoC,GAASL,CAAU,GAAK,CAACC,GAAYD,CAAU,GAAK,CAACM,GAAON,CAAU,EACvE,MAAM,IAAI,UACd,OAAIM,GAAON,CAAU,IACjBA,EAAa,QACjBD,EAAcQ,GAAcR,CAAW,EAChCS,GAAiBV,EAAY7B,EAAQ8B,EAAaC,CAAU,CACnF,CAQA,CACQjC,EAAS,WAAY8B,EAAQ,EA2C7B,SAASY,EAASC,EAAaC,EAAe,CAC1C,SAASC,EAAU3C,EAAQ8B,EAAa,CACpC,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,GAAI,CAACgC,GAAYF,CAAW,GAAK,CAACc,GAAcd,CAAW,EACvD,MAAM,IAAI,UACde,GAA0BJ,EAAaC,EAAe1C,EAAQ8B,CAAW,CACzF,CACY,OAAOa,CACnB,CACQ7C,EAAS,WAAY0C,CAAQ,EAwC7B,SAASM,GAAeL,EAAaC,EAAe1C,EAAQ8B,EAAa,CACrE,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCe,GAA0BJ,EAAaC,EAAe1C,EAAQ8B,CAAW,CAC5F,CACQhC,EAAS,iBAAkBgD,EAAc,EAmCzC,SAASC,GAAYN,EAAazC,EAAQ8B,EAAa,CACnD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCkB,GAAoBP,EAAazC,EAAQ8B,CAAW,CACvE,CACQhC,EAAS,cAAeiD,EAAW,EAmCnC,SAASE,GAAeR,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCoB,GAAuBT,EAAazC,EAAQ8B,CAAW,CAC1E,CACQhC,EAAS,iBAAkBmD,EAAc,EAmCzC,SAASE,EAAYV,EAAazC,EAAQ8B,EAAa,CACnD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCsB,GAAoBX,EAAazC,EAAQ8B,CAAW,CACvE,CACQhC,EAAS,cAAeqD,CAAW,EAmCnC,SAASE,GAAeZ,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCwB,GAAuBb,EAAazC,EAAQ8B,CAAW,CAC1E,CACQhC,EAAS,iBAAkBuD,EAAc,EAkCzC,SAASE,GAAgBvD,EAAQ8B,EAAa,CAC1C,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpC0B,GAAqBxD,EAAQ8B,CAAW,CAC3D,CACQhC,EAAS,kBAAmByD,EAAe,EAkC3C,SAASE,GAAmBzD,EAAQ8B,EAAa,CAC7C,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpC4B,GAAwB1D,EAAQ8B,CAAW,CAC9D,CACQhC,EAAS,qBAAsB2D,EAAkB,EAmCjD,SAASE,GAAelB,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UAGd,GAFKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACvC,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACTgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GAC3C,IAAI8B,EAAWC,GAAoB7D,EAAQ8B,EAAwB,EAAK,EACxE,OAAIE,GAAY4B,CAAQ,EACb,GACJA,EAAS,uBAAuBnB,EAAazC,EAAQ8B,CAAW,CACnF,CACQhC,EAAS,iBAAkB6D,EAAc,EACzC,SAASxB,GAAoBN,EAAY7B,EAAQ,CAC7C,QAAS8D,EAAIjC,EAAW,OAAS,EAAGiC,GAAK,EAAG,EAAEA,EAAG,CAC7C,IAAInB,EAAYd,EAAWiC,CAAC,EACxBC,EAAYpB,EAAU3C,CAAM,EAChC,GAAI,CAACgC,GAAY+B,CAAS,GAAK,CAAC1B,GAAO0B,CAAS,EAAG,CAC/C,GAAI,CAAC7B,GAAc6B,CAAS,EACxB,MAAM,IAAI,UACd/D,EAAS+D,CAC7B,CACA,CACY,OAAO/D,CACnB,CACQ,SAASuC,GAAiBV,EAAY7B,EAAQ8B,EAAakC,EAAY,CACnE,QAASF,EAAIjC,EAAW,OAAS,EAAGiC,GAAK,EAAG,EAAEA,EAAG,CAC7C,IAAInB,GAAYd,EAAWiC,CAAC,EACxBC,GAAYpB,GAAU3C,EAAQ8B,EAAakC,CAAU,EACzD,GAAI,CAAChC,GAAY+B,EAAS,GAAK,CAAC1B,GAAO0B,EAAS,EAAG,CAC/C,GAAI,CAAC3B,GAAS2B,EAAS,EACnB,MAAM,IAAI,UACdC,EAAaD,EACjC,CACA,CACY,OAAOC,CACnB,CAGQ,SAAShB,GAAoBiB,EAAaC,EAAGC,EAAG,CAC5C,IAAI7D,EAAS4C,GAAuBe,EAAaC,EAAGC,CAAC,EACrD,GAAI7D,EACA,MAAO,GACX,IAAI8D,EAASC,GAAuBH,CAAC,EACrC,OAAK7B,GAAO+B,CAAM,EAEX,GADIpB,GAAoBiB,EAAaG,EAAQD,CAAC,CAEjE,CAGQ,SAASjB,GAAuBe,EAAaC,EAAGC,EAAG,CAC/C,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,OAAInC,GAAY4B,CAAQ,EACb,GACJU,GAAUV,EAAS,uBAAuBK,EAAaC,EAAGC,CAAC,CAAC,CAC/E,CAGQ,SAASf,GAAoBa,EAAaC,EAAGC,EAAG,CAC5C,IAAI7D,EAAS4C,GAAuBe,EAAaC,EAAGC,CAAC,EACrD,GAAI7D,EACA,OAAOgD,GAAuBW,EAAaC,EAAGC,CAAC,EACnD,IAAIC,EAASC,GAAuBH,CAAC,EACrC,GAAI,CAAC7B,GAAO+B,CAAM,EACd,OAAOhB,GAAoBa,EAAaG,EAAQD,CAAC,CAEjE,CAGQ,SAASb,GAAuBW,EAAaC,EAAGC,EAAG,CAC/C,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,GAAI,CAAAnC,GAAY4B,CAAQ,EAExB,OAAOA,EAAS,uBAAuBK,EAAaC,EAAGC,CAAC,CACpE,CAGQ,SAAStB,GAA0BoB,EAAaM,EAAeL,EAAGC,EAAG,CACjE,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAI,EACxDP,EAAS,0BAA0BK,EAAaM,EAAeL,EAAGC,CAAC,CAC/E,CAGQ,SAASX,GAAqBU,EAAGC,EAAG,CAChC,IAAIK,EAAUd,GAAwBQ,EAAGC,CAAC,EACtCC,EAASC,GAAuBH,CAAC,EACrC,GAAIE,IAAW,KACX,OAAOI,EACX,IAAIC,EAAajB,GAAqBY,EAAQD,CAAC,EAC/C,GAAIM,EAAW,QAAU,EACrB,OAAOD,EACX,GAAIA,EAAQ,QAAU,EAClB,OAAOC,EAGX,QAFIC,GAAM,IAAIvD,EACVwD,GAAO,CAAA,EACFC,GAAK,EAAGC,EAAYL,EAASI,GAAKC,EAAU,OAAQD,KAAM,CAC/D,IAAI1E,GAAM2E,EAAUD,EAAE,EAClBE,GAASJ,GAAI,IAAIxE,EAAG,EACnB4E,KACDJ,GAAI,IAAIxE,EAAG,EACXyE,GAAK,KAAKzE,EAAG,EAEjC,CACY,QAAS6E,GAAK,EAAGC,GAAeP,EAAYM,GAAKC,GAAa,OAAQD,KAAM,CACxE,IAAI7E,GAAM8E,GAAaD,EAAE,EACrBD,GAASJ,GAAI,IAAIxE,EAAG,EACnB4E,KACDJ,GAAI,IAAIxE,EAAG,EACXyE,GAAK,KAAKzE,EAAG,EAEjC,CACY,OAAOyE,EACnB,CAGQ,SAASjB,GAAwBQ,EAAGC,EAAG,CACnC,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,OAAKP,EAGEA,EAAS,wBAAwBM,EAAGC,CAAC,EAFjC,CAAA,CAGvB,CAGQ,SAASc,GAAKC,EAAG,CACb,GAAIA,IAAM,KACN,MAAO,GACX,OAAQ,OAAOA,EAAC,CACZ,IAAK,YAAa,MAAO,GACzB,IAAK,UAAW,MAAO,GACvB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,OAAOA,IAAM,KAAO,EAAe,EAClD,QAAS,MAAO,EAChC,CACA,CAGQ,SAASlD,GAAYkD,EAAG,CACpB,OAAOA,IAAM,MACzB,CAGQ,SAAS7C,GAAO6C,EAAG,CACf,OAAOA,IAAM,IACzB,CAGQ,SAASC,GAASD,EAAG,CACjB,OAAO,OAAOA,GAAM,QAChC,CAGQ,SAAS9C,GAAS8C,EAAG,CACjB,OAAO,OAAOA,GAAM,SAAWA,IAAM,KAAO,OAAOA,GAAM,UACrE,CAKQ,SAASE,GAAYC,EAAOC,EAAe,CACvC,OAAQL,GAAKI,CAAK,EAAC,CACf,IAAK,GAAmB,OAAOA,EAC/B,IAAK,GAAc,OAAOA,EAC1B,IAAK,GAAiB,OAAOA,EAC7B,IAAK,GAAgB,OAAOA,EAC5B,IAAK,GAAgB,OAAOA,EAC5B,IAAK,GAAgB,OAAOA,CAC5C,CACY,IAAIE,EAA0C,SAC1CC,EAAeC,GAAUJ,EAAO7E,CAAiB,EACrD,GAAIgF,IAAiB,OAAW,CAC5B,IAAIE,EAASF,EAAa,KAAKH,EAAOE,CAAI,EAC1C,GAAInD,GAASsD,CAAM,EACf,MAAM,IAAI,UACd,OAAOA,CACvB,CACY,OAAOC,GAAoBN,CAA2C,CAClF,CAGQ,SAASM,GAAoBzB,EAAGqB,EAAM,CAC9C,IAAAK,EAAAF,EAAmC,CACnB,IAAIG,EAAa3B,EAAE,SACnB,GAAI4B,GAAWD,CAAU,EAAG,CACxB,IAAIH,EAASG,EAAW,KAAK3B,CAAC,EAC9B,GAAI,CAAC9B,GAASsD,CAAM,EAChB,OAAOA,CAC/B,CACgB,IAAIE,EAAU1B,EAAE,QAChB,GAAI4B,GAAWF,CAAO,EAAG,CACrB,IAAIF,EAASE,EAAQ,KAAK1B,CAAC,EAC3B,GAAI,CAAC9B,GAASsD,CAAM,EAChB,OAAOA,CAC/B,CACA,CAeY,MAAM,IAAI,SACtB,CAGQ,SAASpB,GAAUyB,EAAU,CACzB,MAAO,CAAC,CAACA,CACrB,CAGQ,SAASC,GAASD,EAAU,CACxB,MAAO,GAAKA,CACxB,CAGQ,SAASzD,GAAcyD,EAAU,CAC7B,IAAI7F,EAAMkF,GAAYW,CAAW,EACjC,OAAIZ,GAASjF,CAAG,EACLA,EACJ8F,GAAS9F,CAAG,CAC/B,CAKQ,SAAS+B,GAAQ8D,EAAU,CACvB,OAAO,MAAM,QACP,MAAM,QAAQA,CAAQ,EACtBA,aAAoB,OAChBA,aAAoB,MACpB,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,gBACnE,CAGQ,SAASD,GAAWC,EAAU,CAE1B,OAAO,OAAOA,GAAa,UACvC,CAGQ,SAAS7D,GAAc6D,EAAU,CAE7B,OAAO,OAAOA,GAAa,UACvC,CAGQ,SAASnD,GAAcmD,EAAU,CAC7B,OAAQd,GAAKc,CAAQ,EAAC,CAClB,IAAK,GAAgB,MAAO,GAC5B,IAAK,GAAgB,MAAO,GAC5B,QAAS,MAAO,EAChC,CACA,CACQ,SAASE,GAAcf,EAAGgB,EAAG,CACzB,OAAOhB,IAAMgB,GAAKhB,IAAMA,GAAKgB,IAAMA,CAC/C,CAKQ,SAAST,GAAUU,EAAGhC,EAAG,CACrB,IAAIiC,EAAOD,EAAEhC,CAAC,EACd,GAA0BiC,GAAS,KAEnC,IAAI,CAACN,GAAWM,CAAI,EAChB,MAAM,IAAI,UACd,OAAOA,EACnB,CAGQ,SAASC,GAAYC,EAAK,CACtB,IAAIC,EAASd,GAAUa,EAAK7F,CAAc,EAC1C,GAAI,CAACqF,GAAWS,CAAM,EAClB,MAAM,IAAI,UACd,IAAIC,EAAWD,EAAO,KAAKD,CAAG,EAC9B,GAAI,CAAClE,GAASoE,CAAQ,EAClB,MAAM,IAAI,UACd,OAAOA,CACnB,CAGQ,SAASC,GAAcC,EAAY,CAC/B,OAAOA,EAAW,KAC9B,CAGQ,SAASC,GAAaH,EAAU,CAC5B,IAAId,EAASc,EAAS,KAAI,EAC1B,OAAOd,EAAO,KAAO,GAAQA,CACzC,CAGQ,SAASkB,GAAcJ,EAAU,CAC7B,IAAIK,EAAIL,EAAS,OACbK,GACAA,EAAE,KAAKL,CAAQ,CAC/B,CAKQ,SAASnC,GAAuBH,EAAG,CAC/B,IAAI4C,EAAQ,OAAO,eAAe5C,CAAC,EAUnC,GATI,OAAOA,GAAM,YAAcA,IAAMlD,GASjC8F,IAAU9F,EACV,OAAO8F,EAEX,IAAIC,EAAY7C,EAAE,UACd8C,EAAiBD,GAAa,OAAO,eAAeA,CAAS,EACjE,GAAIC,GAAkB,MAAQA,IAAmB,OAAO,UACpD,OAAOF,EAEX,IAAIG,EAAcD,EAAe,YAIjC,OAHI,OAAOC,GAAgB,YAGvBA,IAAgB/C,EACT4C,EAEJG,CACnB,CAOQ,SAASC,GAAyB,CAC9B,IAAIC,EACA,CAACnF,GAAYT,CAAc,GAC3B,OAAO5B,EAAK,QAAY,KACxB,EAAE4B,KAAkB5B,EAAK,UACzB,OAAOA,EAAK,QAAQ,gBAAmB,aAEvCwH,EAAWC,EAAuBzH,EAAK,OAAO,GAElD,IAAI0H,EACAC,EACAC,EACAC,EAAoB,IAAInG,EACxBoG,GAAW,CACX,iBAAkBC,GAClB,YAAaC,EACb,YAAaC,IAEjB,OAAOH,GACP,SAASC,GAAiB9D,GAAU,CAChC,GAAI,CAAC,OAAO,aAAa6D,EAAQ,EAC7B,MAAM,IAAI,MAAM,2CAA2C,EAE/D,OAAQ,GAAI,CACR,KAAKN,IAAavD,GAAU,MAC5B,KAAK5B,GAAYqF,CAAK,EAClBA,EAAQzD,GACR,MACJ,KAAKyD,IAAUzD,GAAU,MACzB,KAAK5B,GAAYsF,CAAM,EACnBA,EAAS1D,GACT,MACJ,KAAK0D,IAAW1D,GAAU,MAC1B,QACQ2D,IAAS,SACTA,EAAO,IAAIpG,GACfoG,EAAK,IAAI3D,EAAQ,EACjB,KACxB,CACA,CACY,SAASiE,GAAmB3D,GAAGC,GAAG,CAC9B,GAAI,CAACnC,GAAYqF,CAAK,EAAG,CACrB,GAAIA,EAAM,cAAcnD,GAAGC,EAAC,EACxB,OAAOkD,EACX,GAAI,CAACrF,GAAYsF,CAAM,EAAG,CACtB,GAAIA,EAAO,cAAcpD,GAAGC,EAAC,EACzB,OAAOkD,EACX,GAAI,CAACrF,GAAYuF,CAAI,EAEjB,QADIf,GAAWH,GAAYkB,CAAI,IAClB,CACT,IAAIO,GAAOnB,GAAaH,EAAQ,EAChC,GAAI,CAACsB,GACD,OAEJ,IAAIlE,GAAW6C,GAAcqB,EAAI,EACjC,GAAIlE,GAAS,cAAcM,GAAGC,EAAC,EAC3B,OAAAyC,GAAcJ,EAAQ,EACf5C,EAE3C,CAEA,CACA,CACgB,GAAI,CAAC5B,GAAYmF,CAAQ,GAAKA,EAAS,cAAcjD,GAAGC,EAAC,EACrD,OAAOgD,CAG3B,CACY,SAASQ,EAAYzD,GAAGC,GAAG,CACvB,IAAI4D,GAAcP,EAAkB,IAAItD,EAAC,EACrCN,GAIJ,OAHK5B,GAAY+F,EAAW,IACxBnE,GAAWmE,GAAY,IAAI5D,EAAC,GAE3BnC,GAAY4B,EAAQ,IAGzBA,GAAWiE,GAAmB3D,GAAGC,EAAC,EAC7BnC,GAAY4B,EAAQ,IACjB5B,GAAY+F,EAAW,IACvBA,GAAc,IAAI9G,EAClBuG,EAAkB,IAAItD,GAAG6D,EAAW,GAExCA,GAAY,IAAI5D,GAAGP,EAAQ,IAExBA,EACvB,CACY,SAASoE,GAAYpE,GAAU,CAC3B,GAAI5B,GAAY4B,EAAQ,EACpB,MAAM,IAAI,UACd,OAAOyD,IAAUzD,IAAY0D,IAAW1D,IAAY,CAAC5B,GAAYuF,CAAI,GAAKA,EAAK,IAAI3D,EAAQ,CAC3G,CACY,SAASgE,GAAY1D,GAAGC,GAAGP,GAAU,CACjC,GAAI,CAACoE,GAAYpE,EAAQ,EACrB,MAAM,IAAI,MAAM,mCAAmC,EAEvD,IAAIqE,GAAmBN,EAAYzD,GAAGC,EAAC,EACvC,GAAI8D,KAAqBrE,GAAU,CAC/B,GAAI,CAAC5B,GAAYiG,EAAgB,EAC7B,MAAO,GAEX,IAAIF,GAAcP,EAAkB,IAAItD,EAAC,EACrClC,GAAY+F,EAAW,IACvBA,GAAc,IAAI9G,EAClBuG,EAAkB,IAAItD,GAAG6D,EAAW,GAExCA,GAAY,IAAI5D,GAAGP,EAAQ,CAC/C,CACgB,MAAO,EACvB,CACA,CAIQ,SAASnC,GAA8B,CACnC,IAAID,EACJ,MAAI,CAACQ,GAAYT,CAAc,GAAKa,GAASzC,EAAK,OAAO,GAAK,OAAO,aAAaA,EAAK,OAAO,IAC1F6B,EAAmB7B,EAAK,QAAQ4B,CAAc,GAE9CS,GAAYR,CAAgB,IAC5BA,EAAmB0F,EAAsB,GAEzC,CAAClF,GAAYT,CAAc,GAAKa,GAASzC,EAAK,OAAO,GAAK,OAAO,aAAaA,EAAK,OAAO,GAC1F,OAAO,eAAeA,EAAK,QAAS4B,EAAgB,CAChD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAOC,CAC3B,CAAiB,EAEEA,CACnB,CACQ,SAASG,EAAuB8F,EAAU,CAGtC,IAAIjF,EAAW,IAAInB,EACfuC,EAAW,CACX,cAAe,SAAUM,GAAGC,GAAG,CAC3B,IAAI+D,GAAiB1F,EAAS,IAAI0B,EAAC,EACnC,OAAIlC,GAAYkG,EAAc,EACnB,GACJA,GAAe,IAAI/D,EAAC,CAC/C,EACgB,0BAA2BtB,GAC3B,uBAAwBK,EACxB,uBAAwBI,GACxB,wBAAyBI,GACzB,uBAAwByE,GAE5B,OAAA3G,EAAiB,iBAAiBoC,CAAQ,EACnCA,EACP,SAASwE,EAAuBlE,GAAGC,GAAGkE,GAAQ,CAC1C,IAAIH,GAAiB1F,EAAS,IAAI0B,EAAC,EAC/BoE,GAAwB,GAC5B,GAAItG,GAAYkG,EAAc,EAAG,CAC7B,GAAI,CAACG,GACD,OACJH,GAAiB,IAAIjH,EACrBuB,EAAS,IAAI0B,GAAGgE,EAAc,EAC9BI,GAAwB,EAC5C,CACgB,IAAIC,GAAcL,GAAe,IAAI/D,EAAC,EACtC,GAAInC,GAAYuG,EAAW,EAAG,CAC1B,GAAI,CAACF,GACD,OAGJ,GAFAE,GAAc,IAAItH,EAClBiH,GAAe,IAAI/D,GAAGoE,EAAW,EAC7B,CAACd,EAAS,YAAYvD,GAAGC,GAAGP,CAAQ,EACpC,MAAAsE,GAAe,OAAO/D,EAAC,EACnBmE,IACA9F,EAAS,OAAO0B,EAAC,EAEf,IAAI,MAAM,4BAA4B,CAEpE,CACgB,OAAOqE,EACvB,CAGY,SAASrF,EAAuBe,GAAaC,GAAGC,GAAG,CAC/C,IAAIoE,GAAcH,EAAuBlE,GAAGC,GAAc,EAAK,EAC/D,OAAInC,GAAYuG,EAAW,EAChB,GACJjE,GAAUiE,GAAY,IAAItE,EAAW,CAAC,CAC7D,CAGY,SAASX,GAAuBW,GAAaC,GAAGC,GAAG,CAC/C,IAAIoE,GAAcH,EAAuBlE,GAAGC,GAAc,EAAK,EAC/D,GAAI,CAAAnC,GAAYuG,EAAW,EAE3B,OAAOA,GAAY,IAAItE,EAAW,CAClD,CAGY,SAASpB,GAA0BoB,GAAaM,GAAeL,GAAGC,GAAG,CACjE,IAAIoE,GAAcH,EAAuBlE,GAAGC,GAAc,EAAI,EAC9DoE,GAAY,IAAItE,GAAaM,EAAa,CAC1D,CAGY,SAASb,GAAwBQ,GAAGC,GAAG,CACnC,IAAIQ,GAAO,CAAA,EACP4D,GAAcH,EAAuBlE,GAAGC,GAAc,EAAK,EAC/D,GAAInC,GAAYuG,EAAW,EACvB,OAAO5D,GAIX,QAHI6D,GAAUD,GAAY,KAAI,EAC1B/B,GAAWH,GAAYmC,EAAO,EAC9BC,GAAI,IACK,CACT,IAAIX,GAAOnB,GAAaH,EAAQ,EAChC,GAAI,CAACsB,GACD,OAAAnD,GAAK,OAAS8D,GACP9D,GAEX,IAAI+D,GAAYjC,GAAcqB,EAAI,EAClC,GAAI,CACAnD,GAAK8D,EAAC,EAAIC,EAClC,OAC2BC,GAAG,CACN,GAAI,CACA/B,GAAcJ,EAAQ,CAClD,SAE4B,MAAMmC,EAClC,CACA,CACoBF,IACpB,CACA,CACY,SAASN,EAAuBlE,GAAaC,GAAGC,GAAG,CAC/C,IAAIoE,GAAcH,EAAuBlE,GAAGC,GAAc,EAAK,EAG/D,GAFInC,GAAYuG,EAAW,GAEvB,CAACA,GAAY,OAAOtE,EAAW,EAC/B,MAAO,GACX,GAAIsE,GAAY,OAAS,EAAG,CACxB,IAAIL,GAAiB1F,EAAS,IAAI0B,EAAC,EAC9BlC,GAAYkG,EAAc,IAC3BA,GAAe,OAAO/D,EAAC,EACnB+D,GAAe,OAAS,GACxB1F,EAAS,OAAO0F,EAAc,EAG1D,CACgB,MAAO,EACvB,CACA,CACQ,SAASd,EAAuBwB,EAAS,CACrC,IAAI9F,EAAiB8F,EAAQ,eAAgB3F,EAAiB2F,EAAQ,eAAgBvF,EAAiBuF,EAAQ,eAAgBnF,EAAqBmF,EAAQ,mBAAoBjF,GAAiBiF,EAAQ,eACrMC,GAAgB,IAAIxH,EACpBuC,GAAW,CACX,cAAe,SAAUM,EAAGC,GAAG,CAC3B,IAAI2E,GAAsBD,GAAc,IAAI3E,CAAC,EAC7C,MAAI,CAAClC,GAAY8G,EAAmB,GAAKA,GAAoB,IAAI3E,EAAC,EACvD,GAEPV,EAAmBS,EAAGC,EAAC,EAAE,QACrBnC,GAAY8G,EAAmB,IAC/BA,GAAsB,IAAI3H,EAC1B0H,GAAc,IAAI3E,EAAG4E,EAAmB,GAE5CA,GAAoB,IAAI3E,EAAC,EAClB,IAEJ,EAC3B,EACgB,0BAA2BrB,EAC3B,uBAAwBG,EACxB,uBAAwBI,EACxB,wBAAyBI,EACzB,uBAAwBE,IAE5B,OAAOC,EACnB,CAKQ,SAASC,GAAoBK,EAAGC,EAAGkE,EAAQ,CACvC,IAAIU,EAAqBvH,EAAiB,YAAY0C,EAAGC,CAAC,EAC1D,GAAI,CAACnC,GAAY+G,CAAkB,EAC/B,OAAOA,EAEX,GAAIV,EAAQ,CACR,GAAI7G,EAAiB,YAAY0C,EAAGC,EAAGzC,CAAgB,EACnD,OAAOA,EAEX,MAAM,IAAI,MAAM,gBAAgB,CAChD,CAEA,CAEQ,SAASR,IAAoB,CACzB,IAAI8H,EAAgB,CAAA,EAChBC,EAAgB,CAAA,EAChBC,GAA6B,UAAY,CACzC,SAASA,GAAYvE,EAAMwE,GAAQC,GAAU,CACzC,KAAK,OAAS,EACd,KAAK,MAAQzE,EACb,KAAK,QAAUwE,GACf,KAAK,UAAYC,EACrC,CACgB,OAAAF,GAAY,UAAU,YAAY,EAAI,UAAY,CAAE,OAAO,IAAK,EAChEA,GAAY,UAAUzI,CAAc,EAAI,UAAY,CAAE,OAAO,IAAK,EAClEyI,GAAY,UAAU,KAAO,UAAY,CACrC,IAAIG,EAAQ,KAAK,OACjB,GAAIA,GAAS,GAAKA,EAAQ,KAAK,MAAM,OAAQ,CACzC,IAAI3D,GAAS,KAAK,UAAU,KAAK,MAAM2D,CAAK,EAAG,KAAK,QAAQA,CAAK,CAAC,EAClE,OAAIA,EAAQ,GAAK,KAAK,MAAM,QACxB,KAAK,OAAS,GACd,KAAK,MAAQJ,EACb,KAAK,QAAUA,GAGf,KAAK,SAEF,CAAE,MAAOvD,GAAQ,KAAM,EAAK,CAC3D,CACoB,MAAO,CAAE,MAAO,OAAW,KAAM,EAAI,CACzD,EACgBwD,GAAY,UAAU,MAAQ,SAAUI,EAAO,CAC3C,MAAI,KAAK,QAAU,IACf,KAAK,OAAS,GACd,KAAK,MAAQL,EACb,KAAK,QAAUA,GAEbK,CAC1B,EACgBJ,GAAY,UAAU,OAAS,SAAU/I,EAAO,CAC5C,OAAI,KAAK,QAAU,IACf,KAAK,OAAS,GACd,KAAK,MAAQ8I,EACb,KAAK,QAAUA,GAEZ,CAAE,MAAO9I,EAAO,KAAM,EAAI,CACrD,EACuB+I,EACvB,KACgBK,GAAqB,UAAY,CACjC,SAASA,IAAM,CACX,KAAK,MAAQ,CAAA,EACb,KAAK,QAAU,CAAA,EACf,KAAK,UAAYP,EACjB,KAAK,YAAc,EACvC,CACgB,cAAO,eAAeO,GAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,OAAO,KAAK,MAAM,MAAO,EAC5C,WAAY,GACZ,aAAc,EAClC,CAAiB,EACDA,GAAI,UAAU,IAAM,SAAUrJ,EAAK,CAAE,OAAO,KAAK,MAAMA,EAAgB,EAAK,GAAK,CAAE,EACnFqJ,GAAI,UAAU,IAAM,SAAUrJ,EAAK,CAC/B,IAAImJ,GAAQ,KAAK,MAAMnJ,EAAgB,EAAK,EAC5C,OAAOmJ,IAAS,EAAI,KAAK,QAAQA,EAAK,EAAI,MAC9D,EACgBE,GAAI,UAAU,IAAM,SAAUrJ,EAAKC,GAAO,CACtC,IAAIkJ,GAAQ,KAAK,MAAMnJ,EAAgB,EAAI,EAC3C,YAAK,QAAQmJ,EAAK,EAAIlJ,GACf,IAC3B,EACgBoJ,GAAI,UAAU,OAAS,SAAUrJ,EAAK,CAClC,IAAImJ,GAAQ,KAAK,MAAMnJ,EAAgB,EAAK,EAC5C,GAAImJ,IAAS,EAAG,CAEZ,QADIG,GAAO,KAAK,MAAM,OACb1F,GAAIuF,GAAQ,EAAGvF,GAAI0F,GAAM1F,KAC9B,KAAK,MAAMA,GAAI,CAAC,EAAI,KAAK,MAAMA,EAAC,EAChC,KAAK,QAAQA,GAAI,CAAC,EAAI,KAAK,QAAQA,EAAC,EAExC,YAAK,MAAM,SACX,KAAK,QAAQ,SACTmC,GAAc/F,EAAK,KAAK,SAAS,IACjC,KAAK,UAAY8I,EACjB,KAAK,YAAc,IAEhB,EAC/B,CACoB,MAAO,EAC3B,EACgBO,GAAI,UAAU,MAAQ,UAAY,CAC9B,KAAK,MAAM,OAAS,EACpB,KAAK,QAAQ,OAAS,EACtB,KAAK,UAAYP,EACjB,KAAK,YAAc,EACvC,EACgBO,GAAI,UAAU,KAAO,UAAY,CAAE,OAAO,IAAIL,EAAY,KAAK,MAAO,KAAK,QAASO,CAAM,CAAE,EAC5FF,GAAI,UAAU,OAAS,UAAY,CAAE,OAAO,IAAIL,EAAY,KAAK,MAAO,KAAK,QAASQ,EAAQ,CAAE,EAChGH,GAAI,UAAU,QAAU,UAAY,CAAE,OAAO,IAAIL,EAAY,KAAK,MAAO,KAAK,QAASS,EAAQ,CAAE,EACjGJ,GAAI,UAAU,YAAY,EAAI,UAAY,CAAE,OAAO,KAAK,QAAO,CAAG,EAClEA,GAAI,UAAU9I,CAAc,EAAI,UAAY,CAAE,OAAO,KAAK,QAAO,CAAG,EACpE8I,GAAI,UAAU,MAAQ,SAAUrJ,EAAK0J,GAAQ,CACzC,GAAI,CAAC3D,GAAc,KAAK,UAAW/F,CAAG,EAAG,CACrC,KAAK,YAAc,GACnB,QAAS4D,GAAI,EAAGA,GAAI,KAAK,MAAM,OAAQA,KACnC,GAAImC,GAAc,KAAK,MAAMnC,EAAC,EAAG5D,CAAG,EAAG,CACnC,KAAK,YAAc4D,GACnB,KAChC,CAEA,CACoB,OAAI,KAAK,YAAc,GAAK8F,KACxB,KAAK,YAAc,KAAK,MAAM,OAC9B,KAAK,MAAM,KAAK1J,CAAG,EACnB,KAAK,QAAQ,KAAK,MAAS,GAExB,KAAK,WAChC,EACuBqJ,EACvB,KACY,OAAOA,EACP,SAASE,EAAOvJ,GAAK2J,EAAG,CACpB,OAAO3J,EACvB,CACY,SAASwJ,GAASG,GAAG1J,EAAO,CACxB,OAAOA,CACvB,CACY,SAASwJ,GAASzJ,GAAKC,EAAO,CAC1B,MAAO,CAACD,GAAKC,CAAK,CAClC,CACA,CAEQ,SAASiB,IAAoB,CACzB,IAAI0I,GAAqB,UAAY,CACjC,SAASA,GAAM,CACX,KAAK,KAAO,IAAI7I,CACpC,CACgB,cAAO,eAAe6I,EAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,OAAO,KAAK,KAAK,IAAK,EACzC,WAAY,GACZ,aAAc,EAClC,CAAiB,EACDA,EAAI,UAAU,IAAM,SAAU3J,EAAO,CAAE,OAAO,KAAK,KAAK,IAAIA,CAAK,CAAE,EACnE2J,EAAI,UAAU,IAAM,SAAU3J,EAAO,CAAE,OAAO,KAAK,KAAK,IAAIA,EAAOA,CAAK,EAAG,IAAK,EAChF2J,EAAI,UAAU,OAAS,SAAU3J,EAAO,CAAE,OAAO,KAAK,KAAK,OAAOA,CAAK,CAAE,EACzE2J,EAAI,UAAU,MAAQ,UAAY,CAAE,KAAK,KAAK,MAAK,CAAG,EACtDA,EAAI,UAAU,KAAO,UAAY,CAAE,OAAO,KAAK,KAAK,KAAI,CAAG,EAC3DA,EAAI,UAAU,OAAS,UAAY,CAAE,OAAO,KAAK,KAAK,KAAI,CAAG,EAC7DA,EAAI,UAAU,QAAU,UAAY,CAAE,OAAO,KAAK,KAAK,QAAO,CAAG,EACjEA,EAAI,UAAU,YAAY,EAAI,UAAY,CAAE,OAAO,KAAK,KAAI,CAAG,EAC/DA,EAAI,UAAUrJ,CAAc,EAAI,UAAY,CAAE,OAAO,KAAK,KAAI,CAAG,EAC1DqJ,CACvB,KACY,OAAOA,CACnB,CAEQ,SAASxI,IAAwB,CAC7B,IAAIyI,EAAY,GACZpF,EAAO9D,EAAQ,OAAM,EACrBmJ,EAAUC,EAAe,EAC7B,OAAsB,UAAY,CAC9B,SAASC,GAAU,CACf,KAAK,KAAOD,EAAe,CAC/C,CACgB,OAAAC,EAAQ,UAAU,IAAM,SAAUlK,GAAQ,CACtC,IAAImK,GAAQC,EAAwBpK,GAAmB,EAAK,EAC5D,OAAOmK,KAAU,OAAYtJ,EAAQ,IAAIsJ,GAAO,KAAK,IAAI,EAAI,EACjF,EACgBD,EAAQ,UAAU,IAAM,SAAUlK,GAAQ,CACtC,IAAImK,GAAQC,EAAwBpK,GAAmB,EAAK,EAC5D,OAAOmK,KAAU,OAAYtJ,EAAQ,IAAIsJ,GAAO,KAAK,IAAI,EAAI,MACjF,EACgBD,EAAQ,UAAU,IAAM,SAAUlK,GAAQG,GAAO,CAC7C,IAAIgK,GAAQC,EAAwBpK,GAAmB,EAAI,EAC3D,OAAAmK,GAAM,KAAK,IAAI,EAAIhK,GACZ,IAC3B,EACgB+J,EAAQ,UAAU,OAAS,SAAUlK,GAAQ,CACzC,IAAImK,GAAQC,EAAwBpK,GAAmB,EAAK,EAC5D,OAAOmK,KAAU,OAAY,OAAOA,GAAM,KAAK,IAAI,EAAI,EAC3E,EACgBD,EAAQ,UAAU,MAAQ,UAAY,CAElC,KAAK,KAAOD,EAAe,CAC/C,EACuBC,CACvB,GAAa,EACD,SAASD,GAAkB,CACvB,IAAI/J,EACJ,GACIA,EAAM,cAAgBmK,GAAU,QAC7BxJ,EAAQ,IAAI8D,EAAMzE,CAAG,GAC5B,OAAAyE,EAAKzE,CAAG,EAAI,GACLA,CACvB,CACY,SAASkK,EAAwBpK,EAAQsK,GAAQ,CAC7C,GAAI,CAAChK,EAAO,KAAKN,EAAQgK,CAAO,EAAG,CAC/B,GAAI,CAACM,GACD,OACJ,OAAO,eAAetK,EAAQgK,EAAS,CAAE,MAAOnJ,EAAQ,OAAM,EAAI,CACtF,CACgB,OAAOb,EAAOgK,CAAO,CACrC,CACY,SAASO,GAAgBC,EAAQhB,GAAM,CACnC,QAAS1F,GAAI,EAAGA,GAAI0F,GAAM,EAAE1F,GACxB0G,EAAO1G,EAAC,EAAI,KAAK,OAAM,EAAK,IAAO,EACvC,OAAO0G,CACvB,CACY,SAASC,GAAejB,EAAM,CAC1B,GAAI,OAAO,YAAe,WAAY,CAClC,IAAIkB,GAAQ,IAAI,WAAWlB,CAAI,EAC/B,OAAI,OAAO,OAAW,IAClB,OAAO,gBAAgBkB,EAAK,EAEvB,OAAO,SAAa,IACzB,SAAS,gBAAgBA,EAAK,EAG9BH,GAAgBG,GAAOlB,CAAI,EAExBkB,EAC3B,CACgB,OAAOH,GAAgB,IAAI,MAAMf,CAAI,EAAGA,CAAI,CAC5D,CACY,SAASa,IAAa,CAClB,IAAIM,EAAOF,GAAeV,CAAS,EAEnCY,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,IAAO,IAE3B,QADIjF,GAAS,GACJkF,GAAS,EAAGA,GAASb,EAAW,EAAEa,GAAQ,CAC/C,IAAIC,GAAOF,EAAKC,EAAM,GAClBA,KAAW,GAAKA,KAAW,GAAKA,KAAW,KAC3ClF,IAAU,KACVmF,GAAO,KACPnF,IAAU,KACdA,IAAUmF,GAAK,SAAS,EAAE,EAAE,YAAW,CAC3D,CACgB,OAAOnF,EACvB,CACA,CAEQ,SAAS5E,GAAewF,EAAK,CACzB,OAAAA,EAAI,GAAK,OACT,OAAOA,EAAI,GACJA,CACnB,CACA,CAAK,CACL,GAAG7G,IAAYA,EAAU,CAAA,EAAG,UCh4C5B,SAASqL,GAAQC,EAAK,CACpB,MAAMhK,EAAsB,OAAO,OAAO,IAAI,EAC9C,UAAWb,KAAO6K,EAAI,MAAM,GAAG,EAAGhK,EAAIb,CAAG,EAAI,EAC7C,OAAQ8K,GAAQA,KAAOjK,CACzB,CAEA,MAAMkK,GAA4E,CAAA,EAE5EC,GAAO,IAAM,CACnB,EAKMC,GAAS,OAAO,OAChBC,GAAS,CAACC,EAAKC,IAAO,CAC1B,MAAMxH,EAAIuH,EAAI,QAAQC,CAAE,EACpBxH,EAAI,IACNuH,EAAI,OAAOvH,EAAG,CAAC,CAEnB,EACMyH,GAAiB,OAAO,UAAU,eAClCjL,GAAS,CAAC0K,EAAK9K,IAAQqL,GAAe,KAAKP,EAAK9K,CAAG,EACnDsL,GAAU,MAAM,QAChBC,GAAST,GAAQU,GAAaV,CAAG,IAAM,eACvCW,GAASX,GAAQU,GAAaV,CAAG,IAAM,eAGvCY,GAAcZ,GAAQ,OAAOA,GAAQ,WACrCa,GAAYb,GAAQ,OAAOA,GAAQ,SACnCc,GAAYd,GAAQ,OAAOA,GAAQ,SACnCe,GAAYf,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SACnDgB,GAAahB,IACTe,GAASf,CAAG,GAAKY,GAAWZ,CAAG,IAAMY,GAAWZ,EAAI,IAAI,GAAKY,GAAWZ,EAAI,KAAK,EAErFiB,GAAiB,OAAO,UAAU,SAClCP,GAAgBvL,GAAU8L,GAAe,KAAK9L,CAAK,EACnD+L,GAAa/L,GACVuL,GAAavL,CAAK,EAAE,MAAM,EAAG,EAAE,EAElCgM,GAAiBnB,GAAQU,GAAaV,CAAG,IAAM,kBAC/CoB,GAAgBlM,GAAQ2L,GAAS3L,CAAG,GAAKA,IAAQ,OAASA,EAAI,CAAC,IAAM,KAAO,GAAK,SAASA,EAAK,EAAE,IAAMA,EAkCvGmM,GAAa,CAAClM,EAAOmM,IAAa,CAAC,OAAO,GAAGnM,EAAOmM,CAAQ,EAM5DC,GAAM,CAACjG,EAAKpG,EAAKC,EAAOqM,EAAW,KAAU,CACjD,OAAO,eAAelG,EAAKpG,EAAK,CAC9B,aAAc,GACd,WAAY,GACZ,SAAAsM,EACA,MAAArM,CAAA,CACD,CACH,EASA,IAAIsM,GACJ,MAAMC,GAAgB,IACbD,KAAgBA,GAAc,OAAO,WAAe,IAAc,WAAa,OAAO,KAAS,IAAc,KAAO,OAAO,OAAW,IAAc,OAAS,OAAO,OAAW,IAAc,OAAS,IC9F/M,IAAIE,GACJ,MAAMC,EAAY,CAEhB,YAAYC,EAAW,GAAO,CAC5B,KAAK,SAAWA,EAIhB,KAAK,QAAU,GAIf,KAAK,IAAM,EAIX,KAAK,QAAU,CAAA,EAIf,KAAK,SAAW,CAAA,EAChB,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,OAASF,GACV,CAACE,GAAYF,KACf,KAAK,OAASA,GAAkB,SAAWA,GAAkB,OAAS,CAAA,IAAK,KACzE,IAAA,EACE,EAER,CACA,IAAI,QAAS,CACX,OAAO,KAAK,OACd,CACA,OAAQ,CACN,GAAI,KAAK,QAAS,CAChB,KAAK,UAAY,GACjB,IAAI7I,EAAGgJ,EACP,GAAI,KAAK,OACP,IAAKhJ,EAAI,EAAGgJ,EAAI,KAAK,OAAO,OAAQhJ,EAAIgJ,EAAGhJ,IACzC,KAAK,OAAOA,CAAC,EAAE,MAAA,EAGnB,IAAKA,EAAI,EAAGgJ,EAAI,KAAK,QAAQ,OAAQhJ,EAAIgJ,EAAGhJ,IAC1C,KAAK,QAAQA,CAAC,EAAE,MAAA,CAEpB,CACF,CAIA,QAAS,CACP,GAAI,KAAK,SACH,KAAK,UAAW,CAClB,KAAK,UAAY,GACjB,IAAIA,EAAGgJ,EACP,GAAI,KAAK,OACP,IAAKhJ,EAAI,EAAGgJ,EAAI,KAAK,OAAO,OAAQhJ,EAAIgJ,EAAGhJ,IACzC,KAAK,OAAOA,CAAC,EAAE,OAAA,EAGnB,IAAKA,EAAI,EAAGgJ,EAAI,KAAK,QAAQ,OAAQhJ,EAAIgJ,EAAGhJ,IAC1C,KAAK,QAAQA,CAAC,EAAE,OAAA,CAEpB,CAEJ,CACA,IAAIiJ,EAAI,CACN,GAAI,KAAK,QAAS,CAChB,MAAMC,EAAqBL,GAC3B,GAAI,CACF,OAAAA,GAAoB,KACbI,EAAA,CACT,QAAA,CACEJ,GAAoBK,CACtB,CACF,CAGF,CAKA,IAAK,CACC,EAAE,KAAK,MAAQ,IACjB,KAAK,UAAYL,GACjBA,GAAoB,KAExB,CAKA,KAAM,CACA,KAAK,IAAM,GAAK,EAAE,KAAK,MAAQ,IACjCA,GAAoB,KAAK,UACzB,KAAK,UAAY,OAErB,CACA,KAAKM,EAAY,CACf,GAAI,KAAK,QAAS,CAChB,KAAK,QAAU,GACf,IAAInJ,EAAGgJ,EACP,IAAKhJ,EAAI,EAAGgJ,EAAI,KAAK,QAAQ,OAAQhJ,EAAIgJ,EAAGhJ,IAC1C,KAAK,QAAQA,CAAC,EAAE,KAAA,EAGlB,IADA,KAAK,QAAQ,OAAS,EACjBA,EAAI,EAAGgJ,EAAI,KAAK,SAAS,OAAQhJ,EAAIgJ,EAAGhJ,IAC3C,KAAK,SAASA,CAAC,EAAA,EAGjB,GADA,KAAK,SAAS,OAAS,EACnB,KAAK,OAAQ,CACf,IAAKA,EAAI,EAAGgJ,EAAI,KAAK,OAAO,OAAQhJ,EAAIgJ,EAAGhJ,IACzC,KAAK,OAAOA,CAAC,EAAE,KAAK,EAAI,EAE1B,KAAK,OAAO,OAAS,CACvB,CACA,GAAI,CAAC,KAAK,UAAY,KAAK,QAAU,CAACmJ,EAAY,CAChD,MAAMC,EAAO,KAAK,OAAO,OAAO,IAAA,EAC5BA,GAAQA,IAAS,OACnB,KAAK,OAAO,OAAO,KAAK,KAAK,EAAIA,EACjCA,EAAK,MAAQ,KAAK,MAEtB,CACA,KAAK,OAAS,MAChB,CACF,CACF,CACA,SAASC,GAAYN,EAAU,CAC7B,OAAO,IAAID,GAAYC,CAAQ,CACjC,CACA,SAASO,IAAkB,CACzB,OAAOT,EACT,CACA,SAASU,GAAeN,EAAIO,EAAe,GAAO,CAC5CX,IACFA,GAAkB,SAAS,KAAKI,CAAE,CAMtC,CAEA,IAAIQ,GAmBJ,MAAMC,OAAyC,QAC/C,MAAMC,EAAe,CACnB,YAAYV,EAAI,CACd,KAAK,GAAKA,EAIV,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,EAIb,KAAK,KAAO,OAIZ,KAAK,QAAU,OACf,KAAK,UAAY,OACbJ,IAAqBA,GAAkB,QACzCA,GAAkB,QAAQ,KAAK,IAAI,CAEvC,CACA,OAAQ,CACN,KAAK,OAAS,EAChB,CACA,QAAS,CACH,KAAK,MAAQ,KACf,KAAK,OAAS,IACVa,GAAmB,IAAI,IAAI,IAC7BA,GAAmB,OAAO,IAAI,EAC9B,KAAK,QAAA,GAGX,CAIA,QAAS,CACH,KAAK,MAAQ,GAAK,EAAE,KAAK,MAAQ,KAG/B,KAAK,MAAQ,GACjBE,GAAM,IAAI,CAEd,CACA,KAAM,CACJ,GAAI,EAAE,KAAK,MAAQ,GACjB,OAAO,KAAK,GAAA,EAEd,KAAK,OAAS,EACdC,GAAc,IAAI,EAClBC,GAAY,IAAI,EAChB,MAAMC,EAAaN,GACbO,EAAkBC,GACxBR,GAAY,KACZQ,GAAc,GACd,GAAI,CACF,OAAO,KAAK,GAAA,CACd,QAAA,CAMEC,GAAY,IAAI,EAChBT,GAAYM,EACZE,GAAcD,EACd,KAAK,OAAS,EAChB,CACF,CACA,MAAO,CACL,GAAI,KAAK,MAAQ,EAAG,CAClB,QAASG,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QAC3CC,GAAUD,CAAI,EAEhB,KAAK,KAAO,KAAK,SAAW,OAC5BN,GAAc,IAAI,EAClB,KAAK,QAAU,KAAK,OAAA,EACpB,KAAK,OAAS,EAChB,CACF,CACA,SAAU,CACJ,KAAK,MAAQ,GACfH,GAAmB,IAAI,IAAI,EAClB,KAAK,UACd,KAAK,UAAA,EAEL,KAAK,WAAA,CAET,CAIA,YAAa,CACPW,GAAQ,IAAI,GACd,KAAK,IAAA,CAET,CACA,IAAI,OAAQ,CACV,OAAOA,GAAQ,IAAI,CACrB,CACF,CACA,IAAIC,GAAa,EACbC,GACAC,GACJ,SAASZ,GAAMa,EAAKC,EAAa,GAAO,CAEtC,GADAD,EAAI,OAAS,EACTC,EAAY,CACdD,EAAI,KAAOD,GACXA,GAAkBC,EAClB,MACF,CACAA,EAAI,KAAOF,GACXA,GAAaE,CACf,CACA,SAASE,IAAa,CACpBL,IACF,CACA,SAASM,IAAW,CAClB,GAAI,EAAEN,GAAa,EACjB,OAEF,GAAIE,GAAiB,CACnB,IAAI,EAAIA,GAER,IADAA,GAAkB,OACX,GAAG,CACR,MAAMxG,EAAO,EAAE,KACf,EAAE,KAAO,OACT,EAAE,OAAS,GACX,EAAIA,CACN,CACF,CACA,IAAIwB,EACJ,KAAO+E,IAAY,CACjB,IAAI,EAAIA,GAER,IADAA,GAAa,OACN,GAAG,CACR,MAAMvG,EAAO,EAAE,KAGf,GAFA,EAAE,KAAO,OACT,EAAE,OAAS,GACP,EAAE,MAAQ,EACZ,GAAI,CAEF,EAAE,QAAA,CACJ,OAAS6G,EAAK,CACPrF,IAAOA,EAAQqF,EACtB,CAEF,EAAI7G,CACN,CACF,CACA,GAAIwB,EAAO,MAAMA,CACnB,CACA,SAASsE,GAAYW,EAAK,CACxB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1CA,EAAK,QAAU,GACfA,EAAK,eAAiBA,EAAK,IAAI,WAC/BA,EAAK,IAAI,WAAaA,CAE1B,CACA,SAASD,GAAYO,EAAK,CACxB,IAAIK,EACAC,EAAON,EAAI,SACXN,EAAOY,EACX,KAAOZ,GAAM,CACX,MAAMa,EAAOb,EAAK,QACdA,EAAK,UAAY,IACfA,IAASY,IAAMA,EAAOC,GAC1BZ,GAAUD,CAAI,EACdc,GAAUd,CAAI,GAEdW,EAAOX,EAETA,EAAK,IAAI,WAAaA,EAAK,eAC3BA,EAAK,eAAiB,OACtBA,EAAOa,CACT,CACAP,EAAI,KAAOK,EACXL,EAAI,SAAWM,CACjB,CACA,SAASV,GAAQI,EAAK,CACpB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1C,GAAIA,EAAK,IAAI,UAAYA,EAAK,SAAWA,EAAK,IAAI,WAAae,GAAgBf,EAAK,IAAI,QAAQ,GAAKA,EAAK,IAAI,UAAYA,EAAK,SAC7H,MAAO,GAGX,MAAI,EAAAM,EAAI,MAIV,CACA,SAASS,GAAgBC,EAAU,CASjC,GARIA,EAAS,MAAQ,GAAK,EAAEA,EAAS,MAAQ,MAG7CA,EAAS,OAAS,IACdA,EAAS,gBAAkBC,MAG/BD,EAAS,cAAgBC,GACrB,CAACD,EAAS,OAASA,EAAS,MAAQ,MAAQ,CAACA,EAAS,MAAQ,CAACA,EAAS,QAAU,CAACd,GAAQc,CAAQ,IACrG,OAEFA,EAAS,OAAS,EAClB,MAAME,EAAMF,EAAS,IACfG,EAAU7B,GACVO,EAAkBC,GACxBR,GAAY0B,EACZlB,GAAc,GACd,GAAI,CACFH,GAAYqB,CAAQ,EACpB,MAAM9O,EAAQ8O,EAAS,GAAGA,EAAS,MAAM,GACrCE,EAAI,UAAY,GAAK9C,GAAWlM,EAAO8O,EAAS,MAAM,KACxDA,EAAS,OAAS,IAClBA,EAAS,OAAS9O,EAClBgP,EAAI,UAER,OAASR,EAAK,CACZ,MAAAQ,EAAI,UACER,CACR,QAAA,CACEpB,GAAY6B,EACZrB,GAAcD,EACdE,GAAYiB,CAAQ,EACpBA,EAAS,OAAS,EACpB,CACF,CACA,SAASf,GAAUD,EAAMoB,EAAO,GAAO,CACrC,KAAM,CAAE,IAAAF,EAAK,QAAAC,EAAS,QAAAE,CAAA,EAAYrB,EAYlC,GAXImB,IACFA,EAAQ,QAAUE,EAClBrB,EAAK,QAAU,QAEbqB,IACFA,EAAQ,QAAUF,EAClBnB,EAAK,QAAU,QAKbkB,EAAI,OAASlB,IACfkB,EAAI,KAAOC,EACP,CAACA,GAAWD,EAAI,UAAU,CAC5BA,EAAI,SAAS,OAAS,GACtB,QAASrC,EAAIqC,EAAI,SAAS,KAAMrC,EAAGA,EAAIA,EAAE,QACvCoB,GAAUpB,EAAG,EAAI,CAErB,CAEE,CAACuC,GAAQ,CAAC,EAAEF,EAAI,IAAMA,EAAI,KAC5BA,EAAI,IAAI,OAAOA,EAAI,GAAG,CAE1B,CACA,SAASJ,GAAUd,EAAM,CACvB,KAAM,CAAE,QAAAsB,EAAS,QAAAC,CAAA,EAAYvB,EACzBsB,IACFA,EAAQ,QAAUC,EAClBvB,EAAK,QAAU,QAEbuB,IACFA,EAAQ,QAAUD,EAClBtB,EAAK,QAAU,OAEnB,CAsBA,IAAIF,GAAc,GAClB,MAAM0B,GAAa,CAAA,EACnB,SAASC,IAAgB,CACvBD,GAAW,KAAK1B,EAAW,EAC3BA,GAAc,EAChB,CAKA,SAAS4B,IAAgB,CACvB,MAAMzC,EAAOuC,GAAW,IAAA,EACxB1B,GAAcb,IAAS,OAAS,GAAOA,CACzC,CAUA,SAASS,GAAchF,EAAG,CACxB,KAAM,CAAE,QAAAiH,GAAYjH,EAEpB,GADAA,EAAE,QAAU,OACRiH,EAAS,CACX,MAAMR,EAAU7B,GAChBA,GAAY,OACZ,GAAI,CACFqC,EAAA,CACF,QAAA,CACErC,GAAY6B,CACd,CACF,CACF,CAEA,IAAIF,GAAgB,EACpB,MAAMW,EAAK,CACT,YAAYtB,EAAKY,EAAK,CACpB,KAAK,IAAMZ,EACX,KAAK,IAAMY,EACX,KAAK,QAAUA,EAAI,QACnB,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,eAAiB,MACpF,CACF,CACA,MAAMW,EAAI,CAER,YAAYb,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,QAAU,EAIf,KAAK,WAAa,OAIlB,KAAK,KAAO,OAIZ,KAAK,IAAM,OACX,KAAK,IAAM,OAIX,KAAK,GAAK,EAIV,KAAK,SAAW,EAIlB,CACA,MAAMc,EAAW,CACf,GAAI,CAACxC,IAAa,CAACQ,IAAeR,KAAc,KAAK,SACnD,OAEF,IAAIU,EAAO,KAAK,WAChB,GAAIA,IAAS,QAAUA,EAAK,MAAQV,GAClCU,EAAO,KAAK,WAAa,IAAI4B,GAAKtC,GAAW,IAAI,EAC5CA,GAAU,MAGbU,EAAK,QAAUV,GAAU,SACzBA,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,GAJrBV,GAAU,KAAOA,GAAU,SAAWU,EAMxC+B,GAAO/B,CAAI,UACFA,EAAK,UAAY,KAC1BA,EAAK,QAAU,KAAK,QAChBA,EAAK,SAAS,CAChB,MAAMnG,EAAOmG,EAAK,QAClBnG,EAAK,QAAUmG,EAAK,QAChBA,EAAK,UACPA,EAAK,QAAQ,QAAUnG,GAEzBmG,EAAK,QAAUV,GAAU,SACzBU,EAAK,QAAU,OACfV,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,EACjBV,GAAU,OAASU,IACrBV,GAAU,KAAOzF,EAErB,CAYF,OAAOmG,CACT,CACA,QAAQ8B,EAAW,CACjB,KAAK,UACLb,KACA,KAAK,OAAOa,CAAS,CACvB,CACA,OAAOA,EAAW,CAChBtB,GAAA,EACA,GAAI,CAeF,QAASR,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QACvCA,EAAK,IAAI,UAEXA,EAAK,IAAI,IAAI,OAAA,CAGnB,QAAA,CACES,GAAA,CACF,CACF,CACF,CACA,SAASsB,GAAO/B,EAAM,CAEpB,GADAA,EAAK,IAAI,KACLA,EAAK,IAAI,MAAQ,EAAG,CACtB,MAAMgB,EAAWhB,EAAK,IAAI,SAC1B,GAAIgB,GAAY,CAAChB,EAAK,IAAI,KAAM,CAC9BgB,EAAS,OAAS,GAClB,QAASnC,EAAImC,EAAS,KAAMnC,EAAGA,EAAIA,EAAE,QACnCkD,GAAOlD,CAAC,CAEZ,CACA,MAAMmD,EAAchC,EAAK,IAAI,KACzBgC,IAAgBhC,IAClBA,EAAK,QAAUgC,EACXA,MAAyB,QAAUhC,IAKzCA,EAAK,IAAI,KAAOA,CAClB,CACF,CACA,MAAMiC,OAAgC,QAChCC,GAA8B,OAC6B,EACjE,EACMC,GAAsC,OACuB,EACnE,EACMC,GAAoC,OACsB,EAChE,EACA,SAASC,GAAMtQ,EAAQuQ,EAAMrQ,EAAK,CAChC,GAAI6N,IAAeR,GAAW,CAC5B,IAAIiD,EAAUN,GAAU,IAAIlQ,CAAM,EAC7BwQ,GACHN,GAAU,IAAIlQ,EAAQwQ,EAA0B,IAAI,GAAK,EAE3D,IAAIrB,EAAMqB,EAAQ,IAAItQ,CAAG,EACpBiP,IACHqB,EAAQ,IAAItQ,EAAKiP,EAAM,IAAIW,EAAK,EAChCX,EAAI,IAAMqB,EACVrB,EAAI,IAAMjP,GASViP,EAAI,MAAA,CAER,CACF,CACA,SAASsB,GAAQzQ,EAAQuQ,EAAMrQ,EAAKwQ,EAAUpE,EAAUqE,EAAW,CACjE,MAAMH,EAAUN,GAAU,IAAIlQ,CAAM,EACpC,GAAI,CAACwQ,EAAS,CACZtB,KACA,MACF,CACA,MAAM0B,EAAOzB,GAAQ,CACfA,GAWAA,EAAI,QAAA,CAGV,EAEA,GADAV,GAAA,EACI8B,IAAS,QACXC,EAAQ,QAAQI,CAAG,MACd,CACL,MAAMC,EAAgBrF,GAAQxL,CAAM,EAC9B8Q,EAAeD,GAAiBzE,GAAalM,CAAG,EACtD,GAAI2Q,GAAiB3Q,IAAQ,SAAU,CACrC,MAAM6Q,EAAY,OAAOL,CAAQ,EACjCF,EAAQ,QAAQ,CAACrB,EAAK6B,IAAS,EACzBA,IAAS,UAAYA,IAASX,IAAqB,CAACvE,GAASkF,CAAI,GAAKA,GAAQD,IAChFH,EAAIzB,CAAG,CAEX,CAAC,CACH,KAOE,SANIjP,IAAQ,QAAUsQ,EAAQ,IAAI,MAAM,IACtCI,EAAIJ,EAAQ,IAAItQ,CAAG,CAAC,EAElB4Q,GACFF,EAAIJ,EAAQ,IAAIH,EAAiB,CAAC,EAE5BE,EAAA,CACN,IAAK,MACEM,EAKMC,GACTF,EAAIJ,EAAQ,IAAI,QAAQ,CAAC,GALzBI,EAAIJ,EAAQ,IAAIL,EAAW,CAAC,EACxB1E,GAAMzL,CAAM,GACd4Q,EAAIJ,EAAQ,IAAIJ,EAAmB,CAAC,GAKxC,MACF,IAAK,SACES,IACHD,EAAIJ,EAAQ,IAAIL,EAAW,CAAC,EACxB1E,GAAMzL,CAAM,GACd4Q,EAAIJ,EAAQ,IAAIJ,EAAmB,CAAC,GAGxC,MACF,IAAK,MACC3E,GAAMzL,CAAM,GACd4Q,EAAIJ,EAAQ,IAAIL,EAAW,CAAC,EAE9B,KAAA,CAGR,CACAzB,GAAA,CACF,CACA,SAASuC,GAAmBC,EAAQhR,EAAK,CACvC,MAAMiR,EAASjB,GAAU,IAAIgB,CAAM,EACnC,OAAOC,GAAUA,EAAO,IAAIjR,CAAG,CACjC,CAEA,SAASkR,GAAkB1G,EAAO,CAChC,MAAM2G,KAAY3G,CAAK,EACvB,OAAI2G,IAAQ3G,EAAc2G,GAC1Bf,GAAMe,EAAK,UAAWhB,EAAiB,KACtB3F,CAAK,EAAI2G,EAAMA,EAAI,IAAIC,EAAU,EACpD,CACA,SAASC,GAAiBlG,EAAK,CAC7B,OAAAiF,GAAMjF,EAAMmG,GAAMnG,CAAG,EAAG,UAAWgF,EAAiB,EAC7ChF,CACT,CACA,SAASoG,GAAUzR,EAAQ0R,EAAM,CAC/B,OAAIC,GAAW3R,CAAM,EACS4R,GAArBC,GAAW7R,CAAM,EAAesR,GAAWI,CAAI,EAAgBA,CAAf,EAElDJ,GAAWI,CAAI,CACxB,CACA,MAAMI,GAAwB,CAC5B,UAAW,KACX,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOtL,GAAS,KAAM,OAAO,SAAWkL,GAASD,GAAU,KAAMC,CAAI,CAAC,CACxE,EACA,UAAUK,EAAM,CACd,OAAOX,GAAkB,IAAI,EAAE,OAC7B,GAAGW,EAAK,IAAK7M,GAAMsG,GAAQtG,CAAC,EAAIkM,GAAkBlM,CAAC,EAAIA,CAAC,CAAA,CAE5D,EACA,SAAU,CACR,OAAOsB,GAAS,KAAM,UAAYrG,IAChCA,EAAM,CAAC,EAAIsR,GAAU,KAAMtR,EAAM,CAAC,CAAC,EAC5BA,EACR,CACH,EACA,MAAM4M,EAAIiF,EAAS,CACjB,OAAOC,GAAM,KAAM,QAASlF,EAAIiF,EAAS,OAAQ,SAAS,CAC5D,EACA,OAAOjF,EAAIiF,EAAS,CAClB,OAAOC,GACL,KACA,SACAlF,EACAiF,EACCE,GAAMA,EAAE,IAAKR,GAASD,GAAU,KAAMC,CAAI,CAAC,EAC5C,SAAA,CAEJ,EACA,KAAK3E,EAAIiF,EAAS,CAChB,OAAOC,GACL,KACA,OACAlF,EACAiF,EACCN,GAASD,GAAU,KAAMC,CAAI,EAC9B,SAAA,CAEJ,EACA,UAAU3E,EAAIiF,EAAS,CACrB,OAAOC,GAAM,KAAM,YAAalF,EAAIiF,EAAS,OAAQ,SAAS,CAChE,EACA,SAASjF,EAAIiF,EAAS,CACpB,OAAOC,GACL,KACA,WACAlF,EACAiF,EACCN,GAASD,GAAU,KAAMC,CAAI,EAC9B,SAAA,CAEJ,EACA,cAAc3E,EAAIiF,EAAS,CACzB,OAAOC,GAAM,KAAM,gBAAiBlF,EAAIiF,EAAS,OAAQ,SAAS,CACpE,EAEA,QAAQjF,EAAIiF,EAAS,CACnB,OAAOC,GAAM,KAAM,UAAWlF,EAAIiF,EAAS,OAAQ,SAAS,CAC9D,EACA,YAAYD,EAAM,CAChB,OAAOI,GAAY,KAAM,WAAYJ,CAAI,CAC3C,EACA,WAAWA,EAAM,CACf,OAAOI,GAAY,KAAM,UAAWJ,CAAI,CAC1C,EACA,KAAKK,EAAW,CACd,OAAOhB,GAAkB,IAAI,EAAE,KAAKgB,CAAS,CAC/C,EAEA,eAAeL,EAAM,CACnB,OAAOI,GAAY,KAAM,cAAeJ,CAAI,CAC9C,EACA,IAAIhF,EAAIiF,EAAS,CACf,OAAOC,GAAM,KAAM,MAAOlF,EAAIiF,EAAS,OAAQ,SAAS,CAC1D,EACA,KAAM,CACJ,OAAOK,GAAW,KAAM,KAAK,CAC/B,EACA,QAAQN,EAAM,CACZ,OAAOM,GAAW,KAAM,OAAQN,CAAI,CACtC,EACA,OAAOhF,KAAOgF,EAAM,CAClB,OAAOO,GAAO,KAAM,SAAUvF,EAAIgF,CAAI,CACxC,EACA,YAAYhF,KAAOgF,EAAM,CACvB,OAAOO,GAAO,KAAM,cAAevF,EAAIgF,CAAI,CAC7C,EACA,OAAQ,CACN,OAAOM,GAAW,KAAM,OAAO,CACjC,EAEA,KAAKtF,EAAIiF,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQlF,EAAIiF,EAAS,OAAQ,SAAS,CAC3D,EACA,UAAUD,EAAM,CACd,OAAOM,GAAW,KAAM,SAAUN,CAAI,CACxC,EACA,YAAa,CACX,OAAOX,GAAkB,IAAI,EAAE,WAAA,CACjC,EACA,SAASmB,EAAU,CACjB,OAAOnB,GAAkB,IAAI,EAAE,SAASmB,CAAQ,CAClD,EACA,aAAaR,EAAM,CACjB,OAAOX,GAAkB,IAAI,EAAE,UAAU,GAAGW,CAAI,CAClD,EACA,WAAWA,EAAM,CACf,OAAOM,GAAW,KAAM,UAAWN,CAAI,CACzC,EACA,QAAS,CACP,OAAOvL,GAAS,KAAM,SAAWkL,GAASD,GAAU,KAAMC,CAAI,CAAC,CACjE,CACF,EACA,SAASlL,GAASgM,EAAMjM,EAAQkM,EAAW,CACzC,MAAMpH,EAAMkG,GAAiBiB,CAAI,EAC3BE,EAAOrH,EAAI9E,CAAM,EAAA,EACvB,OAAI8E,IAAQmH,GAAQ,CAACG,GAAUH,CAAI,IACjCE,EAAK,MAAQA,EAAK,KAClBA,EAAK,KAAO,IAAM,CAChB,MAAMhN,EAASgN,EAAK,MAAA,EACpB,OAAKhN,EAAO,OACVA,EAAO,MAAQ+M,EAAU/M,EAAO,KAAK,GAEhCA,CACT,GAEKgN,CACT,CACA,MAAME,GAAa,MAAM,UACzB,SAASX,GAAMO,EAAMjM,EAAQwG,EAAIiF,EAASa,EAAcd,EAAM,CAC5D,MAAM1G,EAAMkG,GAAiBiB,CAAI,EAC3BM,EAAYzH,IAAQmH,GAAQ,IAAWA,CAAI,EAC3CO,EAAW1H,EAAI9E,CAAM,EAC3B,GAAIwM,IAAaH,GAAWrM,CAAM,EAAG,CACnC,MAAMyM,EAAUD,EAAS,MAAMP,EAAMT,CAAI,EACzC,OAAOe,EAAYxB,GAAW0B,CAAO,EAAIA,CAC3C,CACA,IAAIC,EAAYlG,EACZ1B,IAAQmH,IACNM,EACFG,EAAY,SAASvB,EAAMrI,EAAO,CAChC,OAAO0D,EAAG,KAAK,KAAM0E,GAAUe,EAAMd,CAAI,EAAGrI,EAAOmJ,CAAI,CACzD,EACSzF,EAAG,OAAS,IACrBkG,EAAY,SAASvB,EAAMrI,EAAO,CAChC,OAAO0D,EAAG,KAAK,KAAM2E,EAAMrI,EAAOmJ,CAAI,CACxC,IAGJ,MAAM9M,EAASqN,EAAS,KAAK1H,EAAK4H,EAAWjB,CAAO,EACpD,OAAOc,GAAaD,EAAeA,EAAanN,CAAM,EAAIA,CAC5D,CACA,SAAS4M,GAAOE,EAAMjM,EAAQwG,EAAIgF,EAAM,CACtC,MAAM1G,EAAMkG,GAAiBiB,CAAI,EAC3BM,EAAYzH,IAAQmH,GAAQ,IAAWA,CAAI,EACjD,IAAIS,EAAYlG,EACZmG,EAAyB,GACzB7H,IAAQmH,IACNM,GACFI,EAAyBnB,EAAK,SAAW,EACzCkB,EAAY,SAASE,EAAKzB,EAAMrI,EAAO,CACrC,OAAI6J,IACFA,EAAyB,GACzBC,EAAM1B,GAAUe,EAAMW,CAAG,GAEpBpG,EAAG,KAAK,KAAMoG,EAAK1B,GAAUe,EAAMd,CAAI,EAAGrI,EAAOmJ,CAAI,CAC9D,GACSzF,EAAG,OAAS,IACrBkG,EAAY,SAASE,EAAKzB,EAAMrI,EAAO,CACrC,OAAO0D,EAAG,KAAK,KAAMoG,EAAKzB,EAAMrI,EAAOmJ,CAAI,CAC7C,IAGJ,MAAM9M,EAAS2F,EAAI9E,CAAM,EAAE0M,EAAW,GAAGlB,CAAI,EAC7C,OAAOmB,EAAyBzB,GAAUe,EAAM9M,CAAM,EAAIA,CAC5D,CACA,SAASyM,GAAYK,EAAMjM,EAAQwL,EAAM,CACvC,MAAM1G,KAAYmH,CAAI,EACtBlC,GAAMjF,EAAK,UAAWgF,EAAiB,EACvC,MAAM+C,EAAM/H,EAAI9E,CAAM,EAAE,GAAGwL,CAAI,EAC/B,OAAKqB,IAAQ,IAAMA,IAAQ,QAAkBrB,EAAK,CAAC,CAAC,GAClDA,EAAK,CAAC,EAAIP,GAAMO,EAAK,CAAC,CAAC,EAChB1G,EAAI9E,CAAM,EAAE,GAAGwL,CAAI,GAErBqB,CACT,CACA,SAASf,GAAWG,EAAMjM,EAAQwL,EAAO,CAAA,EAAI,CAC3CrC,GAAA,EACAjB,GAAA,EACA,MAAM2E,KAAYZ,CAAI,EAAEjM,CAAM,EAAE,MAAMiM,EAAMT,CAAI,EAChD,OAAArD,GAAA,EACAiB,GAAA,EACOyD,CACT,CAEA,MAAMC,MAA6C,6BAA6B,EAC1EC,GAAiB,IAAI,IACT,OAAO,oBAAoB,MAAM,EAAE,OAAQpT,GAAQA,IAAQ,aAAeA,IAAQ,QAAQ,EAAE,IAAKA,GAAQ,OAAOA,CAAG,CAAC,EAAE,OAAO4L,EAAQ,CACvJ,EACA,SAASP,GAAerL,EAAK,CACtB4L,GAAS5L,CAAG,IAAGA,EAAM,OAAOA,CAAG,GACpC,MAAMoG,KAAY,IAAI,EACtB,OAAAgK,GAAMhK,EAAK,MAAOpG,CAAG,EACdoG,EAAI,eAAepG,CAAG,CAC/B,CACA,MAAMqT,EAAoB,CACxB,YAAYC,EAAc,GAAOC,EAAa,GAAO,CACnD,KAAK,YAAcD,EACnB,KAAK,WAAaC,CACpB,CACA,IAAIzT,EAAQE,EAAKwT,EAAU,CACzB,GAAIxT,IAAQ,WAAY,OAAOF,EAAO,SACtC,MAAM2T,EAAc,KAAK,YAAaC,EAAa,KAAK,WACxD,GAAI1T,IAAQ,iBACV,MAAO,CAACyT,EACV,GAAWzT,IAAQ,iBACjB,OAAOyT,EACT,GAAWzT,IAAQ,gBACjB,OAAO0T,EACT,GAAW1T,IAAQ,UACjB,OAAIwT,KAAcC,EAAcC,EAAaC,GAAqBC,GAAcF,EAAaG,GAAqBC,IAAa,IAAIhU,CAAM,GAEzI,OAAO,eAAeA,CAAM,IAAM,OAAO,eAAe0T,CAAQ,EACvD1T,EAET,OAEF,MAAM6Q,EAAgBrF,GAAQxL,CAAM,EACpC,GAAI,CAAC2T,EAAa,CAChB,IAAI5G,EACJ,GAAI8D,IAAkB9D,EAAK+E,GAAsB5R,CAAG,GAClD,OAAO6M,EAET,GAAI7M,IAAQ,iBACV,OAAOqL,EAEX,CACA,MAAM6H,EAAM,QAAQ,IAClBpT,EACAE,EAIA+T,GAAMjU,CAAM,EAAIA,EAAS0T,CAAA,EAQ3B,IANI5H,GAAS5L,CAAG,EAAIoT,GAAe,IAAIpT,CAAG,EAAImT,GAAmBnT,CAAG,KAG/DyT,GACHrD,GAAMtQ,EAAQ,MAAOE,CAAG,EAEtB0T,GACF,OAAOR,EAET,GAAIa,GAAMb,CAAG,EAAG,CACd,MAAMjT,EAAQ0Q,GAAiBzE,GAAalM,CAAG,EAAIkT,EAAMA,EAAI,MAC7D,OAAOO,GAAe5H,GAAS5L,CAAK,EAAI+T,GAAS/T,CAAK,EAAIA,CAC5D,CACA,OAAI4L,GAASqH,CAAG,EACPO,EAAcO,GAASd,CAAG,KAAaA,CAAG,EAE5CA,CACT,CACF,CACA,MAAMe,WAA+BZ,EAAoB,CACvD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAOA,CAAU,CACzB,CACA,IAAI5T,EAAQE,EAAKC,EAAOuT,EAAU,CAChC,IAAIpH,EAAWtM,EAAOE,CAAG,EACzB,MAAMkU,EAAwB5I,GAAQxL,CAAM,GAAKoM,GAAalM,CAAG,EACjE,GAAI,CAAC,KAAK,WAAY,CACpB,MAAMmU,KAAgC/H,CAAQ,EAK9C,GAJI,CAACqG,GAAUxS,CAAK,GAAK,CAACwR,GAAWxR,CAAK,IACxCmM,KAAiBA,CAAQ,EACzBnM,KAAcA,CAAK,GAEjB,CAACiU,GAAyBH,GAAM3H,CAAQ,GAAK,CAAC2H,GAAM9T,CAAK,EAC3D,OAAIkU,IASF/H,EAAS,MAAQnM,GACV,EAGb,CACA,MAAMmU,EAASF,EAAwB,OAAOlU,CAAG,EAAIF,EAAO,OAASM,GAAON,EAAQE,CAAG,EACjFwF,EAAS,QAAQ,IACrB1F,EACAE,EACAC,EACA8T,GAAMjU,CAAM,EAAIA,EAAS0T,CAAA,EAE3B,OAAI1T,IAAWwR,GAAMkC,CAAQ,IACtBY,EAEMjI,GAAWlM,EAAOmM,CAAQ,GACnCmE,GAAQzQ,EAAQ,MAAOE,EAAKC,CAAe,EAF3CsQ,GAAQzQ,EAAQ,MAAOE,EAAKC,CAAK,GAK9BuF,CACT,CACA,eAAe1F,EAAQE,EAAK,CAC1B,MAAMoU,EAAShU,GAAON,EAAQE,CAAG,EAChBF,EAAOE,CAAG,EAC3B,MAAMwF,EAAS,QAAQ,eAAe1F,EAAQE,CAAG,EACjD,OAAIwF,GAAU4O,GACZ7D,GAAQzQ,EAAQ,SAAUE,EAAK,MAAgB,EAE1CwF,CACT,CACA,IAAI1F,EAAQE,EAAK,CACf,MAAMwF,EAAS,QAAQ,IAAI1F,EAAQE,CAAG,EACtC,OAAI,CAAC4L,GAAS5L,CAAG,GAAK,CAACoT,GAAe,IAAIpT,CAAG,IAC3CoQ,GAAMtQ,EAAQ,MAAOE,CAAG,EAEnBwF,CACT,CACA,QAAQ1F,EAAQ,CACd,OAAAsQ,GACEtQ,EACA,UACAwL,GAAQxL,CAAM,EAAI,SAAWmQ,EAAA,EAExB,QAAQ,QAAQnQ,CAAM,CAC/B,CACF,CACA,MAAMuU,WAAgChB,EAAoB,CACxD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAMA,CAAU,CACxB,CACA,IAAI5T,EAAQE,EAAK,CAOf,MAAO,EACT,CACA,eAAeF,EAAQE,EAAK,CAO1B,MAAO,EACT,CACF,CACA,MAAMsU,OAAsCL,GACtCM,OAAuCF,GAIvCG,GAAavU,GAAUA,EACvBwU,GAAYzC,GAAM,QAAQ,eAAeA,CAAC,EAChD,SAAS0C,GAAqBrO,EAAQoN,EAAaC,EAAY,CAC7D,OAAO,YAAY7B,EAAM,CACvB,MAAM/R,EAAS,KAAK,QACd6U,KAAkB7U,CAAM,EACxB8U,EAAcrJ,GAAMoJ,CAAS,EAC7BE,EAASxO,IAAW,WAAaA,IAAW,OAAO,UAAYuO,EAC/DE,EAAYzO,IAAW,QAAUuO,EACjCG,EAAgBjV,EAAOuG,CAAM,EAAE,GAAGwL,CAAI,EACtCmD,EAAOtB,EAAac,GAAYf,EAAc/B,GAAaN,GACjE,OAACqC,GAAerD,GACduE,EACA,UACAG,EAAY5E,GAAsBD,EAAA,EAE7BhF,GAEL,OAAO,OAAO8J,CAAa,EAC3B,CAEE,MAAO,CACL,KAAM,CAAE,MAAA9U,EAAO,KAAAgV,GAASF,EAAc,KAAA,EACtC,OAAOE,EAAO,CAAE,MAAAhV,EAAO,KAAAgV,GAAS,CAC9B,MAAOJ,EAAS,CAACG,EAAK/U,EAAM,CAAC,CAAC,EAAG+U,EAAK/U,EAAM,CAAC,CAAC,CAAC,EAAI+U,EAAK/U,CAAK,EAC7D,KAAAgV,CAAA,CAEJ,CAAA,CACF,CAEJ,CACF,CACA,SAASC,GAAqB7E,EAAM,CAClC,OAAO,YAAYwB,EAAM,CAQvB,OAAOxB,IAAS,SAAW,GAAQA,IAAS,QAAU,OAAS,IACjE,CACF,CACA,SAAS8E,GAAuBnB,EAAUoB,EAAS,CACjD,MAAMC,EAAmB,CACvB,IAAIrV,EAAK,CACP,MAAMF,EAAS,KAAK,QACd6U,KAAkB7U,CAAM,EACxBwV,KAAetV,CAAG,EACnBgU,IACC7H,GAAWnM,EAAKsV,CAAM,GACxBlF,GAAMuE,EAAW,MAAO3U,CAAG,EAE7BoQ,GAAMuE,EAAW,MAAOW,CAAM,GAEhC,KAAM,CAAE,IAAAC,CAAA,EAAQd,GAASE,CAAS,EAC5BK,EAAOI,EAAUZ,GAAYR,EAAWtC,GAAaN,GAC3D,GAAImE,EAAI,KAAKZ,EAAW3U,CAAG,EACzB,OAAOgV,EAAKlV,EAAO,IAAIE,CAAG,CAAC,EAC7B,GAAWuV,EAAI,KAAKZ,EAAWW,CAAM,EACnC,OAAON,EAAKlV,EAAO,IAAIwV,CAAM,CAAC,EACrBxV,IAAW6U,GACpB7U,EAAO,IAAIE,CAAG,CAElB,EACA,IAAI,MAAO,CACT,MAAMF,EAAS,KAAK,QACpB,OAACkU,GAAY5D,GAAMkB,GAAMxR,CAAM,EAAG,UAAWmQ,EAAW,EACjDnQ,EAAO,IAChB,EACA,IAAIE,EAAK,CACP,MAAMF,EAAS,KAAK,QACd6U,KAAkB7U,CAAM,EACxBwV,KAAetV,CAAG,EACxB,OAAKgU,IACC7H,GAAWnM,EAAKsV,CAAM,GACxBlF,GAAMuE,EAAW,MAAO3U,CAAG,EAE7BoQ,GAAMuE,EAAW,MAAOW,CAAM,GAEzBtV,IAAQsV,EAASxV,EAAO,IAAIE,CAAG,EAAIF,EAAO,IAAIE,CAAG,GAAKF,EAAO,IAAIwV,CAAM,CAChF,EACA,QAAQE,EAAU1D,EAAS,CACzB,MAAM2D,EAAW,KACX3V,EAAS2V,EAAS,QAClBd,KAAkB7U,CAAM,EACxBkV,EAAOI,EAAUZ,GAAYR,EAAWtC,GAAaN,GAC3D,OAAC4C,GAAY5D,GAAMuE,EAAW,UAAW1E,EAAW,EAC7CnQ,EAAO,QAAQ,CAACG,EAAOD,IACrBwV,EAAS,KAAK1D,EAASkD,EAAK/U,CAAK,EAAG+U,EAAKhV,CAAG,EAAGyV,CAAQ,CAC/D,CACH,CAAA,EAEF,OAAAxK,GACEoK,EACArB,EAAW,CACT,IAAKkB,GAAqB,KAAK,EAC/B,IAAKA,GAAqB,KAAK,EAC/B,OAAQA,GAAqB,QAAQ,EACrC,MAAOA,GAAqB,OAAO,CAAA,EACjC,CACF,IAAIjV,EAAO,CACT,MAAMH,KAAe,IAAI,EACnB8G,EAAQ6N,GAAS3U,CAAM,EACvB4V,KAAiBzV,CAAK,EACtB0V,EAAa,CAACP,GAAW,CAAC3C,GAAUxS,CAAK,GAAK,CAACwR,GAAWxR,CAAK,EAAIyV,EAAWzV,EAEpF,OADe2G,EAAM,IAAI,KAAK9G,EAAQ6V,CAAU,GAAKxJ,GAAWlM,EAAO0V,CAAU,GAAK/O,EAAM,IAAI,KAAK9G,EAAQG,CAAK,GAAKkM,GAAWuJ,EAAUC,CAAU,GAAK/O,EAAM,IAAI,KAAK9G,EAAQ4V,CAAQ,IAExL5V,EAAO,IAAI6V,CAAU,EACrBpF,GAAQzQ,EAAQ,MAAO6V,EAAYA,CAAU,GAExC,IACT,EACA,IAAI3V,EAAKC,EAAO,CACV,CAACmV,GAAW,CAAC3C,GAAUxS,CAAK,GAAK,CAACwR,GAAWxR,CAAK,IACpDA,KAAcA,CAAK,GAErB,MAAMH,KAAe,IAAI,EACnB,CAAE,IAAAyV,EAAK,IAAAK,GAAQnB,GAAS3U,CAAM,EACpC,IAAIsU,EAASmB,EAAI,KAAKzV,EAAQE,CAAG,EAC5BoU,IACHpU,KAAYA,CAAG,EACfoU,EAASmB,EAAI,KAAKzV,EAAQE,CAAG,GAI/B,MAAMoM,EAAWwJ,EAAI,KAAK9V,EAAQE,CAAG,EACrC,OAAAF,EAAO,IAAIE,EAAKC,CAAK,EAChBmU,EAEMjI,GAAWlM,EAAOmM,CAAQ,GACnCmE,GAAQzQ,EAAQ,MAAOE,EAAKC,CAAe,EAF3CsQ,GAAQzQ,EAAQ,MAAOE,EAAKC,CAAK,EAI5B,IACT,EACA,OAAOD,EAAK,CACV,MAAMF,KAAe,IAAI,EACnB,CAAE,IAAAyV,EAAK,IAAAK,GAAQnB,GAAS3U,CAAM,EACpC,IAAIsU,EAASmB,EAAI,KAAKzV,EAAQE,CAAG,EAC5BoU,IACHpU,KAAYA,CAAG,EACfoU,EAASmB,EAAI,KAAKzV,EAAQE,CAAG,GAId4V,GAAMA,EAAI,KAAK9V,EAAQE,CAAG,EAC3C,MAAMwF,EAAS1F,EAAO,OAAOE,CAAG,EAChC,OAAIoU,GACF7D,GAAQzQ,EAAQ,SAAUE,EAAK,MAAgB,EAE1CwF,CACT,EACA,OAAQ,CACN,MAAM1F,KAAe,IAAI,EACnB+V,EAAW/V,EAAO,OAAS,EAE3B0F,EAAS1F,EAAO,MAAA,EACtB,OAAI+V,GACFtF,GACEzQ,EACA,QACA,OACA,MAEF,EAEK0F,CACT,CAAA,CACF,EAEsB,CACtB,OACA,SACA,UACA,OAAO,QAAA,EAEO,QAASa,GAAW,CAClCgP,EAAiBhP,CAAM,EAAIqO,GAAqBrO,EAAQ2N,EAAUoB,CAAO,CAC3E,CAAC,EACMC,CACT,CACA,SAASS,GAA4BrC,EAAa2B,EAAS,CACzD,MAAMC,EAAmBF,GAAuB1B,EAAa2B,CAAO,EACpE,MAAO,CAACtV,EAAQE,EAAKwT,IACfxT,IAAQ,iBACH,CAACyT,EACCzT,IAAQ,iBACVyT,EACEzT,IAAQ,UACVF,EAEF,QAAQ,IACbM,GAAOiV,EAAkBrV,CAAG,GAAKA,KAAOF,EAASuV,EAAmBvV,EACpEE,EACAwT,CAAA,CAGN,CACA,MAAMuC,GAA4B,CAChC,IAAqBD,GAA4B,GAAO,EAAK,CAC/D,EAIME,GAA6B,CACjC,IAAqBF,GAA4B,GAAM,EAAK,CAC9D,EAcMhC,OAAkC,QAClCD,OAAyC,QACzCD,OAAkC,QAClCD,OAAyC,QAC/C,SAASsC,GAAcC,EAAS,CAC9B,OAAQA,EAAA,CACN,IAAK,SACL,IAAK,QACH,MAAO,GACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACH,MAAO,GACT,QACE,MAAO,EAAA,CAEb,CACA,SAASC,GAAclW,EAAO,CAC5B,OAAOA,EAAM,UAAe,CAAC,OAAO,aAAaA,CAAK,EAAI,EAAkBgW,GAAcjK,GAAU/L,CAAK,CAAC,CAC5G,CAEA,SAASmW,GAAStW,EAAQ,CACxB,OAAoB2R,GAAW3R,CAAM,EAC5BA,EAEFuW,GACLvW,EACA,GACAwU,GACAyB,GACAjC,EAAA,CAEJ,CAYA,SAASE,GAASlU,EAAQ,CACxB,OAAOuW,GACLvW,EACA,GACAyU,GACAyB,GACApC,EAAA,CAEJ,CAWA,SAASyC,GAAqBvW,EAAQ2T,EAAa6C,EAAcC,EAAoBC,EAAU,CAW7F,GAVI,CAAC3K,GAAS/L,CAAM,GAUhBA,EAAO,SAAc,EAAE2T,GAAe3T,EAAO,gBAC/C,OAAOA,EAET,MAAM2W,EAAaN,GAAcrW,CAAM,EACvC,GAAI2W,IAAe,EACjB,OAAO3W,EAET,MAAM4W,EAAgBF,EAAS,IAAI1W,CAAM,EACzC,GAAI4W,EACF,OAAOA,EAET,MAAMC,EAAQ,IAAI,MAChB7W,EACA2W,IAAe,EAAqBF,EAAqBD,CAAA,EAE3D,OAAAE,EAAS,IAAI1W,EAAQ6W,CAAK,EACnBA,CACT,CAEA,SAAShF,GAAW1R,EAAO,CACzB,OAAoBwR,GAAWxR,CAAK,EACX0R,GAAW1R,EAAM,OAAU,EAE7C,CAAC,EAAEA,GAASA,EAAM,eAC3B,CAEA,SAASwR,GAAWxR,EAAO,CACzB,MAAO,CAAC,EAAEA,GAASA,EAAM,eAC3B,CAEA,SAASwS,GAAUxS,EAAO,CACxB,MAAO,CAAC,EAAEA,GAASA,EAAM,cAC3B,CAEA,SAAS2W,GAAQ3W,EAAO,CACtB,OAAOA,EAAQ,CAAC,CAACA,EAAM,QAAa,EACtC,CAEA,SAASqR,GAAMmE,EAAU,CACvB,MAAMtE,EAAMsE,GAAYA,EAAS,QACjC,OAAOtE,EAAsBG,GAAMH,CAAG,EAAIsE,CAC5C,CACA,SAASoB,GAAQ5W,EAAO,CACtB,MAAI,CAACG,GAAOH,EAAO,UAAU,GAAK,OAAO,aAAaA,CAAK,GACzDoM,GAAIpM,EAAO,WAAY,EAAI,EAEtBA,CACT,CACA,MAAMmR,GAAcnR,GAAU4L,GAAS5L,CAAK,EAAoBmW,GAASnW,CAAK,EAAIA,EAC5EyR,GAAczR,GAAU4L,GAAS5L,CAAK,EAAoB+T,GAAS/T,CAAK,EAAIA,EAGlF,SAAS8T,GAAM+C,EAAG,CAChB,OAAOA,EAAIA,EAAE,YAAiB,GAAO,EACvC,CAEA,SAASC,GAAI9W,EAAO,CAClB,OAAO+W,GAAU/W,EAAO,EAAK,CAC/B,CAKA,SAAS+W,GAAUtB,EAAUN,EAAS,CACpC,OAAoBrB,GAAM2B,CAAQ,EACzBA,EAEF,IAAIuB,GAAQvB,EAAUN,CAAO,CACtC,CACA,MAAM6B,EAAQ,CACZ,YAAYhX,EAAOyT,EAAY,CAC7B,KAAK,IAAM,IAAI9D,GACf,KAAK,UAAe,GACpB,KAAK,cAAmB,GACxB,KAAK,UAAY8D,EAAazT,EAAQqR,GAAMrR,CAAK,EACjD,KAAK,OAASyT,EAAazT,EAAQmR,GAAWnR,CAAK,EACnD,KAAK,cAAmByT,CAC1B,CACA,IAAI,OAAQ,CAQR,YAAK,IAAI,MAAA,EAEJ,KAAK,MACd,CACA,IAAI,MAAMlD,EAAU,CAClB,MAAMpE,EAAW,KAAK,UAChB8K,EAAiB,KAAK,kBAA8B1G,CAAQ,MAAgBA,CAAQ,EAC1FA,EAAW0G,EAAiB1G,EAAWc,GAAMd,CAAQ,EACjDrE,GAAWqE,EAAUpE,CAAQ,IAC/B,KAAK,UAAYoE,EACjB,KAAK,OAAS0G,EAAiB1G,EAAWY,GAAWZ,CAAQ,EAU3D,KAAK,IAAI,QAAA,EAGf,CACF,CAeA,SAAS2G,GAAMC,EAAM,CACnB,OAAuBrD,GAAMqD,CAAI,EAAIA,EAAK,MAAQA,CACpD,CAuCA,SAASC,GAAOrG,EAAQ,CAItB,MAAMsG,EAAMhM,GAAQ0F,CAAM,EAAI,IAAI,MAAMA,EAAO,MAAM,EAAI,CAAA,EACzD,UAAWhR,KAAOgR,EAChBsG,EAAItX,CAAG,EAAIuX,GAAcvG,EAAQhR,CAAG,EAEtC,OAAOsX,CACT,CACA,MAAME,EAAc,CAClB,YAAYC,EAASC,EAAMC,EAAe,CACxC,KAAK,QAAUF,EACf,KAAK,KAAOC,EACZ,KAAK,cAAgBC,EACrB,KAAK,UAAe,GACpB,KAAK,OAAS,OACd,KAAK,QAAaF,CAAO,EACzB,IAAIrC,EAAU,GACVhP,EAAMqR,EACV,GAAI,CAACnM,GAAQmM,CAAO,GAAK,CAACvL,GAAa,OAAOwL,CAAI,CAAC,EACjD,GACEtC,EAAU,CAACwB,GAAQxQ,CAAG,MAAeA,CAAG,QACjCgP,IAAYhP,EAAMA,EAAI,UAEjC,KAAK,SAAWgP,CAClB,CACA,IAAI,OAAQ,CACV,IAAItK,EAAM,KAAK,QAAQ,KAAK,IAAI,EAChC,OAAI,KAAK,WACPA,EAAMqM,GAAMrM,CAAG,GAEV,KAAK,OAASA,IAAQ,OAAS,KAAK,cAAgBA,CAC7D,CACA,IAAI,MAAM8M,EAAQ,CAChB,GAAI,KAAK,UAA4B7D,GAAM,KAAK,KAAK,KAAK,IAAI,CAAC,EAAG,CAChE,MAAM8D,EAAY,KAAK,QAAQ,KAAK,IAAI,EACxC,GAAoB9D,GAAM8D,CAAS,EAAG,CACpCA,EAAU,MAAQD,EAClB,MACF,CACF,CACA,KAAK,QAAQ,KAAK,IAAI,EAAIA,CAC5B,CACA,IAAI,KAAM,CACR,OAAO7G,GAAmB,KAAK,KAAM,KAAK,IAAI,CAChD,CACF,CACA,MAAM+G,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,UAAe,GACpB,KAAK,eAAoB,GACzB,KAAK,OAAS,MAChB,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAS,KAAK,QAAA,CAC5B,CACF,CAEA,SAASC,GAAMC,EAAQjY,EAAKkY,EAAc,CACxC,OAAoBnE,GAAMkE,CAAM,EACvBA,EACEvM,GAAWuM,CAAM,EACnB,IAAIH,GAAcG,CAAM,EACtBpM,GAASoM,CAAM,GAAK,UAAU,OAAS,EACzCV,GAAcU,EAAQjY,EAAKkY,CAAY,KAEnBD,CAAM,CAErC,CACA,SAASV,GAAcU,EAAQjY,EAAKkY,EAAc,CAChD,OAAO,IAAIV,GAAcS,EAAQjY,EAAKkY,CAAY,CACpD,CAEA,MAAMC,EAAgB,CACpB,YAAYtL,EAAIuL,EAAQC,EAAO,CAC7B,KAAK,GAAKxL,EACV,KAAK,OAASuL,EAId,KAAK,OAAS,OAId,KAAK,IAAM,IAAIxI,GAAI,IAAI,EAIvB,KAAK,UAAY,GAMjB,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,GAIb,KAAK,cAAgBZ,GAAgB,EAIrC,KAAK,KAAO,OAEZ,KAAK,OAAS,KACd,KAAK,eAAoB,CAACoJ,EAC1B,KAAK,MAAQC,CACf,CAIA,QAAS,CAEP,GADA,KAAK,OAAS,GACV,EAAE,KAAK,MAAQ,IACnBhL,KAAc,KACZ,OAAAG,GAAM,KAAM,EAAI,EACT,EAEX,CACA,IAAI,OAAQ,CACV,MAAMO,EAID,KAAK,IAAI,MAAA,EACd,OAAAe,GAAgB,IAAI,EAChBf,IACFA,EAAK,QAAU,KAAK,IAAI,SAEnB,KAAK,MACd,CACA,IAAI,MAAMyC,EAAU,CACd,KAAK,QACP,KAAK,OAAOA,CAAQ,CAIxB,CACF,CAEA,SAASzB,GAASuJ,EAAiBC,EAAcF,EAAQ,GAAO,CAC9D,IAAIG,EACAJ,EACJ,OAAI1M,GAAW4M,CAAe,EAC5BE,EAASF,GAETE,EAASF,EAAgB,IACzBF,EAASE,EAAgB,KAEd,IAAIH,GAAgBK,EAAQJ,EAAQC,CAAK,CAMxD,CA8BA,MAAMI,GAAwB,CAAA,EACxBC,OAAiC,QACvC,IAAIC,GAIJ,SAASC,GAAiBC,EAAWzL,EAAe,GAAO0L,EAAQH,GAAe,CAChF,GAAIG,EAAO,CACT,IAAIC,EAAWL,GAAW,IAAII,CAAK,EAC9BC,GAAUL,GAAW,IAAII,EAAOC,EAAW,EAAE,EAClDA,EAAS,KAAKF,CAAS,CACzB,CAKF,CACA,SAASG,GAAMf,EAAQgB,EAAIC,EAAUnO,GAAW,CAC9C,KAAM,CAAE,UAAAoO,EAAW,KAAAC,EAAM,KAAAC,EAAM,UAAAC,EAAW,WAAAC,EAAY,KAAAC,GAASN,EAQzDO,EAAkBC,GAClBN,EAAaM,EACbjH,GAAUiH,CAAO,GAAKN,IAAS,IAASA,IAAS,EAC5CO,GAASD,EAAS,CAAC,EACrBC,GAASD,CAAO,EAEzB,IAAIE,EACApB,EACA9I,EACAmK,EACAC,EAAe,GACfC,EAAgB,GA+CpB,GA9CIhG,GAAMkE,CAAM,GACdO,EAAS,IAAMP,EAAO,MACtB6B,KAAyB7B,CAAM,GACtBtG,GAAWsG,CAAM,GAC1BO,EAAS,IAAMiB,EAAexB,CAAM,EACpC6B,EAAe,IACNxO,GAAQ2M,CAAM,GACvB8B,EAAgB,GAChBD,EAAe7B,EAAO,KAAM+B,MAAiBA,CAAC,GAAKvH,GAAUuH,CAAC,CAAC,EAC/DxB,EAAS,IAAMP,EAAO,IAAK+B,GAAM,CAC/B,GAAIjG,GAAMiG,CAAC,EACT,OAAOA,EAAE,MACX,GAAWrI,GAAWqI,CAAC,EACrB,OAAOP,EAAeO,CAAC,EACzB,GAAWtO,GAAWsO,CAAC,EACrB,OAAOR,EAAOA,EAAKQ,EAAG,CAAC,EAAIA,EAAA,CAI/B,CAAC,GACQtO,GAAWuM,CAAM,EACtBgB,EACFT,EAASgB,EAAO,IAAMA,EAAKvB,EAAQ,CAAC,EAAIA,EAExCO,EAAS,IAAM,CACb,GAAI9I,EAAS,CACXF,GAAA,EACA,GAAI,CACFE,EAAA,CACF,QAAA,CACED,GAAA,CACF,CACF,CACA,MAAMwK,EAAgBtB,GACtBA,GAAgBiB,EAChB,GAAI,CACF,OAAOJ,EAAOA,EAAKvB,EAAQ,EAAG,CAAC4B,CAAY,CAAC,EAAI5B,EAAO4B,CAAY,CACrE,QAAA,CACElB,GAAgBsB,CAClB,CACF,EAGFzB,EAASxN,GAGPiO,GAAMG,EAAM,CACd,MAAMc,EAAa1B,EACb2B,GAAQf,IAAS,GAAO,IAAWA,EACzCZ,EAAS,IAAMmB,GAASO,EAAA,EAAcC,EAAK,CAC7C,CACA,MAAMC,EAAQlN,GAAA,EACRmN,EAAc,IAAM,CACxBT,EAAO,KAAA,EACHQ,GAASA,EAAM,QACjBlP,GAAOkP,EAAM,QAASR,CAAM,CAEhC,EACA,GAAIP,GAAQJ,EAAI,CACd,MAAMqB,EAAMrB,EACZA,EAAK,IAAIpH,KAAS,CAChByI,EAAI,GAAGzI,EAAI,EACXwI,EAAA,CACF,CACF,CACA,IAAIjO,EAAW2N,EAAgB,IAAI,MAAM9B,EAAO,MAAM,EAAE,KAAKQ,EAAqB,EAAIA,GACtF,MAAM8B,GAAOC,GAAsB,CACjC,GAAI,IAAEZ,EAAO,MAAQ,IAAM,CAACA,EAAO,OAAS,CAACY,GAG7C,GAAIvB,EAAI,CACN,MAAMzI,GAAWoJ,EAAO,IAAA,EACxB,GAAIR,GAAQU,IAAiBC,EAAgBvJ,GAAS,KAAK,CAACwB,GAAGpO,KAAMuI,GAAW6F,GAAG5F,EAASxI,EAAC,CAAC,CAAC,EAAIuI,GAAWqE,GAAUpE,CAAQ,GAAI,CAC9HsD,GACFA,EAAA,EAEF,MAAM+K,GAAiB9B,GACvBA,GAAgBiB,EAChB,GAAI,CACF,MAAM/H,GAAO,CACXrB,GAEApE,IAAaqM,GAAwB,OAASsB,GAAiB3N,EAAS,CAAC,IAAMqM,GAAwB,CAAA,EAAKrM,EAC5GyN,CAAA,EAEFzN,EAAWoE,GACXgJ,EAAOA,EAAKP,EAAI,EAAGpH,EAAI,EAErBoH,EAAG,GAAGpH,EAAI,CAEd,QAAA,CACE8G,GAAgB8B,EAClB,CACF,CACF,MACEb,EAAO,IAAA,CAEX,EACA,OAAIL,GACFA,EAAWgB,EAAG,EAEhBX,EAAS,IAAIrM,GAAeiL,CAAM,EAClCoB,EAAO,UAAYN,EAAY,IAAMA,EAAUiB,GAAK,EAAK,EAAIA,GAC7DV,EAAgBhN,GAAO+L,GAAiB/L,EAAI,GAAO+M,CAAM,EACzDlK,EAAUkK,EAAO,OAAS,IAAM,CAC9B,MAAMb,EAAWL,GAAW,IAAIkB,CAAM,EACtC,GAAIb,EAAU,CACZ,GAAIS,EACFA,EAAKT,EAAU,CAAC,MAEhB,WAAW2B,MAAY3B,EAAU2B,GAAA,EAEnChC,GAAW,OAAOkB,CAAM,CAC1B,CACF,EAKIX,EACEE,EACFoB,GAAI,EAAI,EAERnO,EAAWwN,EAAO,IAAA,EAEXN,EACTA,EAAUiB,GAAI,KAAK,KAAM,EAAI,EAAG,EAAI,EAEpCX,EAAO,IAAA,EAETS,EAAY,MAAQT,EAAO,MAAM,KAAKA,CAAM,EAC5CS,EAAY,OAAST,EAAO,OAAO,KAAKA,CAAM,EAC9CS,EAAY,KAAOA,EACZA,CACT,CACA,SAASV,GAAS1Z,EAAOka,EAAQ,IAAUQ,EAAM,CAK/C,GAJIR,GAAS,GAAK,CAACtO,GAAS5L,CAAK,GAAKA,EAAM,WAG5C0a,EAAOA,OAA4B,KAC9BA,EAAK,IAAI1a,CAAK,GAAK,IAAMka,GAC5B,OAAOla,EAIT,GAFA0a,EAAK,IAAI1a,EAAOka,CAAK,EACrBA,IACIpG,GAAM9T,CAAK,EACb0Z,GAAS1Z,EAAM,MAAOka,EAAOQ,CAAI,UACxBrP,GAAQrL,CAAK,EACtB,QAAS,EAAI,EAAG,EAAIA,EAAM,OAAQ,IAChC0Z,GAAS1Z,EAAM,CAAC,EAAGka,EAAOQ,CAAI,UAEvBlP,GAAMxL,CAAK,GAAKsL,GAAMtL,CAAK,EACpCA,EAAM,QAAS+R,GAAM,CACnB2H,GAAS3H,EAAGmI,EAAOQ,CAAI,CACzB,CAAC,UACQ1O,GAAchM,CAAK,EAAG,CAC/B,UAAWD,KAAOC,EAChB0Z,GAAS1Z,EAAMD,CAAG,EAAGma,EAAOQ,CAAI,EAElC,UAAW3a,KAAO,OAAO,sBAAsBC,CAAK,EAC9C,OAAO,UAAU,qBAAqB,KAAKA,EAAOD,CAAG,GACvD2Z,GAAS1Z,EAAMD,CAAG,EAAGma,EAAOQ,CAAI,CAGtC,CACA,OAAO1a,CACT,CC/vDA,SAAS2a,GAAsB/N,EAAIgO,EAAUxK,EAAMwB,EAAM,CACvD,GAAI,CACF,OAAOA,EAAOhF,EAAG,GAAGgF,CAAI,EAAIhF,EAAA,CAC9B,OAAS4B,EAAK,CACZqM,GAAYrM,EAAKoM,EAAUxK,CAAI,CACjC,CACF,CACA,SAAS0K,GAA2BlO,EAAIgO,EAAUxK,EAAMwB,EAAM,CAC5D,GAAInG,GAAWmB,CAAE,EAAG,CAClB,MAAMqG,EAAM0H,GAAsB/N,EAAIgO,EAAUxK,EAAMwB,CAAI,EAC1D,OAAIqB,GAAOpH,GAAUoH,CAAG,GACtBA,EAAI,MAAOzE,GAAQ,CACjBqM,GAAYrM,EAAKoM,EAAUxK,CAAI,CACjC,CAAC,EAEI6C,CACT,CACA,GAAI5H,GAAQuB,CAAE,EAAG,CACf,MAAM5D,EAAS,CAAA,EACf,QAASrF,EAAI,EAAGA,EAAIiJ,EAAG,OAAQjJ,IAC7BqF,EAAO,KAAK8R,GAA2BlO,EAAGjJ,CAAC,EAAGiX,EAAUxK,EAAMwB,CAAI,CAAC,EAErE,OAAO5I,CACT,CAKF,CACA,SAAS6R,GAAYrM,EAAKoM,EAAUxK,EAAM2K,EAAa,GAAM,CAC3D,MAAMC,EAAeJ,EAAWA,EAAS,MAAQ,KAC3C,CAAE,aAAAK,EAAc,gCAAAC,CAAA,EAAoCN,GAAYA,EAAS,WAAW,QAAU9P,GACpG,GAAI8P,EAAU,CACZ,IAAIO,EAAMP,EAAS,OACnB,MAAMQ,EAAkBR,EAAS,MAC3BS,EAAmF,8CAA8CjL,CAAI,GAC3I,KAAO+K,GAAK,CACV,MAAMG,EAAqBH,EAAI,GAC/B,GAAIG,GACF,QAAS3X,EAAI,EAAGA,EAAI2X,EAAmB,OAAQ3X,IAC7C,GAAI2X,EAAmB3X,CAAC,EAAE6K,EAAK4M,EAAiBC,CAAS,IAAM,GAC7D,OAINF,EAAMA,EAAI,MACZ,CACA,GAAIF,EAAc,CAChB1L,GAAA,EACAoL,GAAsBM,EAAc,KAAM,GAAI,CAC5CzM,EACA4M,EACAC,CAAA,CACD,EACD7L,GAAA,EACA,MACF,CACF,CACA+L,GAAS/M,EAAK4B,EAAM4K,EAAcD,EAAYG,CAA+B,CAC/E,CACA,SAASK,GAAS/M,EAAK4B,EAAM4K,EAAcD,EAAa,GAAMS,EAAc,GAAO,IAetEA,EACT,MAAMhN,EAEN,QAAQ,MAAMA,CAAG,CAErB,CAEA,MAAMiN,GAAQ,CAAA,EACd,IAAIC,GAAa,GACjB,MAAMC,GAAsB,CAAA,EAC5B,IAAIC,GAAqB,KACrBC,GAAiB,EACrB,MAAMC,WAA0C,QAAA,EAChD,IAAIC,GAAsB,KAE1B,SAASC,GAASpP,EAAI,CACpB,MAAMqP,EAAIF,IAAuBD,GACjC,OAAOlP,EAAKqP,EAAE,KAAK,KAAOrP,EAAG,KAAK,IAAI,EAAIA,CAAE,EAAIqP,CAClD,CACA,SAASC,GAAmBC,EAAI,CAC9B,IAAIC,EAAQV,GAAa,EACrBW,EAAMZ,GAAM,OAChB,KAAOW,EAAQC,GAAK,CAClB,MAAMC,EAASF,EAAQC,IAAQ,EACzBE,EAAYd,GAAMa,CAAM,EACxBE,EAAcC,GAAMF,CAAS,EAC/BC,EAAcL,GAAMK,IAAgBL,GAAMI,EAAU,MAAQ,EAC9DH,EAAQE,EAAS,EAEjBD,EAAMC,CAEV,CACA,OAAOF,CACT,CACA,SAASM,GAASpC,EAAK,CACrB,GAAI,EAAEA,EAAI,MAAQ,GAAI,CACpB,MAAMqC,EAAQF,GAAMnC,CAAG,EACjBsC,EAAUnB,GAAMA,GAAM,OAAS,CAAC,EAClC,CAACmB,GACL,EAAEtC,EAAI,MAAQ,IAAMqC,GAASF,GAAMG,CAAO,EACxCnB,GAAM,KAAKnB,CAAG,EAEdmB,GAAM,OAAOS,GAAmBS,CAAK,EAAG,EAAGrC,CAAG,EAEhDA,EAAI,OAAS,EACbuC,GAAA,CACF,CACF,CACA,SAASA,IAAa,CACfd,KACHA,GAAsBD,GAAgB,KAAKgB,EAAS,EAExD,CACA,SAASC,GAAiB/D,EAAI,CACvB3N,GAAQ2N,CAAE,EAQb2C,GAAoB,KAAK,GAAG3C,CAAE,EAP1B4C,IAAsB5C,EAAG,KAAO,GAClC4C,GAAmB,OAAOC,GAAiB,EAAG,EAAG7C,CAAE,EACxCA,EAAG,MAAQ,IACtB2C,GAAoB,KAAK3C,CAAE,EAC3BA,EAAG,OAAS,GAKhB6D,GAAA,CACF,CA0BA,SAASG,GAAkBtC,EAAM,CAC/B,GAAIiB,GAAoB,OAAQ,CAC9B,MAAMsB,EAAU,CAAC,GAAG,IAAI,IAAItB,EAAmB,CAAC,EAAE,KAChD,CAACuB,EAAGC,IAAMV,GAAMS,CAAC,EAAIT,GAAMU,CAAC,CAAA,EAG9B,GADAxB,GAAoB,OAAS,EACzBC,GAAoB,CACtBA,GAAmB,KAAK,GAAGqB,CAAO,EAClC,MACF,CAKA,IAJArB,GAAqBqB,EAIhBpB,GAAiB,EAAGA,GAAiBD,GAAmB,OAAQC,KAAkB,CACrF,MAAM7C,EAAK4C,GAAmBC,EAAc,EAIxC7C,EAAG,MAAQ,IACbA,EAAG,OAAS,IAERA,EAAG,MAAQ,GAAIA,EAAA,EACrBA,EAAG,OAAS,EACd,CACA4C,GAAqB,KACrBC,GAAiB,CACnB,CACF,CACA,MAAMY,GAASnC,GAAQA,EAAI,IAAM,KAAOA,EAAI,MAAQ,EAAI,GAAK,IAAWA,EAAI,GAC5E,SAASwC,GAAUpC,EAAM,CAKvB,GAAI,CACF,IAAKgB,GAAa,EAAGA,GAAaD,GAAM,OAAQC,KAAc,CAC5D,MAAMpB,EAAMmB,GAAMC,EAAU,EACxBpB,GAAO,EAAEA,EAAI,MAAQ,KAInBA,EAAI,MAAQ,IACdA,EAAI,OAAS,IAEfK,GACEL,EACAA,EAAI,EACJA,EAAI,EAAI,GAAK,EAAA,EAETA,EAAI,MAAQ,IAChBA,EAAI,OAAS,IAGnB,CACF,QAAA,CACE,KAAOoB,GAAaD,GAAM,OAAQC,KAAc,CAC9C,MAAMpB,EAAMmB,GAAMC,EAAU,EACxBpB,IACFA,EAAI,OAAS,GAEjB,CACAoB,GAAa,GACbD,GAAM,OAAS,EACfuB,GAAsB,EACtBjB,GAAsB,MAClBN,GAAM,QAAUE,GAAoB,SACtCmB,GAAc,CAElB,CACF,CA2OA,IAAIM,GAA2B,KAsH/B,SAASC,GAAOtd,EAAKkY,EAAcqF,EAAwB,GAAO,CAChE,MAAM1C,EAAW2C,GAAA,EACjB,GAAI3C,GAAY4C,GAAY,CAC1B,IAAIC,EAAuD7C,EAAWA,EAAS,QAAU,MAAQA,EAAS,GAAKA,EAAS,MAAM,YAAcA,EAAS,MAAM,WAAW,SAAWA,EAAS,OAAO,SAAW,OAC5M,GAAI6C,GAAY1d,KAAO0d,EACrB,OAAOA,EAAS1d,CAAG,EACrB,GAAW,UAAU,OAAS,EAC5B,OAAOud,GAAyB7R,GAAWwM,CAAY,EAAIA,EAAa,KAAK2C,GAAYA,EAAS,KAAK,EAAI3C,CAI/G,CAGF,CACA,SAASyF,IAAsB,CAC7B,MAAO,CAAC,EAAEH,GAAA,GAAwBC,GACpC,CAEA,MAAMG,GAAgC,OAAO,IAAI,OAAO,EAClDC,GAAgB,IAENP,GAAOM,EAAa,EA2BpC,SAAS5E,GAAMf,EAAQgB,EAAIC,EAAS,CAMlC,OAAO4E,GAAQ7F,EAAQgB,EAAIC,CAAO,CACpC,CACA,SAAS4E,GAAQ7F,EAAQgB,EAAIC,EAAUnO,GAAW,CAChD,KAAM,CAAE,UAAAoO,EAAW,KAAAC,EAAM,MAAA2E,EAAO,KAAA1E,GAASH,EAkBnC8E,EAAmB/S,GAAO,CAAA,EAAIiO,CAAO,EAErC+E,EAAkBhF,GAAME,GAAa,CAACF,GAAM8E,IAAU,OAC5D,IAAIG,EACJ,GAAIC,IACF,GAAIJ,IAAU,OAAQ,CACpB,MAAMK,EAAMP,GAAA,EACZK,EAAaE,EAAI,mBAAqBA,EAAI,iBAAmB,CAAA,EAC/D,SAAW,CAACH,EAAiB,CAC3B,MAAMI,EAAkB,IAAM,CAC9B,EACA,OAAAA,EAAgB,KAAOrT,GACvBqT,EAAgB,OAASrT,GACzBqT,EAAgB,MAAQrT,GACjBqT,CACT,EAEF,MAAMxD,EAAWyD,GACjBN,EAAiB,KAAO,CAACnR,EAAIwD,EAAMwB,IAASkJ,GAA2BlO,EAAIgO,EAAUxK,EAAMwB,CAAI,EAC/F,IAAI0M,EAAQ,GACRR,IAAU,OACZC,EAAiB,UAAazD,GAAQ,CACpCiE,GAAsBjE,EAAKM,GAAYA,EAAS,QAAQ,CAC1D,EACSkD,IAAU,SACnBQ,EAAQ,GACRP,EAAiB,UAAY,CAACzD,EAAKkE,IAAe,CAC5CA,EACFlE,EAAA,EAEAoC,GAASpC,CAAG,CAEhB,GAEFyD,EAAiB,WAAczD,GAAQ,CACjCtB,IACFsB,EAAI,OAAS,GAEXgE,IACFhE,EAAI,OAAS,EACTM,IACFN,EAAI,GAAKM,EAAS,IAClBN,EAAI,EAAIM,GAGd,EACA,MAAMR,EAAcqE,GAAQzG,EAAQgB,EAAI+E,CAAgB,EACxD,OAAIG,KACED,EACFA,EAAW,KAAK7D,CAAW,EAClB4D,GACT5D,EAAA,GAGGA,CACT,CAukD4B7N,KAAgB,oBACjBA,GAAA,EAAgB,mBAivD3C,IAAIiR,GAAa,KAqjCjB,MAAMe,GAAwBG,GAwkE9B,SAASA,GAAwB9R,EAAI+R,EAAU,CACzCA,GAAYA,EAAS,cACnBtT,GAAQuB,CAAE,EACZ+R,EAAS,QAAQ,KAAK,GAAG/R,CAAE,EAE3B+R,EAAS,QAAQ,KAAK/R,CAAE,EAG1BmQ,GAAiBnQ,CAAE,CAEvB,CA2eA,IAAIyR,GAAkB,KACtB,MAAMd,GAAqB,IAAMc,IAAmBjB,GAGpD,CACE,MAAMwB,EAAIrS,GAAA,EACJsS,EAAuB,CAAC9e,EAAKoY,IAAW,CAC5C,IAAI2G,EACJ,OAAMA,EAAUF,EAAE7e,CAAG,KAAI+e,EAAUF,EAAE7e,CAAG,EAAI,CAAA,GAC5C+e,EAAQ,KAAK3G,CAAM,EACXpG,GAAM,CACR+M,EAAQ,OAAS,EAAGA,EAAQ,QAASva,GAAQA,EAAIwN,CAAC,CAAC,EAClD+M,EAAQ,CAAC,EAAE/M,CAAC,CACnB,CACF,EAC6B8M,EAC3B,2BACC9M,GAAMsM,GAAkBtM,CAAA,EAEN8M,EACnB,sBACC9M,GAAMmM,GAAwBnM,CAAA,CAEnC,CAyBA,IAAImM,GAAwB,GA2S5B,MAAMpP,GAAW,CAACuJ,EAAiBC,IACvByG,GAAW1G,EAAiBC,EAAc4F,EAAqB,EC3pQ3E,SAAS1V,GAAEA,EAAE,CAAC,OAAiB,OAAOA,GAAjB,UAA2BA,IAAP,MAAsB,OAAOA,GAAnB,aAAmC,OAAOA,EAAE,MAArB,UAAyB,CAAC,SAASwW,GAAExW,EAAE,CAAC,OAAO,OAAOA,EAAC,CAAE,IAAI,SAAS,IAAI,SAAS,OAAOA,EAAE,SAAQ,EAAG,IAAI,WAAW,OAAOA,EAAE,KAAK,QAAQ,MAAM,IAAI,MAAM,cAAc,OAAOA,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAMyW,GAAE,OAAO,IAAI,6CAA6C,EAAE,MAAMpI,EAAC,CAAC,CAACoI,EAAC,EAAE,GAAG,YAAY,EAAE,CAAC,KAAK,GAAG,EAAE,KAAKA,EAAC,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAgB,OAAO,GAAjB,UAA2B,IAAP,MAAe,EAAEA,EAAC,IAAR,EAAS,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,qDCc3d,IAAI3f,EACJ,OAAC,SAAUA,EAAS,EAGf,SAAUC,EAAS,CAChB,IAAIC,EAAO,OAAO,YAAe,SAAW,WACxC,OAAOC,IAAW,SAAWA,GACzB,OAAO,MAAS,SAAW,KACvB,OAAO,MAAS,SAAW,KACvBC,EAAc,EAC1BC,EAAWC,EAAaN,CAAO,EAC/B,OAAOE,EAAK,QAAY,MACxBG,EAAWC,EAAaJ,EAAK,QAASG,CAAQ,GAElDJ,EAAQI,EAAUH,CAAI,EAClB,OAAOA,EAAK,QAAY,MACxBA,EAAK,QAAUF,GAEnB,SAASM,EAAaC,EAAQC,EAAU,CACpC,OAAO,SAAUC,EAAKC,EAAO,CACzB,OAAO,eAAeH,EAAQE,EAAK,CAAE,aAAc,GAAM,SAAU,GAAM,MAAOC,CAAK,CAAE,EACnFF,GACAA,EAASC,EAAKC,CAAK,CACvC,CACA,CACQ,SAASN,GAAiB,CACtB,MAAM,IAAI,eAAe,uFAAuF,CAC5H,CACA,GAAO,SAAUC,EAAUH,EAAM,CAEzB,IAAIY,EAAiB,OAAO,QAAW,WACnCC,EAAoBD,GAAkB,OAAO,OAAO,YAAgB,IAAc,OAAO,YAAc8e,GAAK,+BAA+B,EAC3I5e,EAAiBF,GAAkB,OAAO,OAAO,SAAa,IAAc,OAAO,SAAW8e,GAAK,4BAA4B,EAE/Hre,EAAoB,OAAO,eAAe,QAAQ,EAClDC,EAAO,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMoe,GAAK,6CAA6C,EAC1Ile,EAAO,OAAO,KAAQ,YAAc,OAAO,IAAI,UAAU,SAAY,WAAa,IAAMke,GAAK,6CAA6C,EAC1Ihe,EAAW,OAAO,SAAY,WAAa,QAAUge,GAAK,iDAAiD,EAC3G9d,EAAiBhB,EAAiB,OAAO,IAAI,4BAA4B,EAAI,OAC7EiB,EAAmBC,GAA2B,EAC9CC,EAAmBC,GAAuBH,CAAgB,EAwC9D,SAASI,EAASC,EAAY7B,EAAQ8B,EAAaC,EAAY,CAC3D,GAAKC,GAAYF,CAAW,EAYvB,CACD,GAAI,CAACG,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACd,GAAI,CAACK,GAAclC,CAAM,EACrB,MAAM,IAAI,UACd,OAAOmC,EAAoBN,EAAY7B,CAAM,CAC7D,KAlB2C,CAC3B,GAAI,CAACiC,GAAQJ,CAAU,EACnB,MAAM,IAAI,UACd,GAAI,CAACO,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,GAAI,CAACoC,GAASL,CAAU,GAAK,CAACC,GAAYD,CAAU,GAAK,CAACM,GAAON,CAAU,EACvE,MAAM,IAAI,UACd,OAAIM,GAAON,CAAU,IACjBA,EAAa,QACjBD,EAAcQ,GAAcR,CAAW,EAChCS,GAAiBV,EAAY7B,EAAQ8B,EAAaC,CAAU,CACnF,CAQA,CACQjC,EAAS,WAAY8B,CAAQ,EA2C7B,SAASY,EAASC,EAAaC,EAAe,CAC1C,SAASC,EAAU3C,EAAQ8B,GAAa,CACpC,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,GAAI,CAACgC,GAAYF,EAAW,GAAK,CAACc,GAAcd,EAAW,EACvD,MAAM,IAAI,UACde,GAA0BJ,EAAaC,EAAe1C,EAAQ8B,EAAW,CACzF,CACY,OAAOa,CACnB,CACQ7C,EAAS,WAAY0C,CAAQ,EAwC7B,SAASM,EAAeL,EAAaC,EAAe1C,EAAQ8B,EAAa,CACrE,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCe,GAA0BJ,EAAaC,EAAe1C,EAAQ8B,CAAW,CAC5F,CACQhC,EAAS,iBAAkBgD,CAAc,EAmCzC,SAASC,EAAYN,EAAazC,EAAQ8B,EAAa,CACnD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCkB,GAAoBP,EAAazC,EAAQ8B,CAAW,CACvE,CACQhC,EAAS,cAAeiD,CAAW,EAmCnC,SAASE,EAAeR,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCoB,GAAuBT,EAAazC,EAAQ8B,CAAW,CAC1E,CACQhC,EAAS,iBAAkBmD,CAAc,EAmCzC,SAASE,GAAYV,EAAazC,EAAQ8B,EAAa,CACnD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCsB,GAAoBX,EAAazC,EAAQ8B,CAAW,CACvE,CACQhC,EAAS,cAAeqD,EAAW,EAmCnC,SAASE,EAAeZ,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpCwB,GAAuBb,EAAazC,EAAQ8B,CAAW,CAC1E,CACQhC,EAAS,iBAAkBuD,CAAc,EAkCzC,SAASE,GAAgBvD,EAAQ8B,EAAa,CAC1C,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpC0B,GAAqBxD,EAAQ8B,CAAW,CAC3D,CACQhC,EAAS,kBAAmByD,EAAe,EAkC3C,SAASE,GAAmBzD,EAAQ8B,EAAa,CAC7C,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACd,OAAKgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GACpC4B,GAAwB1D,EAAQ8B,CAAW,CAC9D,CACQhC,EAAS,qBAAsB2D,EAAkB,EAmCjD,SAASE,GAAelB,EAAazC,EAAQ8B,EAAa,CACtD,GAAI,CAACM,GAASpC,CAAM,EAChB,MAAM,IAAI,UACTgC,GAAYF,CAAW,IACxBA,EAAcQ,GAAcR,CAAW,GAC3C,IAAI8B,EAAWC,GAAoB7D,EAAQ8B,EAAwB,EAAK,EACxE,OAAIE,GAAY4B,CAAQ,EACb,GACJA,EAAS,uBAAuBnB,EAAazC,EAAQ8B,CAAW,CACnF,CACQhC,EAAS,iBAAkB6D,EAAc,EACzC,SAASxB,EAAoBN,EAAY7B,EAAQ,CAC7C,QAAS8D,EAAIjC,EAAW,OAAS,EAAGiC,GAAK,EAAG,EAAEA,EAAG,CAC7C,IAAInB,EAAYd,EAAWiC,CAAC,EACxBC,GAAYpB,EAAU3C,CAAM,EAChC,GAAI,CAACgC,GAAY+B,EAAS,GAAK,CAAC1B,GAAO0B,EAAS,EAAG,CAC/C,GAAI,CAAC7B,GAAc6B,EAAS,EACxB,MAAM,IAAI,UACd/D,EAAS+D,EAC7B,CACA,CACY,OAAO/D,CACnB,CACQ,SAASuC,GAAiBV,EAAY7B,EAAQ8B,EAAakC,EAAY,CACnE,QAASF,GAAIjC,EAAW,OAAS,EAAGiC,IAAK,EAAG,EAAEA,GAAG,CAC7C,IAAInB,GAAYd,EAAWiC,EAAC,EACxBC,GAAYpB,GAAU3C,EAAQ8B,EAAakC,CAAU,EACzD,GAAI,CAAChC,GAAY+B,EAAS,GAAK,CAAC1B,GAAO0B,EAAS,EAAG,CAC/C,GAAI,CAAC3B,GAAS2B,EAAS,EACnB,MAAM,IAAI,UACdC,EAAaD,EACjC,CACA,CACY,OAAOC,CACnB,CAGQ,SAAShB,GAAoBiB,EAAaC,EAAGC,EAAG,CAC5C,IAAI7D,EAAS4C,GAAuBe,EAAaC,EAAGC,CAAC,EACrD,GAAI7D,EACA,MAAO,GACX,IAAI8D,GAASC,GAAuBH,CAAC,EACrC,OAAK7B,GAAO+B,EAAM,EAEX,GADIpB,GAAoBiB,EAAaG,GAAQD,CAAC,CAEjE,CAGQ,SAASjB,GAAuBe,EAAaC,EAAGC,EAAG,CAC/C,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,OAAInC,GAAY4B,CAAQ,EACb,GACJU,GAAUV,EAAS,uBAAuBK,EAAaC,EAAGC,CAAC,CAAC,CAC/E,CAGQ,SAASf,GAAoBa,EAAaC,EAAGC,EAAG,CAC5C,IAAI7D,EAAS4C,GAAuBe,EAAaC,EAAGC,CAAC,EACrD,GAAI7D,EACA,OAAOgD,GAAuBW,EAAaC,EAAGC,CAAC,EACnD,IAAIC,GAASC,GAAuBH,CAAC,EACrC,GAAI,CAAC7B,GAAO+B,EAAM,EACd,OAAOhB,GAAoBa,EAAaG,GAAQD,CAAC,CAEjE,CAGQ,SAASb,GAAuBW,EAAaC,EAAGC,EAAG,CAC/C,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,GAAI,CAAAnC,GAAY4B,CAAQ,EAExB,OAAOA,EAAS,uBAAuBK,EAAaC,EAAGC,CAAC,CACpE,CAGQ,SAAStB,GAA0BoB,EAAaM,EAAeL,EAAGC,EAAG,CACjE,IAAIP,GAAWC,GAAoBK,EAAGC,EAAc,EAAI,EACxDP,GAAS,0BAA0BK,EAAaM,EAAeL,EAAGC,CAAC,CAC/E,CAGQ,SAASX,GAAqBU,EAAGC,EAAG,CAChC,IAAIK,EAAUd,GAAwBQ,EAAGC,CAAC,EACtCC,EAASC,GAAuBH,CAAC,EACrC,GAAIE,IAAW,KACX,OAAOI,EACX,IAAIC,GAAajB,GAAqBY,EAAQD,CAAC,EAC/C,GAAIM,GAAW,QAAU,EACrB,OAAOD,EACX,GAAIA,EAAQ,QAAU,EAClB,OAAOC,GAGX,QAFIC,GAAM,IAAIvD,EACVwD,GAAO,CAAA,EACFC,GAAK,EAAGC,GAAYL,EAASI,GAAKC,GAAU,OAAQD,KAAM,CAC/D,IAAI1E,EAAM2E,GAAUD,EAAE,EAClBE,EAASJ,GAAI,IAAIxE,CAAG,EACnB4E,IACDJ,GAAI,IAAIxE,CAAG,EACXyE,GAAK,KAAKzE,CAAG,EAEjC,CACY,QAAS6E,EAAK,EAAGC,EAAeP,GAAYM,EAAKC,EAAa,OAAQD,IAAM,CACxE,IAAI7E,EAAM8E,EAAaD,CAAE,EACrBD,EAASJ,GAAI,IAAIxE,CAAG,EACnB4E,IACDJ,GAAI,IAAIxE,CAAG,EACXyE,GAAK,KAAKzE,CAAG,EAEjC,CACY,OAAOyE,EACnB,CAGQ,SAASjB,GAAwBQ,EAAGC,EAAG,CACnC,IAAIP,EAAWC,GAAoBK,EAAGC,EAAc,EAAK,EACzD,OAAKP,EAGEA,EAAS,wBAAwBM,EAAGC,CAAC,EAFjC,CAAA,CAGvB,CAGQ,SAASc,GAAKC,EAAG,CACb,GAAIA,IAAM,KACN,MAAO,GACX,OAAQ,OAAOA,EAAC,CACZ,IAAK,YAAa,MAAO,GACzB,IAAK,UAAW,MAAO,GACvB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,MAAO,GACtB,IAAK,SAAU,OAAOA,IAAM,KAAO,EAAe,EAClD,QAAS,MAAO,EAChC,CACA,CAGQ,SAASlD,GAAYkD,EAAG,CACpB,OAAOA,IAAM,MACzB,CAGQ,SAAS7C,GAAO6C,EAAG,CACf,OAAOA,IAAM,IACzB,CAGQ,SAASC,GAASD,EAAG,CACjB,OAAO,OAAOA,GAAM,QAChC,CAGQ,SAAS9C,GAAS8C,EAAG,CACjB,OAAO,OAAOA,GAAM,SAAWA,IAAM,KAAO,OAAOA,GAAM,UACrE,CAKQ,SAASE,GAAYC,EAAOC,EAAe,CACvC,OAAQL,GAAKI,CAAK,EAAC,CACf,IAAK,GAAmB,OAAOA,EAC/B,IAAK,GAAc,OAAOA,EAC1B,IAAK,GAAiB,OAAOA,EAC7B,IAAK,GAAgB,OAAOA,EAC5B,IAAK,GAAgB,OAAOA,EAC5B,IAAK,GAAgB,OAAOA,CAC5C,CACY,IAAIE,EAA0C,SAC1CC,EAAeC,GAAUJ,EAAO7E,CAAiB,EACrD,GAAIgF,IAAiB,OAAW,CAC5B,IAAIE,GAASF,EAAa,KAAKH,EAAOE,CAAI,EAC1C,GAAInD,GAASsD,EAAM,EACf,MAAM,IAAI,UACd,OAAOA,EACvB,CACY,OAAOC,GAAoBN,CAA2C,CAClF,CAGQ,SAASM,GAAoBzB,EAAGqB,EAAM,CAC9C,IAAAK,EAAAF,EAAmC,CACnB,IAAIG,GAAa3B,EAAE,SACnB,GAAI4B,GAAWD,EAAU,EAAG,CACxB,IAAIH,EAASG,GAAW,KAAK3B,CAAC,EAC9B,GAAI,CAAC9B,GAASsD,CAAM,EAChB,OAAOA,CAC/B,CACgB,IAAIE,EAAU1B,EAAE,QAChB,GAAI4B,GAAWF,CAAO,EAAG,CACrB,IAAIF,EAASE,EAAQ,KAAK1B,CAAC,EAC3B,GAAI,CAAC9B,GAASsD,CAAM,EAChB,OAAOA,CAC/B,CACA,CAeY,MAAM,IAAI,SACtB,CAGQ,SAASpB,GAAUyB,EAAU,CACzB,MAAO,CAAC,CAACA,CACrB,CAGQ,SAASC,GAASD,EAAU,CACxB,MAAO,GAAKA,CACxB,CAGQ,SAASzD,GAAcyD,EAAU,CAC7B,IAAI7F,EAAMkF,GAAYW,CAAW,EACjC,OAAIZ,GAASjF,CAAG,EACLA,EACJ8F,GAAS9F,CAAG,CAC/B,CAKQ,SAAS+B,GAAQ8D,EAAU,CACvB,OAAO,MAAM,QACP,MAAM,QAAQA,CAAQ,EACtBA,aAAoB,OAChBA,aAAoB,MACpB,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,gBACnE,CAGQ,SAASD,GAAWC,EAAU,CAE1B,OAAO,OAAOA,GAAa,UACvC,CAGQ,SAAS7D,GAAc6D,EAAU,CAE7B,OAAO,OAAOA,GAAa,UACvC,CAGQ,SAASnD,GAAcmD,EAAU,CAC7B,OAAQd,GAAKc,CAAQ,EAAC,CAClB,IAAK,GAAgB,MAAO,GAC5B,IAAK,GAAgB,MAAO,GAC5B,QAAS,MAAO,EAChC,CACA,CAKQ,SAASN,GAAUU,EAAGhC,EAAG,CACrB,IAAIiC,EAAOD,EAAEhC,CAAC,EACd,GAA0BiC,GAAS,KAEnC,IAAI,CAACN,GAAWM,CAAI,EAChB,MAAM,IAAI,UACd,OAAOA,EACnB,CAGQ,SAASC,GAAYC,EAAK,CACtB,IAAIC,EAASd,GAAUa,EAAK7F,CAAc,EAC1C,GAAI,CAACqF,GAAWS,CAAM,EAClB,MAAM,IAAI,UACd,IAAIC,EAAWD,EAAO,KAAKD,CAAG,EAC9B,GAAI,CAAClE,GAASoE,CAAQ,EAClB,MAAM,IAAI,UACd,OAAOA,CACnB,CAGQ,SAASC,GAAcC,EAAY,CAC/B,OAAOA,EAAW,KAC9B,CAGQ,SAASC,GAAaH,EAAU,CAC5B,IAAId,EAASc,EAAS,KAAI,EAC1B,OAAOd,EAAO,KAAO,GAAQA,CACzC,CAGQ,SAASkB,GAAcJ,EAAU,CAC7B,IAAIK,EAAIL,EAAS,OACbK,GACAA,EAAE,KAAKL,CAAQ,CAC/B,CAKQ,SAASnC,GAAuBH,EAAG,CAC/B,IAAI4C,EAAQ,OAAO,eAAe5C,CAAC,EAUnC,GATI,OAAOA,GAAM,YAAcA,IAAMlD,GASjC8F,IAAU9F,EACV,OAAO8F,EAEX,IAAIC,EAAY7C,EAAE,UACd8C,EAAiBD,GAAa,OAAO,eAAeA,CAAS,EACjE,GAAIC,GAAkB,MAAQA,IAAmB,OAAO,UACpD,OAAOF,EAEX,IAAIG,GAAcD,EAAe,YAIjC,OAHI,OAAOC,IAAgB,YAGvBA,KAAgB/C,EACT4C,EAEJG,EACnB,CACQ,SAASoY,GAAK1W,EAAG,CACb,MAAMA,CAClB,CAOQ,SAASzB,IAAyB,CAC9B,IAAIC,EACA,CAACnF,GAAYT,CAAc,GAC3B,OAAO5B,EAAK,QAAY,KACxB,EAAE4B,KAAkB5B,EAAK,UACzB,OAAOA,EAAK,QAAQ,gBAAmB,aAEvCwH,EAAWC,GAAuBzH,EAAK,OAAO,GAElD,IAAI0H,EACAC,EACAC,EACAC,GAAoB,IAAInG,EACxBoG,GAAW,CACX,iBAAkBC,GAClB,YAAaC,GACb,YAAaC,GAEjB,OAAOH,GACP,SAASC,GAAiB9D,EAAU,CAChC,GAAI,CAAC,OAAO,aAAa6D,EAAQ,EAC7B,MAAM,IAAI,MAAM,2CAA2C,EAE/D,OAAQ,GAAI,CACR,KAAKN,IAAavD,EAAU,MAC5B,KAAK5B,GAAYqF,CAAK,EAClBA,EAAQzD,EACR,MACJ,KAAKyD,IAAUzD,EAAU,MACzB,KAAK5B,GAAYsF,CAAM,EACnBA,EAAS1D,EACT,MACJ,KAAK0D,IAAW1D,EAAU,MAC1B,QACQ2D,IAAS,SACTA,EAAO,IAAIpG,GACfoG,EAAK,IAAI3D,CAAQ,EACjB,KACxB,CACA,CACY,SAASiE,GAAmB3D,EAAGC,EAAG,CAC9B,GAAI,CAACnC,GAAYqF,CAAK,EAAG,CACrB,GAAIA,EAAM,cAAcnD,EAAGC,CAAC,EACxB,OAAOkD,EACX,GAAI,CAACrF,GAAYsF,CAAM,EAAG,CACtB,GAAIA,EAAO,cAAcpD,EAAGC,CAAC,EACzB,OAAOkD,EACX,GAAI,CAACrF,GAAYuF,CAAI,EAEjB,QADIf,EAAWH,GAAYkB,CAAI,IAClB,CACT,IAAIO,GAAOnB,GAAaH,CAAQ,EAChC,GAAI,CAACsB,GACD,OAEJ,IAAIlE,GAAW6C,GAAcqB,EAAI,EACjC,GAAIlE,GAAS,cAAcM,EAAGC,CAAC,EAC3B,OAAAyC,GAAcJ,CAAQ,EACf5C,EAE3C,CAEA,CACA,CACgB,GAAI,CAAC5B,GAAYmF,CAAQ,GAAKA,EAAS,cAAcjD,EAAGC,CAAC,EACrD,OAAOgD,CAG3B,CACY,SAASQ,GAAYzD,EAAGC,EAAG,CACvB,IAAI4D,EAAcP,GAAkB,IAAItD,CAAC,EACrCN,GAIJ,OAHK5B,GAAY+F,CAAW,IACxBnE,GAAWmE,EAAY,IAAI5D,CAAC,GAE3BnC,GAAY4B,EAAQ,IAGzBA,GAAWiE,GAAmB3D,EAAGC,CAAC,EAC7BnC,GAAY4B,EAAQ,IACjB5B,GAAY+F,CAAW,IACvBA,EAAc,IAAI9G,EAClBuG,GAAkB,IAAItD,EAAG6D,CAAW,GAExCA,EAAY,IAAI5D,EAAGP,EAAQ,IAExBA,EACvB,CACY,SAASoE,EAAYpE,EAAU,CAC3B,GAAI5B,GAAY4B,CAAQ,EACpB,MAAM,IAAI,UACd,OAAOyD,IAAUzD,GAAY0D,IAAW1D,GAAY,CAAC5B,GAAYuF,CAAI,GAAKA,EAAK,IAAI3D,CAAQ,CAC3G,CACY,SAASgE,EAAY1D,EAAGC,EAAGP,EAAU,CACjC,GAAI,CAACoE,EAAYpE,CAAQ,EACrB,MAAM,IAAI,MAAM,mCAAmC,EAEvD,IAAIqE,GAAmBN,GAAYzD,EAAGC,CAAC,EACvC,GAAI8D,KAAqBrE,EAAU,CAC/B,GAAI,CAAC5B,GAAYiG,EAAgB,EAC7B,MAAO,GAEX,IAAIF,GAAcP,GAAkB,IAAItD,CAAC,EACrClC,GAAY+F,EAAW,IACvBA,GAAc,IAAI9G,EAClBuG,GAAkB,IAAItD,EAAG6D,EAAW,GAExCA,GAAY,IAAI5D,EAAGP,CAAQ,CAC/C,CACgB,MAAO,EACvB,CACA,CAIQ,SAASnC,IAA8B,CACnC,IAAID,EACJ,MAAI,CAACQ,GAAYT,CAAc,GAAKa,GAASzC,EAAK,OAAO,GAAK,OAAO,aAAaA,EAAK,OAAO,IAC1F6B,EAAmB7B,EAAK,QAAQ4B,CAAc,GAE9CS,GAAYR,CAAgB,IAC5BA,EAAmB0F,GAAsB,GAEzC,CAAClF,GAAYT,CAAc,GAAKa,GAASzC,EAAK,OAAO,GAAK,OAAO,aAAaA,EAAK,OAAO,GAC1F,OAAO,eAAeA,EAAK,QAAS4B,EAAgB,CAChD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAOC,CAC3B,CAAiB,EAEEA,CACnB,CACQ,SAASG,GAAuB8F,EAAU,CAGtC,IAAIjF,EAAW,IAAInB,EACfuC,EAAW,CACX,cAAe,SAAUM,EAAGC,EAAG,CAC3B,IAAI+D,EAAiB1F,EAAS,IAAI0B,CAAC,EACnC,OAAIlC,GAAYkG,CAAc,EACnB,GACJA,EAAe,IAAI/D,CAAC,CAC/C,EACgB,0BAA2BtB,GAC3B,uBAAwBK,GACxB,uBAAwBI,GACxB,wBAAyBI,GACzB,uBAAwByE,IAE5B,OAAA3G,EAAiB,iBAAiBoC,CAAQ,EACnCA,EACP,SAASwE,EAAuBlE,EAAGC,EAAGkE,EAAQ,CAC1C,IAAIH,EAAiB1F,EAAS,IAAI0B,CAAC,EAC/BoE,EAAwB,GAC5B,GAAItG,GAAYkG,CAAc,EAAG,CAC7B,GAAI,CAACG,EACD,OACJH,EAAiB,IAAIjH,EACrBuB,EAAS,IAAI0B,EAAGgE,CAAc,EAC9BI,EAAwB,EAC5C,CACgB,IAAIC,GAAcL,EAAe,IAAI/D,CAAC,EACtC,GAAInC,GAAYuG,EAAW,EAAG,CAC1B,GAAI,CAACF,EACD,OAGJ,GAFAE,GAAc,IAAItH,EAClBiH,EAAe,IAAI/D,EAAGoE,EAAW,EAC7B,CAACd,EAAS,YAAYvD,EAAGC,EAAGP,CAAQ,EACpC,MAAAsE,EAAe,OAAO/D,CAAC,EACnBmE,GACA9F,EAAS,OAAO0B,CAAC,EAEf,IAAI,MAAM,4BAA4B,CAEpE,CACgB,OAAOqE,EACvB,CAGY,SAASrF,GAAuBe,EAAaC,EAAGC,EAAG,CAC/C,IAAIoE,EAAcH,EAAuBlE,EAAGC,EAAc,EAAK,EAC/D,OAAInC,GAAYuG,CAAW,EAChB,GACJjE,GAAUiE,EAAY,IAAItE,CAAW,CAAC,CAC7D,CAGY,SAASX,GAAuBW,EAAaC,EAAGC,EAAG,CAC/C,IAAIoE,EAAcH,EAAuBlE,EAAGC,EAAc,EAAK,EAC/D,GAAI,CAAAnC,GAAYuG,CAAW,EAE3B,OAAOA,EAAY,IAAItE,CAAW,CAClD,CAGY,SAASpB,GAA0BoB,EAAaM,EAAeL,EAAGC,EAAG,CACjE,IAAIoE,EAAcH,EAAuBlE,EAAGC,EAAc,EAAI,EAC9DoE,EAAY,IAAItE,EAAaM,CAAa,CAC1D,CAGY,SAASb,GAAwBQ,EAAGC,EAAG,CACnC,IAAIQ,EAAO,CAAA,EACP4D,EAAcH,EAAuBlE,EAAGC,EAAc,EAAK,EAC/D,GAAInC,GAAYuG,CAAW,EACvB,OAAO5D,EAIX,QAHI6D,EAAUD,EAAY,KAAI,EAC1B/B,GAAWH,GAAYmC,CAAO,EAC9BC,GAAI,IACK,CACT,IAAIX,GAAOnB,GAAaH,EAAQ,EAChC,GAAI,CAACsB,GACD,OAAAnD,EAAK,OAAS8D,GACP9D,EAEX,IAAI+D,EAAYjC,GAAcqB,EAAI,EAClC,GAAI,CACAnD,EAAK8D,EAAC,EAAIC,CAClC,OAC2BC,GAAG,CACN,GAAI,CACA/B,GAAcJ,EAAQ,CAClD,SAE4B,MAAMmC,EAClC,CACA,CACoBF,IACpB,CACA,CACY,SAASN,GAAuBlE,EAAaC,EAAGC,EAAG,CAC/C,IAAIoE,EAAcH,EAAuBlE,EAAGC,EAAc,EAAK,EAG/D,GAFInC,GAAYuG,CAAW,GAEvB,CAACA,EAAY,OAAOtE,CAAW,EAC/B,MAAO,GACX,GAAIsE,EAAY,OAAS,EAAG,CACxB,IAAIL,EAAiB1F,EAAS,IAAI0B,CAAC,EAC9BlC,GAAYkG,CAAc,IAC3BA,EAAe,OAAO/D,CAAC,EACnB+D,EAAe,OAAS,GACxB1F,EAAS,OAAO0F,CAAc,EAG1D,CACgB,MAAO,EACvB,CACA,CACQ,SAASd,GAAuBwB,EAAS,CACrC,IAAI9F,EAAiB8F,EAAQ,eAAgB3F,EAAiB2F,EAAQ,eAAgBvF,EAAiBuF,EAAQ,eAAgBnF,GAAqBmF,EAAQ,mBAAoBjF,GAAiBiF,EAAQ,eACrMC,GAAgB,IAAIxH,EACpBuC,GAAW,CACX,cAAe,SAAUM,GAAGC,EAAG,CAC3B,IAAI2E,EAAsBD,GAAc,IAAI3E,EAAC,EAC7C,MAAI,CAAClC,GAAY8G,CAAmB,GAAKA,EAAoB,IAAI3E,CAAC,EACvD,GAEPV,GAAmBS,GAAGC,CAAC,EAAE,QACrBnC,GAAY8G,CAAmB,IAC/BA,EAAsB,IAAI3H,EAC1B0H,GAAc,IAAI3E,GAAG4E,CAAmB,GAE5CA,EAAoB,IAAI3E,CAAC,EAClB,IAEJ,EAC3B,EACgB,0BAA2BrB,EAC3B,uBAAwBG,EACxB,uBAAwBI,EACxB,wBAAyBI,GACzB,uBAAwBE,IAE5B,OAAOC,EACnB,CAKQ,SAASC,GAAoBK,EAAGC,EAAGkE,EAAQ,CACvC,IAAIU,EAAqBvH,EAAiB,YAAY0C,EAAGC,CAAC,EAC1D,GAAI,CAACnC,GAAY+G,CAAkB,EAC/B,OAAOA,EAEX,GAAIV,EAAQ,CACR,GAAI7G,EAAiB,YAAY0C,EAAGC,EAAGzC,CAAgB,EACnD,OAAOA,EAEX,MAAM,IAAI,MAAM,gBAAgB,CAChD,CAEA,CACA,CAAK,CACL,GAAGjC,IAAYA,EAAU,CAAA,EAAG,UChnCsK,SAAS6f,GAAEH,EAAEC,EAAEzW,EAAE,CAAC,OAAO,QAAQ,eAAeyW,EAAED,EAAExW,CAAC,CAAC,CAAqD,SAAS0U,GAAE8B,EAAEC,EAAEzW,EAAE4W,EAAE,CAAC,QAAQ,eAAeH,EAAEzW,EAAEwW,EAAEI,CAAC,CAAC,CAAC,SAASzb,GAAEqb,EAAEC,EAAEzW,EAAE4W,EAAE1Y,EAAE,CAAC,MAAMmQ,EAAEuI,EAAED,GAAEH,EAAEC,EAAEvY,CAAC,GAAG8B,EAAC,CAAE,EAAE,QAAQ,eAAeyW,EAAEpI,EAAEmI,EAAEtY,CAAC,CAAC,CCAvI,MAAMwW,GAAE,mCAAmC,SAASiC,IAAG,CAAC,MAAMxb,EAAE6E,GAAE,OAAO0U,EAAC,GAAG,EAAE,OAAOvZ,IAAI,OAAO,iBAAiBqb,GAAE,OAAO9B,GAAE,OAAO,gBAAgB,EAAE+B,GAAE,OAAO/B,GAAE,IAAIvZ,EAAE,GAAG,EAAE,CAAC,EAAEA,CAAC,CAAC,MAAM0b,GAAE,CAAC,QAAQ,UAAU,UAAU,YAAY,UAAU,WAAW,EAAED,GAAE,CAAC,cAAc,gBAAgB,aAAa,eAAe,QAAQ,UAAU,SAAS,WAAW,SAAS,WAAW,cAAc,gBAAgB,mBAAmB,oBAAoB,EAAE,SAASzS,MAAKnE,EAAE,CAAC,UAAUwW,KAAKxW,EAAE,MAAMwW,CAAC,CAAC,MAAM/C,EAAC,CAAC,GAAG,GAAGqD,GAAG,YAAY,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAA,EAAG,UAAU,KAAK,QAAQ,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAKA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAKC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,UAAUN,KAAK,QAAQ,QAAQ,CAAC,EAAE,KAAK,GAAGA,EAAE,EAAEA,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAKO,KAAK,EAAE,KAAKC,KAAKR,EAAE,QAAQ,QAAQ,KAAKK,EAAE,EAAE3b,EAAE,KAAK,kBAAkB,KAAK2b,EAAE,EAAE,KAAKI,GAAG,KAAK,GAAG/b,EAAE,GAAG,EAAE,CAAC,EAAE,UAAUqb,KAAKC,EAAE,KAAKU,GAAG,KAAK,GAAGX,CAAC,EAAErb,EAAE,GAAGqb,CAAC,EAAE,CAAC,EAAE,OAAOrb,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,KAAI,CAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,MAAMsb,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,GAAYA,IAAT,OAAW,OAAO,MAAMtb,EAAE,IAAI,IAAIsb,CAAC,EAAE,UAAUA,KAAKtb,EAAE,CAAC,MAAMA,EAAE,KAAK,GAAG,IAAIsb,CAAC,EAAE,GAAYtb,IAAT,OAAW,MAAM,IAAI,MAAM,sCAAsC,EAAE,UAAUic,KAAKjc,EAAEic,EAAE,CAAC,IAAI,GAAG,KAAKC,GAAGZ,EAAEW,CAAC,EAAE,KAAK,GAAG,OAAOX,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAIhD,GAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAACuD,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,UAAU,KAAK,KAAK,GAAG,KAAI,EAAG,CAAC,MAAMP,EAAE,KAAK,YAAY,CAAC,EAAE,EAAE,IAAI,EAAEA,CAAC,CAAC,CAAC,OAAO,CAAC,CAACQ,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,UAAU,KAAK,KAAK,GAAG,OAAM,EAAG,UAAUR,KAAK,EAAE,CAAC,MAAMD,EAAE,KAAK,eAAeC,CAAC,EAAE,EAAE,IAAIA,EAAED,CAAC,CAAC,CAAC,OAAO,CAAC,CAACO,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,EAAE,OAAgB,IAAT,SAAa,EAAE,CAAA,EAAG,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAIN,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,OAAgBA,IAAT,SAAaA,EAAE,CAAA,EAAG,KAAK,GAAG,CAAC,EAAE,IAAI,EAAEA,CAAC,GAAGA,CAAC,CAACa,GAAG,EAAE,EAAE,CAAC,MAAMb,EAAE,EAAE,IAAI,CAAC,EAAE,GAAYA,IAAT,OAAW,MAAM,IAAI,MAAM,0CAA0C,EAAE,OAAOA,CAAC,CAACc,GAAG,EAAE,EAAE,CAAC,MAAMd,EAAE,EAAE,IAAI,CAAC,EAAE,GAAYA,IAAT,OAAW,MAAM,IAAI,MAAM,6CAA6C,EAAE,OAAOA,CAAC,CAACU,GAAG,EAAE,EAAEV,EAAE,CAAC,SAAS,CAACtb,EAAEic,CAAC,IAAI,EAAE,CAAC,MAAMpX,EAAE,IAAI,MAAM,UAAUwW,KAAKY,EAAEpX,EAAE,KAAK,KAAKsX,GAAGd,EAAEC,CAAC,CAAC,EAAE,EAAE,IAAItb,EAAE6E,CAAC,CAAC,CAAC,CAACkX,GAAG,EAAE,EAAET,EAAEtb,EAAE,CAAC,SAAS,CAACic,EAAE/I,CAAC,IAAI,EAAE,CAAC,MAAMrO,EAAE,IAAI,MAAM,UAAUwW,KAAKnI,EAAErO,EAAE,KAAK,KAAKuX,GAAGf,EAAErb,CAAC,CAAC,EAAE,EAAE,IAAI,KAAKmc,GAAGF,EAAEX,CAAC,EAAEzW,CAAC,CAAC,CAAC,CAACqX,GAAG,EAAE,EAAE,CAAC,UAAUZ,KAAK,QAAQ,QAAQ,CAAC,EAAE,KAAKe,GAAG,EAAEf,EAAE,EAAEA,CAAC,CAAC,CAAC,CAACe,GAAG,EAAE,EAAEf,EAAE,CAAC,MAAMtb,EAAE,KAAK,GAAG,CAAC,EAAE,IAAIsb,CAAC,EAAE,GAAYtb,IAAT,OAAW,CAAC,MAAMic,EAAEjc,EAAE,QAAQ,CAAC,EAAOic,IAAL,IAAQjc,EAAE,OAAOic,EAAE,CAAC,EAAMjc,EAAE,SAAN,GAAc,KAAK,GAAG,CAAC,EAAE,OAAOsb,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIvY,IAAG,SAAS8B,EAAE,CAACA,EAAE,SAAS,WAAWA,EAAE,UAAU,WAAW,GAAE9B,KAAIA,GAAE,CAAA,EAAG,EAAE,MAAMqL,EAAC,CAACkO,GAAGC,GAAG,YAAY,EAAE,EAAE,CAAC,KAAKD,GAAG,GAAG,IAAIhE,GAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAKiE,GAAG,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,OAAO,IAAInO,GAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAKkO,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAIlO,GAAE,KAAKmO,GAAG,KAAKD,GAAG,MAAK,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAA,EAAGhB,EAAE,KAAKgB,GAAG,IAAIvZ,GAAE,UAAU,CAAC,EAAWuY,IAAT,QAAY,EAAE,KAAKA,CAAC,EAAE,MAAMtb,EAAE,KAAKuc,GAAE,GAAI,IAAI,CAAC,EAAE,GAAYvc,IAAT,QAAY,EAAE,KAAKA,CAAC,EAAM,EAAE,SAAN,EAAa,OAAOgJ,GAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,KAAKsT,GAAG,iBAAiBvZ,GAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,KAAKuZ,GAAG,iBAAiBvZ,GAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAMyZ,GAAE,4CAA4C,SAASvB,IAAG,CAAC,MAAM,CAAC,qBAAqB,CAAA,EAAG,UAAU,CAAC,yBAAyB,IAAI,IAAI,sBAAsB,IAAI,GAAG,EAAE,WAAW,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,MAAMwB,GAAE,wDAA8Dra,GAAE,OAAO,IAAI,sCAAsC,EAAE,MAAMsa,WAAU,KAAK,CAAC,CAACta,EAAC,EAAE,KAAK,YAAY,EAAE,EAAEkZ,EAAE,CAAC,MAAM,EAAEA,CAAC,EAAE,KAAKlZ,EAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,OAAgB,OAAO,GAAjB,UAA2B,IAAP,MAAe,EAAEA,EAAC,IAAR,EAAS,CAAC,OAAO,cAAc,EAAE,EAAE,CAAC,OAAOsa,GAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAIC,GAAEnD,GAAEoD,GAAEC,GAAEC,GAAE,SAASC,GAAE1B,EAAE,CAAC,MAAMC,EAAEzW,GAAEwW,EAAEmB,EAAC,GAAGvB,GAAC,EAAG,GAAG,EAAC,SAAS,EAAE,CAAC,MAAMK,EAAEzW,GAAE,EAAE4X,EAAC,EAAE,OAAgBnB,IAAT,QAAgBA,IAAJ,CAAK,GAAED,CAAC,EAAE,OAAO,SAASxW,EAAEwW,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAG,GAAGD,EAAE,OAAOxW,EAAE,OAAO,MAAM,IAAI6X,GAAEC,GAAE,0BAA0B,8CAA8C9X,EAAE,IAAI,OAAOA,EAAE,IAAI,mCAAmCA,EAAE,OAAO,UAAU,qBAAqBwW,EAAE,OAAO,SAAQ,CAAE;AAAA;AAAA;AAAA,mHAA2O,EAAE,QAAQxW,EAAE,EAAEA,EAAEwW,EAAE,OAAO,EAAExW,EAAWwW,EAAExW,CAAC,IAAZ,QAAeyW,EAAE,KAAKzW,CAAC,EAAE,GAAGyW,EAAE,OAAO,EAAE,MAAM,IAAIoB,GAAEC,GAAE,0BAA0B,8CAA8C9X,EAAE,IAAI,6BAA6ByW,EAAE,KAAK,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,mHAA4M,CAAC,GAAED,EAAEC,EAAE,oBAAoB,EAAEA,GAAG,SAASzW,EAAEwW,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAG,QAAQtb,EAAE,EAAEA,EAAEqb,EAAE,qBAAqB,OAAO,EAAErb,EAAE,CAAC,MAAMic,EAAEZ,EAAE,qBAAqBrb,CAAC,EAAWic,IAAT,QAAYA,EAAE,OAAOzC,GAAE,SAAS8B,EAAE,KAAK,gDAAgDzW,EAAE,IAAI,wCAAwC7E,EAAE,SAAQ,CAAE;AAAA,yGAA6G,CAAC,CAAC,SAAS,CAACA,EAAEic,CAAC,IAAIZ,EAAE,WAAWY,EAAE,OAAOzC,GAAE,SAAS8B,EAAE,KAAK,gDAAgDzW,EAAE,IAAI,kBAAkB7E,EAAE,SAAQ,CAAE;AAAA,+EAAoF,EAAE,MAAOsb,EAAE,SAAN,EAAmB,IAAIoB,GAAEC,GAAE,QAAQ,uCAAuC9X,EAAE,IAAI;AAAA;AAAA;AAAA;AAAA,sEAAmO,EAAQ,IAAI6X,GAAEC,GAAE,0BAA0B,kCAAkC9X,EAAE,IAAI;AAAA;AAAA,EAAQyW,EAAE,KAAK;AAAA;AAAA,CAAM,CAAC,EAAE,CAAC,GAAED,EAAEC,CAAC,CAAC,CAAC,SAASjb,GAAEwE,EAAEwW,EAAE,CAAC,MAAMC,EAAEyB,GAAE1B,CAAC,EAAE,OAAOxW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,GAAG2W,GAAC,EAAG,mBAAmBH,EAAE,cAAc,IAAI,GAAG,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,MAAMC,EAAE,kBAAkBD,EAAE,KAAKI,GAAE,QAAQ,CAAC,CAAC,SAASuB,GAAEnY,EAAE,CAAC,OAAOA,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAMA,EAAE,KAAK,EAAEA,CAAC,CAAC,SAASzD,GAAEyD,EAAE,CAAC,OAAOA,EAAE,KAAI,CAAE,KAAK4W,GAAE,cAAc,KAAKA,GAAE,aAAa,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,MAAMuB,GAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,aAAa,EAAE,aAAa,eAAe,EAAE,eAAe,MAAM,EAAE,MAAM,kBAAkB,EAAE,kBAAkB,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,CAAC,GAAEnY,CAAC,EAAE,KAAK4W,GAAE,QAAQ,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,MAAMuB,GAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,aAAa,EAAE,aAAa,eAAe,EAAE,eAAe,MAAM,EAAE,MAAM,kBAAkB,EAAE,kBAAkB,KAAK,EAAE,IAAI,CAAC,GAAEnY,CAAC,EAAE,KAAK4W,GAAE,SAAS,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,MAAMuB,GAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,mBAAmB,EAAE,mBAAmB,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,aAAa,EAAE,aAAa,eAAe,EAAE,eAAe,MAAM,EAAE,MAAM,kBAAkB,EAAE,kBAAkB,KAAK,EAAE,IAAI,CAAC,GAAEnY,CAAC,EAAE,KAAK4W,GAAE,SAAS,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,MAAMuB,GAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,aAAa,EAAE,aAAa,eAAe,EAAE,eAAe,SAAS,EAAE,SAAS,MAAM,EAAE,MAAM,kBAAkB,EAAE,kBAAkB,KAAK,EAAE,IAAI,CAAC,GAAEnY,CAAC,EAAE,KAAK4W,GAAE,cAAc,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,MAAMuB,GAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,SAAS,EAAE,SAAS,aAAa,EAAE,aAAa,eAAe,EAAE,eAAe,MAAM,EAAE,MAAM,kBAAkB,EAAE,kBAAkB,KAAK,EAAE,IAAI,CAAC,GAAEnY,CAAC,EAAE,KAAK4W,GAAE,mBAAmB,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,cAAc,SAAS,EAAE,SAAS,kBAAkB,EAAE,kBAAkB,wBAAwB,EAAE,wBAAwB,KAAK,EAAE,IAAI,CAAC,GAAE5W,CAAC,CAAC,CAAC,EAAE,SAASA,EAAE,CAACA,EAAEA,EAAE,2BAA2B,CAAC,EAAE,6BAA6BA,EAAEA,EAAE,0BAA0B,CAAC,EAAE,4BAA4BA,EAAEA,EAAE,SAAS,CAAC,EAAE,WAAWA,EAAEA,EAAE,WAAW,CAAC,EAAE,aAAaA,EAAEA,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAE8X,KAAIA,GAAE,CAAA,EAAG,GAAE,SAAS9X,EAAE,CAACA,EAAEA,EAAE,QAAQ,EAAE,EAAE,SAAS,GAAE2U,KAAIA,GAAE,GAAG,GAAE,SAAS3U,EAAE,CAACA,EAAE,GAAG,KAAKA,EAAE,SAAS,WAAWA,EAAE,UAAU,WAAW,GAAE+X,KAAIA,GAAE,CAAA,EAAG,EAAE,MAAMK,WAAU3E,EAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI2E,GAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,OAAO7b,GAAE,CAAC,CAAC,CAAC,QAAC,MAAM8b,EAAC,CAACC,GAAGC,GAAGb,GAAG,YAAY,EAAE,EAAEjB,EAAE,CAAC,KAAK8B,GAAG9B,GAAG,IAAI2B,GAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAKV,GAAG,EAAE,KAAKY,GAAG,CAAC,CAAC,OAAO,MAAM,EAAE,EAAE,CAAC,OAAO,IAAID,GAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAIA,GAAE,KAAKX,GAAG,KAAKY,GAAG,KAAKC,GAAG,MAAK,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,qBAAqB,CAAC,GAAG,KAAKb,GAAE,GAAI,IAAI,CAAC,EAAE,GAAY,IAAT,OAAW,OAAO,EAAE,MAAMjB,EAAE,KAAK+B,GAAG,CAAC,EAAE,OAAgB/B,IAAT,OAAWA,EAAE,CAACA,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,qBAAqB,CAAC,EAAW,IAAT,SAAa,MAAM,GAAG,MAAMA,EAAE,KAAKiB,GAAE,EAAG,GAAYjB,IAAT,QAAY,GAAY,IAAT,OAAW,CAAC,MAAMD,EAAE,KAAKgC,GAAG,CAAC,EAAWhC,IAAT,SAAa,MAAMA,EAAE,OAAO,MAAMC,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK8B,GAAG,WAAWR,GAAE,SAAS,CAAC,EAAE,EAAE,KAAKL,GAAE,EAAG,GAAY,IAAT,OAAW,UAAUjB,KAAK,EAAE,iBAAgB,EAAG,EAAE,IAAIA,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK8B,GAAG,IAAIR,GAAE,GAAG,CAAC,GAAG,KAAKL,GAAE,GAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,OAAO,KAAKa,GAAG,IAAIR,GAAE,SAAS,CAAC,GAAG,KAAKL,GAAE,GAAI,cAAc,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,OAAO,KAAKa,GAAG,IAAIR,GAAE,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,KAAKQ,GAAG,WAAWR,GAAE,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAKQ,GAAG,iBAAiBR,GAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,KAAKQ,GAAG,iBAAiBR,GAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,KAAKQ,GAAG,iBAAiBR,GAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAACA,GAAE,EAAE,EAAE,EAAE,GAAG,CAACA,GAAE,SAAS,EAAE,EAAE,iBAAiB,EAAW,EAAE,WAAX,SAAsB,EAAEA,GAAE,QAAQ,EAAE,EAAE,UAAU,KAAKQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAACC,GAAG,EAAE,CAAC,GAAY,KAAKF,KAAd,QAA8B,OAAO,GAAnB,WAAqB,OAAO,MAAM,EAAE9c,GAAE,KAAK8c,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,GAAE,SAAStY,EAAE,CAACA,EAAE,SAAS,WAAWA,EAAE,UAAU,WAAW,GAAEgY,KAAIA,GAAE,GAAG,EAAC,IAAAS,GAAC,MAAMC,EAAC,CAACC,GAAGjB,GAAG,YAAY,EAAE,EAAE,CAAC,KAAKiB,GAAG,GAAG,IAAIlF,GAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAKiE,GAAG,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,OAAO,IAAIgB,GAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAKC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAID,GAAE,KAAKhB,GAAG,KAAKiB,GAAG,MAAK,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAA,EAAGlC,EAAE,KAAKkC,GAAG,IAAIX,GAAE,UAAU,CAAC,EAAWvB,IAAT,QAAY,EAAE,KAAKA,CAAC,EAAE,MAAMtb,EAAE,KAAKuc,GAAE,GAAI,IAAI,CAAC,EAAE,GAAYvc,IAAT,QAAY,EAAE,KAAKA,CAAC,EAAM,EAAE,SAAN,EAAa,OAAOgJ,GAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,KAAKwU,GAAG,iBAAiBX,GAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,KAAKW,GAAG,iBAAiBX,GAAE,UAAU,CAAC,CAAC,CAAC,EAAsO,SAASY,IAAG,CAAC,MAAO,EAAC,CAAC,SAAS9Y,GAAEE,EAAE,CAAC,OAAOwW,GAAG,CAAUA,IAAT,QAAYA,EAAE,OAAO7B,GAAE,SAAS8B,GAAEzW,EAAE4X,GAAEgB,GAAE5Y,GAAGA,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS6Y,GAAE7Y,EAAEwW,EAAE,CAAC,MAAM,IAAIC,IAAI,GAAG,CAAC,GAAY,IAAT,OAAW,OAAOzW,EAAE,GAAGyW,CAAC,EAAE,GAAG,EAAE,OAAOwB,GAAE,UAAU,MAAM,IAAIJ,GAAEC,GAAE,2BAA2B,2FAA2F,EAAE,OAAOtB,EAAE,EAAE,GAAGC,CAAC,CAAC,CAAC,CAAC,SAASqC,GAAE9Y,EAAE,CAAC,GAAGA,EAAE,OAAO2U,GAAE,SAAc3U,EAAE,4BAAP,GAAiC,MAAM,IAAI6X,GAAEC,GAAE,2BAA2B,2FAA2F,CAAC,EAAE,SAAS9X,EAAE,CAACA,EAAEA,EAAE,kBAAkB,CAAC,EAAE,oBAAoBA,EAAEA,EAAE,gBAAgB,CAAC,EAAE,kBAAkBA,EAAEA,EAAE,UAAU,CAAC,EAAE,WAAW,GAAEiY,KAAIA,GAAE,CAAA,EAAG,EAAE,MAAMza,GAAEqb,GAAE,SAAS7Y,EAAEwW,EAAEC,EAAE,CAAC,OAAOzW,IAAIiY,GAAE,kBAAkB,CAAC,QAAQxB,GAAG,SAAS,GAAG,KAAKzW,EAAE,KAAK,OAAO,SAAS,GAAG,KAAK,IAAI,IAAI,MAAMwW,CAAC,EAAE,CAAC,KAAKxW,EAAE,KAAK,OAAO,SAAS,GAAG,KAAK,IAAI,IAAI,MAAMwW,CAAC,CAAC,EAAE,SAASxW,EAAEwW,EAAEC,EAAE,EAAE,CAAC,OAAOqC,GAAE9Y,CAAC,EAAEwW,IAAIyB,GAAE,kBAAkB,CAAC,GAAGjY,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAKwW,EAAE,MAAMC,CAAC,EAAE,CAAC,GAAGzW,EAAE,KAAKwW,EAAE,MAAMC,CAAC,CAAC,CAAC,EAAE,SAASlb,GAAEyE,EAAEwW,EAAE,CAAC,OAAOC,GAAG,CAAC,MAAM,EAAEA,EAAE,WAAW,IAAID,CAAC,EAAE,OAAOC,EAAE,WAAW,IAAID,EAAExW,EAAE,CAAC,CAAC,EAAEyW,CAAC,CAAC,CAAC,IAAIsC,GAAE,SAAS7X,GAAElB,EAAEwW,EAAEC,EAAE,EAAE,CAAC,GAAGoB,GAAE,cAAc,EAAEC,GAAE,0BAA0B,EAAE,CAAC,MAAMV,GAAE,SAASpX,EAAEwW,EAAEC,EAAE,CAAC,GAAYA,IAAT,OAAW,CAAC,GAAYD,IAAT,OAAW,MAAM,IAAIqB,GAAEC,GAAE,QAAQ,gDAAgD,EAAE,MAAM,CAAC,KAAKiB,GAAE,SAAS,SAASvC,EAAE,YAAYxW,EAAE,WAAW,CAAC,CAAC,OAAgB,OAAOyW,GAAjB,SAAmB,CAAC,MAAMA,EAAE,KAAKsC,GAAE,UAAU,YAAY/Y,CAAC,EAAE,CAAC,KAAK+Y,GAAE,OAAO,OAAOvC,EAAE,YAAYxW,CAAC,CAAC,GAAEA,EAAEwW,EAAEC,CAAC,EAAE,MAAM,IAAIoB,GAAEC,GAAE,2BAA2B;AAAA;AAAA;AAAA;AAAA,EAA4C,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA,GAAkB,SAAS9X,EAAE,CAAC,OAAOA,EAAE,KAAI,CAAE,KAAK+Y,GAAE,OAAO,MAAM,YAAY/Y,EAAE,YAAY,IAAI,eAAeA,EAAE,OAAO,SAAQ,CAAE,KAAK,KAAK+Y,GAAE,UAAU,MAAM,YAAY/Y,EAAE,YAAY,IAAI,cAAcA,EAAE,MAAM,SAAQ,CAAE,KAAK,KAAK+Y,GAAE,SAAS,MAAM,YAAY/Y,EAAE,YAAY,IAAI,iBAAiBA,EAAE,SAAS,SAAQ,CAAE,IAAI,CAAC,GAAEoX,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS4B,GAAEhZ,EAAEwW,EAAE,CAAC,MAAM,CAACrb,EAAEic,EAAE,IAAI,CAAC,GAAG,CAAU,IAAT,QAAW,SAASpX,EAAEwW,EAAE,CAAC,MAAMrb,EAAE8d,GAAEjZ,EAAEwW,CAAC,EAAE,MAAM,CAACxW,EAAEwW,IAAI,CAACC,GAAEzW,EAAE,YAAY2X,GAAEvB,GAAE7a,GAAEJ,EAAE6E,CAAC,EAAEwW,CAAC,CAAC,CAAC,CAAC,GAAExW,EAAEwW,CAAC,EAAErb,EAAEic,CAAC,EAAY,OAAO,GAAjB,UAAmB,SAASpX,EAAEwW,EAAE,CAAC,MAAMrb,EAAE8d,GAAEjZ,EAAEwW,CAAC,EAAE,MAAM,CAACxW,EAAEwW,EAAEY,IAAI,CAAC,GAAG,EAAC,SAASpX,EAAEwW,EAAE,CAAC,OAAkB,OAAOxW,GAAnB,YAA+BwW,IAAT,MAAU,GAAExW,EAAEwW,CAAC,EAAE,MAAM,IAAIqB,GAAEC,GAAE,2BAA2B;AAAA,qCAAkGtB,GAAG,SAAQ,GAAI,EAAE,eAAexW,EAAE,YAAY,IAAI,GAAG,EAAEyW,GAAEzW,EAAE2X,GAAEvB,IAAE,SAASpW,EAAEwW,EAAE,CAAC,OAAOC,GAAG,CAAC,MAAMtb,EAAEsb,EAAE,qBAAqBD,CAAC,EAAE,OAAOC,EAAE,qBAAqBD,CAAC,EAAExW,EAAE7E,CAAC,EAAEsb,CAAC,CAAC,GAAEtb,EAAE6E,CAAC,EAAEoX,CAAC,CAAC,CAAC,CAAC,GAAEpX,EAAEwW,CAAC,EAAErb,EAAEic,EAAE,CAAC,GAAE,SAASpX,EAAEwW,EAAE,CAAC,MAAMrb,EAAE8d,GAAEjZ,EAAEwW,CAAC,EAAE,MAAM,CAACxW,EAAEwW,EAAEY,IAAI,CAAC,GAAG,EAAC,SAASpX,EAAE,CAAC,OAAgBA,EAAE,MAAX,MAAc,GAAEoX,CAAC,EAAE,MAAM,IAAIS,GAAEC,GAAE,2BAA2B;AAAA,qCAAmGtB,EAAE,SAAQ,CAAE,eAAexW,EAAE,YAAY,IAAI,GAAG,EAAEyW,GAAEzW,EAAE,YAAY2X,GAAEvB,GAAE7a,GAAEJ,EAAE6E,CAAC,EAAEwW,CAAC,CAAC,CAAC,CAAC,GAAExW,EAAEwW,CAAC,EAAErb,EAAEic,EAAE,CAAC,CAAC,OAAOpX,EAAE,CAACkB,GAAE/F,EAAEic,EAAE,EAAEpX,CAAC,CAAC,CAAC,CAAC,CAAC,SAASiZ,GAAEjZ,EAAEwW,EAAE,CAAC,OAAOC,GAAG,CAAC,MAAM,EAAED,EAAEC,CAAC,EAAE,OAAOD,IAAI,EAAEA,CAAC,EAAExW,EAAEwW,CAAC,EAAE,CAAC,CAAC,SAAS0C,GAAElZ,EAAE,CAAC,OAAOgZ,GAAExb,GAAEya,GAAE,gBAAgBjY,CAAC,EAAEF,EAAC,CAAC,EAAE,SAASE,EAAE,CAACA,EAAEA,EAAE,OAAO,CAAC,EAAE,SAASA,EAAEA,EAAE,UAAU,CAAC,EAAE,YAAYA,EAAEA,EAAE,SAAS,CAAC,EAAE,UAAU,GAAE+Y,KAAIA,GAAE,CAAA,EAAG,EAAE,MAAMI,GAAE,oDAA0DC,GAAE,CAAC,MAAM,OAAO,QAAQ,SAAS,OAAO,OAAO,MAAM,EAAE,SAASC,GAAE7C,EAAE,CAAC,MAAMrb,EAAE6E,GAAEwW,EAAE,mBAAmB,EAAWrb,IAAT,QAAYsb,GAAED,EAAEmB,GAAEvB,IAAE,SAASpW,EAAE,CAAC,OAAOwW,IAAIxW,EAAE,QAAQ,CAACA,EAAEyW,IAAI,CAAC,IAAItb,EAAWqb,EAAE,qBAAqBC,CAAC,IAAjC,SAAqCtb,EAAE6E,EAAEoZ,GAAE,SAASje,CAAC,KAAKqb,EAAE,qBAAqBC,CAAC,GAAE,SAASzW,EAAE,CAAC,MAAM,CAAC,0BAA0B,GAAG,KAAKiY,GAAE,gBAAgB,KAAK,OAAO,SAAS,GAAG,KAAK,IAAI,IAAI,MAAMjY,CAAC,CAAC,GAAEA,CAAC,EAAE,CAAC,EAAEwW,EAAE,GAAErb,CAAC,CAAC,CAAC,CAAC,SAASme,GAAEne,EAAE,CAAC,OAAOic,GAAG,EAAE,SAASX,EAAE,CAAC,GAAYzW,GAAEyW,EAAE0C,EAAC,IAAd,OAAgB,MAAM,IAAItB,GAAEC,GAAE,2BAA2B,+DAA+DrB,EAAE,IAAI,GAAG,EAAED,GAAEC,EAAE0C,GAAE,EAAE,CAAC,GAAE/B,CAAC,EAAEiC,GAAEjC,CAAC,CAA0C,CAAC,CAAwrC,SAASmC,GAAGvZ,EAAE,CAAC,OAAOwW,GAAG,CAAUA,YAAGC,GAAEzW,EAAE4X,GAAEgB,GAAE5Y,GAAGA,EAAE,CAAC,CAAC,CAAC,CAAC,SAASwZ,GAAGxZ,EAAE,CAAC,OAAOwW,GAAG,CAAC,MAAMC,EAAED,GAAG,CAAC,KAAK7B,GAAE,QAAQ,KAAK,OAAO,SAAS,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG8B,EAAE,OAAOwB,GAAE,UAAU,MAAM,IAAIJ,GAAEC,GAAE,2BAA2B,6HAA6H,EAAE,OAAO9X,EAAEyW,CAAC,CAAC,CAAC,CAAC,SAASgD,GAAGzZ,EAAE,CAAC,MAAMwW,EAAEgD,IAAG,SAASxZ,EAAE,CAAC,OAAOwW,GAAG,CAAC,GAAYA,EAAE,OAAX,OAAgB,MAAM,IAAIqB,GAAEC,GAAE,2BAA2B,uCAAuC,EAAE,OAAOtB,EAAE,KAAKxW,EAAEwW,CAAC,CAAC,GAAExW,CAAC,CAAC,EAAE,OAAOgZ,GAAExC,EAAE+C,EAAE,CAAC,CAAC,SAASG,GAAG1Z,EAAE,CAAC,GAAGA,EAAE,SAAS,MAAM,IAAI6X,GAAEC,GAAE,2BAA2B,0CAA0C,EAAE,OAAO9X,EAAE,SAAS,GAAGA,CAAC,CAAC,SAAS2Z,IAAI,CAAC,OAAOX,GAAEQ,GAAGE,EAAE,EAAEH,EAAE,CAAC,CAA0yB,SAASK,IAAI,CAAC,MAAM,CAAC,KAAK3B,GAAE,SAAS,CAAC,CAAC,MAAM4B,GAAGhB,GAAEe,GAAG,SAAS5Z,EAAE,CAAC,GAAG8Y,GAAE9Y,CAAC,GAAE,SAAS,EAAE,CAAC,OAAgB,EAAE,OAAX,QAAiB,EAAE,UAAU,EAAE,KAAK,KAAK,CAAC,GAAEA,CAAC,EAAE,MAAM,IAAI6X,GAAEC,GAAE,2BAA2B,6HAA6H,EAAE,OAAO8B,GAAE,CAAE,CAAC,EAAE,SAASE,IAAI,CAAC,OAAOd,GAAEa,GAAE,EAAG/Z,EAAC,CAAC,CAAC,IAAIia,IAAI,SAAS/Z,EAAE,CAACA,EAAEA,EAAE,kBAAkB,CAAC,EAAE,oBAAoBA,EAAEA,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,GAAE+Z,KAAKA,GAAG,CAAA,EAAG,EAAE,MAAMC,GAAG,6CAA6CC,GAAG,qBAAqB,SAASC,GAAGla,EAAE,CAAC,GAAG,CAAC,OAAOA,aAAa,QAAQA,aAAa,YAAYga,GAAG,KAAKha,EAAE,OAAO,GAAqBA,EAAE,OAApB,iBAA0Bia,GAAG,KAAKja,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,aAAa,aAAa,EAAE,QAAQ,SAAS,gBAAgB,CAAC,CAAC,CAAC,SAASma,GAAGna,EAAEwW,EAAE,CAAC,GAAG0D,GAAG1D,CAAC,EAAE,CAAC,MAAMC,GAAE,SAASzW,EAAE,CAAC,MAAMwW,EAAE,CAAC,GAAGxW,CAAC,EAAE,OAAOwW,EAAE,SAAN,EAAmB,wBAA+BA,EAAE,IAAIY,EAAC,EAAE,KAAK,MAAM,CAAC,IAAE,SAASpX,EAAE,CAAC,MAAMwW,EAAE,IAAI,IAAI,UAAUC,KAAKzW,EAAE,eAAe,CAAC,GAAGwW,EAAE,IAAIC,CAAC,EAAE,MAAM,CAAC,GAAGD,EAAEC,CAAC,EAAED,EAAE,IAAIC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAGD,CAAC,CAAC,GAAExW,CAAC,CAAC,EAAE,MAAM,IAAI6X,GAAEC,GAAE,SAAS,8BAA8BrB,CAAC,GAAG,CAAC,MAAMD,CAAC,CAAC,CAAC,CAAC,MAAMA,CAAC,CAAC,MAAM4D,GAAG,OAAO,IAAI,uCAAuC,EAAE,MAAMC,EAAE,CAAC,CAACD,EAAE,EAAE,mBAAmB,aAAa,YAAY,EAAE,EAAE,CAAC,KAAKA,EAAE,EAAE,GAAG,KAAK,aAAa,EAAE,KAAK,mBAAmB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,SAAQ,EAAG,QAAQ,CAAC,IAAI,eAAe,CAAC,OAAO,KAAK,WAAW,aAAa,CAAC,IAAI,mBAAmB,CAAC,OAAO,KAAK,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,SAAQ,EAAG,SAAS,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,KAAK,SAAQ,EAAG,cAAc,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,OAAgB,OAAO,GAAjB,UAA2B,IAAP,MAAe,EAAEA,EAAE,IAAT,EAAU,CAAC,YAAY,CAAC,KAAK,aAAa,MAAM,CAAC,YAAY,CAAC,OAAgB,KAAK,eAAd,MAA0B,CAAC,UAAU,CAAC,OAAgB,KAAK,eAAd,SAA6B,KAAK,aAAa,KAAK,sBAAqB,GAAI,KAAK,YAAY,CAAC,CAAC,MAAME,EAAE,CAACC,GAAG,YAAY,EAAE,CAAC,KAAKA,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,KAAKA,GAAG,KAAK,IAAI,CAAC,IAAI,mBAAmB,CAAC,OAAO,KAAKA,GAAG,KAAK,iBAAiB,CAAC,IAAI,MAAM,CAAC,OAAO,KAAKA,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,KAAKA,GAAG,KAAK,mBAAmB,GAAY,KAAKA,GAAG,WAAjB,OAA0B,OAAO,IAAID,GAAG,KAAKC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAASC,GAAGxa,EAAEwW,EAAEC,EAAE,CAAC,MAAM,EAAEA,GAAG,yBAAyBD,EAAE,kBAAkBY,GAAQX,GAAG,UAAR,GAAgB,CAAC,GAAGzW,EAAE,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,GAAGA,EAAE,WAAW,YAAY,CAAC,GAAG,CAAA,CAAE,GAAG,OAAOA,GAAGA,EAAE,cAAcwW,CAAC,CAAC,EAAE,GAAOY,EAAE,SAAN,GAAuBpX,EAAE,kBAAX,QAAwC,OAAO,GAAnB,WAAqB,CAAC,MAAMyW,EAAEjb,GAAEwE,EAAE,gBAAgB,CAAC,EAAEA,EAAE,WAAW,WAAWyW,CAAC,EAAEA,EAAE,cAAcD,CAAC,GAAGY,EAAE,KAAKX,CAAC,CAAC,CAAC,OAAOW,CAAC,CAAC,MAAMqD,EAAE,CAAC,KAAK,YAAY,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,IAAIA,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAY,IAAT,OAAW,MAAM,CAAC,KAAK,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASC,GAAG1a,EAAE,CAAC,MAAMwW,EAAE,IAAI,IAAI,OAAgBxW,EAAE,gBAAgB,MAA3B,QAAgCwW,EAAE,IAAIxW,EAAE,gBAAgB,IAAI,IAAIA,EAAE,gBAAgB,IAAI,KAAK,EAAE,IAAIya,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,KAAKza,EAAE,gBAAgB,KAAK,kBAAkBA,EAAE,gBAAgB,kBAAkB,KAAKwW,CAAC,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,SAASmE,GAAG3a,EAAE,CAAC,OAAgBA,EAAE,eAAX,MAAuB,CAAC,SAAS4a,GAAG5a,EAAEwW,EAAEC,EAAE,EAAE,CAAC,MAAM,EAAEA,EAAE,KAAK,kBAAkB,EAAEA,EAAE,UAAU,KAAK,kBAAkB,MAAM,QAAQzW,CAAC,GAAE,SAASA,EAAEwW,EAAEC,EAAEtb,EAAEkT,EAAEkD,EAAE,CAAC,GAAOvR,EAAE,SAAN,EAAa,CAAC,MAAMwW,EAAEjF,EAAEA,EAAE,OAAO,CAAC,GAAGkF,EAAE/B,EAAE,0CAA0C0C,GAAEZ,CAAC,CAAC,KAAKqE,GAAGtJ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAA+BvR,EAAE,IAAIA,IAAG,SAASA,EAAE,CAAC,OAAOA,EAAE,KAAI,CAAE,KAAK4W,GAAE,SAAS,MAAM,YAAY5W,EAAE,IAAI,0BAA0BoX,GAAEpX,EAAE,iBAAiB,CAAC,cAAcA,EAAE,KAAK,2BAA2BA,EAAE,mBAAmB,IAAI,MAAM,KAAK4W,GAAE,mBAAmB,MAAM,YAAY5W,EAAE,IAAI,0BAA0BoX,GAAEpX,EAAE,iBAAiB,CAAC,oBAAoBoX,GAAEpX,EAAE,uBAAuB,CAAC,MAAM,QAAQ,MAAM,YAAYA,EAAE,IAAI,0BAA0BoX,GAAEpX,EAAE,iBAAiB,CAAC,cAAcA,EAAE,KAAK,KAAK,CAAC,GAAEA,EAAE,OAAO,CAAC,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,kCAAuC8a,GAAGrE,EAAEtb,CAAC,CAAC,KAAK4f,GAAG1M,CAAC,CAAC,GAAG,MAAM,IAAIwJ,GAAEC,GAAE,SAASpD,CAAC,CAAC,CAAC8B,GAAGwE,GAAGvE,EAAEtb,EAAEkT,EAAEkD,CAAC,CAAC,GAAEvR,EAAEwW,EAAE,EAAE,EAAEC,EAAE,KAAK,CAAC,GAAE,SAASzW,EAAEwW,EAAEC,EAAEtb,EAAEic,EAAE/I,EAAE,CAAUrO,IAAT,QAAYwW,GAAGwE,GAAGvE,EAAEtb,EAAEic,EAAE/I,CAAC,CAAC,GAAErO,EAAEwW,EAAE,EAAE,EAAEC,EAAE,KAAK,CAAC,CAAC,CAAC,SAASuE,GAAGhb,EAAEwW,EAAEC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,GAAGzW,EAAE,EAAE,mCAAmCoX,GAAE,CAAC,CAAC;AAAA;AAAA,kCAAyC0D,GAAG9a,EAAEwW,CAAC,CAAC,KAAKqE,GAAG,CAAC,CAAC,GAAGE,GAAGtE,CAAC,CAAC,GAAG,MAAM,IAAIoB,GAAEC,GAAE,SAAS,CAAC,CAAC,CAAC,SAASgD,GAAG9a,EAAEwW,EAAE,CAAC,OAAgBA,IAAT,OAAW,GAAGY,GAAEpX,CAAC,CAAC,kBAAkBoX,GAAEZ,CAAC,CAAC,CAAC,SAASuE,GAAG/a,EAAE,CAAC,MAAMwW,EAAMxW,EAAE,KAAK,OAAX,EAAgB,GAAG;AAAA;AAAA,MAAkB,CAAC,GAAGA,EAAE,KAAK,MAAM,EAAE,IAAIA,GAAGA,EAAE,SAAQ,CAAE,EAAE,KAAK;AAAA,KAAQ,CAAC,GAAG,MAAM;AAAA;AAAA;AAAA,wBAAmDoX,GAAEpX,EAAE,iBAAiB,CAAC;AAAA,UAAaA,EAAE,MAAM,SAAQ,GAAI,GAAG,GAAGwW,CAAC,EAAE,CAAC,SAASqE,GAAG7a,EAAE,CAAC,OAAWA,EAAE,SAAN,EAAa,GAAG;AAAA;AAAA;AAAA,MAAoCA,EAAE,IAAI,GAAGoX,GAAE,CAAC,CAAC,EAAE,KAAK;AAAA,KAAQ,CAAC,EAAE,CAAC,SAAS6D,GAAGjb,EAAEwW,EAAEC,EAAE,EAAE,CAAC,GAAOzW,EAAE,aAAa,SAAnB,EAA0B,CAAC,KAAK,CAACoX,CAAC,EAAEpX,EAAE,aAAa,OAAO,KAAK2a,GAAGvD,CAAC,GAAG6D,GAAG7D,EAAEZ,EAAEC,EAAE,CAAC,GAAG,EAAEW,EAAE,QAAQ,uBAAuB,CAAC,EAAE,CAACwD,GAAG5a,EAAE,aAAawW,EAAEC,EAAE,CAAC,CAAC,CAAC,SAASyE,GAAGlb,EAAEwW,EAAEC,EAAE,CAAC,GAAG,MAAM,QAAQzW,EAAE,QAAQ,GAAOA,EAAE,SAAS,SAAf,EAAsB,CAAC,KAAK,CAAC,CAAC,EAAEA,EAAE,SAAS,OAAO,KAAK2a,GAAG,CAAC,GAAGM,GAAG,EAAEzE,EAAEC,EAAE,CAAC,EAAE,QAAQ,uBAAuB,CAAC,EAAE,CAACmE,GAAG5a,EAAE,SAASwW,EAAEC,EAAE,CAAA,CAAE,CAAC,CAAC,SAAS0E,GAAGnb,EAAE,CAAC,OAAOqO,GAAE,GAAGrO,CAAC,EAAEA,EAAE,SAASA,CAAC,CAAC,SAASob,GAAGpb,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAE,IAAI,CAAC,MAAMW,EAAE+D,GAAG,EAAE,KAAK,EAAE9M,EAAEoI,EAAE,OAAO,CAAC,mBAAmB,GAAG,KAAK,EAAE,KAAK,kBAAkBW,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE7F,EAAE,IAAI+I,GAAGjM,EAAE,IAAI,EAAEqG,EAAE,EAAE,OAAOuD,GAAE,mBAAmB,EAAE,QAAQtB,EAAE6D,GAAGhE,EAAEjF,EAAE,CAAC,QAAQmD,CAAC,CAAC,EAAEmC,EAAE,CAAA,EAAGD,EAAE,CAAC,SAASC,EAAE,cAAc,GAAG,kBAAkBO,CAAC,EAAE,GAAGP,EAAE,KAAK,GAAG7W,EAAEwW,EAAEnI,EAAEsI,EAAEC,EAAElC,CAAC,CAAC,EAAEkC,EAAE,cAAc,CAACvI,EAAE,KAAK,KAAK,mBAAmB,EAAE,OAAO4J,GAAE,gBAAgB,CAACiD,GAAGtE,EAAE,EAAE,SAASvI,EAAE,IAAI,EAAE,KAAK,CAACrO,CAAC,EAAE6W,EAAED,EAAE,SAAS5W,CAAC,CAAC,OAAO4W,CAAC,CAAC,CAAC,SAASyE,GAAGrb,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAE,IAAI,CAAC,MAAMW,EAAE+D,GAAG,EAAE,KAAK,EAAE9M,EAAEoI,EAAE,OAAO,CAAC,mBAAmB,GAAG,KAAK,EAAE,KAAK,kBAAkBW,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE7F,EAAE,IAAI+I,GAAGjM,EAAE,IAAI,EAAEqG,EAAE,EAAE,OAAOqF,GAAG,mBAAmB,EAAE,QAAQpD,EAAE6D,GAAGhE,EAAEjF,EAAE,CAAC,QAAQmD,CAAC,CAAC,EAAEmC,EAAE,CAAA,EAAGD,EAAE,CAAC,SAASC,EAAE,cAAc,GAAG,kBAAkBO,CAAC,EAAE,GAAGP,EAAE,KAAK,GAAG7W,EAAEwW,EAAEnI,EAAEsI,EAAEC,EAAElC,CAAC,CAAC,EAAEkC,EAAE,cAAc,CAACvI,EAAE,KAAK,KAAK,mBAAmB,EAAE,OAAO0L,GAAG,gBAAgB,CAACmB,GAAGtE,EAAE,EAAE,SAASvI,EAAE,IAAI,EAAE,KAAK,CAACrO,CAAC,EAAE6W,EAAED,EAAE,SAAS5W,CAAC,CAAC,OAAO4W,CAAC,CAAC,CAAC,SAAS0E,GAAGtb,EAAE,CAAC,MAAMwW,GAAE,SAASxW,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAEtb,IAAI,CAAC,MAAMic,EAAE,CAAC,QAAQX,EAAE,cAAcD,EAAE,WAAW,iBAAiBC,EAAE,kBAAkB,EAAE,kBAAkB,CAAA,EAAG,eAAe,IAAI,GAAG,EAAEpI,EAAE,CAAC,gBAAgBmI,EAAE,gBAAgB,KAAKY,EAAE,WAAWZ,EAAE,WAAW,eAAeA,EAAE,cAAc,EAAE,OAAOxW,EAAEqO,EAAElT,CAAC,CAAC,CAAC,GAAE6E,CAAC,EAAEyW,GAAE,SAASzW,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAEtb,IAAI,CAAC,MAAMic,EAAE,CAAC,QAAQX,EAAE,OAAO,CAAA,CAAE,EAAEpI,EAAE,CAAC,gBAAgBmI,EAAE,gBAAgB,KAAKY,EAAE,WAAWZ,EAAE,WAAW,eAAeA,EAAE,cAAc,EAAE,OAAOxW,EAAEqO,EAAElT,CAAC,CAAC,CAAC,GAAE6E,CAAC,EAAE,EAAE,CAACA,EAAE7E,EAAEkT,EAAEkD,EAAEmD,IAAI,CAAC,MAAMiC,EAAEgE,GAAGpJ,CAAC,EAAEA,EAAE,QAAQ,wBAAwBA,EAAE,kBAAkBvR,EAAE,eAAe,KAAK2W,CAAC,EAAE,MAAME,EAAE,CAAA,EAAG,UAAUtF,KAAKlD,EAAE,OAAOkD,EAAE,KAAI,CAAE,KAAKqF,GAAE,SAASC,EAAE,KAAKL,EAAExW,EAAEuR,EAAEpW,CAAC,CAAC,EAAE,MAAM,KAAKyb,GAAE,cAAcC,EAAE,KAAKJ,EAAEzW,EAAEuR,EAAEpW,CAAC,CAAC,EAAE,MAAM,KAAKyb,GAAE,mBAAmB,CAAC,MAAMJ,EAAEY,EAAEpX,EAAE7E,EAAEoW,EAAEmD,CAAC,EAAEmC,EAAE,KAAKL,CAAC,EAAE,KAAK,CAAC,QAAQK,EAAE,KAAK,CAAC,QAAQtF,CAAC,CAAC,CAAC,CAAC,OAAOvR,EAAE,eAAe,MAAM6W,CAAC,EAAEO,GAAE,SAASpX,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAEtb,EAAEic,IAAI,CAAC,MAAM/I,EAAE,CAAC,QAAQlT,EAAE,aAAa,CAAA,CAAE,EAAEoW,EAAEiJ,GAAGhE,EAAE,IAAI8D,GAAG7D,EAAE,IAAI,EAAE,CAAC,QAAQW,EAAE,wBAAwBjc,EAAE,uBAAuB,CAAC,EAAE,OAAOkT,EAAE,aAAa,KAAK,GAAGrO,EAAEwW,EAAEC,EAAElF,EAAElD,EAAE+I,CAAC,CAAC,EAAE/I,CAAC,CAAC,GAAE,CAAC,EAAE,OAAO,CAAC,CAAC,SAASkN,GAAGvb,EAAEwW,EAAEC,EAAE,EAAE,CAAC,GAAYzW,IAAT,SAAaqa,GAAG,GAAG5D,CAAC,GAAG,CAACA,EAAE,WAAU,GAAIA,EAAE,eAAe,CAAC,MAAMtb,EAAE,CAAC,KAAK,CAAC,KAAKsb,CAAC,CAAC,EAAED,EAAE,QAAQxW,EAAE7E,CAAC,CAAC,MAAMqb,EAAE,wBAAwBC,EAAE,CAAC,CAAC,CAAC,MAAM+E,WAAWnB,EAAE,CAACoB,GAAGC,GAAGC,GAAGC,GAAG,YAAY,EAAE,EAAEnF,EAAEtb,EAAEic,EAAE,CAAC,MAAMA,EAAE+D,GAAGhgB,EAAE,KAAK,CAAC,EAAE,KAAKugB,GAAG,EAAE,KAAKD,GAAG,EAAE,KAAKE,GAAGlF,EAAE,KAAKmF,GAAGzgB,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAKugB,GAAG,KAAKD,GAAG,KAAKE,GAAG,KAAKC,EAAE,CAAC,CAAC,CAAC,MAAMC,WAAWxB,EAAE,CAACoB,GAAGK,GAAGH,GAAGI,GAAG,YAAY,EAAE,EAAEtF,EAAEtb,EAAEic,EAAE,CAAC,MAAMA,EAAE+D,GAAGhgB,EAAE,KAAK,CAAC,EAAE,KAAKsgB,GAAG,EAAE,KAAKK,GAAG,EAAE,KAAKH,GAAGlF,EAAE,KAAKsF,GAAG5gB,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK2gB,GAAG,KAAKL,GAAG,KAAKE,GAAG,KAAKI,EAAE,CAAC,CAAC,CAAC,SAASC,GAAGhc,EAAEwW,EAAEC,EAAE,EAAE,CAAC,MAAMW,GAAE,SAASpX,EAAEwW,EAAE,CAAC,MAAMC,GAAE,SAASzW,EAAEwW,EAAE,CAAC,MAAM,CAACC,EAAEtb,EAAEic,IAAI,CAAC,GAAGA,EAAE,OAAOa,GAAE,UAAU,OAAO,MAAM1G,GAAE,SAASvR,EAAE,CAAC,IAAIwW,EAAE,GAAOxW,EAAE,KAAK,OAAX,EAAgBwW,EAAE,WAAW,CAAC,GAAOxW,EAAE,KAAK,OAAX,EAAgB,OAAO,CAAC,KAAK,CAACyW,EAAEtb,EAAC,EAAE6E,EAAE,KAAK,UAAU,KAAI,EAAG,MAAMwW,EAAE,CAAC,IAAIC,EAAE,MAAMtb,EAAC,CAAC,CAAC,CAAC,MAAMsb,GAAEpI,GAAE,GAAGrO,EAAE,KAAK,EAAEA,EAAE,MAAM,OAAM,EAAGA,EAAE,MAAM,OAAOA,EAAE,OAAOiY,GAAE,kBAAkB,CAAC,QAAQjY,EAAE,QAAQ,WAAW,GAAG,KAAKA,EAAE,KAAK,SAASA,EAAE,SAAS,kBAAkByW,GAAE,IAAID,CAAC,EAAE,CAAC,WAAW,GAAG,KAAKxW,EAAE,KAAK,SAASA,EAAE,SAAS,kBAAkByW,GAAE,IAAID,CAAC,CAAC,GAAEY,CAAC,EAAE,GAAY7F,IAAT,OAAW,CAAC,MAAMvR,EAAEyW,EAAE,WAAW,QAAQlF,CAAC,EAAE,GAAYvR,IAAT,QAAYA,EAAE,KAAK,KAAK,cAAc,OAAOA,EAAE,KAAK,IAAI,CAAC,MAAM0U,EAAE8B,EAAEC,EAAEtb,EAAEic,CAAC,EAAET,EAAE,IAAI6E,GAAG/E,EAAEzW,EAAE7E,EAAEic,EAAE1C,CAAC,EAAE,OAAO6G,GAAGhK,EAAEkF,EAAE,WAAWE,EAAE,CAAC,uBAAuBxb,EAAE,gBAAgBic,EAAE,OAAOa,GAAE,mBAAmBb,EAAE,QAAQ,iBAAiBA,EAAE,QAAQ,CAAC,EAAET,CAAC,CAAC,GAAE3W,EAAEwW,CAAC,EAAE,MAAM,CAACxW,EAAEwW,EAAErb,IAAI,CAAC,MAAMic,EAAEZ,EAAE,cAAc,SAAS,CAACnI,EAAEkD,CAAC,IAAI6F,EAAE,qBAAqB,QAAO,EAAGZ,EAAE,kBAAkBnI,CAAC,EAAEoI,EAAEzW,EAAE7E,EAAEoW,CAAC,EAAE,SAAS,CAAClD,EAAEkD,CAAC,IAAI6F,EAAE,WAAW,CAAC,MAAMA,EAAEX,EAAEzW,EAAE7E,EAAEoW,CAAC,EAAW6F,IAAT,QAAYZ,EAAE,eAAe,IAAInI,EAAE+I,CAAC,CAAC,CAAC,OAAOpX,EAAE,IAAI,CAAC,GAAEA,EAAEyW,CAAC,EAAE,GAAE,SAASzW,EAAEwW,EAAE,CAAC,MAAMC,GAAE,SAASzW,EAAEwW,EAAE,CAAC,MAAM,CAACC,EAAEtb,EAAEic,IAAI,CAAC,MAAM7F,GAAE,SAASvR,EAAE,CAAC,IAAIwW,EAAE,GAAOxW,EAAE,KAAK,OAAX,EAAgBwW,EAAE,WAAW,CAAC,GAAOxW,EAAE,KAAK,OAAX,EAAgB,OAAO,CAAC,KAAK,CAACyW,EAAEtb,EAAC,EAAE6E,EAAE,KAAK,QAAO,EAAG,KAAI,EAAG,MAAMwW,EAAE,CAAC,IAAIC,EAAE,MAAMtb,EAAC,CAAC,CAAC,CAAC,MAAMsb,GAAEpI,GAAE,GAAGrO,EAAE,KAAK,EAAEA,EAAE,MAAM,OAAM,EAAGA,EAAE,MAAM,OAAOA,EAAE,OAAO+Z,GAAG,kBAAkB,CAAC,QAAQ/Z,EAAE,QAAQ,WAAW,GAAG,KAAKA,EAAE,KAAK,SAASA,EAAE,SAAS,kBAAkByW,GAAE,IAAID,CAAC,EAAE,CAAC,WAAW,GAAG,KAAKxW,EAAE,KAAK,SAASA,EAAE,SAAS,kBAAkByW,GAAE,IAAID,CAAC,CAAC,GAAEY,CAAC,EAAE,GAAY7F,IAAT,OAAW,CAAC,MAAMvR,EAAEyW,EAAE,WAAW,QAAQlF,CAAC,EAAE,GAAYvR,IAAT,QAAYA,EAAE,KAAK,KAAK,cAAc,OAAOA,EAAE,KAAK,IAAI,CAAC,MAAM0U,EAAE8B,EAAEC,EAAEtb,EAAEic,CAAC,EAAET,EAAE,IAAIkF,GAAGpF,EAAEzW,EAAE7E,EAAEic,EAAE1C,CAAC,EAAE,OAAO6G,GAAGhK,EAAEkF,EAAE,WAAWE,EAAE,CAAC,uBAAuBxb,EAAE,gBAAgBic,EAAE,OAAO2C,GAAG,mBAAmB3C,EAAE,QAAQ,iBAAiBA,EAAE,QAAQ,CAAC,EAAET,CAAC,CAAC,GAAE3W,EAAEwW,CAAC,EAAE,MAAM,CAACxW,EAAEwW,EAAErb,IAAI,CAAC,MAAMic,EAAEZ,EAAE,QAAQ,SAAS,SAAS,CAACnI,EAAEkD,CAAC,IAAI6F,EAAE,UAAU,QAAO,EAAGZ,EAAE,OAAOnI,CAAC,EAAEoI,EAAEzW,EAAE7E,EAAEoW,CAAC,EAAE,OAAOvR,EAAE,IAAI,CAAC,GAAEwW,EAAE,CAAC,EAAE,MAAM,CAACxW,EAAEwW,IAAIxW,EAAE,KAAK,QAAQ,OAAO4W,GAAE,SAASQ,EAAEpX,EAAEA,EAAE,KAAKwW,CAAC,EAAE,EAAExW,EAAEA,EAAE,KAAKwW,CAAC,CAAC,CAAC,MAAMyF,WAAW5B,EAAE,CAACoB,GAAG,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,KAAKA,GAAG,CAAC,CAAC,uBAAuB,CAAC,OAAOS,GAAG,KAAKT,EAAE,CAAC,CAAC,CAAC,MAAMU,GAAGf,GAAGgB,EAAE,EAAEC,GAAGhB,GAAGe,EAAE,EAAEE,GAAGhB,GAAGU,GAAGG,GAAGE,GAAGF,GAAGE,EAAE,CAAC,EAAE,SAASD,GAAGpc,EAAEwW,EAAEC,EAAE,EAAEW,EAAE,CAAC,OAAOkF,GAAGtc,EAAEwW,EAAEC,EAAE,EAAEW,CAAC,CAAC,CAAC,MAAM8E,IAAG,SAASlc,EAAE,CAAC,OAAOwW,GAAG,CAAC,MAAMC,EAAEiE,GAAGlE,CAAC,EAAE,EAAE,IAAI8D,GAAG7D,EAAE,IAAI,EAAEW,EAAEZ,EAAE,gBAAgB,YAAYA,EAAE,gBAAgB,QAAQnI,EAAEmM,GAAGhE,EAAE,EAAE,CAAC,QAAQY,CAAC,CAAC,EAAE7F,EAAE,CAAA,EAAGmD,EAAE,CAAC,SAASnD,EAAE,cAAc,GAAG,kBAAkBiF,EAAE,gBAAgB,iBAAiB,EAAE,GAAGjF,EAAE,KAAK,GAAGvR,EAAEwW,EAAEC,EAAEpI,EAAEqG,EAAE0C,CAAC,CAAC,EAAE1C,EAAE,cAAc,CAAC+B,EAAE,KAAK,KAAK,mBAAmB,CAACD,EAAE,gBAAgB,WAAW,CAAC0E,GAAGxG,EAAE8B,EAAE,gBAAgB,YAAY,GAAGC,EAAE,IAAI,EAAE,KAAK,CAACzW,CAAC,EAAEuR,EAAEmD,EAAE,SAAS1U,CAAC,CAAC,OAAO0U,CAAC,CAAC,GAAE4H,EAAE,EAAE,SAASC,GAAGvc,EAAE,CAAC,GAAG,CAAC,MAAMwW,GAAE,SAASxW,EAAE,CAAC,OAAOA,EAAE,gBAAgB,WAAW,CAAC,QAAQA,EAAE,gBAAgB,QAAQ,WAAW,GAAG,KAAKA,EAAE,gBAAgB,KAAK,SAASA,EAAE,gBAAgB,YAAY,GAAG,kBAAkBA,EAAE,gBAAgB,kBAAkB,IAAIA,EAAE,gBAAgB,GAAG,EAAE,CAAC,WAAW,GAAG,KAAKA,EAAE,gBAAgB,KAAK,SAASA,EAAE,gBAAgB,YAAY,GAAG,kBAAkBA,EAAE,gBAAgB,kBAAkB,IAAIA,EAAE,gBAAgB,GAAG,CAAC,GAAEA,CAAC,EAAEyW,EAAEzW,EAAE,WAAW,QAAQwW,CAAC,EAAE,GAAYC,IAAT,OAAW,OAAOA,EAAE,MAAM,EAAEyF,GAAGlc,CAAC,EAAEoX,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI6E,GAAGjc,EAAE,CAAC,CAAC,CAAC,EAAE,OAAOA,EAAE,WAAW,QAAQwW,EAAEY,CAAC,EAAEA,CAAC,OAAOZ,EAAE,CAAC2D,GAAGna,EAAEwW,CAAC,CAAC,CAAC,CAAC,IAAIgG,IAAI,SAASxc,EAAE,CAACA,EAAE,aAAa,eAAeA,EAAE,eAAe,gBAAgB,GAAEwc,KAAKA,GAAG,CAAA,EAAG,EAAE,MAAMC,EAAE,CAACC,GAAGC,GAAGC,GAAG,aAAa,CAAC,KAAKF,GAAG,CAAA,EAAG,KAAKC,GAAG,EAAE,KAAKC,GAAG,IAAI,CAAC,EAAE,OAAO,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,KAAK,KAAKF,GAAG,CAAC,MAAMjG,EAAE,EAAE,MAAK,EAAYA,IAAT,OAAW,EAAE,EAAE,MAAMA,CAAC,CAAC,KAAKiG,GAAG,QAAQ,KAAKC,IAAI,KAAKE,GAAG,CAAC,GAAG,KAAKC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,QAAQ,CAAC,EAAE,GAAG,KAAKJ,GAAG,KAAK,CAAC,EAAE,KAAKA,GAAG,QAAQ,KAAKC,IAAI,KAAKD,GAAG,OAAO,KAAKE,KAAK,EAAE,CAAC,IAAI5c,EAAE,EAAE,UAAUwW,KAAK,KAAKkG,GAAYlG,EAAE,UAAX,QAAoB,EAAExW,EAAE,KAAK6c,GAAG7c,CAAC,GAAG,KAAK8c,GAAG9c,CAAC,CAAC,CAAC,CAAC8c,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,MAAM,KAAKJ,GAAG,OAAO,CAAC,EAAE,IAAIjG,EAAE,EAAE,UAAUzW,KAAK,KAAK0c,GAAG1c,EAAE,UAAU,EAAEyW,GAAG,EAAEzW,GAAG,KAAK0c,GAAG,CAAC,CAACG,GAAG,EAAE,CAAC,OAAO,GAAG,GAAG,KAAKH,GAAG,MAAM,CAAC,CAAC,MAAMK,GAAGzB,GAAGU,GAAGG,GAAGE,GAAG,SAASrc,EAAEwW,EAAEC,EAAE,CAAC,OAAOuG,GAAGhd,EAAEwW,EAAEC,CAAC,CAAC,EAAE,SAASzW,EAAEwW,EAAEC,EAAE,CAAC,OAAOwG,GAAGjd,EAAEwW,EAAEC,CAAC,CAAC,CAAC,CAAC,EAAEuG,IAAG,SAAShd,EAAE,CAAC,MAAMwW,EAAE4E,GAAGpb,CAAC,EAAE,MAAM,CAACA,EAAEyW,EAAEtb,IAAI,CAAC,GAAG,CAAC,OAAOqb,EAAExW,EAAEyW,EAAEtb,CAAC,CAAC,OAAO6E,EAAE,CAAC,GAAG6X,GAAE,cAAc7X,EAAE8X,GAAE,QAAQ,EAAE,OAAO,MAAM9X,CAAC,CAAC,CAAC,GAAE+c,EAAE,EAAEE,IAAG,SAASjd,EAAE,CAAC,MAAMwW,EAAE6E,GAAGrb,CAAC,EAAE,MAAM,CAACA,EAAEyW,EAAEtb,IAAI,CAAC,GAAG,CAAC,OAAOqb,EAAExW,EAAEyW,EAAEtb,CAAC,CAAC,OAAO6E,EAAE,CAAC,GAAG6X,GAAE,cAAc7X,EAAE8X,GAAE,QAAQ,EAAE,OAAO,MAAM9X,CAAC,CAAC,CAAC,GAAE+c,EAAE,EAAE,SAASG,GAAGld,EAAEwW,EAAEC,EAAE,EAAEW,EAAE,CAAC,GAAGiD,GAAG,GAAG7D,CAAC,GAAG,CAACA,EAAE,WAAU,EAAG,MAAM,CAAC,qBAAqB,GAAG,4BAA4B,EAAE,EAAE,MAAMnI,EAAE,IAAIiM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC7D,EAAE,cAAcpI,CAAC,GAAG,EAAE,KAAK,KAAK,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,KAAK,KAAK,mBAAmB,4BAA4B,EAAE,GAAE,SAASrO,EAAEwW,EAAEC,EAAEtb,EAAEic,EAAE,CAAC,IAAI/I,EAAE,GAAG,CAAC,CAACA,CAAC,EAAE0O,GAAG/c,EAAE7E,EAAE,CAACsb,CAAC,EAAED,EAAEY,CAAC,CAAC,OAAOpX,EAAE,CAAC,GAAGka,GAAGla,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,4BAA4B,EAAE,EAAE,MAAMA,CAAC,CAAC,OAAO,SAASA,EAAEwW,EAAE,CAAC,GAAG,MAAM,QAAQxW,EAAE,QAAQ,EAAEA,EAAE,SAAS,KAAKwW,CAAC,MAAM,CAAC,GAAYxW,EAAE,WAAX,OAAoB,CAAC,GAAG,CAACqa,GAAG,GAAGra,CAAC,EAAE,MAAM,IAAI6X,GAAEC,GAAE,SAAS,8GAA8G,EAAE,MAAM,CAAC,qBAAqB,GAAG,4BAA4B,EAAE,CAAC,CAAC9X,EAAE,SAASwW,CAAC,CAAC,MAAM,CAAC,qBAAqB,GAAG,4BAA4B,EAAE,CAAC,GAAEA,EAAEnI,CAAC,CAAC,GAAErO,EAAEwW,EAAEC,EAAE,EAAEW,CAAC,CAAC,CAAC,SAAS+F,GAAGnd,EAAEwW,EAAEC,EAAE,EAAE,CAAC,GAAG4D,GAAG,GAAGra,CAAC,GAAG,CAACA,EAAE,WAAU,EAAG,MAAM,CAAC,mBAAmB,OAAO,qBAAqB,EAAE,EAAE,MAAMoX,EAAE,IAAIkD,GAAG7D,EAAE,IAAI,EAAE,GAAG,CAACD,EAAE,cAAcY,CAAC,GAAGX,EAAE,KAAK,KAAK,mBAAmB,MAAM,CAAC,mBAAmB,OAAO,qBAAqB,CAACA,EAAE,KAAK,KAAK,kBAAkB,EAAE,IAAIpI,EAAE,GAAG,MAAM,QAAQrO,EAAE,QAAQ,EAAEA,EAAE,SAASA,EAAE,SAAS,OAAOA,GAAGA,EAAE,UAAUwW,IAAInI,EAAErO,EAAE,GAAG,UAAUA,EAAE,UAAU,UAAUwW,EAAE,GAAGnI,EAAErO,EAAE,SAAS,EAAEA,EAAE,SAAS,WAAW,CAAC,GAAG,CAACqa,GAAG,GAAGra,CAAC,EAAE,MAAM,IAAI6X,GAAEC,GAAE,SAAS,8GAA8G,EAAE9X,EAAE,WAAU,CAAE,CAAC,MAAM,CAAC,mBAAmBqO,EAAE,qBAAqB,EAAE,CAAC,CAAC,MAAM+O,EAAE,CAACC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,aAAa,CAAC,KAAKL,GAAG,IAAI,IAAI,KAAKC,GAAG,KAAKK,GAAE,EAAG,KAAKJ,GAAG,KAAKI,GAAE,EAAG,KAAKH,GAAG,KAAKG,GAAE,EAAG,KAAKF,GAAG,KAAKE,GAAE,EAAG,KAAKD,GAAG,IAAIjB,EAAE,CAAC,YAAY,CAAC,UAAU,KAAK,KAAKmB,GAAE,EAAG,EAAE,MAAK,EAAG,UAAU,KAAK,KAAKF,GAAG,EAAE,WAAU,CAAE,CAAC,IAAI,EAAE,CAAC,OAAgB,EAAE,OAAX,OAAyB,EAAE,MAAX,OAAe,KAAKG,GAAG,KAAKP,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAKO,GAAG,KAAKJ,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,KAAK,EAAW,EAAE,MAAX,OAAe,KAAKI,GAAG,KAAKN,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,IAAI,EAAE,KAAKM,GAAG,KAAKL,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,CAAC,KAAKM,GAAG,CAAC,EAAE,KAAKC,GAAG,CAAC,EAAE,KAAKC,GAAG,CAAC,EAAE,KAAKC,GAAG,CAAC,EAAE,KAAKC,GAAG,CAAC,EAAE,UAAU,KAAK,KAAKR,GAAG,EAAE,yBAAyB,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAU,EAAE,OAAX,OAAyB,EAAE,MAAX,OAAe,KAAKG,GAAG,KAAKP,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,KAAKa,GAAG,KAAKA,GAAG,KAAKN,GAAG,KAAKJ,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,EAAW,EAAE,MAAX,OAAe,KAAKU,GAAG,KAAKN,GAAG,KAAKN,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAKY,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKN,GAAG,KAAKL,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,IAAI/G,EAAE,KAAK4G,GAAG,IAAI,EAAE,iBAAiB,EAAW5G,IAAT,SAAaA,EAAE,IAAI,IAAI,KAAK4G,GAAG,IAAI,EAAE,kBAAkB5G,CAAC,GAAGA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAKiH,GAAG,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,CAACS,GAAG,EAAE,EAAE3H,EAAEtb,EAAE,CAAC,MAAMic,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI/I,EAAE,OAAG+I,EAAG/I,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,WAAW+I,EAAE,kBAAkB,EAAE,QAAQ,iBAAiB,EAAO/I,EAAE,CAAC,WAAW+I,EAAE,kBAAkB,EAAE,QAAQ,iBAAiB,EAAW,EAAE,IAAK/I,EAAE,WAAW,IAAaoI,IAAT,SAAapI,EAAE,KAAKoI,GAAYtb,IAAT,SAAakT,EAAE,IAAIlT,GAAG,CAAC,gBAAgB,OAAO,WAAW,EAAE,WAAW,gBAAgBkT,EAAE,eAAe,CAAA,CAAE,CAAC,CAAC8P,GAAG,EAAE,EAAE,CAAC,IAAI1H,EAAE,EAAE,IAAI,CAAC,EAAE,OAAgBA,IAAT,SAAaA,EAAE,IAAI,IAAI,EAAE,IAAI,EAAEA,CAAC,GAAGA,CAAC,CAACoH,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,KAAKQ,GAAG,CAAC,CAAC,CAAC,CAACT,IAAI,CAAC,MAAM,CAAC,KAAKP,GAAG,GAAG,KAAKC,GAAG,GAAG,KAAKC,GAAG,GAAG,KAAKC,GAAG,GAAG,KAAKC,EAAE,CAAC,CAACY,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAACN,GAAG,EAAE,CAAC,SAAS,CAAC,EAAEtH,CAAC,IAAI,KAAK8G,GAAG,QAAO,EAAG,CAAC,MAAMpiB,EAAEsb,EAAE,IAAI,EAAE,QAAQ,iBAAiB,EAAE,GAAYtb,IAAT,OAAW,SAAS,CAACsb,EAAEW,CAAC,IAAIjc,EAAE,QAAO,EAAG,KAAKmjB,GAAG,EAAElH,EAAE,EAAEX,EAAE,MAAM,CAAC,CAAC,CAACuH,GAAG,EAAE,CAAC,SAAS,CAAC,EAAEvH,CAAC,IAAI,KAAK+G,GAAG,QAAO,EAAG,CAAC,MAAMriB,EAAEsb,EAAE,IAAI,EAAE,QAAQ,iBAAiB,EAAE,GAAYtb,IAAT,OAAW,SAAS,CAACsb,EAAEW,CAAC,IAAIjc,EAAE,QAAO,EAAG,SAAS,CAACA,EAAEkT,CAAC,IAAI+I,EAAE,QAAO,EAAG,SAAS,CAACA,EAAE7F,CAAC,IAAIlD,EAAE,UAAU,KAAKiQ,GAAG,EAAE/M,EAAE,EAAEkF,EAAE,CAAC,IAAItb,EAAE,MAAMic,CAAC,CAAC,CAAC,CAAC,CAACmH,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAI,CAAE,KAAK3H,GAAE,mBAAmB,UAAU,KAAK,EAAE,aAAa,KAAK2H,GAAG,CAAC,EAAE,MAAM,KAAK3H,GAAE,SAAS,UAAU,KAAK,EAAE,kBAA2B,IAAT,QAAY,KAAK4H,GAAG,CAAC,EAAE,UAAU,KAAK,EAAE,eAAe,OAAM,EAAG,KAAKA,GAAG,CAAC,EAAE,MAAM,KAAK5H,GAAE,cAAc,UAAU,KAAK,EAAE,OAAO,KAAK4H,GAAG,CAAC,CAAC,CAAC,CAACA,GAAG,EAAE,CAAC,MAAM,EAAE,KAAKnB,GAAG,IAAI,EAAE,iBAAiB,EAAW,IAAT,QAAY,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAKoB,GAAG,CAAC,EAAE,CAACA,GAAG,EAAE,CAAC,IAAI,CAACpE,GAAG,GAAG,CAAC,GAAG,EAAE,WAAU,IAAc,EAAE,WAAX,OAAoB,GAAG,MAAM,QAAQ,EAAE,QAAQ,EAAE,UAAU,KAAK,EAAE,SAAS,KAAKkE,GAAG,CAAC,OAAO,KAAKA,GAAG,EAAE,QAAQ,CAAC,CAACL,GAAG,EAAE,CAAC,MAAM,EAAE,KAAKb,GAAG,IAAI,EAAE,QAAQ,iBAAiB,EAAE,GAAY,IAAT,OAAW,OAAO,EAAE,KAAI,CAAE,KAAKb,GAAG,aAAa,SAAS,CAAC/F,EAAEtb,CAAC,IAAI,EAAE,CAAC,MAAMqb,EAAE0G,GAAG,CAAC,gBAAgB,OAAO,WAAW,EAAE,WAAW,eAAe,CAAA,CAAE,EAAEzG,EAAE,EAAE,QAAQtb,EAAE,uBAAuBA,EAAE,eAAe,EAAEqb,EAAE,qBAAqBA,EAAE,6BAA6B6D,GAAG,GAAG5D,CAAC,IAAI,KAAKgI,GAAGhI,CAAC,EAAEA,EAAE,WAAU,GAAI,KAAK,WAAU,CAAE,CAAC,MAAM,KAAK+F,GAAG,eAAe,SAAS,CAAC/F,EAAEtb,CAAC,IAAI,EAAE,CAAC,MAAMqb,EAAE2G,GAAG1G,EAAE,EAAE,QAAQtb,EAAE,uBAAuBA,EAAE,gBAAgB,EAAEqb,EAAE,qBAA8BA,EAAE,qBAAX,QAA+B,KAAK+H,GAAG/H,EAAE,kBAAkB,EAAE,KAAK,WAAU,CAAE,CAAC,CAAC,CAACsH,GAAG,EAAE,CAAC,SAAS,CAAC,EAAErH,CAAC,IAAI,KAAK6G,GAAG,QAAO,EAAG,CAAC,MAAMniB,EAAEsb,EAAE,IAAI,EAAE,QAAQ,iBAAiB,EAAE,KAAK6H,GAAG,EAAEnjB,EAAE,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC8iB,GAAG,EAAE,CAAC,SAAS,CAAC,EAAExH,CAAC,IAAI,KAAKgH,GAAG,QAAO,EAAG,CAAC,MAAMtiB,EAAEsb,EAAE,IAAI,EAAE,QAAQ,iBAAiB,EAAE,GAAYtb,IAAT,OAAW,SAAS,CAACsb,EAAEW,CAAC,IAAIjc,EAAE,UAAU,SAAS,CAACA,EAAEkT,CAAC,IAAI+I,EAAE,UAAU,KAAKkH,GAAG,EAAEjQ,EAAE,EAAE,OAAO,CAAC,IAAIoI,EAAE,MAAMtb,CAAC,CAAC,CAAC,CAAC,CAACmjB,GAAG,EAAE,EAAE7H,EAAEtb,EAAEic,EAAE,CAAC,GAAY,IAAT,QAAYiD,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM1D,EAAE,KAAKyH,GAAG,EAAE3H,EAAEtb,EAAEic,CAAC,EAAE,OAAO,EAAE,KAAI,CAAE,KAAKoF,GAAG,aAAa,CAAC,MAAM/F,GAAGpI,EAAEsI,EAAEpF,EAAE,EAAE,KAAK,KAAKmD,EAAE,EAAE,QAAQ2F,GAAG,GAAG9I,CAAC,GAAG,CAACA,EAAE,WAAU,EAAG,CAAC,qBAAqB,GAAG,4BAA4B,EAAE,EAAE2L,GAAG7O,EAAEkD,EAAEmD,EAAEgG,GAAGrM,CAAC,EAAEA,EAAE,gBAAgB,YAAYA,EAAE,gBAAgB,OAAO,GAAGoI,EAAE,qBAAqBA,EAAE,8BAA8B,KAAKgI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,KAAK,cAAc,KAAK,WAAU,CAAE,CAAC,MAAM,KAAKjC,GAAG,eAAe,CAAC,MAAM/F,GAAE,SAASzW,EAAEwW,EAAEC,EAAE,CAAC,OAAO4D,GAAG,GAAG7D,CAAC,GAAG,CAACA,EAAE,aAAa,CAAC,mBAAmB,OAAO,qBAAqB,EAAE,EAAE2G,GAAG3G,EAAEC,EAAEiE,GAAG1a,CAAC,EAAEA,EAAE,gBAAgB,YAAY,EAAE,CAAC,GAAE2W,EAAE,EAAE,KAAK,KAAK,EAAE,OAAO,EAAEF,EAAE,qBAA8BA,EAAE,qBAAX,QAA+B,KAAK8H,GAAG9H,EAAE,kBAAkB,EAAE,KAAK,WAAU,CAAE,CAAC,CAAC,CAAC,IAAIpI,EAAEkD,EAAEmD,CAAC,CAAC,CAAC,SAASgK,GAAG1e,EAAEwW,EAAE,CAAC,GAAG0D,GAAG1D,CAAC,EAAE,CAAC,MAAMC,GAAE,SAASzW,EAAE,CAAC,MAAMwW,EAAE,CAAC,GAAGxW,CAAC,EAAE,OAAOwW,EAAE,SAAN,EAAmB,wBAA+BA,EAAE,IAAIY,EAAC,EAAE,KAAK,MAAM,CAAC,IAAE,SAASpX,EAAE,CAAC,MAAMwW,EAAExW,EAAE,WAAW,KAAK,KAAKyW,EAAE,CAAA,EAAG,SAAStb,EAAE6E,EAAE,CAAC,MAAMwW,EAAEC,EAAE,QAAQzW,CAAC,EAAE,GAAQwW,IAAL,GAAQ,MAAM,CAAC,GAAGC,EAAE,MAAMD,CAAC,EAAExW,CAAC,EAAE,IAAIA,GAAGA,EAAE,iBAAiB,EAAEyW,EAAE,KAAKzW,CAAC,EAAE,GAAG,CAAC,UAAUwW,KAAK,SAASxW,EAAE,CAAC,MAAMwW,EAAE,CAAA,EAAGC,EAAEzW,EAAE,SAAS,GAAYyW,IAAT,OAAW,OAAOD,EAAE,MAAMrb,EAAE6E,GAAG,CAAC,GAAG2a,GAAG3a,CAAC,EAAE,UAAUwW,KAAKxW,EAAE,aAAa7E,EAAEqb,CAAC,MAAO,QAAOxW,EAAE,QAAQ,MAAM,KAAK4W,GAAE,SAAS,CAAC,MAAMH,EAAEzW,EAAE,UAAUA,KAAKyW,EAAE,kBAA2BzW,IAAT,QAAYwW,EAAE,KAAKxW,CAAC,EAAE,UAAUA,KAAKyW,EAAE,eAAe,OAAM,EAAGD,EAAE,KAAKxW,CAAC,EAAE,KAAK,CAAC,KAAK4W,GAAE,cAAc,CAAC,MAAMH,EAAEzW,EAAE,UAAUA,KAAKyW,EAAE,OAAOD,EAAE,KAAKxW,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,QAAQyW,CAAC,EAAE,UAAUzW,KAAKyW,EAAEtb,EAAE6E,CAAC,OAAO7E,EAAEsb,CAAC,EAAE,OAAOD,CAAC,GAAExW,CAAC,EAAE,CAAC,MAAMA,EAAE7E,EAAEqb,CAAC,EAAE,GAAYxW,IAAT,OAAW,OAAOA,CAAC,CAAC,QAAC,CAAQyW,EAAE,IAAG,CAAE,CAAC,CAAC,OAAOtb,EAAEqb,CAAC,GAAG,CAAA,CAAE,GAAExW,CAAC,CAAC,EAAE,MAAM,IAAI6X,GAAEC,GAAE,SAAS,8BAA8BrB,CAAC,GAAG,CAAC,MAAMD,CAAC,CAAC,CAAC,CAAC,MAAMA,CAAC,CAAC,SAASmI,GAAG3e,EAAEwW,EAAE,CAAC,OAAOjF,GAAEiF,CAAC,GAAGxW,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAMwW,CAAC,EAAEA,EAAE,KAAK,GAAGoI,GAAG5e,EAAE,CAAC,CAAC,GAAG4e,GAAG5e,EAAEwW,CAAC,CAAC,CAAC,SAASoI,GAAG5e,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAMwW,CAAC,EAAEA,CAAC,CAAC,SAASqI,GAAG7e,EAAEwW,EAAEC,EAAE,CAAC,MAAM,EAAEzW,EAAE,eAAewW,CAAC,EAAE,OAAgB,IAAT,OAAWC,EAAElF,GAAEkF,CAAC,EAAEqI,GAAG9e,EAAEyW,EAAE,EAAE,OAAO,QAAQ,EAAC,CAAE,GAAE,SAASzW,EAAEwW,EAAEC,EAAE,CAAC,IAAItb,EAAEqb,EAAEY,EAAEX,EAAE,KAAI,EAAG,KAAUW,EAAE,OAAP,IAAa,CAAC,MAAMZ,EAAEY,EAAE,MAAMpX,EAAE,QAAQ7E,CAAC,EAAE,GAAGoW,GAAEiF,CAAC,EAAE,OAAOsI,GAAG9e,EAAEwW,EAAEC,CAAC,EAAEtb,EAAEqb,EAAEY,EAAEX,EAAE,KAAI,CAAE,CAAC,OAAOtb,CAAC,GAAE6E,EAAEyW,EAAE,EAAE,OAAO,QAAQ,EAAC,CAAE,CAAC,CAAC,eAAeqI,GAAG9e,EAAEwW,EAAEC,EAAE,CAAC,IAAI,EAAE,MAAMD,EAAEY,EAAEX,EAAE,KAAI,EAAG,KAAUW,EAAE,OAAP,IAAa,EAAE,MAAMA,EAAE,MAAMpX,EAAE,QAAQ,CAAC,EAAEoX,EAAEX,EAAE,KAAI,EAAG,OAAO,CAAC,CAAC,SAASsI,GAAG/e,EAAEwW,EAAEC,EAAE,CAAC,IAAI,EAAEA,EAAE,GAAYD,EAAE,eAAX,OAAwB,CAAC,MAAMC,EAAED,EAAE,aAAa,EAAEjF,GAAE,CAAC,EAAE,EAAE,KAAKiF,GAAGC,EAAEzW,EAAE,QAAQwW,CAAC,CAAC,EAAEC,EAAEzW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO6e,GAAG7e,EAAEwW,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAASwI,GAAGhf,EAAE,CAAC,MAAM,CAACwW,EAAEC,IAAQA,EAAE,MAAM,QAAeA,EAAE,MAAM,MAAakI,GAAGlI,EAAEsI,GAAGvI,EAAEC,EAAEzW,EAAEwW,EAAEC,CAAC,CAAC,CAAC,CAAE,CAAC,MAAMwI,GAAGD,GAAG,SAAShf,EAAEwW,EAAE,CAAC,OAAOA,EAAE,KAAK,CAAC,EAAE,SAAS0I,GAAGlf,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASmf,GAAGnf,EAAEwW,EAAE,CAAC,MAAM,CAACC,EAAE,IAAI,CAAC,MAAMW,EAAEpX,EAAE,CAAC,EAAE,OAAOoX,EAAE,OAAO,KAAKP,GAAE,UAAU,OAAGO,EAAE,MAAM,QAAeA,EAAE,MAAM,MAAauH,GAAGvH,EAAE2H,GAAGtI,EAAEW,EAAEZ,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAKI,GAAE,QAAQ,CAAC,GAAGJ,EAAE,kBAAkB,IAAIW,EAAE,EAAE,EAAE,OAAOX,EAAE,kBAAkB,IAAIW,EAAE,EAAE,EAAE,MAAMpX,EAAE+e,GAAGtI,EAAEW,EAAEZ,EAAEC,EAAE,CAAC,CAAC,EAAE,OAAOA,EAAE,kBAAkB,IAAIW,EAAE,GAAGpX,CAAC,EAAEA,CAAC,CAAC,KAAK6W,GAAE,UAAU,OAAOkI,GAAGtI,EAAEW,EAAEZ,EAAEC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM2I,IAAIpf,GAAGmf,GAAGD,GAAGlf,CAAC,GAAG,SAASA,EAAEwW,EAAE,CAAC,OAAOA,EAAE,MAAMxW,EAAE,OAAO,CAAC,CAAC,EAAQqf,GAAGL,GAAG,SAAShf,EAAEwW,EAAE,CAAC,OAAOA,EAAE,QAAQxW,EAAE,OAAO,CAAC,CAAC,EAAE,SAASsf,GAAGtf,EAAEwW,EAAEC,EAAE,CAAC,MAAM,GAAE,SAASzW,EAAEwW,EAAEC,EAAE,CAAC,GAAG,EAAEA,KAAKzW,GAAG,MAAM,IAAI6X,GAAEC,GAAE,WAAW,gBAAgBrB,EAAE,UAAU,8BAA8BD,EAAE,mBAAmB,IAAI,sDAAsD,EAAE,GAAe,OAAOxW,EAAEyW,CAAC,GAAtB,WAAwB,MAAM,IAAIoB,GAAEC,GAAE,WAAW,gBAAgBrB,EAAE,SAAQ,CAAE,4BAA4BD,EAAE,mBAAmB,IAAI,qFAAqF,EAAE,CAAC,IAAIrb,EAAE,GAAG,CAACA,EAAE6E,EAAEyW,CAAC,EAAC,CAAE,OAAOzW,EAAE,CAAC,MAAM,IAAI6X,GAAEC,GAAE,WAAW,wCAAwCrB,EAAE,SAAQ,CAAE,+CAA+CD,EAAE,mBAAmB,IAAI,IAAI,CAAC,MAAMxW,CAAC,CAAC,CAAC,CAAC,GAAGuR,GAAEpW,CAAC,EAAE,OAAO,eAAe6E,EAAEwW,EAAEC,EAAE,CAAC,GAAG,CAAC,MAAMA,CAAC,OAAOA,EAAE,CAAC,MAAM,IAAIoB,GAAEC,GAAE,WAAW,wCAAwCtB,EAAE,SAAQ,CAAE,+CAA+CxW,EAAE,mBAAmB,IAAI,IAAI,CAAC,MAAMyW,CAAC,CAAC,CAAC,CAAC,GAAED,EAAEC,EAAEtb,CAAC,CAAC,CAAC,GAAE6E,EAAEwW,EAAEC,CAAC,EAAE,OAAOlF,GAAE,CAAC,EAAE,EAAE,KAAK,IAAIvR,CAAC,EAAEA,CAAC,CAAC,SAASuf,GAAGvf,EAAEwW,EAAEC,EAAE,CAAC,GAAOA,EAAE,OAAN,EAAW,OAAOzW,EAAE,IAAI,EAAEA,EAAE,UAAUA,KAAKyW,EAAE,EAAElF,GAAE,CAAC,EAAE,EAAE,KAAKkF,GAAG6I,GAAG7I,EAAED,EAAExW,CAAC,CAAC,EAAEsf,GAAG,EAAE9I,EAAExW,CAAC,EAAE,OAAO,CAAC,CAAC,SAASwf,GAAGxf,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAE,IAAI,CAAC,MAAMW,EAAE,IAAI,EAAE,QAAQ,mBAAmB,GAAGZ,CAAC,EAAEnI,EAAErO,EAAEyW,EAAEW,EAAE,CAAC,EAAE,OAAO7F,GAAElD,CAAC,EAAEA,EAAE,KAAK,IAAIkR,GAAGnI,EAAE,EAAE,QAAQ,EAAE,cAAc,UAAU,wBAAwB,CAAC,EAAEmI,GAAGnI,EAAE,EAAE,QAAQ,EAAE,cAAc,UAAU,wBAAwB,CAAC,CAAC,CAAC,MAAMqI,GAAGT,GAAG,SAAShf,EAAEwW,EAAE,CAAC,OAAOA,EAAE,SAASxW,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS0f,GAAG1f,EAAE,CAAC,OAAOA,EAAE,OAAO,CAAC,SAAS2f,GAAG3f,EAAE,CAAC,OAAOA,EAAE,OAAO,CAAC,MAAM4f,IAAG,SAAS5f,EAAE,CAAC,MAAM,CAACwW,EAAEC,EAAE,IAAI,CAAC,MAAMW,EAAE,CAAA,EAAG,SAAS,CAAC/I,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,MAAMsI,EAAE,EAAE,cAAc,WAAW,IAAItI,CAAC,EAAE,GAAYsI,IAAT,OAAW,MAAM,IAAIkB,GAAEC,GAAE,WAAW,mCAAmCzJ,EAAE,SAAQ,CAAE,eAAe,EAAEsI,EAAE,OAAOsB,GAAE,WAAoB,EAAE,WAAX,SAAsBxB,EAAEpI,CAAC,EAAErO,EAAEwW,EAAE,CAAC,EAAEjF,GAAEkF,EAAEpI,CAAC,CAAC,GAAG+I,EAAE,MAAM,SAAS,CAACX,EAAEpI,CAAC,EAAE,MAAMoI,EAAEpI,CAAC,CAAC,GAAC,CAAG,EAAE,CAAC,GAAG+I,EAAE,OAAO,EAAE,OAAO,QAAQ,IAAIA,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAEyI,EAAE,EAAEC,IAAG,SAAS9f,EAAE,CAAC,OAAO,SAASwW,EAAEC,EAAE,EAAE,CAAC,MAAMW,EAAE,CAAA,EAAG,UAAU/I,KAAK,EAAE,aAAasM,GAAGtM,CAAC,EAAE+I,EAAE,KAAK,GAAGZ,EAAEC,EAAEpI,CAAC,CAAC,EAAE+I,EAAE,KAAKpX,EAAEyW,EAAEpI,CAAC,CAAC,EAAE,OAAO+I,CAAC,CAAC,GAAE2I,EAAE,EAAEC,IAAG,SAAShgB,EAAEwW,EAAEC,EAAE,CAAC,MAAM,CAAC,EAAEW,IAAI,CAAC,MAAM/I,EAAErO,EAAE,EAAEoX,CAAC,EAAE,OAAO7F,GAAElD,CAAC,EAAEmI,EAAEnI,EAAE,EAAE+I,CAAC,EAAEX,EAAEpI,EAAE,EAAE+I,CAAC,CAAC,CAAC,IAAE,SAASpX,EAAE,CAAC,MAAM,CAACwW,EAAEC,IAAI,CAAC,MAAM,EAAE,CAAA,EAAG,UAAUW,KAAKX,EAAE,kBAA2BW,IAAT,OAAW,EAAE,KAAK,MAAM,EAAE,EAAE,KAAKpX,EAAEwW,EAAEY,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK7F,EAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,GAAEsO,EAAE,GAAE,SAAS7f,EAAE,CAAC,MAAO,OAAMwW,EAAEC,EAAE,IAAI,CAAC,MAAMW,EAAE,MAAMZ,EAAE,OAAOxW,EAAEoX,EAAEX,EAAE,CAAC,CAAC,CAAC,GAAE+I,GAAGI,EAAE,CAAC,EAAEJ,GAAGI,EAAE,CAAC,EAAEK,IAAG,SAASjgB,EAAE,CAAC,MAAM,CAACwW,EAAEC,IAAI,CAAC,MAAM,EAAEzW,EAAEwW,EAAEC,CAAC,EAAE,OAAOlF,GAAE,CAAC,EAAE,EAAE,KAAKvR,GAAGyW,EAAE,QAAQ,QAAQ,GAAGzW,CAAC,CAAC,EAAEyW,EAAE,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAE,SAASzW,EAAE,CAAC,MAAM,CAACwW,EAAEC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAUW,KAAKX,EAAE,OAAO,EAAE,KAAKzW,EAAEwW,EAAEY,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK7F,EAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,GAAEsO,EAAE,CAAC,EAAEK,IAAIlgB,GAAGmf,GAAGO,GAAG1f,CAAC,GAAGggB,EAAE,EAAEG,IAAIngB,GAAGmf,GAAGQ,GAAG3f,CAAC,GAAGigB,EAAE,EAAE,SAASG,GAAGpgB,EAAE,CAAC,GAAG,CAAC,OAAO6f,GAAG7f,EAAEA,EAAE,WAAW,KAAK,IAAI,CAAC,OAAOwW,EAAE,CAACkI,GAAG1e,EAAEwW,CAAC,CAAC,CAAC,CAAC,SAASuJ,GAAG/f,EAAEwW,EAAE,CAAC,OAAOA,EAAE,QAAQ,KAAI,CAAE,KAAKI,GAAE,cAAc,OAAOqI,GAAGjf,EAAEwW,EAAE,OAAO,EAAE,KAAKI,GAAE,aAAa,OAAOwI,GAAGpf,EAAEwW,EAAE,OAAO,EAAE,KAAKI,GAAE,QAAQ,OAAOyI,GAAGrf,EAAEwW,EAAE,OAAO,EAAE,KAAKI,GAAE,SAAS,OAAOsJ,GAAGlgB,EAAEwW,CAAC,EAAE,KAAKI,GAAE,SAAS,OAAO6I,GAAGzf,EAAEwW,EAAE,OAAO,EAAE,KAAKI,GAAE,cAAc,OAAOuJ,GAAGngB,EAAEwW,CAAC,CAAC,CAAC,CAAC,SAASqJ,GAAG7f,EAAEwW,EAAE,CAAC,GAAYA,EAAE,WAAX,OAAoB,OAAO,MAAM,QAAQA,EAAE,QAAQ,GAAE,SAASxW,EAAEwW,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAG,UAAUtb,KAAKqb,EAAEmE,GAAGxf,CAAC,EAAEsb,EAAE,KAAK,GAAGqJ,GAAG9f,EAAE7E,CAAC,CAAC,EAAEsb,EAAE,KAAKsJ,GAAG/f,EAAE7E,CAAC,CAAC,EAAE,OAAGsb,EAAE,KAAKlF,EAAC,EAAS,QAAQ,IAAIkF,CAAC,EAASA,CAAC,GAAEzW,EAAEwW,EAAE,QAAQ,GAAE,SAASxW,EAAEwW,EAAE,CAAC,GAAGmE,GAAGnE,CAAC,EAAE,CAAC,MAAMC,EAAEqJ,GAAG9f,EAAEwW,CAAC,EAAE,GAAOC,EAAE,SAAN,EAAa,OAAOA,EAAE,CAAC,EAAE,MAAM,IAAIoB,GAAEC,GAAE,WAAW,yDAAyD,CAAC,CAAC,OAAOiI,GAAG/f,EAAEwW,CAAC,CAAC,GAAExW,EAAEwW,EAAE,QAAQ,CAAC,CAAC,SAAS6J,GAAGrgB,EAAE,CAAC,OAAgBA,EAAE,QAAX,MAAgB,CAAC,SAASsgB,GAAGtgB,EAAEwW,EAAE,CAAC,GAAe,OAAOxW,EAAEwW,CAAC,GAAtB,WAAyB,OAAOxW,EAAEwW,CAAC,EAAC,CAAG,CAAC,SAAS+J,GAAGvgB,EAAEwW,EAAE,CAAC,MAAMC,EAAEzW,EAAE,UAAU,sBAAsB,GAAOyW,EAAE,OAAN,EAAW,OAAO,IAAI,EAAE,UAAUzW,KAAKyW,EAAE,EAAW,IAAT,OAAW6J,GAAG9J,EAAExW,CAAC,EAAE,EAAE,KAAK,IAAIsgB,GAAG9J,EAAExW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,SAASwgB,GAAGxgB,EAAEwW,EAAEC,EAAE,CAAC,MAAM,EAAEzW,EAAE,iBAAiBwW,CAAC,EAAE,GAAY,IAAT,OAAW,OAAOjF,GAAEkF,CAAC,EAAEgK,GAAGhK,EAAE,EAAE,OAAO,QAAQ,EAAC,CAAE,GAAE,SAASzW,EAAEwW,EAAE,CAAC,IAAIC,EAAED,EAAE,KAAI,EAAG,KAAUC,EAAE,OAAP,IAAa,CAAC,MAAMtb,EAAEsb,EAAE,MAAMzW,CAAC,EAAE,GAAGuR,GAAEpW,CAAC,EAAE,OAAOslB,GAAGzgB,EAAEwW,CAAC,EAAEC,EAAED,EAAE,KAAI,CAAE,CAAC,GAAEC,EAAE,EAAE,OAAO,QAAQ,EAAC,CAAE,CAAC,CAAC,eAAegK,GAAGzgB,EAAEwW,EAAE,CAAC,MAAMC,EAAE,MAAMzW,EAAE,IAAI,EAAEwW,EAAE,KAAI,EAAG,KAAU,EAAE,OAAP,IAAa,MAAM,EAAE,MAAMC,CAAC,EAAE,EAAED,EAAE,KAAI,CAAE,CAAC,SAASkK,GAAG1gB,EAAEwW,EAAE,CAAC,MAAMC,GAAE,SAASzW,EAAEwW,EAAE,CAAC,GAAGA,EAAE,OAAOI,GAAE,SAAS,CAAC,MAAMH,EAAEzW,EAAE,iBAAiBwW,EAAE,kBAAkB,EAAErb,EAAEqb,EAAE,MAAM,MAAM,OAAOjF,GAAEpW,CAAC,EAAEA,EAAE,KAAK6E,GAAGugB,GAAG9J,EAAEzW,CAAC,CAAC,EAAEugB,GAAG9J,EAAEtb,CAAC,CAAC,CAAC,GAAE6E,EAAEwW,CAAC,EAAE,OAAgBC,IAAT,OAAWkK,GAAG3gB,EAAEwW,CAAC,EAAEC,EAAE,KAAK,IAAIkK,GAAG3gB,EAAEwW,CAAC,CAAC,CAAC,CAAC,SAASmK,GAAG3gB,EAAEwW,EAAE,CAAC,MAAMC,EAAED,EAAE,MAAM,OAAOjF,GAAEkF,EAAE,KAAK,EAAEA,EAAE,MAAM,KAAKA,GAAGmK,GAAG5gB,EAAEwW,EAAEC,CAAC,CAAC,EAAEmK,GAAG5gB,EAAEwW,EAAEC,EAAE,KAAK,CAAC,CAAC,SAASmK,GAAG5gB,EAAEwW,EAAEC,EAAE,CAAC,IAAI,EAAE,OAAYD,EAAE,iBAAX,SAA2B,KAAKA,EAAE,gBAAgBC,CAAC,GAAkB,IAAT,OAAW+J,GAAGxgB,EAAEwW,EAAE,kBAAkBC,CAAC,EAAE,EAAE,KAAK,IAAI+J,GAAGxgB,EAAEwW,EAAE,kBAAkBC,CAAC,CAAC,CAAC,CAAC,SAASoK,GAAG7gB,EAAEwW,EAAE,CAAC,GAAYA,IAAT,OAAW,OAAO,MAAMC,GAAE,SAASzW,EAAE,CAAC,MAAMwW,EAAE,CAAA,EAAG,UAAUC,KAAKzW,EAAEqgB,GAAG5J,CAAC,GAAGA,EAAE,QAAQI,GAAE,WAAWJ,EAAE,MAAM,SAASD,EAAE,KAAKC,CAAC,EAAE,OAAOD,CAAC,GAAEA,CAAC,EAAE,EAAE,GAAG,UAAUA,KAAKC,EAAE,CAAC,MAAMA,EAAEiK,GAAG1gB,EAAEwW,CAAC,EAAWC,IAAT,QAAY,EAAE,KAAKA,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,SAASqK,GAAG9gB,EAAEwW,EAAE,CAAC,MAAMC,EAAEzW,EAAE,sBAAsBwW,CAAC,EAAE,OAAOqK,GAAG7gB,EAAEyW,CAAC,CAAC,CAAC,SAASsK,GAAG/gB,EAAEwW,EAAE,CAAC,MAAMC,EAAEzW,EAAE,YAAYwW,CAAC,EAAE,OAAOqK,GAAG7gB,EAAEyW,CAAC,CAAC,CCAxlwC,MAAMD,GAAE,OAAO,IAAI,8BAA8B,ECA67B2B,GAAE,OAAO,IAAI,0CAA0C,EAAE,SAASL,GAAE9X,EAAE,CAAC,OAAgB,OAAOA,GAAjB,UAA2BA,IAAP,MAAeA,EAAEmY,EAAC,IAAR,EAAS,CAAC,MAAM3c,EAAC,CAAC,OAAO,OAAO,GAAG,EAAE,CAAC,MAAMwc,GAAE,OAAO,IAAI,gDAAgD,EAAE,MAAMgJ,WAAU,KAAK,CAAC,CAAChJ,EAAC,EAAE,KAAK,YAAY,EAAEvB,EAAE,EAAE,CAAC,MAAMA,EAAE,CAAC,EAAE,KAAKuB,EAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,OAAgB,OAAO,GAAjB,UAA2B,IAAP,MAAe,EAAEA,EAAC,IAAR,EAAS,CAAC,OAAO,cAAc,EAAEvB,EAAE,CAAC,OAAOuK,GAAE,GAAG,CAAC,GAAG,EAAE,OAAOvK,CAAC,CAAC,CAAC,IAAIlb,GAAE,SAASgB,GAAEyD,EAAE,CAAC,MAAM,CAAC,CAACmY,EAAC,EAAE,GAAG,GAAGnY,EAAE,EAAE,CAAC,CAAC,SAASF,GAAEE,EAAE,CAAC,OAAOyW,GAAG,CAAC,QAAQtb,EAAEsb,EAAE,YAAW,EAAYtb,IAAT,OAAWA,EAAEA,EAAE,YAAW,EAAG,GAAG6E,EAAE7E,CAAC,EAAE,SAAS,QAAQ,CAAC,CAAC,SAAS+c,GAAElY,EAAE,CAAC,OAAOyW,GAAGA,EAAE,OAAOzW,CAAC,CAAC,SAASkZ,GAAElZ,EAAE,CAAC,OAAOyW,GAAGA,EAAE,oBAAoBzW,CAAC,CAAC,SAAS4Y,GAAE5Y,EAAEyW,EAAE,CAAC,OAAOtb,GAAGA,EAAE,KAAK,IAAI6E,CAAC,GAAG7E,EAAE,KAAK,IAAI6E,CAAC,IAAIyW,CAAC,CAAC,SAASqC,GAAE9Y,EAAE,CAAC,OAAgBA,EAAE,OAAX,QAAqBA,EAAE,KAAK,OAAX,CAAe,CAAC,SAAS0Y,GAAE1Y,EAAE,CAAC,MAAMyW,EAAE3W,GAAEE,CAAC,EAAE,OAAOA,GAAG,CAACyW,EAAEzW,CAAC,CAAC,CAAC,SAASqY,GAAErY,EAAE,CAAC,OAAOyW,GAAG,CAAC,MAAMtb,EAAEsb,EAAE,YAAW,EAAG,OAAgBtb,IAAT,QAAY,CAAC6E,EAAE7E,CAAC,CAAC,CAAC,CAAC,SAASqC,GAAEwC,EAAE,CAAC,OAAOyW,GAAG,CAAC,MAAMtb,EAAEsb,EAAE,YAAW,EAAG,OAAgBtb,IAAT,QAAY6E,EAAE7E,CAAC,CAAC,CAAC,EAAE,SAAS6E,EAAE,CAACA,EAAEA,EAAE,iBAAiB,CAAC,EAAE,kBAAkB,GAAEzE,KAAIA,GAAE,GAAG,EAAE,MAAMwd,EAAC,CAAChC,GAAG,YAAY,EAAE,CAAC,KAAKA,GAAG,CAAC,CAAC,eAAe,CAAC,OAAOxa,GAAE,KAAKwa,EAAE,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAKA,GAAG,MAAMxF,GAAE,QAAQ,IAAI8H,GAAE,KAAKtC,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO,KAAKA,GAAG,MAAMxF,GAAE,UAAU,IAAI8H,GAAE,KAAKtC,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO,KAAKA,GAAG,MAAMxF,GAAE,UAAU,IAAI8H,GAAE,KAAKtC,EAAE,CAAC,CAAC,CAAC,MAAMkC,EAAC,CAACgI,GAAGjK,GAAGE,GAAGD,GAAG,YAAY,EAAER,EAAE,EAAED,EAAE,CAAC,KAAKyK,GAAG,EAAE,KAAKjK,GAAGP,EAAE,KAAKS,GAAG,EAAE,KAAKD,GAAGT,CAAC,CAAC,GAAG,EAAE,CAAC,MAAMC,EAAED,GAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,GAAG9B,GAAC,EAAG,mBAAmB,EAAE,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,aAAa,OAAO,eAAe,OAAO,MAAMP,EAAE,OAAO,KAAKS,GAAG,kBAAkB,KAAKD,GAAG,KAAK5I,GAAE,QAAQ,EAAE,OAAO,KAAK4S,GAAG,CAAC,EAAE,IAAIC,GAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAe,OAAO,KAAKjK,IAAxB,WAA2B,MAAM,IAAI,MAAM,6FAA6F,EAAE,OAAO,KAAK,GAAG,KAAKA,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,MAAMR,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,GAAG/B,GAAC,EAAG,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,aAAa,OAAO,eAAe,OAAO,MAAMzF,GAAE,UAAU,kBAAkB,KAAK0F,GAAG,KAAK5I,GAAE,cAAc,MAAM,CAAC,EAAE,OAAO,KAAK4S,GAAGxK,CAAC,EAAE,IAAI4C,GAAE5C,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,MAAMA,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,GAAG/B,KAAI,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,aAAa,OAAO,eAAe,OAAO,MAAM,KAAKE,GAAG,kBAAkB,KAAKD,GAAG,KAAK5I,GAAE,aAAa,MAAM,CAAC,EAAE,OAAO,KAAK4S,GAAGxK,CAAC,EAAE,IAAIyK,GAAEzK,CAAC,CAAC,CAAC,gBAAgB,EAAEA,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,QAAQ,EAAE,GAAG/B,KAAI,cAAclZ,GAAE,OAAO,SAAS,KAAK2lB,GAAG1K,CAAC,EAAE,SAAS,KAAKO,GAAG,aAAa,OAAO,eAAe,OAAO,MAAM,KAAKE,GAAG,kBAAkB,KAAKD,GAAG,KAAK5I,GAAE,aAAa,EAAE,OAAO,KAAK4S,GAAG,CAAC,EAAE,IAAIC,GAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAMzK,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,QAAQ,EAAE,GAAG/B,GAAC,EAAG,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,aAAa,OAAO,eAAe,OAAO,MAAMzF,GAAE,UAAU,kBAAkB,KAAK0F,GAAG,KAAK5I,GAAE,OAAO,EAAE,OAAO,KAAK4S,GAAGxK,CAAC,EAAE,IAAI4C,GAAE5C,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAMA,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,MAAM,EAAE,GAAG/B,GAAC,EAAG,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,aAAa,OAAO,eAAe,OAAO,SAAS,EAAE,MAAMzF,GAAE,UAAU,kBAAkB,KAAK0F,GAAG,KAAK5I,GAAE,QAAQ,EAAE,OAAO,KAAK4S,GAAGxK,CAAC,EAAE,IAAI4C,GAAE5C,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAMA,EAAE,CAAC,GAAG/B,GAAC,EAAG,cAAclZ,GAAE,OAAO,SAAS,KAAKwb,GAAG,kBAAkB,KAAKC,GAAG,wBAAwB,EAAE,KAAK5I,GAAE,kBAAkB,EAAE,KAAK4S,GAAGxK,CAAC,CAAC,CAAC0K,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,GAAG,CAAA,GAAI,IAAInhB,IAAG,SAASA,EAAE,CAAC,OAAgB,OAAOA,GAAjB,UAAoB,CAACiY,GAAE,GAAGjY,CAAC,CAAC,GAAEA,CAAC,GAAE,SAASA,EAAE,CAAC,OAAWA,EAAE,aAAP,EAAiB,GAAEA,CAAC,EAAE,CAAC,QAAQA,EAAE,SAAS,GAAG,KAAKoX,GAAE,kBAAkB,KAAKpX,EAAE,KAAK,SAASA,EAAE,UAAU,GAAG,KAAK,IAAI,KAAKA,EAAE,MAAM,CAAA,GAAI,IAAIA,GAAG,CAACA,EAAE,IAAIA,EAAE,KAAK,CAAC,CAAC,EAAE,MAAMA,EAAE,iBAAiB,EAAE,CAAC,KAAKoX,GAAE,gBAAgB,KAAKpX,EAAE,KAAK,SAASA,EAAE,UAAU,GAAG,KAAK,IAAI,KAAKA,EAAE,MAAM,CAAA,GAAI,IAAIA,GAAG,CAACA,EAAE,IAAIA,EAAE,KAAK,CAAC,CAAC,EAAE,MAAMA,EAAE,iBAAiB,EAAE,CAAC,KAAKoX,GAAE,gBAAgB,KAAK,OAAO,SAAS,GAAG,KAAK,IAAI,IAAI,MAAMpX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM6Y,EAAC,CAAC9B,GAAG,YAAY,EAAE,CAAC,KAAKA,GAAG,CAAC,CAAC,eAAe,CAAC,OAAOxa,GAAE,KAAKwa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,KAAKA,GAAG,aAAa,EAAE,IAAIqC,GAAE,KAAKrC,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,KAAKA,GAAG,eAAe,EAAE,KAAKA,GAAG,QAAQxF,GAAE,UAAU,MAAM,IAAIyP,GAAEzlB,GAAE,iBAAiB,wBAAwBsc,GAAE,KAAKd,GAAG,iBAAiB,CAAC,iIAAiI,EAAE,OAAO,IAAIqC,GAAE,KAAKrC,EAAE,CAAC,CAAC,CAAC,MAAMqC,EAAC,CAACrC,GAAG,YAAY,EAAE,CAAC,KAAKA,GAAG,CAAC,CAAC,eAAe,CAAC,OAAOxa,GAAE,KAAKwa,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,KAAKA,GAAG,cAAc,EAAE,IAAI8B,GAAE,KAAK9B,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAKjX,GAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,KAAK,KAAKA,GAAEoZ,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,OAAO,KAAK,MAAK,SAASlZ,EAAE,CAAC,OAAOF,GAAEoY,GAAElY,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAEyW,EAAE,CAAC,OAAO,KAAK,MAAK,SAASzW,EAAEyW,EAAE,CAAC,OAAO3W,GAAE8Y,GAAE5Y,EAAEyW,CAAC,CAAC,CAAC,GAAE,EAAEA,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,KAAKqC,EAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,KAAK,KAAKZ,GAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,KAAKG,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,KAAK,KAAKA,GAAEa,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,KAAK,MAAK,SAASlZ,EAAE,CAAC,OAAOqY,GAAEH,GAAElY,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAEyW,EAAE,CAAC,OAAO,KAAK,MAAK,SAASzW,EAAEyW,EAAE,CAAC,OAAO4B,GAAEO,GAAE5Y,EAAEyW,CAAC,CAAC,CAAC,GAAE,EAAEA,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,KAAK,KAAKjZ,GAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,KAAKA,GAAE0b,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,KAAK,MAAK,SAASlZ,EAAE,CAAC,OAAOxC,GAAE0a,GAAElY,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAEyW,EAAE,CAAC,OAAO,KAAK,MAAK,SAASzW,EAAEyW,EAAE,CAAC,OAAOjZ,GAAEob,GAAE5Y,EAAEyW,CAAC,CAAC,CAAC,GAAE,EAAEA,CAAC,CAAC,CAAC,CAAC,WAAW,EAAEA,EAAE,CAAC,OAAO,KAAK,KAAKmC,GAAE,EAAEnC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,KAAK,KAAKiC,GAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,KAAK,KAAKA,GAAEQ,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,OAAO,KAAK,MAAK,SAASlZ,EAAE,CAAC,OAAO0Y,GAAER,GAAElY,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAEyW,EAAE,CAAC,OAAO,KAAK,MAAK,SAASzW,EAAEyW,EAAE,CAAC,OAAOiC,GAAEE,GAAE5Y,EAAEyW,CAAC,CAAC,CAAC,GAAE,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM4C,WAAUD,EAAC,CAACjC,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,KAAKA,GAAG,IAAI0B,GAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK1B,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,KAAKA,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM+J,WAAU7H,EAAC,CAAChC,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,KAAKA,GAAG,IAAI0B,GAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAK1B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,KAAKA,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,KAAKA,GAAG,iBAAgB,CAAE,CAAC,CAAA,IAAA+J,GAAC,KAAO,CAAC7J,GAAGL,GAAGI,GAAGgB,GAAG,YAAY,EAAE7B,EAAE,EAAED,EAAE,CAAC,KAAKe,GAAG,EAAE,KAAKL,GAAGT,EAAE,KAAKa,GAAG,EAAE,KAAKgB,GAAG9B,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,IAAIyC,GAAEjZ,GAAG,CAAC,KAAK0X,GAAG1X,CAAC,CAAC,EAAE,OAAO,KAAKkX,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAET,EAAE,CAAC,MAAM,EAAE,KAAK6B,GAAG,eAAe,IAAI,CAAC,EAAE,OAAO,KAAKC,GAAG,EAAE,EAAE9B,CAAC,CAAC,CAAC,eAAe,EAAEA,EAAE,CAAC,MAAM,EAAE,KAAK6B,GAAG,eAAe,qBAAqB,CAAC,EAAE,OAAO,KAAKC,GAAG,EAAE,EAAE9B,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,OAAO,MAAM,KAAK,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,MAAM,KAAKiF,GAAG,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,KAAKjE,GAAE,CAAE,CAAC,eAAe,CAAC,GAAY,KAAKA,GAAE,IAAhB,OAAmB,MAAM,IAAIuJ,GAAEzlB,GAAE,iBAAiB,iHAAiH,CAAC,CAAC,WAAW,EAAE,CAAU,KAAKmgB,GAAG,CAAC,IAAlB,QAAqB,KAAKlE,GAAG,CAAC,CAAC,CAACE,GAAG,EAAE,CAAC,KAAKY,GAAG,eAAe,IAAI,CAAC,EAAE,KAAKhB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAKX,GAAE,YAAY,CAAC,CAAC,CAACa,GAAG,EAAE,CAAC,IAAIf,EAAE,GAAGqB,GAAE,CAAC,EAAE,CAAC,MAAMtB,EAAE,KAAK8B,GAAG,eAAe,QAAQ,EAAE,EAAE,EAAEjK,GAAG,EAAEmI,GAAE,SAASxW,EAAE,CAAC,GAAYA,IAAT,OAAW,OAAO,MAAMyW,EAAEzW,EAAE,OAAO,OAAWyW,EAAE,UAAKA,EAAE,MAAM,MAAM,GAAE,IAAI,OAAO,QAAQ,EAAC,CAAE,IAAI,kBAAkBA,EAAWpI,IAAT,OAAW,qHAAqH,wDAAwDwJ,GAAExJ,CAAC,CAAC,uDAAuD,MAAMoI,EAAE,wDAAwDoB,GAAE,CAAC,CAAC,wDAAwD,IAAI,EAAE,MAAM,IAAImJ,GAAEzlB,GAAE,iBAAiBkb,CAAC,CAAC,CAACiF,GAAG,EAAE,CAAC,OAAO5D,GAAE,CAAC,EAAE,KAAKgE,GAAG,CAAC,EAAE,KAAKvB,GAAG,CAAC,CAAC,CAACuB,GAAG,EAAE,CAAC,MAAMrF,EAAE,KAAK6B,GAAG,eAAe,QAAQ,EAAE,EAAE,EAAE,EAAW7B,IAAT,OAAW,OAAO,CAAC,GAAGA,CAAC,EAAED,EAAEK,GAAE,KAAKU,GAAGd,CAAC,EAAE,GAAYD,IAAT,OAAW,OAAOA,EAAE,KAAK,IAAI,CAAC,KAAKqG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAKA,GAAG,EAAE,CAAC,CAAC,CAACA,GAAG,EAAEpG,EAAE,CAAC,GAAG,KAAK6B,GAAG,eAAe,WAAW7B,EAAE,EAAE,EAAW,IAAT,OAAW,UAAUA,KAAK,EAAE,KAAKa,GAAG,kBAAkB,CAAC,QAAQb,EAAE,KAAKE,GAAE,cAAc,CAAC,CAAC,CAACc,IAAI,CAAC,MAAMzX,EAAE,CAAC,GAAG,KAAKsY,GAAG,eAAe,0BAAyB,CAAE,EAAE7B,EAAEzW,EAAE,IAAIA,GAAGmE,GAAE,KAAKoT,GAAGvX,CAAC,CAAC,EAAE,GAAGyW,EAAE,KAAKzW,GAAGoY,GAAEpY,CAAC,CAAC,EAAE,OAAO,QAAQ,IAAIyW,CAAC,EAAE,KAAK,IAAI,CAAC,KAAKkC,GAAG3Y,CAAC,CAAC,CAAC,EAAE,KAAK2Y,GAAG3Y,CAAC,CAAC,CAAC2Y,GAAG,EAAE,CAAC,UAAUlC,KAAK,EAAE,KAAK6B,GAAG,kBAAkB,qBAAqB7B,CAAC,EAAE,KAAK6B,GAAG,eAAe,qBAAqB7B,CAAC,EAAE,KAAK6B,GAAG,oBAAoB,qBAAqB7B,CAAC,EAAE,KAAK6B,GAAG,uBAAuB,WAAU,CAAE,CAACiC,GAAG,EAAE,CAAC,MAAM9D,EAAE,KAAK6B,GAAG,eAAe,IAAI,CAAC,EAAE,EAAW7B,IAAT,OAAW,OAAO,CAAC,GAAGA,CAAC,EAAED,EAAEK,GAAE,KAAKU,GAAGd,CAAC,EAAE,GAAYD,IAAT,OAAW,OAAOA,EAAE,KAAK,IAAI,CAAC,KAAKgC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAKA,GAAG,EAAE,CAAC,CAAC,CAACA,GAAG,EAAE/B,EAAE,CAAC,GAAG,KAAK6B,GAAG,kBAAkB,qBAAqB,CAAC,EAAE,KAAKA,GAAG,eAAe,qBAAqB,CAAC,EAAE,KAAKA,GAAG,oBAAoB,qBAAqB,CAAC,EAAW7B,IAAT,OAAW,UAAUzW,KAAKyW,EAAE,KAAKa,GAAG,kBAAkB,CAAC,QAAQtX,EAAE,KAAK2W,GAAE,cAAc,CAAC,CAAC,CAAC4B,GAAG,EAAE9B,EAAE,EAAE,CAAC,GAAYA,IAAT,OAAW,MAAM,GAAG,MAAMD,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,kBAAkB,EAAE,KAAK,IAAI,GAAG,EAAW,GAAG,MAAZ,QAAiBA,EAAE,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,EAAE,UAAUxW,KAAKyW,EAAE,GAAGzW,EAAE,cAAcwW,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAC,MAAMwC,EAAC,CAAC2C,GAAGpE,GAAGL,GAAGI,GAAGgB,GAAG,YAAY,EAAE7B,EAAE,EAAED,EAAEnI,EAAE,CAAC,KAAKsN,GAAG,EAAE,KAAKpE,GAAGd,EAAE,KAAKS,GAAG,EAAE,KAAKI,GAAGd,EAAE,KAAK8B,GAAGjK,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,MAAM,QAAQ,IAAI,KAAKyI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,MAAML,EAAE,KAAKK,GAAG,GAAG,CAAC,EAAE,UAAU9W,KAAKyW,EAAE,GAAYzW,IAAT,OAAW,MAAM,IAAIghB,GAAEzlB,GAAE,iBAAiB,+EAA+E,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,MAAM,QAAQ,IAAI,KAAKohB,GAAG,GAAG,CAAC,CAAC,EAAE,KAAKlB,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,MAAMhF,EAAE,KAAKkG,GAAG,GAAG,CAAC,EAAE,UAAU3c,KAAKyW,EAAE,GAAYzW,IAAT,OAAW,MAAM,IAAIghB,GAAEzlB,GAAE,iBAAiB,mFAAmF,EAAE,KAAKkgB,GAAG,CAAC,CAAC,CAACiB,GAAG,EAAE,CAAC,MAAM,CAAC,KAAKjG,GAAG,IAAIwC,GAAEjZ,GAAG,CAAC,KAAK0X,GAAG1X,CAAC,CAAC,EAAE,EAAE,KAAKkX,GAAGT,CAAC,EAAE,QAAQ,KAAKkF,GAAG,QAAQ,KAAK,KAAKA,EAAE,EAAE,aAAa,CAAClF,EAAE,IAAI,CAAC,KAAK6B,GAAG,kBAAkB,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU7B,CAAC,CAAC,CAAC,EAAE,eAAe,CAACA,EAAE,IAAI,CAAC,KAAK6B,GAAG,oBAAoB,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU7B,CAAC,CAAC,CAAC,EAAE,OAAO,KAAKkF,GAAG,OAAO,KAAK,KAAKA,EAAE,EAAE,WAAW,KAAKA,GAAG,WAAW,KAAK,KAAKA,EAAE,EAAE,OAAO,KAAKA,GAAG,OAAO,KAAK,KAAKA,EAAE,EAAE,WAAW,KAAKA,GAAG,WAAW,KAAK,KAAKA,EAAE,CAAC,CAAC,CAACF,GAAG,EAAE,CAAC,UAAUhF,KAAK,EAAE,KAAK6B,GAAG,kBAAkB,oBAAoB7B,EAAE,EAAE,EAAE,KAAK6B,GAAG,eAAe,oBAAoB7B,EAAE,EAAE,EAAE,KAAK6B,GAAG,oBAAoB,oBAAoB7B,EAAE,EAAE,EAAE,KAAK6B,GAAG,uBAAuB,WAAU,CAAE,CAACxB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI9W,GAAGA,EAAE,KAAK,KAAK0c,GAAG1c,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC0X,GAAG,EAAE,CAAC,KAAKY,GAAG,eAAe,IAAI,CAAC,EAAE,KAAKhB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAKX,GAAE,YAAY,CAAC,CAAC,CAACgG,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI3c,GAAG4W,GAAE,KAAKW,GAAGvX,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAMmZ,EAAC,CAAC,mBAAmB,YAAY,EAAE,CAAC,KAAK,oBAAmB,SAASnZ,EAAE,CAAC,MAAM,CAAC,YAAYA,EAAE,eAAe,IAAI,KAAKA,EAAE,cAAc,EAAE,sBAAsBA,EAAE,eAAe,cAAc,KAAKA,EAAE,cAAc,EAAE,iBAAiBwW,GAAE,iBAAiBxW,EAAE,oBAAoB,IAAI,KAAKA,EAAE,mBAAmB,CAAC,CAAC,GAAE,CAAC,EAAE,EAAE,QAAQ,IAAI,EAAE,SAASA,EAAEyW,EAAE,CAACA,EAAE,YAAYzW,EAAE,eAAe,IAAI,KAAKA,EAAE,cAAc,EAAEyW,EAAE,sBAAsBzW,EAAE,eAAe,cAAc,KAAKA,EAAE,cAAc,EAAEyW,EAAE,iBAAiBzW,EAAE,oBAAoB,IAAI,KAAKA,EAAE,mBAAmB,CAAC,GAAE,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAMqhB,EAAC,CAAC,qBAAqB/I,GAAG,YAAY,EAAE,CAAC,KAAKA,GAAG,EAAE,KAAK,qBAAqB,CAAC,YAAY,KAAKA,GAAG,eAAe,IAAI,KAAK,KAAKA,GAAG,cAAc,EAAE,mBAAmB,KAAKA,GAAG,eAAe,WAAW,KAAK,KAAKA,GAAG,cAAc,EAAE,iBAAiB9B,GAAE,QAAQ,KAAK8B,GAAG,uBAAuB,IAAI,KAAK,KAAKA,GAAG,sBAAsB,EAAE,WAAW,KAAKZ,GAAG,KAAK,IAAI,EAAE,wBAAwB,KAAKY,GAAG,uBAAuB,wBAAwB,KAAK,KAAKA,GAAG,sBAAsB,EAAE,QAAQ,KAAKA,GAAG,uBAAuB,IAAI,KAAK,KAAKA,GAAG,sBAAsB,CAAC,EAAE,KAAKA,GAAG,QAAQ,IAAI,CAAC,KAAKsD,IAAI,CAAC,CAAC,CAACA,IAAI,CAAC,KAAK,qBAAqB,YAAY,KAAKtD,GAAG,eAAe,IAAI,KAAK,KAAKA,GAAG,cAAc,EAAE,KAAK,qBAAqB,mBAAmB,KAAKA,GAAG,eAAe,WAAW,KAAK,KAAKA,GAAG,cAAc,EAAE,KAAK,qBAAqB,WAAW,KAAKZ,GAAG,KAAK,IAAI,CAAC,CAACA,GAAG,EAAE,CAAC,KAAKY,GAAG,eAAe,IAAI,CAAC,EAAE,KAAKA,GAAG,uBAAuB,yBAAyB,CAAC,QAAQ,EAAE,KAAK3B,GAAE,aAAa,WAAW,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM2K,EAAC,CAAChE,GAAGhF,GAAG,YAAY,EAAE7B,EAAE,CAAC,KAAK6G,GAAG,EAAE,KAAKhF,GAAG7B,CAAC,CAAC,kBAAkB,EAAE,CAAC,KAAK6B,GAAG,uBAAuB,yBAAyB,CAAC,GAAG,EAAE,WAAW,KAAKgF,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAMiE,EAAC,CAAC3D,GAAGhB,GAAGY,GAAGlF,GAAG,YAAY,EAAE7B,EAAE,EAAE,CAAC,KAAK6B,GAAG7B,EAAE,KAAK+G,GAAG,EAAE,KAAKI,GAAG,KAAK7B,GAAG,CAAC,EAAE,KAAKa,GAAG,KAAKqB,GAAE,CAAE,CAAC,SAAS,EAAExH,EAAE,CAAC,MAAM,EAAE,IAAIA,EAAE,EAAE,KAAKmG,EAAE,EAAE,GAAQ,EAAErf,EAAC,IAAR,GAAU,MAAM,IAAIyjB,GAAEzlB,GAAE,iBAAiB,yDAAyD,EAAE,EAAE,KAAK,KAAKqiB,EAAE,CAAC,CAAC7B,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAACtF,EAAE,IAAI,CAAC,GAAG,OAAO,UAAU,eAAe,KAAK,EAAEA,CAAC,EAAE,MAAM,IAAIuK,GAAEzlB,GAAE,iBAAiB,yCAAyC,OAAOkb,CAAC,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK+G,GAAG,OAAO,KAAK,KAAKA,EAAE,CAAC,CAAC,CAACS,IAAI,CAAC,MAAM,EAAE,KAAK3F,GAAG,MAAM,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,MAAMgB,EAAC,CAAC,kBAAkB,eAAe,oBAAoB,uBAAuBiE,GAAG,YAAY,EAAE9G,EAAE,EAAED,EAAE,CAAC,KAAK,kBAAkB,EAAE,KAAK,eAAeC,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuBD,EAAE,KAAK+G,GAAG,CAAA,CAAE,CAAC,MAAM,EAAE9G,EAAE,EAAE,CAAC,KAAK,kBAAkB,EAAE,KAAK,eAAeA,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,WAAU,EAAG,UAAUzW,KAAK,KAAKud,GAAGvd,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAKud,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAMiE,EAAC,CAAC9D,GAAGxG,GAAGmG,GAAGP,GAAGa,GAAGL,GAAGhF,GAAG,YAAY,EAAE7B,EAAE,EAAED,EAAE,CAAC,KAAK8G,GAAG,EAAE,KAAKhF,GAAG7B,EAAE,KAAKqG,GAAG,KAAKe,GAAE,EAAG,KAAKH,GAAG,EAAE,KAAKxG,GAAGV,EAAE,KAAK6G,GAAGrd,GAAG,KAAKsY,GAAG,kBAAkB,IAAItY,CAAC,EAAE,KAAK2d,GAAG,CAAA,EAAG,KAAKrF,GAAG,QAAQ,IAAI,CAAC,KAAKsD,IAAI,CAAC,CAAC,CAAC,IAAI5b,EAAEyW,EAAE,CAAC,MAAM,EAAE,KAAKuH,GAAG,GAAGhe,EAAEyW,CAAC,EAAED,EAAE,KAAKiH,GAAG,CAAC,EAAE,GAAGrF,GAAE5B,CAAC,EAAE,MAAM,IAAIwK,GAAEzlB,GAAE,iBAAiB,2DAA2Dsc,GAAE7X,CAAC,CAAC,GAAG,EAAE,OAAOwW,CAAC,CAAC,OAAOxW,EAAEyW,EAAE,CAAC,MAAM,EAAE,KAAKuH,GAAG,GAAGhe,EAAEyW,CAAC,EAAED,EAAE,KAAKiH,GAAG,CAAC,EAAE,GAAGrF,GAAE5B,CAAC,EAAE,MAAM,IAAIwK,GAAEzlB,GAAE,iBAAiB,2DAA2Dsc,GAAE7X,CAAC,CAAC,GAAG,EAAE,OAAOwW,CAAC,CAAC,MAAM,YAAY,EAAEC,EAAE,CAAC,MAAM,EAAE,KAAKuH,GAAG,GAAG,EAAEvH,CAAC,EAAE,OAAO,KAAKgH,GAAG,CAAC,CAAC,CAAC,MAAM,SAAS,EAAEhH,EAAE,CAAC,MAAM,EAAE,KAAKuH,GAAG,GAAG,EAAEvH,CAAC,EAAE,OAAO,KAAKgH,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAKE,GAAG,KAAK,CAAC,CAAC,CAAC/B,IAAI,CAAC,KAAKkB,GAAG,KAAKe,GAAE,CAAE,CAACM,GAAG,EAAE1H,EAAE,EAAE,CAAC,MAAMD,EAAE,GAAG,KAAKnI,EAAE,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG,WAAW,EAAE,KAAKmI,EAAE,SAASnI,EAAE,kBAAkBoI,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAKD,EAAE,SAASnI,EAAE,kBAAkBoI,EAAE,IAAI,CAAC,CAAC,CAAC2H,GAAG,EAAE3H,EAAE,EAAE,CAAC,MAAMD,EAAE,CAAC,gBAAgB,GAAG,UAAU,KAAKkH,GAAG,CAAC,MAAM,KAAKxG,EAAE,EAAE,OAAO,WAAW,KAAKoG,GAAG,qBAAqB,gBAAgB,KAAKiB,GAAG,EAAE9H,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,OAAO,KAAKqH,GAAGtH,EAAE,CAAC,EAAEA,CAAC,CAAC+H,GAAG,EAAE9H,EAAE,EAAE,CAAC,OAAOA,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG,WAAWA,EAAE,kBAAkB,CAAC,EAAE,CAAC,WAAWA,EAAE,kBAAkB,CAAC,CAAC,CAACuH,GAAG,EAAEvH,EAAE,EAAE,CAAC,MAAMD,EAAE,KAAK2H,GAAG,EAAE1H,EAAE,CAAC,EAAEpI,EAAE,KAAKiK,GAAG,uBAAuB,IAAI9B,CAAC,EAAE,GAAYnI,IAAT,OAAW,OAAOA,EAAE,MAAM,EAAEsJ,GAAE,KAAKyG,GAAG3H,EAAE,EAAE,CAAC,CAAC,EAAE,UAAUzW,KAAK,KAAK2d,GAAG3d,EAAEwW,EAAE,CAAC,EAAE,OAAO,CAAC,CAACqH,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,OAAO,KAAK,IAAI,EAAE,YAAY,KAAK,YAAY,KAAK,IAAI,EAAE,SAAS,KAAK,SAAS,KAAK,IAAI,CAAC,CAAC,CAACJ,GAAG,EAAE,CAAC,OAAOlU,GAAE,CAAC,QAAQ,KAAKuT,GAAG,eAAe,KAAKO,GAAG,WAAW,EAAE,kBAAkB,IAAI,GAAG,CAAC,CAAC,CAACS,GAAG,EAAErH,EAAE,CAAUA,aAAaA,EAAE,OAAX,SAAkB,EAAE,gBAAgB,KAAKA,EAAE,MAAWA,EAAE,WAAP,KAAkB,EAAE,gBAAgB,WAAW,IAAaA,EAAE,MAAX,SAAiB,EAAE,gBAAgB,IAAI,CAAC,IAAIA,EAAE,IAAI,IAAI,MAAMA,EAAE,IAAI,KAAK,GAAG,EAAE,gBAAgB,aAAa,EAAE,gBAAgB,QAAQA,GAAG,SAAS,IAAI,CAAC,CAAC,MAAMgL,EAAC,CAACnJ,GAAGyF,GAAG,YAAY,EAAE,CAAC,KAAKzF,GAAG,EAAE,KAAKyF,GAAG,CAAA,CAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAKA,GAAG,IAAG,EAAG,GAAY,IAAT,OAAW,MAAM,IAAIiD,GAAEzlB,GAAE,iBAAiB,kCAAkC,EAAE,KAAK+c,GAAG,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC,UAAU,CAAC,KAAKyF,GAAG,KAAK,CAAC,kBAAkB,KAAKzF,GAAG,kBAAkB,MAAK,EAAG,eAAe,KAAKA,GAAG,eAAe,MAAK,EAAG,oBAAoB,KAAKA,GAAG,oBAAoB,MAAK,CAAE,CAAC,CAAC,CAAC,CAAC,MAAMoJ,GAAGnQ,GAAE,UAAU,MAAMgI,EAAE,CAACoC,GAAGuC,GAAGI,GAAGhG,GAAGkF,GAAGgB,GAAG,YAAY,EAAE,CAAC,MAAM/H,EAAE,GAAG,UAAU,GAAG,EAAE,GAAG,cAAciL,GAAG,KAAKpJ,GAAG,KAAKmG,GAAG,EAAEhI,EAAE,CAAC,EAAE,MAAMD,EAAE,IAAI6K,GAAE,KAAK/I,EAAE,EAAEjK,EAAE,IAAIiT,GAAE9K,EAAE,KAAK8B,EAAE,EAAE,EAAE,IAAIa,GAAE,KAAKb,EAAE,EAAE,KAAKqD,GAAG,IAAIza,GAAE,EAAE,mBAAmB,EAAEmN,EAAE,KAAKiK,EAAE,EAAE,KAAK4F,GAAG,IAAIlF,GAAE,KAAK2C,GAAG,EAAE,mBAAmB,EAAEtN,EAAE,KAAKiK,EAAE,EAAE,KAAKkF,GAAG,IAAIgE,GAAEhL,EAAE,KAAK8B,GAAG7B,EAAE,CAAC,EAAE,KAAK6H,GAAG,IAAIiD,GAAE,KAAK,KAAKjJ,GAAG,KAAKkF,EAAE,EAAE,KAAKgB,GAAG,IAAIiD,GAAE,KAAKnJ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,KAAKqD,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAElF,EAAE,CAAC,OAAO,KAAK+G,GAAG,IAAI,EAAE/G,CAAC,CAAC,CAAC,OAAO,EAAEA,EAAE,CAAC,OAAO,KAAK+G,GAAG,OAAO,EAAE/G,CAAC,CAAC,CAAC,MAAM,YAAY,EAAEA,EAAE,CAAC,OAAO,KAAK+G,GAAG,YAAY,EAAE/G,CAAC,CAAC,CAAC,MAAM,SAAS,EAAEA,EAAE,CAAC,OAAO,KAAK+G,GAAG,SAAS,EAAE/G,CAAC,CAAC,CAAC,QAAQ,EAAEA,EAAE,CAAC,OAAO,KAAKkF,GAAG,QAAQ,EAAElF,CAAC,CAAC,CAAC,eAAe,EAAEA,EAAE,CAAC,OAAO,KAAKkF,GAAG,eAAe,EAAElF,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAKyH,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,KAAKA,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,aAAa,EAAEzH,EAAE,CAAC,KAAK6B,GAAG,kBAAkB,IAAI7B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,EAAEA,EAAE,CAAC,KAAK6B,GAAG,oBAAoB,IAAI7B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK6H,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAKE,GAAG,QAAO,CAAE,CAAC,MAAM,OAAO,EAAE,CAAC,OAAO,KAAK7C,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,KAAKA,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK6C,GAAG,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,MAAM,KAAK7C,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,KAAKA,GAAG,UAAS,CAAE,CAAC,eAAe,CAAC,KAAKA,GAAG,cAAa,CAAE,CAAC,WAAW,EAAE,CAAC,KAAKA,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,OAAO,KAAKuC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,KAAKA,GAAG,WAAW,GAAG,CAAC,CAAC,CAACG,GAAG,EAAE5H,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAMA,CAAC,CAAC,CAACgI,GAAG,EAAEhI,EAAE,EAAE,CAAC,MAAMD,EAAE,KAAK6H,GAAG5H,EAAE,CAAC,EAAE,GAAY,GAAG,SAAZ,OAAmB,OAAO,IAAI6C,GAAElD,GAAE,MAAM,IAAI,CAAC,CAAC,EAAEzB,GAAE,MAAM,IAAI,CAAC,EAAE6B,CAAC,EAAEtY,GAAE,MAAM,IAAI,CAAC,CAAC,EAAE,IAAIuV,EAAC,EAAE,MAAMpF,EAAE,IAAIoF,GAAE,EAAE,EAAE,OAAO,OAAO,EAAE6E,GAAG,uBAAuB,UAAUjK,CAAC,EAAE,IAAIiL,GAAElD,GAAE,MAAM,IAAI,EAAEkC,GAAG,iBAAiB,EAAE3D,GAAE,MAAM,IAAI,EAAE2D,GAAG,eAAe9B,CAAC,EAAEtY,GAAE,MAAM,IAAI,EAAEoa,GAAG,mBAAmB,EAAEjK,CAAC,CAAC,CAAC,CCK3ziB,MAAMqG,EAAE,CAGN,OAGA,YAAY8B,EAAG,CACb,KAAK,OAASA,CAChB,CACA,eAAgB,CACd,OAAO,KAAK,OAAO,UACrB,CACA,cAAcA,EAAG,CACf,KAAK,OAAO,WAAaA,CAC3B,CACA,SAAU,CACR,OAAO,KAAK,OAAO,IACrB,CACA,QAAQA,EAAG,CACT,KAAK,OAAO,KAAOA,CACrB,CACA,SAAU,CACR,OAAO,KAAK,OAAO,IACrB,CACA,QAAQA,EAAG,CACT,KAAK,OAAO,KAAOA,CACrB,CAGA,IAAIA,EAAG,CACL,OAAO,KAAK,OAAOA,CAAC,CACtB,CAGA,IAAIA,EAAGjF,EAAG,CACR,KAAK,OAAOiF,CAAC,EAAIjF,CACnB,CAGA,WAAY,CACV,OAAO,KAAK,MACd,CACF,CACA,MAAMrQ,EAAE,CACN,GACA,KACA,KAAO,GACP,OACA,OACA,KACA,SACA,IACA,GACA,QACA,SAAW,GACX,YAAc,GACd,qBACA,WACA,QAAU,GACV,YAAYsV,EAAI,GAAIjF,EAAI,GAAI,EAAI,GAAIkF,EAAI,GAAI,CAC1C,KAAK,SAAW,IAAI/B,GAAE,CAAA,CAAE,EAAG,KAAK,OAAS,EAAG,KAAK,OAAS+B,EAAG,KAAK,KAAO,GAAI,KAAK,KAAOlF,EAAG,KAAK,GAAKiF,EAAG,KAAK,IAAM,CAAA,EAAI,KAAK,GAAK,CAAA,EAAI,KAAK,QAAU,EACvJ,CAGA,UAAW,CACT,MAAO,CACL,GAAI,KAAK,GACT,KAAM,KAAK,KACX,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,SAAU,KAAK,SAAS,UAAS,EACjC,IAAK,KAAK,IACV,GAAI,KAAK,GACT,QAAS,KAAK,OACpB,CACE,CAGA,WAAWA,EAAG,CACZ,KAAK,GAAKA,EAAE,GAAI,KAAK,KAAOA,EAAE,KAAM,KAAK,OAASA,EAAE,OAAQ,KAAK,OAASA,EAAE,OAAQ,KAAK,KAAOA,EAAE,KAAM,KAAK,SAAW,IAAI9B,GAAE8B,EAAE,QAAQ,EAAG,KAAK,IAAMA,EAAE,IAAK,KAAK,GAAKA,EAAE,GAAI,KAAK,QAAUA,EAAE,OAChM,CACF,CAKG,IAAsCwB,GAAI,CAAChY,EAAGwW,EAAGjF,EAAG,IAAM,CAC3D,QAASkF,EAAmCD,EAAGrS,EAAInE,EAAE,OAAS,EAAGqO,EAAGlK,GAAK,EAAGA,KACzEkK,EAAIrO,EAAEmE,CAAC,KAAOsS,EAAIpI,EAAEoI,CAAC,GAAKA,GAC7B,OAAOA,CACT,EAAGL,GAAI,CAACpW,EAAGwW,IAAM,CAACjF,EAAG,IAAMiF,EAAEjF,EAAG,EAAGvR,CAAC,EACpC,IAAI9B,GAAI,KAAM,CACZ,YAAY,EAAG,CACb,KAAK,aAAe,CACtB,CAGA,OACA,UAAU,EAAG,CACX,KAAK,OAAS,CAChB,CAGA,SAAS,EAAG,EACT,CAAC,KAAK,cAAgB,KAAK,aAAa,WAAW,KAAK,OAAQ,CAAC,IAAM,EAAE,QAAQ,KAAK,OAAS,GAAG,EAAG,QAAQ,MAAM,MAAM,KAAM,CAAC,CACnI,CAGA,QAAQ,EAAG,CACT,EAAE,QAAQ,KAAK,OAAS,GAAG,EAAG,QAAQ,KAAK,MAAM,KAAM,CAAC,CAC1D,CAGA,QAAQ,EAAG,CACT,EAAE,QAAQ,KAAK,OAAS,GAAG,EAAG,QAAQ,KAAK,MAAM,KAAM,CAAC,CAC1D,CAGA,SAAS,EAAG,CACV,EAAE,QAAQ,KAAK,OAAS,GAAG,EAAG,QAAQ,MAAM,MAAM,KAAM,CAAC,CAC3D,CACF,EACAA,GAAI8Z,GAAE,CACJZ,GAAC,EACDhB,GAAE,EAAGS,GAAE,cAAc,CAAC,EACtBT,GAAE,EAAG3C,GAAC,CAAE,CACV,EAAGvV,EAAC,EACD,IAAsC6Z,GAAI,CAAC/X,EAAGwW,EAAGjF,EAAG,IAAM,CAC3D,QAASkF,EAAmCD,EAAGrS,EAAInE,EAAE,OAAS,EAAGqO,EAAGlK,GAAK,EAAGA,KACzEkK,EAAIrO,EAAEmE,CAAC,KAAOsS,EAAIpI,EAAEoI,CAAC,GAAKA,GAC7B,OAAOA,CACT,EACA,IAAIkB,GAAI,KAAM,CACZ,OACA,eACA,aAGA,eACA,OAAyB,IAAI,IAC7B,YAAY,EAAI,QAAS,CACvB,KAAK,OAAyB,IAAI,IAAO,KAAK,aAAe,EAAG,KAAK,eAAiC,IAAI,IAAO,KAAK,OAAO,IAAI,QAAS,CAAC,EAAG,KAAK,OAAO,IAAI,OAAQ,CAAC,EAAG,KAAK,OAAO,IAAI,OAAQ,CAAC,EAAG,KAAK,OAAO,IAAI,QAAS,CAAC,CAClO,CACA,SAAS,EAAG,EAAG,CACb,MAAMpG,EAAI,KAAK,OAAO,IAAI,CAAC,EAC3BA,GAAK,MAAQ,KAAK,OAAO,QAASpW,GAAM,CACtC,GAAIA,EAAE,WAAW,CAAC,EAAG,CACnB,MAAMsb,EAAI,KAAK,eAAe,IAAItb,CAAC,GAClCsb,GAAK,MAAQlF,GAAKA,EAAIkF,IAAMlF,GAAK,KAAK,eAAe,IAAIpW,EAAGoW,CAAC,CAChE,CACF,CAAC,CACH,CACA,WAAY,CACV,OAAO,KAAK,MACd,CACA,SAAS,EAAG,CACV,IAAI,EAAI,KAAK,OAAO,IAAI,CAAC,EACzB,OAAO,IAAM,EAAI,KAAK,cAAe,CACvC,CACA,WAAW,EAAG,CAEZ,OADU,KAAK,OAAO,IAAI,CAAC,GACf,EACd,CACA,gBAAgB,EAAG,CACjB,KAAK,aAAe,EAAG,KAAK,eAAiB,KAAK,WAAW,KAAK,YAAY,CAChF,CACA,iBAAkB,CAChB,OAAO,KAAK,YACd,CACA,mBAAoB,CAClB,OAAO,KAAK,eAAiB,KAAK,gBAAkB,KAAK,eAAiB,KAAK,WAAW,KAAK,YAAY,EAAG,KAAK,eACrH,CACA,SAAS,EAAG,EAAG,CACb,IAAIA,EAAI,KAAK,eAAe,IAAI,CAAC,EACjCA,IAAMA,EAAI,KAAK,qBACf,MAAMpW,EAAI,KAAK,WAAW,CAAC,EAC3B,MAAO,CAAC,EAAEA,GAAKoW,GAAKpW,EACtB,CACA,WAAW,EAAG,EAAG,CACf,IAAIoW,EAAI,KAAK,eAAe,IAAI,CAAC,EACjCA,IAAMA,EAAI,KAAK,qBACf,MAAMpW,EAAI,EACV,MAAO,CAAC,EAAEA,GAAKoW,GAAKpW,EACtB,CACF,EACAwc,GAAII,GAAE,CACJX,GAAC,CACH,EAAGO,EAAC,EACD,IAAsCe,GAAI,CAAC1Y,EAAGwW,EAAGjF,EAAG,IAAM,CAC3D,QAASkF,EAAmCD,EAAGrS,EAAInE,EAAE,OAAS,EAAGqO,EAAGlK,GAAK,EAAGA,KACzEkK,EAAIrO,EAAEmE,CAAC,KAAOsS,EAAIpI,EAAEoI,CAAC,GAAKA,GAC7B,OAAOA,CACT,EAAGqB,GAAI,CAAC9X,EAAGwW,IAAM,CAACjF,EAAG,IAAMiF,EAAEjF,EAAG,EAAGvR,CAAC,EACpC,IAAI4W,GAAI,KAAM,CAGZ,KAGA,QAGA,YAMA,YAMA,sBAOA,sBAGA,SAGA,QAGA,gBAGA,aAGA,OAGA,QACA,aAMA,YAGA,QACA,OACA,YAAY,EAAG,CACb,KAAK,OAAS,EAAG,KAAK,OAAO,UAAU,uCAAuC,EAAG,KAAK,aAAe,EACvG,CACA,UAAU,EAAG,EAAGrF,EAAGpW,EAAGsb,EAAGtS,EAAGkK,EAAGsI,EAAGpN,EAAG,CACnC,OAAO,OAAO,KAAM,CAClB,KAAM,EACN,QAAS,EACT,YAAagI,EACb,SAAUpW,EACV,gBAAiBsb,EACjB,aAActS,EACd,QAASkK,EACT,OAAQsI,EACR,GAAGpN,CACT,CAAK,CACH,CACA,oBAAoB,EAAG,CACrB,OAAO,OAAO,KAAM,CAAC,CACvB,CAGA,qBAAsB,CACpB,GAAI,KAAK,OAAO,MAAM,0BAA0B,EAAG,KAAK,SAAW,KAAK,QAAS,CAC/E,KAAK,OAAO,MAAM,sCAAsC,EACxD,MAAM,EAAI,KAAK,QAAQ,aAAY,EAAG,IAAI,iBAAiB,EAC3D,GAAK,KAAK,OAAO,MAAM,gCAAgC,EAAG,EAAE,WAAW,KAAK,OAAO,EAAG,EAAE,cAAc,KAAK,QAAQ,cAAa,CAAE,EAAG,KAAK,QAAU,GAAK,KAAK,OAAO,MAAM,6CAA6C,CAC1N,MACE,KAAK,SAAW,KAAK,OAAO,MAAM,yBAAyB,EAAG,KAAK,SAAW,KAAK,OAAO,MAAM,4BAA4B,CAChI,CACA,YAAY,EAAG,CACb,OAAO,GAAK,MACd,CACA,YAAa,CACX,KAAK,SAAW,CAAC,KAAK,eAAiB,KAAK,oBAAmB,EAAI,KAAK,aAAe,GAAI,KAAK,QAAQ,eAAc,EACxH,CACA,iBAAkB,CAChB,MAAO,OACT,CACA,SAAU,CACR,MAAO,SACT,CACA,uBAAwB,CACtB,MAAO,SACT,CACF,EACAqN,GAAI8B,GAAE,CACJtB,GAAC,EACDU,GAAE,EAAGjB,GAAE,QAAQ,CAAC,CAClB,EAAGD,EAAC,iJC7QG,IAAM+K,GAAN,KAA6C,CAG1C,WAGA,UACA,wBAED,aAAc,CACnB,KAAK,4BAA8B,GACrC,CAEA,QAAc,CACZ,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,WAAoB,CAClB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,cAA0B,CACxB,OAAO,KAAK,SACd,CAEA,aAAaC,EAA4B,CACvC,KAAK,UAAYA,CACnB,CAEA,eAA4B,CAC1B,OAAO,KAAK,UACd,CAEA,cAAcC,EAA8B,CAC1C,KAAK,WAAaA,CACpB,CAEA,gBAA8B,CAC5B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,cAAqB,CAAC,CAEtB,2BAA2BC,EAA+B,CACxD,UAAWC,KAAaD,EAAS,CAC/B,MAAME,EAAmBF,EAAQC,CAAS,EACpCE,EAAaD,GAAkB,WACrC,GAAIA,EAAkB,CACpB,MAAMH,EAAa,KAAK,UAAU,IAAgB,aAAc,CAC9D,KAAMI,CAAA,CACP,EACDJ,EAAW,oBAAoBG,CAAgB,EAC/C,KAAK,wBAAwB,IAAID,EAAWF,CAAU,CACxD,CACF,CACF,CAEA,4BAAsD,CACpD,OAAO,KAAK,uBACd,CAEA,6BAA6BK,EAA0B,CACrD,KAAK,wBAAwB,OAAOA,CAAU,CAChD,CAEA,KAAqB,CACnB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,iBAAwC,CACtC,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,gBAA2B,CACzB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,gBAAyB,CACvB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,mBAA4B,CAC1B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,kBAA2B,CACzB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,kBAA2B,CACzB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,gBAAgC,CAC9B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,eAAsB,CACpB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,iBAAiC,CAC/B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,UAA0B,CACxB,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,SAA6B,CAC3B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CAEA,WAAoB,CAClB,OAAO,IAAIC,EACb,CAEA,iBAAgC,CAC9B,MAAM,IAAI,MAAM,yBAAyB,CAC3C,CACF,EAxHaR,GAANS,GAAA,CADNC,GAAA,CAAW,EACCV,EAAA,iJCZb,IAAqBW,GAArB,KAA8D,CACrD,aAAc,CACnB,KAAK,WAAA,CACP,CAEO,YAAmB,CAAC,CAEpB,WAAqB,CAC1B,MAAO,EACT,CAEA,MAAa,WAA6B,CACxC,MAAO,EACT,CAEA,MAAa,YAA4B,CAAC,CAE1C,MAAa,cAAgC,CAC3C,MAAO,EACT,CACF,EApBqBA,GAArBF,GAAA,CADCC,GAAA,CAAW,EACSC,EAAA,ECVrB,IAAIC,GAQJ,MAAMC,GAAkBC,GAAWF,GAAcE,EAc3CC,GAAsG,OAAA,EAE5G,SAASlf,GAET4T,EAAG,CACC,OAAQA,GACJ,OAAOA,GAAM,UACb,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,mBACtC,OAAOA,EAAE,QAAW,UAC5B,CAMA,IAAIuL,IACH,SAAUA,EAAc,CAQrBA,EAAa,OAAY,SAMzBA,EAAa,YAAiB,eAM9BA,EAAa,cAAmB,gBAEpC,GAAGA,KAAiBA,GAAe,CAAA,EAAG,EA6iCtC,MAAMC,GAAO,IAAM,CAAE,EACrB,SAASC,GAAgBC,EAAe/V,EAAU7I,EAAU6e,EAAYH,GAAM,CAC1EE,EAAc,IAAI/V,CAAQ,EAC1B,MAAMiW,EAAqB,IAAM,CACfF,EAAc,OAAO/V,CAAQ,GAClCgW,EAAA,CACb,EACA,MAAI,CAAC7e,GAAYO,MACbC,GAAese,CAAkB,EAE9BA,CACX,CACA,SAASC,GAAqBH,KAAkB1Z,EAAM,CAClD0Z,EAAc,QAAS/V,GAAa,CAChCA,EAAS,GAAG3D,CAAI,CACpB,CAAC,CACL,CAEA,MAAM8Z,GAA0B9e,GAAOA,EAAA,EAKjC+e,GAAgB,OAAA,EAKhBC,GAAc,OAAA,EACpB,SAASC,GAAqBhsB,EAAQisB,EAAc,CAE5CjsB,aAAkB,KAAOisB,aAAwB,IACjDA,EAAa,QAAQ,CAAC9rB,EAAOD,IAAQF,EAAO,IAAIE,EAAKC,CAAK,CAAC,EAEtDH,aAAkB,KAAOisB,aAAwB,KAEtDA,EAAa,QAAQjsB,EAAO,IAAKA,CAAM,EAG3C,UAAWE,KAAO+rB,EAAc,CAC5B,GAAI,CAACA,EAAa,eAAe/rB,CAAG,EAChC,SACJ,MAAMgsB,EAAWD,EAAa/rB,CAAG,EAC3BisB,EAAcnsB,EAAOE,CAAG,EAC1BiM,GAAcggB,CAAW,GACzBhgB,GAAc+f,CAAQ,GACtBlsB,EAAO,eAAeE,CAAG,GACzB,CAAC+T,GAAMiY,CAAQ,GACf,CAACra,GAAWqa,CAAQ,EAIpBlsB,EAAOE,CAAG,EAAI8rB,GAAqBG,EAAaD,CAAQ,EAIxDlsB,EAAOE,CAAG,EAAIgsB,CAEtB,CACA,OAAOlsB,CACX,CACA,MAAMosB,GAE2B,OAAA,EAiBjC,SAASC,GAAc/lB,EAAK,CACxB,MAAQ,CAAC6F,GAAc7F,CAAG,GACtB,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAK8lB,EAAiB,CACpE,CACA,KAAM,CAAE,OAAAE,IAAW,OACnB,SAAS9d,GAAWuR,EAAG,CACnB,MAAO,CAAC,EAAE9L,GAAM8L,CAAC,GAAKA,EAAE,OAC5B,CACA,SAASwM,GAAmBjQ,EAAIlD,EAASgS,EAAOoB,EAAK,CACjD,KAAM,CAAE,MAAAC,EAAO,QAAAC,EAAS,QAAAC,CAAA,EAAYvT,EAC9BwT,EAAexB,EAAM,MAAM,MAAM9O,CAAE,EACzC,IAAIuQ,EACJ,SAASC,GAAQ,CACRF,IAEDxB,EAAM,MAAM,MAAM9O,CAAE,EAAImQ,EAAQA,EAAA,EAAU,CAAA,GAG9C,MAAMM,EAGAxV,GAAO6T,EAAM,MAAM,MAAM9O,CAAE,CAAC,EAClC,OAAOgQ,GAAOS,EAAYL,EAAS,OAAO,KAAKC,GAAW,CAAA,CAAE,EAAE,OAAO,CAACK,EAAiBC,KAInFD,EAAgBC,CAAI,EAAIlW,GAAQ9H,GAAS,IAAM,CAC3Ckc,GAAeC,CAAK,EAEpB,MAAMyB,EAAQzB,EAAM,GAAG,IAAI9O,CAAE,EAK7B,OAAOqQ,EAAQM,CAAI,EAAE,KAAKJ,EAAOA,CAAK,CAC1C,CAAC,CAAC,EACKG,GACR,CAAA,CAAE,CAAC,CACV,CACA,OAAAH,EAAQK,GAAiB5Q,EAAIwQ,EAAO1T,EAASgS,EAAOoB,EAAK,EAAI,EACtDK,CACX,CACA,SAASK,GAAiBC,EAAKL,EAAO1T,EAAU,CAAA,EAAIgS,EAAOoB,EAAKY,EAAgB,CAC5E,IAAI9S,EACJ,MAAM+S,EAAmBf,GAAO,CAAE,QAAS,CAAA,CAAC,EAAKlT,CAAO,EAMlDkU,EAAoB,CAAE,KAAM,EAAA,EAsBlC,IAAIC,EACAC,EACA/B,MAAoB,IACpBgC,MAA0B,IAC1BC,EACJ,MAAMd,EAAexB,EAAM,MAAM,MAAM+B,CAAG,EAGtC,CAACC,GAAkB,CAACR,IAEpBxB,EAAM,MAAM,MAAM+B,CAAG,EAAI,CAAA,GAK7B,IAAIQ,EACJ,SAASC,EAAOC,EAAuB,CACnC,IAAIC,GACJP,EAAcC,EAAkB,GAM5B,OAAOK,GAA0B,YACjCA,EAAsBzC,EAAM,MAAM,MAAM+B,CAAG,CAAC,EAC5CW,GAAuB,CACnB,KAAMxC,GAAa,cACnB,QAAS6B,EACT,OAAQO,CAAA,IAIZ1B,GAAqBZ,EAAM,MAAM,MAAM+B,CAAG,EAAGU,CAAqB,EAClEC,GAAuB,CACnB,KAAMxC,GAAa,YACnB,QAASuC,EACT,QAASV,EACT,OAAQO,CAAA,GAGhB,MAAMK,GAAgBJ,EAAiB,OAAA,EACvCxR,GAAA,EAAW,KAAK,IAAM,CACdwR,IAAmBI,KACnBR,EAAc,GAEtB,CAAC,EACDC,EAAkB,GAElB5B,GAAqBH,EAAeqC,GAAsB1C,EAAM,MAAM,MAAM+B,CAAG,CAAC,CACpF,CACA,MAAMa,EAASZ,EACT,UAAkB,CAChB,KAAM,CAAE,MAAAX,IAAUrT,EACZ6U,GAAWxB,GAAQA,GAAA,EAAU,CAAA,EAEnC,KAAK,OAAQyB,IAAW,CAEpB5B,GAAO4B,GAAQD,EAAQ,CAC3B,CAAC,CACL,EAMU1C,GACd,SAAS4C,GAAW,CAChB7T,EAAM,KAAA,EACNmR,EAAc,MAAA,EACdgC,EAAoB,MAAA,EACpBrC,EAAM,GAAG,OAAO+B,CAAG,CACvB,CAMA,MAAMiB,GAAS,CAACrhB,EAAIkgB,GAAO,KAAO,CAC9B,GAAInB,MAAiB/e,EACjB,OAAAA,EAAGgf,EAAW,EAAIkB,GACXlgB,EAEX,MAAMshB,GAAgB,UAAY,CAC9BlD,GAAeC,CAAK,EACpB,MAAMrZ,GAAO,MAAM,KAAK,SAAS,EAC3Buc,OAAuB,IACvBC,OAAyB,IAC/B,SAASC,GAAM9Y,GAAU,CACrB4Y,GAAiB,IAAI5Y,EAAQ,CACjC,CACA,SAAS+Y,GAAQ/Y,GAAU,CACvB6Y,GAAmB,IAAI7Y,EAAQ,CACnC,CAEAkW,GAAqB6B,EAAqB,CACtC,KAAA1b,GACA,KAAMsc,GAActC,EAAW,EAC/B,MAAAc,GACA,MAAA2B,GACA,QAAAC,EAAA,CACH,EACD,IAAIjX,GACJ,GAAI,CACAA,GAAMzK,EAAG,MAAM,MAAQ,KAAK,MAAQogB,EAAM,KAAON,GAAO9a,EAAI,CAEhE,OACOzI,GAAO,CACV,MAAAsiB,GAAqB2C,GAAoBjlB,EAAK,EACxCA,EACV,CACA,OAAIkO,cAAe,QACRA,GACF,KAAMrX,KACPyrB,GAAqB0C,GAAkBnuB,EAAK,EACrCA,GACV,EACI,MAAOmJ,KACRsiB,GAAqB2C,GAAoBjlB,EAAK,EACvC,QAAQ,OAAOA,EAAK,EAC9B,GAGLsiB,GAAqB0C,GAAkB9W,EAAG,EACnCA,GACX,EACA,OAAA6W,GAAcvC,EAAa,EAAI,GAC/BuC,GAActC,EAAW,EAAIkB,GAGtBoB,EACX,EAOMK,EAAe,CACjB,GAAItD,EAEJ,IAAA+B,EACA,UAAW3B,GAAgB,KAAK,KAAMiC,CAAmB,EACzD,OAAAG,EACA,OAAAI,EACA,WAAWtY,EAAU0D,GAAU,GAAI,CAC/B,MAAMuS,GAAqBH,GAAgBC,EAAe/V,EAAU0D,GAAQ,SAAU,IAAMuV,IAAa,EACnGA,GAAcrU,EAAM,IAAI,IAAMpB,GAAM,IAAMkS,EAAM,MAAM,MAAM+B,CAAG,EAAIV,IAAU,EAC3ErT,GAAQ,QAAU,OAASoU,EAAkBD,IAC7C7X,EAAS,CACL,QAASyX,EACT,KAAM7B,GAAa,OACnB,OAAQoC,CAAA,EACTjB,EAAK,CAEhB,EAAGH,GAAO,CAAA,EAAIgB,EAAmBlU,EAAO,CAAC,CAAC,EAC1C,OAAOuS,EACX,EACA,SAAAwC,CAAA,EAEEtB,GAAQvW,GAQRoY,CAAY,EAGlBtD,EAAM,GAAG,IAAI+B,EAAKN,EAAK,EAGvB,MAAM+B,IAFkBxD,EAAM,IAAMA,EAAM,GAAG,gBAAmBS,IAE9B,IAAMT,EAAM,GAAG,IAAI,KAAO9Q,EAAQnN,GAAA,GAAe,IAAI,IAAM2f,EAAM,CAAE,OAAAsB,GAAQ,CAAC,CAAC,CAAC,EAEhH,UAAWluB,KAAO0uB,GAAY,CAC1B,MAAMC,GAAOD,GAAW1uB,CAAG,EAC3B,GAAK+T,GAAM4a,EAAI,GAAK,CAACrgB,GAAWqgB,EAAI,GAAMhd,GAAWgd,EAAI,EAO3CzB,IAEFR,GAAgBP,GAAcwC,EAAI,IAC9B5a,GAAM4a,EAAI,EACVA,GAAK,MAAQjC,EAAa1sB,CAAG,EAK7B8rB,GAAqB6C,GAAMjC,EAAa1sB,CAAG,CAAC,GAIpDkrB,EAAM,MAAM,MAAM+B,CAAG,EAAEjtB,CAAG,EAAI2uB,YAQ7B,OAAOA,IAAS,WAAY,CACjC,MAAMC,GAAsEV,GAAOS,GAAM3uB,CAAG,EAI5F0uB,GAAW1uB,CAAG,EAAI4uB,GAOlBzB,EAAiB,QAAQntB,CAAG,EAAI2uB,EACpC,CAgBJ,CAGA,OAAAvC,GAAOO,GAAO+B,EAAU,EAGxBtC,GAAO9a,GAAMqb,EAAK,EAAG+B,EAAU,EAI/B,OAAO,eAAe/B,GAAO,SAAU,CACnC,IAAK,IAAyEzB,EAAM,MAAM,MAAM+B,CAAG,EACnG,IAAMV,GAAU,CAKZmB,EAAQM,IAAW,CAEf5B,GAAO4B,GAAQzB,CAAK,CACxB,CAAC,CACL,CAAA,CACH,EA8FDrB,EAAM,GAAG,QAAS2D,GAAa,CAavBzC,GAAOO,GAAOvS,EAAM,IAAI,IAAMyU,EAAS,CACnC,MAAAlC,GACA,IAAKzB,EAAM,GACX,MAAAA,EACA,QAASiC,CAAA,CACZ,CAAC,CAAC,CAEX,CAAC,EAWGT,GACAQ,GACAhU,EAAQ,SACRA,EAAQ,QAAQyT,GAAM,OAAQD,CAAY,EAE9CW,EAAc,GACdC,EAAkB,GACXX,EACX,CAGA,SAASmC,GAET1S,EAAIwQ,EAAOmC,EAAc,CACrB,IAAI7V,EACJ,MAAM8V,EAAe,OAAOpC,GAAU,WAEtC1T,EAAU8V,EAAeD,EAAenC,EACxC,SAASqC,EAAS/D,EAAOoB,EAAK,CAC1B,MAAM4C,EAAavR,GAAA,EACnB,OAAAuN,EAGuFA,IAC9EgE,EAAa5R,GAAO6N,GAAa,IAAI,EAAI,MAC9CD,GACAD,GAAeC,CAAK,EAMxBA,EAAQF,GACHE,EAAM,GAAG,IAAI9O,CAAE,IAEZ4S,EACAhC,GAAiB5Q,EAAIwQ,EAAO1T,EAASgS,CAAK,EAG1CmB,GAAmBjQ,EAAIlD,EAASgS,CAAK,GAQ/BA,EAAM,GAAG,IAAI9O,CAAE,CAyBjC,CACA,OAAA6S,EAAS,IAAM7S,EACR6S,CACX,CAgKA,SAASE,GAAYxC,EAAO,CACxB,MAAMyC,EAAW9d,GAAMqb,CAAK,EACtB0C,EAAO,CAAA,EACb,UAAWrvB,KAAOovB,EAAU,CACxB,MAAMnvB,EAAQmvB,EAASpvB,CAAG,EAGtBC,EAAM,OAENovB,EAAKrvB,CAAG,EAEJ+O,GAAS,CACL,IAAK,IAAM4d,EAAM3sB,CAAG,EACpB,IAAIC,EAAO,CACP0sB,EAAM3sB,CAAG,EAAIC,CACjB,CAAA,CACH,GAEA8T,GAAM9T,CAAK,GAAK0R,GAAW1R,CAAK,KAErCovB,EAAKrvB,CAAG,EAEJgY,GAAM2U,EAAO3sB,CAAG,EAE5B,CACA,OAAOqvB,CACX,gJC/1DA,MAAMC,GAAqCR,GAKzC,SAAU,CACV,OAAQ,CACN,MAAO,CACL,OAAQ,CAAA,EACR,GAAI,CAAA,CAER,EACA,QAAS,CACP,YAAYze,EAAiBkf,EAAiB/C,EAAoB,CAChE,MAAMgD,EAAa,KAAK,OAAO,KAC5BrS,GAAMA,EAAE,MAAQ9M,GAAQ8M,EAAE,SAAWoS,GAAWpS,EAAE,SAAWqP,CAAA,EAE5DgD,EACFA,EAAW,kBAEX,KAAK,OAAO,KAAK,CACf,GAAI,KAAK,KACT,KAAAnf,EACA,QAAAkf,EACA,QAAA/C,EACA,gBAAiB,CAAA,CAClB,CAEL,EACA,YAAYpQ,EAAY,CACtB,UAAWxY,KAAK,KAAK,OAAO,KAAA,EAC1B,GAAI,KAAK,OAAOA,CAAC,EAAE,IAAMwY,EAAI,CAC3B,KAAK,OAAO,OAAOxY,EAAG,CAAC,EACvB,KACF,CAEJ,CAAA,CAEJ,CAAC,EAOM,IAAM6rB,GAAN,KAAoD,CACxC,KACA,MAEjB,aAAc,CAEZ,KAAK,MAAQH,GAAA,EACb,KAAK,KAAOH,GAAY,KAAK,KAAK,CACpC,CAEA,MAA4B,CAC1B,OAAO,KAAK,KAAK,MACnB,CAEA,KAAKI,EAAiB/C,EAA0B,CAC9C,KAAK,MAAM,YAAY,OAAQ+C,EAAS/C,CAAO,CACjD,CAEA,QAAQ+C,EAAiB/C,EAA0B,CACjD,KAAK,MAAM,YAAY,UAAW+C,EAAS/C,CAAO,CACpD,CAEA,QAAQ+C,EAAiB/C,EAA0B,CACjD,KAAK,MAAM,YAAY,UAAW+C,EAAS/C,CAAO,CACpD,CAEA,MAAM+C,EAAiB/C,EAA0B,CAC/C,KAAK,MAAM,YAAY,QAAS+C,EAAS/C,CAAO,CAClD,CAEA,QAAQpQ,EAAkB,CACxB,KAAK,MAAM,YAAYA,CAAE,CAC3B,CACF,EAjCaqT,GAAN5E,GAAA,CADNC,GAAA,CAAW,EACC2E,EAAA,2KC/DN,IAAMC,GAAN,KAAoE,CACzE,YAAmDC,EAAqB,CAArB,KAAA,QAAAA,CAAsB,CAEzE,KAAqB,CACnB,OAAO,KAAK,QAAQ,aAAA,EAAe,IAAmB,eAAe,CACvE,CACF,EANaD,GAAN7E,GAAA,CADNC,GAAA,EAEc8E,QAAO,YAAY,CAAA,CAAA,EADrBF,EAAA,ECFN,IAAAG,GAAA,KAAoB,CACzB,YAAYxF,EAAsB,CAChCA,EACG,KAAoB,eAAe,EACnC,GAAGoF,EAAoB,EACvB,iBAAA,EACHpF,EACG,KAA4B,uBAAuB,EACnD,GAAGqF,EAA4B,EAC/B,iBAAA,CACL,CACF,2KCRA,IAAMI,GAAN,KAAoF,CAClF,YAA0CC,EAAwB,CAAxB,KAAA,WAAAA,CAAyB,CAEnE,IAAI1f,EAAkD,CACpD,MAAM2f,EACJ3f,GACA,KAAK,WAAW,cAAA,EAAgB,uBAChC,KAAK,WAAW,cAAA,EAAgB,QAAA,EAClC,GAAI,CACF,OAAO,KAAK,WACT,aAAA,EACA,IAAI,wBAAyB,CAAE,KAAM2f,EAAc,CACxD,OAASvnB,EAAG,CACV,KAAK,WACF,UAAU,oBAAoB,EAC9B,KACC,oDAAoDunB,CAAY,IAChEvnB,CAAA,EAEJ,MACF,CACF,CACF,EAtBMqnB,GAANjF,GAAA,CADCC,GAAA,EAEc8E,QAAO,YAAY,CAAA,CAAA,EAD5BE,EAAA,ECPC,IAAAG,GAAA,KAAoB,CACzB,YAAY5F,EAAsB,CAChCA,EACG,KAAoC,+BAA+B,EACnE,GAAGyF,EAAoC,EACvC,iBAAA,CACL,CACF,sFClCC,CAACrnB,EAAEwW,IAAI,CAAsDiR,UAAejR,EAAC,CAAkH,GAAGkR,GAAK,UAAU,CAAC,IAAI1G,EAAE,SAAShhB,EAAEwW,EAAE,CAAC,OAAOwK,EAAE,OAAO,iBAAiB,CAAC,UAAU,CAAA,CAAE,YAAY,MAAM,SAAShhB,EAAEwW,EAAE,CAACxW,EAAE,UAAUwW,CAAC,EAAE,SAASxW,EAAEwW,EAAE,CAAC,QAAQC,KAAKD,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAEC,CAAC,IAAIzW,EAAEyW,CAAC,EAAED,EAAEC,CAAC,EAAE,IAAIzW,EAAEwW,CAAC,CAAC,EAAMtV,EAAE,UAAU,CAAC,OAAOA,EAAE,OAAO,QAAQ,SAASlB,EAAE,CAAC,QAAQwW,EAAEC,EAAE,EAAEpI,EAAE,UAAU,OAAOoI,EAAEpI,EAAEoI,IAAI,QAAQW,KAAKZ,EAAE,UAAUC,CAAC,EAAE,OAAO,UAAU,eAAe,KAAKD,EAAEY,CAAC,IAAIpX,EAAEoX,CAAC,EAAEZ,EAAEY,CAAC,GAAG,OAAOpX,CAAC,GAAG,MAAM,KAAK,SAAS,CAAC,EAAE,SAASoY,EAAEpY,EAAEwW,EAAEC,EAAE,CAA4B,QAAQpI,EAAE+I,EAAE,EAAEjc,EAAEqb,EAAE,OAAOY,EAAEjc,EAAEic,IAAI,CAAC/I,GAAG+I,KAAKZ,KAAKnI,EAAEA,GAAG,MAAM,UAAU,MAAM,KAAKmI,EAAE,EAAEY,CAAC,GAAGA,CAAC,EAAEZ,EAAEY,CAAC,GAAG,OAAOpX,EAAE,OAAOqO,GAAG,MAAM,UAAU,MAAM,KAAKmI,CAAC,CAAC,CAAC,CAAC,IAAItY,EAAe,OAAO,WAApB,IAA+B,WAAwB,OAAO,KAApB,IAAyB,KAAkB,OAAO,OAApB,IAA2B,OAAOjH,GAAOsE,EAAE,OAAO,KAAKgB,EAAE,MAAM,QAAQ,SAASmY,EAAE8B,EAAEC,EAAE,CAAC,OAAgB,OAAOA,GAAjB,UAAoBlb,EAAEkb,CAAC,EAAE,QAAQ,SAASzW,EAAE,CAACwW,EAAExW,CAAC,EAAEyW,EAAEzW,CAAC,CAAC,CAAC,EAAEwW,CAAC,CAAc,OAAO,QAApB,KAA6BtY,EAAE,UAAUA,EAAE,QAAQ,SAAS,IAAI0a,EAAE,OAAO,eAAef,EAAE,CAAA,EAAG,eAAe,SAASD,EAAE5X,EAAEwW,EAAE,CAAC,OAAOqB,EAAE,KAAK7X,EAAEwW,CAAC,CAAC,CAAC,SAAS0B,EAAE1B,EAAEC,EAAE,CAAa,OAAOA,GAAnB,aAAuBA,EAAEA,EAAEmC,EAAEpC,CAAC,CAAC,IAAiB,OAAO,QAApB,IAA4Bjb,EAAE,QAAQ,SAASkb,CAAC,EAAE,QAAQ,SAASzW,EAAE,CAAC4W,EAAEJ,EAAExW,EAAEyW,EAAEzW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIiZ,EAAE,OAAO,eAAe,SAASrC,EAAE5W,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC4K,EAAEjZ,EAAEwW,EAAE9B,EAAE+B,GAAGmB,EAAEnB,EAAE,KAAK,GAAe,OAAOA,EAAE,KAArB,WAAyB,CAAC,IAAIA,EAAE,IAAI,IAAIA,EAAE,IAAI,aAAa,EAAE,EAAE,CAAC,MAAMA,EAAE,aAAa,GAAG,SAAS,EAAE,EAAEpI,CAAC,CAAC,CAAC,CAAC,SAAS6K,EAAE1C,EAAE,CAAC,MAAM,CAAC,KAAK,SAASxW,EAAE,CAAC,OAAOwW,EAAE,UAAU,OAAO,OAAOxW,EAAE,SAAS,EAAE4W,EAAEJ,EAAE,UAAU,cAAcA,CAAC,EAAE,CAAC,OAAO0B,EAAE,KAAK,KAAK1B,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIhZ,EAAE,OAAO,yBAA6B,EAAE,CAAA,EAAG,MAAM,SAAS8b,EAAEtZ,EAAEwW,EAAEC,EAAE,CAAC,OAAO,EAAE,KAAKzW,EAAEwW,EAAEC,CAAC,CAAC,CAAC,SAAS+K,GAAExhB,EAAEwW,EAAE,CAAC,OAAOA,EAAExW,CAAC,CAAC,CAAC,SAAS6Y,EAAE7Y,EAAE,CAAC,GAAG,CAACA,EAAE,MAAM,IAAI,MAAM,kBAAkB,CAAC,CAAC,SAASuhB,GAAEvhB,EAAE,CAAC9B,EAAE,aAAa,aAAa8B,CAAC,EAAE,WAAWA,EAAE,CAAC,CAAC,CAAC,SAAS2W,GAAE3W,EAAEwW,EAAE,CAAC,GAAa,OAAOA,GAAjB,UAAoBoB,EAAE5X,EAAEwW,CAAC,EAAE,OAAOxW,EAAEwW,CAAC,EAAE,GAAG,CAACA,EAAE,OAAOxW,EAAE,GAAa,OAAOwW,GAAjB,SAAmB,CAAC,QAAQC,EAAE,CAAA,EAAGpI,EAAE,EAAE+I,EAAEZ,EAAE,OAAOnI,EAAE+I,EAAE,EAAE/I,EAAE,CAAC,IAAIlT,EAAEwb,GAAE3W,EAAEwW,EAAEnI,CAAC,CAAC,EAAEoI,EAAE,KAAKtb,CAAC,CAAC,CAAC,OAAOsb,CAAC,CAAC,IAAI/B,EAAEkC,EAAEJ,EAAE,QAAQ,GAAG,EAAE,OAAWI,SAAUlC,EAAE1U,EAAEwW,EAAE,OAAO,EAAEI,CAAC,CAAC,IAAxB,KAA2B,OAAOD,GAAEjC,EAAE8B,EAAE,OAAOI,EAAE,CAAC,CAAC,CAAC,CAAC,SAASjC,GAAE3U,EAAEwW,EAAEC,EAAE,CAAC,GAAGzW,GAAYwW,IAAT,QAAY,EAAE,aAAa,QAAQ,OAAO,SAASxW,CAAC,GAAG,GAAa,OAAOwW,GAAjB,UAAoB,WAAWA,EAAE,CAACqC,EAAY,OAAOpC,GAAjB,UAAoB,WAAWA,CAAC,EAAE,QAAQpI,EAAE,EAAE+I,EAAEZ,EAAE,OAAOnI,EAAE+I,EAAE,EAAE/I,EAAEsG,GAAE3U,EAAEwW,EAAEnI,CAAC,EAAEoI,EAAEpI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIlT,EAAEuZ,EAAEkC,EAAEJ,EAAE,QAAQ,GAAG,EAAOI,IAAL,IAAQzb,EAAEqb,EAAE,OAAO,EAAEI,CAAC,GAAQA,EAAEJ,EAAE,OAAOI,EAAE,CAAC,KAApB,GAAgCH,IAAT,OAAWla,EAAEyD,CAAC,GAAG,CAAC,MAAM,SAAS7E,CAAC,CAAC,EAAE6E,EAAE,OAAO7E,EAAE,CAAC,EAAE,OAAO6E,EAAE7E,CAAC,EAAE6E,EAAE7E,CAAC,EAAEsb,EAAE9B,GAAED,GAAGA,EAAE1U,EAAE7E,CAAC,IAAIyc,EAAE5X,EAAE7E,CAAC,EAAEuZ,EAAE1U,EAAE7E,CAAC,EAAE,GAAGyb,EAAEH,CAAC,GAAYA,IAAT,OAAWla,EAAEyD,CAAC,GAAG,CAAC,MAAM,SAASwW,CAAC,CAAC,EAAExW,EAAE,OAAOwW,EAAE,CAAC,EAAE,OAAOxW,EAAEwW,CAAC,EAAExW,EAAEwW,CAAC,EAAEC,CAAC,CAAC,CAAC,SAAS4C,EAAErZ,EAAE,CAAC,IAAIwW,EAAEC,EAAE,GAAG,IAAID,KAAKxW,EAAE4X,EAAE5X,EAAEwW,CAAC,IAAIC,EAAED,CAAC,EAAExW,EAAEwW,CAAC,GAAG,OAAOC,CAAC,CAAC,IAAI4K,GAAE,CAAA,EAAG,OAAO,SAASH,GAAElhB,EAAE,CAAC,OAAOqhB,GAAE,MAAM,CAAA,EAAGrhB,CAAC,CAAC,CAAC,IAAIA,GAAE,iNAAiN,MAAM,GAAG,EAAE,OAAOkhB,GAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,SAAS1K,EAAE,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOA,EAAEwW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,SAASxW,EAAE,CAAC,OAAO9B,EAAE8B,CAAC,CAAC,CAAC,EAAEshB,GAAE,IAAI,IAAIthB,GAAE,IAAI,SAASA,EAAE,CAAC,OAAO9B,EAAE8B,CAAC,CAAC,CAAC,CAAC,EAAMyhB,GAAE,KAAK,SAASC,GAAG1hB,EAAE,CAAC,OAAAyhB,GAAE,IAAI,QAAQzhB,GAAE,SAASA,EAAEwW,EAAE,CAAC,GAAG,CAACA,GAAa,OAAOA,GAAjB,SAAmB,OAAOA,EAAE,IAAIC,EAAEgL,GAAE,IAAIjL,CAAC,EAAE,GAAGC,EAAE,OAAOA,EAAE,GAAGla,EAAEia,CAAC,EAAE,CAACC,EAAE,CAAA,EAAGgL,GAAE,IAAIjL,EAAEC,CAAC,EAAE,QAAQpI,EAAE,EAAE+I,EAAEZ,EAAE,OAAOnI,EAAE+I,EAAE,EAAE/I,EAAEoI,EAAE,KAAKzW,EAAEwW,EAAEnI,CAAC,CAAC,CAAC,CAAC,SAASiT,GAAE,IAAI9K,EAAE,WAAW,EAAEC,EAAED,MAAM,CAAC,IAAIrb,EAAEuZ,EAAEkE,EAAEpC,CAAC,EAAE,IAAIrb,KAAKsb,EAAE/B,IAAI,OAAO,UAAU,CAAA,EAAG,OAAO,OAAOA,CAAC,EAAE+M,GAAE,IAAIjL,EAAEC,CAAC,EAAED,EAAEoB,EAAEpB,EAAErb,CAAC,IAAIsb,EAAEtb,CAAC,EAAE6E,EAAEwW,EAAErb,CAAC,CAAC,EAAE,CAAC,OAAOsb,CAAC,GAAEzW,CAAC,EAASyhB,GAAE,KAAKzhB,CAAC,CAAC,IAAI2nB,GAAG,CAAA,EAAG,SAAS,SAASpO,GAAGvZ,EAAE,CAAC,OAAO2nB,GAAG,KAAK3nB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI0Z,GAAgB,OAAO,OAApB,IAA2B,OAAO,SAAS,aAAaD,GAAa,OAAOC,IAAjB,SAAoB,SAAS1Z,EAAE,CAAC,IAAIwW,EAAE,OAAaxW,GAAN,OAAUwW,EAAExW,EAAE0Z,EAAE,IAAIlD,EAAE,MAAMxW,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,SAASwZ,GAAGxZ,EAAEwW,EAAE,CAACA,EAAExW,EAAE,QAAQwW,CAAC,EAAE,GAAGA,GAAGxW,EAAE,OAAOwW,EAAE,CAAC,CAAC,CAAC,IAAIoR,GAAG,CAAA,EAAG,SAASnR,GAAEzW,EAAE,CAAC,IAAIwW,EAAEC,EAAEpI,EAAE+I,EAAE,GAAO,UAAU,SAAd,EAAqB,CAAC,GAAG7a,EAAEyD,CAAC,EAAE,OAAOA,EAAE,MAAK,EAAG,GAAG,OAAO4nB,IAAc,OAAO5nB,GAAjB,SAAmB,MAAM,CAACA,CAAC,EAAE,GAAGoX,EAAEqC,GAAGzZ,CAAC,EAAE,IAAIyW,EAAE,GAAG,EAAEpI,EAAE+I,EAAE,KAAI,GAAI,MAAMX,EAAE,KAAKpI,EAAE,KAAK,MAAM,CAAC,GAASrO,GAAN,KAAQ,MAAM,CAACA,CAAC,EAAE,GAAa,OAAOwW,EAAExW,EAAE,SAArB,SAA6B,MAAM,CAACA,CAAC,EAAE,IAAIyW,EAAE,IAAI,MAAMD,CAAC,EAAEA,KAAKC,EAAED,CAAC,EAAExW,EAAEwW,CAAC,CAAC,CAAC,KAAM,KAAIA,EAAE,UAAU,OAAOC,EAAE,IAAI,MAAMD,CAAC,EAAEA,KAAKC,EAAED,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAOC,CAAC,CAAC,IAAImD,GAAgB,OAAO,OAApB,IAA2B,SAAS5Z,EAAE,CAAC,OAAwBA,EAAE,OAAO,WAAW,IAAtC,eAAuC,EAAE,UAAU,CAAC,MAAM,EAAE,EAAEA,GAAE,CAAC,UAAU,aAAa,OAAO,sBAAsB,WAAW,UAAU,WAAW,eAAe,gBAAgB,QAAQ,UAAU,gBAAgB,SAAS,WAAW,EAAEwW,EAAE,CAAC,SAAS,OAAO,aAAa,gBAAgB,SAAS,UAAU,eAAe,aAAa,iBAAiB,kBAAkB,iBAAiB,cAAc,WAAW,iBAAiB,kBAAkB,cAAc,EAAE,OAAOxW,EAAC,EAAE2Z,GAAG,CAAC,eAAe,wDAAwD,eAAe,2BAA2B,MAAM,sBAAsB,oBAAoB,8CAA8C,WAAW,kEAAkE,EAAE,SAASkO,GAAG7nB,EAAEwW,EAAE,CAAC,KAAK,KAAKxW,EAAE,KAAK,QAAQwW,CAAC,CAAC,SAASqD,GAAG7Z,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,aAAa,OAAO,KAAKwW,CAAC,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOwW,EAAExW,CAAC,EAAE,SAAQ,CAAE,CAAC,EAAE,OAAO,SAASA,EAAEwW,EAAEC,EAAE,CAAC,OAAOA,EAAE,QAAQzW,CAAC,IAAIwW,CAAC,CAAC,EAAE,KAAK;AAAA,CAAI,CAAC,CAAC,SAASuD,GAAG/Z,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,KAAK,SAASmI,EAAE,KAAK,WAAWnI,EAAE,KAAK,aAAaoI,EAAE,KAAK,QAAQoD,GAAG7Z,EAAEwW,CAAC,CAAC,CAAC,SAASyD,GAAGja,EAAEwW,EAAE,CAAC,KAAK,KAAK,YAAY,KAAK,SAAS,OAAO,KAAKA,CAAC,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOwW,EAAExW,CAAC,CAAC,CAAC,EAAE,KAAK,cAAcwW,EAAE,KAAK,QAAQqD,GAAG7Z,EAAE,KAAK,QAAQ,CAAC,CAACkZ,EAAE2O,EAAE,EAAE,KAAK,KAAK,EAAE,OAAO,CAAC,SAAS,UAAU,CAAC,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE3O,EAAEa,EAAE,EAAE,KAAK8N,EAAE,EAAE3O,EAAEe,EAAE,EAAE,KAAK4N,EAAE,EAAE,IAAIC,GAAGtR,EAAE,OAAO,SAASxW,EAAEwW,EAAE,CAAC,OAAOxW,EAAEwW,CAAC,EAAEA,EAAE,QAAQxW,CAAC,EAAE,CAAA,CAAE,EAAE8Z,GAAG+N,GAAG/nB,GAAE0W,EAAE,OAAO,SAASxW,EAAEyW,EAAE,CAAC,IAAIpI,EAAEoI,EAAE,QAAQ,SAASD,EAAExW,EAAEwW,EAAE,CAAC,KAAK,KAAKnI,EAAErO,EAAY,OAAOA,GAAjB,UAAoB,KAAK,QAAQ,GAAG,OAAOA,CAAC,EAAE,OAAOwW,EAAE;AAAA,GAAMA,EAAE,EAAE,EAAE,KAAK,MAAMA,GAAG,MAAgB,OAAOxW,GAAjB,WAAqB,KAAK,QAAQ,GAAG,OAAOA,EAAE,KAAK,GAAG,EAAE,OAAOA,EAAE,OAAO,EAAE,KAAK,MAAMA,IAAI,KAAK,QAAQ2Z,GAAGlD,CAAC,GAAGpI,EAAE,KAAK,MAAM,KAAK,CAAC,OAAO6K,EAAE1C,CAAC,EAAE,KAAKsD,EAAE,EAAE9Z,EAAEyW,CAAC,EAAED,EAAExW,CAAC,EAAE,CAAA,CAAE,EAAEoa,IAAIta,GAAE,OAAO,YAAYA,GAAE,KAAK,UAAUA,GAAE,MAAM,WAAWE,GAAE,OAAO,SAASA,EAAEwW,EAAE,CAAC,OAAOxW,EAAEwW,EAAE,OAAO,EAAE1W,GAAE0W,CAAC,EAAExW,CAAC,EAAE,CAAA,CAAE,GAAGA,GAAEwW,EAAE,OAAO,SAASxW,EAAEwW,EAAE,CAAC,MAAW,CAAC,SAAS,OAAO,OAAO,EAAE,QAAQA,CAAC,IAAxC,KAA4CxW,EAAEwW,EAAE,OAAO,EAAE1W,GAAE0W,CAAC,GAAGxW,CAAC,EAAE,CAAA,CAAE,EAAE,SAASoW,IAAG,EAAE,SAAS4D,GAAGha,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASma,GAAG3D,EAAEC,EAAE,CAAC,OAAaD,GAAN,MAASA,IAAIwD,GAAGvD,EAAE,SAASzW,EAAE,CAAC,OAAOyW,EAAED,EAAExW,CAAC,CAAC,CAAC,CAAC,CAAC,SAASwa,GAAGxa,EAAEwW,EAAE,CAAC,OAAO,UAAU,CAACxW,EAAE,MAAM,KAAK,SAAS,EAAEwW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS0D,GAAG,EAAE/e,EAAE,CAAC,OAAO,IAAIib,GAAEjb,EAAE,UAAU,CAAC,IAAI6E,EAAE,EAAE,MAAM,KAAK,SAAS,EAAEwW,GAAYxW,IAAT,SAAa,UAAU,CAAC,EAAEA,GAAG,KAAK,WAAWyW,EAAE,KAAK,QAAQpI,GAAG,KAAK,UAAU,KAAK,KAAK,QAAQ,KAAKlT,EAAE,MAAM,KAAK,SAAS,GAAG,OAAOqb,IAAI,KAAK,UAAU,KAAK,UAAUgE,GAAGhE,EAAE,KAAK,SAAS,EAAEA,GAAGC,IAAI,KAAK,QAAQ,KAAK,QAAQ+D,GAAG/D,EAAE,KAAK,OAAO,EAAEA,GAAYpI,IAAT,OAAWA,EAAErO,CAAC,CAAC,CAAC,SAASya,GAAGhE,EAAEpI,EAAE,CAAC,OAAOoI,IAAIL,GAAE/H,EAAE,UAAU,CAACoI,EAAE,MAAM,KAAK,SAAS,EAAE,IAAIzW,EAAE,KAAK,UAAUwW,EAAE,KAAK,QAAQ,KAAK,UAAU,KAAK,QAAQ,KAAKnI,EAAE,MAAM,KAAK,SAAS,EAAErO,IAAI,KAAK,UAAU,KAAK,UAAUwa,GAAGxa,EAAE,KAAK,SAAS,EAAEA,GAAGwW,IAAI,KAAK,QAAQ,KAAK,QAAQgE,GAAGhE,EAAE,KAAK,OAAO,EAAEA,EAAE,CAAC,CAAC,SAASyF,GAAG,EAAE9gB,EAAE,CAAC,OAAO,IAAIib,GAAEjb,EAAE,SAAS6E,EAAE,CAAC,IAAIwW,EAAE,EAAE,MAAM,KAAK,SAAS,EAAExW,GAAG0U,EAAE1U,EAAEwW,CAAC,EAAE,KAAK,WAAWC,EAAE,KAAK,QAAQpI,GAAG,KAAK,UAAU,KAAK,KAAK,QAAQ,KAAKlT,EAAE,MAAM,KAAK,SAAS,GAAG,OAAO6E,IAAI,KAAK,UAAU,KAAK,UAAUwa,GAAGxa,EAAE,KAAK,SAAS,EAAEA,GAAGyW,IAAI,KAAK,QAAQ,KAAK,QAAQ+D,GAAG/D,EAAE,KAAK,OAAO,EAAEA,GAAYD,IAAT,OAAoBnI,IAAT,OAAW,OAAOA,EAAEqG,EAAE8B,EAAEnI,CAAC,CAAC,CAAC,CAAC,SAAS0M,GAAG/a,EAAEwW,EAAE,CAAC,OAAOxW,IAAIoW,GAAEI,EAAE,UAAU,CAAC,OAAWA,EAAE,MAAM,KAAK,SAAS,IAA3B,IAA8BxW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAASqb,GAAG,EAAElgB,EAAE,CAAC,OAAO,IAAIib,GAAEjb,EAAE,UAAU,CAAC,IAAI6E,EAAE,EAAE,MAAM,KAAK,SAAS,EAAE,GAAGA,GAAe,OAAOA,EAAE,MAArB,WAA0B,CAAC,QAAQwW,EAAE,KAAKC,EAAE,UAAU,OAAOpI,EAAE,IAAI,MAAMoI,CAAC,EAAEA,KAAKpI,EAAEoI,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAOzW,EAAE,KAAK,UAAU,CAAC,OAAO7E,EAAE,MAAMqb,EAAEnI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOlT,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC6E,GAAE,YAAY+Z,GAAG/Z,GAAE,WAAW6nB,GAAG7nB,GAAE,UAAUia,GAAG,IAAI9V,GAAe,OAAO,SAApB,KAA8B,6CAA6C,KAAK,SAAS,IAAI,EAAE,SAAS0X,GAAG7b,EAAE,CAACmE,GAAEnE,CAAC,CAAC,IAAIgb,EAAG,CAAA,EAAGoB,EAAG,IAAIJ,EAAgB,OAAO,QAApB,IAA4B,CAAA,GAAIxF,EAAE,QAAQ,QAAO,EAAgB,OAAO,OAApB,KAA4B,OAAO,OAAO,CAACwF,EAAG,OAAO,OAAO,OAAO,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAEpD,EAAEoD,CAAE,EAAExF,CAAC,EAAE,CAACA,EAAEoC,EAAEpC,CAAC,EAAEA,CAAC,GAAGA,EAAEwF,EAAG,CAAC,EAAErB,GAAGqB,EAAG,CAAC,EAAErB,GAAGA,IAAIA,GAAG,KAAKO,GAAG1E,GAAGA,EAAE,YAAYsE,GAAG,CAAC,CAACkB,EAAG,CAAC,EAAMtB,GAAG,SAAS1a,EAAEwW,EAAE,CAACqE,GAAG,KAAK,CAAC7a,EAAEwW,CAAC,CAAC,EAAE8D,KAAK,eAAe4C,EAAE,EAAE5C,GAAG,GAAG,EAAEW,GAAG,GAAGX,GAAG,GAAG4B,EAAG,CAAA,EAAGX,EAAG,CAAA,EAAGJ,EAAGnB,GAAGzI,EAAE,CAAC,GAAG,SAAS,OAAO,GAAG,IAAI,EAAE,WAAW,CAAA,EAAG,YAAY6E,GAAE,IAAI,GAAG,IAAI,CAAA,EAAG,SAASA,EAAC,EAAE5a,EAAE+V,EAAEsJ,GAAG,CAAA,EAAGO,GAAG,EAAEf,GAAG,CAAA,EAAG,SAASlB,EAAEnZ,EAAE,CAAC,GAAa,OAAO,MAAjB,SAAsB,MAAM,IAAI,UAAU,sCAAsC,EAAE,KAAK,WAAW,CAAA,EAAG,KAAK,KAAK,GAAG,IAAIwW,EAAE,KAAK,KAAKhb,EAAE,GAAe,OAAOwE,GAAnB,WAAqB,CAAC,GAAGA,IAAIgb,EAAG,MAAM,IAAI,UAAU,gBAAgB,EAAE,KAAK,OAAO,UAAU,CAAC,EAAE,KAAK,OAAO,UAAU,CAAC,EAAO,KAAK,SAAV,IAAkBsB,GAAG,KAAK,KAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,EAAE9F,EAAE,KAAI,SAASA,EAAEnI,EAAErO,EAAE,CAAC,GAAG,CAACA,EAAE,SAASyW,EAAE,CAAC,GAAUpI,EAAE,SAAT,KAAgB,CAAC,GAAGoI,IAAIpI,EAAE,MAAM,IAAI,UAAU,2CAA2C,EAAE,IAAIrO,EAAEqO,EAAE,MAAMiN,KAAK7E,GAAe,OAAOA,EAAE,MAArB,WAA0BD,EAAEnI,EAAE,SAASrO,EAAEwW,EAAE,CAACC,aAAa0C,EAAE1C,EAAE,MAAMzW,EAAEwW,CAAC,EAAEC,EAAE,KAAKzW,EAAEwW,CAAC,CAAC,CAAC,GAAGnI,EAAE,OAAO,GAAGA,EAAE,OAAOoI,EAAE+E,GAAGnN,CAAC,GAAGrO,GAAGid,GAAE,CAAE,CAAC,EAAEX,GAAG,KAAK,KAAKjO,CAAC,CAAC,CAAC,OAAOrO,EAAE,CAACsc,GAAGjO,EAAErO,CAAC,CAAC,CAAC,GAAE,KAAKA,CAAC,CAAC,CAAC,IAAI4a,GAAG,CAAC,IAAI,UAAU,CAAC,IAAIhE,EAAEpb,EAAEgb,EAAE4G,GAAG,SAASpd,EAAEyW,EAAEpI,EAAE,CAAC,IAAI+I,EAAE,KAAKjc,EAAE,CAACyb,EAAE,SAASA,IAAIpb,GAAGgb,IAAI4G,IAAI1I,EAAEvZ,GAAG,CAACoO,GAAC,EAAGvJ,EAAE,IAAImZ,EAAE,SAASnZ,EAAEwW,EAAE,CAAC2F,GAAG/E,EAAE,IAAIiF,GAAG8C,GAAG1I,EAAEG,EAAEzb,EAAEuZ,CAAC,EAAEyK,GAAG9Q,EAAEuI,EAAEzb,EAAEuZ,CAAC,EAAE1U,EAAEwW,EAAEI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,eAAe5W,EAAE,aAAa,KAAK,cAAcA,CAAC,CAAC,OAAOA,EAAE,UAAUgb,EAAGhb,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC4W,EAAE,KAAK,OAAO5W,GAAGA,EAAE,YAAYgb,EAAGJ,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO5a,CAAC,EAAE,IAAI4a,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,SAASyB,GAAGrc,EAAEwW,EAAEC,EAAEpI,EAAE+I,EAAE,CAAC,KAAK,YAAwB,OAAOpX,GAAnB,WAAqBA,EAAE,KAAK,KAAK,WAAuB,OAAOwW,GAAnB,WAAqBA,EAAE,KAAK,KAAK,QAAQC,EAAE,KAAK,OAAOpI,EAAE,KAAK,IAAI+I,CAAC,CAAC,SAASkF,GAAGtc,EAAEwW,EAAE,CAAC,IAAIC,EAAEpI,EAAEkN,EAAG,KAAK/E,CAAC,EAASxW,EAAE,SAAT,OAAkByW,EAAEzW,EAAE,MAAMsb,GAAE,EAAG9E,EAAE2E,EAAG3E,CAAC,EAAExW,EAAE,OAAO,GAAGA,EAAE,OAAOwW,EAAEnI,EAAErO,EAAEkc,EAAG,KAAK,SAASlc,EAAE,CAAC,OAAOA,EAAE,SAASqO,EAAE,MAAM,CAAC,GAAG6N,EAAG,KAAK7N,CAAC,EAAEmN,GAAGxb,CAAC,EAAEyW,IAAIwG,GAAE,CAAE,CAAC,SAASzB,GAAGxb,EAAE,CAAC,IAAIwW,EAAExW,EAAE,WAAWA,EAAE,WAAW,CAAA,EAAG,QAAQyW,EAAE,EAAEpI,EAAEmI,EAAE,OAAOC,EAAEpI,EAAE,EAAEoI,EAAE0F,GAAGnc,EAAEwW,EAAEC,CAAC,CAAC,EAAE,IAAIW,EAAEpX,EAAE,KAAK,EAAEoX,EAAE,KAAKA,EAAE,SAAQ,EAAOgE,KAAJ,IAAS,EAAEA,GAAGV,GAAG,UAAU,CAAI,EAAEU,IAAL,GAASmB,GAAE,CAAE,EAAE,CAAA,CAAE,EAAE,CAAC,SAASJ,GAAGnc,EAAEwW,EAAE,CAAC,GAAUxW,EAAE,SAAT,KAAgBA,EAAE,WAAW,KAAKwW,CAAC,MAAM,CAAC,IAAIC,EAAEzW,EAAE,OAAOwW,EAAE,YAAYA,EAAE,WAAW,GAAUC,IAAP,KAAS,OAAOzW,EAAE,OAAOwW,EAAE,QAAQA,EAAE,QAAQxW,EAAE,MAAM,EAAE,EAAEwW,EAAE,IAAI,IAAI,EAAE4E,GAAGV,GAAG8B,GAAG,CAAC/F,EAAEzW,EAAEwW,CAAC,CAAC,CAAC,CAAC,CAAC,SAASgG,GAAGxc,EAAEwW,EAAEC,EAAE,CAAC,GAAG,CAAC,IAAIpI,EAAE+I,EAAEZ,EAAE,OAAO,CAACA,EAAE,QAAQ+E,EAAG,SAASA,EAAG,CAAA,GAAIlN,EAAElK,IAAGqS,EAAE,aAAaA,EAAE,aAAa,IAAI,UAAU,CAAC,OAAOxW,EAAEoX,CAAC,CAAC,CAAC,EAAEpX,EAAEoX,CAAC,EAAEZ,EAAE,QAAa+E,EAAG,QAAQnE,CAAC,IAAjB,KAAqBpX,GAAG,CAAC,QAAQwW,EAAE0F,EAAG,OAAO1F,GAAG,GAAG0F,EAAG,EAAE1F,CAAC,EAAE,SAASxW,EAAE,OAAO,OAAOkc,EAAG,OAAO1F,EAAE,CAAC,CAAC,GAAGA,CAAC,EAAEC,EAAE,QAAQpI,CAAC,CAAC,OAAOrO,EAAE,CAACyW,EAAE,OAAOzW,CAAC,CAAC,QAAC,CAAW,EAAEob,IAAL,GAASmB,GAAE,EAAG,EAAE9F,EAAE,IAAI,KAAKA,EAAE,IAAI,SAAQ,CAAE,CAAC,CAAC,SAASyG,IAAI,CAAC8B,GAAGzN,EAAE,UAAU,CAAC+J,GAAE,GAAI2B,GAAE,CAAE,CAAC,CAAC,CAAC,SAAS3B,IAAI,CAAC,IAAItb,EAAEib,GAAG,OAAOX,GAAGW,GAAG,GAAGjb,CAAC,CAAC,SAASid,IAAI,CAAC,IAAIjd,EAAEwW,EAAEC,EAAE,EAAG,MAAK,EAAEoE,GAAG,QAAQ,IAAI7a,EAAE6a,GAAGA,GAAG,CAAA,EAAGpE,EAAEzW,EAAE,OAAOwW,EAAE,EAAEA,EAAEC,EAAE,EAAED,EAAE,CAAC,IAAInI,EAAErO,EAAEwW,CAAC,EAAEnI,EAAE,CAAC,EAAE,MAAM,KAAKA,EAAE,CAAC,CAAC,CAAC,OAAQ,EAAEwM,GAAG,QAAQP,GAAGW,GAAG,EAAE,CAAC,SAASsB,IAAI,CAAC,QAAQvc,EAAEkc,EAAG1F,GAAG0F,EAAG,CAAA,EAAGlc,EAAE,QAAQ,SAASA,EAAE,CAACA,EAAE,KAAK,YAAY,KAAK,KAAKA,EAAE,OAAOA,CAAC,CAAC,CAAC,EAAEqa,GAAG,MAAM,CAAC,GAAG5D,EAAED,EAAE,OAAOC,GAAGD,EAAE,EAAEC,CAAC,EAAC,CAAE,CAAC,SAASgG,GAAGzc,EAAE,CAAC,OAAO,IAAImZ,EAAE6B,EAAG,GAAGhb,CAAC,CAAC,CAAC,SAAS+Y,GAAEtC,EAAEpI,EAAE,CAAC,IAAI+I,EAAE5b,EAAE,OAAO,UAAU,CAAC,IAAIwE,EAAEsb,GAAE,EAAG9E,EAAEhb,EAAE,GAAG,CAAC,OAAOmc,GAAEP,EAAE,EAAE,EAAEX,EAAE,MAAM,KAAK,SAAS,CAAC,OAAOzW,EAAE,CAACqO,GAAGA,EAAErO,CAAC,CAAC,QAAC,CAAQ2X,GAAEnB,EAAE,EAAE,EAAExW,GAAGid,GAAE,CAAE,CAAC,CAAC,CAAC/E,EAAEiB,EAAE,UAAU,CAAC,KAAKyB,GAAG,MAAM,SAAS5a,EAAEwW,EAAE,CAAC2F,GAAG,KAAK,IAAIE,GAAG,KAAK,KAAKrc,EAAEwW,EAAEhb,CAAC,CAAC,CAAC,EAAE,MAAM,SAASwE,EAAE,CAAC,IAAIwW,EAAEC,EAAE,OAAW,UAAU,SAAd,EAAqB,KAAK,KAAK,KAAKzW,CAAC,GAAGwW,EAAExW,EAAEyW,EAAE,UAAU,CAAC,EAAc,OAAOD,GAAnB,WAAqB,KAAK,KAAK,KAAK,SAASxW,EAAE,CAAC,OAAOA,aAAawW,EAAEC,EAAEgG,IAAIzc,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,SAASA,EAAE,CAAC,OAAOA,GAAGA,EAAE,OAAOwW,EAAEC,EAAEgG,IAAIzc,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,SAASwW,EAAE,CAAC,OAAO,KAAK,KAAK,SAASxW,EAAE,CAAC,OAAOmZ,EAAE,QAAQ3C,EAAC,CAAE,EAAE,KAAK,UAAU,CAAC,OAAOxW,CAAC,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOmZ,EAAE,QAAQ3C,EAAC,CAAE,EAAE,KAAK,UAAU,CAAC,OAAOiG,GAAGzc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,SAASqO,EAAE+I,EAAE,CAAC,IAAIjc,EAAE,KAAK,OAAOkT,EAAE,IAAI,IAAI8K,EAAE,SAASnZ,EAAEwW,EAAE,CAAC,IAAIC,EAAE,WAAW,UAAU,CAAC,OAAOD,EAAE,IAAI1W,GAAE,QAAQsX,CAAC,CAAC,CAAC,EAAE/I,CAAC,EAAElT,EAAE,KAAK6E,EAAEwW,CAAC,EAAE,QAAQ,aAAa,KAAK,KAAKC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAe,OAAO,OAApB,KAA4B,OAAO,aAAaG,EAAEuC,EAAE,UAAU,OAAO,YAAY,eAAe,EAAE5H,EAAE,IAAIqN,KAAK1G,EAAEiB,EAAE,CAAC,IAAI,UAAU,CAAC,IAAIhe,EAAEsb,GAAE,MAAM,KAAK,SAAS,EAAE,IAAIqI,EAAE,EAAE,OAAO,IAAI3F,EAAE,SAAS1C,EAAEpI,EAAE,CAAKlT,EAAE,SAAN,GAAcsb,EAAE,CAAA,CAAE,EAAE,IAAIW,EAAEjc,EAAE,OAAOA,EAAE,QAAQ,SAAS6E,EAAEwW,EAAE,CAAC,OAAO2C,EAAE,QAAQnZ,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC7E,EAAEqb,CAAC,EAAExW,EAAE,EAAEoX,GAAGX,EAAEtb,CAAC,CAAC,EAAEkT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,SAASoI,EAAE,CAAC,OAAOA,aAAa0C,EAAE1C,EAAEA,GAAe,OAAOA,EAAE,MAArB,WAA0B,IAAI0C,EAAE,SAASnZ,EAAEwW,EAAE,CAACC,EAAE,KAAKzW,EAAEwW,CAAC,CAAC,CAAC,EAAE,IAAI2C,EAAE6B,EAAG,GAAGvE,CAAC,CAAC,EAAE,OAAOgG,GAAG,KAAK,UAAU,CAAC,IAAIzc,EAAEyW,GAAE,MAAM,KAAK,SAAS,EAAE,IAAIqI,EAAE,EAAE,OAAO,IAAI3F,EAAE,SAAS3C,EAAEC,EAAE,CAACzW,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOmZ,EAAE,QAAQnZ,CAAC,EAAE,KAAKwW,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,OAAOjb,CAAC,EAAE,IAAI,SAASwE,EAAE,CAAC,OAAOxE,EAAEwE,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,OAAOod,EAAE,CAAC,EAAE,OAAO7f,GAAE,OAAOyhB,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC,OAAOtE,EAAE,EAAE,IAAI,SAAS1a,EAAE,CAAC0a,GAAG1a,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,OAAOmb,CAAE,EAAE,IAAI,SAASnb,EAAE,CAACmb,EAAGnb,CAAC,CAAC,EAAE,OAAO,SAAS,EAAEyW,EAAE,CAAC,OAAO,IAAI0C,EAAE,SAASnZ,EAAEwW,EAAE,CAAC,OAAOjZ,GAAE,SAASkZ,EAAEpI,EAAE,CAAC,IAAIrO,EAAExE,EAAEwE,EAAE,WAAW,CAAA,EAAGA,EAAE,YAAYqO,EAAErO,EAAE,SAASwa,GAAG,UAAU,CAAC,IAAIhE,EAAExW,EAAE,KAAKwW,EAAE,UAAU,CAAKxW,EAAE,WAAW,SAAjB,EAAwByW,EAAC,EAAGpI,EAAErO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAEqa,GAAG,KAAK,SAASra,GAAG,CAACwW,EAAC,EAAG6D,GAAG,OAAOA,GAAG,QAAQra,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAEob,GAAGV,GAAG,UAAU,CAAI,EAAEU,IAAL,GAASmB,GAAE,CAAE,EAAE,CAAA,CAAE,CAAC,EAAEvc,EAAE,QAAQ,EAAE,EAAC,CAAE,EAAEyW,EAAEzW,EAAEwW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE0E,KAAKA,GAAG,YAAYtE,EAAEuC,EAAE,aAAa,UAAU,CAAC,IAAInZ,EAAEyW,GAAE,MAAM,KAAK,SAAS,EAAE,IAAIqI,EAAE,EAAE,OAAO,IAAI3F,EAAE,SAAS1C,EAAE,CAAKzW,EAAE,SAAN,GAAcyW,EAAE,CAAA,CAAE,EAAE,IAAIpI,EAAErO,EAAE,OAAOoX,EAAE,IAAI,MAAM/I,CAAC,EAAErO,EAAE,QAAQ,SAASA,EAAEwW,EAAE,CAAC,OAAO2C,EAAE,QAAQnZ,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOoX,EAAEZ,CAAC,EAAE,CAAC,OAAO,YAAY,MAAMxW,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOoX,EAAEZ,CAAC,EAAE,CAAC,OAAO,WAAW,OAAOxW,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,EAAEqO,GAAGoI,EAAEW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE8D,GAAG,KAAkB,OAAO,eAApB,KAAoCtE,EAAEuC,EAAE,MAAM,UAAU,CAAC,IAAInZ,EAAEyW,GAAE,MAAM,KAAK,SAAS,EAAE,IAAIqI,EAAE,EAAE,OAAO,IAAI3F,EAAE,SAAS1C,EAAEpI,EAAE,CAAKrO,EAAE,SAAN,GAAcqO,EAAE,IAAI,eAAe,CAAA,CAAE,CAAC,EAAE,IAAI+I,EAAEpX,EAAE,OAAO7E,EAAE,IAAI,MAAMic,CAAC,EAAEpX,EAAE,QAAQ,SAASA,EAAEwW,EAAE,CAAC,OAAO2C,EAAE,QAAQnZ,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOyW,EAAEzW,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC7E,EAAEqb,CAAC,EAAExW,EAAE,EAAEoX,GAAG/I,EAAE,IAAI,eAAelT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE+f,GAAG,iBAAiB/B,EAAE,cAAc+B,GAAG,eAAe,IAAI/f,GAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE4hB,GAAG,EAAEC,GAAG,CAAA,EAAGG,GAAG,EAAEC,GAAG,EAAEsB,GAAG,EAAE,SAASnhB,GAAEyC,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,IAAI+I,EAAE5b,EAAEL,EAAE,OAAO,OAAOic,CAAC,EAAEZ,GAAGrb,EAAE,OAAOic,EAAEjc,EAAE,IAAI,EAAEA,EAAE,OAAO,GAAGA,EAAE,GAAG,EAAEujB,GAAGnN,EAAE,IAAIpW,EAAE,IAAI2f,GAAG,CAAC,QAAQ3B,EAAE,YAAY,CAAC,MAAMA,EAAE,aAAa,GAAG,SAAS,EAAE,EAAE,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,WAAWA,EAAE,WAAW,IAAIA,EAAE,IAAI,QAAQA,EAAE,QAAQ,OAAOA,EAAE,MAAM,EAAE,CAAA,EAAG3C,GAAG9B,EAAEvZ,EAAEqb,CAAC,EAAE,EAAEY,EAAE,IAAIjc,EAAE,SAAS,UAAU,CAAC,EAAE,KAAK,OAAO,KAAK,KAAK,OAAO,SAAQ,CAAE,EAAE6jB,GAAG7jB,EAAE6E,EAAEyW,EAAEpI,CAAC,GAAG,OAAWlT,EAAE,MAAN,GAAWA,EAAE,SAAQ,EAAGqb,CAAC,CAAC,SAASmI,IAAI,CAAC,OAAOxjB,GAAE,KAAKA,GAAE,GAAG,EAAE4hB,IAAI,EAAE5hB,GAAE,OAAOA,GAAE,QAAQihB,EAAGjhB,GAAE,EAAE,CAAC,SAASoO,IAAG,CAAC,MAAM,CAAC,CAACpO,GAAE,SAAY,EAAEA,GAAE,QAAP,IAAgBA,GAAE,GAAG,GAAGA,GAAE,OAAOA,GAAE,OAAOihB,EAAG,GAAG,CAAC,SAAS0C,GAAG9e,EAAE,CAAC,OAAO7E,GAAE,QAAQ6E,GAAGA,EAAE,cAAckb,IAAIyD,GAAE,EAAG3e,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOuJ,KAAIvJ,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOuJ,GAAC,EAAGwO,GAAE/X,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,SAAS6e,IAAI,CAAC,IAAI7e,EAAEgd,GAAGA,GAAG,OAAO,CAAC,EAAEA,GAAG,IAAG,EAAGrF,GAAE3X,EAAE,EAAE,CAAC,CAAC,SAAS2X,GAAE3X,EAAEwW,EAAE,CAAC,IAAIC,EAAEpI,EAAE+I,EAAE5b,GAAGgb,EAAE,CAACrb,GAAE,QAAQgiB,MAAMnd,IAAIxE,EAAE,CAAC2hB,IAAI,EAAEA,IAAInd,IAAIxE,IAAI,eAAegb,EAAE,SAASxW,EAAE,CAAC,EAAEod,GAAGjiB,GAAE,QAAW,EAAEA,GAAE,QAAP,IAAgBA,GAAE,OAAOA,GAAE,OAAOA,GAAE,GAAG,GAAG6hB,GAAG,KAAKxhB,CAAC,EAAEmc,GAAE3X,EAAE,EAAE,CAAC,EAAE,KAAK,KAAKA,CAAC,EAAE6e,EAAE,EAAE7e,IAAIxE,IAAIA,EAAEwE,EAAEoX,IAAI7F,IAAIA,EAAE,IAAIqN,GAAE,GAAI9D,MAAMrE,EAAElF,EAAE,IAAI,QAAQlD,EAAErO,EAAE,IAAIoX,EAAE,QAAQpX,EAAE,UAAU,OAAO,eAAe9B,EAAE,UAAUmQ,EAAE,WAAW,EAAEoI,EAAE,IAAIpI,EAAE,IAAIoI,EAAE,KAAKpI,EAAE,KAAKoI,EAAE,QAAQpI,EAAE,QAAQoI,EAAE,OAAOpI,EAAE,OAAOA,EAAE,aAAaoI,EAAE,WAAWpI,EAAE,YAAYA,EAAE,OAAOoI,EAAE,IAAIpI,EAAE,IAAI,CAAC,SAASuQ,IAAI,CAAC,IAAI5e,EAAE9B,EAAE,QAAQ,OAAO4c,GAAG,CAAC,QAAQ9a,EAAE,YAAY,OAAO,yBAAyB9B,EAAE,SAAS,EAAE,IAAI8B,EAAE,IAAI,KAAKA,EAAE,KAAK,WAAWA,EAAE,WAAW,IAAIA,EAAE,IAAI,QAAQA,EAAE,QAAQ,OAAOA,EAAE,MAAM,EAAE,EAAE,CAAC,SAASgf,GAAGhf,EAAEwW,EAAEC,EAAEpI,EAAE+I,EAAE,CAAC,IAAIjc,EAAEK,EAAE,GAAG,CAAC,OAAOmc,GAAE3X,EAAE,EAAE,EAAEwW,EAAEC,EAAEpI,EAAE+I,CAAC,CAAC,QAAC,CAAQO,GAAExc,EAAE,EAAE,CAAC,CAAC,CAAC,SAASgkB,GAAG3I,EAAEC,EAAEpI,EAAE+I,EAAE,CAAC,OAAkB,OAAOZ,GAAnB,WAAqBA,EAAE,UAAU,CAAC,IAAIxW,EAAExE,EAAE6S,GAAGsQ,GAAE,EAAGhH,GAAElB,EAAE,EAAE,EAAE,GAAG,CAAC,OAAOD,EAAE,MAAM,KAAK,SAAS,CAAC,QAAC,CAAQmB,GAAE3X,EAAE,EAAE,EAAEoX,GAAG,eAAe7N,EAAC,CAAC,CAAC,CAAC,CAAC,SAASwV,GAAG/e,EAAE,CAAC,UAAUkb,IAAQ/f,GAAE,SAAN,EAAiBgiB,KAAJ,EAAOnd,EAAC,EAAG,uBAAuBA,CAAC,EAAE,WAAWA,EAAE,CAAC,CAAC,EAAO,GAAG2a,IAAI,QAAQ,eAAe,IAApC,KAAwCgE,GAAGpV,GAAE6M,IAAG,IAAI2B,GAAEoB,EAAE,OAAW8F,GAAG,IAA2BhH,GAAE,oGAAoGmH,GAAG,mBAAmBE,GAAG,CAAA,EAAGE,GAAG,YAAYN,GAAG,WAAWG,GAAG,YAAY,SAASM,GAAG3f,EAAEwW,EAAE,CAAC,OAAOxW,EAAEwW,EAAE,UAAU,CAAC,OAAOxW,EAAE,MAAM,KAAK,SAAS,GAAGwW,EAAE,MAAM,KAAK,SAAS,CAAC,EAAExW,EAAEwW,CAAC,CAAC,IAAI+I,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAASG,GAAGlJ,EAAE,CAAC,OAAgB,OAAOA,GAAjB,UAAoB,KAAK,KAAKA,CAAC,EAAE,SAASxW,EAAE,CAAC,OAAOA,CAAC,EAAE,SAASA,EAAE,CAAC,OAAgBA,EAAEwW,CAAC,IAAZ,QAAeA,KAAKxW,GAAG,OAAOA,EAAE0hB,GAAG1hB,CAAC,GAAGwW,CAAC,EAAExW,CAAC,CAAC,CAAC,SAASggB,IAAI,CAAC,MAAMlgB,GAAE,KAAK,4GAA4G,CAAC,CAAC,SAAS4Y,GAAE1Y,EAAEwW,EAAE,CAAC,GAAG,CAAC,IAAIC,EAAEgJ,GAAGzf,CAAC,EAAEqO,EAAEoR,GAAGjJ,CAAC,EAAE,GAAGC,IAAIpI,EAAE,OAAgBoI,IAAV,QAAY,EAAYpI,IAAV,QAAY,GAAcoI,IAAX,SAAa,EAAapI,IAAX,SAAa,GAAcoI,IAAX,SAAa,EAAapI,IAAX,SAAa,GAAYoI,IAAT,OAAW,EAAWpI,IAAT,OAAW,IAAI,GAAG,OAAOoI,EAAC,CAAE,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,OAAOD,EAAExW,EAAE,EAAEA,EAAEwW,EAAE,GAAG,EAAE,IAAI,SAAS,QAAQY,EAAE6I,GAAGjgB,CAAC,EAAE7E,EAAE8kB,GAAGzJ,CAAC,EAAE9B,EAAE0C,EAAE,OAAOR,EAAEzb,EAAE,OAAOoW,EAAEmD,EAAEkC,EAAElC,EAAEkC,EAAED,EAAE,EAAEA,EAAEpF,EAAE,EAAEoF,EAAE,GAAGS,EAAET,CAAC,IAAIxb,EAAEwb,CAAC,EAAE,OAAOS,EAAET,CAAC,EAAExb,EAAEwb,CAAC,EAAE,GAAG,EAAE,OAAOjC,IAAIkC,EAAE,EAAElC,EAAEkC,EAAE,GAAG,EAAE,IAAI,QAAQ,QAAQzS,EAAEnE,EAAE9B,EAAEsY,EAAEmB,EAAExT,EAAE,OAAO0S,EAAE3Y,EAAE,OAAOuV,EAAEkE,EAAEd,EAAEc,EAAEd,EAAEtZ,EAAE,EAAEA,EAAEkW,EAAE,EAAElW,EAAE,CAAC,IAAIgM,EAAEmP,GAAEvU,EAAE5G,CAAC,EAAEW,EAAEX,CAAC,CAAC,EAAE,GAAOgM,IAAJ,EAAM,OAAOA,CAAC,CAAC,OAAOoO,IAAId,EAAE,EAAEc,EAAEd,EAAE,GAAG,CAAC,CAAC,MAAS,EAAE,MAAO,IAAG,CAAC,SAAS4I,GAAGzf,EAAE,CAAC,IAAIwW,EAAE,OAAOxW,EAAE,OAAgBwW,GAAV,WAAc,YAAY,OAAOxW,CAAC,IAAoBwW,EAAE+C,GAAGvZ,CAAC,KAAvB,eAA2B,SAASwW,CAAC,CAAC,SAASyJ,GAAGjgB,EAAE,CAAC,OAAOA,aAAa,WAAWA,EAAE,YAAY,OAAOA,CAAC,EAAE,IAAI,WAAWA,EAAE,OAAOA,EAAE,WAAWA,EAAE,UAAU,EAAE,IAAI,WAAWA,CAAC,CAAC,CAAC,SAAS+nB,GAAGvR,EAAEC,EAAEpI,EAAE,CAAC,IAAIrO,EAAEwW,EAAE,OAAO,OAAO,OAAOxW,GAAGyW,GAAG,EAAEpI,EAAE,cAAcoI,EAAEA,EAAE,OAAO,SAASzW,EAAEwW,EAAE,CAAC,MAAM,CAACnI,EAAE,SAASmI,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAIxW,EAAE,IAAI,SAASA,EAAE,CAAC,OAAAA,EAAEA,EAAE,aAAoByW,EAAED,EAAE,GAAG,MAAMxW,CAAC,EAAE,MAAM,GAAG,EAAE,MAAMyW,CAAC,EAAE,OAAM,EAAGD,EAAE,GAAG,MAAMxW,CAAC,EAAE,MAAK,CAAE,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOqO,CAAC,CAAC,GAAGA,CAAC,CAACsS,GAAG,UAAU,QAAQ,SAAS3gB,EAAE,CAAC,IAAIwW,EAAE,KAAK,WAAW,EAAE,GAAYA,EAAE,MAAX,OAAe,CAAC,IAAIC,EAAED,EAAE,IAAI,GAAGja,EAAEka,CAAC,EAAE,OAAO2B,EAAEA,EAAE,CAAA,EAAG7b,EAAEyD,CAAC,EAAEA,EAAE,CAAA,EAAG,EAAE,EAAEyW,CAAI,EAAE,OAAO,GAAa,OAAOA,GAAjB,SAAmB,OAAO,OAAOzW,CAAC,GAAG,GAAGyW,EAAE,GAAa,OAAOA,GAAjB,SAAmB,GAAG,CAAC,OAAO,OAAOzW,CAAC,EAAEyW,CAAC,MAAS,CAAC,OAAO,OAAO,CAAC,EAAEA,CAAC,CAAC,MAAM,IAAI,UAAU,gBAAgB,OAAOA,CAAC,CAAC,CAAC,CAAC,GAAYD,EAAE,SAAX,OAAkB,CAAC,IAAInI,EAAEmI,EAAE,OAAO,GAAGja,EAAE8R,CAAC,EAAE,OAAO9R,EAAEyD,CAAC,EAAEA,EAAE,OAAO,SAASA,EAAE,CAAC,MAAM,CAACqO,EAAE,SAASrO,CAAC,CAAC,CAAC,EAAE,KAAI,EAAG,CAAA,EAAG,GAAa,OAAOqO,GAAjB,SAAmB,OAAO,OAAOrO,CAAC,EAAEqO,EAAE,GAAa,OAAOA,GAAjB,SAAmB,GAAG,CAAC,OAAO,OAAOrO,CAAC,EAAEqO,CAAC,MAAS,CAAC,OAAO,OAAO,CAAC,EAAEA,CAAC,CAAC,MAAM,IAAI,UAAU,sBAAsB,OAAOA,CAAC,CAAC,CAAC,CAAC,OAAAoI,GAASA,EAAED,EAAE,gBAAX,KAA0B,OAAOC,EAAE,CAAC,EAASA,GAAa,OAAOzW,GAAjB,UAAoBA,EAAE,WAAWyW,CAAC,EAAED,EAAE,cAAc,CAAC,EAAExW,EAAE,UAAUyW,EAAE,MAAM,EAAEzW,CAAC,EAAE,IAAIqgB,GAAGM,GAAG,SAASA,GAAG3gB,EAAE,CAAC,KAAK,WAAW,EAAEA,CAAC,CAAC,SAAS+gB,GAAG/gB,EAAEwW,EAAE,CAAC,QAAQC,EAAElb,EAAEib,CAAC,EAAEnI,EAAEoI,EAAE,OAAOW,EAAE,GAAGjc,EAAE,EAAEA,EAAEkT,EAAE,EAAElT,EAAE,CAAC,IAAIuZ,EAAE+B,EAAEtb,CAAC,EAAEyb,EAAEJ,EAAE9B,CAAC,EAAEnD,EAAEoF,GAAE3W,EAAE0U,CAAC,EAAEkC,aAAayJ,IAAI1L,GAAE3U,EAAE0U,EAAEkC,EAAE,QAAQrF,CAAC,CAAC,EAAE6F,EAAE,IAAI7F,IAAIqF,IAAIjC,GAAE3U,EAAE0U,EAAEkC,CAAC,EAAEQ,EAAE,GAAG,CAAC,OAAOA,CAAC,CAAC/I,GAAE,UAAU,OAAO,SAASrO,EAAEqO,EAAEmI,EAAE,CAAC,IAAIC,EAAE,KAAK,KAAKjb,EAAE,MAAM4b,EAAE,KAAK,KAAKjc,EAAEgJ,IAAgB,OAAO,QAApB,KAA6B,QAAQ,YAAY,QAAQ,WAAW,UAAU,OAAoBnE,IAAb,WAAe,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,EAAE,SAAS0U,EAAE1U,EAAEwW,EAAEC,EAAE,CAAC,GAAGA,EAAE,OAAOW,CAAC,EAAE,OAAO/I,EAAEoI,EAAE,SAASA,CAAC,EAAE,MAAM,IAAI3W,GAAE,SAAS,SAASsX,EAAE,0BAA0B,CAAC,CAAC,IAAIR,EAAE0E,GAAE,EAAG,GAAG,CAAC,IAAI/J,EAAEkF,GAAGA,EAAE,GAAG,SAAS,KAAK,GAAG,OAAOA,IAAIjb,EAAE,MAAMib,EAAE,SAASzW,EAAE0U,EAAE8B,CAAC,EAAEjZ,GAAE,UAAU,CAAC,OAAOkZ,EAAE,SAASzW,EAAE0U,EAAE8B,CAAC,CAAC,EAAE,CAAC,MAAMC,EAAE,UAAUjb,EAAE,WAAWA,CAAC,CAAC,GAAE,SAASgb,EAAEC,EAAEpI,EAAE+I,EAAEjc,EAAE,CAAC,GAAGsb,EAAE,QAAQA,EAAE,OAAO,cAAcjb,EAAE,YAAYib,EAAE,MAAM,CAAC,IAAI/B,EAAE+B,EAAE,mBAAmBpI,EAAE+I,EAAEX,EAAE,SAAS,EAAE,GAAG,CAAC/B,EAAE,OAAM,EAAG+B,EAAE,OAAO,eAAe,CAAC,OAAOzW,EAAE,CAAC,OAAOA,EAAE,OAAO8nB,GAAG,cAAcrR,EAAE,OAAM,GAAI,EAAE,EAAEA,EAAE,OAAO,gBAAgB,QAAQ,KAAK,0BAA0B,EAAEA,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAEA,EAAE,OAAO,KAAK,UAAU,CAAC,OAAOD,EAAEC,EAAEpI,EAAE+I,EAAEjc,CAAC,CAAC,CAAC,GAAG4c,GAAE/X,CAAC,CAAC,CAAC,OAAO0U,EAAE,SAASrG,EAAE,SAASrO,EAAEwW,EAAE,CAAC,OAAOjZ,GAAE,UAAU,CAAC,OAAO/B,EAAE,MAAMkZ,EAAEvZ,EAAE6E,EAAEwW,EAAE9B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS1U,EAAE,CAAC,GAAiBqO,IAAd,YAAgB,GAAG,CAACqG,EAAE,SAAS,OAAM,CAAE,MAAS,CAAA,CAAE,OAAmBrG,IAAb,WAAerO,EAAE0U,EAAE,YAAY,KAAK,UAAU,CAAC,OAAO1U,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGyW,EAAE,OAAO,aAAa,OAAOsB,GAAE,IAAIjY,GAAE,eAAe2W,EAAE,OAAO,WAAW,CAAC,EAAE,GAAG,CAACA,EAAE,OAAO,cAAc,CAAC,GAAG,CAACA,EAAE,OAAO,SAAS,OAAOsB,GAAE,IAAIjY,GAAE,cAAc,EAAE2W,EAAE,OAAO,MAAML,EAAC,CAAC,CAAC,OAAOK,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,OAAOD,EAAEC,EAAEpI,EAAE+I,EAAEjc,CAAC,CAAC,CAAC,CAAC,GAAE,KAAK,GAAG6E,EAAE,CAAC,KAAK,IAAI,EAAE0U,CAAC,EAAE,OAAOvZ,IAAIoW,EAAE,aAAapW,EAAEoW,EAAEA,EAAE,MAAM,SAASvR,EAAE,CAAC,OAAO,QAAQ,MAAMA,CAAC,EAAE+X,GAAE/X,CAAC,CAAC,CAAC,GAAGuR,CAAC,QAAC,CAAQqF,GAAGqG,GAAE,CAAE,CAAC,EAAE5O,GAAE,UAAU,IAAI,SAASmI,EAAExW,EAAE,CAAC,IAAIyW,EAAE,KAAK,OAAOD,GAAGA,EAAE,cAAc,OAAO,KAAK,MAAMA,CAAC,EAAE,MAAMxW,CAAC,EAAQwW,GAAN,KAAQuB,GAAE,IAAIjY,GAAE,KAAK,iCAAiC,CAAC,EAAE,KAAK,OAAO,WAAW,SAASE,EAAE,CAAC,OAAOyW,EAAE,KAAK,IAAI,CAAC,MAAMzW,EAAE,IAAIwW,CAAC,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAOyW,EAAE,KAAK,QAAQ,KAAKzW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAKA,CAAC,CAAC,EAAEqO,GAAE,UAAU,MAAM,SAASlT,EAAE,CAAC,GAAa,OAAOA,GAAjB,SAAmB,OAAO,IAAI,KAAK,GAAG,YAAY,KAAKA,CAAC,EAAE,GAAGoB,EAAEpB,CAAC,EAAE,OAAO,IAAI,KAAK,GAAG,YAAY,KAAK,IAAI,OAAOA,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,IAAIsb,EAAElb,EAAEJ,CAAC,EAAE,GAAOsb,EAAE,SAAN,EAAa,OAAO,KAAK,MAAMA,EAAE,CAAC,CAAC,EAAE,OAAOtb,EAAEsb,EAAE,CAAC,CAAC,CAAC,EAAE,IAAIzW,EAAE,KAAK,OAAO,QAAQ,OAAO,KAAK,OAAO,OAAO,EAAE,OAAO,SAASwW,EAAE,CAAC,GAAGA,EAAE,UAAUC,EAAE,MAAM,SAASzW,EAAE,CAAC,MAAO,IAAGwW,EAAE,QAAQ,QAAQxW,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQA,EAAE,EAAEA,EAAEyW,EAAE,OAAO,EAAEzW,EAAE,GAAQyW,EAAE,QAAQD,EAAE,QAAQxW,CAAC,CAAC,IAA3B,GAA6B,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,SAASA,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,QAAQ,OAAOwW,EAAE,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,GAAGxW,GAAG,KAAK,GAAG,UAAUif,GAAG,OAAOzI,EAAExW,EAAE,QAAQ,MAAM,EAAEyW,EAAE,MAAM,EAAE,KAAK,MAAMD,CAAC,EAAE,OAAOA,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAO7E,EAAE6E,CAAC,CAAC,CAAC,CAAC,EAAE,CAACA,GAAGmE,IAAG,QAAQ,KAAK,aAAa,OAAO,KAAK,UAAUhJ,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,KAAK,wBAAwB,EAAE,mBAAmB,OAAOsb,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI/B,EAAE,KAAK,OAAO,UAAU,SAASkC,EAAE5W,EAAEwW,EAAE,CAAC,OAAWkC,GAAE1Y,EAAEwW,CAAC,IAAT,CAAU,CAAC,IAAIA,EAAEC,EAAE,OAAO,SAASzW,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAE,CAAC,EAAEA,EAAEA,EAAE,CAAC,EAAEqO,EAAEqG,EAAE8B,CAAC,EAAEY,EAAEjc,EAAEqb,CAAC,EAAE,MAAM,CAACC,GAAGpI,EAAEoI,GAAG,CAACpI,EAAEsR,GAAG3f,EAAEqO,GAAGA,EAAE,MAAM,SAASrO,EAAE,CAAC,OAAAA,EAAE2W,GAAE3W,EAAEwW,CAAC,EAASja,EAAEyD,CAAC,GAAGA,EAAE,KAAK,SAASA,EAAE,CAAC,OAAO4W,EAAEQ,EAAEpX,CAAC,CAAC,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAO4W,EAAEQ,EAAET,GAAE3W,EAAEwW,CAAC,CAAC,CAAC,CAAC,EAAExW,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAEqO,EAAEmI,EAAE,CAAC,EAAEA,EAAEA,EAAE,CAAC,EAAE,OAAOnI,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,OAAOlT,EAAEkT,EAAE,OAAO,CAAC,EAAE,OAAOmI,CAAC,EAAExW,EAAE,KAAK,OAAOwW,CAAC,EAAE,KAAK,MAAMC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAEpI,GAAE,UAAU,OAAO,SAASrO,EAAE,CAAC,OAAO,KAAK,aAAY,EAAG,IAAIA,CAAC,CAAC,EAAEqO,GAAE,UAAU,MAAM,SAASrO,EAAE,CAAC,OAAO,KAAK,aAAY,EAAG,MAAMA,CAAC,CAAC,EAAEqO,GAAE,UAAU,OAAO,SAASrO,EAAE,CAAC,OAAO,KAAK,aAAY,EAAG,OAAOA,CAAC,CAAC,EAAEqO,GAAE,UAAU,MAAM,SAASrO,EAAE,CAAC,OAAO,KAAK,aAAY,EAAG,MAAMA,CAAC,CAAC,EAAEqO,GAAE,UAAU,KAAK,SAASrO,EAAE,CAAC,OAAO,KAAK,aAAY,EAAG,KAAKA,CAAC,CAAC,EAAEqO,GAAE,UAAU,QAAQ,SAASrO,EAAE,CAAC,OAAO,KAAK,eAAe,QAAQA,CAAC,CAAC,EAAEqO,GAAE,UAAU,aAAa,UAAU,CAAC,OAAO,IAAI,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,YAAY,IAAI,CAAC,CAAC,EAAEA,GAAE,UAAU,QAAQ,SAASrO,EAAE,CAAC,OAAO,IAAI,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,YAAY,KAAKzD,EAAEyD,CAAC,EAAE,IAAI,OAAOA,EAAE,KAAK,GAAG,EAAE,GAAG,EAAEA,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,QAAQ,UAAU,CAAC,OAAO,KAAK,aAAY,EAAG,QAAO,CAAE,EAAEA,GAAE,UAAU,WAAW,SAASA,EAAE,CAAC,QAAQlT,EAAE,KAAK,GAAGuZ,EAAE,KAAK,KAAK0C,IAAI,KAAK,OAAO,YAAY/I,GAAG,qBAAqB2R,KAAK3R,GAAGrO,GAAG,CAAC,IAAIwW,EAAEY,EAAEX,EAAEzW,EAAE,GAAe,OAAOyW,GAAnB,YAA6BA,IAAP,KAAS,MAAM,IAAI,UAAU,uBAAuB,OAAOA,CAAC,EAAE,+BAA+B,EAAE,SAASpI,GAAG,CAAC,KAAK,YAAYmI,CAAC,CAAC,SAASY,GAAG,CAAC,OAAcpX,IAAP,MAAUA,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,OAAOghB,EAAExK,EAAEC,CAAC,EAAED,EAAE,UAAiBC,IAAP,KAAS,OAAO,OAAOA,CAAC,GAAGpI,EAAE,UAAUoI,EAAE,UAAU,IAAIpI,GAAG,OAAO,eAAe+I,EAAE,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAOjc,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAEic,EAAE,UAAU,MAAM,UAAU,CAAC,OAAO1C,CAAC,EAAE0C,CAAC,GAAG/I,CAAC,GAAG,IAAI,KAAKrO,EAAEqO,EAAE,UAAUrO,EAAEA,EAAE4Y,EAAE5Y,CAAC,EAAE,OAAO,oBAAoBA,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,OAAOoX,EAAE,IAAIpX,CAAC,CAAC,CAAC,EAAE,SAASwW,EAAExW,EAAE,CAAC,GAAG,CAACA,EAAE,OAAOA,EAAE,IAAIwW,EAAEC,EAAE,OAAO,OAAOpI,EAAE,SAAS,EAAE,IAAImI,KAAKxW,EAAE,GAAG,CAACoX,EAAE,IAAIZ,CAAC,EAAE,GAAG,CAACC,EAAED,CAAC,EAAExW,EAAEwW,CAAC,CAAC,MAAS,EAAE,OAAOC,CAAC,CAAC,OAAO,KAAK,OAAO,UAAU,KAAK,KAAK,QAAQ,YAAY,KAAK,OAAO,QAAQ,EAAE,KAAK,OAAO,SAASD,EAAE,KAAK,KAAK,UAAUA,CAAC,EAAEnI,CAAC,EAAEA,GAAE,UAAU,YAAY,UAAU,CAAC,OAAO,KAAK,WAAW,SAASrO,EAAE,CAAC0U,EAAE,KAAK1U,CAAC,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,IAAI,SAASmI,EAAEC,EAAE,CAAC,IAAIpI,EAAE,KAAKrO,EAAE,KAAK,OAAO,QAAQoX,EAAEpX,EAAE,KAAK7E,EAAE6E,EAAE,QAAQ0U,EAAE8B,EAAE,OAAOrb,GAAGic,IAAI1C,EAAEgL,GAAGvkB,CAAC,EAAEqb,CAAC,GAAG,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,OAAOqO,EAAE,KAAK,OAAO,CAAC,MAAMrO,EAAE,KAAK,MAAM,KAAWyW,GAAN,KAAQ,CAACA,CAAC,EAAE,KAAK,OAAO,CAAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS1U,EAAE,CAAC,OAAOA,EAAE,YAAYmZ,EAAE,OAAOnZ,EAAE,SAAS,CAAC,CAAC,EAAEA,EAAE,UAAU,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,GAAG7E,EAAE,GAAG,CAACwZ,GAAE6B,EAAErb,EAAE6E,CAAC,CAAC,MAAS,CAAA,CAAE,OAAOA,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,OAAO,SAASA,EAAE+I,EAAE,CAAC,IAAIjc,EAAE,KAAKuZ,EAAE,KAAK,OAAO,QAAQ,QAAQ,OAAO,KAAK,OAAO,YAAY,SAAS+B,EAAE,CAAC,OAAOtb,EAAE,KAAK,IAAI,CAAC,MAAMsb,EAAE,IAAIpI,CAAC,CAAC,EAAE,KAAK,SAASmI,EAAE,CAAC,IAAIxW,EAAQwW,GAAI,CAAA,EAAG,OAAOuK,GAAG/gB,EAAEoX,CAAC,EAAE1C,GAAGC,GAAE3U,EAAE0U,EAAErG,CAAC,EAAElT,EAAE,KAAK,OAAO,CAAC,MAAMsb,EAAE,KAAK,MAAM,OAAO,CAACzW,CAAC,EAAE,KAAK,CAACqO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,KAAK,CAACA,CAAC,EAAE,YAAY,CAAC+I,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASpX,EAAE,CAAC,OAAOA,EAAE,YAAYmZ,EAAE,OAAOnZ,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAACwW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEnI,GAAE,UAAU,OAAO,SAASrO,EAAEwW,EAAE,CAAC,OAAgB,OAAOxW,GAAjB,UAAoBzD,EAAEyD,CAAC,EAAE,KAAK,MAAM,KAAK,EAAE,OAAOA,CAAC,EAAE,OAAOwW,CAAC,GAAYxW,EAAE2W,GAAE3W,EAAE,KAAK,OAAO,QAAQ,OAAO,KAA3C,OAA8C+X,GAAE,IAAIjY,GAAE,gBAAgB,+CAA+C,CAAC,EAAE,KAAK,MAAM,KAAK,EAAE,OAAOE,CAAC,EAAE,OAAOwW,CAAC,CAAC,EAAEnI,GAAE,UAAU,IAAI,SAASmI,EAAEC,EAAE,CAAC,IAAIpI,EAAE,KAAKrO,EAAE,KAAK,OAAO,QAAQoX,EAAEpX,EAAE,KAAK7E,EAAE6E,EAAE,QAAQ0U,EAAE8B,EAAE,OAAOrb,GAAGic,IAAI1C,EAAEgL,GAAGvkB,CAAC,EAAEqb,CAAC,GAAG,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,OAAOqO,EAAE,KAAK,OAAO,CAAC,MAAMrO,EAAE,KAAK,MAAM,OAAO,CAAC0U,CAAC,EAAE,KAAW+B,GAAN,KAAQ,CAACA,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,SAASzW,EAAE,CAAC,OAAOA,EAAE,YAAYmZ,EAAE,OAAOnZ,EAAE,SAAS,CAAC,CAAC,EAAEA,EAAE,UAAU,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,GAAG7E,EAAE,GAAG,CAACwZ,GAAE6B,EAAErb,EAAE6E,CAAC,CAAC,MAAS,CAAA,CAAE,OAAOA,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,OAAO,SAASmI,EAAE,CAAC,IAAIC,EAAE,KAAK,OAAO,KAAK,OAAO,YAAY,SAASzW,EAAE,CAAC,OAAOyW,EAAE,KAAK,OAAO,CAAC,MAAMzW,EAAE,KAAK,SAAS,KAAK,CAACwW,CAAC,CAAC,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAO+nB,GAAGtR,EAAE,CAACD,CAAC,EAAExW,CAAC,CAAC,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAYmZ,EAAE,OAAOnZ,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,MAAM,UAAU,CAAC,IAAImI,EAAE,KAAK,OAAO,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,OAAOwW,EAAE,KAAK,OAAO,CAAC,MAAMxW,EAAE,KAAK,cAAc,MAAMuf,EAAE,CAAC,EAAE,KAAK,SAASvf,EAAE,CAAC,OAAO+nB,GAAGvR,EAAE,KAAKxW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAYmZ,EAAE,OAAOnZ,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAEqO,GAAE,UAAU,QAAQ,SAASmI,EAAE,CAAC,IAAIC,EAAE,KAAK,OAAO,KAAK,OAAO,WAAW,SAASzW,EAAE,CAAC,OAAOyW,EAAE,KAAK,QAAQ,CAAC,KAAKD,EAAE,MAAMxW,CAAC,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOA,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOyW,EAAE,KAAK,QAAQ,KAAKzW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEqO,GAAE,UAAU,QAAQ,SAAS,EAAErO,EAAEwW,EAAE,CAAC,IAAIrb,EAAE,KAAKuZ,EAAE,MAAM,QAAQ1U,CAAC,EAAEA,EAAE,OAAO4W,GAAGJ,EAAEA,IAAI9B,EAAE,OAAO1U,IAAIwW,EAAE,QAAQ,OAAO,OAAO,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,IAAIwW,EAAErb,EAAE,OAAO,QAAQsb,EAAED,EAAE,KAAKA,EAAEA,EAAE,QAAQ,GAAGA,GAAG9B,EAAE,MAAM,IAAI5U,GAAE,gBAAgB,8DAA8D,EAAE,GAAG4U,GAAGA,EAAE,SAAS,EAAE,OAAO,MAAM,IAAI5U,GAAE,gBAAgB,sDAAsD,EAAE,IAAIuO,EAAE,EAAE,OAAOoI,EAAED,GAAGC,EAAE,EAAE,IAAIiJ,GAAGlJ,CAAC,CAAC,EAAE,EAAE,OAAOrb,EAAE,KAAK,OAAO,CAAC,MAAM6E,EAAE,KAAK,MAAM,KAAK0U,EAAE,OAAO+B,EAAE,YAAYG,CAAC,CAAC,EAAE,KAAK,SAAS5W,EAAE,CAAC,IAAIwW,EAAExW,EAAE,YAAYyW,EAAEzW,EAAE,SAAS,GAAOwW,IAAJ,EAAM,OAAOI,EAAE5W,EAAE,QAAQA,EAAE,WAAW,MAAM,IAAIia,GAAG,GAAG,OAAO9e,EAAE,KAAK,cAAc,EAAE,OAAOqb,EAAE,MAAM,EAAE,OAAOnI,EAAE,oBAAoB,EAAEoI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEpI,GAAE,UAAU,QAAQ,SAAS,EAAErO,EAAEwW,EAAE,CAAC,IAAIrb,EAAE,KAAKuZ,EAAE,MAAM,QAAQ1U,CAAC,EAAEA,EAAE,OAAO4W,GAAGJ,EAAEA,IAAI9B,EAAE,OAAO1U,IAAIwW,EAAE,QAAQ,OAAO,OAAO,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,IAAIwW,EAAErb,EAAE,OAAO,QAAQsb,EAAED,EAAE,KAAKA,EAAEA,EAAE,QAAQ,GAAGA,GAAG9B,EAAE,MAAM,IAAI5U,GAAE,gBAAgB,8DAA8D,EAAE,GAAG4U,GAAGA,EAAE,SAAS,EAAE,OAAO,MAAM,IAAI5U,GAAE,gBAAgB,sDAAsD,EAAE,IAAIuO,EAAE,EAAE,OAAOoI,EAAED,GAAGC,EAAE,EAAE,IAAIiJ,GAAGlJ,CAAC,CAAC,EAAE,EAAE,OAAOrb,EAAE,KAAK,OAAO,CAAC,MAAM6E,EAAE,KAAK,MAAM,KAAK0U,EAAE,OAAO+B,EAAE,YAAYG,CAAC,CAAC,EAAE,KAAK,SAAS5W,EAAE,CAAC,IAAIwW,EAAExW,EAAE,YAAYyW,EAAEzW,EAAE,SAAS,GAAOwW,IAAJ,EAAM,OAAOI,EAAE5W,EAAE,QAAQA,EAAE,WAAW,MAAM,IAAIia,GAAG,GAAG,OAAO9e,EAAE,KAAK,cAAc,EAAE,OAAOqb,EAAE,MAAM,EAAE,OAAOnI,EAAE,oBAAoB,EAAEoI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEpI,GAAE,UAAU,WAAW,SAASmI,EAAE,CAAC,IAAImB,EAAE,KAAKlB,EAAE,KAAK,KAAKpI,EAAEmI,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOA,EAAE,GAAG,CAAC,EAAEoX,EAAEZ,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOA,EAAE,OAAO,CAAC,EAAE6W,EAAE,CAAA,EAAG,OAAO,KAAK,OAAO,YAAY,SAAS7W,EAAE,CAAC,OAAOyW,EAAE,QAAQ,CAAC,MAAMzW,EAAE,KAAKqO,EAAE,MAAM,OAAO,CAAC,EAAE,KAAK,SAASsI,EAAE,CAAC,IAAIxS,EAAE,CAAA,EAAGjG,EAAE,CAAA,EAAGqT,GAAGiF,EAAE,QAAQ,SAASxW,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAE,IAAIqO,EAAErO,EAAE,QAAQoX,EAAET,EAAEH,CAAC,EAAE,GAAGY,EAAE,CAAC,QAAQjc,EAAE,EAAEuZ,EAAE,OAAO,KAAKrG,CAAC,EAAElT,EAAEuZ,EAAE,OAAOvZ,IAAI,CAAC,IAAIyb,EAAElC,EAAEvZ,CAAC,EAAEoW,EAAElD,EAAEuI,CAAC,EAAE,GAAGA,IAAIe,EAAE,OAAO,QAAQ,SAAS,GAAOe,GAAEnH,EAAEkF,CAAC,IAAT,EAAW,MAAM,IAAI3W,GAAE,WAAW,2CAA2C,OAAO6U,GAAEyC,EAAER,EAAErF,CAAC,CAAC,CAACsF,EAAE,KAAKL,CAAC,EAAErS,EAAE,KAAKsS,CAAC,EAAEvY,EAAE,KAAKkZ,CAAC,CAAC,CAAC,CAAC,EAAEjT,EAAE,QAAQ,OAAOsS,EAAE,OAAO,CAAC,MAAMzW,EAAE,KAAK,MAAM,KAAKmE,EAAE,OAAOjG,EAAE,QAAQ,CAAC,KAAKmQ,EAAE,YAAY+I,CAAC,CAAC,CAAC,EAAE,KAAK,SAASpX,EAAE,CAAC,IAAIwW,EAAExW,EAAE,YAAYyW,EAAEzW,EAAE,SAAS,GAAOwW,IAAJ,EAAM,OAAOjF,EAAE,QAAQlD,EAAE,EAAE+I,EAAE,OAAO,KAAKX,CAAC,EAAEpI,EAAE+I,EAAE,OAAO/I,IAAI,CAAC,IAAIlT,EAAEuZ,EAAE0C,EAAE/I,CAAC,EAAEuI,EAAEC,EAAE,OAAOnC,CAAC,CAAC,EAAQkC,GAAN,OAAUzb,EAAEsb,EAAE/B,CAAC,EAAE,OAAO+B,EAAE/B,CAAC,EAAE+B,EAAEG,CAAC,EAAEzb,EAAE,CAAC,MAAM,IAAI8e,GAAG,GAAG,OAAOtC,EAAE,KAAK,iBAAiB,EAAE,OAAOnB,EAAE,MAAM,EAAE,OAAOjF,EAAE,oBAAoB,EAAEkF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEpI,GAAE,UAAU,WAAW,SAASmI,EAAE,CAAC,IAAInI,EAAE,KAAK+I,EAAEZ,EAAE,OAAO,OAAO,KAAK,OAAO,YAAY,SAASxW,EAAE,CAAC,OAAOqO,EAAE,KAAK,OAAO,CAAC,MAAMrO,EAAE,KAAK,SAAS,KAAKwW,CAAC,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAO+nB,GAAG1Z,EAAEmI,EAAExW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,IAAIwW,EAAExW,EAAE,YAAYyW,EAAEzW,EAAE,SAAS,GAAOwW,IAAJ,EAAM,OAAOxW,EAAE,WAAW,MAAM,IAAIia,GAAG,GAAG,OAAO5L,EAAE,KAAK,iBAAiB,EAAE,OAAOmI,EAAE,MAAM,EAAE,OAAOY,EAAE,oBAAoB,EAAEX,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIsJ,GAAG1R,GAAE,SAASA,IAAG,EAAE,SAAS2Z,GAAG,EAAE,CAAC,SAASxR,EAAExW,EAAEwW,EAAE,CAAC,GAAGA,EAAE,CAAC,QAAQC,EAAE,UAAU,OAAOpI,EAAE,IAAI,MAAMoI,EAAE,CAAC,EAAE,EAAEA,GAAGpI,EAAEoI,EAAE,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAO/B,EAAE1U,CAAC,EAAE,UAAU,MAAM,KAAKqO,CAAC,EAAE,CAAC,CAAC,GAAa,OAAOrO,GAAjB,SAAmB,OAAO0U,EAAE1U,CAAC,CAAC,CAAC,IAAI0U,EAAE,CAAA,EAAG8B,EAAE,aAAaI,EAAE,QAAQ5W,EAAE,EAAEyW,EAAE,UAAU,OAAOzW,EAAEyW,EAAE,EAAEzW,EAAE4W,EAAE,UAAU5W,CAAC,CAAC,EAAE,OAAOwW,EAAE,SAASI,EAAE5W,EAAEyW,EAAEpI,EAAE,CAAC,IAAI+I,EAAEjc,EAAE,GAAa,OAAO6E,GAAjB,SAAmB,OAAOyW,EAAEA,GAAGsE,GAAG5f,EAAE,CAAC,YAAY,CAAA,EAAG,KAAKkT,EAAEA,GAAG+H,GAAE,UAAU,SAASpW,EAAE,CAAM7E,EAAE,YAAY,QAAQ6E,CAAC,SAAI7E,EAAE,YAAY,KAAK6E,CAAC,EAAE7E,EAAE,KAAKsb,EAAEtb,EAAE,KAAK6E,CAAC,EAAE,EAAE,YAAY,SAASwW,EAAE,CAACrb,EAAE,YAAYA,EAAE,YAAY,OAAO,SAAS6E,EAAE,CAAC,OAAOA,IAAIwW,CAAC,CAAC,EAAErb,EAAE,KAAKA,EAAE,YAAY,OAAOsb,EAAEpI,CAAC,CAAC,CAAC,EAAEqG,EAAE1U,CAAC,EAAEwW,EAAExW,CAAC,EAAE7E,EAAEI,EAAE6b,EAAEpX,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIwW,EAAEY,EAAEpX,CAAC,EAAE,GAAGzD,EAAEia,CAAC,EAAEI,EAAE5W,EAAEoX,EAAEpX,CAAC,EAAE,CAAC,EAAEoX,EAAEpX,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAYwW,IAAT,OAAW,MAAM,IAAI1W,GAAE,gBAAgB,sBAAsB,EAAE,IAAI2W,EAAEG,EAAE5W,EAAEga,GAAG,UAAU,CAAC,QAAQha,EAAE,UAAU,OAAOwW,EAAE,IAAI,MAAMxW,CAAC,EAAEA,KAAKwW,EAAExW,CAAC,EAAE,UAAUA,CAAC,EAAEyW,EAAE,YAAY,QAAQ,SAASzW,EAAE,CAACuhB,GAAE,UAAU,CAACvhB,EAAE,MAAM,KAAKwW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASyR,GAAGjoB,EAAEwW,EAAE,CAAC,OAAO0C,EAAE1C,CAAC,EAAE,KAAK,CAAC,UAAUxW,CAAC,CAAC,EAAEwW,CAAC,CAAC,SAAS2J,GAAGngB,EAAEwW,EAAE,CAAC,MAAM,EAAExW,EAAE,QAAQA,EAAE,WAAWA,EAAE,MAAMwW,EAAExW,EAAE,UAAU,CAACA,EAAE,aAAa,CAAC,SAASwgB,GAAGxgB,EAAEwW,EAAE,CAACxW,EAAE,OAAO2f,GAAG3f,EAAE,OAAOwW,CAAC,CAAC,CAAC,SAASqJ,GAAG7f,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAErO,EAAE,aAAaA,EAAE,aAAaqO,EAAE,UAAU,CAAC,OAAOsR,GAAGtR,EAAC,EAAGmI,EAAC,CAAE,CAAC,EAAEA,EAAExW,EAAE,UAAUyW,GAAG,CAACpI,CAAC,CAAC,SAAS6R,GAAGlgB,EAAEwW,EAAE,CAAC,GAAGxW,EAAE,UAAU,OAAOwW,EAAE,WAAW,IAAIC,EAAED,EAAE,kBAAkBxW,EAAE,KAAK,EAAE,GAAGyW,EAAE,OAAOA,EAAE,MAAM,IAAI3W,GAAE,OAAO,WAAWE,EAAE,MAAM,oBAAoBwW,EAAE,KAAK,iBAAiB,CAAC,CAAC,SAAS+J,GAAGvgB,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE6R,GAAGlgB,EAAEwW,EAAE,MAAM,EAAE,OAAOA,EAAE,WAAW,CAAC,MAAMC,EAAE,OAAO,CAACzW,EAAE,SAAS,QAAiBA,EAAE,MAAX,OAAe,OAAO,CAAC,CAACA,EAAE,OAAO,MAAM,CAAC,MAAMqO,EAAE,MAAMrO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS8f,GAAG9f,EAAE7E,EAAEqb,EAAEC,EAAE,CAAC,IAAI/B,EAAErG,EAAEuI,EAAE5W,EAAE,aAAa2f,GAAG3f,EAAE,OAAOA,EAAE,aAAY,CAAE,EAAEA,EAAE,OAAO,OAAOA,EAAE,IAAI0U,EAAE,GAAGrG,EAAE,SAASrO,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE+I,EAAER,GAAG,CAACA,EAAEJ,EAAEC,EAAE,SAASzW,EAAE,CAAC,OAAOwW,EAAE,KAAKxW,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOwW,EAAE,KAAKxW,CAAC,CAAC,CAAC,KAA8BoX,EAAE,IAAI/I,EAAEmI,EAAE,cAApC,yBAAmDY,EAAE,GAAG,IAAI,WAAW/I,CAAC,GAAGuJ,EAAElD,EAAE0C,CAAC,KAAK1C,EAAE0C,CAAC,EAAE,GAAGjc,EAAE6E,EAAEwW,EAAEC,CAAC,EAAE,EAAE,QAAQ,IAAI,CAACzW,EAAE,GAAG,SAASqO,EAAEmI,CAAC,EAAE0R,GAAG3H,GAAGvgB,EAAEyW,EAAED,CAAC,EAAExW,EAAE,UAAUqO,EAAE,CAACrO,EAAE,UAAUA,EAAE,WAAW,CAAC,CAAC,GAAGkoB,GAAG3H,GAAGvgB,EAAEyW,EAAED,CAAC,EAAEmJ,GAAG3f,EAAE,UAAU4W,CAAC,EAAEzb,EAAE,CAAC6E,EAAE,UAAUA,EAAE,WAAW,CAAC,CAAC,SAASkoB,GAAGloB,EAAEqO,EAAE+I,EAAEjc,EAAE,CAAC,IAAIuZ,EAAEqE,GAAE5d,EAAE,SAAS6E,EAAEwW,EAAEC,EAAE,CAAC,OAAOW,EAAEjc,EAAE6E,CAAC,EAAEwW,EAAEC,CAAC,CAAC,EAAEW,CAAC,EAAE,OAAOpX,EAAE,KAAK,SAASyW,EAAE,CAAC,GAAGA,EAAE,OAAOA,EAAE,MAAM,UAAU,CAAC,IAAID,EAAE,UAAU,CAAC,OAAOC,EAAE,SAAQ,CAAE,EAAEpI,GAAG,CAACA,EAAEoI,EAAE,SAASzW,EAAE,CAAC,OAAOwW,EAAExW,CAAC,EAAE,SAASA,EAAE,CAACyW,EAAE,KAAKzW,CAAC,EAAEwW,EAAEJ,EAAC,EAAE,SAASpW,EAAE,CAACyW,EAAE,KAAKzW,CAAC,EAAEwW,EAAEJ,EAAC,CAAC,GAAG1B,EAAE+B,EAAE,MAAMA,EAAE,SAASzW,EAAE,CAAC,OAAOwW,EAAExW,CAAC,CAAC,EAAEwW,EAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAACY,GAAE,UAAU,MAAM,SAASpX,EAAEwW,EAAE,CAAC,IAAIC,EAAE,KAAK,KAAK,OAAOA,EAAE,MAAMA,EAAE,MAAM,OAAO,KAAKsB,GAAE,KAAK,KAAKtB,EAAE,KAAK,CAAC,EAAEA,EAAE,MAAM,OAAO,WAAWzW,CAAC,EAAE,KAAKwW,CAAC,CAAC,EAAEY,GAAE,UAAU,OAAO,SAASpX,EAAE,CAAC,IAAIwW,EAAE,KAAK,KAAK,OAAOA,EAAE,MAAMA,EAAE,MAAM,OAAO,KAAKuB,GAAE,KAAK,KAAKvB,EAAE,KAAK,CAAC,EAAEA,EAAE,MAAM,OAAO,YAAYxW,EAAE,QAAQ,CAAC,EAAEoX,GAAE,UAAU,cAAc,SAASpX,EAAE,CAAC,IAAIwW,EAAE,KAAK,KAAKA,EAAE,UAAUmJ,GAAGnJ,EAAE,UAAUxW,CAAC,CAAC,EAAEoX,GAAE,UAAU,SAAS,SAASpX,EAAEwW,EAAE,CAAC,OAAOsJ,GAAG,KAAK,KAAK9f,EAAEwW,EAAE,KAAK,KAAK,MAAM,IAAI,CAAC,EAAEY,GAAE,UAAU,MAAM,SAASpX,EAAE,CAAC,IAAIwW,EAAE,OAAO,OAAO,KAAK,YAAY,SAAS,EAAEC,EAAE,OAAO,OAAO,KAAK,IAAI,EAAE,OAAOzW,GAAG0U,EAAE+B,EAAEzW,CAAC,EAAEwW,EAAE,KAAKC,EAAED,CAAC,EAAEY,GAAE,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,YAAY,KAAK,IAAI,EAAEA,GAAE,UAAU,KAAK,SAASZ,EAAE,CAAC,IAAIC,EAAE,KAAK,KAAK,OAAO,KAAK,MAAM,SAASzW,EAAE,CAAC,OAAO8f,GAAGrJ,EAAED,EAAExW,EAAEyW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAEW,GAAE,UAAU,MAAM,SAASpX,EAAE,CAAC,IAAIoX,EAAE,KAAK,OAAO,KAAK,MAAM,SAASpX,EAAE,CAAC,IAAIwW,EAAEC,EAAEW,EAAE,KAAK/I,EAAEoI,EAAE,MAAM,KAAK,OAAO0J,GAAG1J,EAAE,EAAE,EAAEpI,EAAE,MAAM,CAAC,MAAMrO,EAAE,MAAM,CAAC,MAAMkgB,GAAGzJ,EAAEpI,EAAE,MAAM,EAAE,MAAMoI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,SAASzW,EAAE,CAAC,OAAO,KAAK,IAAIA,EAAEyW,EAAE,KAAK,CAAC,CAAC,GAAGD,EAAE,EAAEsJ,GAAGrJ,EAAE,UAAU,CAAC,MAAM,EAAED,EAAE,EAAE,EAAExW,EAAEqO,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOmI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAKxW,CAAC,CAAC,EAAEoX,GAAE,UAAU,OAAO,SAASpX,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAE,MAAM,GAAG,EAAE,UAAUqO,EAAEoI,EAAE,CAAC,EAAEW,EAAEX,EAAE,OAAO,EAAE,SAAStb,EAAE6E,EAAEwW,EAAE,CAAC,OAAOA,EAAErb,EAAE6E,EAAEyW,EAAED,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAExW,EAAEqO,CAAC,CAAC,CAAC,IAAIqG,EAAW,KAAK,KAAK,MAAnB,OAAuB,EAAE,GAAG,SAASkC,EAAE5W,EAAEwW,EAAE,CAAC,OAAOkC,GAAEvd,EAAE6E,EAAEoX,CAAC,EAAEjc,EAAEqb,EAAEY,CAAC,CAAC,EAAE1C,CAAC,CAAC,OAAO,KAAK,QAAQ,SAAS1U,EAAE,CAAC,OAAOA,EAAE,KAAK4W,CAAC,CAAC,CAAC,EAAE,KAAKJ,CAAC,CAAC,EAAEY,GAAE,UAAU,QAAQ,SAASpX,EAAE,CAAC,IAAI7E,EAAE,KAAK,OAAO,KAAK,MAAM,SAAS6E,EAAE,CAAC,IAAIwW,EAAEC,EAAEpI,EAAE+I,EAAEjc,EAAE,KAAK,OAAeic,EAAE,MAAX,QAAgB+I,GAAG/I,EAAE,EAAE,GAAG,EAAEA,EAAE,OAAOZ,EAAEY,EAAE,YAAYX,EAAEyJ,GAAG9I,EAAEA,EAAE,MAAM,KAAK,MAAM,EAAEA,EAAE,MAAM,KAAK,MAAM,CAAC,MAAMpX,EAAE,MAAMoX,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAMX,EAAE,MAAMW,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,SAASpX,EAAE,CAAC,OAAAA,EAAEA,EAAE,OAAcwW,EAAExW,EAAE,IAAIwW,CAAC,EAAExW,CAAC,CAAC,IAAIqO,EAAE,CAAA,EAAGyR,GAAG1I,EAAE,SAASpX,EAAE,CAAC,OAAOqO,EAAE,KAAKrO,CAAC,CAAC,EAAEA,EAAEoX,EAAE,MAAM,IAAI,EAAE,KAAK,UAAU,CAAC,OAAO/I,CAAC,CAAC,EAAE,EAAErO,CAAC,CAAC,EAAEoX,GAAE,UAAU,OAAO,SAASZ,EAAE,CAAC,IAAIxW,EAAE,KAAK,KAAK,OAAOwW,GAAG,IAAIxW,EAAE,QAAQwW,EAAE2J,GAAGngB,CAAC,EAAE6f,GAAG7f,EAAE,UAAU,CAAC,IAAIyW,EAAED,EAAE,OAAO,SAASxW,EAAEwW,EAAE,CAAC,OAAWC,IAAJ,IAAYA,IAAJ,EAAM,EAAEA,EAAED,EAAE,UAAU,CAACxW,EAAE,QAAQyW,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEoJ,GAAG7f,EAAE,UAAU,CAAC,IAAIA,EAAEwW,EAAE,OAAO,UAAU,CAAC,MAAM,EAAExW,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAEoX,GAAE,UAAU,MAAM,SAASpX,EAAE,CAAC,OAAO,KAAK,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,MAAMA,CAAC,EAAE6f,GAAG,KAAK,KAAK,UAAU,CAAC,IAAIxR,EAAErO,EAAE,OAAO,SAASA,EAAEwW,EAAEC,EAAE,CAAC,MAAM,EAAEpI,GAAG,GAAGmI,EAAEC,CAAC,EAAE,GAAGpI,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE+I,GAAE,UAAU,MAAM,SAAS/I,EAAE+I,EAAE,CAAC,OAAOoJ,GAAG,KAAK,KAAK,SAASxgB,EAAEwW,EAAEC,EAAE,CAAC,MAAM,CAACpI,EAAErO,EAAE,KAAK,IAAIwW,EAAEC,CAAC,EAAEW,EAAE,CAAC,EAAE,IAAI,EAAEA,GAAE,UAAU,MAAM,SAASpX,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,OAAOA,EAAE,CAAC,CAAC,CAAC,EAAE,KAAKA,CAAC,CAAC,EAAEoX,GAAE,UAAU,KAAK,SAASpX,EAAE,CAAC,OAAO,KAAK,QAAO,EAAG,MAAMA,CAAC,CAAC,EAAEoX,GAAE,UAAU,OAAO,SAASZ,EAAE,CAAC,IAAIxW,EAAE,OAAOwgB,GAAG,KAAK,KAAK,SAASxgB,EAAE,CAAC,OAAOwW,EAAExW,EAAE,KAAK,CAAC,CAAC,GAAGA,EAAE,KAAK,MAAM,QAAQ2f,GAAG3f,EAAE,QAAQwW,CAAC,EAAE,IAAI,EAAEY,GAAE,UAAU,IAAI,SAASpX,EAAE,CAAC,OAAO,KAAK,OAAOA,CAAC,CAAC,EAAEoX,GAAE,UAAU,GAAG,SAASpX,EAAE,CAAC,OAAO,IAAI,KAAK,GAAG,YAAY,KAAK,KAAK,MAAMA,EAAE,IAAI,CAAC,EAAEoX,GAAE,UAAU,QAAQ,UAAU,CAAC,OAAO,KAAK,KAAK,IAAa,KAAK,KAAK,MAAnB,OAAuB,OAAO,OAAO,KAAK,oBAAoB,KAAK,mBAAmB,KAAK,KAAK,GAAG,EAAE,IAAI,EAAEA,GAAE,UAAU,KAAK,UAAU,CAAC,OAAO,KAAK,QAAO,CAAE,EAAEA,GAAE,UAAU,QAAQ,SAASX,EAAE,CAAC,IAAIzW,EAAE,KAAK,KAAK,OAAOA,EAAE,SAAS,CAACA,EAAE,QAAQ,KAAK,KAAK,SAASA,EAAEwW,EAAE,CAACC,EAAED,EAAE,IAAIA,CAAC,CAAC,CAAC,CAAC,EAAEY,GAAE,UAAU,cAAc,SAASpX,EAAE,CAAC,OAAO,KAAK,KAAK,OAAO,SAAS,KAAK,QAAQA,CAAC,CAAC,EAAEoX,GAAE,UAAU,eAAe,SAASX,EAAE,CAAC,IAAIzW,EAAE,KAAK,KAAK,OAAOA,EAAE,SAAS,CAACA,EAAE,QAAQ,KAAK,KAAK,SAASA,EAAEwW,EAAE,CAACC,EAAED,EAAE,WAAWA,CAAC,CAAC,CAAC,CAAC,EAAEY,GAAE,UAAU,KAAK,SAASpX,EAAE,CAAC,IAAIwW,EAAE,KAAK,KAAKC,GAAGD,EAAE,SAAS,CAACA,EAAE,QAAQ,CAAA,GAAI,OAAO,KAAK,KAAK,SAASxW,EAAEwW,EAAE,CAACC,EAAE,KAAKD,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOC,CAAC,CAAC,EAAE,KAAKzW,CAAC,CAAC,EAAEoX,GAAE,UAAU,YAAY,SAASpX,EAAE,CAAC,IAAIyW,EAAE,KAAK,KAAK,GAAYA,EAAE,MAAX,QAAgB0J,GAAG1J,EAAE,EAAE,GAAG,EAAEA,EAAE,MAAM,OAAO,KAAK,MAAM,SAASzW,EAAE,CAAC,IAAIwW,EAAE0J,GAAGzJ,EAAEA,EAAE,MAAM,KAAK,MAAM,EAAE,OAAOA,EAAE,MAAM,KAAK,MAAM,CAAC,MAAMzW,EAAE,OAAO,GAAG,MAAMyW,EAAE,MAAM,MAAM,CAAC,MAAMD,EAAE,MAAMC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASzW,EAAE,CAAC,OAAOA,EAAE,MAAM,CAAC,EAAE,KAAKA,CAAC,EAAEyW,EAAE,SAAS,CAACA,EAAE,QAAQ,IAAIpI,EAAE,CAAA,EAAG,OAAO,KAAK,KAAK,SAASrO,EAAEwW,EAAE,CAACnI,EAAE,KAAKmI,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOnI,CAAC,CAAC,EAAE,KAAKrO,CAAC,CAAC,EAAEoX,GAAE,UAAU,WAAW,SAASpX,EAAE,CAAC,OAAO,KAAK,KAAK,OAAO,SAAS,KAAK,KAAKA,CAAC,CAAC,EAAEoX,GAAE,UAAU,SAAS,SAASpX,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,KAAK,SAASA,EAAE,CAAC,OAAOA,EAAE,CAAC,CAAC,CAAC,EAAE,KAAKA,CAAC,CAAC,EAAEoX,GAAE,UAAU,QAAQ,SAASpX,EAAE,CAAC,OAAO,KAAK,QAAO,EAAG,SAASA,CAAC,CAAC,EAAEoX,GAAE,UAAU,SAAS,UAAU,CAAC,IAAIX,EAAEzW,EAAE,KAAK,KAAKA,EAAEA,EAAE,OAAOA,EAAE,MAAM,OAAO,UAAUA,EAAE,KAAK,EAAE,OAAOA,GAAGA,EAAE,QAAQyW,EAAE,CAAA,EAAG+J,GAAG,KAAK,KAAK,SAASxgB,EAAE,CAAC,IAAIA,EAAEA,EAAE,WAAW,SAAQ,EAAGwW,EAAEoB,EAAEnB,EAAEzW,CAAC,EAAE,OAAOyW,EAAEzW,CAAC,EAAE,GAAG,CAACwW,CAAC,CAAC,GAAG,IAAI,EAAEY,GAAE,UAAU,OAAO,SAAS7a,EAAE,CAAC,IAAIka,EAAE,KAAK3W,EAAE,KAAK,KAAK,OAAO,KAAK,OAAO,SAAS2T,EAAE,CAAC,SAASlW,EAAEyC,EAAEwW,EAAE,CAAC,IAAIC,EAAED,EAAE,SAASI,GAAG5W,EAAEwW,EAAE,YAAY,QAAQnI,EAAE,EAAE+I,EAAE7b,EAAEkb,CAAC,EAAEpI,EAAE+I,EAAE,OAAO/I,IAAI,CAAC,IAAIlT,EAAEic,EAAE/I,CAAC,EAAEqG,EAAE,KAAK+B,EAAEtb,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIoO,EAAc,OAAOhN,GAAnB,WAAqBA,EAAE,SAASyD,EAAE,CAAC,OAAO+gB,GAAG/gB,EAAEzD,CAAC,CAAC,EAAEqb,EAAE9X,EAAE,MAAM,KAAKE,EAAE4X,EAAE,OAAO,WAAW,EAAE5X,EAAE,SAASoW,EAAEpW,EAAE,WAAW+X,EAAE,IAAI/X,EAAEyW,EAAE,GAAG,SAAS,gBAAgB/B,GAAG1U,IAAI+X,EAAY,OAAO/X,GAAjB,SAAmBA,EAAE4X,EAAE,IAAI,GAAG5X,EAAE,GAAG,GAAG,IAAIA,GAAG,CAAA,GAAI4W,EAAE,EAAEJ,EAAE,CAAA,EAAGtV,EAAE3E,IAAIkkB,GAAG,OAAOhK,EAAE,MAAK,EAAG,YAAW,EAAG,KAAK,SAASvY,EAAE,CAAC,SAASyZ,EAAEpG,EAAE,CAAC,IAAIoF,EAAE,KAAK,IAAIoB,EAAE7Z,EAAE,OAAOqT,CAAC,EAAEpN,EAAEjG,EAAE,MAAMqT,EAAEA,EAAEoF,CAAC,EAAE,OAAOzV,EAAE,QAAQ,QAAQ,CAAA,CAAE,EAAE0W,EAAE,QAAQ,CAAC,MAAMnE,EAAE,KAAKtP,EAAE,MAAM,WAAW,CAAC,GAAG,KAAK,SAASnE,GAAE,CAAC,IAAIyW,GAAE,GAAGD,EAAE,CAAA,EAAGnI,GAAE,EAAE,GAAG,KAAK+I,GAAElW,EAAEiD,EAAE,CAAA,EAAG,GAAG,CAACjD,EAAE,QAAQ/F,EAAE,EAAEA,EAAEwb,EAAE,EAAExb,EAAE,CAAC,IAAIuZ,GAAE1U,GAAE7E,CAAC,EAAEyb,GAAE,CAAC,MAAM8K,GAAGhN,EAAC,EAAE,QAAQxW,EAAEqT,EAAEpW,CAAC,CAAC,EAAOoO,EAAE,KAAKqN,GAAEA,GAAE,MAAMA,EAAC,IAAvB,KAAiCA,GAAE,OAAR,KAAcQ,GAAE,KAAKlZ,EAAEqT,EAAEpW,CAAC,CAAC,EAAE,GAAOud,GAAEtC,EAAE1B,EAAC,EAAE0B,EAAEQ,GAAE,KAAK,CAAC,IAArB,GAAwBJ,EAAE,KAAKI,GAAE,KAAK,EAAE,GAAGvI,GAAE,KAAKnQ,EAAEqT,EAAEpW,CAAC,CAAC,IAAIic,GAAE,KAAKlZ,EAAEqT,EAAEpW,CAAC,CAAC,EAAEsb,GAAE,KAAKG,GAAE,KAAK,GAAG,CAAC,OAAO,QAAQ,QAAQ,EAAEH,GAAE,QAAQmB,EAAE,OAAO,CAAC,MAAMnE,EAAE,KAAK,MAAM,OAAOgD,EAAC,CAAC,EAAE,KAAK,SAASzW,GAAE,CAAC,QAAQwW,MAAKxW,GAAE,SAASoX,GAAE,OAAO,SAASZ,EAAC,EAAE,CAAC,EAAEjZ,EAAEkZ,GAAE,OAAOzW,EAAC,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,EAAEwW,EAAE,QAAQK,GAAa,OAAOta,GAAjB,WAAqBqb,EAAE,OAAO,CAAC,MAAMnE,EAAE,KAAK,MAAM,KAAKpF,GAAE,OAAOmI,EAAE,SAASK,EAAE,WAAuB,OAAOta,GAAnB,YAAsBA,EAAE,kBAAkB,EAAEgV,CAAC,CAAC,EAAE,KAAK,SAASvR,GAAE,CAAC,OAAOzC,EAAEiZ,EAAE,OAAOxW,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,EAAEoX,GAAE,QAAQP,GAAG3V,IAAI0W,EAAE,OAAO,CAAC,MAAMnE,EAAE,KAAK,SAAS,KAAK2D,GAAE,SAASP,EAAE,kBAAkB,EAAEtF,CAAC,CAAC,EAAE,KAAK,SAASvR,GAAE,CAAC,OAAO+nB,GAAGjoB,EAAE,MAAMsX,GAAEpX,EAAC,CAAC,CAAC,EAAE,KAAK,SAASA,GAAE,CAAC,OAAOzC,EAAE6Z,GAAE,OAAOpX,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO9B,EAAE,OAAOqT,EAAEoF,GAAGgB,EAAEpG,EAAEwG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIlB,EAAEsJ,GAAGrgB,CAAC,GAAGA,EAAE,QAAQ,MAAkB,OAAOvD,GAAnB,YAAsB2E,IAAI,CAAC,MAAMpB,EAAE,MAAM,MAAMA,EAAE,KAAK,EAAE,OAAO6X,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,GAAG,EAAEjD,EAAE,OAAO,MAAM,IAAIqF,GAAG,sCAAsCrF,EAAEkC,EAAEJ,CAAC,EAAE,OAAOtY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEkZ,GAAE,UAAU,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,KAAKX,EAAE,EAAE,MAAM,MAAM,CAAC0J,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,QAAQ,CAAC,EAAE,WAAe1J,EAAE,OAAN,EAAW,KAAK,OAAOgK,EAAE,EAAE,KAAK,OAAO,SAASzgB,EAAE,CAAC,IAAIwW,EAAE,EAAE,MAAM,KAAK,OAAO,WAAWnI,EAAEoI,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAMzW,EAAE,MAAM,CAAC,MAAMwW,EAAE,MAAMnI,CAAC,CAAC,CAAC,EAAE,KAAK,SAASoI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAMzW,EAAE,KAAK,cAAc,MAAMqO,CAAC,CAAC,EAAE,KAAK,SAASrO,EAAE,CAAC,IAAIwW,EAAExW,EAAE,SAASA,EAAEA,EAAE,YAAY,GAAGA,EAAE,MAAM,IAAI+Z,GAAG,+BAA+B,OAAO,KAAKvD,CAAC,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOwW,EAAExW,CAAC,CAAC,CAAC,EAAEyW,EAAEzW,CAAC,EAAE,OAAOyW,EAAEzW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI6gB,GAAGzJ,GAAE,SAASA,IAAG,CAAA,CAAE,IAAIqJ,GAAG,SAASzgB,EAAEwW,EAAE,CAAC,OAAOA,EAAE,MAAM,IAAI,EAAE,SAAS8J,GAAGtgB,EAAEwW,EAAE,CAAC,OAAOxW,EAAEwW,EAAE,GAAGxW,IAAIwW,EAAE,EAAE,CAAC,CAAC,SAASkK,GAAG1gB,EAAEwW,EAAE,CAAC,OAAOA,EAAExW,EAAE,GAAGA,IAAIwW,EAAE,EAAE,CAAC,CAAC,SAAS2B,GAAEnY,EAAEwW,EAAEC,EAAE,CAAC,OAAAzW,EAAEA,aAAamoB,GAAG,IAAInoB,EAAE,WAAWA,CAAC,EAAEA,EAASA,EAAE,KAAK,MAAM,IAAIyW,GAAG,WAAWD,CAAC,EAAExW,CAAC,CAAC,SAAS4f,GAAG5f,EAAE,CAAC,OAAO,IAAIA,EAAE,WAAWA,EAAE,UAAU,CAAC,OAAOooB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,SAAShI,GAAGpgB,EAAEuR,EAAEkF,EAAEpI,EAAE,CAAC,IAAI+I,EAAET,EAAExS,EAAEjG,EAAEyZ,EAAEd,EAAEpD,EAAElW,EAAEkZ,EAAE,OAAO,GAAG,CAACA,EAAE,MAAM,SAASzW,EAAE,CAAC,OAAgB,OAAOA,GAAjB,QAAkB,CAAC,EAAE,OAAOmY,GAAEnY,EAAEof,EAAE,EAAE,SAAS5I,EAAExW,EAAE,CAACoX,EAAWpX,IAAT,OAAW,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAW,CAAE,EAAE,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAW,CAAE,EAAE2W,EAAW3W,IAAT,OAAW,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAW,CAAE,EAAE,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAW,CAAE,EAAEmE,EAAWnE,IAAT,OAAWsgB,GAAGI,GAAG,IAAIlK,EAAEC,EAAE,IAAI,SAASzW,EAAE,CAAC,MAAM,CAAC,MAAM2W,EAAE3W,CAAC,EAAE,MAAMoX,EAAEpX,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASA,EAAEwW,EAAE,CAAC,OAAOrS,EAAEnE,EAAE,MAAMwW,EAAE,KAAK,CAAC,CAAC,EAAEtY,EAAEsY,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOA,EAAE,KAAK,CAAC,EAAE2X,EAAEnB,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOA,EAAE,KAAK,CAAC,EAAEyT,GAAYoD,EAAE7W,KAAZ,OAAe,GAAGqO,CAAC,CAACmI,EAAE,MAAM,EAAE,IAAIxW,EAAE,IAAIA,EAAE,WAAWA,EAAE,UAAU,CAAC,OAAOgY,GAAE9Z,EAAE,CAAC,EAAEyZ,EAAEpa,EAAE,CAAC,EAAE8Q,CAAC,CAAC,CAAC,EAAE9E,GAAGvJ,EAAE,mBAAmB,SAASA,EAAE,CAACwW,EAAExW,CAAC,CAAC,EAAE,GAAG,OAAOA,EAAE,cAAc,SAASA,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAErO,EAAE,IAAI,GAAa,OAAOqO,GAAjB,SAAmB,CAAC,IAAI+I,EAAET,EAAEtI,CAAC,EAAE,GAAGkD,EAAE6F,EAAEO,EAAEpO,CAAC,EAAE,SAAS,QAAQpO,EAAE,KAAKuZ,GAAEnL,EAAEmL,GAAEnX,EAAE,EAAEmX,GAAE,CAAC,IAAIkC,IAAG,CAAC5W,EAAEwW,GAAEC,GAAEpI,EAAE+I,GAAEjc,KAAI,CAAC,QAAQuZ,GAAE,KAAK,IAAI1U,EAAE,OAAOqO,EAAE,MAAM,EAAEuI,GAAE,GAAGrF,GAAE,EAAEA,GAAEmD,GAAE,EAAEnD,GAAE,CAAC,IAAIoF,GAAEH,GAAEjF,EAAC,EAAE,GAAGoF,KAAItI,EAAEkD,EAAC,EAAE,OAAO6F,GAAEpX,EAAEuR,EAAC,EAAEkF,GAAElF,EAAC,CAAC,EAAE,EAAEvR,EAAE,OAAO,EAAEuR,EAAC,EAAEkF,GAAElF,EAAC,EAAEkF,GAAE,OAAOlF,GAAE,CAAC,EAAE6F,GAAEpX,EAAEuR,EAAC,EAAElD,EAAEkD,EAAC,CAAC,EAAE,EAAEvR,EAAE,OAAO,EAAEuR,EAAC,EAAElD,EAAEkD,EAAC,EAAEkF,GAAE,OAAOlF,GAAE,CAAC,EAAE,GAAGqF,GAAE5W,EAAE,OAAO,EAAE4W,EAAC,EAAEJ,GAAEI,EAAC,EAAEH,GAAE,OAAOG,GAAE,CAAC,EAAE,KAAKQ,GAAEpX,EAAEuR,EAAC,EAAEoF,EAAC,EAAE,IAAIC,GAAErF,GAAE,CAAC,OAAOmD,GAAErG,EAAE,QAAiBlT,KAAT,OAAW6E,EAAEyW,GAAE,OAAOzW,EAAE,MAAM,EAAE0U,GAAE1U,EAAE,QAAiB7E,KAAT,OAAW6E,EAAE,OAAO,EAAEyW,GAAE,MAAM,EAAEG,GAAE,EAAE,KAAK5W,EAAE,OAAO,EAAE4W,EAAC,EAAEvI,EAAEuI,EAAC,EAAEH,GAAE,OAAOG,GAAE,CAAC,CAAC,GAAGvI,EAAE+I,EAAElZ,EAAEwW,EAAC,EAAEiD,EAAEjD,EAAC,EAAEvQ,EAAE0S,CAAC,EAASD,KAAP,MAAiBzb,IAAP,KAASoO,EAAEmL,GAAE,GAAUvZ,IAAP,MAAU,EAAEgJ,EAAEhJ,EAAEyb,EAAC,KAAKzb,EAAEyb,GAAE,CAACJ,EAASrb,IAAP,KAAS,UAAU,CAAC6E,EAAE,SAAS7E,EAAEsY,CAAC,CAAC,EAAEgD,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAEzW,CAAC,CAAC,SAASgY,GAAEhY,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAMrO,EAAE,MAAMwW,EAAE,UAAUC,EAAE,UAAUpI,CAAC,CAAC,CAAC,SAAS+Z,GAAGpoB,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAMA,EAAE,MAAMA,CAAC,CAAC,CAAC,OAAO,eAAe6W,GAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,MAAM,GAAG,UAAU,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAEA,GAAE,UAAU,QAAQ,SAAS7W,EAAEwW,EAAEC,EAAEpI,EAAE,CAACoI,EAAOA,IAAL,GAAOpI,EAAOA,IAAL,GAAO,GAAG,CAAC,MAAO,GAAE,KAAK,KAAKrO,EAAEwW,CAAC,GAAO,KAAK,KAAKxW,EAAEwW,CAAC,IAAjB,IAAqBC,GAAGpI,KAAK,CAACoI,GAAG,CAACpI,GAAGuR,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAO5H,GAAEhY,EAAEwW,EAAE,CAACC,EAAE,CAACpI,CAAC,CAAC,CAAC,CAAC,MAAS,CAAC,OAAO8J,GAAE,KAAKF,EAAC,CAAC,CAAC,EAAEpB,GAAE,UAAU,OAAO,SAAS7W,EAAE,CAAC,OAAaA,GAAN,KAAQmY,GAAE,KAAKF,EAAC,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOmQ,GAAGpoB,CAAC,CAAC,CAAC,CAAC,EAAE6W,GAAE,UAAU,MAAM,SAAS7W,EAAE,CAAC,OAAaA,GAAN,KAAQmY,GAAE,KAAKF,EAAC,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOD,GAAEhY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE6W,GAAE,UAAU,aAAa,SAAS7W,EAAE,CAAC,OAAaA,GAAN,KAAQmY,GAAE,KAAKF,EAAC,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOD,GAAEhY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE6W,GAAE,UAAU,MAAM,SAAS7W,EAAE,CAAC,OAAaA,GAAN,KAAQmY,GAAE,KAAKF,EAAC,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOD,GAAE,OAAOhY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE6W,GAAE,UAAU,aAAa,SAAS7W,EAAE,CAAC,OAAaA,GAAN,KAAQmY,GAAE,KAAKF,EAAC,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOD,GAAE,OAAOhY,CAAC,CAAC,CAAC,CAAC,EAAE6W,GAAE,UAAU,WAAW,SAAS7W,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmBmY,GAAE,KAAKiH,EAAE,EAAE,KAAK,QAAQpf,EAAEA,EAAEif,GAAG,GAAG,EAAE,CAAC,EAAEpI,GAAE,UAAU,qBAAqB,SAAS7W,EAAE,CAAC,OAAWA,IAAL,GAAO,KAAK,WAAWA,CAAC,EAAEogB,GAAG,KAAK,SAASpgB,EAAEwW,EAAE,CAAC,OAAWxW,EAAE,QAAQwW,EAAE,CAAC,CAAC,IAAlB,CAAmB,EAAE,CAACxW,CAAC,EAAEif,EAAE,CAAC,EAAEpI,GAAE,UAAU,iBAAiB,SAAS7W,EAAE,CAAC,OAAOogB,GAAG,KAAK,SAASpgB,EAAEwW,EAAE,CAAC,OAAOxW,IAAIwW,EAAE,CAAC,CAAC,EAAE,CAACxW,CAAC,EAAE,EAAE,CAAC,EAAE6W,GAAE,UAAU,gBAAgB,UAAU,CAAC,IAAI7W,EAAEyW,GAAE,MAAMmR,GAAG,SAAS,EAAE,OAAW5nB,EAAE,SAAN,EAAa4f,GAAG,IAAI,EAAEQ,GAAG,KAAK,SAASpgB,EAAEwW,EAAE,CAAC,OAAWA,EAAE,QAAQxW,CAAC,IAAhB,EAAiB,EAAEA,EAAE,EAAE,CAAC,EAAE6W,GAAE,UAAU,0BAA0B,UAAU,CAAC,IAAI7W,EAAEyW,GAAE,MAAMmR,GAAG,SAAS,EAAE,OAAW5nB,EAAE,SAAN,EAAa4f,GAAG,IAAI,EAAEQ,GAAG,KAAK,SAAS5J,EAAExW,EAAE,CAAC,OAAOA,EAAE,KAAK,SAASA,EAAE,CAAC,OAAWwW,EAAE,QAAQxW,CAAC,IAAf,CAAgB,CAAC,CAAC,EAAEA,EAAEif,EAAE,CAAC,EAAEpI,GAAE,UAAU,MAAM,UAAU,CAAC,IAAI7W,EAAEoX,EAAEZ,EAAE,KAAKrb,EAAEsb,GAAE,MAAMmR,GAAG,SAAS,EAAElT,EAAE,KAAK,KAAK,GAAG,CAACvZ,EAAE,KAAKuZ,CAAC,CAAC,MAAS,CAAC,OAAOyD,GAAE,KAAKF,EAAC,CAAC,CAAC,OAAW9c,EAAE,SAAN,EAAaykB,GAAG,IAAI,IAAI5f,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOgY,GAAE7c,EAAE,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,SAAS6E,EAAE,CAAC0U,EAAW1U,IAAT,OAAWwW,EAAE,WAAWA,EAAE,YAAYrb,EAAE,KAAKuZ,CAAC,CAAC,EAAE0C,EAAE,EAAEpX,EAAE,cAAc,SAASA,EAAEwW,EAAEC,EAAE,CAAC,QAAQpI,EAAErO,EAAE,IAAI,EAAE0U,EAAErG,EAAElT,EAAEic,CAAC,CAAC,GAAG,GAAG,EAAEA,IAAIjc,EAAE,OAAO,OAAOqb,EAAEC,CAAC,EAAE,GAAG,OAAW/B,EAAErG,EAAElT,EAAEic,CAAC,CAAC,IAAZ,IAAgBZ,EAAE,UAAU,CAACxW,EAAE,SAAS7E,EAAEic,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAEpX,EAAE,EAAE6W,GAAE,UAAU,SAAS,SAAS7W,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAC,EAAE,CAACA,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,CAAC,EAAE6W,GAAE,UAAU,OAAO,UAAU,CAAC,IAAI7W,EAAEyW,GAAE,MAAMmR,GAAG,SAAS,EAAE,GAAO5nB,EAAE,SAAN,EAAa,OAAO,IAAI,KAAK,WAAW,IAAI,EAAE,GAAG,CAACA,EAAE,KAAK,KAAK,UAAU,CAAC,MAAS,CAAC,OAAOmY,GAAE,KAAKF,EAAC,CAAC,CAAC,IAAIzB,EAAExW,EAAE,OAAO,SAASA,EAAEwW,EAAE,CAAC,OAAOxW,EAAEA,EAAE,OAAO,CAAC,CAACA,EAAEA,EAAE,OAAO,CAAC,EAAE,CAAC,EAAEwW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAKA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAOA,EAAE,KAAK,CAACxW,EAAEA,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,WAAWwW,EAAE,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC,CAAC,EAAEK,GAAE,UAAU,WAAW,SAAS7W,EAAEwW,EAAE,CAAC,IAAIrb,EAAE,KAAKuZ,EAAE,KAAK,KAAKkC,EAAE,KAAK,WAAWH,EAAE,KAAK,YAAYlF,EAAE,KAAK,KAAKoF,EAAE,KAAK,KAAK,GAAO3W,EAAE,SAAN,EAAa,OAAO4f,GAAG,IAAI,EAAE,GAAG,CAAC5f,EAAE,MAAM,SAASA,EAAE,CAAC,OAAgBA,EAAE,CAAC,IAAZ,QAAwBA,EAAE,CAAC,IAAZ,QAAe4W,EAAE5W,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAOmY,GAAE,KAAK,6HAA6HrY,GAAE,eAAe,EAAE,IAAIuO,EAAE,CAACmI,GAAQA,EAAE,gBAAP,GAAqBY,EAAEZ,GAAQA,EAAE,gBAAP,GAAyBrS,EAAEjG,EAAE0Y,EAAE,SAASe,EAAE3X,EAAEwW,EAAE,CAAC,OAAOtY,EAAE8B,EAAE,CAAC,EAAEwW,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAErS,EAAEnE,EAAE,OAAO,SAASA,EAAEwW,EAAE,CAAC,QAAQC,EAAE,EAAEpI,GAAErO,EAAE,OAAOyW,EAAEpI,GAAE,EAAEoI,EAAE,CAAC,IAAIW,GAAEpX,EAAEyW,CAAC,EAAE,GAAG/B,EAAE8B,EAAE,CAAC,EAAEY,GAAE,CAAC,CAAC,EAAE,GAAG,EAAE1C,EAAE8B,EAAE,CAAC,EAAEY,GAAE,CAAC,CAAC,EAAE,CAACA,GAAE,CAAC,EAAE7F,EAAE6F,GAAE,CAAC,EAAEZ,EAAE,CAAC,CAAC,EAAEY,GAAE,CAAC,EAAET,EAAES,GAAE,CAAC,EAAEZ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAOC,IAAIpI,IAAGrO,EAAE,KAAKwW,CAAC,EAAExW,CAAC,EAAE,EAAE,GAAG,KAAK2X,CAAC,CAAC,MAAS,CAAC,OAAOQ,GAAE,KAAKF,EAAC,CAAC,CAAC,IAAIpB,EAAE,EAAEpD,EAAE2D,EAAE,SAASpX,EAAE,CAAC,MAAO,GAAE4W,EAAE5W,EAAEmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS7W,EAAE,CAAC,MAAO,IAAG4W,EAAE5W,EAAEmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEtZ,EAAE8Q,EAAE,SAASrO,EAAE,CAAC,MAAO,GAAEyW,EAAEzW,EAAEmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS7W,EAAE,CAAC,MAAO,IAAGyW,EAAEzW,EAAEmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,CAAC,EAAMtN,EAAEkK,EAAE+C,EAAE,IAAI,KAAK,WAAW,KAAK,UAAU,CAAC,OAAOwB,GAAE7T,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAACkK,EAAE,CAAC+I,CAAC,CAAC,CAAC,EAAE,OAAOZ,EAAE,mBAAmB,SAASxW,EAAE,CAAC9B,EAAW8B,IAAT,QAAYuJ,EAAEkK,EAAEmD,IAAIrN,EAAEhM,EAAEkZ,GAAGtS,EAAE,KAAKwT,CAAC,CAAC,EAAEnB,EAAE,cAAc,SAASxW,EAAEwW,EAAEC,EAAE,CAAC,QAAQpI,GAAE+I,GAAEpX,EAAE,IAAIuJ,EAAE6N,EAAC,GAAG,GAAG,EAAEP,IAAI1S,EAAE,OAAO,OAAOqS,EAAEC,CAAC,EAAE,GAAG,MAAM,CAAChD,EAAEpF,GAAE+I,EAAC,GAAG,CAAC7Z,EAAE8Q,EAAC,IAAQlT,EAAE,KAAKic,GAAEjT,EAAE0S,CAAC,EAAE,CAAC,CAAC,IAApB,GAA2B1b,EAAE,KAAKic,GAAEjT,EAAE0S,CAAC,EAAE,CAAC,CAAC,IAApB,GAAuBL,EAAE,UAAU,CAACtY,IAAI0Y,EAAE5W,EAAE,SAASmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,EAAE7W,EAAE,SAASmE,EAAE0S,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAEL,CAAC,EAAEK,GAAE,UAAU,gBAAgB,UAAU,CAAC,IAAI7W,EAAEyW,GAAE,MAAMmR,GAAG,SAAS,EAAE,OAAO5nB,EAAE,MAAM,SAASA,EAAE,CAAC,OAAgB,OAAOA,GAAjB,QAAkB,CAAC,EAAMA,EAAE,SAAN,EAAa4f,GAAG,IAAI,EAAE,KAAK,WAAW5f,EAAE,IAAI,SAASA,EAAE,CAAC,MAAM,CAACA,EAAEA,EAAEif,EAAE,CAAC,CAAC,CAAC,EAAE9G,GAAE,KAAK,2CAA2C,CAAC,EAAE,IAAIgQ,GAAGtR,GAAE,SAASA,IAAG,CAAA,CAAE,SAASwB,GAAE7B,EAAE,CAAC,OAAOuC,GAAE,SAAS/Y,EAAE,CAAC,OAAO8gB,GAAG9gB,CAAC,EAAEwW,EAAExW,EAAE,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS8gB,GAAG9gB,EAAE,CAACA,EAAE,iBAAiBA,EAAE,kBAAkBA,EAAE,gBAAgBA,EAAE,eAAc,CAAE,CAAC,IAAIqoB,GAAG,iBAAiBC,GAAG,qBAAqBC,GAAGP,GAAG,KAAKK,EAAE,EAAEzH,IAAInN,GAAE,UAAU,MAAM,UAAU,CAAC,OAAOoF,EAAE,CAACrd,EAAE,MAAM,EAAE,EAAE,KAAK,UAAc,KAAK,YAAT,GAAoBA,EAAE,SAASA,EAAE,aAAa,MAAM,IAAI,EAAEiY,GAAE,UAAU,QAAQ,UAAU,CAAC,GAAGoF,EAAE,CAACrd,EAAE,MAAM,EAAK,EAAE,KAAK,WAAV,EAAoB,IAAIA,EAAE,SAASA,EAAE,aAAa,MAAM,EAAE,KAAK,cAAc,QAAQ,CAAC,KAAK,QAAO,GAAI,CAAC,IAAIwE,EAAE,KAAK,cAAc,MAAK,EAAG,GAAG,CAACgf,GAAGhf,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,MAAS,CAAA,CAAE,CAAC,OAAO,IAAI,EAAEyT,GAAE,UAAU,QAAQ,UAAU,CAAC,OAAO,KAAK,WAAWjY,EAAE,eAAe,IAAI,EAAEiY,GAAE,UAAU,OAAO,SAAS+C,EAAE,CAAC,IAAIC,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,IAAIzW,EAAE,KAAK,GAAG,MAAMqO,EAAE,KAAK,GAAG,OAAO,YAAY,GAAGwK,EAAE,CAAC,KAAK,QAAQ,EAAE,CAACrC,GAAG,CAACxW,EAAE,OAAOqO,GAAGA,EAAE,MAAM,IAAI,sBAAsB,MAAM,IAAIvO,GAAE,eAAeuO,CAAC,EAAE,IAAI,kBAAkB,MAAM,IAAIvO,GAAE,WAAWuO,EAAE,QAAQA,CAAC,EAAE,QAAQ,MAAM,IAAIvO,GAAE,WAAWuO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,MAAM,IAAIvO,GAAE,oBAAoB+Y,EAAS,KAAK,YAAY,SAAxB,IAA8B,GAAGrC,EAAE,KAAK,SAASA,IAAI,KAAK,GAAG,MAAMxW,GAAG,YAAY,KAAK,WAAW,KAAK,KAAK,CAAC,WAAW,KAAK,2BAA2B,CAAC,GAAG,QAAQ+Y,GAAE,SAAS/Y,EAAE,CAAC8gB,GAAG9gB,CAAC,EAAEyW,EAAE,QAAQD,EAAE,KAAK,CAAC,CAAC,EAAEA,EAAE,QAAQuC,GAAE,SAAS/Y,EAAE,CAAC8gB,GAAG9gB,CAAC,EAAEyW,EAAE,QAAQA,EAAE,QAAQ,IAAI3W,GAAE,MAAM0W,EAAE,KAAK,CAAC,EAAEC,EAAE,OAAO,GAAGA,EAAE,GAAG,OAAO,EAAE,KAAKzW,CAAC,CAAC,CAAC,EAAEwW,EAAE,WAAWuC,GAAE,UAAU,CAACtC,EAAE,OAAO,GAAGA,EAAE,SAAQ,EAAG,iBAAiBD,GAAG+R,GAAG,eAAe,KAAK/R,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE/C,GAAE,UAAU,SAAS,SAASgD,EAAEpI,EAAE+I,EAAE,CAAC,IAAIpX,EAAE7E,EAAE,KAAK,OAAoBsb,IAAd,aAA+B,KAAK,OAAnB,YAAwBsB,GAAE,IAAIjY,GAAE,SAAS,yBAAyB,CAAC,EAAE,KAAK,OAAO,KAAK,QAAO,EAAG,IAAIqZ,EAAE,SAASnZ,EAAEwW,EAAE,CAACrb,EAAE,cAAc,KAAK,CAAC,UAAU,CAACA,EAAE,SAASsb,EAAEpI,EAAE+I,CAAC,EAAE,KAAKpX,EAAEwW,CAAC,CAAC,EAAEhb,CAAC,CAAC,CAAC,CAAC,EAAE4b,EAAE7Z,GAAE,UAAU,CAAC,IAAIyC,EAAE,IAAImZ,EAAE,SAASnZ,EAAEwW,EAAE,CAACrb,EAAE,MAAK,EAAG,IAAIsb,EAAEpI,EAAErO,EAAEwW,EAAErb,CAAC,EAAEsb,GAAGA,EAAE,MAAMA,EAAE,KAAKzW,EAAEwW,CAAC,CAAC,CAAC,EAAE,OAAOxW,EAAE,QAAQ,UAAU,CAAC,OAAO7E,EAAE,QAAO,CAAE,CAAC,EAAE6E,EAAE,KAAK,GAAGA,CAAC,CAAC,IAAIA,EAAE,IAAImZ,EAAE,SAASnZ,EAAEwW,EAAE,CAAC,IAAIC,EAAEpI,EAAErO,EAAEwW,EAAErb,CAAC,EAAEsb,GAAGA,EAAE,MAAMA,EAAE,KAAKzW,EAAEwW,CAAC,CAAC,CAAC,GAAG,KAAK,GAAGxW,GAAG+X,GAAE,IAAIjY,GAAE,mBAAmB,CAAC,EAAE2T,GAAE,UAAU,MAAM,UAAU,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,MAAK,EAAG,IAAI,EAAEA,GAAE,UAAU,QAAQ,SAASzT,EAAE,CAAC,IAAIwW,EAAEnI,EAAE,KAAK,MAAK,EAAG+I,EAAE+B,EAAE,QAAQnZ,CAAC,EAAE7E,GAAGkT,EAAE,YAAYA,EAAE,YAAYA,EAAE,YAAY,KAAK,UAAU,CAAC,OAAO+I,CAAC,CAAC,GAAG/I,EAAE,YAAY+I,EAAE/I,EAAE,cAAc,GAAGmI,EAAEnI,EAAE,SAAS,YAAYA,EAAE,WAAW,CAAC,CAAC,GAAE,SAASrO,GAAG,CAAC,IAAI,EAAEqO,EAAE,WAAWA,EAAE,cAAc,QAAQA,EAAE,cAAc,QAAO,EAAGA,EAAE,cAAcmI,EAAE,IAAI,IAAI,EAAE,UAAUxW,EAAE,GAAC,GAAIqO,EAAE,aAAa,OAAO,IAAI8K,EAAE,SAAS3C,EAAEC,EAAE,CAACW,EAAE,KAAK,SAASpX,EAAE,CAAC,OAAOqO,EAAE,cAAc,KAAK0K,GAAEvC,EAAE,KAAK,KAAKxW,CAAC,CAAC,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,OAAOqO,EAAE,cAAc,KAAK0K,GAAEtC,EAAE,KAAK,KAAKzW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,UAAU,CAACqO,EAAE,cAAclT,IAAIkT,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAEoF,GAAE,UAAU,MAAM,UAAU,CAAC,KAAK,SAAS,KAAK,OAAO,GAAG,KAAK,UAAU,KAAK,SAAS,MAAK,EAAG,KAAK,QAAQ,IAAI3T,GAAE,KAAK,EAAE,EAAE2T,GAAE,UAAU,MAAM,SAASzT,EAAE,CAAC,IAAIwW,EAAE,KAAK,kBAAkB,KAAK,gBAAgB,CAAA,GAAI,GAAGoB,EAAEpB,EAAExW,CAAC,EAAE,OAAOwW,EAAExW,CAAC,EAAE,IAAIyW,EAAE,KAAK,OAAOzW,CAAC,EAAE,GAAGyW,EAAE,OAAOA,EAAE,IAAI,KAAK,GAAG,MAAMzW,EAAEyW,EAAE,IAAI,GAAG,KAAK,KAAK,GAAG,KAAK,MAAMzW,CAAC,EAAEwW,EAAExW,CAAC,EAAEyW,EAAE,MAAM,IAAI3W,GAAE,SAAS,SAASE,EAAE,0BAA0B,CAAC,EAAEyT,IAAG,SAASA,IAAG,CAAA,CAAE,SAAS+U,GAAGxoB,EAAEwW,EAAEC,EAAEpI,EAAE+I,EAAEjc,EAAEuZ,EAAEkC,EAAE,CAAC,MAAM,CAAC,KAAK5W,EAAE,QAAQwW,EAAE,OAAOC,EAAE,MAAMpI,EAAE,KAAK+I,EAAE,SAASjc,EAAE,KAAKsb,GAAG,CAAC/B,EAAE,IAAI,KAAKrG,EAAE,IAAI,KAAK+I,EAAE,KAAK,IAAIqR,GAAGjS,CAAC,EAAE,KAAKI,CAAC,CAAC,CAAC,SAAS6R,GAAGzoB,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmBA,EAAEA,EAAE,IAAI,GAAG,KAAK,KAAKA,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS0oB,GAAG1oB,EAAEwW,EAAEC,EAAE,CAAC,MAAM,CAAC,KAAKzW,EAAE,QAAQwW,EAAE,QAAQC,EAAE,YAAY,KAAK,WAAWpI,EAAE,SAASrO,EAAE,CAAC,MAAM,CAACA,EAAE,KAAKA,CAAC,CAAC,EAAEyW,EAAE,OAAO,SAASzW,EAAEwW,EAAEC,EAAE,CAAC,OAAAD,EAAEnI,EAAEmI,EAAEC,CAAC,EAASD,IAAIxW,EAAEwW,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,GAAGxW,CAAC,EAAE,CAAA,CAAE,EAAE,EAAE,IAAIqO,CAAC,CAAC,IAAIsa,GAAG,SAAS3oB,EAAE,CAAC,GAAG,CAAC,OAAOA,EAAE,KAAK,CAAC,CAAA,CAAE,CAAC,EAAE2oB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,EAAE,CAAC,CAAA,CAAE,CAAC,MAAS,CAAC,OAAOA,GAAG,UAAU,CAAC,OAAO1J,EAAE,EAAEA,EAAE,CAAC,EAAE,SAAS2J,GAAGpS,EAAE,CAAC,OAAaA,GAAN,KAAQ,UAAU,CAAA,EAAa,OAAOA,GAAjB,UAAwBC,EAAED,GAAG,MAAM,GAAG,EAAE,SAArB,EAA4B,SAASxW,EAAE,CAAC,OAAOA,EAAEyW,CAAC,CAAC,EAAE,SAASzW,EAAE,CAAC,OAAO2W,GAAE3W,EAAEyW,CAAC,CAAC,EAAE,SAASzW,EAAE,CAAC,OAAO2W,GAAE3W,EAAEwW,CAAC,CAAC,EAAE,IAAIC,CAAC,CAAC,SAASoS,GAAG7oB,EAAE,CAAC,MAAM,GAAG,MAAM,KAAKA,CAAC,CAAC,CAAC,IAAI8oB,GAAG,EAAE,SAASC,GAAG/oB,EAAE,CAAC,OAAaA,GAAN,KAAQ,MAAgB,OAAOA,GAAjB,SAAmBA,EAAE,IAAI,OAAOA,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,SAASgpB,GAAGhpB,EAAEoX,EAAEZ,EAAE,CAAC,SAAStV,EAAElB,EAAE,CAAC,GAAOA,EAAE,OAAN,EAAW,OAAO,KAAK,GAAOA,EAAE,OAAN,EAAW,MAAM,IAAI,MAAM,0CAA0C,EAAE,IAAIwW,EAAExW,EAAE,MAAMyW,EAAEzW,EAAE,MAAMqO,EAAErO,EAAE,UAAUA,EAAEA,EAAE,UAAU,OAAgBwW,IAAT,OAAoBC,IAAT,OAAW,KAAKW,EAAE,WAAWX,EAAE,CAAC,CAACzW,CAAC,EAAWyW,IAAT,OAAWW,EAAE,WAAWZ,EAAE,CAAC,CAACnI,CAAC,EAAE+I,EAAE,MAAMZ,EAAEC,EAAE,CAAC,CAACpI,EAAE,CAAC,CAACrO,CAAC,CAAC,CAAC,SAASyW,EAAEzW,EAAE,CAAC,IAAI2X,EAAEI,EAAE/X,EAAE,KAAK,MAAM,CAAC,KAAK+X,EAAE,OAAO/X,EAAE,OAAO,SAASA,EAAE,CAAC,IAAIzC,EAAEyC,EAAE,MAAMuJ,EAAEvJ,EAAE,KAAK4X,EAAE5X,EAAE,KAAK2U,EAAE3U,EAAE,OAAOoW,EAAEpW,EAAE,MAAM,OAAO,IAAI,QAAQ,SAASwW,EAAExW,EAAE,CAACwW,EAAEuC,GAAEvC,CAAC,EAAE,IAAIC,GAAElZ,EAAE,YAAYwa,CAAC,EAAE1J,GAAQoI,GAAE,SAAR,KAAgBW,EAAU7N,IAAR,OAAmBA,IAAR,MAAU,GAAG,CAAC6N,GAAc7N,IAAX,UAA8BA,IAAhB,cAAkB,MAAM,IAAI,MAAM,2BAA2BA,CAAC,EAAE,IAAIpO,GAAEuZ,IAAGkD,GAAGjD,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,GAAGiD,GAAGjD,GAAGiD,EAAE,SAASjD,EAAE,OAAO,MAAM,IAAI,MAAM,+DAA+D,EAAE,GAAOD,KAAJ,EAAM,OAAO8B,EAAE,CAAC,YAAY,EAAE,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAG,WAAW,MAAM,CAAC,EAAE,SAASI,EAAE5W,GAAE,CAAC,EAAEmE,GAAE2c,GAAG9gB,EAAC,CAAC,CAAC,IAAIuR,GAAE,CAAA,EAAGoF,GAAE,CAAA,EAAGxS,GAAE,EAAE,GAAmBoF,IAAhB,cAAkB,CAAC,GAAO6M,EAAE,OAAN,EAAW,OAAOI,EAAE,CAAC,YAAYrS,GAAE,SAASwS,GAAE,QAAQ,CAAA,EAAG,WAAW,MAAM,CAAC,EAAMP,EAAE,OAAN,EAAW7E,GAAE,KAAKpW,GAAEsb,GAAE,MAAK,CAAE,EAAElF,GAAE,KAAKpW,GAAEsb,GAAE,OAAOvV,EAAEkV,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI/H,GAAE+I,EAAE/I,GAAE,CAACsG,EAAEiD,CAAC,EAAE,CAACjD,EAAE,IAAI,EAAE,CAACiD,EAAE,IAAI,EAAE1Z,GAAEmQ,GAAE,CAAC,EAAEsJ,GAAEtJ,GAAE,CAAC,EAAE,GAAG+I,EAAE,QAAQP,GAAE,EAAEA,GAAEnC,GAAE,EAAEmC,GAAEtF,GAAE,KAAKpW,GAAEwc,IAAYA,GAAEd,EAAC,IAAZ,OAAcJ,GAAElN,CAAC,EAAErL,GAAE2Y,EAAC,EAAEc,GAAEd,EAAC,CAAC,EAAEJ,GAAElN,CAAC,EAAErL,GAAE2Y,EAAC,CAAC,CAAC,EAAE1b,GAAE,QAAQyb,MAAO,KAAIC,GAAE,EAAEA,GAAEnC,GAAE,EAAEmC,GAAEtF,GAAE,KAAKpW,GAAEsb,GAAElN,CAAC,EAAErL,GAAE2Y,EAAC,CAAC,CAAC,EAAE1b,GAAE,QAAQyb,CAAC,CAAC,SAASnD,GAAEzT,GAAE,CAACA,GAAEA,GAAE,OAAO,OAAOuR,GAAE,QAAQ,SAASvR,GAAEwW,GAAE,CAAC,OAAaxW,GAAE,OAAR,OAAgB2W,GAAEH,EAAC,EAAExW,GAAE,MAAM,CAAC,EAAEwW,EAAE,CAAC,YAAYrS,GAAE,SAASwS,GAAE,QAAmBpN,IAAX,SAAaqO,EAAErG,GAAE,IAAI,SAASvR,GAAE,CAAC,OAAOA,GAAE,MAAM,CAAC,EAAE,WAAWA,EAAC,CAAC,CAAC,CAAC7E,GAAE,QAAQ,SAAS6E,GAAE,CAAC4W,EAAE5W,EAAC,EAAEyT,GAAEzT,EAAC,CAAC,EAAE7E,GAAE,UAAUsY,EAAC,CAAC,CAAC,EAAE,QAAQ,SAASzT,EAAE,CAAC,IAAI9B,EAAE8B,EAAE,MAAM2X,EAAE3X,EAAE,KAAK,OAAO,IAAI,QAAQ,SAASwW,EAAExW,EAAE,CAACwW,EAAEuC,GAAEvC,CAAC,EAAE,QAAQC,EAAEpI,EAAEnQ,EAAE,YAAY6Z,CAAC,EAAEX,EAAEO,EAAE,OAAOxc,GAAE,IAAI,MAAMic,CAAC,EAAE1C,GAAE,EAAEkC,EAAE,EAAErF,GAAE,SAASvR,GAAE,CAACA,GAAEA,GAAE,OAAO7E,GAAE6E,GAAE,IAAI,EAAEA,GAAE,OAAO,EAAE4W,IAAIlC,IAAG8B,EAAErb,EAAC,CAAC,EAAEwb,GAAE0B,GAAErY,CAAC,EAAEmE,EAAE,EAAEA,EAAEiT,EAAE,EAAEjT,EAAQwT,EAAExT,CAAC,GAAT,QAAcsS,EAAEpI,EAAE,IAAIsJ,EAAExT,CAAC,CAAC,GAAG,KAAKA,EAAEsS,EAAE,UAAUlF,GAAEkF,EAAE,QAAQE,GAAE,EAAEjC,IAAOA,KAAJ,GAAO8B,EAAErb,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS6E,EAAE,CAAC,IAAIqO,EAAErO,EAAE,MAAMoX,EAAEpX,EAAE,IAAI,OAAO,IAAI,QAAQ,SAASwW,EAAExW,EAAE,CAACwW,EAAEuC,GAAEvC,CAAC,EAAE,IAAIC,EAAEpI,EAAE,YAAY0J,CAAC,EAAE,IAAIX,CAAC,EAAEX,EAAE,UAAU,SAASzW,EAAE,CAAC,OAAOwW,EAAExW,EAAE,OAAO,MAAM,CAAC,EAAEyW,EAAE,QAAQ4B,GAAErY,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO2X,EAAEjD,EAAE,SAASxW,EAAE,CAAC,OAAO,IAAI,QAAQ,SAASuY,EAAEzW,EAAE,CAACyW,EAAEsC,GAAEtC,CAAC,EAAE,IAAIpI,EAAE+I,EAAEjc,EAAEqb,EAAEtY,EAAE,MAAMwW,EAAExW,EAAE,OAAO0Y,EAAE1Y,EAAE,MAAMqT,GAAErT,EAAE,MAAMyY,GAAEC,IAAI,IAAI,OAAOA,EAAEzS,GAAEoN,GAAE,MAAMA,GAAEA,GAAE,MAAMiF,EAAEA,EAAE,YAAYuB,CAAC,EAAEvB,EAAErS,GAAE,aAAaqS,EAAEA,EAAE,MAAMrS,GAAE,IAAI,EAAEA,GAAEjD,EAAEqQ,EAAC,EAAE,GAAOqF,IAAJ,EAAM,OAAOH,EAAE,CAAC,OAAO,CAAA,CAAE,CAAC,EAAEkB,IAAIpG,GAAEmD,EAAE8B,EAAE,OAAOrS,GAAEwS,EAAC,EAAEH,EAAE,WAAWrS,GAAEwS,EAAC,GAAG,UAAU,SAAS3W,GAAE,CAAC,OAAOyW,EAAE,CAAC,OAAOzW,GAAE,OAAO,MAAM,CAAC,CAAC,EAAEuR,GAAE,QAAQ8G,GAAErY,CAAC,IAAIqO,EAAE,EAAE+I,EAAE,CAAC1C,GAAG,kBAAkB8B,EAAEA,EAAE,cAAcrS,EAAC,EAAEqS,EAAE,WAAWrS,EAAC,EAAEhJ,EAAE,CAAA,EAAGic,EAAE,UAAU,SAASpX,GAAE,CAAC,IAAIwW,EAAEY,EAAE,OAAO,MAAM,CAACZ,IAAIrb,EAAE,KAAKuZ,EAAE8B,EAAE,MAAMA,EAAE,UAAU,EAAE,EAAEnI,IAAIuI,GAAGH,EAAE,CAAC,OAAOtb,CAAC,CAAC,EAAE,KAAKqb,EAAE,SAAQ,CAAE,EAAEY,EAAE,QAAQiB,GAAErY,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,SAASA,EAAE,CAAC,IAAI2W,EAAE3W,EAAE,MAAM7E,EAAE6E,EAAE,OAAO0U,EAAE1U,EAAE,MAAM4W,EAAE5W,EAAE,QAAQmE,EAAEnE,EAAE,OAAO,OAAO,IAAI,QAAQ,SAASwW,EAAEC,EAAE,CAACD,EAAEuC,GAAEvC,CAAC,EAAE,IAAIxW,EAAE0U,EAAE,MAAMrG,GAAEqG,EAAE,MAAM0C,GAAET,EAAE,YAAYoB,CAAC,EAAEX,GAAEpX,EAAE,aAAaoX,GAAEA,GAAE,MAAMpX,EAAE,IAAI,EAAEA,EAAE4W,EAAEzS,EAAE,aAAa,OAAOA,EAAE,aAAa,OAAOoN,GAAE,CAACpW,GAAG,kBAAkBic,GAAEA,GAAE,cAAclW,EAAEmN,EAAC,EAAErO,CAAC,EAAEoX,GAAE,WAAWlW,EAAEmN,EAAC,EAAErO,CAAC,EAAEuR,GAAE,QAAQ8G,GAAE5B,CAAC,EAAElF,GAAE,UAAUwH,GAAE,SAAS/Y,GAAE,CAAC,IAAIqO,EAAE+I,GAAEjc,GAAEuZ,GAAEkC,GAAErF,GAAE,OAAOqF,IAAGA,GAAE,MAAM,EAAEkS,GAAGlS,GAAE,KAAK,GAAGvI,EAAEuI,GAAE,SAAS,KAAKA,EAAC,EAAEQ,IAAGA,GAAER,GAAE,qBAAqBQ,GAAE,KAAKR,EAAC,EAAEzb,GAAEyb,GAAE,QAAQ,KAAKA,EAAC,EAAElC,GAAE,UAAU,CAAC,MAAM,IAAI,MAAM,oBAAoB,CAAC,EAAEkC,GAAE,MAAMD,EAAEC,GAAE,KAAKA,GAAE,SAASA,GAAE,mBAAmBA,GAAE,QAAQ,UAAU,CAAC,MAAM,IAAI,MAAM,oBAAoB,CAAC,EAAEA,GAAE,KAAKmC,GAAEtC,CAAC,EAAEG,GAAE,KAAK,UAAU,CAAC,IAAI5W,GAAE,KAAKwW,GAAE,EAAE,OAAO,KAAK,MAAM,UAAU,CAAC,OAAOA,KAAIxW,GAAE,SAAQ,EAAGA,GAAE,KAAI,CAAE,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOA,EAAC,CAAC,CAAC,EAAE4W,GAAE,MAAM,SAAS5W,GAAE,CAAC,SAASwW,IAAG,CAAC,GAAGjF,GAAE,OAAO,GAAG,CAACvR,GAAC,CAAE,OAAOA,GAAE,CAAC4W,GAAE,KAAK5W,EAAC,CAAC,MAAM4W,GAAE,KAAK,GAAGA,GAAE,MAAM,UAAU,CAAC,MAAM,IAAI,MAAM,0BAA0B,CAAC,EAAEA,GAAE,KAAI,CAAE,CAAC,IAAIH,GAAE,IAAI,QAAQ,SAASD,GAAExW,GAAE,CAACwW,GAAEuC,GAAEvC,EAAC,EAAEjF,GAAE,QAAQ8G,GAAErY,EAAC,EAAE4W,GAAE,KAAK5W,GAAE4W,GAAE,KAAK,SAAS5W,GAAE,CAAC4W,GAAE,KAAKA,GAAE,SAASA,GAAE,mBAAmBA,GAAE,QAAQlC,GAAE8B,GAAExW,EAAC,CAAC,CAAC,CAAC,EAAE,OAAOuR,GAAE,UAAUwH,GAAE,SAAS/Y,GAAE,CAACuR,GAAE,UAAUiF,GAAEA,IAAG,CAAC,EAAEI,GAAE,SAASvI,EAAEuI,GAAE,mBAAmBQ,GAAER,GAAE,QAAQzb,GAAEqb,GAAC,EAAGC,EAAC,EAAED,EAAEI,EAAC,GAAGJ,EAAE,IAAI,CAAC,EAAEC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,SAASzW,EAAE,CAAC,IAAIwW,EAAExW,EAAE,MAAMoX,EAAEpX,EAAE,MAAM7E,EAAEqb,EAAE,MAAM9B,EAAE8B,EAAE,MAAM,OAAO,IAAI,QAAQ,SAASA,EAAExW,EAAE,CAAC,IAAIyW,EAAEW,EAAE,YAAYW,CAAC,EAAEtB,EAAEtb,EAAE,aAAasb,EAAEA,EAAE,MAAMtb,EAAE,IAAI,EAAEkT,GAAEnN,EAAEwT,CAAC,EAAErG,GAAEA,GAAEoI,EAAE,MAAMpI,EAAC,EAAEoI,EAAE,MAAK,EAAGpI,GAAE,UAAU0K,GAAE,SAAS/Y,GAAE,CAAC,OAAOwW,EAAExW,GAAE,OAAO,MAAM,CAAC,CAAC,EAAEqO,GAAE,QAAQgK,GAAErY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACqO,EAAEmI,EAAErb,EAAE0tB,IAAIrS,EAAExW,GAAG,gBAAgB,EAAE,IAAIqO,EAAEmI,EAAE,CAAC,OAAO,CAAC,KAAKA,EAAE,KAAK,OAAOrb,EAAE,IAAI,SAAS6E,EAAE,CAAC,OAAOqO,EAAE,YAAYrO,CAAC,CAAC,CAAC,EAAE,IAAI,SAASwW,EAAE,CAAC,IAAIxW,EAAEwW,EAAE,QAAQC,EAAED,EAAE,cAAcnI,EAAE9R,EAAEyD,CAAC,EAAEoX,EAAE,GAAG/I,EAAE,CAAC,KAAKmI,EAAE,KAAK,WAAW,CAAC,KAAK,KAAK,aAAa,GAAG,SAAexW,GAAN,KAAQ,SAASqO,EAAE,QAAQrO,EAAE,cAAcyW,EAAE,OAAO,GAAG,WAAWmS,GAAG5oB,CAAC,CAAC,EAAE,QAAQ6oB,GAAGrS,EAAE,UAAU,EAAE,IAAI,SAASxW,EAAE,CAAC,OAAOwW,EAAE,MAAMxW,CAAC,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,IAAIwW,EAAExW,EAAE,KAAKyW,EAAEzW,EAAE,OAAOqO,EAAErO,EAAE,WAAWA,EAAEA,EAAE,QAAQwW,EAAE,CAAC,KAAKA,EAAE,SAASja,EAAEyD,CAAC,EAAE,QAAQA,EAAE,OAAOyW,EAAE,WAAWpI,EAAE,WAAWua,GAAG5oB,CAAC,CAAC,EAAE,OAAOoX,EAAE2R,GAAG/oB,CAAC,CAAC,EAAEwW,CAAC,CAAC,EAAE,kBAAkB,SAASxW,EAAE,CAAC,OAAOoX,EAAE2R,GAAG/oB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOoX,EAAE,KAAK,EAAE/I,EAAE,WAAiBrO,GAAN,OAAUoX,EAAE2R,GAAG/oB,CAAC,CAAC,EAAEqO,EAAE,YAAYA,CAAC,CAAC,CAAC,EAAE,UAAU,EAAElT,EAAE,QAAQ,WAAWkT,EAAE,YAAYlT,EAAE,CAAC,CAAC,GAAG,EAAe,OAAO,UAApB,KAA+B,SAAS,KAAK,UAAU,SAAS,GAAG,CAAC,oBAAoB,KAAK,UAAU,SAAS,GAAG,CAAA,EAAG,OAAO,UAAU,UAAU,MAAM,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,EAAEA,EAAEqb,EAAE,OAAO9B,EAAE8B,EAAE,UAAUA,EAAErb,EAAE,OAAO,IAAIsb,CAAC,EAAEG,EAAE,GAAG,OAAOJ,EAAE,QAAQ,SAASxW,EAAE,CAAC,OAAO4W,EAAE5W,EAAE,IAAI,EAAEA,CAAC,CAAC,EAAE,CAAC,MAAM,SAAS,YAAYA,EAAE,YAAY,KAAKA,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,GAAG4W,EAAE5W,CAAC,EAAE,OAAO4W,EAAE5W,CAAC,EAAE,MAAM,IAAI,MAAM,UAAU,OAAOA,EAAE,aAAa,CAAC,CAAC,EAAE,QAAQ,KAAK,QAAQ2oB,GAAGvR,CAAC,EAAE,OAAOjc,CAAC,CAAC,CAAC,SAAS8tB,GAAGjpB,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,OAAAoI,EAAEA,EAAE,YAAmBD,EAAEwS,GAAGxS,EAAEC,EAAEpI,CAAC,EAAE,CAAC,OAAOrO,EAAE,OAAO,OAAO,SAASA,EAAEwW,EAAE,CAAC,OAAAA,EAAEA,EAAE,OAActV,EAAEA,EAAE,CAAA,EAAGlB,CAAC,EAAEwW,EAAExW,CAAC,CAAC,CAAC,EAAEwW,CAAC,CAAC,CAAC,CAAC,SAAS0S,GAAGzS,EAAEzW,EAAE,CAAC,IAAIwW,EAAExW,EAAE,GAAGwW,EAAEyS,GAAGxS,EAAE,aAAaD,EAAEC,EAAE,MAAMzW,CAAC,EAAEyW,EAAE,KAAKD,EAAE,OAAOC,EAAE,OAAO,QAAQ,SAASzW,EAAE,CAAC,IAAIwW,EAAExW,EAAE,KAAKyW,EAAE,KAAK,OAAO,OAAO,KAAK,SAASzW,EAAE,CAAC,OAAOA,EAAE,OAAOwW,CAAC,CAAC,IAAIxW,EAAE,KAAKyW,EAAE,KAAK,MAAMD,CAAC,EAAEC,EAAED,CAAC,YAAYC,EAAE,SAASA,EAAED,CAAC,EAAE,KAAKxW,EAAE,KAAK,CAAC,CAAC,CAAC,SAASmpB,GAAG,EAAEnpB,EAAEwW,EAAErb,EAAE,CAACqb,EAAE,QAAQ,SAASC,EAAE,CAAC,IAAIpI,EAAElT,EAAEsb,CAAC,EAAEzW,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIwW,GAAE,SAASxW,EAAEwW,EAAEC,EAAE,CAAC,OAAOjZ,EAAEgZ,EAAEC,CAAC,IAAID,EAAEoC,EAAEpC,CAAC,IAAIxW,EAAEwW,EAAEC,CAAC,CAAC,GAAEzW,EAAEyW,CAAC,GAAG,CAACD,GAAG,UAAUA,GAAYA,EAAE,QAAX,UAAoBxW,IAAI,EAAE,YAAY,WAAWA,aAAa,EAAE,YAAY4W,EAAE5W,EAAEyW,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,MAAMA,CAAC,CAAC,EAAE,IAAI,SAASzW,EAAE,CAACiZ,EAAE,KAAKxC,EAAE,CAAC,MAAMzW,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAEyW,CAAC,EAAE,IAAI,EAAE,MAAMA,EAAEpI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS+a,GAAG3S,EAAEzW,EAAE,CAACA,EAAE,QAAQ,SAASA,EAAE,CAAC,QAAQwW,KAAKxW,EAAEA,EAAEwW,CAAC,YAAYC,EAAE,OAAO,OAAOzW,EAAEwW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS6S,GAAGrpB,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,KAAK,QAAQwW,EAAE,KAAK,OAAO,CAAC,SAAS8S,GAAG7S,EAAEpI,EAAE+I,EAAEpX,EAAE,CAAC,IAAI7E,EAAEsb,EAAE,UAAU/B,GAAG0C,EAAE,iBAAiB,SAAS,OAAO,GAAG,CAACjc,EAAE,QAAQA,EAAE,MAAMutB,GAAG,QAAQa,GAAG,EAAE,EAAE,CAAC,EAAE,CAAA,CAAE,EAAE9S,EAAE,YAAY,KAAK,OAAO,GAAGA,EAAE,mBAAmB,YAAYA,EAAE,YAAYtb,CAAC,GAAGyb,GAAGlC,EAAE,OAAO0C,CAAC,EAAE1C,EAAE,YAAY,MAAM1U,CAAC,EAAE0U,EAAE,QAAQ,KAAKA,CAAC,GAAGnD,EAAE/V,EAAE,WAAWA,EAAE+B,GAAE,UAAU,CAAC,GAAG/B,EAAE,MAAMkZ,EAAElZ,EAAE,UAAU+V,EAAMlD,IAAJ,EAAM,OAAO6a,GAAGzS,EAAEW,CAAC,EAAEZ,EAAEnI,IAAIrO,EAAE0U,GAAG,WAAW,SAAS,OAAO,EAAE1U,EAAE,MAAM,OAAO,EAAE,IAAI,SAAS,EAAE,KAAK,SAASA,EAAE,CAAC,OAAaA,GAAIwW,CAAC,CAAC,EAAE2C,EAAE,QAAQ3C,CAAC,GAAG,KAAK,SAASxW,EAAE,CAAC,IAAIuR,EAAEkF,EAAEE,EAAE3W,EAAEmE,EAAEuQ,EAAExW,EAAEkZ,EAAEZ,EAAE,CAAA,EAAGxW,EAAEuR,EAAE,UAAUoG,EAAEpG,EAAE,UAAUiY,GAAG,EAAEjY,EAAE,MAAMrT,CAAC,EAAE,OAAY8B,EAAEA,EAAE,OAAO,SAASA,EAAE,CAAC,OAAOA,EAAE,KAAK,SAAS2W,CAAC,CAAC,GAAG,SAAxD,EAA+DwC,EAAE,QAAO,GAAInZ,EAAE,QAAQ,SAAS4W,EAAE,CAACJ,EAAE,KAAK,UAAU,CAAC,IAAIA,EAAEC,EAAEpI,GAAE+I,GAAEO,EAAE3X,EAAE4W,EAAE,KAAK,SAASzb,IAAGsuB,GAAGlY,EAAE6F,GAAElZ,CAAC,EAAEurB,GAAGlY,EAAEvR,EAAE9B,CAAC,EAAEyZ,EAAEpG,EAAE,UAAUvR,EAAEoE,GAAGgT,GAAEpX,CAAC,GAAG0U,IAAGvZ,GAAE,IAAI,QAAQ,SAAS6E,EAAE,CAAC0pB,GAAGxrB,EAAE8B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE7E,GAAE,OAAO,QAAQ,SAAS6E,EAAE,CAAC,GAAGA,EAAE,SAAS,MAAM,IAAIF,GAAE,QAAQ,0CAA0C,EAAE,IAAI0W,GAAEtY,EAAE,YAAY8B,EAAE,IAAI,EAAEA,EAAE,IAAI,QAAQ,SAASA,GAAE,CAAC,OAAO2pB,GAAGnT,GAAExW,EAAC,CAAC,CAAC,EAAEA,EAAE,OAAO,QAAQ,SAASA,GAAE,CAACwW,GAAE,YAAYxW,GAAE,IAAI,EAAE2pB,GAAGnT,GAAExW,EAAC,CAAC,CAAC,EAAEA,EAAE,IAAI,QAAQ,SAASA,GAAE,CAAC,OAAOwW,GAAE,YAAYxW,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE4W,EAAE,KAAK,gBAAgB,GAAGlC,IAAGkC,EAAE,KAAK,QAAQD,EAAE,OAAOuS,GAAG3X,EAAErT,CAAC,EAAEiG,EAAE,gBAAgB,CAAA,EAAGqS,EAAE6C,EAAErZ,CAAC,EAAE7E,GAAE,IAAI,QAAQ,SAAS6E,EAAE,CAACwW,EAAExW,CAAC,EAAEoX,GAAEpX,CAAC,CAAC,CAAC,EAAEopB,GAAG7X,EAAE,CAACA,EAAE,YAAY,SAAS,CAAC,EAAE4X,GAAG5X,EAAE,CAACA,EAAE,YAAY,SAAS,EAAEhW,EAAEib,CAAC,EAAEA,CAAC,EAAErS,EAAE,OAAOqS,GAAGC,EAAEmD,GAAGlF,EAAC,IAAIiK,GAAE,EAAG3e,EAAEmZ,EAAE,OAAO,UAAU,CAAC,IAAInZ,GAAGqO,GAAEqG,GAAEvQ,CAAC,IAAIsS,IAAIzW,EAAEuJ,GAAE,KAAK,KAAK,IAAI,EAAE8E,GAAE,KAAKrO,EAAEA,CAAC,EAAE,CAAC,EAAEqO,IAAe,OAAOA,GAAE,MAArB,WAA0B8K,EAAE,QAAQ9K,EAAC,EAAErO,EAAE,KAAK,UAAU,CAAC,OAAOqO,EAAC,CAAC,CAAC,CAAC,EAAEmI,EAAE,KAAK,SAASxW,EAAE,CAAC,IAAIwW,EAAEC,GAAEpI,GAAEuI,EAAE,KAAK,SAASJ,EAAEnI,GAAEoI,GAAEzW,EAAE,CAAA,EAAG,MAAM,KAAKyW,GAAE,GAAG,gBAAgB,EAAE,QAAQ,SAASzW,EAAE,CAAC,OAAawW,EAAExW,CAAC,GAAT,MAAYyW,GAAE,GAAG,kBAAkBzW,CAAC,CAAC,CAAC,EAAEopB,GAAG7X,EAAE,CAACA,EAAE,YAAY,SAAS,CAAC,EAAE4X,GAAG5X,EAAE,CAACA,EAAE,YAAY,SAAS,EAAEA,EAAE,YAAYA,EAAE,SAAS,EAAEpN,EAAE,OAAOoN,EAAE,SAAS,CAAC,EAAEiF,EAAE,KAAK,SAASxW,EAAE,CAACuR,EAAE,MAAM,iBAAiB,SAAS,OAAO,IAAI,KAAK,KAAKA,EAAE,MAAM,QAAQ,EAAE,IAAIqF,EAAE,KAAK,SAASrF,EAAE,MAAM,kBAAkB,OAAO,EAAE,OAAOA,EAAE,UAAU,MAAMA,EAAE,YAAYA,EAAE,YAAY,OAAO,SAASvR,EAAE,CAAC,OAAgBA,IAAV,OAAW,CAAC,GAAGA,EAAE,YAAY,OAAO,EAAE,IAAI4W,EAAE,KAAK,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,GAAE,SAAS5W,GAAG,CAAC,OAAOwW,EAAE,OAAO2C,EAAE,QAAQ3C,EAAE,MAAK,EAAGrS,EAAE,QAAQ,CAAC,EAAE,KAAKnE,CAAC,EAAEmZ,EAAE,QAAO,CAAE,GAAC,EAAG,KAAK,UAAU,CAACyQ,GAAGjS,EAAEzZ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM0Y,CAAC,EAAE,IAAI5W,EAAEwW,EAAEjb,EAAEJ,CAAC,EAAE,QAAQ,SAAS6E,EAAE,CAAC0pB,GAAGtS,EAAEpX,EAAE7E,EAAE6E,CAAC,EAAE,QAAQ7E,EAAE6E,CAAC,EAAE,OAAO,CAAC,CAAC,EAAEkpB,GAAGzS,EAAEW,CAAC,EAAE+B,EAAE,OAAO,UAAU,CAAC,OAAO1C,EAAE,GAAG,SAAS,KAAK/B,CAAC,CAAC,CAAC,EAAE,MAAMkC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASiT,GAAG7pB,EAAEqO,EAAE,CAACub,GAAG5pB,EAAE,UAAUqO,CAAC,EAAEA,EAAE,GAAG,QAAQ,IAAI,GAAGA,EAAE,iBAAiB,SAAS,OAAO,GAAGA,EAAE,GAAG,kBAAkB,OAAO,EAAE,IAAI,KAAK,KAAKA,EAAE,GAAG,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,IAAImI,EAAEgT,GAAG,EAAExpB,EAAE,MAAMqO,CAAC,EAAEob,GAAGzpB,EAAEA,EAAE,UAAUqO,CAAC,EAAE,QAAQoI,EAAE,EAAEW,EAAEhT,GAAGoS,EAAExW,EAAE,SAAS,EAAE,OAAOyW,EAAEW,EAAE,OAAOX,IAAI,CAAC,IAAItb,GAAGqb,GAAG,CAAC,GAAGA,EAAE,OAAO,QAAQA,EAAE,SAAS,OAAO,QAAQ,KAAK,oCAAoC,OAAOA,EAAE,KAAK,8DAA8D,CAAC,EAAE,CAAC,MAAM,MAAM,EAAE,IAAIC,EAAEpI,EAAE,YAAYmI,EAAE,IAAI,EAAEA,EAAE,IAAI,QAAQ,SAASxW,EAAE,CAACmE,IAAG,QAAQ,MAAM,+CAA+C,OAAOqS,EAAE,KAAK,GAAG,EAAE,OAAOxW,EAAE,GAAG,CAAC,EAAE2pB,GAAGlT,EAAEzW,CAAC,CAAC,CAAC,CAAC,GAAGoX,EAAEX,CAAC,CAAC,EAAE,GAAa,OAAOtb,GAAjB,SAAmB,OAAOA,EAAE,KAAK,CAAC,CAAC,SAASiJ,GAAGpE,EAAEwW,EAAE,CAAC,IAAIC,EAAEpI,EAAE,CAAC,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAO,CAAA,CAAE,EAAE,IAAIoI,KAAKzW,EAAEwW,EAAEC,CAAC,GAAGpI,EAAE,IAAI,KAAKoI,CAAC,EAAE,IAAIA,KAAKD,EAAE,CAAC,IAAIY,EAAEpX,EAAEyW,CAAC,EAAEtb,EAAEqb,EAAEC,CAAC,EAAE,GAAGW,EAAE,CAAC,IAAI1C,EAAE,CAAC,KAAK+B,EAAE,IAAItb,EAAE,SAAS,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAO,CAAA,CAAE,EAAE,GAAG,IAAIic,EAAE,QAAQ,SAAS,KAAK,IAAIjc,EAAE,QAAQ,SAAS,KAAKic,EAAE,QAAQ,OAAOjc,EAAE,QAAQ,KAAKuZ,EAAE,SAAS,GAAGrG,EAAE,OAAO,KAAKqG,CAAC,MAAM,CAAC,IAAIkC,EAAEQ,EAAE,UAAU7F,EAAEpW,EAAE,UAAUwb,EAAE,OAAO,IAAIA,KAAKC,EAAErF,EAAEoF,CAAC,GAAGjC,EAAE,IAAI,KAAKiC,CAAC,EAAE,IAAIA,KAAKpF,EAAE,CAAC,IAAIpN,EAAEyS,EAAED,CAAC,EAAEzY,EAAEqT,EAAEoF,CAAC,EAAExS,EAAEA,EAAE,MAAMjG,EAAE,KAAKwW,EAAE,OAAO,KAAKxW,CAAC,EAAEwW,EAAE,IAAI,KAAKxW,CAAC,CAAC,EAAE,EAAEwW,EAAE,IAAI,QAAQ,EAAEA,EAAE,IAAI,QAAQ,EAAEA,EAAE,OAAO,SAASrG,EAAE,OAAO,KAAKqG,CAAC,CAAC,CAAC,MAAMrG,EAAE,IAAI,KAAK,CAACoI,EAAEtb,CAAC,CAAC,CAAC,CAAC,OAAOkT,CAAC,CAAC,SAASqb,GAAG1pB,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,IAAI+I,EAAEpX,EAAE,GAAG,kBAAkBwW,EAAEC,EAAE,QAAQ,CAAC,QAAQA,EAAE,QAAQ,cAAcA,EAAE,IAAI,EAAE,CAAC,cAAcA,EAAE,IAAI,CAAC,EAAEpI,EAAE,QAAQ,SAASrO,EAAE,CAAC,OAAO2pB,GAAGvS,EAAEpX,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS4pB,GAAGpT,EAAEC,EAAE,CAAClb,EAAEib,CAAC,EAAE,QAAQ,SAASxW,EAAE,CAACyW,EAAE,GAAG,iBAAiB,SAASzW,CAAC,IAAImE,IAAG,QAAQ,MAAM,gCAAgCnE,CAAC,EAAE0pB,GAAGjT,EAAEzW,EAAEwW,EAAExW,CAAC,EAAE,QAAQwW,EAAExW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS2pB,GAAG3pB,EAAEwW,EAAE,CAACxW,EAAE,YAAYwW,EAAE,KAAKA,EAAE,QAAQ,CAAC,OAAOA,EAAE,OAAO,WAAWA,EAAE,KAAK,CAAC,CAAC,CAAC,SAASgT,GAAGxpB,EAAEwW,EAAE,EAAE,CAAC,IAAIjF,EAAE,CAAA,EAAG,OAAO+H,EAAE9C,EAAE,iBAAiB,CAAC,EAAE,QAAQ,SAASxW,EAAE,CAAC,QAAQwW,EAAE,EAAE,YAAYxW,CAAC,EAAEyW,EAAE+R,GAAGC,GAAG/T,EAAE8B,EAAE,OAAO,EAAE9B,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC8B,EAAE,cAAc9B,GAAa,OAAOA,GAAjB,SAAmB,EAAE,EAAErG,EAAE,CAAA,EAAG+I,EAAE,EAAEA,EAAEZ,EAAE,WAAW,OAAO,EAAEY,EAAE,CAAC,IAAIjc,EAAEqb,EAAE,MAAMA,EAAE,WAAWY,CAAC,CAAC,EAAE1C,EAAEvZ,EAAE,QAAQA,EAAEqtB,GAAGrtB,EAAE,KAAKuZ,EAAE,CAAC,CAACvZ,EAAE,OAAO,CAAC,CAACA,EAAE,WAAW,GAAGuZ,GAAa,OAAOA,GAAjB,SAAmB,EAAE,EAAErG,EAAE,KAAKlT,CAAC,CAAC,CAACoW,EAAEvR,CAAC,EAAE0oB,GAAG1oB,EAAEyW,EAAEpI,CAAC,CAAC,CAAC,EAAEkD,CAAC,CAAC,SAASkY,GAAGzpB,EAAEwW,EAAEC,EAAE,CAAC,QAAQpI,EAAEoI,EAAE,GAAG,iBAAiBW,EAAE,EAAEA,EAAE/I,EAAE,OAAO,EAAE+I,EAAE,CAAC,IAAIjc,EAAEkT,EAAE+I,CAAC,EAAE1C,EAAE+B,EAAE,YAAYtb,CAAC,EAAE6E,EAAE,WAAW,WAAW0U,EAAE,QAAQkC,EAAE,EAAEA,EAAElC,EAAE,WAAW,OAAO,EAAEkC,EAAE,CAAC,IAAIrF,EAAEoF,EAAEjC,EAAE,WAAWkC,CAAC,EAAEzS,EAAEuQ,EAAE,MAAMiC,CAAC,EAAE,QAAQxS,EAAY,OAAOA,GAAjB,SAAmBA,EAAE,IAAImV,EAAEnV,CAAC,EAAE,KAAK,GAAG,EAAE,IAAIqS,EAAErb,CAAC,IAAIoW,EAAEiF,EAAErb,CAAC,EAAE,UAAUgJ,CAAC,KAAKoN,EAAE,KAAKoF,EAAE,OAAOH,EAAErb,CAAC,EAAE,UAAUgJ,CAAC,EAAEqS,EAAErb,CAAC,EAAE,UAAUwb,CAAC,EAAEpF,EAAE,CAAC,CAAc,OAAO,UAApB,KAA+B,SAAS,KAAK,UAAU,SAAS,GAAG,CAAC,oBAAoB,KAAK,UAAU,SAAS,GAAGrT,EAAE,mBAAmBA,aAAaA,EAAE,mBAAmB,GAAG,OAAO,UAAU,UAAU,MAAM,eAAe,CAAC,EAAE,CAAC,EAAE,MAAM8B,EAAE,WAAW,GAAG,CAAC,SAASupB,GAAGvpB,EAAE,CAAC,OAAOA,EAAE,MAAM,GAAG,EAAE,IAAI,SAASA,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAE,MAAM,GAAG,EAAEqO,GAASA,EAAEoI,EAAE,CAAC,IAAZ,KAAe,OAAOpI,EAAE,KAAI,EAAGoI,GAAGzW,EAAEyW,EAAE,CAAC,EAAE,QAAQ,QAAQ,eAAe,EAAE,EAAEW,EAAE,MAAM,KAAKX,CAAC,EAAEA,EAAE,MAAM,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,EAAEA,EAAE,OAAO+R,GAAG/R,EAAEW,GAAG,KAAK,KAAK,KAAKpX,CAAC,EAAE,KAAK,KAAKA,CAAC,EAAE,OAAO,KAAKA,CAAC,EAAEzD,EAAE6a,CAAC,EAAMZ,IAAJ,EAAMnI,CAAC,CAAC,CAAC,CAAC,CAACyb,GAAG,UAAU,mBAAmBpB,GAAGoB,GAAG,UAAU,kBAAkBP,GAAGO,GAAG,UAAU,iBAAiB,SAASzb,EAAE+I,EAAE,CAAC,IAAIjc,EAAE,KAAKI,EAAE8S,CAAC,EAAE,QAAQ,SAASrO,EAAE,CAAC,GAAUqO,EAAErO,CAAC,IAAV,KAAY,CAAC,IAAIwW,EAAErb,EAAE,kBAAkBkT,EAAErO,CAAC,CAAC,EAAEyW,EAAED,EAAE,MAAK,EAAG,GAAG,CAACC,EAAE,MAAM,IAAI3W,GAAE,OAAO,4BAA4BE,EAAE,KAAKqO,EAAErO,CAAC,CAAC,EAAE,GAAGyW,EAAE,OAAO,GAAGA,EAAE,MAAM,MAAM,IAAI3W,GAAE,OAAO,mCAAmC,EAAE0W,EAAE,QAAQ,SAASxW,EAAE,CAAC,GAAGA,EAAE,KAAK,MAAM,IAAIF,GAAE,OAAO,sDAAsD,EAAE,GAAG,CAACE,EAAE,QAAQ,MAAM,IAAIF,GAAE,OAAO,sDAAsD,CAAC,CAAC,EAAE2W,EAAEtb,EAAE,mBAAmB6E,EAAEyW,EAAED,CAAC,EAAEY,EAAEpX,CAAC,EAAEyW,CAAC,CAAC,CAAC,CAAC,EAAEqT,GAAG,UAAU,OAAO,SAAS9pB,EAAE,CAAC,IAAIwW,EAAE,KAAK,GAAGxW,GAAG,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa0U,EAAE,KAAK,KAAK,aAAa1U,CAAC,EAAEA,EAAEwW,EAAE,WAAWC,EAAE,CAAA,EAAGpI,EAAE,CAAA,EAAG,OAAOrO,EAAE,QAAQ,SAASA,EAAE,CAAC0U,EAAE+B,EAAEzW,EAAE,KAAK,YAAY,EAAEqO,EAAErO,EAAE,KAAK,SAAS,CAAA,EAAGA,EAAE,iBAAiByW,EAAEpI,CAAC,CAAC,CAAC,EAAEmI,EAAE,UAAUnI,EAAE+a,GAAG5S,EAAE,CAACA,EAAE,WAAWA,EAAEA,EAAE,YAAY,SAAS,CAAC,EAAE2S,GAAG3S,EAAE,CAACA,EAAE,WAAWA,EAAEA,EAAE,YAAY,UAAU,KAAK,KAAK,MAAM,EAAEjb,EAAE8S,CAAC,EAAEA,CAAC,EAAEmI,EAAE,YAAYjb,EAAE8S,CAAC,EAAE,IAAI,EAAEyb,GAAG,UAAU,QAAQ,SAAS9pB,EAAE,CAAC,OAAO,KAAK,KAAK,eAAeqb,GAAG,KAAK,KAAK,gBAAgBjF,GAAEpW,CAAC,EAAE,IAAI,EAAE,IAAI+pB,GAAGD,GAAG,SAASA,IAAI,CAAA,CAAE,SAASE,GAAGhqB,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAE,WAAW,OAAOyW,IAAIA,EAAEzW,EAAE,WAAW,IAAIoZ,GAAEoG,GAAG,CAAC,OAAO,CAAA,EAAG,UAAUxf,EAAE,YAAYwW,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,EAAEC,EAAE,MAAM,SAAS,CAAC,CAAC,SAASwT,GAAGjqB,EAAE,CAAC,OAAOA,GAAe,OAAOA,EAAE,WAArB,UAA8B,CAAC,SAASkqB,GAAGlqB,EAAE,CAAC,OAAOzC,GAAE,UAAU,CAAC,OAAO/B,EAAE,WAAW,GAAGwE,EAAC,CAAE,CAAC,CAAC,CAAC,SAASmqB,GAAGnqB,EAAE,CAAC,MAAM,EAAE,SAASA,EAAE,CAAC,IAAI8X,GAAE,SAAS9X,EAAEwW,EAAE,CAAC,IAAIC,EAAE,GAAG,CAAC,KAAK,OAAOA,EAAE,IAAIqB,GAAE9X,GAAG,MAAMA,GAAG0U,EAAE+B,EAAEzW,CAAC,EAAEyW,EAAE/B,EAAE,KAAK,UAAU,OAAO,CAAC,EAAE,EAAE,KAAK1U,EAAE,GAAG,EAAE,UAAU,OAAOwW,EAAExW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAASoqB,GAAGpqB,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAEqK,GAAElC,EAAEC,CAAC,EAAE,GAAG,CAAC,MAAMpI,CAAC,EAAE,CAAC,GAAG,EAAEA,EAAE,MAAM,WAAU,EAAG,GAAG8b,GAAGnqB,CAAC,EAAE,OAAO0U,EAAE1U,EAAE,CAAC,KAAKwW,EAAE,GAAGC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAIpI,EAAErO,EAAE,EAAEoX,EAAEpX,EAAE,EAAE,GAAG0Y,GAAEjC,EAAEzW,EAAE,IAAI,EAAE,EAAE,OAAOqO,EAAE+b,GAAG/b,EAAEmI,EAAEC,CAAC,EAAEzW,EAAE,EAAE,CAAC,KAAKwW,EAAE,GAAGC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE4T,GAAGrqB,CAAC,EAAE,GAAG,EAAE0Y,GAAElC,EAAExW,EAAE,EAAE,EAAE,OAAOoX,EAAEgT,GAAGhT,EAAEZ,EAAEC,CAAC,EAAEzW,EAAE,EAAE,CAAC,KAAKwW,EAAE,GAAGC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE4T,GAAGrqB,CAAC,EAAE0Y,GAAElC,EAAExW,EAAE,IAAI,EAAE,IAAIA,EAAE,KAAKwW,EAAExW,EAAE,EAAE,KAAKA,EAAE,EAAEoX,EAAEA,EAAE,EAAE,EAAE,GAAG,EAAEsB,GAAEjC,EAAEzW,EAAE,EAAE,IAAIA,EAAE,GAAGyW,EAAEzW,EAAE,EAAE,KAAKA,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,GAAGwW,EAAE,CAACxW,EAAE,EAAEqO,GAAG,CAACrO,EAAE,GAAGsqB,GAAGtqB,EAAEqO,CAAC,EAAE+I,GAAGZ,GAAG8T,GAAGtqB,EAAEoX,CAAC,CAAC,CAAC,CAAC,SAASkT,GAAGtqB,EAAEwW,EAAE,CAAC2T,GAAG3T,CAAC,IAAG,SAASxW,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAEoI,EAAE,KAAKW,EAAEX,EAAE,EAAEtb,EAAEsb,EAAE,EAAE2T,GAAG5T,EAAEnI,EAAEoI,EAAE,EAAE,EAAEW,GAAGpX,EAAEwW,EAAEY,CAAC,EAAEjc,GAAG6E,EAAEwW,EAAErb,CAAC,CAAC,GAAE6E,EAAEwW,CAAC,CAAC,CAAC,SAAS+T,GAAGvqB,EAAEwW,EAAE,CAAC,IAAIC,EAAE+T,GAAGhU,CAAC,EAAEnI,EAAEoI,EAAE,KAAI,EAAG,GAAG,CAACpI,EAAE,KAAK,QAAQ+I,EAAE/I,EAAE,MAAMlT,EAAEqvB,GAAGxqB,CAAC,EAAE0U,EAAEvZ,EAAE,KAAKic,EAAE,IAAI,EAAER,EAAElC,EAAE,MAAM,CAACrG,EAAE,MAAM,CAACqG,EAAE,MAAM,CAAC,GAAGgE,GAAE9B,EAAE,KAAKQ,EAAE,EAAE,GAAG,GAAG,GAAGsB,GAAE9B,EAAE,GAAGQ,EAAE,IAAI,EAAE,MAAM,GAAGsB,GAAEtB,EAAE,KAAKR,EAAE,IAAI,EAAE,EAAEQ,GAAG/I,EAAEoI,EAAE,KAAKG,EAAE,IAAI,GAAG,MAAMA,GAAGlC,EAAEvZ,EAAE,KAAKic,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAASoT,GAAGxqB,EAAE,CAAC,IAAIyW,EAAE0T,GAAGnqB,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,EAAEA,CAAC,EAAE,MAAM,CAAC,KAAK,SAASA,EAAE,CAAC,QAAQwW,EAAE,EAAE,UAAU,OAAOC,GAAG,OAAOA,EAAE,EAAC,CAAE,IAAK,GAAE,GAAGA,EAAE,EAAE,EAAED,EAAE,KAAKC,EAAE,EAAE,GAAGiC,GAAE1Y,EAAEyW,EAAE,EAAE,IAAI,EAAE,GAAGA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAKA,EAAE,EAAE,GAAGA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAK,GAAE,GAAGA,EAAE,EAAE,EAAE,CAACD,GAAGkC,GAAE1Y,EAAEyW,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAMA,EAAE,EAAE,KAAK,EAAE,EAAE,IAAK,GAAE,GAAGA,EAAE,EAAE,EAAE,CAACA,EAAE,EAAE,EAAEA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAK,GAAEA,EAAEA,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS4T,GAAGrqB,EAAE,CAAC,IAAIwW,EAAEC,EAAEpI,EAAE+I,KAAWA,EAAEpX,EAAE,IAAX,KAAc,OAAOoX,EAAE,IAAI,MAAYA,EAAEpX,EAAE,IAAX,KAAc,OAAOoX,EAAE,IAAI,GAAGA,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAG,IAAI,GAAGA,IAAIZ,EAAOY,GAAL,IAAO,IAAI,IAAIX,EAAEvV,EAAE,CAAA,EAAGlB,CAAC,EAAEqO,EAAErO,EAAEoX,CAAC,EAAEpX,EAAE,KAAKqO,EAAE,KAAKrO,EAAE,GAAGqO,EAAE,GAAGrO,EAAEoX,CAAC,EAAE/I,EAAE+I,CAAC,EAAEX,EAAEW,CAAC,EAAE/I,EAAEmI,CAAC,GAAGxW,EAAEwW,CAAC,EAAEC,GAAG,EAAEgU,GAAGhU,CAAC,GAAGzW,EAAE,EAAEyqB,GAAGzqB,CAAC,CAAC,CAAC,SAASyqB,GAAGzqB,EAAE,CAAC,IAAIwW,EAAExW,EAAE,EAAEA,EAAEA,EAAE,EAAE,OAAOwW,EAAExW,EAAE,KAAK,IAAIwW,EAAE,EAAExW,EAAE,CAAC,EAAEwW,EAAE,EAAExW,EAAEA,EAAE,EAAE,GAAG,CAAC,CAAC,SAAS0qB,GAAGlU,EAAEC,EAAE,CAAC,OAAOlb,EAAEkb,CAAC,EAAE,QAAQ,SAASzW,EAAE,CAACwW,EAAExW,CAAC,EAAEsqB,GAAG9T,EAAExW,CAAC,EAAEyW,EAAEzW,CAAC,CAAC,EAAEwW,EAAExW,CAAC,GAAE,SAASA,EAAEwW,EAAE,CAAC,IAAIC,EAAEpI,EAAE+I,EAAE,CAAA,EAAG,IAAIX,KAAKD,EAAEoB,EAAEpB,EAAEC,CAAC,IAAIpI,EAAEmI,EAAEC,CAAC,EAAEW,EAAEX,CAAC,EAAE,CAACpI,GAAa,OAAOA,GAAjB,UAAoBiT,GAAE,IAAIjT,EAAE,WAAW,EAAEA,EAAErO,EAAEqO,CAAC,GAAG,OAAO+I,CAAC,GAAEX,EAAEzW,CAAC,CAAC,CAAC,CAAC,EAAEwW,CAAC,CAAC,SAASmU,GAAGnU,EAAEC,EAAE,CAAC,OAAOD,EAAE,KAAKC,EAAE,KAAK,OAAO,KAAKD,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAOyW,EAAEzW,CAAC,GAAGuqB,GAAG9T,EAAEzW,CAAC,EAAEwW,EAAExW,CAAC,CAAC,CAAC,CAAC,CAAC,CAACkY,EAAEJ,GAAE,YAAYtB,EAAE,CAAC,IAAI,SAASxW,EAAE,CAAC,OAAOsqB,GAAG,KAAKtqB,CAAC,EAAE,IAAI,EAAE,OAAO,SAASA,EAAE,CAAC,OAAOoqB,GAAG,KAAKpqB,EAAEA,CAAC,EAAE,IAAI,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIwW,EAAE,KAAK,OAAOxW,EAAE,QAAQ,SAASA,EAAE,CAAC,OAAOoqB,GAAG5T,EAAExW,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,SAASA,EAAE,CAAC,IAAIwW,EAAEgU,GAAG,IAAI,EAAE,KAAKxqB,CAAC,EAAE,MAAM,OAAOwW,GAAGkC,GAAElC,EAAE,KAAKxW,CAAC,GAAG,GAAG,GAAG0Y,GAAElC,EAAE,GAAGxW,CAAC,CAAC,CAAC,GAAG0Z,EAAE,EAAE,UAAU,CAAC,OAAO8Q,GAAG,IAAI,CAAC,EAAEhU,EAAC,EAAG,IAAIoU,GAAG,CAAA,EAAGC,GAAG,GAAGC,GAAG,GAAG,SAASC,GAAG/qB,EAAE,CAAC0qB,GAAGG,GAAG7qB,CAAC,EAAE8qB,KAAKA,GAAG,GAAG,WAAW,UAAU,CAACA,GAAG,GAAGE,GAAGH,GAAG,EAAEA,GAAG,CAAA,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAASG,GAAGhrB,EAAEwW,EAAE,CAAUA,IAAT,SAAaA,EAAE,IAAI,IAAIC,EAAE,IAAI,IAAI,GAAGzW,EAAE,IAAI,QAAQqO,EAAE,EAAE+I,EAAE,OAAO,OAAOwT,EAAE,EAAEvc,EAAE+I,EAAE,OAAO/I,IAAI4c,GAAGrU,EAAEQ,EAAE/I,CAAC,EAAErO,EAAEyW,EAAED,CAAC,MAAO,SAAQrb,KAAK6E,EAAE,CAAC,IAAI0U,EAAEkC,EAAEzb,EAAE,yBAAyB,KAAKA,CAAC,EAAEA,IAAIuZ,EAAEvZ,EAAE,CAAC,EAAEA,EAAEA,EAAE,CAAC,EAAEyb,EAAEgU,GAAG,SAAS,OAAOlW,EAAE,GAAG,EAAE,OAAOvZ,CAAC,CAAC,IAAI8vB,GAAGrU,EAAE5W,EAAEyW,EAAED,CAAC,CAAC,CAACC,EAAE,QAAQ,SAASzW,EAAE,CAAC,OAAOA,GAAG,CAAC,CAAC,CAAC,SAASirB,GAAGjrB,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,QAAQ+I,EAAE,GAAGjc,EAAE,EAAEuZ,EAAE,OAAO,QAAQ1U,EAAE,QAAQ,KAAK,EAAE7E,EAAEuZ,EAAE,OAAOvZ,IAAI,CAAC,QAAQyb,EAAElC,EAAEvZ,CAAC,EAAEoW,EAAEqF,EAAE,CAAC,EAAED,EAAE,CAAA,EAAGxS,EAAE,EAAEjG,EAAE0Y,EAAE,CAAC,EAAEzS,EAAEjG,EAAE,OAAOiG,IAAI,CAAC,IAAIwT,EAAEzZ,EAAEiG,CAAC,EAAEwmB,GAAGnU,EAAEmB,EAAE,MAAM,EAAEA,EAAE,YAAY,QAAQ,SAAS3X,EAAE,CAAC,OAAOyW,EAAE,IAAIzW,CAAC,CAAC,CAAC,EAAEqO,GAAGsI,EAAE,KAAKgB,CAAC,CAAC,CAACtJ,GAAG+I,EAAE,KAAK,CAAC7F,EAAEoF,CAAC,CAAC,CAAC,CAAC,GAAGtI,EAAE,QAAQwI,EAAE,EAAEpD,EAAE2D,EAAEP,EAAEpD,EAAE,OAAOoD,IAAI,CAAC,IAAItZ,EAAEkW,EAAEoD,CAAC,EAAEtF,EAAEhU,EAAE,CAAC,EAAEoZ,EAAEpZ,EAAE,CAAC,EAAEyC,EAAE,QAAQ,MAAMuR,CAAC,EAAEoF,CAAC,CAAC,CAAC,SAASuU,GAAGvT,EAAE,CAAC,IAAId,EAAEc,EAAE,OAAOtJ,EAAEsJ,EAAE,MAAM,UAAU,GAAGd,EAAE,eAAec,EAAE,MAAM,OAAOd,EAAE,eAAe,KAAK,UAAU,CAAC,OAAOA,EAAE,YAAYkB,GAAElB,EAAE,WAAW,EAAEc,CAAC,CAAC,EAAEd,EAAE,cAAc,GAAGA,EAAE,YAAY,KAAKA,EAAE,aAAa,GAAG,IAAIL,EAAEK,EAAE,cAAc,EAAE,KAAK,MAAM,GAAGc,EAAE,KAAK,EAAEpa,EAAE,GAAG,SAASyC,GAAG,CAAC,GAAG6W,EAAE,gBAAgBL,EAAE,MAAM,IAAI1W,GAAE,eAAe,yBAAyB,CAAC,CAAC,SAASyJ,GAAG,CAAC,OAAO,IAAI4P,EAAE,SAASxC,EAAEF,EAAE,CAAC,GAAGzW,EAAC,EAAG,CAACqO,EAAE,MAAM,IAAIvO,GAAE,WAAW,IAAIqE,EAAEwT,EAAE,KAAKzZ,EAAE2Y,EAAE,YAAY,CAAC,EAAExI,EAAE,KAAKlK,CAAC,EAAEkK,EAAE,KAAKlK,EAAE,CAAC,EAAE,GAAG,CAACjG,EAAE,MAAM,IAAI4B,GAAE,WAAW5B,EAAE,QAAQma,GAAE5B,CAAC,EAAEvY,EAAE,UAAU6a,GAAEpB,EAAE,cAAc,EAAEzZ,EAAE,gBAAgB6a,GAAE,SAAS/Y,EAAE,CAAC,IAAIwW,EAAEoB,EAAE1Z,EAAE,YAAY2Y,EAAE,YAAY,CAACc,EAAE,SAAS,cAAczZ,EAAE,QAAQ4iB,GAAGlJ,EAAE,MAAK,EAAG1Z,EAAE,OAAO,MAAK,GAAIsY,EAAEnI,EAAE,eAAelK,CAAC,GAAG,UAAUqS,EAAE,QAAQuC,GAAE,UAAU,CAACtC,EAAE,IAAI3W,GAAE,eAAe,YAAY,OAAOqE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAIyT,EAAE,QAAQS,GAAE5B,CAAC,EAAED,EAAExW,EAAE,WAAW,KAAK,IAAI,EAAE,EAAE,EAAE,EAAEA,EAAE,WAAW2U,EAAE6B,EAAE,EAAEmB,EAAE,MAAMzZ,EAAE,OAAOX,GAAGssB,GAAGlS,EAAEC,CAAC,EAAE0R,GAAG3R,EAAEnB,EAAE,GAAGoB,EAAEnB,CAAC,EAAE,EAAEA,CAAC,EAAEvY,EAAE,UAAU6a,GAAE,UAAU,CAACnB,EAAE,KAAK,IAAI5X,EAAEwW,EAAEC,EAAEpI,EAAE+I,EAAEjc,GAAEuZ,GAAEiD,EAAE,MAAMzZ,EAAE,OAAO0Y,EAAE0C,EAAE5E,GAAE,gBAAgB,EAAE,GAAG,EAAEkC,EAAE,OAAO,GAAG,CAAC,IAAIrF,GAAEmD,GAAE,aAAiB0C,EAAER,GAAG,SAAV,EAAiBQ,EAAE,CAAC,EAAEA,EAAE,UAAU,EAAE,GAAGP,EAAE,WAAW1b,GAAEuZ,GAAErG,EAAEkD,IAAGkF,EAAEkB,GAAG,MAAMxc,GAAE,QAAQ,GAAGkT,EAAEoI,EAAE,UAAU+S,GAAG,EAAEruB,GAAEkT,CAAC,EAAEoI,EAAE,YAAY6C,EAAEne,GAAE,iBAAiB,CAAC,EAAEguB,GAAG1S,EAAE,CAACA,EAAE,UAAU,EAAElb,EAAE8S,CAAC,EAAEA,CAAC,UAAUob,GAAG9R,EAAEA,EAAE,UAAUpG,EAAC,EAAEiF,EAAEjF,KAAIiF,EAAEpS,GAAGolB,GAAG,GAAGxpB,EAAE2X,GAAG,MAAMnB,CAAC,EAAExW,EAAE,SAAS,GAAG,IAAI,QAAQwW,EAAE,OAAO,KAAK,SAASxW,GAAE,CAAC,OAAOA,GAAE,IAAI,QAAQA,GAAE,OAAO,MAAM,CAAC,IAAI,CAACzC,EAAE,OAAO,QAAQ,KAAK,kLAAkL,EAAEmX,GAAE,MAAK,EAAG,EAAEA,GAAE,QAAQ,EAAEnX,EAAE,GAAGoZ,EAAEpN,GAAG,EAAE2f,GAAGvR,EAAEpG,EAAC,CAAC,MAAS,CAAA,CAAE+N,GAAG,KAAK3H,CAAC,EAAEjD,GAAE,gBAAgBqE,GAAE,SAAS/Y,GAAE,CAAC6W,EAAE,QAAQ,GAAGc,EAAE,GAAG,eAAe,EAAE,KAAK3X,EAAC,CAAC,CAAC,EAAE0U,GAAE,QAAQqE,GAAE,UAAU,CAACpB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAEhD,IAAIiC,EAAEe,EAAE,MAAMP,EAAEjT,EAAE8lB,GAAG9uB,GAAEyb,EAAE,SAAS,GAAGQ,IAAIoI,IAAIwK,GAAG7uB,GAAEyb,EAAE,WAAW,EAAE,IAAI,CAAC,KAAKQ,CAAC,CAAC,EAAE,MAAMhB,EAAC,GAAGO,GAAG,EAAEF,CAAC,CAAC,CAAC,EAAE,MAAM,SAASzW,EAAE,CAAC,OAAsBA,GAAE,MAAM,IAAI,eAAe,GAAG,EAAE6W,EAAE,eAAe,OAAOA,EAAE,iBAAiB,QAAQ,KAAK,qDAAqD,EAAEtN,IAAI,MAAM,IAAI,eAAe,GAAG,EAAE,EAAE,OAAO,EAAE,EAAEA,EAAC,CAAE,CAAC,OAAO4P,EAAE,OAAOnZ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIyW,EAAEW,EAAEP,EAAE,eAAee,EAAE,KAAKjD,EAAE,GAAG,OAAOwE,EAAE,KAAK,CAAC3C,GAAgB,OAAO,UAApB,IAA8B2C,EAAE,QAAO,EAAG,CAAC,UAAU,eAAe,WAAW,KAAK,UAAU,SAAS,GAAG,CAAC,iBAAiB,KAAK,UAAU,SAAS,GAAG,UAAU,UAAU,IAAI,QAAQ,SAASnZ,EAAE,CAAC,SAASwW,GAAG,CAAC,OAAO,UAAU,YAAY,QAAQxW,CAAC,CAAC,CAACyW,EAAE,YAAYD,EAAE,GAAG,EAAEA,EAAC,CAAE,CAAC,EAAE,QAAQ,UAAU,CAAC,OAAO,cAAcC,CAAC,CAAC,CAAC,EAAE,QAAQ,QAAO,GAAI,KAAKlN,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOvJ,EAAC,EAAG6W,EAAE,kBAAkB,CAAA,EAAGsC,EAAE,QAAQ+Q,GAAG,UAAU,CAAC,OAAOvS,EAAE,GAAG,MAAM,KAAKA,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS3X,GAAG,CAAC,IAAIwW,EAAE,GAAG,EAAEK,EAAE,kBAAkB,OAAO,OAAOL,EAAEK,EAAE,kBAAkB,OAAOwE,GAAGjF,EAAC,EAAES,EAAE,kBAAkB,CAAA,EAAGsC,EAAE,QAAQ+Q,GAAG,UAAU,CAAC,OAAO1T,EAAEmB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK3X,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,UAAU,CAAC6W,EAAE,gBAAgBL,IAAIK,EAAE,kBAAkB,KAAKA,EAAE,cAAc,GAAG,CAAC,EAAE,MAAM,SAAS7W,EAAE,CAAC6W,EAAE,YAAY7W,EAAE,GAAG,CAAC4X,GAAGA,EAAE,MAAK,CAAE,MAAS,CAAA,CAAE,OAAOpB,IAAIK,EAAE,eAAec,EAAE,SAASI,GAAE/X,CAAC,CAAC,CAAC,EAAE,QAAQ,UAAU,CAAC6W,EAAE,aAAa,GAAGO,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,IAAIX,EAAE,OAAO9B,IAAI8B,EAAE,CAAA,EAAGkB,EAAE,OAAO,QAAQ,SAASnB,EAAE,CAACA,EAAE,OAAO,QAAQ,QAAQ,SAASxW,EAAE,CAACA,EAAE,OAAOyW,EAAE,SAAS,OAAOkB,EAAE,KAAK,GAAG,EAAE,OAAOnB,EAAE,KAAK,GAAG,EAAE,OAAOxW,EAAE,IAAI,CAAC,EAAE,IAAI8X,GAAE,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,EAAE,CAAC,EAAErB,EAAE,SAAS,OAAOkB,EAAE,KAAK,GAAG,EAAE,OAAOnB,EAAE,KAAK,GAAG,CAAC,EAAEC,EAAE,SAAS,OAAOkB,EAAE,KAAK,GAAG,EAAE,OAAOnB,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAIsB,GAAE,KAAK,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC,EAAEyQ,GAAGF,EAAE,EAAE,KAAK5R,CAAC,EAAEuU,GAAGvU,EAAE,EAAE,GAAGkB,CAAC,CAAC,CAAC,CAAC,SAASwT,GAAG3U,EAAE,CAAC,SAASxW,EAAEA,EAAE,CAAC,OAAOwW,EAAE,KAAKxW,CAAC,CAAC,CAAC,IAAIqO,EAAEoI,EAAEzW,CAAC,EAAEoX,EAAEX,EAAE,SAASzW,EAAE,CAAC,OAAOwW,EAAE,MAAMxW,CAAC,CAAC,CAAC,EAAE,SAASyW,EAAEA,EAAE,CAAC,OAAO,SAASzW,EAAE,CAAC,IAAIA,EAAEyW,EAAEzW,CAAC,EAAEwW,EAAExW,EAAE,MAAM,OAAOA,EAAE,KAAKwW,EAAEA,GAAe,OAAOA,EAAE,MAArB,WAA0BA,EAAE,KAAKnI,EAAE+I,CAAC,EAAE7a,EAAEia,CAAC,EAAE,QAAQ,IAAIA,CAAC,EAAE,KAAKnI,EAAE+I,CAAC,EAAE/I,EAAEmI,CAAC,CAAC,CAAC,CAAC,OAAOC,EAAEzW,CAAC,EAAC,CAAE,CAAC,SAASorB,GAAGprB,EAAEwW,EAAEC,EAAE,CAAC,QAAQpI,EAAE9R,EAAEyD,CAAC,EAAEA,EAAE,QAAQ,CAACA,CAAC,EAAEoX,EAAE,EAAEA,EAAEX,EAAE,EAAEW,EAAE/I,EAAE,KAAKmI,CAAC,EAAE,OAAOnI,CAAC,CAAC,IAAIgd,GAAG,CAAC,MAAM,SAAS,KAAK,yBAAyB,MAAM,EAAE,OAAO,SAASlnB,EAAE,CAAC,OAAOjD,EAAEA,EAAE,CAAA,EAAGiD,CAAC,EAAE,CAAC,MAAM,SAASnE,EAAE,CAAC,IAAI7E,EAAEgJ,EAAE,MAAMnE,CAAC,EAAEA,EAAE7E,EAAE,OAAOyb,EAAE,CAAA,EAAGrF,EAAE,GAAG,SAASoF,EAAE3W,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE0a,GAAG/oB,CAAC,EAAEoX,EAAER,EAAEvI,CAAC,EAAEuI,EAAEvI,CAAC,GAAG,CAAA,EAAGlT,EAAQ6E,GAAN,KAAQ,EAAY,OAAOA,GAAjB,SAAmB,EAAEA,EAAE,OAAO0U,EAAE,EAAE8B,EAAEnI,EAAEnN,EAAEA,EAAE,CAAA,EAAGuV,CAAC,EAAE,CAAC,KAAK/B,EAAE,GAAG,OAAOrG,EAAE,gBAAgB,EAAE,OAAOoI,EAAE,KAAK,GAAG,EAAEA,EAAE,KAAK,cAAcA,EAAE,UAAU/B,EAAE,QAAQ8B,EAAE,UAAUrb,EAAE,WAAWytB,GAAG5oB,CAAC,EAAE,OAAO,CAAC0U,GAAG+B,EAAE,MAAM,CAAC,EAAE,OAAOW,EAAE,KAAK/I,CAAC,EAAEA,EAAE,cAAckD,EAAE,KAAKlD,CAAC,EAAE,EAAElT,GAAGwb,EAAMxb,IAAJ,EAAM6E,EAAE,CAAC,EAAEA,EAAE,MAAM,EAAE7E,EAAE,CAAC,EAAEqb,EAAE,EAAEC,CAAC,EAAEW,EAAE,KAAK,SAASpX,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,QAAQwW,EAAE,OAAO,CAAC,EAAEnI,CAAC,CAAC,IAAImI,EAAEG,EAAE3W,EAAE,WAAW,QAAQ,EAAEA,EAAE,UAAU,EAAE4W,EAAE,KAAK,EAAE,CAACJ,CAAC,EAAE,QAAQC,EAAE,EAAEpI,EAAErO,EAAE,QAAQyW,EAAEpI,EAAE,OAAOoI,IAAI,CAAC,IAAIW,EAAE/I,EAAEoI,CAAC,EAAEE,EAAES,EAAE,QAAQ,EAAEA,CAAC,CAAC,CAAC,SAAS1C,EAAE1U,EAAE,CAAC,IAAIwW,EAAEC,EAAEzW,EAAE,MAAM,MAAM,OAAOyW,EAAE,UAAUvV,EAAEA,EAAE,CAAA,EAAGlB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAMyW,EAAE,cAAc,OAAOD,EAAExW,EAAE,MAAM,MAAMyW,EAAEA,EAAE,QAAQ,CAAC,KAASD,EAAE,OAAN,EAAW,EAAEA,EAAE,KAAK,MAAM4U,GAAG5U,EAAE,MAAMA,EAAE,UAAUrS,EAAE,QAAQA,EAAE,QAAQsS,CAAC,EAAE,UAAU,GAAG,MAAM2U,GAAG5U,EAAE,MAAMA,EAAE,UAAUrS,EAAE,QAAQA,EAAE,QAAQsS,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAEzW,CAAC,CAAC,OAAOkB,EAAEA,EAAE,GAAG/F,CAAC,EAAE,CAAC,OAAO+F,EAAEA,EAAE,CAAA,EAAGlB,CAAC,EAAE,CAAC,WAAWwW,EAAE,QAAQjF,EAAE,kBAAkB,SAASvR,EAAE,CAAC,OAAOA,EAAE4W,EAAEmS,GAAG/oB,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OAAO7E,EAAE,MAAMuZ,EAAE1U,CAAC,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OAAO7E,EAAE,MAAMuZ,EAAE1U,CAAC,CAAC,CAAC,EAAE,WAAW,SAASwW,EAAE,CAAC,IAAIxW,EAAEwW,EAAE,MAAM,MAAMnI,EAAErO,EAAE,QAAQoX,EAAEpX,EAAE,UAAU,OAAOA,EAAE,UAAU7E,EAAE,WAAWuZ,EAAE8B,CAAC,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAOA,GAAGyW,EAAEzW,CAAC,CAAC,CAAC,EAAE7E,EAAE,WAAWqb,CAAC,EAAE,SAASC,EAAEA,EAAE,CAAC,OAAO,OAAO,OAAOA,EAAE,CAAC,SAAS,CAAC,MAAM,SAASzW,EAAE,CAAOA,GAAN,KAAQyW,EAAE,SAAS2U,GAAGprB,EAAEwW,EAAE,QAAQrS,EAAE,QAAQA,EAAE,QAAQkK,CAAC,CAAC,EAAEmI,EAAE,OAAOC,EAAE,SAASA,EAAE,IAAI,MAAM,EAAEW,CAAC,EAAE,OAAOZ,EAAE,QAAQrS,EAAE,QAAQA,EAAE,QAAQkK,CAAC,CAAC,EAAEoI,EAAE,SAAQ,CAAE,CAAC,EAAE,mBAAmB,CAAC,MAAM,SAASzW,EAAEwW,EAAE,CAACC,EAAE,mBAAmB2U,GAAGprB,EAAEmE,EAAE,QAAQkK,CAAC,EAAEmI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,OAAOC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,IAAIzW,EAAEyW,EAAE,IAAI,OAAWW,IAAJ,EAAMpX,EAAE,CAAC,EAAEA,EAAE,MAAM,EAAEoX,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAOX,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS6U,GAAG,EAAEnwB,EAAEuZ,EAAEkC,EAAE,CAAC,OAAOlC,EAAEA,GAAG,CAAA,EAAGkC,EAAEA,GAAG,GAAGrb,EAAE,CAAC,EAAE,QAAQ,SAASyE,EAAE,CAAC,IAAIwW,EAAEC,EAAEpI,EAAEuJ,EAAEzc,EAAE6E,CAAC,GAAGwW,EAAE,EAAExW,CAAC,EAAEyW,EAAEtb,EAAE6E,CAAC,EAAY,OAAOwW,GAAjB,UAA8B,OAAOC,GAAjB,UAAoBD,GAAGC,GAAGpI,EAAEkL,GAAG/C,CAAC,KAAK+C,GAAG9C,CAAC,EAAE/B,EAAEkC,EAAE5W,CAAC,EAAE7E,EAAE6E,CAAC,EAAaqO,IAAX,SAAaid,GAAG9U,EAAEC,EAAE/B,EAAEkC,EAAE5W,EAAE,GAAG,EAAEwW,IAAIC,IAAI/B,EAAEkC,EAAE5W,CAAC,EAAE7E,EAAE6E,CAAC,GAAGwW,IAAIC,IAAI/B,EAAEkC,EAAE5W,CAAC,EAAE7E,EAAE6E,CAAC,IAAI0U,EAAEkC,EAAE5W,CAAC,EAAE,MAAM,CAAC,EAAEzE,EAAEJ,CAAC,EAAE,QAAQ,SAAS6E,EAAE,CAAC4X,EAAE,EAAE5X,CAAC,IAAI0U,EAAEkC,EAAE5W,CAAC,EAAE7E,EAAE6E,CAAC,EAAE,CAAC,EAAE0U,CAAC,CAAC,SAAS6W,GAAGvrB,EAAEwW,EAAE,CAAC,OAAiBA,EAAE,OAAb,SAAkBA,EAAE,KAAKA,EAAE,MAAMA,EAAE,OAAO,IAAIxW,EAAE,UAAU,CAAC,CAAC,IAAIwrB,GAAG,CAAC,MAAM,SAAS,KAAK,kBAAkB,MAAM,EAAE,OAAO,SAASxrB,EAAE,CAAC,OAAOkB,EAAEA,EAAE,CAAA,EAAGlB,CAAC,EAAE,CAAC,MAAM,SAASqO,EAAE,CAAC,IAAI9Q,EAAEyC,EAAE,MAAMqO,CAAC,EAAE9E,EAAEhM,EAAE,OAAO,WAAW,OAAO2D,EAAEA,EAAE,CAAA,EAAG3D,CAAC,EAAE,CAAC,OAAO,SAASyC,EAAE,CAAC,IAAIwW,EAAEhb,EAAE,MAAMib,EAAED,EAAE,MAAMnI,CAAC,EAAE,KAAKsJ,EAAElB,EAAE,SAASI,EAAEJ,EAAE,SAAShD,EAAEgD,EAAE,SAAS,OAAOzW,EAAE,KAAI,CAAE,IAAI,MAAM,GAAG6W,EAAE,OAAOT,GAAE,MAAM,OAAOI,EAAE,SAAS,YAAY,UAAU,CAAC,OAAO9B,EAAE1U,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG6W,EAAE,OAAOT,IAAG3C,EAAE,OAAO2C,GAAE,MAAM,OAAOI,EAAE,SAAS,YAAY,UAAU,CAAC,OAAO9B,EAAE1U,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,SAAS,GAAG2X,EAAE,OAAOvB,GAAE,MAAM,OAAOI,EAAE,SAAS,YAAY,UAAU,CAAC,OAAO9B,EAAE1U,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,cAAc,GAAG2X,EAAE,OAAOvB,GAAE,MAAM,OAAOI,EAAE,SAAS,YAAY,UAAU,CAAC,OAAO,SAASC,EAAEpI,EAAE+I,EAAEjc,EAAE,CAAC,OAAOoC,EAAE,MAAM,CAAC,MAAM8Q,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM9E,EAAE,MAAM6N,CAAC,EAAE,MAAMjc,CAAC,CAAC,EAAE,KAAK,SAAS6E,EAAE,CAAC,IAAIwW,EAAExW,EAAE,OAAO,OAAO0U,EAAE,CAAC,KAAK,SAAS,KAAK8B,EAAE,MAAMnI,CAAC,CAAC,EAAE,KAAK,SAASrO,EAAE,CAAC,MAAO,GAAEA,EAAE,YAAY,QAAQ,OAAOA,EAAE,SAAS,CAAC,CAAC,EAAEwW,EAAE,OAAOrb,EAAE,CAAC,SAAS,CAAA,EAAG,YAAY,EAAE,WAAW,MAAM,EAAEsb,EAAEpI,EAAEnN,EAAEA,EAAE,CAAA,EAAGkW,CAAC,EAAE,CAAC,MAAMZ,EAAEA,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,EAAErb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE6E,EAAE,MAAMA,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAOzC,EAAE,OAAOyC,CAAC,EAAE,SAAS0U,EAAEiC,EAAE,CAAC,IAAI3W,EAAEwW,EAAEC,EAAEtS,EAAE3I,EAAE,MAAM0C,EAAEyY,EAAE,MAAM4U,GAAGhiB,EAAEoN,CAAC,EAAE,GAAGzY,EAAE,OAAkByY,EAAUA,EAAE,OAAV,OAAwBA,EAAE,OAAV,MAAezV,EAAEA,EAAE,CAAA,EAAGyV,CAAC,EAAE,CAAC,KAAKzY,CAAC,CAAC,EAAEgD,EAAE,CAAA,EAAGyV,CAAC,GAAG,OAA1E,WAAiFA,EAAE,OAAOyB,EAAE,CAAA,EAAGzB,EAAE,MAAS,GAAGA,EAAE,OAAOA,EAAE,KAAKyB,EAAE,CAAA,EAAGzB,EAAE,IAAO,GAAG3W,EAAEzC,EAAEkZ,EAAEvY,IAAYsY,EAAEG,GAAG,OAAd,MAAmB,QAAQ,QAAQ,CAAA,CAAE,EAAE3W,EAAE,QAAQ,CAAC,MAAMwW,EAAE,MAAM,KAAKC,EAAE,MAAM,WAAW,CAAC,GAAG,KAAK,SAASG,EAAE,CAAC,IAAIrF,EAAErT,EAAE,IAAI,SAAS8B,EAAEwW,EAAE,CAAC,IAAIC,GAAEpI,GAAE+I,EAAEjc,GAAEyb,EAAEJ,CAAC,EAAE9B,GAAE,CAAC,QAAQ,KAAK,UAAU,IAAI,EAAE,OAAiBiC,EAAE,OAAb,SAAkBgB,EAAE,KAAK,KAAKjD,GAAE1U,EAAE7E,GAAEgJ,CAAC,EAAUwS,EAAE,OAAV,OAAyBxb,KAAT,QAAYsb,GAAEI,EAAE,KAAK,KAAKnC,GAAE1U,EAAE2W,EAAE,OAAOH,CAAC,EAAErS,CAAC,EAAQnE,GAAN,MAAeyW,IAAN,OAAUE,EAAE,KAAKH,CAAC,EAAExW,EAAEyW,GAAElN,EAAE,UAAUoL,GAAEgC,EAAE,OAAOH,CAAC,EAAEjN,EAAE,QAAQvJ,CAAC,KAAKyW,GAAE6U,GAAGnwB,GAAEwb,EAAE,OAAOH,CAAC,CAAC,GAAGnI,GAAEoF,EAAE,KAAK,KAAKiB,GAAE+B,GAAEzW,EAAE7E,GAAEgJ,CAAC,KAAKiT,EAAET,EAAE,OAAOH,CAAC,EAAE,OAAO,KAAKnI,EAAC,EAAE,QAAQ,SAASrO,EAAE,CAAC4X,EAAER,EAAEpX,CAAC,EAAEoX,EAAEpX,CAAC,EAAEqO,GAAErO,CAAC,EAAE2U,GAAEyC,EAAEpX,EAAEqO,GAAErO,CAAC,CAAC,CAAC,CAAC,IAAI0U,EAAC,CAAC,EAAE,OAAOnX,EAAE,OAAOoZ,CAAC,EAAE,KAAK,SAAS3W,EAAE,CAAC,QAAQwW,EAAExW,EAAE,SAASyW,GAAEzW,EAAE,QAAQqO,GAAErO,EAAE,YAAYA,EAAEA,EAAE,WAAWoX,EAAE,EAAEA,EAAElZ,EAAE,OAAO,EAAEkZ,EAAE,CAAC,IAAIjc,IAAGsb,IAAGvY,GAAGkZ,CAAC,EAAE1C,GAAEnD,EAAE6F,CAAC,EAAQjc,IAAN,KAAQuZ,GAAE,SAASA,GAAE,QAAQ8B,EAAEY,CAAC,CAAC,EAAE1C,GAAE,WAAWA,GAAE,UAAkBiC,EAAE,OAAV,OAAgBC,EAAEQ,CAAC,EAAET,EAAE,OAAOS,CAAC,EAAEjc,EAAC,CAAC,CAAC,MAAM,CAAC,SAASqb,EAAE,QAAQC,GAAE,YAAYpI,GAAE,WAAWrO,CAAC,CAAC,CAAC,EAAE,MAAM,SAASwW,EAAE,CAAC,OAAOjF,EAAE,QAAQ,SAASvR,EAAE,CAAC,OAAOA,EAAE,SAASA,EAAE,QAAQwW,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAOA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAASiV,GAAGzrB,EAAEwW,EAAEC,EAAE,CAAC,GAAG,CAAmB,GAAf,CAACD,GAAiBA,EAAE,KAAK,OAAOxW,EAAE,OAAO,OAAO,KAAK,QAAQqO,EAAE,CAAA,EAAG+I,EAAE,EAAEjc,EAAE,EAAEic,EAAEZ,EAAE,KAAK,QAAQrb,EAAE6E,EAAE,OAAO,EAAEoX,EAAMsB,GAAElC,EAAE,KAAKY,CAAC,EAAEpX,EAAE7E,CAAC,CAAC,IAApB,IAAwBkT,EAAE,KAAKoI,EAAEiL,GAAGlL,EAAE,OAAOY,CAAC,CAAC,EAAEZ,EAAE,OAAOY,CAAC,CAAC,EAAE,EAAEjc,GAAG,OAAOkT,EAAE,SAASrO,EAAE,OAAOqO,EAAE,IAAI,MAAS,CAAC,OAAO,IAAI,CAAC,CAAC,IAAIqd,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,OAAO,SAASlV,EAAE,CAAC,MAAM,CAAC,MAAM,SAASxW,EAAE,CAAC,IAAIyW,EAAED,EAAE,MAAMxW,CAAC,EAAE,OAAOkB,EAAEA,EAAE,CAAA,EAAGuV,CAAC,EAAE,CAAC,QAAQ,SAASD,EAAE,CAAC,IAAIxW,EAAE,OAAOwW,EAAE,OAAOxW,EAAEyrB,GAAGjV,EAAE,KAAKA,EAAE,MAAM,OAAiBA,EAAE,QAAZ,OAAiB,GAAG2C,EAAE,QAAQnZ,CAAC,EAAEyW,EAAE,QAAQD,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAOwW,EAAE,MAAM,OAAO,CAAC,KAAKA,EAAE,KAAK,OAAiBA,EAAE,QAAZ,QAAkBkL,GAAG1hB,CAAC,EAAEA,CAAC,EAAEA,CAAC,CAAC,EAAEyW,EAAE,QAAQD,CAAC,CAAC,EAAE,OAAO,SAASxW,EAAE,CAAC,OAAcA,EAAE,OAAV,QAAiBA,EAAE,MAAM,OAAO,MAAMyW,EAAE,OAAOzW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS2rB,GAAG3rB,EAAEwW,EAAE,CAAC,OAAmBxW,EAAE,MAAM,OAArB,YAA2B,CAAC,CAACA,EAAE,QAAQ,CAACA,EAAE,MAAM,UAAuBA,EAAE,MAAM,GAAG,SAAS,QAAjC,YAAwC,CAACwW,EAAE,OAAO,WAAW,QAAQ,CAAC,SAASoV,GAAG5rB,EAAEwW,EAAE,CAAC,OAAOxW,EAAC,CAAE,IAAI,QAAQ,OAAOwW,EAAE,QAAQ,CAACA,EAAE,OAAO,IAAI,MAAM,IAAI,UAAU,IAAI,QAAQ,IAAI,aAAa,QAAQ,CAAC,CAAC,IAAIqV,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,gBAAgB,OAAO,SAASlX,EAAE,CAAC,IAAIyB,EAAEzB,EAAE,OAAO,KAAKoD,EAAE,IAAID,GAAEnD,EAAE,QAAQA,EAAE,OAAO,EAAE,OAAOzT,EAAEA,EAAE,CAAA,EAAGyT,CAAC,EAAE,CAAC,YAAY,SAAS3U,EAAEwW,EAAEC,EAAE,CAAC,GAAGjb,EAAE,QAAqBgb,IAAb,WAAe,MAAM,IAAI1W,GAAE,SAAS,+DAA+D,OAAOtE,EAAE,OAAO,CAAC,EAAE,OAAOmZ,EAAE,YAAY3U,EAAEwW,EAAEC,CAAC,CAAC,EAAE,MAAM,SAASI,EAAE,CAAC,SAAS7W,EAAEA,EAAE,CAAC,IAAIwW,EAAExW,EAAEA,EAAE,MAAM,MAAM,CAACwW,EAAExW,EAAE,MAAM,IAAI8X,IAAStB,GAAGxW,EAAEA,EAAE,OAAO,QAArB,KAA4BwW,EAAE7B,EAAE,SAAe6B,EAAExW,EAAE,QAAX,KAAkBwW,EAAE7B,EAAE,OAAO,CAAC,CAAC,CAAC,IAAIlB,EAAEkB,EAAE,MAAMkC,CAAC,EAAE,EAAEpD,EAAE,OAAOlK,EAAE,EAAE,WAAWiN,EAAE,EAAE,QAAQG,EAAEpN,EAAE,WAAWpF,EAAEoF,EAAE,SAASqO,EAAErO,EAAE,eAAeiN,EAAE,OAAO,SAASxW,EAAE,CAAC,OAAOA,EAAE,UAAUA,EAAE,QAAQ,SAASuJ,EAAE,OAAO,CAAC,CAAC,EAAEkN,EAAEvV,EAAEA,EAAE,CAAA,EAAGuS,CAAC,EAAE,CAAC,OAAO,SAASiB,EAAE,CAAC,SAASkC,EAAE5W,GAAE,CAAC,OAAOA,GAAE,SAAS,OAAOoW,EAAE,GAAG,EAAE,OAAOS,EAAE,GAAG,EAAE,OAAO7W,EAAC,EAAEyW,EAAEzW,EAAC,IAAIyW,EAAEzW,EAAC,EAAE,IAAI8X,GAAE,CAAC,IAAI9X,EAAE7E,EAAEoW,EAAEiF,EAAE9B,EAAE,MAAM+B,EAAE/B,EAAE,eAAeA,EAAE,aAAa,CAAA,GAAIrG,GAAEuI,EAAE,EAAE,EAAEQ,GAAER,EAAE,OAAO,EAAED,EAAEjC,EAAE,KAAKvQ,GAAkBuQ,EAAE,OAAlB,cAAuB,CAACA,EAAE,KAAK,EAAaA,EAAE,OAAb,SAAkB,CAACA,EAAE,IAAI,EAAEA,EAAE,OAAO,OAAO,GAAG,CAAC6W,GAAGhiB,EAAEmL,CAAC,EAAE,OAAO,SAAS1U,GAAE,CAAC,OAAOA,EAAC,CAAC,EAAE0U,EAAE,MAAM,EAAE,CAAA,EAAGxW,GAAEiG,GAAE,CAAC,EAAEA,GAAEA,GAAE,CAAC,EAAEwT,EAAEjD,EAAE,MAAM,OAAO,OAAOnY,EAAE2B,EAAC,GAAGmQ,GAAE,QAAQnQ,EAAC,GAAGyY,EAAaA,IAAX,UAAczY,GAAE,SAASiG,GAAE,OAAOsnB,GAAGvtB,GAAEyZ,CAAC,EAAE,OAAOP,GAAE,QAAQlZ,EAAC,GAAGyY,GAAGxS,MAAKnE,EAAE4W,EAAEzb,EAAEwb,EAAEpF,EAAEpN,GAAE,EAAE,QAAQ,QAAQ,SAASqS,GAAE,CAAC,IAAIC,GAAEzW,EAAEwW,GAAE,MAAM,EAAE,EAAE,SAASnI,GAAErO,GAAE,CAAC,OAAaA,IAAN,KAAQwW,GAAE,WAAWxW,EAAC,EAAE,IAAI,CAAC,SAASoX,GAAEpX,GAAE,CAACwW,GAAE,YAAYja,EAAEyD,EAAC,EAAEA,GAAE,QAAQ,SAASA,GAAE,CAAC,OAAOyW,GAAE,OAAOzW,EAAC,CAAC,CAAC,EAAEyW,GAAE,OAAOzW,EAAC,CAAC,EAAE7E,GAAGoW,GAAG,QAAQ,SAASvR,GAAEwW,GAAE,CAAC,IAAIC,GAAEtb,GAAGkT,GAAElT,EAAEqb,EAAC,CAAC,EAAEA,GAAEjF,GAAGlD,GAAEkD,EAAEiF,EAAC,CAAC,EAAMkC,GAAEjC,GAAED,EAAC,IAAT,IAAmBC,IAAN,MAASW,GAAEX,EAAC,EAAQD,IAAN,OAAUY,GAAEZ,EAAC,CAAC,CAAC,CAAC,CAAC,IAAItY,IAAGiG,GAAE,CAAC,MAAYwT,EAAEzZ,GAAE,QAAX,KAAkByZ,EAAEhD,EAAE,QAAQ,IAAUgC,EAAEzY,GAAE,QAAX,KAAkByY,EAAEhC,EAAE,OAAO,EAAEyC,GAAE,IAAIjT,EAAC,EAAEkK,GAAE,IAAIlK,EAAC,IAAIkK,GAAE,IAAI0J,CAAC,EAAEX,GAAE,IAAIW,CAAC,EAAE,EAAE,QAAQ,QAAQ,SAAS/X,GAAE,CAAC,OAAO4W,EAAE5W,GAAE,IAAI,EAAE,IAAI+X,CAAC,CAAC,CAAC,GAAGtE,EAAE,OAAOiB,CAAC,EAAE,KAAK,SAASvZ,GAAE,CAAC,MAAM,CAAC+C,IAAWwW,EAAE,OAAV,OAAwBA,EAAE,OAAV,QAAiBrG,GAAE,QAAQlT,GAAE,OAAO,EAAEyc,GAAGA,EAAE,QAAQ,SAASpB,GAAE,CAAC,QAAQxW,GAAE0U,EAAE,OAAO,IAAI,SAAS1U,GAAE,CAAC,OAAOwW,GAAE,WAAWxW,EAAC,CAAC,CAAC,EAAEyW,GAAED,GAAE,QAAQ,UAAU,SAASxW,GAAE,CAAC,OAAOA,KAAIuJ,EAAE,OAAO,CAAC,EAAE8E,GAAE,EAAE+I,GAAEjc,GAAE,QAAQ,OAAOkT,GAAE+I,GAAE,EAAE/I,GAAErO,GAAEqO,EAAC,EAAEoI,EAAC,EAAEtb,GAAE,QAAQkT,EAAC,EAAEuI,EAAEJ,GAAE,IAAI,EAAE,QAAQxW,EAAC,CAAC,CAAC,GAAGwW,EAAE,aAAakU,GAAGlU,EAAE,cAAc,GAAGC,CAAC,EAAEtb,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE+C,EAAE,CAAC,IAAI,SAAS8B,EAAE,CAAC,MAAM,CAACuJ,EAAE,IAAIuO,GAAE9X,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,MAAM,CAACuJ,EAAG,IAAIuO,KAAG,QAAQ9X,EAAE,IAAI,CAAC,CAAC,EAAE,MAAMA,EAAE,MAAMA,EAAE,WAAWA,CAAC,EAAE,OAAOzE,EAAE2C,CAAC,EAAE,QAAQ,SAASqT,EAAE,CAACkF,EAAElF,CAAC,EAAE,SAAS6F,EAAE,CAAC,IAAIpX,EAAExE,EAAE,OAAOgb,EAAE,CAAC,CAACxW,EAAEyW,EAAEkV,GAAGnwB,EAAEiY,CAAC,GAAGmY,GAAGra,EAAE6F,CAAC,EAAEA,EAAE,OAAO,CAAA,EAAGpX,EAAE,GAAGwW,EAAE,CAAC,IAAIrb,EAAE6E,EAAE,SAASA,GAAE,CAAC,OAAAA,GAAE,SAAS,OAAOoW,EAAE,GAAG,EAAE,OAAOS,EAAE,GAAG,EAAE,OAAO7W,EAAC,EAASyW,EAAEzW,EAAC,IAAIyW,EAAEzW,EAAC,EAAE,IAAI8X,GAAE,EAAEpD,EAAE1U,EAAE,EAAE,EAAE4W,GAAE5W,EAAE,OAAO,EAAEwW,EAAEtY,EAAEqT,CAAC,EAAE6F,CAAC,EAAE/I,GAAEmI,EAAE,CAAC,EAAEA,EAAEA,EAAE,CAAC,EAAE,IAAcjF,IAAV,SAAalD,GAAE,cAAc,CAAC+I,EAAE,OAAOR,GAAE5W,EAAEqO,GAAE,MAAM,EAAE,GAAG,IAAImI,CAAC,EAAE,CAACnI,GAAE,aAAa,CAAC,GAAakD,IAAV,QAAY,OAAOpW,EAAYoW,IAAV,SAAapN,GAAGiT,EAAE,QAAQ3D,EAAE,MAAMvS,EAAEA,EAAE,CAAA,EAAGkW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE3D,EAAElC,CAAC,EAAE,MAAM,KAAK,SAAS,EAAE,KAAK,SAASiF,GAAE,CAAC,GAAajF,IAAV,QAAY,CAAC,GAAGpN,GAAGiT,EAAE,OAAO,OAAOjc,EAAE,KAAK,SAAS6E,GAAE,CAAC,OAAAA,GAAEA,GAAE,OAAc0U,EAAE,QAAQ1U,EAAC,EAAEwW,EAAC,CAAC,EAAE,IAAIxW,EAAEoX,EAAE,OAAOZ,GAAE,OAAO,IAAIG,CAAC,EAAEH,GAAE,QAAQY,EAAE,OAAO1C,EAAEkC,IAAG,QAAQ5W,CAAC,CAAC,KAAK,CAAC,IAAIyW,GAAEpI,GAAE,GAAkBkD,IAAf,aAAiB,OAAOlD,GAAE+I,EAAE,QAAQX,GAAED,KAAI,OAAO,OAAOC,GAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAOG,GAAE,OAAOH,GAAE,UAAU,EAAEA,GAAE,GAAG,CAAC,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,IAAIzW,GAAEyW,GAAE,WAAW,OAAOG,GAAE,OAAO5W,EAAC,EAAEA,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAOqO,IAAGqG,EAAE,OAAO+B,GAAE,UAAU,EAAEA,GAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOD,EAAC,CAAC,EAAEI,GAAE,IAAImB,CAAC,CAAC,CAAC,CAAC,OAAOtE,EAAElC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAEkF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAASqV,GAAG9rB,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE,OAAWoI,EAAE,cAAN,EAAkBD,EAAkBA,EAAE,OAAlB,gBAAyBnI,EAAEmI,EAAE,KAAKA,EAAE,KAAK,OAAO,WAAWA,GAAGA,EAAE,OAAOA,EAAE,OAAO,OAAO,EAAEC,EAAE,cAAcpI,GAAG,MAAMA,EAAEnN,EAAE,CAAA,EAAGsV,CAAC,EAAEja,EAAE8R,EAAE,IAAI,IAAIA,EAAE,KAAKA,EAAE,KAAK,OAAO,SAASrO,EAAEwW,EAAE,CAAC,MAAM,EAAEA,KAAKC,EAAE,SAAS,CAAC,GAAG,WAAWpI,GAAG9R,EAAE8R,EAAE,MAAM,IAAIA,EAAE,OAAOA,EAAE,OAAO,OAAO,SAASrO,EAAEwW,EAAE,CAAC,MAAM,EAAEA,KAAKC,EAAE,SAAS,CAAC,GAAGpI,EAAE,CAAC,SAAS0d,GAAG/rB,EAAEwW,EAAE,CAAC,OAAOC,EAAEzW,IAAaqO,EAAEmI,GAAG,QAAf,SAAuBnI,EAAE,UAAU,EAAEqK,GAAEjC,EAAEpI,EAAE,KAAK,EAAE,GAAGqK,GAAEjC,EAAEpI,EAAE,KAAK,MAAMoI,EAAEzW,GAAYqO,EAAEmI,GAAG,QAAf,SAAuBnI,EAAE,UAAUqK,GAAEjC,EAAEpI,EAAE,KAAK,EAAE,EAAEqK,GAAEjC,EAAEpI,EAAE,KAAK,GAAG,IAAI,IAAIoI,EAAEpI,CAAC,CAAC,SAAS2d,GAAGhsB,EAAE6W,EAAEL,EAAEC,EAAEpI,EAAE+I,EAAE,CAAC,IAAIjc,EAAEsY,EAAElW,EAAEgM,EAAEqO,EAAElD,EAAE,MAAM,CAAC8B,GAAOA,EAAE,SAAN,IAAerb,EAAE0b,EAAE,MAAM,MAAMpD,EAAEtY,EAAE,WAAWoC,EAAEsZ,EAAE,MAAM,MAAMtN,EAAEkN,EAAE,OAAO,WAAW,WAAWmB,EAAEzc,EAAE,WAAWuZ,GAAGvZ,EAAE,eAAeA,GAAG,YAAYsb,EAAED,EAAE,OAAO,SAASxW,EAAEwW,EAAE,CAAC,IAAIC,EAAEzW,EAAEqO,EAAE,CAAA,EAAG,GAAWmI,EAAE,OAAV,OAAwBA,EAAE,OAAV,MAAe,QAAQY,EAAE,IAAIU,GAAE3c,EAAEqb,EAAE,OAAO,OAAO,EAAE,GAAGrb,EAAE,EAAEA,EAAE,CAAC,IAAIuZ,EAAEkC,EAAEJ,EAAE,OAAOrb,CAAC,EAAEoW,EAAEhI,EAAEqN,CAAC,EAAE,CAACQ,EAAE,OAAO7F,CAAC,IAAImD,EAAEkD,EAAEhB,CAAC,EAAEnD,GAAGlX,EAAEmY,CAAC,EAAEA,EAAE,KAAK,SAAS1U,GAAE,CAAC,OAAO+rB,GAAG/rB,GAAEzC,CAAC,CAAC,CAAC,EAAEwuB,GAAGrX,EAAEnX,CAAC,KAAK6Z,EAAE,OAAO7F,CAAC,EAAElD,EAAE,KAAKuI,CAAC,EAAE,CAAC,OAAOJ,EAAE,KAAI,CAAE,IAAI,MAAM,IAAIG,GAAG,IAAImB,KAAG,QAAQjB,EAAE,OAAO7W,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOuJ,EAAEvJ,CAAC,CAAC,CAAC,EAAEA,CAAC,EAAEyW,EAAEzW,EAAE,OAAO6W,EAAE,OAAOxI,EAAE,OAAO,SAASrO,EAAE,CAAC,OAAAA,EAAEuJ,EAAEvJ,CAAC,EAAQ,CAAC2W,GAAE,OAAO3W,CAAC,IAAI2W,GAAE,OAAO3W,CAAC,EAAE,GAAG,CAAC,EAAEqO,EAAE,IAAI,SAASrO,EAAE,CAAC,OAAOuJ,EAAEvJ,CAAC,CAAC,CAAC,EAAE,OAAO,SAASA,EAAE,CAAC,MAAM,CAAC2W,GAAE,OAAO3W,CAAC,IAAI2W,GAAE,OAAO3W,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,MAAM,IAAImE,GAAG,IAAI2T,KAAG,QAAQtB,EAAE,OAAO,IAAI,SAASxW,EAAE,CAAC,OAAOuJ,EAAEvJ,CAAC,CAAC,CAAC,CAAC,EAAEyW,EAAEzW,EAAE,OAAO,SAASA,EAAE,CAAC,MAAM,CAACmE,GAAE,OAAO0S,EAAE,OAAOtN,EAAEvJ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO6W,EAAE,OAAOxI,EAAEA,EAAE,IAAI,SAASrO,EAAE,CAAC,OAAOuJ,EAAEvJ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,IAAI9B,EAAG,IAAI4Z,KAAG,QAAQtB,EAAE,IAAI,EAAEC,EAAEzW,EAAE,OAAO,SAASA,EAAE,CAAC,MAAM,CAAC9B,EAAE,OAAO2Y,EAAE,OAAOtN,EAAEvJ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,cAAc,IAAI2X,GAAEnB,EAAE,MAAMC,EAAEzW,EAAE,OAAO,SAASA,EAAE,CAAC,MAAM,CAAC+rB,GAAGxiB,EAAEvJ,CAAC,EAAE2X,EAAC,CAAC,CAAC,CAAC,CAAC,OAAOlB,CAAC,EAAEzW,CAAC,KAAKA,GAAGA,GAAGyW,EAAE,KAAK,SAASzW,EAAEwW,EAAE,CAAC,OAAOkC,GAAEhE,EAAE1U,CAAC,EAAE0U,EAAE8B,CAAC,CAAC,GAAGkC,GAAEnP,EAAEvJ,CAAC,EAAEuJ,EAAEiN,CAAC,CAAC,CAAC,CAAC,EAAEK,EAAE,OAAOA,EAAE,MAAM,MAAMJ,EAAE,OAAOI,EAAE,MAAMJ,EAAE,OAAOI,EAAE,MAAM7W,EAAE,SAAS6W,EAAE,OAAOJ,EAAE,OAAOI,EAAE,QAAQxI,EAAE,MAAM,KAAK+I,EAAE,OAAO,OAAOX,CAAC,EAAEA,EAAE,CAAC,SAASwV,GAAGjsB,EAAEwW,EAAE,CAAC,OAAWkC,GAAE1Y,EAAE,MAAMwW,EAAE,KAAK,IAArB,GAA4BkC,GAAE1Y,EAAE,MAAMwW,EAAE,KAAK,IAArB,GAAwB,CAAC,CAACxW,EAAE,WAAW,CAAC,CAACwW,EAAE,WAAW,CAAC,CAACxW,EAAE,WAAW,CAAC,CAACwW,EAAE,SAAS,CAAC,SAAS0V,GAAGlsB,EAAEwW,EAAE,CAAC,OAAO,CAACxW,EAAEwW,EAAEC,EAAEpI,IAAI,CAAC,GAAYrO,IAAT,OAAW,OAAgBwW,IAAT,OAAW,GAAG,EAAE,GAAYA,IAAT,OAAW,MAAO,GAAE,IAAQxW,EAAE0Y,GAAE1Y,EAAEwW,CAAC,KAAZ,EAAe,CAAC,GAAGC,GAAGpI,EAAE,MAAO,GAAE,GAAGoI,EAAE,MAAO,GAAE,GAAGpI,EAAE,MAAM,EAAE,CAAC,OAAOrO,CAAC,GAAGA,EAAE,MAAMwW,EAAE,MAAMxW,EAAE,UAAUwW,EAAE,SAAS,GAAG,GAAG,IAAI,CAACxW,EAAEwW,EAAEC,EAAEpI,IAAI,CAAC,GAAYrO,IAAT,OAAW,OAAgBwW,IAAT,OAAW,EAAE,EAAE,GAAYA,IAAT,OAAW,MAAM,GAAG,IAAQxW,EAAE0Y,GAAE1Y,EAAEwW,CAAC,KAAZ,EAAe,CAAC,GAAGC,GAAGpI,EAAE,MAAO,GAAE,GAAGoI,EAAE,SAAS,GAAGpI,EAAE,MAAO,EAAC,CAAC,OAAOrO,CAAC,GAAGA,EAAE,MAAMwW,EAAE,MAAMxW,EAAE,UAAUwW,EAAE,SAAS,CAAC,CAAC,SAAS2V,GAAG1V,EAAEpI,EAAE+I,EAAEpX,EAAE,CAACyW,EAAE,YAAY,IAAIW,CAAC,EAAEpX,EAAE,iBAAiB,QAAQ,UAAU,CAAC,IAAIA,EAAEwW,EAAEC,EAAE,YAAY,OAAOW,CAAC,EAAMX,EAAE,YAAY,OAAlB,IAAyBzW,EAAEyW,EAAED,EAAEnI,EAAE,WAAW,UAAU,CAAKrO,EAAE,YAAY,OAAlB,GAAwBwZ,GAAGhD,EAAExW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAIosB,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,QAAQ,OAAO,SAAStsB,EAAE,CAAC,IAAIvE,EAAEuE,EAAE,OAAO,KAAK,OAAOoB,EAAEA,EAAE,CAAA,EAAGpB,CAAC,EAAE,CAAC,YAAY,SAASsW,EAAE2B,EAAE/X,EAAE,CAAC,IAAIkB,EAAEsV,EAAEja,EAAEuD,EAAE,YAAYsW,EAAE2B,EAAE/X,CAAC,EAAE,OAAoB+X,IAAd,cAAkB/X,GAAGkB,EAAE,IAAI,iBAAiB,OAAO3E,EAAE,iBAAiB,SAASia,EAAE,SAAS7B,EAAE,CAAC,OAAO,UAAU,CAAC,GAAGzT,EAAE,MAAK,EAAiB6W,IAAd,YAAgB,CAAC,QAAQvB,EAAE,IAAI,IAAIxW,EAAE,EAAEyW,EAAEL,EAAEpW,EAAEyW,EAAE,OAAOzW,IAAI,CAAC,IAAIqO,EAAEoI,EAAEzW,CAAC,EAAEoX,EAAEwT,GAAG,SAAS,OAAOrvB,EAAE,GAAG,EAAE,OAAO8S,CAAC,CAAC,EAAE,GAAG+I,EAAE,CAAC,IAAIjc,EAAE2E,EAAE,MAAMuO,CAAC,EAAEqG,EAAE0C,EAAE,cAAc,OAAO,SAASpX,GAAE,CAAC,OAAOA,GAAE,QAAQzD,CAAC,CAAC,EAAE,GAAGA,EAAE,WAAWoY,GAAGpY,EAAE,aAAa,QAAQqa,EAAE,EAAErF,EAAE,OAAO,OAAO6F,EAAE,QAAQ,KAAK,EAAER,EAAErF,EAAE,OAAOqF,IAAI,QAAQD,EAAE,EAAExS,GAAG0S,GAAEtF,EAAEqF,CAAC,GAAG,MAAK,EAAGD,EAAExS,EAAE,OAAOwS,IAAIgU,IAAIlX,EAAEtP,EAAEwS,CAAC,GAAG,OAAOpa,EAAE,YAAY,IAAIid,GAAG3C,GAAEpD,CAAC,EAAEA,EAAE,YAAY,QAAQ,SAASzT,GAAE,CAAC,OAAOwW,EAAE,IAAIxW,EAAC,CAAC,CAAC,WAAW,EAAE0U,EAAE,OAAO,CAAC0C,EAAE,cAAcA,EAAE,cAAc,OAAO,SAASpX,GAAE,CAAC,OAAOA,GAAE,QAAQzD,CAAC,CAAC,EAAE,QAAQ2B,EAAE,EAAEyZ,GAAE,OAAO,OAAOP,EAAE,QAAQ,KAAK,EAAElZ,EAAEyZ,GAAE,OAAOzZ,IAAI,QAAQ2Y,GAAEpD,EAAElW,GAAEgM,GAAE,EAAEqO,GAAGf,GAAEc,GAAEzZ,CAAC,GAAG,MAAK,EAAGqL,GAAEqO,EAAE,OAAOrO,MAAWkK,EAAEmE,EAAErO,EAAC,GAAG,KAAf,MAAoBhN,EAAE,eAAeoY,GAAG,CAAClB,EAAE,OAAOlW,GAAE,OAAO,SAASkW,EAAE,GAAG,EAAElW,GAAEyuB,GAAGvY,EAAE,IAAIA,EAAE,IAAIiB,EAAEvZ,EAAEsY,EAAElW,EAAC,EAAEkW,EAAE,OAAO+F,GAAG3C,GAAEpD,CAAC,EAAEA,EAAE,YAAY,QAAQ,SAASzT,GAAE,CAAC,OAAOwW,EAAE,IAAIxW,EAAC,CAAC,CAAC,GAAGzC,KAAIkW,EAAE,MAAMA,EAAE,IAAIlW,GAAEkW,EAAE,QAAQ0F,EAAE,QAAQ,CAAC,OAAO5b,EAAC,CAAC,KAAKkW,EAAE,OAAO+F,GAAG3C,GAAEpD,CAAC,EAAEA,EAAE,YAAY,QAAQ,SAASzT,GAAE,CAAC,OAAOwW,EAAE,IAAIxW,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACwW,EAAE,QAAQ,SAASxW,GAAE,CAAC,OAAOA,GAAC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAOA,CAAC,CAAC,EAAEzD,EAAE,iBAAiB,QAAQia,EAAE,EAAE,EAAE,CAAC,OAAOxW,CAAC,CAAC,EAAEzD,EAAE,iBAAiB,WAAWia,EAAE,EAAE,EAAE,CAAC,OAAOxW,CAAC,CAAC,GAAGzD,CAAC,EAAE,MAAM,SAASgV,EAAE,CAAC,IAAIoF,EAAE7W,EAAE,MAAMyR,CAAC,EAAE6F,EAAET,EAAE,OAAO,WAAW,OAAOzV,EAAEA,EAAE,CAAA,EAAGyV,CAAC,EAAE,CAAC,OAAO,SAASH,EAAE,CAAC,IAAIC,EAAEzW,EAAExE,EAAE,MAAM,MAAM,CAAC4b,EAAE,UAAuBpX,EAAE,GAAG,SAAS,QAA3B,YAAkC,CAACA,EAAE,UAAwBA,EAAE,SAAS,OAAzB,cAAgCyW,EAAEmU,GAAG,SAAS,OAAOrvB,EAAE,GAAG,EAAE,OAAOgW,CAAC,CAAC,IAAIvR,EAAE2W,EAAE,OAAOH,CAAC,EAAUA,EAAE,OAAV,OAAwBA,EAAE,OAAV,OAAgB,EAAE,IAAIA,EAAE,OAAO,QAAQ+U,GAAGnU,EAAEZ,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,OAAaA,GAAN,IAAO,CAAC,IAAIyW,EAAE,cAAc,KAAKD,CAAC,EAAEA,EAAE,cAAcuU,GAAGvU,EAAE,YAAY,EAAExW,EAAE,KAAK,SAASA,EAAE,CAAC,EAAEA,EAAE,cAAcwZ,GAAG/C,EAAE,cAAcD,CAAC,GAAGxW,EAAE8rB,GAAG,EAAEtV,EAAExW,CAAC,IAAIyW,EAAE,cAAc,KAAKzW,CAAC,EAAEwW,EAAE,eAAeuU,GAAGvU,EAAE,YAAY,CAAC,CAAC,EAAExW,EAAE,MAAM,UAAU,CAACwZ,GAAG/C,EAAE,cAAcD,CAAC,EAAEA,EAAE,cAAcuU,GAAGvU,EAAE,YAAY,CAAC,CAAC,GAAGxW,EAAE,KAAK,SAASqO,EAAE,CAAC,IAAIrO,EAAE8rB,GAAG,EAAE5qB,EAAEA,EAAE,CAAA,EAAGsV,CAAC,EAAE,CAAC,OAAOA,EAAE,OAAO,IAAI,SAASxW,EAAEwW,EAAE,CAAC,IAAIC,EAAE,OAAOpI,EAAE,SAASmI,CAAC,EAAExW,GAAG2U,GAAE8B,GAASA,EAAEW,EAAE,UAAX,MAAqBX,EAAE,SAAS,GAAG,EAAEiL,GAAG1hB,CAAC,EAAEkB,EAAE,GAAGlB,CAAC,EAAEoX,EAAE,QAAQ/I,EAAE,QAAQmI,CAAC,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAC,EAAEpI,CAAC,EAAEoI,EAAE,cAAc,KAAKzW,CAAC,EAAE,eAAe,UAAU,CAAC,OAAOwW,EAAE,cAAcuU,GAAGvU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAExW,GAAG2W,EAAE,OAAOH,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,IAAIY,EAAEpX,EAAEyW,EAAEpI,EAAElT,EAAEuZ,EAAEkC,EAAE,OAAO+U,GAAGnwB,EAAEmb,CAAC,GAAGiV,GAAG,QAAQpV,CAAC,GAAGY,IAAwBX,EAAEjb,EAAE,QAAX,KAAkB,OAAOib,EAAE,GAAG,SAAS,SAAtD,YAA6DzW,GAAGyW,EAAEjb,GAAG,QAAQib,EAAEA,EAAE,OAAO/B,GAAG,CAAC1U,EAAEwW,EAAEC,EAAEpI,IAAI,CAAC,IAAI+I,EAAEwT,GAAG,SAAS,OAAO5qB,EAAE,GAAG,EAAE,OAAOwW,CAAC,CAAC,EAAE,GAAG,CAACY,EAAE,MAAM,CAAA,EAAG,GAAG,EAAEpX,EAAEoX,EAAE,QAAQX,CAAC,GAAG,MAAM,CAAC,KAAK,GAAGW,EAAE,IAAI,EAAE,IAAIjc,EAAE6E,GAAGqO,EAAE,MAAMA,EAAE,MAAM,MAAM,KAAK,OAAO,EAAE,EAAE,GAAG,CAAClT,EAAE,MAAM,CAAC,KAAK,GAAGic,EAAE,IAAI,EAAE,OAAOX,EAAC,CAAE,IAAI,QAAQ,IAAI/B,EAAEvZ,EAAE,KAAK,SAAS6E,EAAE,CAAC,OAAOA,EAAE,IAAI,QAAQqO,EAAE,OAAOrO,EAAE,IAAI,SAASqO,EAAE,QAAQ4d,GAAGjsB,EAAE,IAAI,MAAM,MAAMqO,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,OAAOqG,EAAE,CAACA,EAAE,GAAG0C,EAAEjc,CAAC,EAAE,CAACA,EAAE,KAAK,SAAS6E,EAAE,CAAC,OAAO,UAAUA,EAAE,IAAIA,EAAE,IAAI,MAAM,MAAMqO,EAAE,QAAQ,CAACA,EAAE,QAAQrO,EAAE,IAAI,SAASksB,GAAGlsB,EAAE,IAAI,MAAM,MAAMqO,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG+I,EAAEjc,CAAC,EAAE,IAAI,QAAQ,OAAAuZ,EAAEvZ,EAAE,KAAK,SAAS6E,EAAE,CAAC,OAAOisB,GAAGjsB,EAAE,IAAI,MAAM,MAAMqO,EAAE,MAAM,KAAK,CAAC,CAAC,EAAQ,CAACqG,EAAE,CAAC,CAACA,EAAE0C,EAAEjc,CAAC,CAAC,CAAC,GAAGI,EAAEgW,EAAE,QAAQiF,CAAC,EAAEI,EAAElC,EAAE,CAAC,EAAErG,EAAEqG,EAAE,CAAC,EAAEvZ,EAAEuZ,EAAE,CAAC,EAAEkC,GAAGlC,EAAE,CAAC,EAAEkC,EAAE,OAAOJ,EAAE,QAAQ9B,EAAEiC,EAAE,MAAMH,CAAC,EAAE,KAAK,SAASxW,EAAE,CAAC,IAAIwW,EAAExW,EAAE,OAAO,GAAG4W,IAAIA,EAAE,IAAIJ,GAAGY,EAAE,CAAC,QAAQX,EAAE,EAAEpI,EAAEmI,EAAE,OAAOC,EAAEpI,EAAE,EAAEoI,EAAE,OAAO,OAAOD,EAAEC,CAAC,CAAC,EAAE,OAAO,OAAOD,CAAC,CAAC,MAAMxW,EAAE,OAAO0hB,GAAGlL,CAAC,EAAE,OAAOxW,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OAAO7E,GAAGyb,GAAG4C,GAAGre,EAAEyb,CAAC,EAAE,QAAQ,OAAO5W,CAAC,CAAC,CAAC,EAAE4W,EAAE,CAAC,OAAOJ,EAAE,OAAO,QAAQ9B,EAAE,YAAY,IAAI,IAAI,KAAK,QAAQ,IAAI8B,EAAE,MAAM,EAAE,EAAErb,EAAEA,EAAE,KAAKyb,CAAC,GAAGzb,EAAE,CAACyb,CAAC,GAAGvI,EAAEA,IAAIuc,GAAG,SAAS,OAAOrvB,EAAE,GAAG,EAAE,OAAOgW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAA,EAAG,MAAM,CAAA,CAAE,EAAE,KAAK,IAAI,IAAI,cAAc,CAAA,EAAG,gBAAgB,CAAA,CAAE,IAAI,QAAQ,MAAMiF,EAAE,MAAM,MAAM,MAAM,EAAE,EAAErb,IAAIgxB,GAAGvV,EAAEzb,EAAE6E,EAAEyW,CAAC,EAAEG,EAAE,QAAQ,KAAK,SAAS5W,EAAE,CAAC,MAAM,CAAC,OAAOgsB,GAAGhsB,EAAE,OAAOwW,EAAiBnI,GAAE,cAAcsI,EAAEC,EAAEQ,CAAC,CAAC,CAAC,CAAC,GAAGT,EAAE,MAAMH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS6V,GAAGrsB,EAAEqO,EAAE,CAAC,OAAO,IAAI,MAAMrO,EAAE,CAAC,IAAI,SAASA,EAAEwW,EAAEC,EAAE,CAAC,OAAaD,IAAP,KAASnI,EAAE,QAAQ,IAAIrO,EAAEwW,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACqC,GAAE,UAAU,QAAQ,SAAStC,EAAE,CAAC,GAAG,MAAMA,CAAC,GAAGA,EAAE,GAAG,MAAM,IAAI1W,GAAE,KAAK,wCAAwC,EAAE,GAAG0W,EAAE,KAAK,MAAM,GAAGA,CAAC,EAAE,GAAG,KAAK,OAAO,KAAK,OAAO,cAAc,MAAM,IAAI1W,GAAE,OAAO,0CAA0C,EAAE,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM0W,CAAC,EAAE,IAAIxW,EAAE,KAAK,UAAUyW,EAAEzW,EAAE,OAAO,SAASA,EAAE,CAAC,OAAOA,EAAE,KAAK,UAAUwW,CAAC,CAAC,EAAE,CAAC,EAAE,OAAOC,IAAIA,EAAE,IAAI,KAAK,QAAQD,CAAC,EAAExW,EAAE,KAAKyW,CAAC,EAAEzW,EAAE,KAAKqpB,EAAE,EAAE5S,EAAE,OAAO,CAAA,CAAE,EAAE,KAAK,OAAO,WAAW,IAAIA,CAAC,EAAEqC,GAAE,UAAU,WAAW,SAAS9Y,EAAE,CAAC,IAAIyW,EAAE,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,cAAcjb,EAAE,YAAY,KAAK,MAAMwE,IAAI,IAAImZ,EAAE,SAASnZ,EAAEwW,EAAE,CAAC,GAAGC,EAAE,OAAO,aAAa,OAAOD,EAAE,IAAI1W,GAAE,eAAe2W,EAAE,OAAO,WAAW,CAAC,EAAE,GAAG,CAACA,EAAE,OAAO,cAAc,CAAC,GAAG,CAACA,EAAE,OAAO,SAAS,OAAO,KAAKD,EAAE,IAAI1W,GAAE,cAAc,EAAE2W,EAAE,KAAI,EAAG,MAAML,EAAC,CAAC,CAACK,EAAE,OAAO,eAAe,KAAKzW,EAAEwW,CAAC,CAAC,CAAC,EAAE,KAAKxW,CAAC,CAAC,EAAE8Y,GAAE,UAAU,IAAI,SAAS9Y,EAAE,CAAC,IAAIwW,EAAExW,EAAE,MAAMyW,EAAEzW,EAAE,OAAOqO,EAAErO,EAAE,MAAMA,EAAEA,EAAE,KAAKoX,GAAGpX,GAAG,KAAK,MAAM,CAAC,MAAMwW,EAAE,KAAKxW,CAAC,CAAC,EAAE,KAAK,aAAawW,CAAC,IAAI,KAAK,aAAaA,CAAC,EAAE,CAAA,IAAK,OAAOY,EAAE,KAAK,CAAC,MAAMZ,EAAE,OAAOC,EAAE,MAAYpI,GAAE,GAAK,KAAKrO,CAAC,CAAC,EAAEoX,EAAE,KAAK,SAASpX,EAAEwW,EAAE,CAAC,OAAOxW,EAAE,MAAMwW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAEsC,GAAE,UAAU,MAAM,SAAS9Y,EAAE,CAAC,IAAIwW,EAAExW,EAAE,MAAMyW,EAAEzW,EAAE,KAAKqO,EAAErO,EAAE,OAAO,OAAOwW,GAAG,KAAK,aAAaA,CAAC,IAAI,KAAK,aAAaA,CAAC,EAAE,KAAK,aAAaA,CAAC,EAAE,OAAO,SAASxW,EAAE,CAAC,OAAOqO,EAAErO,EAAE,SAASqO,EAAE,CAAC,CAACoI,GAAGzW,EAAE,OAAOyW,CAAC,CAAC,GAAG,IAAI,EAAEqC,GAAE,UAAU,KAAK,UAAU,CAAC,IAAI9Y,EAAE,KAAK,OAAOgf,GAAGzN,EAAE,UAAU,CAAC,OAAO2Z,GAAGlrB,CAAC,CAAC,CAAC,CAAC,EAAE8Y,GAAE,UAAU,OAAO,UAAU,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,YAAY,OAAO,CAAC,EAAE,IAAIrC,EAAE,KAAK,OAAOzW,EAAEsf,GAAG,QAAQ,IAAI,EAAE,GAAG,GAAGtf,GAAGsf,GAAG,OAAOtf,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,MAAK,CAAE,MAAS,CAAA,CAAE,KAAK,MAAM,IAAI,CAACyW,EAAE,gBAAgBA,EAAE,eAAe,IAAI0C,EAAE,SAASnZ,EAAE,CAACyW,EAAE,eAAezW,CAAC,CAAC,EAAEyW,EAAE,cAAc,IAAI0C,EAAE,SAASnZ,EAAEwW,EAAE,CAACC,EAAE,WAAWD,CAAC,CAAC,EAAE,EAAEsC,GAAE,UAAU,MAAM,SAAS9Y,EAAE,CAAC,IAAIA,GAAYA,IAAT,OAAW,CAAC,gBAAgB,EAAE,EAAEA,GAAG,gBAAgBwW,EAAE,KAAK,OAAOxW,GAAGwW,EAAE,eAAeA,EAAE,WAAW,IAAI1W,GAAE,cAAc,EAAE,KAAK,OAAM,EAAG0W,EAAE,SAAS,GAAGA,EAAE,YAAY,IAAI1W,GAAE,iBAAiB,KAAK,OAAM,EAAG0W,EAAE,SAAS,KAAK,SAAS,UAAUA,EAAE,cAAcA,EAAE,aAAa,GAAGA,EAAE,YAAY,KAAK,EAAEsC,GAAE,UAAU,OAAO,SAASrC,EAAE,CAAC,IAAIW,EAAE,KAAKjc,GAAYsb,IAAT,SAAaA,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,UAAU,QAAkB,OAAO,UAAU,CAAC,GAA5B,UAA+B/B,EAAE,KAAK,OAAO,OAAO,IAAIyE,EAAE,SAAS9K,EAAEmI,EAAE,CAAC,SAASxW,GAAG,CAACoX,EAAE,MAAMX,CAAC,EAAE,IAAIzW,EAAEoX,EAAE,MAAM,UAAU,eAAeA,EAAE,IAAI,EAAEpX,EAAE,UAAU+Y,GAAE,UAAU,CAAC,IAAI/Y,EAAEwW,EAAEC,EAAEzW,EAAEoX,EAAE,MAAMZ,EAAEY,EAAE,KAAK6S,GAAGxT,EAAEzW,EAAE,SAAS,GAAGwW,IAAIgJ,IAAIwK,GAAGvT,EAAEzW,EAAE,WAAW,EAAE,OAAOwW,CAAC,EAAE,MAAMJ,EAAC,EAAE/H,EAAC,CAAE,CAAC,EAAErO,EAAE,QAAQqY,GAAE7B,CAAC,EAAExW,EAAE,UAAUoX,EAAE,cAAc,CAAC,GAAGjc,EAAE,MAAM,IAAI2E,GAAE,gBAAgB,8CAA8C,EAAE4U,EAAE,cAAcA,EAAE,eAAe,KAAK1U,CAAC,EAAEA,EAAC,CAAE,CAAC,CAAC,EAAE8Y,GAAE,UAAU,UAAU,UAAU,CAAC,OAAO,KAAK,KAAK,EAAEA,GAAE,UAAU,OAAO,UAAU,CAAC,OAAc,KAAK,QAAZ,IAAiB,EAAEA,GAAE,UAAU,cAAc,UAAU,CAAC,IAAI9Y,EAAE,KAAK,OAAO,YAAY,OAAOA,GAAsBA,EAAE,OAArB,gBAAyB,EAAE8Y,GAAE,UAAU,UAAU,UAAU,CAAC,OAAc,KAAK,OAAO,cAAnB,IAA8B,EAAEA,GAAE,UAAU,kBAAkB,UAAU,CAAC,OAAO,KAAK,OAAO,UAAU,EAAE,OAAO,eAAeA,GAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,IAAItC,EAAE,KAAK,OAAOjb,EAAE,KAAK,UAAU,EAAE,IAAI,SAASyE,EAAE,CAAC,OAAOwW,EAAE,WAAWxW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE8Y,GAAE,UAAU,YAAY,UAAU,CAAC,IAAI9Y,EAAE,SAASA,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE,UAAU,OAAO,GAAGA,EAAE,EAAE,MAAM,IAAIvO,GAAE,gBAAgB,mBAAmB,EAAE,QAAQsX,EAAE,IAAI,MAAM/I,EAAE,CAAC,EAAE,EAAEA,GAAG+I,EAAE/I,EAAE,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAOoI,EAAEW,EAAE,MAAM,CAACpX,EAAEkhB,GAAE9J,CAAC,EAAEX,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,EAAE,OAAO,KAAK,aAAa,MAAM,KAAKzW,CAAC,CAAC,EAAE8Y,GAAE,UAAU,aAAa,SAAS9Y,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE+I,EAAEjc,EAAE,KAAKuZ,EAAElZ,EAAE,MAAMob,GAAGlC,GAAGA,EAAE,KAAK,MAAW1U,EAAE,QAAQ,GAAG,IAAlB,KAAsB0U,EAAE,MAAW1U,EAAE,QAAQ,GAAG,IAAlB,IAAqBA,EAAEA,EAAE,QAAQ,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,GAAGoX,EAAEZ,EAAE,IAAI,SAASxW,EAAE,CAAiC,GAAhCA,EAAEA,aAAa7E,EAAE,MAAM6E,EAAE,KAAKA,EAAe,OAAOA,GAAjB,SAAmB,MAAM,IAAI,UAAU,iFAAiF,EAAE,OAAOA,CAAC,CAAC,EAAOA,GAAL,KAAQA,IAAIkf,GAAG7Q,EAAE6Q,OAAO,CAAC,GAASlf,GAAN,MAASA,GAAGqf,GAAG,MAAM,IAAIvf,GAAE,gBAAgB,6BAA6BE,CAAC,EAAEqO,EAAEgR,EAAE,CAAC,GAAG3K,EAAE,CAAC,GAAGA,EAAE,OAAOwK,IAAI7Q,IAAIgR,GAAG,CAAC,GAAG,CAACzI,EAAE,MAAM,IAAI9W,GAAE,eAAe,wFAAwF,EAAE4U,EAAE,IAAI,CAACA,GAAG0C,EAAE,QAAQ,SAASpX,EAAE,CAAC,GAAG0U,GAAQA,EAAE,WAAW,QAAQ1U,CAAC,IAA3B,GAA6B,CAAC,GAAG,CAAC4W,EAAE,MAAM,IAAI9W,GAAE,eAAe,SAASE,EAAE,sCAAsC,EAAE0U,EAAE,IAAI,CAAC,CAAC,EAAEkC,GAAGlC,GAAG,CAACA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO+B,EAAE,CAAC,OAAO/B,EAAEA,EAAE,SAAS,KAAK,SAAS1U,EAAEwW,EAAE,CAACA,EAAEC,CAAC,CAAC,CAAC,EAAEsB,GAAEtB,CAAC,CAAC,CAAC,IAAIlF,EAAE,SAAS6F,EAAEjc,EAAEuZ,EAAEkC,EAAErF,EAAEoF,EAAE,CAAC,OAAOwC,EAAE,UAAU,KAAK,UAAU,CAAC,IAAInZ,EAAExE,EAAE,WAAWA,EAAEgb,EAAErb,EAAE,mBAAmBuZ,EAAEkC,EAAEzb,EAAE,UAAUoW,CAAC,EAAEvR,GAAGwW,EAAE,SAAS,GAAG,CAAC,MAAMA,EAAE,UAAUxW,CAAC,GAAG,GAAGuR,EAAEiF,EAAE,SAASjF,EAAE,aAAc,IAAG,CAACiF,EAAE,OAAM,EAAGA,EAAE,SAAS,UAAU,GAAGrb,EAAE,OAAO,eAAe,CAAC,OAAO6E,EAAE,CAAC,OAAOA,EAAE,OAAO8nB,GAAG,cAAc3sB,EAAE,OAAM,GAAI,EAAE,EAAEA,EAAE,OAAO,gBAAgB,QAAQ,KAAK,0BAA0B,EAAEA,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAEA,EAAE,KAAI,EAAG,KAAK,UAAU,CAAC,OAAOic,EAAEjc,EAAEuZ,EAAEkC,EAAE,KAAKD,CAAC,CAAC,CAAC,GAAGoB,GAAE/X,CAAC,CAAC,CAAC,IAAIyW,EAAEpI,EAAEuL,GAAGjD,CAAC,EAAE3W,GAAGqO,GAAGsQ,GAAE,EAAGxF,EAAE,OAAO,UAAU,CAAC,IAAInZ,GAAGyW,EAAEE,EAAE,KAAKH,EAAEA,CAAC,KAAKnI,GAAGrO,EAAEuJ,GAAE,KAAK,KAAK,IAAI,EAAEkN,EAAE,KAAKzW,EAAEA,CAAC,GAAe,OAAOyW,EAAE,MAArB,YAAuC,OAAOA,EAAE,OAArB,aAA6BA,EAAE0U,GAAG1U,CAAC,GAAG,EAAEzW,CAAC,GAAG,OAAOyW,GAAe,OAAOA,EAAE,MAArB,WAA0B0C,EAAE,QAAQ1C,CAAC,EAAE,KAAK,SAASzW,EAAE,CAAC,OAAOwW,EAAE,OAAOxW,EAAE+X,GAAE,IAAIjY,GAAE,gBAAgB,4DAA4D,CAAC,CAAC,CAAC,EAAEE,EAAE,KAAK,UAAU,CAAC,OAAOyW,CAAC,CAAC,GAAG,KAAK,SAASzW,EAAE,CAAC,OAAOuR,GAAGiF,EAAE,SAAQ,EAAGA,EAAE,YAAY,KAAK,UAAU,CAAC,OAAOxW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OAAOwW,EAAE,QAAQxW,CAAC,EAAE+X,GAAE/X,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAKqO,EAAE+I,EAAE1C,EAAE+B,CAAC,EAAE,OAAO/B,EAAEA,EAAE,SAASrG,EAAEkD,EAAE,MAAM,EAAE/V,EAAE,MAAMwjB,GAAGxjB,EAAE,UAAU,UAAU,CAAC,OAAOL,EAAE,WAAWoW,CAAC,CAAC,CAAC,EAAE,KAAK,WAAWA,CAAC,CAAC,EAAEuH,GAAE,UAAU,MAAM,SAAS9Y,EAAE,CAAC,GAAG4X,EAAE,KAAK,WAAW5X,CAAC,EAAE,OAAO,KAAK,WAAWA,CAAC,EAAE,MAAM,IAAIF,GAAE,aAAa,SAAS,OAAOE,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAIoZ,GAAEN,GAAE,SAASA,GAAE9Y,EAAEwW,EAAE,CAAC,IAAIrb,EAAEkT,EAAEqG,EAAE+B,EAAEW,EAAER,EAAE,KAAKrF,GAAG,KAAK,aAAa,CAAA,EAAG,KAAK,MAAM,EAAEuH,GAAE,cAAcvH,GAAG,KAAK,SAASiF,EAAEtV,EAAE,CAAC,OAAO4X,GAAE,OAAO,SAAS,GAAG,UAAUvH,EAAE,UAAU,YAAYA,EAAE,YAAY,MAAM,QAAQ,EAAEiF,CAAC,EAAE,KAAK,MAAM,CAAC,UAAUA,EAAE,UAAU,YAAYA,EAAE,WAAW,EAAEA,EAAE,QAAQG,GAAG,KAAK,UAAU,CAAA,EAAG,KAAK,UAAU,CAAA,EAAG,KAAK,YAAY,CAAA,EAAG,KAAK,WAAW,CAAA,EAAG,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC,YAAY,KAAK,cAAc,GAAG,kBAAkB,KAAK,aAAa,GAAG,eAAeP,GAAE,eAAe,KAAK,WAAWA,GAAE,cAAc,KAAK,WAAW,GAAG,eAAe,EAAE,SAASI,EAAE,QAAQ,GAAGrS,GAAGwS,EAAE,eAAe,IAAIwC,EAAE,SAASnZ,EAAE,CAAC2W,EAAE,eAAe3W,CAAC,CAAC,EAAE2W,EAAE,cAAc,IAAIwC,EAAE,SAASnZ,EAAEwW,EAAE,CAACG,EAAE,WAAWH,CAAC,CAAC,EAAE,KAAK,OAAOG,EAAE,KAAK,KAAK3W,EAAE,KAAK,GAAGgoB,GAAG,KAAK,WAAW,UAAU,gBAAgB,QAAQ,CAAC,MAAM,CAAC3M,GAAGjF,EAAC,CAAC,CAAC,EAAE,KAAK,KAAK,SAASK,EAAEpI,EAAE,CAAC,IAAI+I,EAAE,UAAU,CAAC,QAAQpX,EAAE,CAAA,EAAGwW,EAAE,EAAEA,EAAE,UAAU,OAAOA,IAAIxW,EAAEwW,CAAC,EAAE,UAAUA,CAAC,EAAEI,EAAE,GAAGH,CAAC,EAAE,YAAYW,CAAC,EAAE/I,EAAE,MAAMuI,EAAE5W,CAAC,CAAC,EAAE,OAAO4W,EAAE,GAAGH,EAAEW,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,UAAUoK,GAAE,KAAK,GAAG,MAAM,UAAU,SAASpK,EAAE,CAAC,OAAO,SAASX,EAAEpI,EAAE,CAACyK,GAAE,IAAI,UAAU,CAAC,IAAItC,EAAExW,EAAE4W,EAAE,OAAO5W,EAAE,cAAcA,EAAE,aAAamZ,EAAE,QAAO,EAAG,KAAK1C,CAAC,EAAEpI,GAAG+I,EAAEX,CAAC,GAAGzW,EAAE,mBAAmBA,EAAE,kBAAkB,KAAKyW,CAAC,EAAEpI,GAAG+I,EAAEX,CAAC,IAAIW,EAAEX,CAAC,EAAED,EAAEI,EAAEvI,GAAG+I,EAAE,SAASpX,GAAG,CAACwW,EAAE,GAAG,MAAM,YAAYC,CAAC,EAAED,EAAE,GAAG,MAAM,YAAYxW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY7E,EAAE,KAAK8sB,GAAGpH,GAAG,UAAU,SAAS7gB,EAAEwW,EAAE,CAAC,KAAK,GAAGrb,EAAE,IAAIsb,EAAE8I,GAAGlR,EAAE,KAAK,GAAGmI,EAAE,GAAG,CAACC,EAAED,EAAC,CAAE,OAAOxW,EAAE,CAACqO,EAAErO,CAAC,CAAC,IAAIwW,EAAExW,EAAE,KAAKA,EAAEwW,EAAE,MAAMY,EAAEpX,EAAE,KAAK,QAAQ,KAAK,KAAK,KAAK,CAAC,MAAMA,EAAE,MAAMwW,EAAE,MAAM,UAAU,CAACA,EAAE,OAAOxW,EAAE,OAAO,QAAQ,SAASwW,EAAE,QAAQxW,EAAE,OAAO,QAAQ,KAAK,MAAMyW,EAAE,SAAS,GAAG,IAAI,OAAO,OAAO,GAAG,UAAU,KAAK,OAAO,KAAK,aAAa,KAAK,UAAU,GAAG,QAAQ,KAAK,OAAO,EAAE,MAAM,IAAI,MAAMpI,EAAE,GAAGmI,EAAE,GAAG,YAAYY,IAAI4C,GAAG5C,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO/I,EAAE,KAAK4Z,GAAGlI,GAAG,UAAU,SAAS/f,EAAEwW,EAAEC,EAAE,CAAC,KAAK,GAAGpI,EAAE,KAAK,IAAIoI,EAAE,KAAK,KAAKzW,EAAE,KAAK,OAAOwW,EAAE,KAAK,KAAKnI,EAAE,WAAWrO,CAAC,EAAEqO,EAAE,WAAWrO,CAAC,EAAE,KAAKgoB,GAAG,KAAK,CAAC,SAAS,CAAC9N,GAAG9D,EAAC,EAAE,QAAQ,CAAC+D,GAAGH,EAAE,EAAE,SAAS,CAACiC,GAAG7F,EAAC,EAAE,SAAS,CAACqE,GAAGrE,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,aAAa1B,EAAE,KAAKuT,GAAGrH,GAAG,UAAU,SAAS5gB,EAAEwW,EAAEC,EAAEpI,EAAE+I,EAAE,CAAC,IAAIjc,EAAE,KAAkB6E,IAAb,YAAgBwW,EAAE,QAAQ,SAASxW,EAAE,CAACA,GAASA,EAAEyW,EAAEzW,CAAC,IAAZ,KAAe,OAAOA,EAAE,OAAOA,IAAIwW,EAAEA,EAAE,OAAOxW,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOA,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG0U,EAAE,KAAK,KAAK1U,EAAE,KAAK,WAAWwW,EAAE,KAAK,OAAOC,EAAE,KAAK,4BAA4BpI,EAAE,KAAK,SAAS,KAAK,KAAK,GAAG2Z,GAAG,KAAK,WAAW,QAAQ,OAAO,EAAE,KAAK,OAAO5Q,GAAG,KAAK,KAAK,OAAO,GAAG,KAAK,UAAU,EAAE,KAAK,cAAc,CAAA,EAAG,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,cAAc,KAAK,KAAK,WAAW,EAAE,KAAK,YAAY,IAAI+B,EAAE,SAASnZ,EAAEwW,EAAE,CAACrb,EAAE,SAAS6E,EAAE7E,EAAE,QAAQqb,CAAC,CAAC,EAAE,KAAK,YAAY,KAAK,UAAU,CAACrb,EAAE,OAAO,GAAGA,EAAE,GAAG,SAAS,KAAI,CAAE,EAAE,SAAS6E,EAAE,CAAC,IAAIwW,EAAErb,EAAE,OAAO,OAAOA,EAAE,OAAO,GAAGA,EAAE,GAAG,MAAM,KAAK6E,CAAC,EAAE7E,EAAE,OAAOA,EAAE,OAAO,QAAQ6E,CAAC,EAAEwW,GAAGrb,EAAE,UAAUA,EAAE,SAAS,MAAK,EAAG4c,GAAE/X,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAASyW,EAAE,KAAKwR,GAAG8B,GAAG,UAAU,SAAS/pB,EAAE,CAAC,KAAK,GAAGyW,EAAE,KAAK,KAAK,CAAC,QAAQzW,EAAE,aAAa,KAAK,SAAS,CAAA,EAAG,OAAO,CAAA,EAAG,eAAe,IAAI,CAAC,CAAC,GAAG,KAAK,aAAaoX,EAAE,KAAK6Q,GAAGE,GAAG,UAAU,SAASnoB,EAAEwW,EAAEC,EAAE,CAAC,GAAG,KAAK,GAAGW,EAAE,KAAK,KAAK,CAAC,MAAMpX,EAAE,MAAcwW,IAAR,MAAU,KAAKA,EAAE,GAAGC,CAAC,EAAE,KAAK,KAAK,KAAK,WAAWiC,GAAE,KAAK,YAAY,SAAS1Y,EAAEwW,EAAE,CAAC,OAAOkC,GAAElC,EAAExW,CAAC,CAAC,EAAE,KAAK,KAAK,SAASA,EAAEwW,EAAE,CAAC,MAAO,GAAEkC,GAAE1Y,EAAEwW,CAAC,EAAExW,EAAEwW,CAAC,EAAE,KAAK,KAAK,SAASxW,EAAEwW,EAAE,CAAC,OAAOkC,GAAE1Y,EAAEwW,CAAC,EAAE,EAAExW,EAAEwW,CAAC,EAAE,KAAK,aAAaY,EAAE,MAAM,YAAY,CAAC,KAAK,aAAa,MAAM,IAAItX,GAAE,UAAU,CAAC,GAAG,KAAK,GAAG,gBAAgB,SAASE,EAAE,CAAC,EAAEA,EAAE,WAAW,QAAQ,KAAK,iDAAiD,OAAO4W,EAAE,KAAK,0CAA0C,CAAC,EAAE,QAAQ,KAAK,gDAAgD,OAAOA,EAAE,KAAK,iDAAiD,CAAC,EAAEA,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,SAAS5W,EAAE,CAAC,CAACA,EAAE,YAAYA,EAAE,WAAWA,EAAE,WAAW,QAAQ,KAAK,iBAAiB,OAAO4W,EAAE,KAAK,gBAAgB,CAAC,EAAE,QAAQ,KAAK,YAAY,OAAOA,EAAE,KAAK,gDAAgD,EAAE,OAAO5W,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ2oB,GAAGnS,EAAE,WAAW,EAAE,KAAK,mBAAmB,SAASxW,EAAEwW,EAAEC,EAAEpI,EAAE,CAAC,OAAO,IAAIuI,EAAE,YAAY5W,EAAEwW,EAAEC,EAAEG,EAAE,SAAS,4BAA4BvI,CAAC,CAAC,EAAE,KAAK,eAAe,SAASmI,EAAE,CAACI,EAAE,GAAG,SAAS,EAAE,KAAKJ,CAAC,EAAE8I,GAAG,OAAO,SAAStf,EAAE,CAAC,OAAOA,EAAE,OAAO4W,EAAE,MAAM5W,IAAI4W,GAAG,CAAC5W,EAAE,OAAO,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOA,EAAE,GAAG,eAAe,EAAE,KAAKwW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAIkV,EAAE,EAAE,KAAK,IAAIU,EAAE,EAAE,KAAK,IAAIP,EAAE,EAAE,KAAK,IAAIR,EAAE,EAAE,KAAK,IAAIG,EAAE,EAAE,IAAI,MAAM,KAAK,CAAC,IAAI,SAASxrB,EAAEwW,EAAEC,EAAE,CAAC,IAAIpI,EAAE,OAAemI,IAAT,SAAuBA,IAAV,QAAY,SAASxW,EAAE,CAAC,OAAOqsB,GAAGzV,EAAE,MAAM5W,CAAC,EAAEmE,CAAC,CAAC,GAAGkK,EAAE,QAAQ,IAAIrO,EAAEwW,EAAEC,CAAC,aAAasJ,GAAGsM,GAAGhe,EAAElK,CAAC,EAAaqS,IAAX,SAAanI,EAAE,IAAI,SAASrO,EAAE,CAAC,OAAOqsB,GAAGrsB,EAAEmE,CAAC,CAAC,CAAC,EAAyBqS,IAAvB,qBAAyB,UAAU,CAAC,OAAO6V,GAAGhe,EAAE,MAAM,KAAK,SAAS,EAAElK,CAAC,CAAC,EAAEkK,EAAE,CAAC,CAAC,GAAG,KAAK,IAAIlK,EAAEoN,EAAE,QAAQ,SAASvR,EAAE,CAAC,OAAOA,EAAE4W,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI0V,GAAG3R,GAAgB,OAAO,OAApB,KAA4B,eAAe,OAAO,OAAO,WAAW,eAAe4R,IAAIC,GAAG,UAAU,UAAU,SAASxsB,EAAEwW,EAAEC,EAAE,CAAC,OAAO,KAAK,WAAWzW,GAAe,OAAOA,GAAnB,WAAqBA,EAAE,CAAC,KAAKA,EAAE,MAAMwW,EAAE,SAASC,CAAC,CAAC,CAAC,EAAE+V,GAAG,UAAU7R,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE6R,IAAI,SAASA,GAAGxsB,EAAE,CAAC,KAAK,WAAWA,CAAC,CAAC,GAAG,CAACssB,GAAG,CAAC,UAAUpuB,EAAE,WAAWA,EAAE,cAAcA,EAAE,iBAAiBA,EAAE,YAAY,YAAYA,EAAE,aAAaA,EAAE,iBAAiB,CAAC,MAAS,CAACouB,GAAG,CAAC,UAAU,KAAK,YAAY,IAAI,CAAC,CAAC,SAASG,GAAG9U,EAAE,CAAC,IAAId,EAAEpD,EAAE,GAAGzT,EAAE,IAAIusB,GAAG,SAASle,EAAE,CAAC,IAAI+I,EAAEwC,GAAGjC,CAAC,EAAMxc,EAAEuZ,EAAE,GAAGkC,EAAE,CAAA,EAAGrF,EAAE,CAAA,EAAGvR,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO0U,CAAC,EAAE,YAAY,UAAU,CAACA,IAAIA,EAAE,GAAGvZ,GAAGA,EAAE,MAAK,EAAGwb,GAAG4R,GAAG,eAAe,YAAYrqB,CAAC,EAAE,CAAC,EAAEyY,GAAGtI,EAAE,OAAOA,EAAE,MAAMrO,CAAC,EAAE,IAAImE,EAAE,UAAU,CAAC,OAAO4a,GAAGvI,CAAC,CAAC,EAAMtY,EAAE,SAAS8B,EAAE,CAAC0qB,GAAG9T,EAAE5W,CAAC,EAAE2qB,GAAGpZ,EAAEqF,CAAC,GAAGzS,EAAC,CAAE,EAAEqS,EAAE,UAAU,CAAC,IAAIA,EAAEC,EAAEzW,EAAE,CAAC0U,GAAG4X,GAAG,YAAY1V,EAAE,CAAA,EAAGJ,EAAE,GAAGrb,GAAGA,EAAE,MAAK,EAAGA,EAAE,IAAI,gBAAgB6E,GAAGA,GAAG,CAAC,IAAIwW,EAAE8E,KAAK,GAAG,CAAClE,GAAGuH,GAAE,EAAG,IAAIlI,EAAElZ,GAAEoa,EAAE3X,CAAC,EAAE,OAAOyW,EAAEW,EAAEX,EAAE,QAAQlN,EAAC,EAAEkN,CAAC,QAAC,CAAQD,GAAGyG,GAAE,CAAE,CAAC,GAAGxG,EAAE,CAAC,OAAOD,EAAE,OAAOrb,EAAE,OAAO,QAAQgJ,EAAE,QAAQwT,EAAE,MAAM,IAAI,CAAC,EAAE,QAAQ,QAAQ3X,CAAC,EAAE,KAAK,SAASA,EAAE,CAACyT,EAAE,GAAGoD,EAAE7W,EAAE0U,GAAG+B,EAAE,OAAO,UAAUG,EAAE,CAAA,GAAI5W,GAAG,CAAC,QAAQwW,KAAKxW,EAAE,GAAG4X,EAAE5X,EAAEwW,CAAC,EAAE,OAAO,MAAO,EAAC,GAAGjF,EAAEiF,CAAC,GAAGG,IAAI4R,GAAGF,GAAGnqB,CAAC,EAAEyY,EAAE,IAAIoI,GAAG,UAAU,CAAC,MAAM,CAACrK,GAAGrG,EAAE,MAAMA,EAAE,KAAKrO,CAAC,CAAC,CAAC,EAAE,EAAE,SAASA,EAAE,CAACyT,EAAE,GAAG,CAAC,sBAAsB,YAAY,EAAE,SAAwBzT,GAAE,IAAI,GAAG0U,GAAGqK,GAAG,UAAU,CAACrK,GAAGrG,EAAE,OAAOA,EAAE,MAAMrO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,WAAWmE,EAAE,CAAC,EAAEnE,CAAC,CAAC,EAAE,OAAOA,EAAE,SAAS,UAAU,CAAC,OAAOyT,CAAC,EAAEzT,EAAE,SAAS,UAAU,CAAC,OAAO6W,CAAC,EAAE7W,CAAC,CAAC,IAAI0sB,GAAGtT,GAAE,SAASuT,GAAG3sB,EAAE,CAAC,IAAIwW,EAAEoW,GAAG,GAAG,CAACA,GAAG,GAAGrE,GAAG,eAAe,KAAKvoB,CAAC,EAAEgrB,GAAGhrB,EAAE,EAAE,CAAC,QAAC,CAAQ4sB,GAAGpW,CAAC,CAAC,CAAC0B,EAAEwU,GAAGxrB,EAAEA,EAAE,CAAA,EAAGlB,EAAC,EAAE,CAAC,OAAO,SAASA,EAAE,CAAC,OAAO,IAAI0sB,GAAG1sB,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,SAASA,EAAE,CAAC,OAAO,IAAI0sB,GAAG1sB,EAAE,CAAC,OAAO,CAAA,CAAE,CAAC,EAAE,KAAI,EAAG,KAAK,SAASA,EAAE,CAAC,OAAOA,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,sBAAsB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,iBAAiB,SAASA,EAAE,CAAC,GAAG,CAAC,OAAOwW,EAAEkW,GAAG,aAAajW,EAAED,EAAE,UAAUA,EAAEA,EAAE,aAAayT,GAAGxT,CAAC,EAAE,QAAQ,QAAQA,EAAE,WAAW,EAAE,KAAK,SAASzW,EAAE,CAAC,OAAOA,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOA,EAAE,IAAI,CAAC,EAAE,OAAO,SAASA,EAAE,CAAC,OAAOA,IAAIwf,EAAE,CAAC,CAAC,CAAC,EAAEwK,GAAGvT,EAAED,CAAC,EAAE,aAAY,EAAG,YAAW,GAAI,KAAKxW,CAAC,CAAC,MAAS,CAAC,OAAO+X,GAAE,IAAIjY,GAAE,UAAU,CAAC,CAAC,IAAI0W,EAAEC,CAAC,EAAE,YAAY,UAAU,CAAC,OAAO,SAASzW,EAAE,CAAC0U,EAAE,KAAK1U,CAAC,CAAC,CAAC,EAAE,kBAAkB,SAASA,EAAE,CAAC,OAAOxE,EAAE,MAAMwjB,GAAGxjB,EAAE,UAAUwE,CAAC,EAAEA,EAAC,CAAE,EAAE,IAAIkqB,GAAG,MAAM,SAAS1T,EAAE,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAIxW,EAAEmrB,GAAG3U,EAAE,MAAM,KAAK,SAAS,CAAC,EAAE,OAAOxW,GAAe,OAAOA,EAAE,MAArB,WAA0BA,EAAEmZ,EAAE,QAAQnZ,CAAC,CAAC,OAAOA,EAAE,CAAC,OAAO+X,GAAE/X,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,SAASA,EAAEwW,EAAEC,EAAE,CAAC,GAAG,CAAC,IAAIpI,EAAE8c,GAAGnrB,EAAE,MAAMyW,EAAED,GAAG,EAAE,CAAC,EAAE,OAAOnI,GAAe,OAAOA,EAAE,MAArB,WAA0BA,EAAE8K,EAAE,QAAQ9K,CAAC,CAAC,OAAOrO,EAAE,CAAC,OAAO+X,GAAE/X,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,IAAI,UAAU,CAAC,OAAOxE,EAAE,OAAO,IAAI,CAAC,EAAE,QAAQ,SAASwE,EAAEwW,EAAE,CAAC,OAAAxW,EAAEmZ,EAAE,QAAoB,OAAOnZ,GAAnB,WAAqB0sB,GAAG,kBAAkB1sB,CAAC,EAAEA,CAAC,EAAE,QAAQwW,GAAG,GAAG,EAAShb,EAAE,MAAMA,EAAE,MAAM,QAAQwE,CAAC,EAAEA,CAAC,EAAE,QAAQmZ,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAOhV,EAAC,EAAE,IAAI,SAASnE,EAAE,CAAC6b,GAAG7b,CAAC,CAAC,CAAC,EAAE,OAAOkZ,EAAE,OAAOxE,EAAE,MAAMwD,EAAE,SAASsJ,GAAE,OAAOwG,GAAG,GAAGO,GAAG,UAAUkE,GAAG,uBAAuB/B,GAAG,aAAa/T,GAAE,aAAahC,GAAE,aAAa,SAAS6B,EAAExW,EAAE,CAAW,OAAOA,GAAjB,SAAmB2U,GAAE6B,EAAExW,EAAE,MAAM,EAAE,WAAWA,GAAG,GAAG,IAAI,KAAKA,EAAE,SAASA,EAAE,CAAC2U,GAAE6B,EAAExW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAaqZ,EAAE,UAAUqI,GAAG,cAAc4J,GAAG,IAAI5S,GAAE,KAAK6I,GAAE,OAAO,KAAK,OAAO,CAAA,EAAG,YAAYjC,GAAG,SAASwI,GAAG,aAAawE,GAAG,MAAM1B,GAAG,OAAO,QAAQ,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,SAAS5qB,EAAE,CAAC,OAAO,SAASA,CAAC,CAAC,CAAC,EAAE,OAAO,SAASA,EAAEwW,EAAEC,EAAE,CAAC,OAAOzW,EAAEwW,EAAE,KAAK,IAAI,GAAG,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEiW,GAAG,OAAO/D,GAAG+D,GAAG,aAAa,WAAW,EAAe,OAAO,cAApB,KAAgD,OAAO,iBAApB,MAAuCnE,GAAGF,GAAG,SAASroB,EAAE,CAAC4sB,KAAK5sB,EAAE,IAAI,YAAYsoB,GAAG,CAAC,OAAOtoB,CAAC,CAAC,EAAE4sB,GAAG,GAAG,cAAc5sB,CAAC,EAAE4sB,GAAG,GAAG,CAAC,EAAE,iBAAiBtE,GAAG,SAAStoB,EAAE,CAACA,EAAEA,EAAE,OAAO4sB,IAAID,GAAG3sB,CAAC,CAAC,CAAC,GAAG,IAAI6sB,GAAGD,GAAG,GAAGE,GAAG,UAAU,CAAA,EAAG,OAAmB,OAAO,iBAApB,OAAwCA,GAAG,UAAU,EAAED,GAAG,IAAI,iBAAiBvE,EAAE,GAAG,UAAU,SAAStoB,EAAE,CAAC,OAAOA,EAAE,MAAM2sB,GAAG3sB,EAAE,IAAI,CAAC,CAAC,GAAC,EAAgB,OAAO6sB,GAAG,OAAtB,YAA6BA,GAAG,QAAQtE,GAAGF,GAAG,SAASroB,EAAE,CAAC4sB,IAAIC,GAAG,YAAY7sB,CAAC,CAAC,CAAC,GAAgB,OAAO,iBAApB,MAAuC,iBAAiB,WAAW,SAASA,EAAE,CAAC,GAAG,CAACoZ,GAAE,gBAAgBpZ,EAAE,UAAU,CAACmE,IAAG,QAAQ,MAAM,oCAAoC,EAAY0oB,IAAG,MAAK,EAAG,QAAQrW,EAAE,EAAEC,EAAE6I,GAAG9I,EAAEC,EAAE,OAAOD,IAAIC,EAAED,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,WAAW,SAASxW,EAAE,CAAC,CAACoZ,GAAE,gBAAgBpZ,EAAE,YAAYmE,IAAG,QAAQ,MAAM,oCAAoC,EAAE2oB,GAAE,EAAGH,GAAG,CAAC,IAAI,IAAI7U,GAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAGqB,EAAE,gBAAgB,SAASnZ,EAAEwW,EAAE,CAAC,MAAM,CAACxW,GAAGA,aAAa6nB,IAAI7nB,aAAa,WAAWA,aAAa,aAAa,CAACA,EAAE,MAAM,CAACoa,GAAGpa,EAAE,IAAI,EAAEA,GAAGwW,EAAE,IAAI4D,GAAGpa,EAAE,IAAI,EAAEwW,GAAGxW,EAAE,QAAQA,CAAC,EAAE,UAAUA,GAAG4W,EAAEJ,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,CAAC,CAAC,EAAEA,EAAE,EAAEqF,GAAG1X,EAAC,EAAEjD,EAAEkY,GAAE,OAAO,OAAO,CAAC,UAAU,KAAK,MAAMA,GAAE,OAAO4G,GAAG,iBAAiBK,GAAG,SAASvI,GAAE,IAAI,SAAS9X,EAAE,CAAC,OAAO,IAAIqgB,GAAG,CAAC,IAAIrgB,CAAC,CAAC,CAAC,EAAE,IAAI0Y,GAAE,QAAQU,GAAE,UAAUqT,GAAG,YAAYnC,GAAG,cAAcC,GAAG,OAAO,SAASvqB,EAAE,CAAC,OAAO,IAAIqgB,GAAG,CAAC,OAAOrgB,CAAC,CAAC,CAAC,EAAE,cAAc,SAASA,EAAEwW,EAAE,CAAC,OAAO,IAAI6J,GAAG,CAAC,cAAc,CAACrgB,EAAEwW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ4C,EAAC,CAAC,EAAEA,EAAC,CAAC,0CCI5+4F,MAAM2T,GAAc,OAAO,IAAI,OAAO,EAChCC,GAAQ,WAAWD,EAAW,IAAM,WAAWA,EAAW,EAAIE,IACpE,GAAIA,GAAO,SAAWD,GAAM,OACxB,MAAM,IAAI,MAAM,2DAA2DC,GAAO,MAAM,QAAQD,GAAM,MAAM,EAAE,EAElH,KAAM,CACF,UAAAE,GAAW,YAAAC,GAAa,cAAAC,GAAe,SAAAC,GAAU,IAAAC,GAAK,OAAAC,GACtD,iBAAAC,GAAkB,cAAAC,GAAe,IAAAC,GAAK,OAAAjrB,GACtC,eAAAkrB,EAAc,EAAKX,GCWvB,MAAqBY,WAAyBZ,EAAM,CAClD,MAEA,YAAYa,EAAkB,CAC5B,MAAM,SAAWA,CAAQ,EACzB,KAAK,QAAQ,CAAC,EAAE,OAAO,CACrB,MAEE,0FAAA,CACH,CACH,CACF,0KCPA,IAAqBC,GAArB,KAAmE,CACzD,mBAAoD,IAIpD,OAER,YAA8BC,EAAgB,CAC5C,KAAK,OAASA,EACd,KAAK,OAAO,UAAU,wCAAwC,CAChE,CAEA,eAAeF,EAAoC,CACjD,IAAIG,EAAc,KAAK,eAAe,IAAIH,CAAQ,EAClD,OAAIG,GAAe,OACjBA,EAAc,IAAIJ,GAAiBC,CAAQ,EAC3C,KAAK,eAAe,IAAIA,EAAUG,CAAW,GAExCA,CACT,CAEA,MAAM,QAAQH,EAAkBla,EAA2C,CACzE,GAAI,CACF,KAAK,OAAO,MAAM,wCAAyCA,CAAE,EAC7D,MAAMqa,EAAc,KAAK,eAAeH,CAAQ,EAChD,KAAK,OAAO,MAAM,uCAAuC,EACzD,MAAMI,EAAa,MAAMD,EAAY,MAAM,IAAIra,CAAE,EAC3Cua,EAAW,IAAIC,GACrB,OAAAD,EAAS,WAAWD,CAAU,EACvBC,CACT,OAASluB,EAAG,CACV,KAAK,OAAO,MAAM,oDAAqDA,CAAC,EACxE,MACF,CACF,CAEA,MAAM,SAAS6tB,EAAkBla,EAAYya,EAA+B,CAC1E,GAAI,CAIF,MAHoB,KAAK,eAAeP,CAAQ,EAG9B,MAAM,IAAIO,EAAK,SAAA,EAAYza,CAAE,CACjD,OAAS3T,EAAG,CACV,KAAK,OAAO,MACV,mDACA6tB,EACAla,EACAya,EACApuB,CAAA,CAEJ,CACF,CAEA,MAAM,WACJ6tB,EACAla,EACAya,EACe,CACf,GAAI,CACF,MAAMJ,EAAc,KAAK,eAAeH,CAAQ,EAChD,KAAK,OAAO,MAAM,iBAAkBO,CAAI,EACxC,MAAMJ,EAAY,MAAM,OAAOra,EAAIya,EAAK,UAAU,CACpD,OAASpuB,EAAG,CACV,KAAK,OAAO,MACV,mDACA6tB,EACAla,EACAya,EACApuB,CAAA,CAEJ,CACF,CACF,EAxEqB8tB,GAArB1L,GAAA,CADCC,GAAA,EAQc8E,QAAO,QAAQ,CAAA,CAAA,EAPT2G,EAAA,2KCQd,IAAMO,GAAN,KAAwD,CACtD,OAGA,QACA,eACA,YAEP,YACoBN,EACQO,EACHC,EACvB,CACA,KAAK,OAASR,EACd,KAAK,OAAO,UAAU,2CAA2C,EACjE,KAAK,eAAiBO,EACtB,KAAK,YAAcC,CACrB,CAEO,WAAWC,EAAwB,CACxC,KAAK,QAAUA,CACjB,CAEO,YAAsB,CAC3B,OAAO,KAAK,OACd,CAEO,cAAcC,EAA0B,CAC7C,OAAO,KAAK,QAAQ,cAAcA,CAAM,CAC1C,CAEO,eAA4B,CACjC,OAAO,KAAK,QAAQ,cAAA,CACtB,CAEA,MAAa,gBAAmC,CAC9C,OAAO,KAAK,QAAQ,eAAA,CACtB,CAEO,eAAeL,EAAcM,EAAwB,CAC1D,OAAO,KAAK,QAAQ,eAAeN,EAAMM,CAAM,CACjD,CAEO,mBAAmBC,EAA4B,CACpD,OAAO,KAAK,QAAQ,mBAAmBA,CAAG,CAC5C,CAEO,YAAYP,EAAcQ,EAAuB,CACtD,OAAO,KAAK,QAAQ,YAAYR,EAAMQ,CAAK,CAC7C,CAIA,MAAa,eACXR,EACAM,EACAG,EACAC,EAC+B,CAE/B,GADA,KAAK,OAAO,MAAM,+BAAgCV,CAAI,EAClD,KAAK,eAAgB,CACvB,KAAK,OAAO,MAAM,8BAA+BA,CAAI,EACrD,MAAMF,EAAW,MAAM,KAAK,eAAe,QACzC,KAAK,gBAAgB,KACrBE,EAAO,IAAMM,CAAA,EAEf,OAAIR,GAAY,MAAQA,GAAY,MAClC,KAAK,OAAO,MAAM,2CAA4CE,CAAI,GAE9DU,GAAW,MAAaA,IAC1B,KAAK,YAAY,WACf,KAAK,cAAA,EAAgB,KAAO,IAAMV,EAAO,IAAMM,CAAA,EAG5CR,IAEP,KAAK,OAAO,MACV,gDACAE,CAAA,EAEK,KAAK,gBAAgBA,EAAMM,CAAM,EAE5C,KACE,aAAK,OAAO,MAAM,oCAAoC,EAC/C,KAAK,QAAQ,eAAeN,EAAMM,CAAM,CAEnD,CAEO,eAAeN,EAAoD,CAExE,OAAO,KAAK,QAAQ,eAAeA,CAAI,CACzC,CAEA,cACEA,EACA9J,EACqC,CACrC,OAAO,KAAK,QAAQ,cAAc8J,EAAM9J,CAAI,CAC9C,CAEA,MAAc,gBACZ8J,EACAM,EACmB,CACnB,MAAMR,EAAW,MAAM,KAAK,QAAQ,eAAeE,EAAMM,CAAM,EAC/D,GAAIR,EACF,OAAAA,EAAS,GAAKE,EAAO,IAAMM,EAC3B,KAAK,OAAO,MAAM,iCAAkCN,CAAI,EACxD,KAAK,eAAe,SAClB,KAAK,gBAAgB,KACrBA,EAAO,IAAMM,EACbR,CAAA,EAGKA,EAEP,MAAM,IAAI,MAAM,0BAA0B,CAE9C,CAIA,MAAa,kBACXE,EACAM,EACkB,CAClB,MAAMK,EAAkB,MAAM,KAAK,eAAe,QAChD,KAAK,gBAAgB,KACrBX,EAAO,IAAMM,CAAA,EAETR,EAAW,MAAM,KAAK,QAAQ,eAAeE,EAAMM,CAAM,EAC/D,OAAIK,GAAmBb,GACrBA,EAAS,GAAKE,EAAO,IAAMM,EAC3B,KAAK,OAAO,MAAM,iCAAkCN,CAAI,EACxD,KAAK,eAAe,SAClB,KAAK,gBAAgB,KACrBA,EAAO,IAAMM,EACbR,CAAA,EAEK,IACEa,GAAiB,SAAWb,GAAU,SAAWA,GAC1DA,EAAS,GAAKE,EAAO,IAAMM,EAC3B,KAAK,OAAO,MAAM,mCAAoCN,CAAI,EAC1D,KAAK,eAAe,WAClB,KAAK,gBAAgB,KACrBA,EAAO,IAAMM,EACbR,CAAA,EAEK,KAEP,KAAK,OAAO,MACV,0DAAA,EAEK,GAEX,CAEA,MAAa,gBACXc,EACAC,EACAP,EACmB,CACnB,OAAO,KAAK,QAAQ,gBAAgBM,EAAOC,EAAaP,CAAM,CAChE,CAEA,MAAa,aACXQ,EACAC,EACiB,CACjB,OAAO,MAAM,KAAK,QAAQ,aAAaD,EAAUC,CAAS,CAC5D,CAEA,KACEf,EACAgB,EACAC,EACAX,EACkB,CAClB,OAAO,KAAK,QAAQ,KAAKN,EAAMgB,EAAOC,EAASX,CAAM,CACvD,CAEA,MAAM,gBACJN,EACAkB,EAC6C,CAC7C,OAAO,KAAK,QAAQ,gBAAgBlB,EAAMkB,CAAK,CACjD,CAEA,MAAM,OAAOlB,EAA6D,CACxE,OAAO,KAAK,QAAQ,OAAOA,CAAI,CACjC,CAEA,MAAM,KACJA,EACAmB,EACAC,EAC+C,CAC/C,OAAO,KAAK,QAAQ,KAAKpB,EAAMmB,EAASC,CAAgB,CAC1D,CACF,EAvManB,GAANjM,GAAA,CADNC,GAAA,EAUI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,gBAAgB,CAAA,EACvBA,QAAO,aAAa,CAAA,CAAA,EAXZkH,EAAA,ECNN,IAAAoB,GAAA,KAAoB,CACzB,YAAY7N,EAAsB,CAChCA,EACG,KAAsB,iBAAiB,EACvC,GAAGyM,EAAsB,EACzB,iBAAA,EACHzM,EACG,KAAqB,gBAAgB,EACrC,GAAGkM,EAAmB,EACtB,iBAAA,CACL,CACF,2KCfO,IAAM4B,GAAN,cAA+BC,EAAkB,CAC7C,QACA,QAET,YACoB5B,EACkBS,EACdtH,EACtB,CACA,MAAM6G,CAAM,EACZ,KAAK,QAAUS,EACf,KAAK,QAAUtH,EACf,KAAK,QAAQ,cAAc,IAAI,EAC3B,KAAK,UAAY,KACnB,KAAK,SAAW,YAEpB,CAES,iBAA0B,CACjC,MAAO,QACT,CAES,SAAkB,CACzB,MAAO,QACT,CACF,EAzBawI,GAANtN,GAAA,CADNC,GAAA,EAMI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,SAAS,CAAA,EAAGA,QAAM,QAAQ,CAAA,EACjCA,QAAO,YAAY,CAAA,CAAA,EAPXuI,EAAA,ECzBb,MAAME,GAAQ,OAAO,IAAI,YAAY,EAC/BC,GAAM,OAAO,IAAI,eAAe,EAChCC,GAAM,OAAO,IAAI,UAAU,EAC3BC,GAAO,OAAO,IAAI,WAAW,EAC7BC,GAAS,OAAO,IAAI,aAAa,EACjCC,GAAM,OAAO,IAAI,UAAU,EAC3BC,GAAY,OAAO,IAAI,gBAAgB,EACvCC,GAAWC,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMN,GAC9ES,GAAcD,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAML,GACjF/sB,GAASstB,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMJ,GAC5E1jB,GAAUgkB,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMH,GAC7EO,GAAYF,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMF,GAC/EO,GAASH,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMD,GAClF,SAASO,GAAaJ,EAAM,CACxB,GAAIA,GAAQ,OAAOA,GAAS,SACxB,OAAQA,EAAKF,EAAS,EAAC,CACnB,KAAKJ,GACL,KAAKG,GACD,MAAO,EACvB,CACI,MAAO,EACX,CACA,SAASQ,GAAOL,EAAM,CAClB,GAAIA,GAAQ,OAAOA,GAAS,SACxB,OAAQA,EAAKF,EAAS,EAAC,CACnB,KAAKN,GACL,KAAKE,GACL,KAAKE,GACL,KAAKC,GACD,MAAO,EACvB,CACI,MAAO,EACX,CACA,MAAMS,GAAaN,IAAUE,GAASF,CAAI,GAAKI,GAAaJ,CAAI,IAAM,CAAC,CAACA,EAAK,OC/BvEO,GAAQ,OAAO,aAAa,EAC5BC,GAAO,OAAO,eAAe,EAC7BC,GAAS,OAAO,aAAa,EA+BnC,SAASC,GAAMV,EAAMW,EAAS,CAC1B,MAAMC,EAAWC,GAAYF,CAAO,EAChCV,GAAWD,CAAI,EACJc,GAAO,KAAMd,EAAK,SAAUY,EAAU,OAAO,OAAO,CAACZ,CAAI,CAAC,CAAC,IAC3DS,KACPT,EAAK,SAAW,MAGpBc,GAAO,KAAMd,EAAMY,EAAU,OAAO,OAAO,CAAA,CAAE,CAAC,CACtD,CAKAF,GAAM,MAAQH,GAEdG,GAAM,KAAOF,GAEbE,GAAM,OAASD,GACf,SAASK,GAAO35B,EAAK64B,EAAMW,EAASI,EAAM,CACtC,MAAMC,EAAOC,GAAY95B,EAAK64B,EAAMW,EAASI,CAAI,EACjD,GAAIV,GAAOW,CAAI,GAAKhlB,GAAOglB,CAAI,EAC3B,OAAAE,GAAY/5B,EAAK45B,EAAMC,CAAI,EACpBF,GAAO35B,EAAK65B,EAAML,EAASI,CAAI,EAE1C,GAAI,OAAOC,GAAS,UAChB,GAAIZ,GAAaJ,CAAI,EAAG,CACpBe,EAAO,OAAO,OAAOA,EAAK,OAAOf,CAAI,CAAC,EACtC,QAASj1B,EAAI,EAAGA,EAAIi1B,EAAK,MAAM,OAAQ,EAAEj1B,EAAG,CACxC,MAAMo2B,EAAKL,GAAO/1B,EAAGi1B,EAAK,MAAMj1B,CAAC,EAAG41B,EAASI,CAAI,EACjD,GAAI,OAAOI,GAAO,SACdp2B,EAAIo2B,EAAK,MACR,IAAIA,IAAOZ,GACZ,OAAOA,GACFY,IAAOV,KACZT,EAAK,MAAM,OAAOj1B,EAAG,CAAC,EACtBA,GAAK,GAEb,CACJ,SACSiR,GAAOgkB,CAAI,EAAG,CACnBe,EAAO,OAAO,OAAOA,EAAK,OAAOf,CAAI,CAAC,EACtC,MAAMoB,EAAKN,GAAO,MAAOd,EAAK,IAAKW,EAASI,CAAI,EAChD,GAAIK,IAAOb,GACP,OAAOA,GACFa,IAAOX,KACZT,EAAK,IAAM,MACf,MAAMqB,EAAKP,GAAO,QAASd,EAAK,MAAOW,EAASI,CAAI,EACpD,GAAIM,IAAOd,GACP,OAAOA,GACFc,IAAOZ,KACZT,EAAK,MAAQ,KACrB,EAEJ,OAAOgB,CACX,CAwFA,SAASH,GAAYF,EAAS,CAC1B,OAAI,OAAOA,GAAY,WAClBA,EAAQ,YAAcA,EAAQ,MAAQA,EAAQ,OACxC,OAAO,OAAO,CACjB,MAAOA,EAAQ,KACf,IAAKA,EAAQ,KACb,OAAQA,EAAQ,KAChB,IAAKA,EAAQ,IACzB,EAAWA,EAAQ,OAAS,CAChB,IAAKA,EAAQ,MACb,OAAQA,EAAQ,MAChB,IAAKA,EAAQ,KACzB,EAAWA,EAAQ,YAAc,CACrB,IAAKA,EAAQ,WACb,IAAKA,EAAQ,UACzB,EAAWA,CAAO,EAEPA,CACX,CACA,SAASM,GAAY95B,EAAK64B,EAAMW,EAASI,EAAM,CAC3C,GAAI,OAAOJ,GAAY,WACnB,OAAOA,EAAQx5B,EAAK64B,EAAMe,CAAI,EAClC,GAAIruB,GAAMstB,CAAI,EACV,OAAOW,EAAQ,MAAMx5B,EAAK64B,EAAMe,CAAI,EACxC,GAAIZ,GAAMH,CAAI,EACV,OAAOW,EAAQ,MAAMx5B,EAAK64B,EAAMe,CAAI,EACxC,GAAI/kB,GAAOgkB,CAAI,EACX,OAAOW,EAAQ,OAAOx5B,EAAK64B,EAAMe,CAAI,EACzC,GAAIb,GAASF,CAAI,EACb,OAAOW,EAAQ,SAASx5B,EAAK64B,EAAMe,CAAI,EAC3C,GAAIhB,GAAQC,CAAI,EACZ,OAAOW,EAAQ,QAAQx5B,EAAK64B,EAAMe,CAAI,CAE9C,CACA,SAASG,GAAY/5B,EAAK45B,EAAMf,EAAM,CAClC,MAAM30B,EAAS01B,EAAKA,EAAK,OAAS,CAAC,EACnC,GAAIX,GAAa/0B,CAAM,EACnBA,EAAO,MAAMlE,CAAG,EAAI64B,UAEfhkB,GAAO3Q,CAAM,EACdlE,IAAQ,MACRkE,EAAO,IAAM20B,EAEb30B,EAAO,MAAQ20B,UAEdC,GAAW50B,CAAM,EACtBA,EAAO,SAAW20B,MAEjB,CACD,MAAM/Q,EAAK8Q,GAAQ10B,CAAM,EAAI,QAAU,SACvC,MAAM,IAAI,MAAM,4BAA4B4jB,CAAE,SAAS,CAC3D,CACJ,CCnOA,MAAMqS,GAAc,CAChB,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,KACT,EACMC,GAAiB5I,GAAOA,EAAG,QAAQ,aAAc6I,GAAMF,GAAYE,CAAE,CAAC,EAC5E,MAAMC,EAAW,CACb,YAAYC,EAAMC,EAAM,CAKpB,KAAK,SAAW,KAEhB,KAAK,OAAS,GACd,KAAK,KAAO,OAAO,OAAO,CAAA,EAAIF,GAAW,YAAaC,CAAI,EAC1D,KAAK,KAAO,OAAO,OAAO,CAAA,EAAID,GAAW,YAAaE,CAAI,CAC9D,CACA,OAAQ,CACJ,MAAMC,EAAO,IAAIH,GAAW,KAAK,KAAM,KAAK,IAAI,EAChD,OAAAG,EAAK,SAAW,KAAK,SACdA,CACX,CAKA,YAAa,CACT,MAAMvnB,EAAM,IAAIonB,GAAW,KAAK,KAAM,KAAK,IAAI,EAC/C,OAAQ,KAAK,KAAK,QAAO,CACrB,IAAK,MACD,KAAK,eAAiB,GACtB,MACJ,IAAK,MACD,KAAK,eAAiB,GACtB,KAAK,KAAO,CACR,SAAUA,GAAW,YAAY,SACjC,QAAS,KAC7B,EACgB,KAAK,KAAO,OAAO,OAAO,CAAA,EAAIA,GAAW,WAAW,EACpD,KAChB,CACQ,OAAOpnB,CACX,CAKA,IAAIwnB,EAAMnM,EAAS,CACX,KAAK,iBACL,KAAK,KAAO,CAAE,SAAU+L,GAAW,YAAY,SAAU,QAAS,KAAK,EACvE,KAAK,KAAO,OAAO,OAAO,CAAA,EAAIA,GAAW,WAAW,EACpD,KAAK,eAAiB,IAE1B,MAAMK,EAAQD,EAAK,KAAI,EAAG,MAAM,QAAQ,EAClC3N,EAAO4N,EAAM,MAAK,EACxB,OAAQ5N,EAAI,CACR,IAAK,OAAQ,CACT,GAAI4N,EAAM,SAAW,IACjBpM,EAAQ,EAAG,iDAAiD,EACxDoM,EAAM,OAAS,GACf,MAAO,GAEf,KAAM,CAACC,EAAQC,CAAM,EAAIF,EACzB,YAAK,KAAKC,CAAM,EAAIC,EACb,EACX,CACA,IAAK,QAAS,CAEV,GADA,KAAK,KAAK,SAAW,GACjBF,EAAM,SAAW,EACjB,OAAApM,EAAQ,EAAG,iDAAiD,EACrD,GAEX,KAAM,CAACuM,CAAO,EAAIH,EAClB,GAAIG,IAAY,OAASA,IAAY,MACjC,YAAK,KAAK,QAAUA,EACb,GAEN,CACD,MAAMC,EAAU,aAAa,KAAKD,CAAO,EACzC,OAAAvM,EAAQ,EAAG,4BAA4BuM,CAAO,GAAIC,CAAO,EAClD,EACX,CACJ,CACA,QACI,OAAAxM,EAAQ,EAAG,qBAAqBxB,CAAI,GAAI,EAAI,EACrC,EACvB,CACI,CAOA,QAAQ9U,EAAQsW,EAAS,CACrB,GAAItW,IAAW,IACX,MAAO,IACX,GAAIA,EAAO,CAAC,IAAM,IACd,OAAAsW,EAAQ,oBAAoBtW,CAAM,EAAE,EAC7B,KAEX,GAAIA,EAAO,CAAC,IAAM,IAAK,CACnB,MAAM+iB,EAAW/iB,EAAO,MAAM,EAAG,EAAE,EACnC,OAAI+iB,IAAa,KAAOA,IAAa,MACjCzM,EAAQ,qCAAqCtW,CAAM,cAAc,EAC1D,OAEPA,EAAOA,EAAO,OAAS,CAAC,IAAM,KAC9BsW,EAAQ,iCAAiC,EACtCyM,EACX,CACA,KAAM,CAAA,CAAGJ,EAAQK,CAAM,EAAIhjB,EAAO,MAAM,iBAAiB,EACpDgjB,GACD1M,EAAQ,OAAOtW,CAAM,oBAAoB,EAC7C,MAAM4iB,EAAS,KAAK,KAAKD,CAAM,EAC/B,GAAIC,EACA,GAAI,CACA,OAAOA,EAAS,mBAAmBI,CAAM,CAC7C,OACO7xB,EAAO,CACV,OAAAmlB,EAAQ,OAAOnlB,CAAK,CAAC,EACd,IACX,CAEJ,OAAIwxB,IAAW,IACJ3iB,GACXsW,EAAQ,0BAA0BtW,CAAM,EAAE,EACnC,KACX,CAKA,UAAUijB,EAAK,CACX,SAAW,CAACN,EAAQC,CAAM,IAAK,OAAO,QAAQ,KAAK,IAAI,EACnD,GAAIK,EAAI,WAAWL,CAAM,EACrB,OAAOD,EAASR,GAAcc,EAAI,UAAUL,EAAO,MAAM,CAAC,EAElE,OAAOK,EAAI,CAAC,IAAM,IAAMA,EAAM,KAAKA,CAAG,GAC1C,CACA,SAASC,EAAK,CACV,MAAMC,EAAQ,KAAK,KAAK,SAClB,CAAC,SAAS,KAAK,KAAK,SAAW,KAAK,EAAE,EACtC,CAAA,EACAC,EAAa,OAAO,QAAQ,KAAK,IAAI,EAC3C,IAAIC,EACJ,GAAIH,GAAOE,EAAW,OAAS,GAAKnC,GAAOiC,EAAI,QAAQ,EAAG,CACtD,MAAMX,EAAO,CAAA,EACbjB,GAAM4B,EAAI,SAAU,CAACzjB,EAAMmhB,IAAS,CAC5BK,GAAOL,CAAI,GAAKA,EAAK,MACrB2B,EAAK3B,EAAK,GAAG,EAAI,GACzB,CAAC,EACDyC,EAAW,OAAO,KAAKd,CAAI,CAC/B,MAEIc,EAAW,CAAA,EACf,SAAW,CAACV,EAAQC,CAAM,IAAKQ,EACvBT,IAAW,MAAQC,IAAW,uBAE9B,CAACM,GAAOG,EAAS,KAAK9J,GAAMA,EAAG,WAAWqJ,CAAM,CAAC,IACjDO,EAAM,KAAK,QAAQR,CAAM,IAAIC,CAAM,EAAE,EAE7C,OAAOO,EAAM,KAAK;AAAA,CAAI,CAC1B,CACJ,CACAd,GAAW,YAAc,CAAE,SAAU,GAAO,QAAS,KAAK,EAC1DA,GAAW,YAAc,CAAE,KAAM,oBAAoB,ECrKrD,SAASiB,GAAcC,EAAQ,CAC3B,GAAI,sBAAsB,KAAKA,CAAM,EAAG,CAEpC,MAAMC,EAAM,6DADD,KAAK,UAAUD,CAAM,CAC2C,GAC3E,MAAM,IAAI,MAAMC,CAAG,CACvB,CACA,MAAO,EACX,CACA,SAASC,GAAYj8B,EAAM,CACvB,MAAMk8B,EAAU,IAAI,IACpB,OAAApC,GAAM95B,EAAM,CACR,MAAMiY,EAAMmhB,EAAM,CACVA,EAAK,QACL8C,EAAQ,IAAI9C,EAAK,MAAM,CAC/B,CACR,CAAK,EACM8C,CACX,CAEA,SAASC,GAAcf,EAAQgB,EAAS,CACpC,QAASj4B,EAAI,GAAS,EAAEA,EAAG,CACvB,MAAMmpB,EAAO,GAAG8N,CAAM,GAAGj3B,CAAC,GAC1B,GAAI,CAACi4B,EAAQ,IAAI9O,CAAI,EACjB,OAAOA,CACf,CACJ,CACA,SAAS+O,GAAkBX,EAAKN,EAAQ,CACpC,MAAMkB,EAAe,CAAA,EACfC,EAAgB,IAAI,IAC1B,IAAIC,EAAc,KAClB,MAAO,CACH,SAAWhkB,GAAW,CAClB8jB,EAAa,KAAK9jB,CAAM,EACxBgkB,IAAgBA,EAAcP,GAAYP,CAAG,GAC7C,MAAMK,EAASI,GAAcf,EAAQoB,CAAW,EAChD,OAAAA,EAAY,IAAIT,CAAM,EACfA,CACX,EAMA,WAAY,IAAM,CACd,UAAWvjB,KAAU8jB,EAAc,CAC/B,MAAMhlB,EAAMilB,EAAc,IAAI/jB,CAAM,EACpC,GAAI,OAAOlB,GAAQ,UACfA,EAAI,SACHgiB,GAAShiB,EAAI,IAAI,GAAKkiB,GAAaliB,EAAI,IAAI,GAC5CA,EAAI,KAAK,OAASA,EAAI,WAErB,CACD,MAAM3N,EAAQ,IAAI,MAAM,4DAA4D,EACpF,MAAAA,EAAM,OAAS6O,EACT7O,CACV,CACJ,CACJ,EACA,cAAA4yB,CACR,CACA,CC7DA,SAASE,GAAaC,EAAS/1B,EAAKpG,EAAK8K,EAAK,CAC1C,GAAIA,GAAO,OAAOA,GAAQ,SACtB,GAAI,MAAM,QAAQA,CAAG,EACjB,QAASlH,EAAI,EAAGw4B,EAAMtxB,EAAI,OAAQlH,EAAIw4B,EAAK,EAAEx4B,EAAG,CAC5C,MAAMy4B,EAAKvxB,EAAIlH,CAAC,EACV04B,EAAKJ,GAAaC,EAASrxB,EAAK,OAAOlH,CAAC,EAAGy4B,CAAE,EAE/CC,IAAO,OACP,OAAOxxB,EAAIlH,CAAC,EACP04B,IAAOD,IACZvxB,EAAIlH,CAAC,EAAI04B,EACjB,SAEKxxB,aAAe,IACpB,UAAWvC,KAAK,MAAM,KAAKuC,EAAI,KAAI,CAAE,EAAG,CACpC,MAAMuxB,EAAKvxB,EAAI,IAAIvC,CAAC,EACd+zB,EAAKJ,GAAaC,EAASrxB,EAAKvC,EAAG8zB,CAAE,EACvCC,IAAO,OACPxxB,EAAI,OAAOvC,CAAC,EACP+zB,IAAOD,GACZvxB,EAAI,IAAIvC,EAAG+zB,CAAE,CACrB,SAEKxxB,aAAe,IACpB,UAAWuxB,KAAM,MAAM,KAAKvxB,CAAG,EAAG,CAC9B,MAAMwxB,EAAKJ,GAAaC,EAASrxB,EAAKuxB,EAAIA,CAAE,EACxCC,IAAO,OACPxxB,EAAI,OAAOuxB,CAAE,EACRC,IAAOD,IACZvxB,EAAI,OAAOuxB,CAAE,EACbvxB,EAAI,IAAIwxB,CAAE,EAElB,KAGA,UAAW,CAAC/zB,EAAG8zB,CAAE,IAAK,OAAO,QAAQvxB,CAAG,EAAG,CACvC,MAAMwxB,EAAKJ,GAAaC,EAASrxB,EAAKvC,EAAG8zB,CAAE,EACvCC,IAAO,OACP,OAAOxxB,EAAIvC,CAAC,EACP+zB,IAAOD,IACZvxB,EAAIvC,CAAC,EAAI+zB,EACjB,CAGR,OAAOH,EAAQ,KAAK/1B,EAAKpG,EAAK8K,CAAG,CACrC,CCxCA,SAASyxB,GAAKt8B,EAAOu8B,EAAKpe,EAAK,CAE3B,GAAI,MAAM,QAAQne,CAAK,EACnB,OAAOA,EAAM,IAAI,CAAC+R,EAAGpO,IAAM24B,GAAKvqB,EAAG,OAAOpO,CAAC,EAAGwa,CAAG,CAAC,EACtD,GAAIne,GAAS,OAAOA,EAAM,QAAW,WAAY,CAE7C,GAAI,CAACme,GAAO,CAAC+a,GAAUl5B,CAAK,EACxB,OAAOA,EAAM,OAAOu8B,EAAKpe,CAAG,EAChC,MAAM3T,EAAO,CAAE,WAAY,EAAG,MAAO,EAAG,IAAK,MAAS,EACtD2T,EAAI,QAAQ,IAAIne,EAAOwK,CAAI,EAC3B2T,EAAI,SAAWlL,GAAO,CAClBzI,EAAK,IAAMyI,EACX,OAAOkL,EAAI,QACf,EACA,MAAMlL,EAAMjT,EAAM,OAAOu8B,EAAKpe,CAAG,EACjC,OAAIA,EAAI,UACJA,EAAI,SAASlL,CAAG,EACbA,CACX,CACA,OAAI,OAAOjT,GAAU,UAAY,CAACme,GAAK,KAC5B,OAAOne,CAAK,EAChBA,CACX,CC9BA,MAAMw8B,EAAS,CACX,YAAYpsB,EAAM,CACd,OAAO,eAAe,KAAMsoB,GAAW,CAAE,MAAOtoB,EAAM,CAC1D,CAEA,OAAQ,CACJ,MAAMoqB,EAAO,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,OAAO,0BAA0B,IAAI,CAAC,EAC9F,OAAI,KAAK,QACLA,EAAK,MAAQ,KAAK,MAAM,MAAK,GAC1BA,CACX,CAEA,KAAKU,EAAK,CAAE,SAAAuB,EAAU,cAAAC,EAAe,SAAAC,EAAU,QAAAT,CAAO,EAAK,GAAI,CAC3D,GAAI,CAACrD,GAAWqC,CAAG,EACf,MAAM,IAAI,UAAU,iCAAiC,EACzD,MAAM/c,EAAM,CACR,QAAS,IAAI,IACb,IAAA+c,EACA,KAAM,GACN,SAAUuB,IAAa,GACvB,aAAc,GACd,cAAe,OAAOC,GAAkB,SAAWA,EAAgB,GAC/E,EACczpB,EAAMqpB,GAAK,KAAM,GAAIne,CAAG,EAC9B,GAAI,OAAOwe,GAAa,WACpB,SAAW,CAAE,MAAAC,EAAO,IAAA3pB,CAAG,IAAMkL,EAAI,QAAQ,OAAM,EAC3Cwe,EAAS1pB,EAAK2pB,CAAK,EAC3B,OAAO,OAAOV,GAAY,WACpBD,GAAaC,EAAS,CAAE,GAAIjpB,CAAG,EAAI,GAAIA,CAAG,EAC1CA,CACV,CACJ,CC7BA,MAAM4pB,WAAcL,EAAS,CACzB,YAAYxkB,EAAQ,CAChB,MAAMogB,EAAK,EACX,KAAK,OAASpgB,EACd,OAAO,eAAe,KAAM,MAAO,CAC/B,KAAM,CACF,MAAM,IAAI,MAAM,8BAA8B,CAClD,CACZ,CAAS,CACL,CAKA,QAAQkjB,EAAK/c,EAAK,CACd,IAAI2e,EACA3e,GAAK,kBACL2e,EAAQ3e,EAAI,mBAGZ2e,EAAQ,CAAA,EACRxD,GAAM4B,EAAK,CACP,KAAM,CAACzjB,EAAMmhB,IAAS,EACdD,GAAQC,CAAI,GAAKM,GAAUN,CAAI,IAC/BkE,EAAM,KAAKlE,CAAI,CACvB,CAChB,CAAa,EACGza,IACAA,EAAI,kBAAoB2e,IAEhC,IAAIC,EACJ,UAAWnE,KAAQkE,EAAO,CACtB,GAAIlE,IAAS,KACT,MACAA,EAAK,SAAW,KAAK,SACrBmE,EAAQnE,EAChB,CACA,OAAOmE,CACX,CACA,OAAOC,EAAM7e,EAAK,CACd,GAAI,CAACA,EACD,MAAO,CAAE,OAAQ,KAAK,MAAM,EAChC,KAAM,CAAE,QAAAud,EAAS,IAAAR,EAAK,cAAAwB,CAAa,EAAKve,EAClCnG,EAAS,KAAK,QAAQkjB,EAAK/c,CAAG,EACpC,GAAI,CAACnG,EAAQ,CACT,MAAMwjB,EAAM,+DAA+D,KAAK,MAAM,GACtF,MAAM,IAAI,eAAeA,CAAG,CAChC,CACA,IAAIhxB,EAAOkxB,EAAQ,IAAI1jB,CAAM,EAO7B,GANKxN,IAED8xB,GAAKtkB,EAAQ,KAAMmG,CAAG,EACtB3T,EAAOkxB,EAAQ,IAAI1jB,CAAM,GAGzBxN,GAAM,MAAQ,OAAW,CACzB,MAAMgxB,EAAM,yDACZ,MAAM,IAAI,eAAeA,CAAG,CAChC,CACA,GAAIkB,GAAiB,IACjBlyB,EAAK,OAAS,EACVA,EAAK,aAAe,IACpBA,EAAK,WAAayyB,GAAc/B,EAAKljB,EAAQ0jB,CAAO,GACpDlxB,EAAK,MAAQA,EAAK,WAAakyB,GAAe,CAC9C,MAAMlB,EAAM,+DACZ,MAAM,IAAI,eAAeA,CAAG,CAChC,CAEJ,OAAOhxB,EAAK,GAChB,CACA,SAAS2T,EAAK+e,EAAYC,EAAc,CACpC,MAAMC,EAAM,IAAI,KAAK,MAAM,GAC3B,GAAIjf,EAAK,CAEL,GADAmd,GAAc,KAAK,MAAM,EACrBnd,EAAI,QAAQ,kBAAoB,CAACA,EAAI,QAAQ,IAAI,KAAK,MAAM,EAAG,CAC/D,MAAMqd,EAAM,+DAA+D,KAAK,MAAM,GACtF,MAAM,IAAI,MAAMA,CAAG,CACvB,CACA,GAAIrd,EAAI,YACJ,MAAO,GAAGif,CAAG,GACrB,CACA,OAAOA,CACX,CACJ,CACA,SAASH,GAAc/B,EAAKtC,EAAM8C,EAAS,CACvC,GAAI/C,GAAQC,CAAI,EAAG,CACf,MAAM5gB,EAAS4gB,EAAK,QAAQsC,CAAG,EACzBK,EAASG,GAAW1jB,GAAU0jB,EAAQ,IAAI1jB,CAAM,EACtD,OAAOujB,EAASA,EAAO,MAAQA,EAAO,WAAa,CACvD,SACSvC,GAAaJ,CAAI,EAAG,CACzB,IAAIgE,EAAQ,EACZ,UAAWrrB,KAAQqnB,EAAK,MAAO,CAC3B,MAAMzZ,EAAI8d,GAAc/B,EAAK3pB,EAAMmqB,CAAO,EACtCvc,EAAIyd,IACJA,EAAQzd,EAChB,CACA,OAAOyd,CACX,SACShoB,GAAOgkB,CAAI,EAAG,CACnB,MAAMyE,EAAKJ,GAAc/B,EAAKtC,EAAK,IAAK8C,CAAO,EACzC4B,EAAKL,GAAc/B,EAAKtC,EAAK,MAAO8C,CAAO,EACjD,OAAO,KAAK,IAAI2B,EAAIC,CAAE,CAC1B,CACA,MAAO,EACX,CC3GA,MAAMC,GAAiBv9B,GAAU,CAACA,GAAU,OAAOA,GAAU,YAAc,OAAOA,GAAU,SAC5F,MAAMw9B,WAAehB,EAAS,CAC1B,YAAYx8B,EAAO,CACf,MAAMw4B,EAAM,EACZ,KAAK,MAAQx4B,CACjB,CACA,OAAOu8B,EAAKpe,EAAK,CACb,OAAOA,GAAK,KAAO,KAAK,MAAQme,GAAK,KAAK,MAAOC,EAAKpe,CAAG,CAC7D,CACA,UAAW,CACP,OAAO,OAAO,KAAK,KAAK,CAC5B,CACJ,CACAqf,GAAO,aAAe,eACtBA,GAAO,cAAgB,gBACvBA,GAAO,MAAQ,QACfA,GAAO,aAAe,eACtBA,GAAO,aAAe,eCjBtB,MAAMC,GAAmB,qBACzB,SAASC,GAAc19B,EAAO29B,EAASpD,EAAM,CACzC,GAAIoD,EAAS,CACT,MAAMC,EAAQrD,EAAK,OAAOvb,GAAKA,EAAE,MAAQ2e,CAAO,EAC1CE,EAASD,EAAM,KAAK5e,GAAK,CAACA,EAAE,MAAM,GAAK4e,EAAM,CAAC,EACpD,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,OAAOF,CAAO,YAAY,EAC9C,OAAOE,CACX,CACA,OAAOtD,EAAK,KAAKvb,GAAKA,EAAE,WAAWhf,CAAK,GAAK,CAACgf,EAAE,MAAM,CAC1D,CACA,SAAS8e,GAAW99B,EAAO29B,EAASxf,EAAK,CAGrC,GAFI0a,GAAW74B,CAAK,IAChBA,EAAQA,EAAM,UACdi5B,GAAOj5B,CAAK,EACZ,OAAOA,EACX,GAAI4U,GAAO5U,CAAK,EAAG,CACf,MAAMY,EAAMud,EAAI,OAAOma,EAAG,EAAE,aAAana,EAAI,OAAQ,KAAMA,CAAG,EAC9D,OAAAvd,EAAI,MAAM,KAAKZ,CAAK,EACbY,CACX,EACIZ,aAAiB,QACjBA,aAAiB,QACjBA,aAAiB,SAChB,OAAO,OAAW,KAAeA,aAAiB,UAGnDA,EAAQA,EAAM,QAAO,GAEzB,KAAM,CAAE,sBAAA+9B,EAAuB,SAAApB,EAAU,SAAAqB,EAAU,OAAAC,EAAQ,cAAAlC,CAAa,EAAK5d,EAG7E,IAAIrH,EACJ,GAAIinB,GAAyB/9B,GAAS,OAAOA,GAAU,SAAU,CAE7D,GADA8W,EAAMilB,EAAc,IAAI/7B,CAAK,EACzB8W,EACA,OAAAA,EAAI,SAAWA,EAAI,OAAS6lB,EAAS38B,CAAK,GACnC,IAAI68B,GAAM/lB,EAAI,MAAM,EAG3BA,EAAM,CAAE,OAAQ,KAAM,KAAM,IAAI,EAChCilB,EAAc,IAAI/7B,EAAO8W,CAAG,CAEpC,CACI6mB,GAAS,WAAW,IAAI,IACxBA,EAAUF,GAAmBE,EAAQ,MAAM,CAAC,GAChD,IAAIE,EAASH,GAAc19B,EAAO29B,EAASM,EAAO,IAAI,EACtD,GAAI,CAACJ,EAAQ,CAKT,GAJI79B,GAAS,OAAOA,EAAM,QAAW,aAEjCA,EAAQA,EAAM,OAAM,GAEpB,CAACA,GAAS,OAAOA,GAAU,SAAU,CACrC,MAAM44B,EAAO,IAAI4E,GAAOx9B,CAAK,EAC7B,OAAI8W,IACAA,EAAI,KAAO8hB,GACRA,CACX,CACAiF,EACI79B,aAAiB,IACXi+B,EAAO3F,EAAG,EACV,OAAO,YAAY,OAAOt4B,CAAK,EAC3Bi+B,EAAOxF,EAAG,EACVwF,EAAO3F,EAAG,CAC5B,CACI0F,IACAA,EAASH,CAAM,EACf,OAAO1f,EAAI,UAEf,MAAMya,EAAOiF,GAAQ,WACfA,EAAO,WAAW1f,EAAI,OAAQne,EAAOme,CAAG,EACxC,OAAO0f,GAAQ,WAAW,MAAS,WAC/BA,EAAO,UAAU,KAAK1f,EAAI,OAAQne,EAAOme,CAAG,EAC5C,IAAIqf,GAAOx9B,CAAK,EAC1B,OAAI29B,EACA/E,EAAK,IAAM+E,EACLE,EAAO,UACbjF,EAAK,IAAMiF,EAAO,KAClB/mB,IACAA,EAAI,KAAO8hB,GACRA,CACX,CCjFA,SAASsF,GAAmBD,EAAQtE,EAAM35B,EAAO,CAC7C,IAAI+R,EAAI/R,EACR,QAAS2D,EAAIg2B,EAAK,OAAS,EAAGh2B,GAAK,EAAG,EAAEA,EAAG,CACvC,MAAM2E,EAAIqxB,EAAKh2B,CAAC,EAChB,GAAI,OAAO2E,GAAM,UAAY,OAAO,UAAUA,CAAC,GAAKA,GAAK,EAAG,CACxD,MAAM,EAAI,CAAA,EACV,EAAEA,CAAC,EAAIyJ,EACPA,EAAI,CACR,MAEIA,EAAI,IAAI,IAAI,CAAC,CAACzJ,EAAGyJ,CAAC,CAAC,CAAC,CAE5B,CACA,OAAO+rB,GAAW/rB,EAAG,OAAW,CAC5B,sBAAuB,GACvB,cAAe,GACf,SAAU,IAAM,CACZ,MAAM,IAAI,MAAM,8CAA8C,CAClE,EACA,OAAAksB,EACA,cAAe,IAAI,GAC3B,CAAK,CACL,CAGA,MAAME,GAAexE,GAASA,GAAQ,MACjC,OAAOA,GAAS,UAAY,CAAC,CAACA,EAAK,OAAO,QAAQ,EAAC,EAAG,KAAI,EAAG,KAClE,MAAMyE,WAAmB5B,EAAS,CAC9B,YAAYpsB,EAAM6tB,EAAQ,CACtB,MAAM7tB,CAAI,EACV,OAAO,eAAe,KAAM,SAAU,CAClC,MAAO6tB,EACP,aAAc,GACd,WAAY,GACZ,SAAU,EACtB,CAAS,CACL,CAMA,MAAMA,EAAQ,CACV,MAAMzD,EAAO,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,OAAO,0BAA0B,IAAI,CAAC,EAC9F,OAAIyD,IACAzD,EAAK,OAASyD,GAClBzD,EAAK,MAAQA,EAAK,MAAM,IAAIpT,GAAM6R,GAAO7R,CAAE,GAAKxS,GAAOwS,CAAE,EAAIA,EAAG,MAAM6W,CAAM,EAAI7W,CAAE,EAC9E,KAAK,QACLoT,EAAK,MAAQ,KAAK,MAAM,MAAK,GAC1BA,CACX,CAMA,MAAMb,EAAM35B,EAAO,CACf,GAAIm+B,GAAYxE,CAAI,EAChB,KAAK,IAAI35B,CAAK,MACb,CACD,KAAM,CAACD,EAAK,GAAGqH,CAAI,EAAIuyB,EACjBf,EAAO,KAAK,IAAI74B,EAAK,EAAI,EAC/B,GAAIi5B,GAAaJ,CAAI,EACjBA,EAAK,MAAMxxB,EAAMpH,CAAK,UACjB44B,IAAS,QAAa,KAAK,OAChC,KAAK,IAAI74B,EAAKm+B,GAAmB,KAAK,OAAQ92B,EAAMpH,CAAK,CAAC,MAE1D,OAAM,IAAI,MAAM,+BAA+BD,CAAG,qBAAqBqH,CAAI,EAAE,CACrF,CACJ,CAKA,SAASuyB,EAAM,CACX,KAAM,CAAC55B,EAAK,GAAGqH,CAAI,EAAIuyB,EACvB,GAAIvyB,EAAK,SAAW,EAChB,OAAO,KAAK,OAAOrH,CAAG,EAC1B,MAAM64B,EAAO,KAAK,IAAI74B,EAAK,EAAI,EAC/B,GAAIi5B,GAAaJ,CAAI,EACjB,OAAOA,EAAK,SAASxxB,CAAI,EAEzB,MAAM,IAAI,MAAM,+BAA+BrH,CAAG,qBAAqBqH,CAAI,EAAE,CACrF,CAMA,MAAMuyB,EAAM0E,EAAY,CACpB,KAAM,CAACt+B,EAAK,GAAGqH,CAAI,EAAIuyB,EACjBf,EAAO,KAAK,IAAI74B,EAAK,EAAI,EAC/B,OAAIqH,EAAK,SAAW,EACT,CAACi3B,GAAcvF,GAASF,CAAI,EAAIA,EAAK,MAAQA,EAE7CI,GAAaJ,CAAI,EAAIA,EAAK,MAAMxxB,EAAMi3B,CAAU,EAAI,MACnE,CACA,iBAAiBC,EAAa,CAC1B,OAAO,KAAK,MAAM,MAAM1F,GAAQ,CAC5B,GAAI,CAAChkB,GAAOgkB,CAAI,EACZ,MAAO,GACX,MAAM3Z,EAAI2Z,EAAK,MACf,OAAQ3Z,GAAK,MACRqf,GACGxF,GAAS7Z,CAAC,GACVA,EAAE,OAAS,MACX,CAACA,EAAE,eACH,CAACA,EAAE,SACH,CAACA,EAAE,GACf,CAAC,CACL,CAIA,MAAM0a,EAAM,CACR,KAAM,CAAC55B,EAAK,GAAGqH,CAAI,EAAIuyB,EACvB,GAAIvyB,EAAK,SAAW,EAChB,OAAO,KAAK,IAAIrH,CAAG,EACvB,MAAM64B,EAAO,KAAK,IAAI74B,EAAK,EAAI,EAC/B,OAAOi5B,GAAaJ,CAAI,EAAIA,EAAK,MAAMxxB,CAAI,EAAI,EACnD,CAKA,MAAMuyB,EAAM35B,EAAO,CACf,KAAM,CAACD,EAAK,GAAGqH,CAAI,EAAIuyB,EACvB,GAAIvyB,EAAK,SAAW,EAChB,KAAK,IAAIrH,EAAKC,CAAK,MAElB,CACD,MAAM44B,EAAO,KAAK,IAAI74B,EAAK,EAAI,EAC/B,GAAIi5B,GAAaJ,CAAI,EACjBA,EAAK,MAAMxxB,EAAMpH,CAAK,UACjB44B,IAAS,QAAa,KAAK,OAChC,KAAK,IAAI74B,EAAKm+B,GAAmB,KAAK,OAAQ92B,EAAMpH,CAAK,CAAC,MAE1D,OAAM,IAAI,MAAM,+BAA+BD,CAAG,qBAAqBqH,CAAI,EAAE,CACrF,CACJ,CACJ,CCzIA,MAAMm3B,GAAoB3zB,GAAQA,EAAI,QAAQ,kBAAmB,GAAG,EACpE,SAAS4zB,GAAcC,EAASC,EAAQ,CACpC,MAAI,QAAQ,KAAKD,CAAO,EACbA,EAAQ,UAAU,CAAC,EACvBC,EAASD,EAAQ,QAAQ,aAAcC,CAAM,EAAID,CAC5D,CACA,MAAME,GAAc,CAAC/zB,EAAK8zB,EAAQD,IAAY7zB,EAAI,SAAS;AAAA,CAAI,EACzD4zB,GAAcC,EAASC,CAAM,EAC7BD,EAAQ,SAAS;AAAA,CAAI,EACjB;AAAA,EAAOD,GAAcC,EAASC,CAAM,GACnC9zB,EAAI,SAAS,GAAG,EAAI,GAAK,KAAO6zB,ECjBrCG,GAAY,OACZC,GAAa,QACbC,GAAc,SAMpB,SAASC,GAAcC,EAAMN,EAAQO,EAAO,OAAQ,CAAE,cAAAC,EAAe,UAAAC,EAAY,GAAI,gBAAAC,EAAkB,GAAI,OAAAC,EAAQ,WAAAC,CAAU,EAAK,CAAA,EAAI,CAClI,GAAI,CAACH,GAAaA,EAAY,EAC1B,OAAOH,EACPG,EAAYC,IACZA,EAAkB,GACtB,MAAMG,EAAU,KAAK,IAAI,EAAIH,EAAiB,EAAID,EAAYT,EAAO,MAAM,EAC3E,GAAIM,EAAK,QAAUO,EACf,OAAOP,EACX,MAAMQ,EAAQ,CAAA,EACRC,EAAe,CAAA,EACrB,IAAIpjB,EAAM8iB,EAAYT,EAAO,OACzB,OAAOQ,GAAkB,WACrBA,EAAgBC,EAAY,KAAK,IAAI,EAAGC,CAAe,EACvDI,EAAM,KAAK,CAAC,EAEZnjB,EAAM8iB,EAAYD,GAE1B,IAAIQ,EACA/wB,EACAgxB,EAAW,GACXh8B,EAAI,GACJi8B,EAAW,GACXC,EAAS,GACTZ,IAASJ,KACTl7B,EAAIm8B,GAAyBd,EAAMr7B,EAAG+6B,EAAO,MAAM,EAC/C/6B,IAAM,KACN0Y,EAAM1Y,EAAI47B,IAElB,QAASnF,GAAKA,GAAK4E,EAAMr7B,GAAK,CAAC,GAAM,CACjC,GAAIs7B,IAASH,IAAe1E,KAAO,KAAM,CAErC,OADAwF,EAAWj8B,EACHq7B,EAAKr7B,EAAI,CAAC,EAAC,CACf,IAAK,IACDA,GAAK,EACL,MACJ,IAAK,IACDA,GAAK,EACL,MACJ,IAAK,IACDA,GAAK,EACL,MACJ,QACIA,GAAK,CACzB,CACYk8B,EAASl8B,CACb,CACA,GAAIy2B,KAAO;AAAA,EACH6E,IAASJ,KACTl7B,EAAIm8B,GAAyBd,EAAMr7B,EAAG+6B,EAAO,MAAM,GACvDriB,EAAM1Y,EAAI+6B,EAAO,OAASa,EAC1BG,EAAQ,WAEP,CACD,GAAItF,KAAO,KACPzrB,GACAA,IAAS,KACTA,IAAS;AAAA,GACTA,IAAS,IAAM,CAEf,MAAMhH,EAAOq3B,EAAKr7B,EAAI,CAAC,EACnBgE,GAAQA,IAAS,KAAOA,IAAS;AAAA,GAAQA,IAAS,MAClD+3B,EAAQ/7B,EAChB,CACA,GAAIA,GAAK0Y,EACL,GAAIqjB,EACAF,EAAM,KAAKE,CAAK,EAChBrjB,EAAMqjB,EAAQH,EACdG,EAAQ,eAEHT,IAASH,GAAa,CAE3B,KAAOnwB,IAAS,KAAOA,IAAS,KAC5BA,EAAOyrB,GACPA,GAAK4E,EAAMr7B,GAAK,CAAC,EACjBg8B,EAAW,GAGf,MAAMze,EAAIvd,EAAIk8B,EAAS,EAAIl8B,EAAI,EAAIi8B,EAAW,EAE9C,GAAIH,EAAave,CAAC,EACd,OAAO8d,EACXQ,EAAM,KAAKte,CAAC,EACZue,EAAave,CAAC,EAAI,GAClB7E,EAAM6E,EAAIqe,EACVG,EAAQ,MACZ,MAEIC,EAAW,EAGvB,CACAhxB,EAAOyrB,EACX,CAGA,GAFIuF,GAAYL,GACZA,EAAU,EACVE,EAAM,SAAW,EACjB,OAAOR,EACPK,GACAA,EAAM,EACV,IAAIpsB,EAAM+rB,EAAK,MAAM,EAAGQ,EAAM,CAAC,CAAC,EAChC,QAAS77B,GAAI,EAAGA,GAAI67B,EAAM,OAAQ,EAAE77B,GAAG,CACnC,MAAMo8B,EAAOP,EAAM77B,EAAC,EACd0Y,GAAMmjB,EAAM77B,GAAI,CAAC,GAAKq7B,EAAK,OAC7Be,IAAS,EACT9sB,EAAM;AAAA,EAAKyrB,CAAM,GAAGM,EAAK,MAAM,EAAG3iB,EAAG,CAAC,IAElC4iB,IAASH,IAAeW,EAAaM,CAAI,IACzC9sB,GAAO,GAAG+rB,EAAKe,CAAI,CAAC,MACxB9sB,GAAO;AAAA,EAAKyrB,CAAM,GAAGM,EAAK,MAAMe,EAAO,EAAG1jB,EAAG,CAAC,GAEtD,CACA,OAAOpJ,CACX,CAKA,SAAS6sB,GAAyBd,EAAMr7B,EAAG+6B,EAAQ,CAC/C,IAAIriB,EAAM1Y,EACNyY,EAAQzY,EAAI,EACZy2B,EAAK4E,EAAK5iB,CAAK,EACnB,KAAOge,IAAO,KAAOA,IAAO,KACxB,GAAIz2B,EAAIyY,EAAQsiB,EACZtE,EAAK4E,EAAK,EAAEr7B,CAAC,MAEZ,CACD,GACIy2B,EAAK4E,EAAK,EAAEr7B,CAAC,QACRy2B,GAAMA,IAAO;AAAA,GACtB/d,EAAM1Y,EACNyY,EAAQzY,EAAI,EACZy2B,EAAK4E,EAAK5iB,CAAK,CACnB,CAEJ,OAAOC,CACX,CC5IA,MAAM2jB,GAAiB,CAAC7hB,EAAK8hB,KAAa,CACtC,cAAeA,EAAU9hB,EAAI,OAAO,OAASA,EAAI,cACjD,UAAWA,EAAI,QAAQ,UACvB,gBAAiBA,EAAI,QAAQ,eACjC,GAGM+hB,GAA0Bt1B,GAAQ,mBAAmB,KAAKA,CAAG,EACnE,SAASu1B,GAAoBv1B,EAAKu0B,EAAWiB,EAAc,CACvD,GAAI,CAACjB,GAAaA,EAAY,EAC1B,MAAO,GACX,MAAMkB,EAAQlB,EAAYiB,EACpBE,EAAS11B,EAAI,OACnB,GAAI01B,GAAUD,EACV,MAAO,GACX,QAAS18B,EAAI,EAAGyY,EAAQ,EAAGzY,EAAI28B,EAAQ,EAAE38B,EACrC,GAAIiH,EAAIjH,CAAC,IAAM;AAAA,EAAM,CACjB,GAAIA,EAAIyY,EAAQikB,EACZ,MAAO,GAEX,GADAjkB,EAAQzY,EAAI,EACR28B,EAASlkB,GAASikB,EAClB,MAAO,EACf,CAEJ,MAAO,EACX,CACA,SAASE,GAAmBvgC,EAAOme,EAAK,CACpC,MAAMqiB,EAAO,KAAK,UAAUxgC,CAAK,EACjC,GAAIme,EAAI,QAAQ,mBACZ,OAAOqiB,EACX,KAAM,CAAE,YAAAC,CAAW,EAAKtiB,EAClBuiB,EAAqBviB,EAAI,QAAQ,+BACjCugB,EAASvgB,EAAI,SAAW+hB,GAAuBlgC,CAAK,EAAI,KAAO,IACrE,IAAI4K,EAAM,GACNwR,EAAQ,EACZ,QAASzY,EAAI,EAAGy2B,EAAKoG,EAAK78B,CAAC,EAAGy2B,EAAIA,EAAKoG,EAAK,EAAE78B,CAAC,EAQ3C,GAPIy2B,IAAO,KAAOoG,EAAK78B,EAAI,CAAC,IAAM,MAAQ68B,EAAK78B,EAAI,CAAC,IAAM,MAEtDiH,GAAO41B,EAAK,MAAMpkB,EAAOzY,CAAC,EAAI,MAC9BA,GAAK,EACLyY,EAAQzY,EACRy2B,EAAK,MAELA,IAAO,KACP,OAAQoG,EAAK78B,EAAI,CAAC,EAAC,CACf,IAAK,IACD,CACIiH,GAAO41B,EAAK,MAAMpkB,EAAOzY,CAAC,EAC1B,MAAMg9B,EAAOH,EAAK,OAAO78B,EAAI,EAAG,CAAC,EACjC,OAAQg9B,EAAI,CACR,IAAK,OACD/1B,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,QACQ+1B,EAAK,OAAO,EAAG,CAAC,IAAM,KACtB/1B,GAAO,MAAQ+1B,EAAK,OAAO,CAAC,EAE5B/1B,GAAO41B,EAAK,OAAO78B,EAAG,CAAC,CAC3D,CACwBA,GAAK,EACLyY,EAAQzY,EAAI,CAChB,CACA,MACJ,IAAK,IACD,GAAI88B,GACAD,EAAK78B,EAAI,CAAC,IAAM,KAChB68B,EAAK,OAASE,EACd/8B,GAAK,MAEJ,CAGD,IADAiH,GAAO41B,EAAK,MAAMpkB,EAAOzY,CAAC,EAAI;AAAA;AAAA,EACvB68B,EAAK78B,EAAI,CAAC,IAAM,MACnB68B,EAAK78B,EAAI,CAAC,IAAM,KAChB68B,EAAK78B,EAAI,CAAC,IAAM,KAChBiH,GAAO;AAAA,EACPjH,GAAK,EAETiH,GAAO8zB,EAEH8B,EAAK78B,EAAI,CAAC,IAAM,MAChBiH,GAAO,MACXjH,GAAK,EACLyY,EAAQzY,EAAI,CAChB,CACA,MACJ,QACIA,GAAK,CACzB,CAEI,OAAAiH,EAAMwR,EAAQxR,EAAM41B,EAAK,MAAMpkB,CAAK,EAAIokB,EACjCC,EACD71B,EACAm0B,GAAcn0B,EAAK8zB,EAAQI,GAAakB,GAAe7hB,EAAK,EAAK,CAAC,CAC5E,CACA,SAASyiB,GAAmB5gC,EAAOme,EAAK,CACpC,GAAIA,EAAI,QAAQ,cAAgB,IAC3BA,EAAI,aAAene,EAAM,SAAS;AAAA,CAAI,GACvC,kBAAkB,KAAKA,CAAK,EAE5B,OAAOugC,GAAmBvgC,EAAOme,CAAG,EACxC,MAAMugB,EAASvgB,EAAI,SAAW+hB,GAAuBlgC,CAAK,EAAI,KAAO,IAC/DiT,EAAM,IAAMjT,EAAM,QAAQ,KAAM,IAAI,EAAE,QAAQ,OAAQ;AAAA,EAAO0+B,CAAM,EAAE,EAAI,IAC/E,OAAOvgB,EAAI,YACLlL,EACA8rB,GAAc9rB,EAAKyrB,EAAQE,GAAWoB,GAAe7hB,EAAK,EAAK,CAAC,CAC1E,CACA,SAAS0iB,GAAa7gC,EAAOme,EAAK,CAC9B,KAAM,CAAE,YAAA2iB,GAAgB3iB,EAAI,QAC5B,IAAI4iB,EACJ,GAAID,IAAgB,GAChBC,EAAKR,OACJ,CACD,MAAMS,EAAYhhC,EAAM,SAAS,GAAG,EAC9BihC,EAAYjhC,EAAM,SAAS,GAAG,EAChCghC,GAAa,CAACC,EACdF,EAAKH,GACAK,GAAa,CAACD,EACnBD,EAAKR,GAELQ,EAAKD,EAAcF,GAAqBL,EAChD,CACA,OAAOQ,EAAG/gC,EAAOme,CAAG,CACxB,CAGA,IAAI+iB,GACJ,GAAI,CACAA,GAAmB,IAAI,OAAO;AAAA;AAAA;AAAA,KAA0B,GAAG,CAC/D,MACM,CACFA,GAAmB,cACvB,CACA,SAASC,GAAY,CAAE,QAAA1C,EAAS,KAAAruB,EAAM,MAAApQ,CAAK,EAAIme,EAAKijB,EAAWC,EAAa,CACxE,KAAM,CAAE,WAAAC,EAAY,cAAAC,EAAe,UAAApC,CAAS,EAAKhhB,EAAI,QAGrD,GAAI,CAACmjB,GAAc,YAAY,KAAKthC,CAAK,EACrC,OAAO6gC,GAAa7gC,EAAOme,CAAG,EAElC,MAAMugB,EAASvgB,EAAI,SACdA,EAAI,kBAAoB+hB,GAAuBlgC,CAAK,EAAI,KAAO,IAC9DwhC,EAAUF,IAAe,UACzB,GACAA,IAAe,UAAYlxB,IAASotB,GAAO,aACvC,GACAptB,IAASotB,GAAO,cACZ,GACA,CAAC2C,GAAoBngC,EAAOm/B,EAAWT,EAAO,MAAM,EAClE,GAAI,CAAC1+B,EACD,OAAOwhC,EAAU;AAAA,EAAQ;AAAA,EAE7B,IAAIC,EACAC,EACJ,IAAKA,EAAW1hC,EAAM,OAAQ0hC,EAAW,EAAG,EAAEA,EAAU,CACpD,MAAMtH,GAAKp6B,EAAM0hC,EAAW,CAAC,EAC7B,GAAItH,KAAO;AAAA,GAAQA,KAAO,KAAQA,KAAO,IACrC,KACR,CACA,IAAI/d,EAAMrc,EAAM,UAAU0hC,CAAQ,EAClC,MAAMC,EAAWtlB,EAAI,QAAQ;AAAA,CAAI,EAC7BslB,IAAa,GACbF,EAAQ,IAEHzhC,IAAUqc,GAAOslB,IAAatlB,EAAI,OAAS,GAChDolB,EAAQ,IACJJ,GACAA,EAAW,GAGfI,EAAQ,GAERplB,IACArc,EAAQA,EAAM,MAAM,EAAG,CAACqc,EAAI,MAAM,EAC9BA,EAAIA,EAAI,OAAS,CAAC,IAAM;AAAA,IACxBA,EAAMA,EAAI,MAAM,EAAG,EAAE,GACzBA,EAAMA,EAAI,QAAQ6kB,GAAkB,KAAKxC,CAAM,EAAE,GAGrD,IAAIkD,EAAiB,GACjBC,EACAC,EAAa,GACjB,IAAKD,EAAW,EAAGA,EAAW7hC,EAAM,OAAQ,EAAE6hC,EAAU,CACpD,MAAMzH,GAAKp6B,EAAM6hC,CAAQ,EACzB,GAAIzH,KAAO,IACPwH,EAAiB,WACZxH,KAAO;AAAA,EACZ0H,EAAaD,MAEb,MACR,CACA,IAAIzlB,EAAQpc,EAAM,UAAU,EAAG8hC,EAAaD,EAAWC,EAAa,EAAID,CAAQ,EAC5EzlB,IACApc,EAAQA,EAAM,UAAUoc,EAAM,MAAM,EACpCA,EAAQA,EAAM,QAAQ,OAAQ,KAAKsiB,CAAM,EAAE,GAI/C,IAAIqD,GAAUH,EAFKlD,EAAS,IAAM,IAEU,IAAM+C,EAMlD,GALIhD,IACAsD,GAAU,IAAMR,EAAc9C,EAAQ,QAAQ,aAAc,GAAG,CAAC,EAC5D2C,GACAA,EAAS,GAEb,CAACI,EAAS,CACV,MAAMQ,GAAchiC,EACf,QAAQ,OAAQ;AAAA,GAAM,EACtB,QAAQ,iDAAkD,MAAM,EAEhE,QAAQ,OAAQ,KAAK0+B,CAAM,EAAE,EAClC,IAAIuD,GAAkB,GACtB,MAAMC,GAAclC,GAAe7hB,EAAK,EAAI,EACxCmjB,IAAe,UAAYlxB,IAASotB,GAAO,eAC3C0E,GAAY,WAAa,IAAM,CAC3BD,GAAkB,EACtB,GAEJ,MAAME,EAAOpD,GAAc,GAAG3iB,CAAK,GAAG4lB,EAAW,GAAG3lB,CAAG,GAAIqiB,EAAQG,GAAYqD,EAAW,EAC1F,GAAI,CAACD,GACD,MAAO,IAAIF,CAAM;AAAA,EAAKrD,CAAM,GAAGyD,CAAI,EAC3C,CACA,OAAAniC,EAAQA,EAAM,QAAQ,OAAQ,KAAK0+B,CAAM,EAAE,EACpC,IAAIqD,CAAM;AAAA,EAAKrD,CAAM,GAAGtiB,CAAK,GAAGpc,CAAK,GAAGqc,CAAG,EACtD,CACA,SAAS+lB,GAAY7wB,EAAM4M,EAAKijB,EAAWC,EAAa,CACpD,KAAM,CAAE,KAAAjxB,EAAM,MAAApQ,CAAK,EAAKuR,EAClB,CAAE,aAAA8wB,EAAc,YAAA5B,EAAa,OAAA/B,EAAQ,WAAA4D,EAAY,OAAAC,CAAM,EAAKpkB,EAClE,GAAKsiB,GAAezgC,EAAM,SAAS;AAAA,CAAI,GAClCuiC,GAAU,WAAW,KAAKviC,CAAK,EAChC,OAAO6gC,GAAa7gC,EAAOme,CAAG,EAElC,GAAI,oFAAoF,KAAKne,CAAK,EAO9F,OAAOygC,GAAe8B,GAAU,CAACviC,EAAM,SAAS;AAAA,CAAI,EAC9C6gC,GAAa7gC,EAAOme,CAAG,EACvBgjB,GAAY5vB,EAAM4M,EAAKijB,EAAWC,CAAW,EAEvD,GAAI,CAACZ,GACD,CAAC8B,GACDnyB,IAASotB,GAAO,OAChBx9B,EAAM,SAAS;AAAA,CAAI,EAEnB,OAAOmhC,GAAY5vB,EAAM4M,EAAKijB,EAAWC,CAAW,EAExD,GAAInB,GAAuBlgC,CAAK,EAAG,CAC/B,GAAI0+B,IAAW,GACX,OAAAvgB,EAAI,iBAAmB,GAChBgjB,GAAY5vB,EAAM4M,EAAKijB,EAAWC,CAAW,EAEnD,GAAIZ,GAAe/B,IAAW4D,EAC/B,OAAOzB,GAAa7gC,EAAOme,CAAG,CAEtC,CACA,MAAMvT,EAAM5K,EAAM,QAAQ,OAAQ;AAAA,EAAO0+B,CAAM,EAAE,EAIjD,GAAI2D,EAAc,CACd,MAAMG,EAAQvH,GAAQA,EAAI,SAAWA,EAAI,MAAQ,yBAA2BA,EAAI,MAAM,KAAKrwB,CAAG,EACxF,CAAE,OAAA63B,EAAQ,KAAAlI,CAAI,EAAKpc,EAAI,IAAI,OACjC,GAAIoc,EAAK,KAAKiI,CAAI,GAAKC,GAAQ,KAAKD,CAAI,EACpC,OAAO3B,GAAa7gC,EAAOme,CAAG,CACtC,CACA,OAAOsiB,EACD71B,EACAm0B,GAAcn0B,EAAK8zB,EAAQE,GAAWoB,GAAe7hB,EAAK,EAAK,CAAC,CAC1E,CACA,SAASukB,GAAgBnxB,EAAM4M,EAAKijB,EAAWC,EAAa,CACxD,KAAM,CAAE,YAAAZ,EAAa,OAAA8B,CAAM,EAAKpkB,EAC1BwkB,EAAK,OAAOpxB,EAAK,OAAU,SAC3BA,EACA,OAAO,OAAO,CAAA,EAAIA,EAAM,CAAE,MAAO,OAAOA,EAAK,KAAK,EAAG,EAC3D,GAAI,CAAE,KAAAnB,CAAI,EAAKmB,EACXnB,IAASotB,GAAO,cAEZ,kDAAkD,KAAKmF,EAAG,KAAK,IAC/DvyB,EAAOotB,GAAO,cAEtB,MAAMoF,EAAcC,GAAU,CAC1B,OAAQA,EAAK,CACT,KAAKrF,GAAO,aACZ,KAAKA,GAAO,cACR,OAAOiD,GAAe8B,EAChB1B,GAAa8B,EAAG,MAAOxkB,CAAG,EAC1BgjB,GAAYwB,EAAIxkB,EAAKijB,EAAWC,CAAW,EACrD,KAAK7D,GAAO,aACR,OAAO+C,GAAmBoC,EAAG,MAAOxkB,CAAG,EAC3C,KAAKqf,GAAO,aACR,OAAOoD,GAAmB+B,EAAG,MAAOxkB,CAAG,EAC3C,KAAKqf,GAAO,MACR,OAAO4E,GAAYO,EAAIxkB,EAAKijB,EAAWC,CAAW,EACtD,QACI,OAAO,IACvB,CACI,EACA,IAAIpuB,EAAM2vB,EAAWxyB,CAAI,EACzB,GAAI6C,IAAQ,KAAM,CACd,KAAM,CAAE,eAAA6vB,EAAgB,kBAAAC,CAAiB,EAAK5kB,EAAI,QAC5Ca,EAAKyhB,GAAeqC,GAAmBC,EAE7C,GADA9vB,EAAM2vB,EAAW5jB,CAAC,EACd/L,IAAQ,KACR,MAAM,IAAI,MAAM,mCAAmC+L,CAAC,EAAE,CAC9D,CACA,OAAO/L,CACX,CCxUA,SAAS+vB,GAAuB9H,EAAKjiB,EAAS,CAC1C,MAAMgqB,EAAM,OAAO,OAAO,CACtB,WAAY,GACZ,cAAe1E,GACf,eAAgB,KAChB,kBAAmB,QACnB,WAAY,KACZ,mBAAoB,GACpB,+BAAgC,GAChC,SAAU,QACV,sBAAuB,GACvB,UAAW,GACX,UAAW,GACX,gBAAiB,GACjB,QAAS,OACT,WAAY,GACZ,YAAa,KACb,cAAe,GACf,QAAS,OACT,iBAAkB,EAC1B,EAAOrD,EAAI,OAAO,gBAAiBjiB,CAAO,EACtC,IAAIspB,EACJ,OAAQU,EAAI,gBAAe,CACvB,IAAK,QACDV,EAAS,GACT,MACJ,IAAK,OACDA,EAAS,GACT,MACJ,QACIA,EAAS,IACrB,CACI,MAAO,CACH,QAAS,IAAI,IACb,IAAArH,EACA,sBAAuB+H,EAAI,sBAAwB,IAAM,GACzD,OAAQ,GACR,WAAY,OAAOA,EAAI,QAAW,SAAW,IAAI,OAAOA,EAAI,MAAM,EAAI,KACtE,OAAAV,EACA,QAASU,CACjB,CACA,CACA,SAASC,GAAa3I,EAAMhpB,EAAM,CAC9B,GAAIA,EAAK,IAAK,CACV,MAAMqsB,EAAQrD,EAAK,OAAOvb,GAAKA,EAAE,MAAQzN,EAAK,GAAG,EACjD,GAAIqsB,EAAM,OAAS,EACf,OAAOA,EAAM,KAAK5e,GAAKA,EAAE,SAAWzN,EAAK,MAAM,GAAKqsB,EAAM,CAAC,CACnE,CACA,IAAIC,EACA13B,EACJ,GAAI2yB,GAASvnB,CAAI,EAAG,CAChBpL,EAAMoL,EAAK,MACX,IAAIqsB,EAAQrD,EAAK,OAAOvb,GAAKA,EAAE,WAAW7Y,CAAG,CAAC,EAC9C,GAAIy3B,EAAM,OAAS,EAAG,CAClB,MAAMuF,EAAYvF,EAAM,OAAO5e,GAAKA,EAAE,IAAI,EACtCmkB,EAAU,OAAS,IACnBvF,EAAQuF,EAChB,CACAtF,EACID,EAAM,KAAK5e,GAAKA,EAAE,SAAWzN,EAAK,MAAM,GAAKqsB,EAAM,KAAK5e,GAAK,CAACA,EAAE,MAAM,CAC9E,MAEI7Y,EAAMoL,EACNssB,EAAStD,EAAK,KAAKvb,GAAKA,EAAE,WAAa7Y,aAAe6Y,EAAE,SAAS,EAErE,GAAI,CAAC6e,EAAQ,CACT,MAAM/Q,EAAO3mB,GAAK,aAAa,OAASA,IAAQ,KAAO,OAAS,OAAOA,GACvE,MAAM,IAAI,MAAM,wBAAwB2mB,CAAI,QAAQ,CACxD,CACA,OAAO+Q,CACX,CAEA,SAASuF,GAAexK,EAAMiF,EAAQ,CAAE,QAAAnC,EAAS,IAAAR,CAAG,EAAI,CACpD,GAAI,CAACA,EAAI,WACL,MAAO,GACX,MAAMmI,EAAQ,CAAA,EACR9H,GAAUzC,GAASF,CAAI,GAAKI,GAAaJ,CAAI,IAAMA,EAAK,OAC1D2C,GAAUD,GAAcC,CAAM,IAC9BG,EAAQ,IAAIH,CAAM,EAClB8H,EAAM,KAAK,IAAI9H,CAAM,EAAE,GAE3B,MAAMN,EAAMrC,EAAK,MAAQiF,EAAO,QAAU,KAAOA,EAAO,KACxD,OAAI5C,GACAoI,EAAM,KAAKnI,EAAI,WAAW,UAAUD,CAAG,CAAC,EACrCoI,EAAM,KAAK,GAAG,CACzB,CACA,SAASC,GAAU/xB,EAAM4M,EAAKijB,EAAWC,EAAa,CAClD,GAAIzsB,GAAOrD,CAAI,EACX,OAAOA,EAAK,SAAS4M,EAAKijB,EAAWC,CAAW,EACpD,GAAI1I,GAAQpnB,CAAI,EAAG,CACf,GAAI4M,EAAI,IAAI,WACR,OAAO5M,EAAK,SAAS4M,CAAG,EAC5B,GAAIA,EAAI,iBAAiB,IAAI5M,CAAI,EAC7B,MAAM,IAAI,UAAU,yDAAyD,EAGzE4M,EAAI,gBACJA,EAAI,gBAAgB,IAAI5M,CAAI,EAE5B4M,EAAI,gBAAkB,IAAI,IAAI,CAAC5M,CAAI,CAAC,EACxCA,EAAOA,EAAK,QAAQ4M,EAAI,GAAG,CAEnC,CACA,IAAI0f,EACJ,MAAMjF,EAAOK,GAAO1nB,CAAI,EAClBA,EACA4M,EAAI,IAAI,WAAW5M,EAAM,CAAE,SAAUqO,GAAMie,EAASje,EAAI,EAC9Die,IAAWA,EAASqF,GAAa/kB,EAAI,IAAI,OAAO,KAAMya,CAAI,GAC1D,MAAMyK,EAAQD,GAAexK,EAAMiF,EAAQ1f,CAAG,EAC1CklB,EAAM,OAAS,IACfllB,EAAI,eAAiBA,EAAI,eAAiB,GAAKklB,EAAM,OAAS,GAClE,MAAMz4B,EAAM,OAAOizB,EAAO,WAAc,WAClCA,EAAO,UAAUjF,EAAMza,EAAKijB,EAAWC,CAAW,EAClDvI,GAASF,CAAI,EACT8J,GAAgB9J,EAAMza,EAAKijB,EAAWC,CAAW,EACjDzI,EAAK,SAASza,EAAKijB,EAAWC,CAAW,EACnD,OAAKgC,EAEEvK,GAASF,CAAI,GAAKhuB,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,IAAM,IAChD,GAAGy4B,CAAK,IAAIz4B,CAAG,GACf,GAAGy4B,CAAK;AAAA,EAAKllB,EAAI,MAAM,GAAGvT,CAAG,GAHxBA,CAIf,CCzHA,SAAS24B,GAAc,CAAE,IAAAxjC,EAAK,MAAAC,CAAK,EAAIme,EAAKijB,EAAWC,EAAa,CAChE,KAAM,CAAE,cAAAmC,EAAe,IAAAtI,EAAK,OAAAwD,EAAQ,WAAA4D,EAAY,QAAS,CAAE,cAAAf,EAAe,UAAAkC,EAAW,WAAAC,CAAU,CAAE,EAAKvlB,EACtG,IAAIwlB,EAAc1K,GAAOl5B,CAAG,GAAKA,EAAI,SAAY,KACjD,GAAI2jC,EAAY,CACZ,GAAIC,EACA,MAAM,IAAI,MAAM,kDAAkD,EAEtE,GAAI3K,GAAaj5B,CAAG,GAAM,CAACk5B,GAAOl5B,CAAG,GAAK,OAAOA,GAAQ,SAAW,CAChE,MAAMy7B,GAAM,6DACZ,MAAM,IAAI,MAAMA,EAAG,CACvB,CACJ,CACA,IAAIoI,EAAc,CAACF,IACd,CAAC3jC,GACG4jC,GAAc3jC,GAAS,MAAQ,CAACme,EAAI,QACrC6a,GAAaj5B,CAAG,IACf+4B,GAAS/4B,CAAG,EACPA,EAAI,OAASy9B,GAAO,cAAgBz9B,EAAI,OAASy9B,GAAO,cACxD,OAAOz9B,GAAQ,WAC7Boe,EAAM,OAAO,OAAO,CAAA,EAAIA,EAAK,CACzB,cAAe,GACf,YAAa,CAACylB,IAAgBF,GAAc,CAACF,GAC7C,OAAQ9E,EAAS4D,CACzB,CAAK,EACD,IAAIuB,EAAiB,GACjBC,EAAY,GACZl5B,EAAM04B,GAAUvjC,EAAKoe,EAAK,IAAO0lB,EAAiB,GAAO,IAAOC,EAAY,EAAK,EACrF,GAAI,CAACF,GAAe,CAACzlB,EAAI,QAAUvT,EAAI,OAAS,KAAM,CAClD,GAAI84B,EACA,MAAM,IAAI,MAAM,8EAA8E,EAClGE,EAAc,EAClB,CACA,GAAIzlB,EAAI,QACJ,GAAIqlB,GAAiBxjC,GAAS,KAC1B,OAAI6jC,GAAkBzC,GAClBA,EAAS,EACNx2B,IAAQ,GAAK,IAAMg5B,EAAc,KAAKh5B,CAAG,GAAKA,UAGnD44B,GAAiB,CAACE,GAAgB1jC,GAAS,MAAQ4jC,EACzD,OAAAh5B,EAAM,KAAKA,CAAG,GACV+4B,GAAc,CAACE,EACfj5B,GAAO+zB,GAAY/zB,EAAKuT,EAAI,OAAQojB,EAAcoC,CAAU,CAAC,EAExDG,GAAazC,GAClBA,EAAW,EACRz2B,EAEPi5B,IACAF,EAAa,MACbC,GACID,IACA/4B,GAAO+zB,GAAY/zB,EAAKuT,EAAI,OAAQojB,EAAcoC,CAAU,CAAC,GACjE/4B,EAAM,KAAKA,CAAG;AAAA,EAAK8zB,CAAM,MAGzB9zB,EAAM,GAAGA,CAAG,IACR+4B,IACA/4B,GAAO+zB,GAAY/zB,EAAKuT,EAAI,OAAQojB,EAAcoC,CAAU,CAAC,IAErE,IAAII,EAAKC,EAAKC,GACVhL,GAAOj5B,CAAK,GACZ+jC,EAAM,CAAC,CAAC/jC,EAAM,YACdgkC,EAAMhkC,EAAM,cACZikC,GAAejkC,EAAM,UAGrB+jC,EAAM,GACNC,EAAM,KACNC,GAAe,KACXjkC,GAAS,OAAOA,GAAU,WAC1BA,EAAQk7B,EAAI,WAAWl7B,CAAK,IAEpCme,EAAI,YAAc,GACd,CAACylB,GAAe,CAACD,GAAc7K,GAAS94B,CAAK,IAC7Cme,EAAI,cAAgBvT,EAAI,OAAS,GACrCk5B,EAAY,GACR,CAACL,GACDnB,EAAW,QAAU,GACrB,CAACnkB,EAAI,QACL,CAACylB,GACD7K,GAAM/4B,CAAK,GACX,CAACA,EAAM,MACP,CAACA,EAAM,KACP,CAACA,EAAM,SAEPme,EAAI,OAASA,EAAI,OAAO,UAAU,CAAC,GAEvC,IAAI+lB,EAAmB,GACvB,MAAMC,GAAWb,GAAUtjC,EAAOme,EAAK,IAAO+lB,EAAmB,GAAO,IAAOJ,EAAY,EAAK,EAChG,IAAIM,GAAK,IACT,GAAIT,GAAcI,GAAOC,EAAK,CAE1B,GADAI,GAAKL,EAAM;AAAA,EAAO,GACdC,EAAK,CACL,MAAMK,GAAK9C,EAAcyC,CAAG,EAC5BI,IAAM;AAAA,EAAK5F,GAAc6F,GAAIlmB,EAAI,MAAM,CAAC,EAC5C,CACIgmB,KAAa,IAAM,CAAChmB,EAAI,OACpBimB,KAAO;AAAA,GAAQH,KACfG,GAAK;AAAA;AAAA,GAGTA,IAAM;AAAA,EAAKjmB,EAAI,MAAM,EAE7B,SACS,CAACylB,GAAe5K,GAAah5B,CAAK,EAAG,CAC1C,MAAMskC,GAAMH,GAAS,CAAC,EAChBI,EAAMJ,GAAS,QAAQ;AAAA,CAAI,EAC3BK,GAAaD,IAAQ,GACrBE,GAAOtmB,EAAI,QAAUne,EAAM,MAAQA,EAAM,MAAM,SAAW,EAChE,GAAIwkC,IAAc,CAACC,GAAM,CACrB,IAAIC,GAAe,GACnB,GAAIF,KAAeF,KAAQ,KAAOA,KAAQ,KAAM,CAC5C,IAAIK,GAAMR,GAAS,QAAQ,GAAG,EAC1BG,KAAQ,KACRK,KAAQ,IACRA,GAAMJ,GACNJ,GAASQ,GAAM,CAAC,IAAM,MACtBA,GAAMR,GAAS,QAAQ,IAAKQ,GAAM,CAAC,IAEnCA,KAAQ,IAAMJ,EAAMI,MACpBD,GAAe,GACvB,CACKA,KACDN,GAAK;AAAA,EAAKjmB,EAAI,MAAM,GAC5B,CACJ,MACSgmB,KAAa,IAAMA,GAAS,CAAC,IAAM;AAAA,KACxCC,GAAK,IAET,OAAAx5B,GAAOw5B,GAAKD,GACRhmB,EAAI,OACA+lB,GAAoB9C,GACpBA,EAAS,EAER6C,IAAgB,CAACC,EACtBt5B,GAAO+zB,GAAY/zB,EAAKuT,EAAI,OAAQojB,EAAc0C,EAAY,CAAC,EAE1DH,GAAazC,GAClBA,EAAW,EAERz2B,CACX,CC/IA,SAASg6B,GAAKC,EAAUC,EAAS,EACzBD,IAAa,SAAWA,IAAa,SACrC,QAAQ,KAAKC,CAAO,CAE5B,CCEA,MAAMC,GAAY,KACZC,GAAQ,CACV,SAAUhlC,GAASA,IAAU+kC,IACxB,OAAO/kC,GAAU,UAAYA,EAAM,cAAgB+kC,GACxD,QAAS,MACT,IAAK,0BACL,KAAM,OACN,QAAS,IAAM,OAAO,OAAO,IAAIvH,GAAO,OAAOuH,EAAS,CAAC,EAAG,CACxD,WAAYE,EACpB,CAAK,EACD,UAAW,IAAMF,EACrB,EACMG,GAAa,CAAC/mB,EAAKpe,KAASilC,GAAM,SAASjlC,CAAG,GAC/C+4B,GAAS/4B,CAAG,IACR,CAACA,EAAI,MAAQA,EAAI,OAASy9B,GAAO,QAClCwH,GAAM,SAASjlC,EAAI,KAAK,IAC5Boe,GAAK,IAAI,OAAO,KAAK,KAAK8c,GAAOA,EAAI,MAAQ+J,GAAM,KAAO/J,EAAI,OAAO,EACzE,SAASgK,GAAgB9mB,EAAKvd,EAAKZ,EAAO,CAEtC,GADAA,EAAQme,GAAOwa,GAAQ34B,CAAK,EAAIA,EAAM,QAAQme,EAAI,GAAG,EAAIne,EACrD+4B,GAAM/4B,CAAK,EACX,UAAWonB,KAAMpnB,EAAM,MACnBmlC,GAAWhnB,EAAKvd,EAAKwmB,CAAE,UACtB,MAAM,QAAQpnB,CAAK,EACxB,UAAWonB,KAAMpnB,EACbmlC,GAAWhnB,EAAKvd,EAAKwmB,CAAE,OAE3B+d,GAAWhnB,EAAKvd,EAAKZ,CAAK,CAClC,CACA,SAASmlC,GAAWhnB,EAAKvd,EAAKZ,EAAO,CACjC,MAAMgY,EAASmG,GAAOwa,GAAQ34B,CAAK,EAAIA,EAAM,QAAQme,EAAI,GAAG,EAAIne,EAChE,GAAI,CAACsL,GAAM0M,CAAM,EACb,MAAM,IAAI,MAAM,2CAA2C,EAC/D,MAAMotB,EAASptB,EAAO,OAAO,KAAMmG,EAAK,GAAG,EAC3C,SAAW,CAACpe,EAAKC,CAAK,IAAKolC,EACnBxkC,aAAe,IACVA,EAAI,IAAIb,CAAG,GACZa,EAAI,IAAIb,EAAKC,CAAK,EAEjBY,aAAe,IACpBA,EAAI,IAAIb,CAAG,EAEL,OAAO,UAAU,eAAe,KAAKa,EAAKb,CAAG,GACnD,OAAO,eAAea,EAAKb,EAAK,CAC5B,MAAAC,EACA,SAAU,GACV,WAAY,GACZ,aAAc,EAC9B,CAAa,EAGT,OAAOY,CACX,CCvDA,SAASykC,GAAelnB,EAAKvd,EAAK,CAAE,IAAAb,EAAK,MAAAC,CAAK,EAAI,CAC9C,GAAIi5B,GAAOl5B,CAAG,GAAKA,EAAI,WACnBA,EAAI,WAAWoe,EAAKvd,EAAKZ,CAAK,UAEzBklC,GAAW/mB,EAAKpe,CAAG,EACxBklC,GAAgB9mB,EAAKvd,EAAKZ,CAAK,MAC9B,CACD,MAAMslC,EAAQhJ,GAAKv8B,EAAK,GAAIoe,CAAG,EAC/B,GAAIvd,aAAe,IACfA,EAAI,IAAI0kC,EAAOhJ,GAAKt8B,EAAOslC,EAAOnnB,CAAG,CAAC,UAEjCvd,aAAe,IACpBA,EAAI,IAAI0kC,CAAK,MAEZ,CACD,MAAMC,EAAYC,GAAazlC,EAAKulC,EAAOnnB,CAAG,EACxCsnB,EAAUnJ,GAAKt8B,EAAOulC,EAAWpnB,CAAG,EACtConB,KAAa3kC,EACb,OAAO,eAAeA,EAAK2kC,EAAW,CAClC,MAAOE,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAClC,CAAiB,EAED7kC,EAAI2kC,CAAS,EAAIE,CACzB,CACJ,CACA,OAAO7kC,CACX,CACA,SAAS4kC,GAAazlC,EAAKulC,EAAOnnB,EAAK,CACnC,GAAImnB,IAAU,KACV,MAAO,GAEX,GAAI,OAAOA,GAAU,SACjB,OAAO,OAAOA,CAAK,EACvB,GAAIrM,GAAOl5B,CAAG,GAAKoe,GAAK,IAAK,CACzB,MAAMunB,EAAS1C,GAAuB7kB,EAAI,IAAK,CAAA,CAAE,EACjDunB,EAAO,QAAU,IAAI,IACrB,UAAW9M,KAAQza,EAAI,QAAQ,KAAI,EAC/BunB,EAAO,QAAQ,IAAI9M,EAAK,MAAM,EAClC8M,EAAO,OAAS,GAChBA,EAAO,eAAiB,GACxB,MAAMC,EAAS5lC,EAAI,SAAS2lC,CAAM,EAClC,GAAI,CAACvnB,EAAI,aAAc,CACnB,IAAIynB,EAAU,KAAK,UAAUD,CAAM,EAC/BC,EAAQ,OAAS,KACjBA,EAAUA,EAAQ,UAAU,EAAG,EAAE,EAAI,QACzChB,GAAKzmB,EAAI,IAAI,QAAQ,SAAU,kFAAkFynB,CAAO,0CAA0C,EAClKznB,EAAI,aAAe,EACvB,CACA,OAAOwnB,CACX,CACA,OAAO,KAAK,UAAUL,CAAK,CAC/B,CCvDA,SAASO,GAAW9lC,EAAKC,EAAOme,EAAK,CACjC,MAAM7V,EAAIw1B,GAAW/9B,EAAK,OAAWoe,CAAG,EAClCpM,EAAI+rB,GAAW99B,EAAO,OAAWme,CAAG,EAC1C,OAAO,IAAI2nB,GAAKx9B,EAAGyJ,CAAC,CACxB,CACA,MAAM+zB,EAAK,CACP,YAAY/lC,EAAKC,EAAQ,KAAM,CAC3B,OAAO,eAAe,KAAM04B,GAAW,CAAE,MAAOH,GAAM,EACtD,KAAK,IAAMx4B,EACX,KAAK,MAAQC,CACjB,CACA,MAAMi+B,EAAQ,CACV,GAAI,CAAE,IAAAl+B,EAAK,MAAAC,CAAK,EAAK,KACrB,OAAIi5B,GAAOl5B,CAAG,IACVA,EAAMA,EAAI,MAAMk+B,CAAM,GACtBhF,GAAOj5B,CAAK,IACZA,EAAQA,EAAM,MAAMi+B,CAAM,GACvB,IAAI6H,GAAK/lC,EAAKC,CAAK,CAC9B,CACA,OAAO0J,EAAGyU,EAAK,CACX,MAAM4nB,EAAO5nB,GAAK,SAAW,IAAI,IAAQ,CAAA,EACzC,OAAOknB,GAAelnB,EAAK4nB,EAAM,IAAI,CACzC,CACA,SAAS5nB,EAAKijB,EAAWC,EAAa,CAClC,OAAOljB,GAAK,IACNolB,GAAc,KAAMplB,EAAKijB,EAAWC,CAAW,EAC/C,KAAK,UAAU,IAAI,CAC7B,CACJ,CC7BA,SAAS2E,GAAoBC,EAAY9nB,EAAKlF,EAAS,CAGnD,OAFakF,EAAI,QAAU8nB,EAAW,KACbC,GAA0BC,IAClCF,EAAY9nB,EAAKlF,CAAO,CAC7C,CACA,SAASktB,GAAyB,CAAE,QAAA1H,EAAS,MAAA2H,CAAK,EAAIjoB,EAAK,CAAE,gBAAAkoB,EAAiB,UAAAC,EAAW,WAAAC,EAAY,YAAAlF,EAAa,UAAAD,CAAS,EAAI,CAC3H,KAAM,CAAE,OAAA1C,EAAQ,QAAS,CAAE,cAAA6C,CAAa,CAAE,EAAKpjB,EACzCqoB,EAAU,OAAO,OAAO,GAAIroB,EAAK,CAAE,OAAQooB,EAAY,KAAM,KAAM,EACzE,IAAIzC,EAAY,GAChB,MAAM3I,EAAQ,CAAA,EACd,QAASx3B,EAAI,EAAGA,EAAIyiC,EAAM,OAAQ,EAAEziC,EAAG,CACnC,MAAM4N,EAAO60B,EAAMziC,CAAC,EACpB,IAAI86B,EAAU,KACd,GAAIxF,GAAO1nB,CAAI,EACP,CAACuyB,GAAavyB,EAAK,aACnB4pB,EAAM,KAAK,EAAE,EACjBsL,GAAiBtoB,EAAKgd,EAAO5pB,EAAK,cAAeuyB,CAAS,EACtDvyB,EAAK,UACLktB,EAAUltB,EAAK,iBAEdqD,GAAOrD,CAAI,EAAG,CACnB,MAAMm1B,EAAKzN,GAAO1nB,EAAK,GAAG,EAAIA,EAAK,IAAM,KACrCm1B,IACI,CAAC5C,GAAa4C,EAAG,aACjBvL,EAAM,KAAK,EAAE,EACjBsL,GAAiBtoB,EAAKgd,EAAOuL,EAAG,cAAe5C,CAAS,EAEhE,CACAA,EAAY,GACZ,IAAIl5B,EAAM04B,GAAU/xB,EAAMi1B,EAAS,IAAO/H,EAAU,KAAO,IAAOqF,EAAY,EAAK,EAC/ErF,IACA7zB,GAAO+zB,GAAY/zB,EAAK27B,EAAYhF,EAAc9C,CAAO,CAAC,GAC1DqF,GAAarF,IACbqF,EAAY,IAChB3I,EAAM,KAAKkL,EAAkBz7B,CAAG,CACpC,CACA,IAAIA,EACJ,GAAIuwB,EAAM,SAAW,EACjBvwB,EAAM07B,EAAU,MAAQA,EAAU,QAEjC,CACD17B,EAAMuwB,EAAM,CAAC,EACb,QAASx3B,EAAI,EAAGA,EAAIw3B,EAAM,OAAQ,EAAEx3B,EAAG,CACnC,MAAM82B,EAAOU,EAAMx3B,CAAC,EACpBiH,GAAO6vB,EAAO;AAAA,EAAKiE,CAAM,GAAGjE,CAAI,GAAK;AAAA,CACzC,CACJ,CACA,OAAIgE,GACA7zB,GAAO;AAAA,EAAO4zB,GAAc+C,EAAc9C,CAAO,EAAGC,CAAM,EACtD0C,GACAA,EAAS,GAER0C,GAAazC,GAClBA,EAAW,EACRz2B,CACX,CACA,SAASs7B,GAAwB,CAAE,MAAAE,CAAK,EAAIjoB,EAAK,CAAE,UAAAmoB,EAAW,WAAAC,GAAc,CACxE,KAAM,CAAE,OAAA7H,EAAQ,WAAA4D,EAAY,sBAAuBqE,EAAW,QAAS,CAAE,cAAApF,CAAa,CAAE,EAAKpjB,EAC7FooB,GAAcjE,EACd,MAAMkE,EAAU,OAAO,OAAO,CAAA,EAAIroB,EAAK,CACnC,OAAQooB,EACR,OAAQ,GACR,KAAM,IACd,CAAK,EACD,IAAIK,EAAa,GACbC,EAAe,EACnB,MAAM1L,EAAQ,CAAA,EACd,QAASx3B,EAAI,EAAGA,EAAIyiC,EAAM,OAAQ,EAAEziC,EAAG,CACnC,MAAM4N,EAAO60B,EAAMziC,CAAC,EACpB,IAAI86B,EAAU,KACd,GAAIxF,GAAO1nB,CAAI,EACPA,EAAK,aACL4pB,EAAM,KAAK,EAAE,EACjBsL,GAAiBtoB,EAAKgd,EAAO5pB,EAAK,cAAe,EAAK,EAClDA,EAAK,UACLktB,EAAUltB,EAAK,iBAEdqD,GAAOrD,CAAI,EAAG,CACnB,MAAMm1B,EAAKzN,GAAO1nB,EAAK,GAAG,EAAIA,EAAK,IAAM,KACrCm1B,IACIA,EAAG,aACHvL,EAAM,KAAK,EAAE,EACjBsL,GAAiBtoB,EAAKgd,EAAOuL,EAAG,cAAe,EAAK,EAChDA,EAAG,UACHE,EAAa,KAErB,MAAME,GAAK7N,GAAO1nB,EAAK,KAAK,EAAIA,EAAK,MAAQ,KACzCu1B,IACIA,GAAG,UACHrI,EAAUqI,GAAG,SACbA,GAAG,gBACHF,EAAa,KAEZr1B,EAAK,OAAS,MAAQm1B,GAAI,UAC/BjI,EAAUiI,EAAG,QAErB,CACIjI,IACAmI,EAAa,IACjB,IAAIh8B,EAAM04B,GAAU/xB,EAAMi1B,EAAS,IAAO/H,EAAU,IAAK,EACzDmI,IAAeA,EAAazL,EAAM,OAAS0L,GAAgBj8B,EAAI,SAAS;AAAA,CAAI,GACxEjH,EAAIyiC,EAAM,OAAS,EACnBx7B,GAAO,IAEFuT,EAAI,QAAQ,gBACbA,EAAI,QAAQ,UAAY,IACxByoB,IAAeA,EAAazL,EAAM,OAAO,CAAC4L,EAAKtM,KAASsM,EAAMtM,GAAK,OAAS,EAAG,CAAC,GAC3E7vB,EAAI,OAAS,GACduT,EAAI,QAAQ,YAEhByoB,IACAh8B,GAAO,MAGX6zB,IACA7zB,GAAO+zB,GAAY/zB,EAAK27B,EAAYhF,EAAc9C,CAAO,CAAC,GAC9DtD,EAAM,KAAKvwB,CAAG,EACdi8B,EAAe1L,EAAM,MACzB,CACA,KAAM,CAAE,MAAA/e,EAAO,IAAAC,CAAG,EAAKiqB,EACvB,GAAInL,EAAM,SAAW,EACjB,OAAO/e,EAAQC,EAGf,GAAI,CAACuqB,EAAY,CACb,MAAMzK,EAAMhB,EAAM,OAAO,CAAC4L,EAAKtM,IAASsM,EAAMtM,EAAK,OAAS,EAAG,CAAC,EAChEmM,EAAazoB,EAAI,QAAQ,UAAY,GAAKge,EAAMhe,EAAI,QAAQ,SAChE,CACA,GAAIyoB,EAAY,CACZ,IAAIh8B,EAAMwR,EACV,UAAWqe,KAAQU,EACfvwB,GAAO6vB,EAAO;AAAA,EAAK6H,CAAU,GAAG5D,CAAM,GAAGjE,CAAI,GAAK;AAAA,EACtD,MAAO,GAAG7vB,CAAG;AAAA,EAAK8zB,CAAM,GAAGriB,CAAG,EAClC,KAEI,OAAO,GAAGD,CAAK,GAAGuqB,CAAS,GAAGxL,EAAM,KAAK,GAAG,CAAC,GAAGwL,CAAS,GAAGtqB,CAAG,EAG3E,CACA,SAASoqB,GAAiB,CAAE,OAAA/H,EAAQ,QAAS,CAAE,cAAA6C,CAAa,GAAMpG,EAAOsD,EAASqF,EAAW,CAGzF,GAFIrF,GAAWqF,IACXrF,EAAUA,EAAQ,QAAQ,OAAQ,EAAE,GACpCA,EAAS,CACT,MAAMuI,EAAKxI,GAAc+C,EAAc9C,CAAO,EAAGC,CAAM,EACvDvD,EAAM,KAAK6L,EAAG,UAAS,CAAE,CAC7B,CACJ,CC/IA,SAASC,GAASb,EAAOrmC,EAAK,CAC1B,MAAMuI,EAAIwwB,GAAS/4B,CAAG,EAAIA,EAAI,MAAQA,EACtC,UAAWqnB,KAAMgf,EACb,GAAIxxB,GAAOwS,CAAE,IACLA,EAAG,MAAQrnB,GAAOqnB,EAAG,MAAQ9e,GAE7BwwB,GAAS1R,EAAG,GAAG,GAAKA,EAAG,IAAI,QAAU9e,GACrC,OAAO8e,CAIvB,CACA,MAAM8f,WAAgB9I,EAAW,CAC7B,WAAW,SAAU,CACjB,MAAO,uBACX,CACA,YAAYH,EAAQ,CAChB,MAAM3F,GAAK2F,CAAM,EACjB,KAAK,MAAQ,CAAA,CACjB,CAKA,OAAO,KAAKA,EAAQ93B,EAAKgY,EAAK,CAC1B,KAAM,CAAE,cAAAgpB,EAAe,SAAAC,CAAQ,EAAKjpB,EAC9Bvd,EAAM,IAAI,KAAKq9B,CAAM,EACrB/H,EAAM,CAACn2B,EAAKC,IAAU,CACxB,GAAI,OAAOonC,GAAa,WACpBpnC,EAAQonC,EAAS,KAAKjhC,EAAKpG,EAAKC,CAAK,UAChC,MAAM,QAAQonC,CAAQ,GAAK,CAACA,EAAS,SAASrnC,CAAG,EACtD,QACAC,IAAU,QAAamnC,IACvBvmC,EAAI,MAAM,KAAKilC,GAAW9lC,EAAKC,EAAOme,CAAG,CAAC,CAClD,EACA,GAAIhY,aAAe,IACf,SAAW,CAACpG,EAAKC,CAAK,IAAKmG,EACvB+vB,EAAIn2B,EAAKC,CAAK,UAEbmG,GAAO,OAAOA,GAAQ,SAC3B,UAAWpG,KAAO,OAAO,KAAKoG,CAAG,EAC7B+vB,EAAIn2B,EAAKoG,EAAIpG,CAAG,CAAC,EAEzB,OAAI,OAAOk+B,EAAO,gBAAmB,YACjCr9B,EAAI,MAAM,KAAKq9B,EAAO,cAAc,EAEjCr9B,CACX,CAOA,IAAImlC,EAAMsB,EAAW,CACjB,IAAIC,EACA1yB,GAAOmxB,CAAI,EACXuB,EAAQvB,EACH,CAACA,GAAQ,OAAOA,GAAS,UAAY,EAAE,QAASA,GAErDuB,EAAQ,IAAIxB,GAAKC,EAAMA,GAAM,KAAK,EAGlCuB,EAAQ,IAAIxB,GAAKC,EAAK,IAAKA,EAAK,KAAK,EACzC,MAAMp3B,EAAOs4B,GAAS,KAAK,MAAOK,EAAM,GAAG,EACrCC,EAAc,KAAK,QAAQ,eACjC,GAAI54B,EAAM,CACN,GAAI,CAAC04B,EACD,MAAM,IAAI,MAAM,OAAOC,EAAM,GAAG,cAAc,EAE9CxO,GAASnqB,EAAK,KAAK,GAAK4uB,GAAc+J,EAAM,KAAK,EACjD34B,EAAK,MAAM,MAAQ24B,EAAM,MAEzB34B,EAAK,MAAQ24B,EAAM,KAC3B,SACSC,EAAa,CAClB,MAAM5jC,EAAI,KAAK,MAAM,UAAU4N,GAAQg2B,EAAYD,EAAO/1B,CAAI,EAAI,CAAC,EAC/D5N,IAAM,GACN,KAAK,MAAM,KAAK2jC,CAAK,EAErB,KAAK,MAAM,OAAO3jC,EAAG,EAAG2jC,CAAK,CACrC,MAEI,KAAK,MAAM,KAAKA,CAAK,CAE7B,CACA,OAAOvnC,EAAK,CACR,MAAMqnB,EAAK6f,GAAS,KAAK,MAAOlnC,CAAG,EACnC,OAAKqnB,EAEO,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQA,CAAE,EAAG,CAAC,EAC5C,OAAS,EAFT,EAGf,CACA,IAAIrnB,EAAKs+B,EAAY,CAEjB,MAAMzF,EADKqO,GAAS,KAAK,MAAOlnC,CAAG,GAClB,MACjB,OAAQ,CAACs+B,GAAcvF,GAASF,CAAI,EAAIA,EAAK,MAAQA,IAAS,MAClE,CACA,IAAI74B,EAAK,CACL,MAAO,CAAC,CAACknC,GAAS,KAAK,MAAOlnC,CAAG,CACrC,CACA,IAAIA,EAAKC,EAAO,CACZ,KAAK,IAAI,IAAI8lC,GAAK/lC,EAAKC,CAAK,EAAG,EAAI,CACvC,CAMA,OAAO0J,EAAGyU,EAAKrZ,EAAM,CACjB,MAAMlE,EAAMkE,EAAO,IAAIA,EAASqZ,GAAK,SAAW,IAAI,IAAQ,CAAA,EACxDA,GAAK,UACLA,EAAI,SAASvd,CAAG,EACpB,UAAW2Q,KAAQ,KAAK,MACpB8zB,GAAelnB,EAAKvd,EAAK2Q,CAAI,EACjC,OAAO3Q,CACX,CACA,SAASud,EAAKijB,EAAWC,EAAa,CAClC,GAAI,CAACljB,EACD,OAAO,KAAK,UAAU,IAAI,EAC9B,UAAW5M,KAAQ,KAAK,MACpB,GAAI,CAACqD,GAAOrD,CAAI,EACZ,MAAM,IAAI,MAAM,sCAAsC,KAAK,UAAUA,CAAI,CAAC,UAAU,EAE5F,MAAI,CAAC4M,EAAI,eAAiB,KAAK,iBAAiB,EAAK,IACjDA,EAAM,OAAO,OAAO,CAAA,EAAIA,EAAK,CAAE,cAAe,GAAM,GACjD6nB,GAAoB,KAAM7nB,EAAK,CAClC,gBAAiB,GACjB,UAAW,CAAE,MAAO,IAAK,IAAK,GAAG,EACjC,WAAYA,EAAI,QAAU,GAC1B,YAAAkjB,EACA,UAAAD,CACZ,CAAS,CACL,CACJ,CC1IA,MAAMxgC,GAAM,CACR,WAAY,MACZ,QAAS,GACT,UAAWsmC,GACX,IAAK,wBACL,QAAQtmC,EAAK0tB,EAAS,CAClB,OAAKhjB,GAAM1K,CAAG,GACV0tB,EAAQ,iCAAiC,EACtC1tB,CACX,EACA,WAAY,CAACq9B,EAAQ93B,EAAKgY,IAAQ+oB,GAAQ,KAAKjJ,EAAQ93B,EAAKgY,CAAG,CACnE,ECPA,MAAMqpB,WAAgBpJ,EAAW,CAC7B,WAAW,SAAU,CACjB,MAAO,uBACX,CACA,YAAYH,EAAQ,CAChB,MAAMxF,GAAKwF,CAAM,EACjB,KAAK,MAAQ,CAAA,CACjB,CACA,IAAIj+B,EAAO,CACP,KAAK,MAAM,KAAKA,CAAK,CACzB,CASA,OAAOD,EAAK,CACR,MAAM0nC,EAAMC,GAAY3nC,CAAG,EAC3B,OAAI,OAAO0nC,GAAQ,SACR,GACC,KAAK,MAAM,OAAOA,EAAK,CAAC,EACzB,OAAS,CACxB,CACA,IAAI1nC,EAAKs+B,EAAY,CACjB,MAAMoJ,EAAMC,GAAY3nC,CAAG,EAC3B,GAAI,OAAO0nC,GAAQ,SACf,OACJ,MAAMrgB,EAAK,KAAK,MAAMqgB,CAAG,EACzB,MAAO,CAACpJ,GAAcvF,GAAS1R,CAAE,EAAIA,EAAG,MAAQA,CACpD,CAOA,IAAIrnB,EAAK,CACL,MAAM0nC,EAAMC,GAAY3nC,CAAG,EAC3B,OAAO,OAAO0nC,GAAQ,UAAYA,EAAM,KAAK,MAAM,MACvD,CAQA,IAAI1nC,EAAKC,EAAO,CACZ,MAAMynC,EAAMC,GAAY3nC,CAAG,EAC3B,GAAI,OAAO0nC,GAAQ,SACf,MAAM,IAAI,MAAM,+BAA+B1nC,CAAG,GAAG,EACzD,MAAM4O,EAAO,KAAK,MAAM84B,CAAG,EACvB3O,GAASnqB,CAAI,GAAK4uB,GAAcv9B,CAAK,EACrC2O,EAAK,MAAQ3O,EAEb,KAAK,MAAMynC,CAAG,EAAIznC,CAC1B,CACA,OAAO0J,EAAGyU,EAAK,CACX,MAAMwpB,EAAM,CAAA,EACRxpB,GAAK,UACLA,EAAI,SAASwpB,CAAG,EACpB,IAAIhkC,EAAI,EACR,UAAW4N,KAAQ,KAAK,MACpBo2B,EAAI,KAAKrL,GAAK/qB,EAAM,OAAO5N,GAAG,EAAGwa,CAAG,CAAC,EACzC,OAAOwpB,CACX,CACA,SAASxpB,EAAKijB,EAAWC,EAAa,CAClC,OAAKljB,EAEE6nB,GAAoB,KAAM7nB,EAAK,CAClC,gBAAiB,KACjB,UAAW,CAAE,MAAO,IAAK,IAAK,GAAG,EACjC,YAAaA,EAAI,QAAU,IAAM,KACjC,YAAAkjB,EACA,UAAAD,CACZ,CAAS,EAPU,KAAK,UAAU,IAAI,CAQlC,CACA,OAAO,KAAKnD,EAAQ93B,EAAKgY,EAAK,CAC1B,KAAM,CAAE,SAAAipB,CAAQ,EAAKjpB,EACfwpB,EAAM,IAAI,KAAK1J,CAAM,EAC3B,GAAI93B,GAAO,OAAO,YAAY,OAAOA,CAAG,EAAG,CACvC,IAAIxC,EAAI,EACR,QAASyjB,KAAMjhB,EAAK,CAChB,GAAI,OAAOihC,GAAa,WAAY,CAChC,MAAMrnC,EAAMoG,aAAe,IAAMihB,EAAK,OAAOzjB,GAAG,EAChDyjB,EAAKggB,EAAS,KAAKjhC,EAAKpG,EAAKqnB,CAAE,CACnC,CACAugB,EAAI,MAAM,KAAK7J,GAAW1W,EAAI,OAAWjJ,CAAG,CAAC,CACjD,CACJ,CACA,OAAOwpB,CACX,CACJ,CACA,SAASD,GAAY3nC,EAAK,CACtB,IAAI0nC,EAAM3O,GAAS/4B,CAAG,EAAIA,EAAI,MAAQA,EACtC,OAAI0nC,GAAO,OAAOA,GAAQ,WACtBA,EAAM,OAAOA,CAAG,GACb,OAAOA,GAAQ,UAAY,OAAO,UAAUA,CAAG,GAAKA,GAAO,EAC5DA,EACA,IACV,CC3GA,MAAME,GAAM,CACR,WAAY,MACZ,QAAS,GACT,UAAWH,GACX,IAAK,wBACL,QAAQG,EAAKrZ,EAAS,CAClB,OAAKyK,GAAM4O,CAAG,GACVrZ,EAAQ,kCAAkC,EACvCqZ,CACX,EACA,WAAY,CAAC1J,EAAQ93B,EAAKgY,IAAQqpB,GAAQ,KAAKvJ,EAAQ93B,EAAKgY,CAAG,CACnE,ECZMypB,GAAS,CACX,SAAU5nC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,wBACL,QAAS4K,GAAOA,EAChB,UAAU2G,EAAM4M,EAAKijB,EAAWC,EAAa,CACzC,OAAAljB,EAAM,OAAO,OAAO,CAAE,aAAc,EAAI,EAAIA,CAAG,EACxCukB,GAAgBnxB,EAAM4M,EAAKijB,EAAWC,CAAW,CAC5D,CACJ,ECTMwG,GAAU,CACZ,SAAU7nC,GAASA,GAAS,KAC5B,WAAY,IAAM,IAAIw9B,GAAO,IAAI,EACjC,QAAS,GACT,IAAK,yBACL,KAAM,wBACN,QAAS,IAAM,IAAIA,GAAO,IAAI,EAC9B,UAAW,CAAC,CAAE,OAAAxlB,CAAM,EAAImG,IAAQ,OAAOnG,GAAW,UAAY6vB,GAAQ,KAAK,KAAK7vB,CAAM,EAChFA,EACAmG,EAAI,QAAQ,OACtB,ECVM2pB,GAAU,CACZ,SAAU9nC,GAAS,OAAOA,GAAU,UACpC,QAAS,GACT,IAAK,yBACL,KAAM,oCACN,QAAS4K,GAAO,IAAI4yB,GAAO5yB,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,IAAM,GAAG,EAC3D,UAAU,CAAE,OAAAoN,EAAQ,MAAAhY,CAAK,EAAIme,EAAK,CAC9B,GAAInG,GAAU8vB,GAAQ,KAAK,KAAK9vB,CAAM,EAAG,CACrC,MAAM+vB,EAAK/vB,EAAO,CAAC,IAAM,KAAOA,EAAO,CAAC,IAAM,IAC9C,GAAIhY,IAAU+nC,EACV,OAAO/vB,CACf,CACA,OAAOhY,EAAQme,EAAI,QAAQ,QAAUA,EAAI,QAAQ,QACrD,CACJ,EChBA,SAAS6pB,GAAgB,CAAE,OAAAC,EAAQ,kBAAAC,EAAmB,IAAAjN,EAAK,MAAAj7B,CAAK,EAAI,CAChE,GAAI,OAAOA,GAAU,SACjB,OAAO,OAAOA,CAAK,EACvB,MAAMmoC,EAAM,OAAOnoC,GAAU,SAAWA,EAAQ,OAAOA,CAAK,EAC5D,GAAI,CAAC,SAASmoC,CAAG,EACb,OAAO,MAAMA,CAAG,EAAI,OAASA,EAAM,EAAI,QAAU,OACrD,IAAIlpB,EAAI,OAAO,GAAGjf,EAAO,EAAE,EAAI,KAAO,KAAK,UAAUA,CAAK,EAC1D,GAAI,CAACioC,GACDC,IACC,CAACjN,GAAOA,IAAQ,4BACjB,MAAM,KAAKhc,CAAC,EAAG,CACf,IAAItb,EAAIsb,EAAE,QAAQ,GAAG,EACjBtb,EAAI,IACJA,EAAIsb,EAAE,OACNA,GAAK,KAET,IAAII,EAAI6oB,GAAqBjpB,EAAE,OAAStb,EAAI,GAC5C,KAAO0b,KAAM,GACTJ,GAAK,GACb,CACA,OAAOA,CACX,CClBA,MAAMmpB,GAAW,CACb,SAAUpoC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,iDACN,QAAS4K,GAAOA,EAAI,MAAM,EAAE,EAAE,gBAAkB,MAC1C,IACAA,EAAI,CAAC,IAAM,IACP,OAAO,kBACP,OAAO,kBACjB,UAAWo9B,EACf,EACMK,GAAW,CACb,SAAUroC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,MACR,KAAM,yDACN,QAAS4K,GAAO,WAAWA,CAAG,EAC9B,UAAUguB,EAAM,CACZ,MAAMuP,EAAM,OAAOvP,EAAK,KAAK,EAC7B,OAAO,SAASuP,CAAG,EAAIA,EAAI,cAAa,EAAKH,GAAgBpP,CAAI,CACrE,CACJ,EACM0P,GAAQ,CACV,SAAUtoC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,qCACN,QAAQ4K,EAAK,CACT,MAAMguB,EAAO,IAAI4E,GAAO,WAAW5yB,CAAG,CAAC,EACjC29B,EAAM39B,EAAI,QAAQ,GAAG,EAC3B,OAAI29B,IAAQ,IAAM39B,EAAIA,EAAI,OAAS,CAAC,IAAM,MACtCguB,EAAK,kBAAoBhuB,EAAI,OAAS29B,EAAM,GACzC3P,CACX,EACA,UAAWoP,EACf,ECtCMQ,GAAexoC,GAAU,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EAC5EyoC,GAAa,CAAC79B,EAAKH,EAAQi+B,EAAO,CAAE,YAAAC,CAAW,IAAQA,EAAc,OAAO/9B,CAAG,EAAI,SAASA,EAAI,UAAUH,CAAM,EAAGi+B,CAAK,EAC9H,SAASE,GAAahQ,EAAM8P,EAAO9N,EAAQ,CACvC,KAAM,CAAE,MAAA56B,CAAK,EAAK44B,EAClB,OAAI4P,GAAYxoC,CAAK,GAAKA,GAAS,EACxB46B,EAAS56B,EAAM,SAAS0oC,CAAK,EACjCV,GAAgBpP,CAAI,CAC/B,CACA,MAAMiQ,GAAS,CACX,SAAU7oC,GAASwoC,GAAYxoC,CAAK,GAAKA,GAAS,EAClD,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,aACN,QAAS,CAAC4K,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,EAAGq4B,CAAG,EAC1D,UAAWrK,GAAQgQ,GAAahQ,EAAM,EAAG,IAAI,CACjD,EACMmQ,GAAM,CACR,SAAUP,GACV,QAAS,GACT,IAAK,wBACL,KAAM,gBACN,QAAS,CAAC59B,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,GAAIq4B,CAAG,EAC3D,UAAW+E,EACf,EACMgB,GAAS,CACX,SAAUhpC,GAASwoC,GAAYxoC,CAAK,GAAKA,GAAS,EAClD,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,mBACN,QAAS,CAAC4K,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,GAAIq4B,CAAG,EAC3D,UAAWrK,GAAQgQ,GAAahQ,EAAM,GAAI,IAAI,CAClD,EC3BMqF,GAAS,CACXr9B,GACA+mC,GACAC,GACAC,GACAC,GACAe,GACAE,GACAC,GACAZ,GACAC,GACAC,EACJ,EChBA,SAASE,GAAYxoC,EAAO,CACxB,OAAO,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,CAC9D,CACA,MAAMipC,GAAgB,CAAC,CAAE,MAAAjpC,CAAK,IAAO,KAAK,UAAUA,CAAK,EACnDkpC,GAAc,CAChB,CACI,SAAUlpC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,wBACL,QAAS4K,GAAOA,EAChB,UAAWq+B,EACnB,EACI,CACI,SAAUjpC,GAASA,GAAS,KAC5B,WAAY,IAAM,IAAIw9B,GAAO,IAAI,EACjC,QAAS,GACT,IAAK,yBACL,KAAM,SACN,QAAS,IAAM,KACf,UAAWyL,EACnB,EACI,CACI,SAAUjpC,GAAS,OAAOA,GAAU,UACpC,QAAS,GACT,IAAK,yBACL,KAAM,iBACN,QAAS4K,GAAOA,IAAQ,OACxB,UAAWq+B,EACnB,EACI,CACI,SAAUT,GACV,QAAS,GACT,IAAK,wBACL,KAAM,wBACN,QAAS,CAAC59B,EAAKk+B,EAAU,CAAE,YAAAH,CAAW,IAAOA,EAAc,OAAO/9B,CAAG,EAAI,SAASA,EAAK,EAAE,EACzF,UAAW,CAAC,CAAE,MAAA5K,CAAK,IAAOwoC,GAAYxoC,CAAK,EAAIA,EAAM,SAAQ,EAAK,KAAK,UAAUA,CAAK,CAC9F,EACI,CACI,SAAUA,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,yDACN,QAAS4K,GAAO,WAAWA,CAAG,EAC9B,UAAWq+B,EACnB,CACA,EACME,GAAY,CACd,QAAS,GACT,IAAK,GACL,KAAM,IACN,QAAQv+B,EAAK0jB,EAAS,CAClB,OAAAA,EAAQ,2BAA2B,KAAK,UAAU1jB,CAAG,CAAC,EAAE,EACjDA,CACX,CACJ,EACMqzB,GAAS,CAACr9B,GAAK+mC,EAAG,EAAE,OAAOuB,GAAaC,EAAS,ECxDjDC,GAAS,CACX,SAAUppC,GAASA,aAAiB,WACpC,QAAS,GACT,IAAK,2BASL,QAAQo9B,EAAK9O,EAAS,CAClB,GAAI,OAAO,MAAS,WAAY,CAE5B,MAAM1jB,EAAM,KAAKwyB,EAAI,QAAQ,UAAW,EAAE,CAAC,EACrC/yB,EAAS,IAAI,WAAWO,EAAI,MAAM,EACxC,QAASjH,EAAI,EAAGA,EAAIiH,EAAI,OAAQ,EAAEjH,EAC9B0G,EAAO1G,CAAC,EAAIiH,EAAI,WAAWjH,CAAC,EAChC,OAAO0G,CACX,KAEI,QAAAikB,EAAQ,0FAA0F,EAC3F8O,CAEf,EACA,UAAU,CAAE,QAAAqB,EAAS,KAAAruB,EAAM,MAAApQ,CAAK,EAAIme,EAAKijB,EAAWC,EAAa,CAC7D,GAAI,CAACrhC,EACD,MAAO,GACX,MAAMqpC,EAAMrpC,EACZ,IAAI4K,EACJ,GAAI,OAAO,MAAS,WAAY,CAC5B,IAAImP,EAAI,GACR,QAASpW,EAAI,EAAGA,EAAI0lC,EAAI,OAAQ,EAAE1lC,EAC9BoW,GAAK,OAAO,aAAasvB,EAAI1lC,CAAC,CAAC,EACnCiH,EAAM,KAAKmP,CAAC,CAChB,KAEI,OAAM,IAAI,MAAM,0FAA0F,EAG9G,GADA3J,IAASA,EAAOotB,GAAO,eACnBptB,IAASotB,GAAO,aAAc,CAC9B,MAAM2B,EAAY,KAAK,IAAIhhB,EAAI,QAAQ,UAAYA,EAAI,OAAO,OAAQA,EAAI,QAAQ,eAAe,EAC3Fc,EAAI,KAAK,KAAKrU,EAAI,OAASu0B,CAAS,EACpChE,EAAQ,IAAI,MAAMlc,CAAC,EACzB,QAAStb,EAAI,EAAGic,EAAI,EAAGjc,EAAIsb,EAAG,EAAEtb,EAAGic,GAAKuf,EACpChE,EAAMx3B,CAAC,EAAIiH,EAAI,OAAOgV,EAAGuf,CAAS,EAEtCv0B,EAAMuwB,EAAM,KAAK/qB,IAASotB,GAAO,cAAgB;AAAA,EAAO,GAAG,CAC/D,CACA,OAAOkF,GAAgB,CAAE,QAAAjE,EAAS,KAAAruB,EAAM,MAAOxF,GAAOuT,EAAKijB,EAAWC,CAAW,CACrF,CACJ,EClDA,SAASiI,GAAa3B,EAAKrZ,EAAS,CAChC,GAAIyK,GAAM4O,CAAG,EACT,QAAShkC,EAAI,EAAGA,EAAIgkC,EAAI,MAAM,OAAQ,EAAEhkC,EAAG,CACvC,IAAI4N,EAAOo2B,EAAI,MAAMhkC,CAAC,EACtB,GAAI,CAAAiR,GAAOrD,CAAI,EAEV,IAAIjG,GAAMiG,CAAI,EAAG,CACdA,EAAK,MAAM,OAAS,GACpB+c,EAAQ,gDAAgD,EAC5D,MAAMyX,EAAOx0B,EAAK,MAAM,CAAC,GAAK,IAAIu0B,GAAK,IAAItI,GAAO,IAAI,CAAC,EAKvD,GAJIjsB,EAAK,gBACLw0B,EAAK,IAAI,cAAgBA,EAAK,IAAI,cAC5B,GAAGx0B,EAAK,aAAa;AAAA,EAAKw0B,EAAK,IAAI,aAAa,GAChDx0B,EAAK,eACXA,EAAK,QAAS,CACd,MAAMugB,EAAKiU,EAAK,OAASA,EAAK,IAC9BjU,EAAG,QAAUA,EAAG,QACV,GAAGvgB,EAAK,OAAO;AAAA,EAAKugB,EAAG,OAAO,GAC9BvgB,EAAK,OACf,CACAA,EAAOw0B,CACX,CACA4B,EAAI,MAAMhkC,CAAC,EAAIiR,GAAOrD,CAAI,EAAIA,EAAO,IAAIu0B,GAAKv0B,CAAI,EACtD,MAGA+c,EAAQ,kCAAkC,EAC9C,OAAOqZ,CACX,CACA,SAAS4B,GAAYtL,EAAQuL,EAAUrrB,EAAK,CACxC,KAAM,CAAE,SAAAipB,CAAQ,EAAKjpB,EACfsrB,EAAQ,IAAIjC,GAAQvJ,CAAM,EAChCwL,EAAM,IAAM,0BACZ,IAAI9lC,EAAI,EACR,GAAI6lC,GAAY,OAAO,YAAY,OAAOA,CAAQ,EAC9C,QAASpiB,KAAMoiB,EAAU,CACjB,OAAOpC,GAAa,aACpBhgB,EAAKggB,EAAS,KAAKoC,EAAU,OAAO7lC,GAAG,EAAGyjB,CAAE,GAChD,IAAIrnB,EAAKC,EACT,GAAI,MAAM,QAAQonB,CAAE,EAChB,GAAIA,EAAG,SAAW,EACdrnB,EAAMqnB,EAAG,CAAC,EACVpnB,EAAQonB,EAAG,CAAC,MAGZ,OAAM,IAAI,UAAU,gCAAgCA,CAAE,EAAE,UAEvDA,GAAMA,aAAc,OAAQ,CACjC,MAAM5iB,EAAO,OAAO,KAAK4iB,CAAE,EAC3B,GAAI5iB,EAAK,SAAW,EAChBzE,EAAMyE,EAAK,CAAC,EACZxE,EAAQonB,EAAGrnB,CAAG,MAGd,OAAM,IAAI,UAAU,oCAAoCyE,EAAK,MAAM,OAAO,CAElF,MAEIzE,EAAMqnB,EAEVqiB,EAAM,MAAM,KAAK5D,GAAW9lC,EAAKC,EAAOme,CAAG,CAAC,CAChD,CACJ,OAAOsrB,CACX,CACA,MAAMA,GAAQ,CACV,WAAY,MACZ,QAAS,GACT,IAAK,0BACL,QAASH,GACT,WAAYC,EAChB,ECrEA,MAAMG,WAAiBlC,EAAQ,CAC3B,aAAc,CACV,MAAK,EACL,KAAK,IAAMN,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,OAASA,GAAQ,UAAU,OAAO,KAAK,IAAI,EAChD,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMwC,GAAS,GACxB,CAKA,OAAOhgC,EAAGyU,EAAK,CACX,GAAI,CAACA,EACD,OAAO,MAAM,OAAOzU,CAAC,EACzB,MAAM9I,EAAM,IAAI,IACZud,GAAK,UACLA,EAAI,SAASvd,CAAG,EACpB,UAAWmlC,KAAQ,KAAK,MAAO,CAC3B,IAAIhmC,EAAKC,EAQT,GAPI4U,GAAOmxB,CAAI,GACXhmC,EAAMu8B,GAAKyJ,EAAK,IAAK,GAAI5nB,CAAG,EAC5Bne,EAAQs8B,GAAKyJ,EAAK,MAAOhmC,EAAKoe,CAAG,GAGjCpe,EAAMu8B,GAAKyJ,EAAM,GAAI5nB,CAAG,EAExBvd,EAAI,IAAIb,CAAG,EACX,MAAM,IAAI,MAAM,8CAA8C,EAClEa,EAAI,IAAIb,EAAKC,CAAK,CACtB,CACA,OAAOY,CACX,CACA,OAAO,KAAKq9B,EAAQuL,EAAUrrB,EAAK,CAC/B,MAAMsrB,EAAQF,GAAYtL,EAAQuL,EAAUrrB,CAAG,EACzCwrB,EAAO,IAAI,KACjB,OAAAA,EAAK,MAAQF,EAAM,MACZE,CACX,CACJ,CACAD,GAAS,IAAM,yBACf,MAAMC,GAAO,CACT,WAAY,MACZ,SAAU3pC,GAASA,aAAiB,IACpC,UAAW0pC,GACX,QAAS,GACT,IAAK,yBACL,QAAQ/B,EAAKrZ,EAAS,CAClB,MAAMmb,EAAQH,GAAa3B,EAAKrZ,CAAO,EACjCsb,EAAW,CAAA,EACjB,SAAW,CAAE,IAAA7pC,KAAS0pC,EAAM,MACpB3Q,GAAS/4B,CAAG,IACR6pC,EAAS,SAAS7pC,EAAI,KAAK,EAC3BuuB,EAAQ,iDAAiDvuB,EAAI,KAAK,EAAE,EAGpE6pC,EAAS,KAAK7pC,EAAI,KAAK,GAInC,OAAO,OAAO,OAAO,IAAI2pC,GAAYD,CAAK,CAC9C,EACA,WAAY,CAACxL,EAAQuL,EAAUrrB,IAAQurB,GAAS,KAAKzL,EAAQuL,EAAUrrB,CAAG,CAC9E,ECrEA,SAAS0rB,GAAc,CAAE,MAAA7pC,EAAO,OAAAgY,CAAM,EAAImG,EAAK,CAE3C,OAAInG,IADYhY,EAAQ8pC,GAAUC,IACZ,KAAK,KAAK/xB,CAAM,EAC3BA,EACJhY,EAAQme,EAAI,QAAQ,QAAUA,EAAI,QAAQ,QACrD,CACA,MAAM2rB,GAAU,CACZ,SAAU9pC,GAASA,IAAU,GAC7B,QAAS,GACT,IAAK,yBACL,KAAM,6CACN,QAAS,IAAM,IAAIw9B,GAAO,EAAI,EAC9B,UAAWqM,EACf,EACME,GAAW,CACb,SAAU/pC,GAASA,IAAU,GAC7B,QAAS,GACT,IAAK,yBACL,KAAM,+CACN,QAAS,IAAM,IAAIw9B,GAAO,EAAK,EAC/B,UAAWqM,EACf,ECpBMzB,GAAW,CACb,SAAUpoC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,iDACN,QAAU4K,GAAQA,EAAI,MAAM,EAAE,EAAE,gBAAkB,MAC5C,IACAA,EAAI,CAAC,IAAM,IACP,OAAO,kBACP,OAAO,kBACjB,UAAWo9B,EACf,EACMK,GAAW,CACb,SAAUroC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,MACR,KAAM,wDACN,QAAU4K,GAAQ,WAAWA,EAAI,QAAQ,KAAM,EAAE,CAAC,EAClD,UAAUguB,EAAM,CACZ,MAAMuP,EAAM,OAAOvP,EAAK,KAAK,EAC7B,OAAO,SAASuP,CAAG,EAAIA,EAAI,cAAa,EAAKH,GAAgBpP,CAAI,CACrE,CACJ,EACM0P,GAAQ,CACV,SAAUtoC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,oCACN,QAAQ4K,EAAK,CACT,MAAMguB,EAAO,IAAI4E,GAAO,WAAW5yB,EAAI,QAAQ,KAAM,EAAE,CAAC,CAAC,EACnD29B,EAAM39B,EAAI,QAAQ,GAAG,EAC3B,GAAI29B,IAAQ,GAAI,CACZ,MAAM7hC,EAAIkE,EAAI,UAAU29B,EAAM,CAAC,EAAE,QAAQ,KAAM,EAAE,EAC7C7hC,EAAEA,EAAE,OAAS,CAAC,IAAM,MACpBkyB,EAAK,kBAAoBlyB,EAAE,OACnC,CACA,OAAOkyB,CACX,EACA,UAAWoP,EACf,ECzCMQ,GAAexoC,GAAU,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EAClF,SAASyoC,GAAW79B,EAAKH,EAAQi+B,EAAO,CAAE,YAAAC,CAAW,EAAI,CACrD,MAAMqB,EAAOp/B,EAAI,CAAC,EAIlB,IAHIo/B,IAAS,KAAOA,IAAS,OACzBv/B,GAAU,GACdG,EAAMA,EAAI,UAAUH,CAAM,EAAE,QAAQ,KAAM,EAAE,EACxCk+B,EAAa,CACb,OAAQD,EAAK,CACT,IAAK,GACD99B,EAAM,KAAKA,CAAG,GACd,MACJ,IAAK,GACDA,EAAM,KAAKA,CAAG,GACd,MACJ,IAAK,IACDA,EAAM,KAAKA,CAAG,GACd,KAChB,CACQ,MAAMqU,EAAI,OAAOrU,CAAG,EACpB,OAAOo/B,IAAS,IAAM,OAAO,EAAE,EAAI/qB,EAAIA,CAC3C,CACA,MAAMA,EAAI,SAASrU,EAAK89B,CAAK,EAC7B,OAAOsB,IAAS,IAAM,GAAK/qB,EAAIA,CACnC,CACA,SAAS2pB,GAAahQ,EAAM8P,EAAO9N,EAAQ,CACvC,KAAM,CAAE,MAAA56B,CAAK,EAAK44B,EAClB,GAAI4P,GAAYxoC,CAAK,EAAG,CACpB,MAAM4K,EAAM5K,EAAM,SAAS0oC,CAAK,EAChC,OAAO1oC,EAAQ,EAAI,IAAM46B,EAAShwB,EAAI,OAAO,CAAC,EAAIgwB,EAAShwB,CAC/D,CACA,OAAOo9B,GAAgBpP,CAAI,CAC/B,CACA,MAAMqR,GAAS,CACX,SAAUzB,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,mBACN,QAAS,CAAC59B,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,EAAGq4B,CAAG,EAC1D,UAAWrK,GAAQgQ,GAAahQ,EAAM,EAAG,IAAI,CACjD,EACMiQ,GAAS,CACX,SAAUL,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,kBACN,QAAS,CAAC59B,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,EAAGq4B,CAAG,EAC1D,UAAWrK,GAAQgQ,GAAahQ,EAAM,EAAG,GAAG,CAChD,EACMmQ,GAAM,CACR,SAAUP,GACV,QAAS,GACT,IAAK,wBACL,KAAM,sBACN,QAAS,CAAC59B,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,GAAIq4B,CAAG,EAC3D,UAAW+E,EACf,EACMgB,GAAS,CACX,SAAUR,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,yBACN,QAAS,CAAC59B,EAAKk+B,EAAU7F,IAAQwF,GAAW79B,EAAK,EAAG,GAAIq4B,CAAG,EAC3D,UAAWrK,GAAQgQ,GAAahQ,EAAM,GAAI,IAAI,CAClD,EChEA,MAAMsR,WAAgBhD,EAAQ,CAC1B,YAAYjJ,EAAQ,CAChB,MAAMA,CAAM,EACZ,KAAK,IAAMiM,GAAQ,GACvB,CACA,IAAInqC,EAAK,CACL,IAAIgmC,EACAnxB,GAAO7U,CAAG,EACVgmC,EAAOhmC,EACFA,GACL,OAAOA,GAAQ,UACf,QAASA,GACT,UAAWA,GACXA,EAAI,QAAU,KACdgmC,EAAO,IAAID,GAAK/lC,EAAI,IAAK,IAAI,EAE7BgmC,EAAO,IAAID,GAAK/lC,EAAK,IAAI,EAChBknC,GAAS,KAAK,MAAOlB,EAAK,GAAG,GAEtC,KAAK,MAAM,KAAKA,CAAI,CAC5B,CAKA,IAAIhmC,EAAKoqC,EAAU,CACf,MAAMpE,EAAOkB,GAAS,KAAK,MAAOlnC,CAAG,EACrC,MAAO,CAACoqC,GAAYv1B,GAAOmxB,CAAI,EACzBjN,GAASiN,EAAK,GAAG,EACbA,EAAK,IAAI,MACTA,EAAK,IACTA,CACV,CACA,IAAIhmC,EAAKC,EAAO,CACZ,GAAI,OAAOA,GAAU,UACjB,MAAM,IAAI,MAAM,iEAAiE,OAAOA,CAAK,EAAE,EACnG,MAAM2O,EAAOs4B,GAAS,KAAK,MAAOlnC,CAAG,EACjC4O,GAAQ,CAAC3O,EACT,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQ2O,CAAI,EAAG,CAAC,EAExC,CAACA,GAAQ3O,GACd,KAAK,MAAM,KAAK,IAAI8lC,GAAK/lC,CAAG,CAAC,CAErC,CACA,OAAO2J,EAAGyU,EAAK,CACX,OAAO,MAAM,OAAOzU,EAAGyU,EAAK,GAAG,CACnC,CACA,SAASA,EAAKijB,EAAWC,EAAa,CAClC,GAAI,CAACljB,EACD,OAAO,KAAK,UAAU,IAAI,EAC9B,GAAI,KAAK,iBAAiB,EAAI,EAC1B,OAAO,MAAM,SAAS,OAAO,OAAO,CAAA,EAAIA,EAAK,CAAE,cAAe,EAAI,CAAE,EAAGijB,EAAWC,CAAW,EAE7F,MAAM,IAAI,MAAM,qCAAqC,CAC7D,CACA,OAAO,KAAKpD,EAAQuL,EAAUrrB,EAAK,CAC/B,KAAM,CAAE,SAAAipB,CAAQ,EAAKjpB,EACf5Z,EAAM,IAAI,KAAK05B,CAAM,EAC3B,GAAIuL,GAAY,OAAO,YAAY,OAAOA,CAAQ,EAC9C,QAASxpC,KAASwpC,EACV,OAAOpC,GAAa,aACpBpnC,EAAQonC,EAAS,KAAKoC,EAAUxpC,EAAOA,CAAK,GAChDuE,EAAI,MAAM,KAAKshC,GAAW7lC,EAAO,KAAMme,CAAG,CAAC,EAEnD,OAAO5Z,CACX,CACJ,CACA2lC,GAAQ,IAAM,wBACd,MAAM3lC,GAAM,CACR,WAAY,MACZ,SAAUvE,GAASA,aAAiB,IACpC,UAAWkqC,GACX,QAAS,GACT,IAAK,wBACL,WAAY,CAACjM,EAAQuL,EAAUrrB,IAAQ+rB,GAAQ,KAAKjM,EAAQuL,EAAUrrB,CAAG,EACzE,QAAQvd,EAAK0tB,EAAS,CAClB,GAAIhjB,GAAM1K,CAAG,EAAG,CACZ,GAAIA,EAAI,iBAAiB,EAAI,EACzB,OAAO,OAAO,OAAO,IAAIspC,GAAWtpC,CAAG,EAEvC0tB,EAAQ,qCAAqC,CACrD,MAEIA,EAAQ,iCAAiC,EAC7C,OAAO1tB,CACX,CACJ,ECvFA,SAASwpC,GAAiBx/B,EAAKy/B,EAAU,CACrC,MAAML,EAAOp/B,EAAI,CAAC,EACZ8vB,EAAQsP,IAAS,KAAOA,IAAS,IAAMp/B,EAAI,UAAU,CAAC,EAAIA,EAC1Du9B,EAAOlpB,GAAMorB,EAAW,OAAOprB,CAAC,EAAI,OAAOA,CAAC,EAC5ChM,EAAMynB,EACP,QAAQ,KAAM,EAAE,EAChB,MAAM,GAAG,EACT,OAAO,CAACznB,EAAKgJ,IAAMhJ,EAAMk1B,EAAI,EAAE,EAAIA,EAAIlsB,CAAC,EAAGksB,EAAI,CAAC,CAAC,EACtD,OAAQ6B,IAAS,IAAM7B,EAAI,EAAE,EAAIl1B,EAAMA,CAC3C,CAMA,SAASq3B,GAAqB1R,EAAM,CAChC,GAAI,CAAE,MAAA54B,CAAK,EAAK44B,EACZuP,EAAOlpB,GAAMA,EACjB,GAAI,OAAOjf,GAAU,SACjBmoC,EAAMlpB,GAAK,OAAOA,CAAC,UACd,MAAMjf,CAAK,GAAK,CAAC,SAASA,CAAK,EACpC,OAAOgoC,GAAgBpP,CAAI,EAC/B,IAAIoR,EAAO,GACPhqC,EAAQ,IACRgqC,EAAO,IACPhqC,GAASmoC,EAAI,EAAE,GAEnB,MAAMoC,EAAMpC,EAAI,EAAE,EACZzN,EAAQ,CAAC16B,EAAQuqC,CAAG,EAC1B,OAAIvqC,EAAQ,GACR06B,EAAM,QAAQ,CAAC,GAGf16B,GAASA,EAAQ06B,EAAM,CAAC,GAAK6P,EAC7B7P,EAAM,QAAQ16B,EAAQuqC,CAAG,EACrBvqC,GAAS,KACTA,GAASA,EAAQ06B,EAAM,CAAC,GAAK6P,EAC7B7P,EAAM,QAAQ16B,CAAK,IAGnBgqC,EACJtP,EACK,IAAIzb,GAAK,OAAOA,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACnC,KAAK,GAAG,EACR,QAAQ,aAAc,EAAE,CAErC,CACA,MAAMurB,GAAU,CACZ,SAAUxqC,GAAS,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EACtE,QAAS,GACT,IAAK,wBACL,OAAQ,OACR,KAAM,uCACN,QAAS,CAAC4K,EAAKk+B,EAAU,CAAE,YAAAH,CAAW,IAAOyB,GAAiBx/B,EAAK+9B,CAAW,EAC9E,UAAW2B,EACf,EACMG,GAAY,CACd,SAAUzqC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,OACR,KAAM,gDACN,QAAS4K,GAAOw/B,GAAiBx/B,EAAK,EAAK,EAC3C,UAAW0/B,EACf,EACMI,GAAY,CACd,SAAU1qC,GAASA,aAAiB,KACpC,QAAS,GACT,IAAK,8BAIL,KAAM,OAAO,2JAKJ,EACT,QAAQ4K,EAAK,CACT,MAAMgzB,EAAQhzB,EAAI,MAAM8/B,GAAU,IAAI,EACtC,GAAI,CAAC9M,EACD,MAAM,IAAI,MAAM,sDAAsD,EAC1E,KAAM,EAAG+M,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ5jC,CAAM,EAAIy2B,EAAM,IAAI,MAAM,EAC7DoN,EAAWpN,EAAM,CAAC,EAAI,QAAQA,EAAM,CAAC,EAAI,MAAM,OAAO,EAAG,CAAC,CAAC,EAAI,EACrE,IAAIqN,EAAO,KAAK,IAAIN,EAAMC,EAAQ,EAAGC,EAAKC,GAAQ,EAAGC,GAAU,EAAG5jC,GAAU,EAAG6jC,CAAQ,EACvF,MAAME,EAAKtN,EAAM,CAAC,EAClB,GAAIsN,GAAMA,IAAO,IAAK,CAClB,IAAI7rB,EAAI+qB,GAAiBc,EAAI,EAAK,EAC9B,KAAK,IAAI7rB,CAAC,EAAI,KACdA,GAAK,IACT4rB,GAAQ,IAAQ5rB,CACpB,CACA,OAAO,IAAI,KAAK4rB,CAAI,CACxB,EACA,UAAW,CAAC,CAAE,MAAAjrC,CAAK,IAAOA,GAAO,YAAW,EAAG,QAAQ,sBAAuB,EAAE,GAAK,EACzF,ECpFMi+B,GAAS,CACXr9B,GACA+mC,GACAC,GACAC,GACAiC,GACAC,GACAE,GACApB,GACAE,GACAC,GACAZ,GACAC,GACAC,GACAc,GACApE,GACA2E,GACAF,GACAllC,GACAimC,GACAC,GACAC,EACJ,ECnBMS,GAAU,IAAI,IAAI,CACpB,CAAC,OAAQlN,EAAM,EACf,CAAC,WAAY,CAACr9B,GAAK+mC,GAAKC,EAAM,CAAC,EAC/B,CAAC,OAAQwD,EAAQ,EACjB,CAAC,SAAUC,EAAQ,EACnB,CAAC,WAAYA,EAAQ,CACzB,CAAC,EACKC,GAAa,CACf,OAAAlC,GACA,KAAMtB,GACV,MAAIQ,GACJ,SAAID,GACJ,SAAID,GACA,UAAAqC,GACJ,IAAI1B,GACJ,OAAIC,GACJ,OAAIH,GACA,QAAA2B,GACA,IAAA5pC,GACA,MAAAokC,GACA,KAAM6C,GACN,KAAA8B,GACA,MAAAF,GACA,IAAA9B,GACA,IAAApjC,GACA,UAAAmmC,EACJ,EACMa,GAAgB,CAClB,2BAA4BnC,GAC5B,0BAA2BpE,GAC3B,yBAA0B2E,GAC1B,0BAA2BF,GAC3B,wBAAyBllC,GACzB,8BAA+BmmC,EACnC,EACA,SAASc,GAAQC,EAAYC,EAAYC,EAAa,CAClD,MAAMC,EAAaT,GAAQ,IAAIO,CAAU,EACzC,GAAIE,GAAc,CAACH,EACf,OAAOE,GAAe,CAACC,EAAW,SAAS5G,EAAK,EAC1C4G,EAAW,OAAO5G,EAAK,EACvB4G,EAAW,MAAK,EAE1B,IAAIrR,EAAOqR,EACX,GAAI,CAACrR,EACD,GAAI,MAAM,QAAQkR,CAAU,EACxBlR,EAAO,CAAA,MACN,CACD,MAAM/1B,EAAO,MAAM,KAAK2mC,GAAQ,KAAI,CAAE,EACjC,OAAOprC,GAAOA,IAAQ,QAAQ,EAC9B,IAAIA,GAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI,EACd,MAAM,IAAI,MAAM,mBAAmB2rC,CAAU,iBAAiBlnC,CAAI,6BAA6B,CACnG,CAEJ,GAAI,MAAM,QAAQinC,CAAU,EACxB,UAAWxQ,KAAOwQ,EACdlR,EAAOA,EAAK,OAAOU,CAAG,OAErB,OAAOwQ,GAAe,aAC3BlR,EAAOkR,EAAWlR,EAAK,OAAO,GAElC,OAAIoR,IACApR,EAAOA,EAAK,OAAOyK,EAAK,GACrBzK,EAAK,OAAO,CAACA,EAAMU,IAAQ,CAC9B,MAAM4C,EAAS,OAAO5C,GAAQ,SAAWqQ,GAAWrQ,CAAG,EAAIA,EAC3D,GAAI,CAAC4C,EAAQ,CACT,MAAMF,EAAU,KAAK,UAAU1C,CAAG,EAC5Bz2B,EAAO,OAAO,KAAK8mC,EAAU,EAC9B,IAAIvrC,GAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI,EACd,MAAM,IAAI,MAAM,sBAAsB49B,CAAO,gBAAgBn5B,CAAI,EAAE,CACvE,CACA,OAAK+1B,EAAK,SAASsD,CAAM,GACrBtD,EAAK,KAAKsD,CAAM,EACbtD,CACX,EAAG,CAAA,CAAE,CACT,CCvFA,MAAMsR,GAAsB,CAAC3uB,EAAGC,IAAMD,EAAE,IAAMC,EAAE,IAAM,GAAKD,EAAE,IAAMC,EAAE,IAAM,EAAI,EAC/E,MAAM2uB,EAAO,CACT,YAAY,CAAE,OAAArJ,EAAQ,WAAAgJ,EAAY,MAAAzG,EAAO,iBAAA+G,EAAkB,OAAA9N,EAAQ,eAAA+N,EAAgB,iBAAAC,GAAoB,CACnG,KAAK,OAAS,MAAM,QAAQxJ,CAAM,EAC5B+I,GAAQ/I,EAAQ,QAAQ,EACxBA,EACI+I,GAAQ,KAAM/I,CAAM,EACpB,KACV,KAAK,KAAQ,OAAOxE,GAAW,UAAYA,GAAW,OACtD,KAAK,UAAY8N,EAAmBR,GAAgB,CAAA,EACpD,KAAK,KAAOC,GAAQC,EAAY,KAAK,KAAMzG,CAAK,EAChD,KAAK,gBAAkBiH,GAAoB,KAC3C,OAAO,eAAe,KAAM3T,GAAK,CAAE,MAAO13B,GAAK,EAC/C,OAAO,eAAe,KAAM43B,GAAQ,CAAE,MAAOoP,GAAQ,EACrD,OAAO,eAAe,KAAMnP,GAAK,CAAE,MAAOkP,GAAK,EAE/C,KAAK,eACD,OAAOqE,GAAmB,WACpBA,EACAA,IAAmB,GACfH,GACA,IAClB,CACA,OAAQ,CACJ,MAAMrR,EAAO,OAAO,OAAOsR,GAAO,UAAW,OAAO,0BAA0B,IAAI,CAAC,EACnF,OAAAtR,EAAK,KAAO,KAAK,KAAK,MAAK,EACpBA,CACX,CACJ,CC9BA,SAAS0R,GAAkBhR,EAAKjiB,EAAS,CACrC,MAAMkiB,EAAQ,CAAA,EACd,IAAIgR,EAAgBlzB,EAAQ,aAAe,GAC3C,GAAIA,EAAQ,aAAe,IAASiiB,EAAI,WAAY,CAChD,MAAMkR,EAAMlR,EAAI,WAAW,SAASA,CAAG,EACnCkR,GACAjR,EAAM,KAAKiR,CAAG,EACdD,EAAgB,IAEXjR,EAAI,WAAW,WACpBiR,EAAgB,GACxB,CACIA,GACAhR,EAAM,KAAK,KAAK,EACpB,MAAMhd,EAAM6kB,GAAuB9H,EAAKjiB,CAAO,EACzC,CAAE,cAAAsoB,GAAkBpjB,EAAI,QAC9B,GAAI+c,EAAI,cAAe,CACfC,EAAM,SAAW,GACjBA,EAAM,QAAQ,EAAE,EACpB,MAAMkJ,EAAK9C,EAAcrG,EAAI,aAAa,EAC1CC,EAAM,QAAQqD,GAAc6F,EAAI,EAAE,CAAC,CACvC,CACA,IAAIP,EAAY,GACZuI,EAAiB,KACrB,GAAInR,EAAI,SAAU,CACd,GAAIjC,GAAOiC,EAAI,QAAQ,EAAG,CAGtB,GAFIA,EAAI,SAAS,aAAeiR,GAC5BhR,EAAM,KAAK,EAAE,EACbD,EAAI,SAAS,cAAe,CAC5B,MAAMmJ,EAAK9C,EAAcrG,EAAI,SAAS,aAAa,EACnDC,EAAM,KAAKqD,GAAc6F,EAAI,EAAE,CAAC,CACpC,CAEAlmB,EAAI,iBAAmB,CAAC,CAAC+c,EAAI,QAC7BmR,EAAiBnR,EAAI,SAAS,OAClC,CACA,MAAMmG,EAAcgL,EAAiB,OAAY,IAAOvI,EAAY,GACpE,IAAI3B,EAAOmB,GAAUpI,EAAI,SAAU/c,EAAK,IAAOkuB,EAAiB,KAAOhL,CAAW,EAC9EgL,IACAlK,GAAQxD,GAAYwD,EAAM,GAAIZ,EAAc8K,CAAc,CAAC,IAC1DlK,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAChChH,EAAMA,EAAM,OAAS,CAAC,IAAM,MAG5BA,EAAMA,EAAM,OAAS,CAAC,EAAI,OAAOgH,CAAI,GAGrChH,EAAM,KAAKgH,CAAI,CACvB,MAEIhH,EAAM,KAAKmI,GAAUpI,EAAI,SAAU/c,CAAG,CAAC,EAE3C,GAAI+c,EAAI,YAAY,OAChB,GAAIA,EAAI,QAAS,CACb,MAAMmJ,EAAK9C,EAAcrG,EAAI,OAAO,EAChCmJ,EAAG,SAAS;AAAA,CAAI,GAChBlJ,EAAM,KAAK,KAAK,EAChBA,EAAM,KAAKqD,GAAc6F,EAAI,EAAE,CAAC,GAGhClJ,EAAM,KAAK,OAAOkJ,CAAE,EAAE,CAE9B,MAEIlJ,EAAM,KAAK,KAAK,MAGnB,CACD,IAAImR,EAAKpR,EAAI,QACToR,GAAMxI,IACNwI,EAAKA,EAAG,QAAQ,OAAQ,EAAE,GAC1BA,KACK,CAACxI,GAAauI,IAAmBlR,EAAMA,EAAM,OAAS,CAAC,IAAM,IAC9DA,EAAM,KAAK,EAAE,EACjBA,EAAM,KAAKqD,GAAc+C,EAAc+K,CAAE,EAAG,EAAE,CAAC,EAEvD,CACA,OAAOnR,EAAM,KAAK;AAAA,CAAI,EAAI;AAAA,CAC9B,CCtEA,MAAMoR,EAAS,CACX,YAAYvsC,EAAOonC,EAAUnuB,EAAS,CAElC,KAAK,cAAgB,KAErB,KAAK,QAAU,KAEf,KAAK,OAAS,CAAA,EAEd,KAAK,SAAW,CAAA,EAChB,OAAO,eAAe,KAAMyf,GAAW,CAAE,MAAOL,GAAK,EACrD,IAAImU,EAAY,KACZ,OAAOpF,GAAa,YAAc,MAAM,QAAQA,CAAQ,EACxDoF,EAAYpF,EAEPnuB,IAAY,QAAamuB,IAC9BnuB,EAAUmuB,EACVA,EAAW,QAEf,MAAMnE,EAAM,OAAO,OAAO,CACtB,YAAa,GACb,iBAAkB,GAClB,SAAU,OACV,aAAc,GACd,OAAQ,GACR,WAAY,GACZ,WAAY,GACZ,QAAS,KACrB,EAAWhqB,CAAO,EACV,KAAK,QAAUgqB,EACf,GAAI,CAAE,QAAApI,CAAO,EAAKoI,EACdhqB,GAAS,aACT,KAAK,WAAaA,EAAQ,YAAY,WAAU,EAC5C,KAAK,WAAW,KAAK,WACrB4hB,EAAU,KAAK,WAAW,KAAK,UAGnC,KAAK,WAAa,IAAIR,GAAW,CAAE,QAAAQ,CAAO,CAAE,EAChD,KAAK,UAAUA,EAAS5hB,CAAO,EAE/B,KAAK,SACDjZ,IAAU,OAAY,KAAO,KAAK,WAAWA,EAAOwsC,EAAWvzB,CAAO,CAC9E,CAMA,OAAQ,CACJ,MAAMuhB,EAAO,OAAO,OAAO+R,GAAS,UAAW,CAC3C,CAAC7T,EAAS,EAAG,CAAE,MAAOL,EAAG,CACrC,CAAS,EACD,OAAAmC,EAAK,cAAgB,KAAK,cAC1BA,EAAK,QAAU,KAAK,QACpBA,EAAK,OAAS,KAAK,OAAO,MAAK,EAC/BA,EAAK,SAAW,KAAK,SAAS,MAAK,EACnCA,EAAK,QAAU,OAAO,OAAO,CAAA,EAAI,KAAK,OAAO,EACzC,KAAK,aACLA,EAAK,WAAa,KAAK,WAAW,MAAK,GAC3CA,EAAK,OAAS,KAAK,OAAO,MAAK,EAE/BA,EAAK,SAAWvB,GAAO,KAAK,QAAQ,EAC9B,KAAK,SAAS,MAAMuB,EAAK,MAAM,EAC/B,KAAK,SACP,KAAK,QACLA,EAAK,MAAQ,KAAK,MAAM,MAAK,GAC1BA,CACX,CAEA,IAAIx6B,EAAO,CACHysC,GAAiB,KAAK,QAAQ,GAC9B,KAAK,SAAS,IAAIzsC,CAAK,CAC/B,CAEA,MAAM25B,EAAM35B,EAAO,CACXysC,GAAiB,KAAK,QAAQ,GAC9B,KAAK,SAAS,MAAM9S,EAAM35B,CAAK,CACvC,CAUA,YAAY44B,EAAM9L,EAAM,CACpB,GAAI,CAAC8L,EAAK,OAAQ,CACd,MAAMjqB,EAAO8sB,GAAY,IAAI,EAC7B7C,EAAK,OAED,CAAC9L,GAAQne,EAAK,IAAIme,CAAI,EAAI6O,GAAc7O,GAAQ,IAAKne,CAAI,EAAIme,CACrE,CACA,OAAO,IAAI+P,GAAMjE,EAAK,MAAM,CAChC,CACA,WAAW54B,EAAOonC,EAAUnuB,EAAS,CACjC,IAAIuzB,EACJ,GAAI,OAAOpF,GAAa,WACpBpnC,EAAQonC,EAAS,KAAK,CAAE,GAAIpnC,CAAK,EAAI,GAAIA,CAAK,EAC9CwsC,EAAYpF,UAEP,MAAM,QAAQA,CAAQ,EAAG,CAC9B,MAAMsF,EAAY36B,GAAM,OAAOA,GAAM,UAAYA,aAAa,QAAUA,aAAa,OAC/E46B,EAAQvF,EAAS,OAAOsF,CAAQ,EAAE,IAAI,MAAM,EAC9CC,EAAM,OAAS,IACfvF,EAAWA,EAAS,OAAOuF,CAAK,GACpCH,EAAYpF,CAChB,MACSnuB,IAAY,QAAamuB,IAC9BnuB,EAAUmuB,EACVA,EAAW,QAEf,KAAM,CAAE,sBAAArJ,EAAuB,aAAA6O,EAAc,KAAAnI,EAAM,cAAA0C,EAAe,SAAAnJ,EAAU,IAAA/C,GAAQhiB,GAAW,CAAA,EACzF,CAAE,SAAA0jB,EAAU,WAAAkQ,EAAY,cAAA9Q,CAAa,EAAKF,GAAkB,KAElE+Q,GAAgB,GAAG,EACbzuB,EAAM,CACR,sBAAuB4f,GAAyB,GAChD,cAAeoJ,GAAiB,GAChC,SAAAxK,EACA,SAAAqB,EACA,SAAUwO,EACV,OAAQ,KAAK,OACb,cAAAzQ,CACZ,EACcnD,EAAOkF,GAAW99B,EAAOi7B,EAAK9c,CAAG,EACvC,OAAIsmB,GAAQzL,GAAaJ,CAAI,IACzBA,EAAK,KAAO,IAChBiU,EAAU,EACHjU,CACX,CAKA,WAAW74B,EAAKC,EAAOiZ,EAAU,CAAA,EAAI,CACjC,MAAM3Q,EAAI,KAAK,WAAWvI,EAAK,KAAMkZ,CAAO,EACtClH,EAAI,KAAK,WAAW/R,EAAO,KAAMiZ,CAAO,EAC9C,OAAO,IAAI6sB,GAAKx9B,EAAGyJ,CAAC,CACxB,CAKA,OAAOhS,EAAK,CACR,OAAO0sC,GAAiB,KAAK,QAAQ,EAAI,KAAK,SAAS,OAAO1sC,CAAG,EAAI,EACzE,CAKA,SAAS45B,EAAM,CACX,OAAIwE,GAAYxE,CAAI,EACZ,KAAK,UAAY,KACV,IAEX,KAAK,SAAW,KACT,IAEJ8S,GAAiB,KAAK,QAAQ,EAC/B,KAAK,SAAS,SAAS9S,CAAI,EAC3B,EACV,CAMA,IAAI55B,EAAKs+B,EAAY,CACjB,OAAOrF,GAAa,KAAK,QAAQ,EAC3B,KAAK,SAAS,IAAIj5B,EAAKs+B,CAAU,EACjC,MACV,CAMA,MAAM1E,EAAM0E,EAAY,CACpB,OAAIF,GAAYxE,CAAI,EACT,CAAC0E,GAAcvF,GAAS,KAAK,QAAQ,EACtC,KAAK,SAAS,MACd,KAAK,SACRE,GAAa,KAAK,QAAQ,EAC3B,KAAK,SAAS,MAAMW,EAAM0E,CAAU,EACpC,MACV,CAIA,IAAIt+B,EAAK,CACL,OAAOi5B,GAAa,KAAK,QAAQ,EAAI,KAAK,SAAS,IAAIj5B,CAAG,EAAI,EAClE,CAIA,MAAM45B,EAAM,CACR,OAAIwE,GAAYxE,CAAI,EACT,KAAK,WAAa,OACtBX,GAAa,KAAK,QAAQ,EAAI,KAAK,SAAS,MAAMW,CAAI,EAAI,EACrE,CAKA,IAAI55B,EAAKC,EAAO,CACR,KAAK,UAAY,KAEjB,KAAK,SAAWk+B,GAAmB,KAAK,OAAQ,CAACn+B,CAAG,EAAGC,CAAK,EAEvDysC,GAAiB,KAAK,QAAQ,GACnC,KAAK,SAAS,IAAI1sC,EAAKC,CAAK,CAEpC,CAKA,MAAM25B,EAAM35B,EAAO,CACXm+B,GAAYxE,CAAI,EAEhB,KAAK,SAAW35B,EAEX,KAAK,UAAY,KAEtB,KAAK,SAAWk+B,GAAmB,KAAK,OAAQ,MAAM,KAAKvE,CAAI,EAAG35B,CAAK,EAElEysC,GAAiB,KAAK,QAAQ,GACnC,KAAK,SAAS,MAAM9S,EAAM35B,CAAK,CAEvC,CAQA,UAAU66B,EAAS5hB,EAAU,GAAI,CACzB,OAAO4hB,GAAY,WACnBA,EAAU,OAAOA,CAAO,GAC5B,IAAIoI,EACJ,OAAQpI,EAAO,CACX,IAAK,MACG,KAAK,WACL,KAAK,WAAW,KAAK,QAAU,MAE/B,KAAK,WAAa,IAAIR,GAAW,CAAE,QAAS,KAAK,CAAE,EACvD4I,EAAM,CAAE,iBAAkB,GAAO,OAAQ,UAAU,EACnD,MACJ,IAAK,MACL,IAAK,OACG,KAAK,WACL,KAAK,WAAW,KAAK,QAAUpI,EAE/B,KAAK,WAAa,IAAIR,GAAW,CAAE,QAAAQ,CAAO,CAAE,EAChDoI,EAAM,CAAE,iBAAkB,GAAM,OAAQ,MAAM,EAC9C,MACJ,KAAK,KACG,KAAK,YACL,OAAO,KAAK,WAChBA,EAAM,KACN,MACJ,QAAS,CACL,MAAM8E,EAAK,KAAK,UAAUlN,CAAO,EACjC,MAAM,IAAI,MAAM,+DAA+DkN,CAAE,EAAE,CACvF,CACZ,CAEQ,GAAI9uB,EAAQ,kBAAkB,OAC1B,KAAK,OAASA,EAAQ,eACjBgqB,EACL,KAAK,OAAS,IAAI6I,GAAO,OAAO,OAAO7I,EAAKhqB,CAAO,CAAC,MAEpD,OAAM,IAAI,MAAM,qEAAqE,CAC7F,CAEA,KAAK,CAAE,KAAAunB,EAAM,QAAAsM,EAAS,SAAArQ,EAAU,cAAAC,EAAe,SAAAC,EAAU,QAAAT,CAAO,EAAK,GAAI,CACrE,MAAM/d,EAAM,CACR,QAAS,IAAI,IACb,IAAK,KACL,KAAM,CAACqiB,EACP,SAAU/D,IAAa,GACvB,aAAc,GACd,cAAe,OAAOC,GAAkB,SAAWA,EAAgB,GAC/E,EACczpB,EAAMqpB,GAAK,KAAK,SAAUwQ,GAAW,GAAI3uB,CAAG,EAClD,GAAI,OAAOwe,GAAa,WACpB,SAAW,CAAE,MAAAC,EAAO,IAAA3pB,CAAG,IAAMkL,EAAI,QAAQ,OAAM,EAC3Cwe,EAAS1pB,EAAK2pB,CAAK,EAC3B,OAAO,OAAOV,GAAY,WACpBD,GAAaC,EAAS,CAAE,GAAIjpB,CAAG,EAAI,GAAIA,CAAG,EAC1CA,CACV,CAOA,OAAO65B,EAASnQ,EAAU,CACtB,OAAO,KAAK,KAAK,CAAE,KAAM,GAAM,QAAAmQ,EAAS,SAAU,GAAO,SAAAnQ,EAAU,CACvE,CAEA,SAAS1jB,EAAU,GAAI,CACnB,GAAI,KAAK,OAAO,OAAS,EACrB,MAAM,IAAI,MAAM,4CAA4C,EAChE,GAAI,WAAYA,IACX,CAAC,OAAO,UAAUA,EAAQ,MAAM,GAAK,OAAOA,EAAQ,MAAM,GAAK,GAAI,CACpE,MAAMc,EAAI,KAAK,UAAUd,EAAQ,MAAM,EACvC,MAAM,IAAI,MAAM,mDAAmDc,CAAC,EAAE,CAC1E,CACA,OAAOmyB,GAAkB,KAAMjzB,CAAO,CAC1C,CACJ,CACA,SAASwzB,GAAiBM,EAAU,CAChC,GAAI/T,GAAa+T,CAAQ,EACrB,MAAO,GACX,MAAM,IAAI,MAAM,iDAAiD,CACrE,CC5UA,MAAMC,WAAkB,KAAM,CAC1B,YAAYlgB,EAAMmgB,EAAKtM,EAAMrR,EAAS,CAClC,MAAK,EACL,KAAK,KAAOxC,EACZ,KAAK,KAAO6T,EACZ,KAAK,QAAUrR,EACf,KAAK,IAAM2d,CACf,CACJ,CACA,MAAMC,WAAuBF,EAAU,CACnC,YAAYC,EAAKtM,EAAMrR,EAAS,CAC5B,MAAM,iBAAkB2d,EAAKtM,EAAMrR,CAAO,CAC9C,CACJ,CACA,MAAM6d,WAAoBH,EAAU,CAChC,YAAYC,EAAKtM,EAAMrR,EAAS,CAC5B,MAAM,cAAe2d,EAAKtM,EAAMrR,CAAO,CAC3C,CACJ,CACA,MAAM8d,GAAgB,CAAChQ,EAAKiQ,IAAQlkC,GAAU,CAC1C,GAAIA,EAAM,IAAI,CAAC,IAAM,GACjB,OACJA,EAAM,QAAUA,EAAM,IAAI,IAAI8jC,GAAOI,EAAG,QAAQJ,CAAG,CAAC,EACpD,KAAM,CAAE,KAAAxS,EAAM,IAAA6S,CAAG,EAAKnkC,EAAM,QAAQ,CAAC,EACrCA,EAAM,SAAW,YAAYsxB,CAAI,YAAY6S,CAAG,GAChD,IAAIvT,EAAKuT,EAAM,EACXC,EAAUnQ,EACT,UAAUiQ,EAAG,WAAW5S,EAAO,CAAC,EAAG4S,EAAG,WAAW5S,CAAI,CAAC,EACtD,QAAQ,WAAY,EAAE,EAE3B,GAAIV,GAAM,IAAMwT,EAAQ,OAAS,GAAI,CACjC,MAAMC,EAAY,KAAK,IAAIzT,EAAK,GAAIwT,EAAQ,OAAS,EAAE,EACvDA,EAAU,IAAMA,EAAQ,UAAUC,CAAS,EAC3CzT,GAAMyT,EAAY,CACtB,CAIA,GAHID,EAAQ,OAAS,KACjBA,EAAUA,EAAQ,UAAU,EAAG,EAAE,EAAI,KAErC9S,EAAO,GAAK,OAAO,KAAK8S,EAAQ,UAAU,EAAGxT,CAAE,CAAC,EAAG,CAEnD,IAAIprB,EAAOyuB,EAAI,UAAUiQ,EAAG,WAAW5S,EAAO,CAAC,EAAG4S,EAAG,WAAW5S,EAAO,CAAC,CAAC,EACrE9rB,EAAK,OAAS,KACdA,EAAOA,EAAK,UAAU,EAAG,EAAE,EAAI;AAAA,GACnC4+B,EAAU5+B,EAAO4+B,CACrB,CACA,GAAI,OAAO,KAAKA,CAAO,EAAG,CACtB,IAAI3Q,EAAQ,EACZ,MAAMvgB,EAAMlT,EAAM,QAAQ,CAAC,EACvBkT,GAAK,OAASoe,GAAQpe,EAAI,IAAMixB,IAChC1Q,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAIvgB,EAAI,IAAMixB,EAAK,GAAKvT,CAAE,CAAC,GAExD,MAAM0T,EAAU,IAAI,OAAO1T,CAAE,EAAI,IAAI,OAAO6C,CAAK,EACjDzzB,EAAM,SAAW;AAAA;AAAA,EAAQokC,CAAO;AAAA,EAAKE,CAAO;AAAA,CAChD,CACJ,ECtDA,SAASC,GAAaC,EAAQ,CAAE,KAAAlJ,EAAM,UAAAmJ,EAAW,KAAAjmC,EAAM,OAAA8C,EAAQ,QAAA6jB,EAAS,aAAAuf,EAAc,eAAAC,GAAkB,CACpG,IAAIC,EAAc,GACdC,EAAYF,EACZG,EAAWH,EACXrP,EAAU,GACVyP,EAAa,GACb1J,EAAa,GACb2J,EAAW,GACXC,EAAM,KACN7S,EAAS,KACTN,EAAM,KACNoT,EAAmB,KACnBC,GAAQ,KACRvR,EAAQ,KACR3gB,GAAQ,KACZ,UAAWmyB,KAASZ,EAchB,OAbIQ,IACII,EAAM,OAAS,SACfA,EAAM,OAAS,WACfA,EAAM,OAAS,SACfjgB,EAAQigB,EAAM,OAAQ,eAAgB,uEAAuE,EACjHJ,EAAW,IAEXC,IACIJ,GAAaO,EAAM,OAAS,WAAaA,EAAM,OAAS,WACxDjgB,EAAQ8f,EAAK,gBAAiB,qCAAqC,EAEvEA,EAAM,MAEFG,EAAM,KAAI,CACd,IAAK,QAIG,CAAC9J,IACAmJ,IAAc,aAAejmC,GAAM,OAAS,oBAC7C4mC,EAAM,OAAO,SAAS,GAAI,IAC1BH,EAAMG,GAEVN,EAAW,GACX,MACJ,IAAK,UAAW,CACPA,GACD3f,EAAQigB,EAAO,eAAgB,wEAAwE,EAC3G,MAAMv1B,GAAKu1B,EAAM,OAAO,UAAU,CAAC,GAAK,IACnC9P,EAGDA,GAAWyP,EAAal1B,GAFxBylB,EAAUzlB,GAGdk1B,EAAa,GACbF,EAAY,GACZ,KACJ,CACA,IAAK,UACGA,EACIvP,EACAA,GAAW8P,EAAM,QACZ,CAACxR,GAAS6Q,IAAc,kBAC7BG,EAAc,IAGlBG,GAAcK,EAAM,OACxBP,EAAY,GACZxJ,EAAa,IACTjJ,GAAUN,KACVoT,EAAmBE,GACvBN,EAAW,GACX,MACJ,IAAK,SACG1S,GACAjN,EAAQigB,EAAO,mBAAoB,oCAAoC,EACvEA,EAAM,OAAO,SAAS,GAAG,GACzBjgB,EAAQigB,EAAM,OAASA,EAAM,OAAO,OAAS,EAAG,YAAa,kCAAmC,EAAI,EACxGhT,EAASgT,EACTnyB,KAAUA,GAAQmyB,EAAM,QACxBP,EAAY,GACZC,EAAW,GACXE,EAAW,GACX,MACJ,IAAK,MAAO,CACJlT,GACA3M,EAAQigB,EAAO,gBAAiB,iCAAiC,EACrEtT,EAAMsT,EACNnyB,KAAUA,GAAQmyB,EAAM,QACxBP,EAAY,GACZC,EAAW,GACXE,EAAW,GACX,KACJ,CACA,KAAKP,GAEGrS,GAAUN,IACV3M,EAAQigB,EAAO,iBAAkB,sCAAsCA,EAAM,MAAM,YAAY,EAC/FxR,GACAzO,EAAQigB,EAAO,mBAAoB,cAAcA,EAAM,MAAM,OAAO9J,GAAQ,YAAY,EAAE,EAC9F1H,EAAQwR,EACRP,EACIJ,IAAc,gBAAkBA,IAAc,mBAClDK,EAAW,GACX,MACJ,IAAK,QACD,GAAIxJ,EAAM,CACF6J,IACAhgB,EAAQigB,EAAO,mBAAoB,mBAAmB9J,CAAI,EAAE,EAChE6J,GAAQC,EACRP,EAAY,GACZC,EAAW,GACX,KACJ,CAEJ,QACI3f,EAAQigB,EAAO,mBAAoB,cAAcA,EAAM,IAAI,QAAQ,EACnEP,EAAY,GACZC,EAAW,EAC3B,CAEI,MAAMlhC,GAAO4gC,EAAOA,EAAO,OAAS,CAAC,EAC/BtxB,GAAMtP,GAAOA,GAAK,OAASA,GAAK,OAAO,OAAStC,EACtD,OAAI0jC,GACAxmC,GACAA,EAAK,OAAS,SACdA,EAAK,OAAS,WACdA,EAAK,OAAS,UACbA,EAAK,OAAS,UAAYA,EAAK,SAAW,KAC3C2mB,EAAQ3mB,EAAK,OAAQ,eAAgB,uEAAuE,EAE5GymC,IACEJ,GAAaI,EAAI,QAAUP,GACzBlmC,GAAM,OAAS,aACfA,GAAM,OAAS,cACnB2mB,EAAQ8f,EAAK,gBAAiB,qCAAqC,EAChE,CACH,MAAAE,GACA,MAAAvR,EACA,YAAAgR,EACA,QAAAtP,EACA,WAAA+F,EACA,OAAAjJ,EACA,IAAAN,EACA,iBAAAoT,EACA,IAAAhyB,GACA,MAAOD,IAASC,EACxB,CACA,CC/IA,SAASmyB,GAAgBzuC,EAAK,CAC1B,GAAI,CAACA,EACD,OAAO,KACX,OAAQA,EAAI,KAAI,CACZ,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,GAAIA,EAAI,OAAO,SAAS;AAAA,CAAI,EACxB,MAAO,GACX,GAAIA,EAAI,KACJ,UAAWwnB,KAAMxnB,EAAI,IACjB,GAAIwnB,EAAG,OAAS,UACZ,MAAO,GACnB,MAAO,GACX,IAAK,kBACD,UAAWH,KAAMrnB,EAAI,MAAO,CACxB,UAAWwnB,KAAMH,EAAG,MAChB,GAAIG,EAAG,OAAS,UACZ,MAAO,GACf,GAAIH,EAAG,KACH,UAAWG,KAAMH,EAAG,IAChB,GAAIG,EAAG,OAAS,UACZ,MAAO,GACnB,GAAIinB,GAAgBpnB,EAAG,GAAG,GAAKonB,GAAgBpnB,EAAG,KAAK,EACnD,MAAO,EACf,CACA,MAAO,GACX,QACI,MAAO,EACnB,CACA,CC7BA,SAASqnB,GAAgB/P,EAAQgQ,EAAIpgB,EAAS,CAC1C,GAAIogB,GAAI,OAAS,kBAAmB,CAChC,MAAMryB,EAAMqyB,EAAG,IAAI,CAAC,EAChBryB,EAAI,SAAWqiB,IACdriB,EAAI,SAAW,KAAOA,EAAI,SAAW,MACtCmyB,GAAgBE,CAAE,GAElBpgB,EAAQjS,EAAK,aADD,yDACoB,EAAI,CAE5C,CACJ,CCVA,SAASsyB,GAAYxwB,EAAKioB,EAAOwI,EAAQ,CACrC,KAAM,CAAE,WAAAC,GAAe1wB,EAAI,QAC3B,GAAI0wB,IAAe,GACf,MAAO,GACX,MAAMC,EAAU,OAAOD,GAAe,WAChCA,EACA,CAAC3xB,EAAGC,IAAMD,IAAMC,GAAM2b,GAAS5b,CAAC,GAAK4b,GAAS3b,CAAC,GAAKD,EAAE,QAAUC,EAAE,MACxE,OAAOipB,EAAM,KAAKL,GAAQ+I,EAAQ/I,EAAK,IAAK6I,CAAM,CAAC,CACvD,CCHA,MAAMG,GAAc,kDACpB,SAASC,GAAgB,CAAE,YAAAC,EAAa,iBAAAC,CAAgB,EAAI/wB,EAAKgxB,EAAI7gB,EAAS2M,EAAK,CAC/E,MAAMmU,EAAYnU,GAAK,WAAaiM,GAC9BtmC,EAAM,IAAIwuC,EAAUjxB,EAAI,MAAM,EAChCA,EAAI,SACJA,EAAI,OAAS,IACjB,IAAI1T,EAAS0kC,EAAG,OACZE,EAAa,KACjB,UAAWC,KAAYH,EAAG,MAAO,CAC7B,KAAM,CAAE,MAAA/yB,EAAO,IAAArc,EAAK,IAAAwvC,EAAK,MAAAvvC,CAAK,EAAKsvC,EAE7BE,EAAW9B,GAAatxB,EAAO,CACjC,UAAW,mBACX,KAAMrc,GAAOwvC,IAAM,CAAC,EACpB,OAAA9kC,EACA,QAAA6jB,EACA,aAAc6gB,EAAG,OACjB,eAAgB,EAC5B,CAAS,EACK1O,EAAc,CAAC+O,EAAS,MAC9B,GAAI/O,EAAa,CAOb,GANI1gC,IACIA,EAAI,OAAS,YACbuuB,EAAQ7jB,EAAQ,wBAAyB,yDAAyD,EAC7F,WAAY1K,GAAOA,EAAI,SAAWovC,EAAG,QAC1C7gB,EAAQ7jB,EAAQ,aAAcskC,EAAW,GAE7C,CAACS,EAAS,QAAU,CAACA,EAAS,KAAO,CAACD,EAAK,CAC3CF,EAAaG,EAAS,IAClBA,EAAS,UACL5uC,EAAI,QACJA,EAAI,SAAW;AAAA,EAAO4uC,EAAS,QAE/B5uC,EAAI,QAAU4uC,EAAS,SAE/B,QACJ,EACIA,EAAS,kBAAoBhB,GAAgBzuC,CAAG,IAChDuuB,EAAQvuB,GAAOqc,EAAMA,EAAM,OAAS,CAAC,EAAG,yBAA0B,2CAA2C,CAErH,MACSozB,EAAS,OAAO,SAAWL,EAAG,QACnC7gB,EAAQ7jB,EAAQ,aAAcskC,EAAW,EAG7C5wB,EAAI,MAAQ,GACZ,MAAMsxB,EAAWD,EAAS,IACpBE,EAAU3vC,EACVkvC,EAAY9wB,EAAKpe,EAAKyvC,EAAUlhB,CAAO,EACvC4gB,EAAiB/wB,EAAKsxB,EAAUrzB,EAAO,KAAMozB,EAAUlhB,CAAO,EAChEnQ,EAAI,OAAO,QACXswB,GAAgBU,EAAG,OAAQpvC,EAAKuuB,CAAO,EAC3CnQ,EAAI,MAAQ,GACRwwB,GAAYxwB,EAAKvd,EAAI,MAAO8uC,CAAO,GACnCphB,EAAQmhB,EAAU,gBAAiB,yBAAyB,EAEhE,MAAME,GAAajC,GAAa6B,GAAO,GAAI,CACvC,UAAW,gBACX,KAAMvvC,EACN,OAAQ0vC,EAAQ,MAAM,CAAC,EACvB,QAAAphB,EACA,aAAc6gB,EAAG,OACjB,eAAgB,CAACpvC,GAAOA,EAAI,OAAS,cACjD,CAAS,EAED,GADA0K,EAASklC,GAAW,IAChBA,GAAW,MAAO,CACdlP,IACIzgC,GAAO,OAAS,aAAe,CAAC2vC,GAAW,YAC3CrhB,EAAQ7jB,EAAQ,wBAAyB,qDAAqD,EAC9F0T,EAAI,QAAQ,QACZqxB,EAAS,MAAQG,GAAW,MAAM,OAAS,MAC3CrhB,EAAQohB,EAAQ,MAAO,sBAAuB,6FAA6F,GAGnJ,MAAME,EAAY5vC,EACZivC,EAAY9wB,EAAKne,EAAO2vC,GAAYrhB,CAAO,EAC3C4gB,EAAiB/wB,EAAK1T,EAAQ8kC,EAAK,KAAMI,GAAYrhB,CAAO,EAC9DnQ,EAAI,OAAO,QACXswB,GAAgBU,EAAG,OAAQnvC,EAAOsuB,CAAO,EAC7C7jB,EAASmlC,EAAU,MAAM,CAAC,EAC1B,MAAM7J,GAAO,IAAID,GAAK4J,EAASE,CAAS,EACpCzxB,EAAI,QAAQ,mBACZ4nB,GAAK,SAAWuJ,GACpB1uC,EAAI,MAAM,KAAKmlC,EAAI,CACvB,KACK,CAEGtF,GACAnS,EAAQohB,EAAQ,MAAO,eAAgB,qDAAqD,EAC5FC,GAAW,UACPD,EAAQ,QACRA,EAAQ,SAAW;AAAA,EAAOC,GAAW,QAErCD,EAAQ,QAAUC,GAAW,SAErC,MAAM5J,EAAO,IAAID,GAAK4J,CAAO,EACzBvxB,EAAI,QAAQ,mBACZ4nB,EAAK,SAAWuJ,GACpB1uC,EAAI,MAAM,KAAKmlC,CAAI,CACvB,CACJ,CACA,OAAIsJ,GAAcA,EAAa5kC,GAC3B6jB,EAAQ+gB,EAAY,aAAc,mCAAmC,EACzEzuC,EAAI,MAAQ,CAACuuC,EAAG,OAAQ1kC,EAAQ4kC,GAAc5kC,CAAM,EAC7C7J,CACX,CC5GA,SAASivC,GAAgB,CAAE,YAAAZ,EAAa,iBAAAC,CAAgB,EAAI/wB,EAAK2xB,EAAIxhB,EAAS2M,EAAK,CAC/E,MAAMmU,EAAYnU,GAAK,WAAauM,GAC9BG,EAAM,IAAIyH,EAAUjxB,EAAI,MAAM,EAChCA,EAAI,SACJA,EAAI,OAAS,IACbA,EAAI,QACJA,EAAI,MAAQ,IAChB,IAAI1T,EAASqlC,EAAG,OACZT,EAAa,KACjB,SAAW,CAAE,MAAAjzB,EAAO,MAAApc,CAAK,IAAM8vC,EAAG,MAAO,CACrC,MAAMzM,EAAQqK,GAAatxB,EAAO,CAC9B,UAAW,eACX,KAAMpc,EACN,OAAAyK,EACA,QAAA6jB,EACA,aAAcwhB,EAAG,OACjB,eAAgB,EAC5B,CAAS,EACD,GAAI,CAACzM,EAAM,MACP,GAAIA,EAAM,QAAUA,EAAM,KAAOrjC,EACzBA,GAAO,OAAS,YAChBsuB,EAAQ+U,EAAM,IAAK,aAAc,kDAAkD,EAEnF/U,EAAQ7jB,EAAQ,eAAgB,mCAAmC,MAEtE,CACD4kC,EAAahM,EAAM,IACfA,EAAM,UACNsE,EAAI,QAAUtE,EAAM,SACxB,QACJ,CAEJ,MAAMzK,EAAO54B,EACPivC,EAAY9wB,EAAKne,EAAOqjC,EAAO/U,CAAO,EACtC4gB,EAAiB/wB,EAAKklB,EAAM,IAAKjnB,EAAO,KAAMinB,EAAO/U,CAAO,EAC9DnQ,EAAI,OAAO,QACXswB,GAAgBqB,EAAG,OAAQ9vC,EAAOsuB,CAAO,EAC7C7jB,EAASmuB,EAAK,MAAM,CAAC,EACrB+O,EAAI,MAAM,KAAK/O,CAAI,CACvB,CACA,OAAA+O,EAAI,MAAQ,CAACmI,EAAG,OAAQrlC,EAAQ4kC,GAAc5kC,CAAM,EAC7Ck9B,CACX,CC9CA,SAASoI,GAAW1zB,EAAK5R,EAAQ0jC,EAAU7f,EAAS,CAChD,IAAImQ,EAAU,GACd,GAAIpiB,EAAK,CACL,IAAI4xB,EAAW,GACXsB,EAAM,GACV,UAAWhB,KAASlyB,EAAK,CACrB,KAAM,CAAE,OAAArE,EAAQ,KAAA5H,CAAI,EAAKm+B,EACzB,OAAQn+B,EAAI,CACR,IAAK,QACD69B,EAAW,GACX,MACJ,IAAK,UAAW,CACRE,GAAY,CAACF,GACb3f,EAAQigB,EAAO,eAAgB,wEAAwE,EAC3G,MAAMv1B,EAAKhB,EAAO,UAAU,CAAC,GAAK,IAC7BymB,EAGDA,GAAW8Q,EAAMv2B,EAFjBylB,EAAUzlB,EAGdu2B,EAAM,GACN,KACJ,CACA,IAAK,UACG9Q,IACA8Q,GAAOv3B,GACXi2B,EAAW,GACX,MACJ,QACI3f,EAAQigB,EAAO,mBAAoB,cAAcn+B,CAAI,cAAc,CACvF,CACY3F,GAAUuN,EAAO,MACrB,CACJ,CACA,MAAO,CAAE,QAAAymB,EAAS,OAAAh0B,CAAM,CAC5B,CCzBA,MAAMulC,GAAW,4DACX/P,GAAWsO,GAAUA,IAAUA,EAAM,OAAS,aAAeA,EAAM,OAAS,aAClF,SAAS0B,GAAsB,CAAE,YAAAhB,EAAa,iBAAAC,CAAgB,EAAI/wB,EAAKuwB,EAAIpgB,EAAS2M,EAAK,CACrF,MAAM3vB,EAAQojC,EAAG,MAAM,SAAW,IAC5BwB,EAAS5kC,EAAQ,WAAa,gBAC9B8jC,EAAanU,GAAK,YAAc3vB,EAAQ47B,GAAUM,IAClD2I,EAAO,IAAIf,EAAUjxB,EAAI,MAAM,EACrCgyB,EAAK,KAAO,GACZ,MAAMC,EAASjyB,EAAI,OACfiyB,IACAjyB,EAAI,OAAS,IACbA,EAAI,QACJA,EAAI,MAAQ,IAChB,IAAI1T,EAASikC,EAAG,OAASA,EAAG,MAAM,OAAO,OACzC,QAAS/qC,EAAI,EAAGA,EAAI+qC,EAAG,MAAM,OAAQ,EAAE/qC,EAAG,CACtC,MAAM2rC,EAAWZ,EAAG,MAAM/qC,CAAC,EACrB,CAAE,MAAAyY,EAAO,IAAArc,GAAK,IAAAwvC,EAAK,MAAAvvC,EAAK,EAAKsvC,EAC7BjM,GAAQqK,GAAatxB,EAAO,CAC9B,KAAM8zB,EACN,UAAW,mBACX,KAAMnwC,IAAOwvC,IAAM,CAAC,EACpB,OAAA9kC,EACA,QAAA6jB,EACA,aAAcogB,EAAG,OACjB,eAAgB,EAC5B,CAAS,EACD,GAAI,CAACrL,GAAM,MAAO,CACd,GAAI,CAACA,GAAM,QAAU,CAACA,GAAM,KAAO,CAACkM,GAAO,CAACvvC,GAAO,CAC3C2D,IAAM,GAAK0/B,GAAM,MACjB/U,EAAQ+U,GAAM,MAAO,mBAAoB,mBAAmB6M,CAAM,EAAE,EAC/DvsC,EAAI+qC,EAAG,MAAM,OAAS,GAC3BpgB,EAAQ+U,GAAM,MAAO,mBAAoB,4BAA4B6M,CAAM,EAAE,EAC7E7M,GAAM,UACF8M,EAAK,QACLA,EAAK,SAAW;AAAA,EAAO9M,GAAM,QAE7B8M,EAAK,QAAU9M,GAAM,SAE7B54B,EAAS44B,GAAM,IACf,QACJ,CACI,CAAC/3B,GAAS6S,EAAI,QAAQ,QAAUqwB,GAAgBzuC,EAAG,GACnDuuB,EAAQvuB,GACR,yBAA0B,kEAAkE,CACpG,CACA,GAAI4D,IAAM,EACF0/B,GAAM,OACN/U,EAAQ+U,GAAM,MAAO,mBAAoB,mBAAmB6M,CAAM,EAAE,UAGnE7M,GAAM,OACP/U,EAAQ+U,GAAM,MAAO,eAAgB,qBAAqB6M,CAAM,QAAQ,EACxE7M,GAAM,QAAS,CACf,IAAIgN,GAAkB,GACtBC,EAAM,UAAW/oB,KAAMnL,EACnB,OAAQmL,EAAG,KAAI,CACX,IAAK,QACL,IAAK,QACD,MACJ,IAAK,UACD8oB,GAAkB9oB,EAAG,OAAO,UAAU,CAAC,EACvC,MAAM+oB,EACV,QACI,MAAMA,CAClC,CAEgB,GAAID,GAAiB,CACjB,IAAI1hC,EAAOwhC,EAAK,MAAMA,EAAK,MAAM,OAAS,CAAC,EACvCv7B,GAAOjG,CAAI,IACXA,EAAOA,EAAK,OAASA,EAAK,KAC1BA,EAAK,QACLA,EAAK,SAAW;AAAA,EAAO0hC,GAEvB1hC,EAAK,QAAU0hC,GACnBhN,GAAM,QAAUA,GAAM,QAAQ,UAAUgN,GAAgB,OAAS,CAAC,CACtE,CACJ,CAEJ,GAAI,CAAC/kC,GAAS,CAACikC,GAAO,CAAClM,GAAM,MAAO,CAGhC,MAAMuM,GAAY5vC,GACZivC,EAAY9wB,EAAKne,GAAOqjC,GAAO/U,CAAO,EACtC4gB,EAAiB/wB,EAAKklB,GAAM,IAAKkM,EAAK,KAAMlM,GAAO/U,CAAO,EAChE6hB,EAAK,MAAM,KAAKP,EAAS,EACzBnlC,EAASmlC,GAAU,MAAM,CAAC,EACtB3P,GAAQjgC,EAAK,GACbsuB,EAAQshB,GAAU,MAAO,gBAAiBI,EAAQ,CAC1D,KACK,CAGD7xB,EAAI,MAAQ,GACZ,MAAMsxB,GAAWpM,GAAM,IACjBqM,EAAU3vC,GACVkvC,EAAY9wB,EAAKpe,GAAKsjC,GAAO/U,CAAO,EACpC4gB,EAAiB/wB,EAAKsxB,GAAUrzB,EAAO,KAAMinB,GAAO/U,CAAO,EAC7D2R,GAAQlgC,EAAG,GACXuuB,EAAQohB,EAAQ,MAAO,gBAAiBM,EAAQ,EACpD7xB,EAAI,MAAQ,GAEZ,MAAMwxB,GAAajC,GAAa6B,GAAO,GAAI,CACvC,KAAMW,EACN,UAAW,gBACX,KAAMlwC,GACN,OAAQ0vC,EAAQ,MAAM,CAAC,EACvB,QAAAphB,EACA,aAAcogB,EAAG,OACjB,eAAgB,EAChC,CAAa,EACD,GAAIiB,GAAW,OACX,GAAI,CAACrkC,GAAS,CAAC+3B,GAAM,OAASllB,EAAI,QAAQ,OAAQ,CAC9C,GAAIoxB,EACA,UAAWhoB,MAAMgoB,EAAK,CAClB,GAAIhoB,KAAOooB,GAAW,MAClB,MACJ,GAAIpoB,GAAG,OAAS,UAAW,CACvB+G,EAAQ/G,GAAI,yBAA0B,kEAAkE,EACxG,KACJ,CACJ,CACA8b,GAAM,MAAQsM,GAAW,MAAM,OAAS,MACxCrhB,EAAQqhB,GAAW,MAAO,sBAAuB,6FAA6F,CACtJ,OAEK3vC,KACD,WAAYA,IAASA,GAAM,SAAS,CAAC,IAAM,IAC3CsuB,EAAQtuB,GAAO,eAAgB,4BAA4BkwC,CAAM,EAAE,EAEnE5hB,EAAQqhB,GAAW,MAAO,eAAgB,0BAA0BO,CAAM,QAAQ,GAG1F,MAAMN,GAAY5vC,GACZivC,EAAY9wB,EAAKne,GAAO2vC,GAAYrhB,CAAO,EAC3CqhB,GAAW,MACPT,EAAiB/wB,EAAKwxB,GAAW,IAAKJ,EAAK,KAAMI,GAAYrhB,CAAO,EACpE,KACNshB,GACI3P,GAAQjgC,EAAK,GACbsuB,EAAQshB,GAAU,MAAO,gBAAiBI,EAAQ,EAEjDL,GAAW,UACZD,EAAQ,QACRA,EAAQ,SAAW;AAAA,EAAOC,GAAW,QAErCD,EAAQ,QAAUC,GAAW,SAErC,MAAM5J,GAAO,IAAID,GAAK4J,EAASE,EAAS,EAGxC,GAFIzxB,EAAI,QAAQ,mBACZ4nB,GAAK,SAAWuJ,GAChBhkC,EAAO,CACP,MAAM1K,GAAMuvC,EACRxB,GAAYxwB,EAAKvd,GAAI,MAAO8uC,CAAO,GACnCphB,EAAQmhB,GAAU,gBAAiB,yBAAyB,EAChE7uC,GAAI,MAAM,KAAKmlC,EAAI,CACvB,KACK,CACD,MAAMnlC,GAAM,IAAIsmC,GAAQ/oB,EAAI,MAAM,EAClCvd,GAAI,KAAO,GACXA,GAAI,MAAM,KAAKmlC,EAAI,EACnB,MAAMwK,IAAYX,IAAaF,GAAS,MACxC9uC,GAAI,MAAQ,CAAC8uC,EAAQ,MAAM,CAAC,EAAGa,GAAS,CAAC,EAAGA,GAAS,CAAC,CAAC,EACvDJ,EAAK,MAAM,KAAKvvC,EAAG,CACvB,CACA6J,EAASmlC,GAAYA,GAAU,MAAM,CAAC,EAAID,GAAW,GACzD,CACJ,CACA,MAAMa,EAAcllC,EAAQ,IAAM,IAC5B,CAAC+kB,EAAI,GAAGnG,CAAE,EAAIwkB,EAAG,IACvB,IAAI+B,EAAQhmC,EACZ,GAAI4lB,GAAI,SAAWmgB,EACfC,EAAQpgB,EAAG,OAASA,EAAG,OAAO,WAC7B,CACD,MAAMvD,EAAOojB,EAAO,CAAC,EAAE,YAAW,EAAKA,EAAO,UAAU,CAAC,EACnD1U,EAAM4U,EACN,GAAGtjB,CAAI,oBAAoB0jB,CAAW,GACtC,GAAG1jB,CAAI,qEAAqE0jB,CAAW,GAC7FliB,EAAQ7jB,EAAQ2lC,EAAS,eAAiB,aAAc5U,CAAG,EACvDnL,GAAMA,EAAG,OAAO,SAAW,GAC3BnG,EAAG,QAAQmG,CAAE,CACrB,CACA,GAAInG,EAAG,OAAS,EAAG,CACf,MAAM7N,EAAM0zB,GAAW7lB,EAAIumB,EAAOtyB,EAAI,QAAQ,OAAQmQ,CAAO,EACzDjS,EAAI,UACA8zB,EAAK,QACLA,EAAK,SAAW;AAAA,EAAO9zB,EAAI,QAE3B8zB,EAAK,QAAU9zB,EAAI,SAE3B8zB,EAAK,MAAQ,CAACzB,EAAG,OAAQ+B,EAAOp0B,EAAI,MAAM,CAC9C,MAEI8zB,EAAK,MAAQ,CAACzB,EAAG,OAAQ+B,EAAOA,CAAK,EAEzC,OAAON,CACX,CCpMA,SAASO,GAAkBC,EAAIxyB,EAAKowB,EAAOjgB,EAASqP,EAAS1C,EAAK,CAC9D,MAAMkV,EAAO5B,EAAM,OAAS,YACtBS,GAAgB2B,EAAIxyB,EAAKowB,EAAOjgB,EAAS2M,CAAG,EAC5CsT,EAAM,OAAS,YACXsB,GAAgBc,EAAIxyB,EAAKowB,EAAOjgB,EAAS2M,CAAG,EAC5CgV,GAAsBU,EAAIxyB,EAAKowB,EAAOjgB,EAAS2M,CAAG,EACtD2V,EAAOT,EAAK,YAGlB,OAAIxS,IAAY,KAAOA,IAAYiT,EAAK,SACpCT,EAAK,IAAMS,EAAK,QACTT,IAEPxS,IACAwS,EAAK,IAAMxS,GACRwS,EACX,CACA,SAASU,GAAkBF,EAAIxyB,EAAKowB,EAAOlL,EAAO/U,EAAS,CACvD,MAAMwiB,EAAWzN,EAAM,IACjB1F,EAAWmT,EAEX3yB,EAAI,WAAW,QAAQ2yB,EAAS,OAAQtV,GAAOlN,EAAQwiB,EAAU,qBAAsBtV,CAAG,CAAC,EAD3F,KAEN,GAAI+S,EAAM,OAAS,YAAa,CAC5B,KAAM,CAAE,OAAAhT,EAAQ,iBAAkBwV,CAAE,EAAK1N,EACnC2N,EAAWzV,GAAUuV,EACrBvV,EAAO,OAASuV,EAAS,OACrBvV,EACAuV,EACHvV,GAAUuV,EACbE,IAAa,CAACD,GAAMA,EAAG,OAASC,EAAS,SAEzC1iB,EAAQ0iB,EAAU,eADF,4CACyB,CAEjD,CACA,MAAMC,EAAU1C,EAAM,OAAS,YACzB,MACAA,EAAM,OAAS,YACX,MACAA,EAAM,MAAM,SAAW,IACnB,MACA,MAGd,GAAI,CAACuC,GACD,CAACnT,GACDA,IAAY,KACXA,IAAYuJ,GAAQ,SAAW+J,IAAY,OAC3CtT,IAAY6J,GAAQ,SAAWyJ,IAAY,MAC5C,OAAOP,GAAkBC,EAAIxyB,EAAKowB,EAAOjgB,EAASqP,CAAO,EAE7D,IAAI1C,EAAM9c,EAAI,OAAO,KAAK,KAAKa,GAAKA,EAAE,MAAQ2e,GAAW3e,EAAE,aAAeiyB,CAAO,EACjF,GAAI,CAAChW,EAAK,CACN,MAAM9R,EAAKhL,EAAI,OAAO,UAAUwf,CAAO,EACvC,GAAIxU,GAAI,aAAe8nB,EACnB9yB,EAAI,OAAO,KAAK,KAAK,OAAO,OAAO,CAAA,EAAIgL,EAAI,CAAE,QAAS,EAAK,CAAE,CAAC,EAC9D8R,EAAM9R,MAGN,QAAIA,EACAmF,EAAQwiB,EAAU,sBAAuB,GAAG3nB,EAAG,GAAG,aAAa8nB,CAAO,4BAA4B9nB,EAAG,YAAc,QAAQ,GAAI,EAAI,EAGnImF,EAAQwiB,EAAU,qBAAsB,mBAAmBnT,CAAO,GAAI,EAAI,EAEvE+S,GAAkBC,EAAIxyB,EAAKowB,EAAOjgB,EAASqP,CAAO,CAEjE,CACA,MAAMwS,EAAOO,GAAkBC,EAAIxyB,EAAKowB,EAAOjgB,EAASqP,EAAS1C,CAAG,EAC9DhoB,EAAMgoB,EAAI,UAAUkV,EAAM3U,GAAOlN,EAAQwiB,EAAU,qBAAsBtV,CAAG,EAAGrd,EAAI,OAAO,GAAKgyB,EAC/FvX,EAAOK,GAAOhmB,CAAG,EACjBA,EACA,IAAIuqB,GAAOvqB,CAAG,EACpB,OAAA2lB,EAAK,MAAQuX,EAAK,MAClBvX,EAAK,IAAM+E,EACP1C,GAAK,SACLrC,EAAK,OAASqC,EAAI,QACfrC,CACX,CCnFA,SAASsY,GAAmB/yB,EAAKgzB,EAAQ7iB,EAAS,CAC9C,MAAMlS,EAAQ+0B,EAAO,OACfpP,EAASqP,GAAuBD,EAAQhzB,EAAI,QAAQ,OAAQmQ,CAAO,EACzE,GAAI,CAACyT,EACD,MAAO,CAAE,MAAO,GAAI,KAAM,KAAM,QAAS,GAAI,MAAO,CAAC3lB,EAAOA,EAAOA,CAAK,CAAC,EAC7E,MAAMhM,EAAO2xB,EAAO,OAAS,IAAMvE,GAAO,aAAeA,GAAO,cAC1DrC,EAAQgW,EAAO,OAASE,GAAWF,EAAO,MAAM,EAAI,CAAA,EAE1D,IAAIG,EAAanW,EAAM,OACvB,QAASx3B,EAAIw3B,EAAM,OAAS,EAAGx3B,GAAK,EAAG,EAAEA,EAAG,CACxC,MAAMk0B,EAAUsD,EAAMx3B,CAAC,EAAE,CAAC,EAC1B,GAAIk0B,IAAY,IAAMA,IAAY,KAC9ByZ,EAAa3tC,MAEb,MACR,CAEA,GAAI2tC,IAAe,EAAG,CAClB,MAAMtxC,EAAQ+hC,EAAO,QAAU,KAAO5G,EAAM,OAAS,EAC/C;AAAA,EAAK,OAAO,KAAK,IAAI,EAAGA,EAAM,OAAS,CAAC,CAAC,EACzC,GACN,IAAI9e,EAAMD,EAAQ2lB,EAAO,OACzB,OAAIoP,EAAO,SACP90B,GAAO80B,EAAO,OAAO,QAClB,CAAE,MAAAnxC,EAAO,KAAAoQ,EAAM,QAAS2xB,EAAO,QAAS,MAAO,CAAC3lB,EAAOC,EAAKA,CAAG,CAAC,CAC3E,CAEA,IAAIk1B,EAAaJ,EAAO,OAASpP,EAAO,OACpCt3B,EAAS0mC,EAAO,OAASpP,EAAO,OAChCyP,EAAe,EACnB,QAAS7tC,EAAI,EAAGA,EAAI2tC,EAAY,EAAE3tC,EAAG,CACjC,KAAM,CAAC+6B,EAAQ7G,CAAO,EAAIsD,EAAMx3B,CAAC,EACjC,GAAIk0B,IAAY,IAAMA,IAAY,KAC1BkK,EAAO,SAAW,GAAKrD,EAAO,OAAS6S,IACvCA,EAAa7S,EAAO,YAEvB,CACGA,EAAO,OAAS6S,GAEhBjjB,EAAQ7jB,EAASi0B,EAAO,OAAQ,eADhB,iGACuC,EAEvDqD,EAAO,SAAW,IAClBwP,EAAa7S,EAAO,QACxB8S,EAAe7tC,EACX4tC,IAAe,GAAK,CAACpzB,EAAI,QAEzBmQ,EAAQ7jB,EAAQ,aADA,qDACqB,EAEzC,KACJ,CACAA,GAAUi0B,EAAO,OAAS7G,EAAQ,OAAS,CAC/C,CAEA,QAASl0B,EAAIw3B,EAAM,OAAS,EAAGx3B,GAAK2tC,EAAY,EAAE3tC,EAC1Cw3B,EAAMx3B,CAAC,EAAE,CAAC,EAAE,OAAS4tC,IACrBD,EAAa3tC,EAAI,GAEzB,IAAI3D,EAAQ,GACRuvC,EAAM,GACNkC,EAAmB,GAEvB,QAAS9tC,EAAI,EAAGA,EAAI6tC,EAAc,EAAE7tC,EAChC3D,GAASm7B,EAAMx3B,CAAC,EAAE,CAAC,EAAE,MAAM4tC,CAAU,EAAI;AAAA,EAC7C,QAAS5tC,EAAI6tC,EAAc7tC,EAAI2tC,EAAY,EAAE3tC,EAAG,CAC5C,GAAI,CAAC+6B,EAAQ7G,CAAO,EAAIsD,EAAMx3B,CAAC,EAC/B8G,GAAUi0B,EAAO,OAAS7G,EAAQ,OAAS,EAC3C,MAAM6Z,EAAO7Z,EAAQA,EAAQ,OAAS,CAAC,IAAM,KAI7C,GAHI6Z,IACA7Z,EAAUA,EAAQ,MAAM,EAAG,EAAE,GAE7BA,GAAW6G,EAAO,OAAS6S,EAAY,CAIvC,MAAMjiB,EAAU,2DAHJyS,EAAO,OACb,iCACA,YACwE,GAC9EzT,EAAQ7jB,EAASotB,EAAQ,QAAU6Z,EAAO,EAAI,GAAI,aAAcpiB,CAAO,EACvEoP,EAAS,EACb,CACItuB,IAASotB,GAAO,eAChBx9B,GAASuvC,EAAM7Q,EAAO,MAAM6S,CAAU,EAAI1Z,EAC1C0X,EAAM;AAAA,GAED7Q,EAAO,OAAS6S,GAAc1Z,EAAQ,CAAC,IAAM,KAE9C0X,IAAQ,IACRA,EAAM;AAAA,EACD,CAACkC,GAAoBlC,IAAQ;AAAA,IAClCA,EAAM;AAAA;AAAA,GACVvvC,GAASuvC,EAAM7Q,EAAO,MAAM6S,CAAU,EAAI1Z,EAC1C0X,EAAM;AAAA,EACNkC,EAAmB,IAEd5Z,IAAY,GAEb0X,IAAQ;AAAA,EACRvvC,GAAS;AAAA,EAETuvC,EAAM;AAAA,GAGVvvC,GAASuvC,EAAM1X,EACf0X,EAAM,IACNkC,EAAmB,GAE3B,CACA,OAAQ1P,EAAO,MAAK,CAChB,IAAK,IACD,MACJ,IAAK,IACD,QAASp+B,EAAI2tC,EAAY3tC,EAAIw3B,EAAM,OAAQ,EAAEx3B,EACzC3D,GAAS;AAAA,EAAOm7B,EAAMx3B,CAAC,EAAE,CAAC,EAAE,MAAM4tC,CAAU,EAC5CvxC,EAAMA,EAAM,OAAS,CAAC,IAAM;AAAA,IAC5BA,GAAS;AAAA,GACb,MACJ,QACIA,GAAS;AAAA,CACrB,CACI,MAAMqc,EAAMD,EAAQ2lB,EAAO,OAASoP,EAAO,OAAO,OAClD,MAAO,CAAE,MAAAnxC,EAAO,KAAAoQ,EAAM,QAAS2xB,EAAO,QAAS,MAAO,CAAC3lB,EAAOC,EAAKA,CAAG,CAAC,CAC3E,CACA,SAAS+0B,GAAuB,CAAE,OAAA3mC,EAAQ,MAAA44B,CAAK,EAAIsO,EAAQrjB,EAAS,CAEhE,GAAI+U,EAAM,CAAC,EAAE,OAAS,sBAClB,OAAA/U,EAAQ+U,EAAM,CAAC,EAAG,aAAc,+BAA+B,EACxD,KAEX,KAAM,CAAE,OAAArrB,CAAM,EAAKqrB,EAAM,CAAC,EACpBpE,EAAOjnB,EAAO,CAAC,EACrB,IAAI0mB,EAAS,EACT+C,EAAQ,GACRt4B,EAAQ,GACZ,QAASxF,EAAI,EAAGA,EAAIqU,EAAO,OAAQ,EAAErU,EAAG,CACpC,MAAMy2B,EAAKpiB,EAAOrU,CAAC,EACnB,GAAI,CAAC89B,IAAUrH,IAAO,KAAOA,IAAO,KAChCqH,EAAQrH,MACP,CACD,MAAMnb,EAAI,OAAOmb,CAAE,EACf,CAACsE,GAAUzf,EACXyf,EAASzf,EACJ9V,IAAU,KACfA,EAAQsB,EAAS9G,EACzB,CACJ,CACIwF,IAAU,IACVmlB,EAAQnlB,EAAO,mBAAoB,kDAAkD6O,CAAM,EAAE,EACjG,IAAIi2B,EAAW,GACXxP,EAAU,GACVmT,EAAS55B,EAAO,OACpB,QAASrU,EAAI,EAAGA,EAAI0/B,EAAM,OAAQ,EAAE1/B,EAAG,CACnC,MAAM4qC,EAAQlL,EAAM1/B,CAAC,EACrB,OAAQ4qC,EAAM,KAAI,CACd,IAAK,QACDN,EAAW,GAEf,IAAK,UACD2D,GAAUrD,EAAM,OAAO,OACvB,MACJ,IAAK,UACGoD,GAAU,CAAC1D,GAEX3f,EAAQigB,EAAO,eADC,wEACsB,EAE1CqD,GAAUrD,EAAM,OAAO,OACvB9P,EAAU8P,EAAM,OAAO,UAAU,CAAC,EAClC,MACJ,IAAK,QACDjgB,EAAQigB,EAAO,mBAAoBA,EAAM,OAAO,EAChDqD,GAAUrD,EAAM,OAAO,OACvB,MAEJ,QAAS,CACL,MAAMjf,EAAU,4CAA4Cif,EAAM,IAAI,GACtEjgB,EAAQigB,EAAO,mBAAoBjf,CAAO,EAC1C,MAAMuiB,EAAKtD,EAAM,OACbsD,GAAM,OAAOA,GAAO,WACpBD,GAAUC,EAAG,OACrB,CACZ,CACI,CACA,MAAO,CAAE,KAAA5S,EAAM,OAAAP,EAAQ,MAAA+C,EAAO,QAAAhD,EAAS,OAAAmT,CAAM,CACjD,CAEA,SAASP,GAAWr5B,EAAQ,CACxB,MAAM0nB,EAAQ1nB,EAAO,MAAM,QAAQ,EAC7B9Q,EAAQw4B,EAAM,CAAC,EACftf,EAAIlZ,EAAM,MAAM,OAAO,EAIvBi0B,EAAQ,CAHA/a,IAAI,CAAC,EACb,CAACA,EAAE,CAAC,EAAGlZ,EAAM,MAAMkZ,EAAE,CAAC,EAAE,MAAM,CAAC,EAC/B,CAAC,GAAIlZ,CAAK,CACI,EACpB,QAASvD,EAAI,EAAGA,EAAI+7B,EAAM,OAAQ/7B,GAAK,EACnCw3B,EAAM,KAAK,CAACuE,EAAM/7B,CAAC,EAAG+7B,EAAM/7B,EAAI,CAAC,CAAC,CAAC,EACvC,OAAOw3B,CACX,CChMA,SAAS2W,GAAkBX,EAAQQ,EAAQrjB,EAAS,CAChD,KAAM,CAAE,OAAA7jB,EAAQ,KAAA2F,EAAM,OAAA4H,EAAQ,IAAAqE,CAAG,EAAK80B,EACtC,IAAItO,EACA7iC,EACJ,MAAM8oC,EAAW,CAACiJ,EAAKpR,EAAMnF,IAAQlN,EAAQ7jB,EAASsnC,EAAKpR,EAAMnF,CAAG,EACpE,OAAQprB,EAAI,CACR,IAAK,SACDyyB,EAAQrF,GAAO,MACfx9B,EAAQgyC,GAAWh6B,EAAQ8wB,CAAQ,EACnC,MACJ,IAAK,uBACDjG,EAAQrF,GAAO,aACfx9B,EAAQiyC,GAAkBj6B,EAAQ8wB,CAAQ,EAC1C,MACJ,IAAK,uBACDjG,EAAQrF,GAAO,aACfx9B,EAAQkyC,GAAkBl6B,EAAQ8wB,CAAQ,EAC1C,MAEJ,QACI,OAAAxa,EAAQ6iB,EAAQ,mBAAoB,4CAA4C/gC,CAAI,EAAE,EAC/E,CACH,MAAO,GACP,KAAM,KACN,QAAS,GACT,MAAO,CAAC3F,EAAQA,EAASuN,EAAO,OAAQvN,EAASuN,EAAO,MAAM,CAC9E,CACA,CACI,MAAMm6B,EAAW1nC,EAASuN,EAAO,OAC3BkK,EAAK6tB,GAAW1zB,EAAK81B,EAAUR,EAAQrjB,CAAO,EACpD,MAAO,CACH,MAAAtuB,EACA,KAAM6iC,EACN,QAAS3gB,EAAG,QACZ,MAAO,CAACzX,EAAQ0nC,EAAUjwB,EAAG,MAAM,CAC3C,CACA,CACA,SAAS8vB,GAAWh6B,EAAQsW,EAAS,CACjC,IAAI8jB,EAAU,GACd,OAAQp6B,EAAO,CAAC,EAAC,CAEb,IAAK,IACDo6B,EAAU,kBACV,MACJ,IAAK,IACDA,EAAU,6BACV,MACJ,IAAK,IACDA,EAAU,kCACV,MACJ,IAAK,IACL,IAAK,IAAK,CACNA,EAAU,0BAA0Bp6B,EAAO,CAAC,CAAC,GAC7C,KACJ,CACA,IAAK,IACL,IAAK,IAAK,CACNo6B,EAAU,sBAAsBp6B,EAAO,CAAC,CAAC,GACzC,KACJ,CACR,CACI,OAAIo6B,GACA9jB,EAAQ,EAAG,mBAAoB,iCAAiC8jB,CAAO,EAAE,EACtEC,GAAUr6B,CAAM,CAC3B,CACA,SAASi6B,GAAkBj6B,EAAQsW,EAAS,CACxC,OAAItW,EAAOA,EAAO,OAAS,CAAC,IAAM,KAAOA,EAAO,SAAW,IACvDsW,EAAQtW,EAAO,OAAQ,eAAgB,wBAAwB,EAC5Dq6B,GAAUr6B,EAAO,MAAM,EAAG,EAAE,CAAC,EAAE,QAAQ,MAAO,GAAG,CAC5D,CACA,SAASq6B,GAAUr6B,EAAQ,CAQvB,IAAI9Q,EAAOuzB,EACX,GAAI,CACAvzB,EAAQ,IAAI,OAAO;AAAA,EAA8B,IAAI,EACrDuzB,EAAO,IAAI,OAAO;AAAA,EAAyC,IAAI,CACnE,MACM,CACFvzB,EAAQ,qBACRuzB,EAAO,0BACX,CACA,IAAImD,EAAQ12B,EAAM,KAAK8Q,CAAM,EAC7B,GAAI,CAAC4lB,EACD,OAAO5lB,EACX,IAAI/E,EAAM2qB,EAAM,CAAC,EACb2R,EAAM,IACNtC,EAAM/lC,EAAM,UAEhB,IADAuzB,EAAK,UAAYwS,EACTrP,EAAQnD,EAAK,KAAKziB,CAAM,GACxB4lB,EAAM,CAAC,IAAM,GACT2R,IAAQ;AAAA,EACRt8B,GAAOs8B,EAEPA,EAAM;AAAA,GAGVt8B,GAAOs8B,EAAM3R,EAAM,CAAC,EACpB2R,EAAM,KAEVtC,EAAMxS,EAAK,UAEf,MAAM1tB,EAAO,eACb,OAAAA,EAAK,UAAYkgC,EACjBrP,EAAQ7wB,EAAK,KAAKiL,CAAM,EACjB/E,EAAMs8B,GAAO3R,IAAQ,CAAC,GAAK,GACtC,CACA,SAASsU,GAAkBl6B,EAAQsW,EAAS,CACxC,IAAIrb,EAAM,GACV,QAAS,EAAI,EAAG,EAAI+E,EAAO,OAAS,EAAG,EAAE,EAAG,CACxC,MAAMoiB,EAAKpiB,EAAO,CAAC,EACnB,GAAI,EAAAoiB,IAAO,MAAQpiB,EAAO,EAAI,CAAC,IAAM;AAAA,GAErC,GAAIoiB,IAAO;AAAA,EAAM,CACb,KAAM,CAAE,KAAA2F,EAAM,OAAAt1B,CAAM,EAAK6nC,GAAYt6B,EAAQ,CAAC,EAC9C/E,GAAO8sB,EACP,EAAIt1B,CACR,SACS2vB,IAAO,KAAM,CAClB,IAAIzyB,EAAOqQ,EAAO,EAAE,CAAC,EACrB,MAAMu6B,EAAKC,GAAY7qC,CAAI,EAC3B,GAAI4qC,EACAt/B,GAAOs/B,UACF5qC,IAAS;AAAA,EAGd,IADAA,EAAOqQ,EAAO,EAAI,CAAC,EACZrQ,IAAS,KAAOA,IAAS,KAC5BA,EAAOqQ,EAAO,EAAE,EAAI,CAAC,UAEpBrQ,IAAS,MAAQqQ,EAAO,EAAI,CAAC,IAAM;AAAA,EAGxC,IADArQ,EAAOqQ,EAAO,EAAE,EAAI,CAAC,EACdrQ,IAAS,KAAOA,IAAS,KAC5BA,EAAOqQ,EAAO,EAAE,EAAI,CAAC,UAEpBrQ,IAAS,KAAOA,IAAS,KAAOA,IAAS,IAAK,CACnD,MAAMiqC,EAAS,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGjqC,CAAI,EACxCsL,GAAOw/B,GAAcz6B,EAAQ,EAAI,EAAG45B,EAAQtjB,CAAO,EACnD,GAAKsjB,CACT,KACK,CACD,MAAM1gC,EAAM8G,EAAO,OAAO,EAAI,EAAG,CAAC,EAClCsW,EAAQ,EAAI,EAAG,gBAAiB,2BAA2Bpd,CAAG,EAAE,EAChE+B,GAAO/B,CACX,CACJ,SACSkpB,IAAO,KAAOA,IAAO,IAAM,CAEhC,MAAMsY,EAAU,EAChB,IAAI/qC,EAAOqQ,EAAO,EAAI,CAAC,EACvB,KAAOrQ,IAAS,KAAOA,IAAS,KAC5BA,EAAOqQ,EAAO,EAAE,EAAI,CAAC,EACrBrQ,IAAS;AAAA,GAAQ,EAAEA,IAAS,MAAQqQ,EAAO,EAAI,CAAC,IAAM;AAAA,KACtD/E,GAAO,EAAIy/B,EAAU16B,EAAO,MAAM06B,EAAS,EAAI,CAAC,EAAItY,EAC5D,MAEInnB,GAAOmnB,CAEf,CACA,OAAIpiB,EAAOA,EAAO,OAAS,CAAC,IAAM,KAAOA,EAAO,SAAW,IACvDsW,EAAQtW,EAAO,OAAQ,eAAgB,wBAAwB,EAC5D/E,CACX,CAKA,SAASq/B,GAAYt6B,EAAQvN,EAAQ,CACjC,IAAIs1B,EAAO,GACP3F,EAAKpiB,EAAOvN,EAAS,CAAC,EAC1B,MAAO2vB,IAAO,KAAOA,IAAO,KAAQA,IAAO;AAAA,GAAQA,IAAO,OAClD,EAAAA,IAAO,MAAQpiB,EAAOvN,EAAS,CAAC,IAAM;AAAA,IAEtC2vB,IAAO;AAAA,IACP2F,GAAQ;AAAA,GACZt1B,GAAU,EACV2vB,EAAKpiB,EAAOvN,EAAS,CAAC,EAE1B,OAAKs1B,IACDA,EAAO,KACJ,CAAE,KAAAA,EAAM,OAAAt1B,CAAM,CACzB,CACA,MAAM+nC,GAAc,CAChB,EAAK,KACL,EAAG,OACH,EAAG,KACH,EAAG,OACH,EAAG,KACH,EAAG;AAAA,EACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,SACH,EAAG,SACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,KACN,IAAM,GACV,EACA,SAASC,GAAcz6B,EAAQvN,EAAQmnC,EAAQtjB,EAAS,CACpD,MAAMikB,EAAKv6B,EAAO,OAAOvN,EAAQmnC,CAAM,EAEjCjR,EADK4R,EAAG,SAAWX,GAAU,iBAAiB,KAAKW,CAAE,EACzC,SAASA,EAAI,EAAE,EAAI,IACrC,GAAI,MAAM5R,CAAI,EAAG,CACb,MAAMzvB,EAAM8G,EAAO,OAAOvN,EAAS,EAAGmnC,EAAS,CAAC,EAChD,OAAAtjB,EAAQ7jB,EAAS,EAAG,gBAAiB,2BAA2ByG,CAAG,EAAE,EAC9DA,CACX,CACA,OAAO,OAAO,cAAcyvB,CAAI,CACpC,CCvNA,SAASgS,GAAcx0B,EAAKowB,EAAOuC,EAAUxiB,EAAS,CAClD,KAAM,CAAE,MAAAtuB,EAAO,KAAAoQ,EAAM,QAAAquB,EAAS,MAAAmU,CAAK,EAAKrE,EAAM,OAAS,eACjD2C,GAAmB/yB,EAAKowB,EAAOjgB,CAAO,EACtCwjB,GAAkBvD,EAAOpwB,EAAI,QAAQ,OAAQmQ,CAAO,EACpDqP,EAAUmT,EACV3yB,EAAI,WAAW,QAAQ2yB,EAAS,OAAQtV,GAAOlN,EAAQwiB,EAAU,qBAAsBtV,CAAG,CAAC,EAC3F,KACN,IAAIP,EACA9c,EAAI,QAAQ,YAAcA,EAAI,MAC9B8c,EAAM9c,EAAI,OAAOqa,EAAM,EAElBmF,EACL1C,EAAM4X,GAAoB10B,EAAI,OAAQne,EAAO29B,EAASmT,EAAUxiB,CAAO,EAClEigB,EAAM,OAAS,SACpBtT,EAAM6X,GAAoB30B,EAAKne,EAAOuuC,EAAOjgB,CAAO,EAEpD2M,EAAM9c,EAAI,OAAOqa,EAAM,EAC3B,IAAI2Y,EACJ,GAAI,CACA,MAAMl+B,EAAMgoB,EAAI,QAAQj7B,EAAOw7B,GAAOlN,EAAQwiB,GAAYvC,EAAO,qBAAsB/S,CAAG,EAAGrd,EAAI,OAAO,EACxGgzB,EAASrY,GAAS7lB,CAAG,EAAIA,EAAM,IAAIuqB,GAAOvqB,CAAG,CACjD,OACO9J,EAAO,CACV,MAAMqyB,EAAMryB,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACjEmlB,EAAQwiB,GAAYvC,EAAO,qBAAsB/S,CAAG,EACpD2V,EAAS,IAAI3T,GAAOx9B,CAAK,CAC7B,CACA,OAAAmxC,EAAO,MAAQyB,EACfzB,EAAO,OAASnxC,EACZoQ,IACA+gC,EAAO,KAAO/gC,GACdutB,IACAwT,EAAO,IAAMxT,GACb1C,EAAI,SACJkW,EAAO,OAASlW,EAAI,QACpBwD,IACA0S,EAAO,QAAU1S,GACd0S,CACX,CACA,SAAS0B,GAAoB5U,EAAQj+B,EAAO29B,EAASmT,EAAUxiB,EAAS,CACpE,GAAIqP,IAAY,IACZ,OAAOM,EAAOzF,EAAM,EACxB,MAAMua,EAAgB,CAAA,EACtB,UAAW9X,KAAOgD,EAAO,KACrB,GAAI,CAAChD,EAAI,YAAcA,EAAI,MAAQ0C,EAC/B,GAAI1C,EAAI,SAAWA,EAAI,KACnB8X,EAAc,KAAK9X,CAAG,MAEtB,QAAOA,EAGnB,UAAWA,KAAO8X,EACd,GAAI9X,EAAI,MAAM,KAAKj7B,CAAK,EACpB,OAAOi7B,EACf,MAAM9R,EAAK8U,EAAO,UAAUN,CAAO,EACnC,OAAIxU,GAAM,CAACA,EAAG,YAGV8U,EAAO,KAAK,KAAK,OAAO,OAAO,CAAA,EAAI9U,EAAI,CAAE,QAAS,GAAO,KAAM,MAAS,CAAE,CAAC,EACpEA,IAEXmF,EAAQwiB,EAAU,qBAAsB,mBAAmBnT,CAAO,GAAIA,IAAY,uBAAuB,EAClGM,EAAOzF,EAAM,EACxB,CACA,SAASsa,GAAoB,CAAE,MAAAE,EAAO,WAAAC,EAAY,OAAAhV,CAAM,EAAIj+B,EAAOuuC,EAAOjgB,EAAS,CAC/E,MAAM2M,EAAMgD,EAAO,KAAK,KAAKhD,IAAQA,EAAI,UAAY,IAAS+X,GAAS/X,EAAI,UAAY,QACnFA,EAAI,MAAM,KAAKj7B,CAAK,CAAC,GAAKi+B,EAAOzF,EAAM,EAC3C,GAAIyF,EAAO,OAAQ,CACf,MAAMwE,EAASxE,EAAO,OAAO,KAAKhD,GAAOA,EAAI,SAAWA,EAAI,MAAM,KAAKj7B,CAAK,CAAC,GACzEi+B,EAAOzF,EAAM,EACjB,GAAIyC,EAAI,MAAQwH,EAAO,IAAK,CACxB,MAAMoP,EAAKoB,EAAW,UAAUhY,EAAI,GAAG,EACjCoJ,EAAK4O,EAAW,UAAUxQ,EAAO,GAAG,EACpCjH,EAAM,iCAAiCqW,CAAE,OAAOxN,CAAE,GACxD/V,EAAQigB,EAAO,qBAAsB/S,EAAK,EAAI,CAClD,CACJ,CACA,OAAOP,CACX,CCnFA,SAASiY,GAAoBzoC,EAAQ0oC,EAAQlG,EAAK,CAC9C,GAAIkG,EAAQ,CACRlG,IAAQA,EAAMkG,EAAO,QACrB,QAAS,EAAIlG,EAAM,EAAG,GAAK,EAAG,EAAE,EAAG,CAC/B,IAAI1lB,EAAK4rB,EAAO,CAAC,EACjB,OAAQ5rB,EAAG,KAAI,CACX,IAAK,QACL,IAAK,UACL,IAAK,UACD9c,GAAU8c,EAAG,OAAO,OACpB,QACpB,CAIY,IADAA,EAAK4rB,EAAO,EAAE,CAAC,EACR5rB,GAAI,OAAS,SAChB9c,GAAU8c,EAAG,OAAO,OACpBA,EAAK4rB,EAAO,EAAE,CAAC,EAEnB,KACJ,CACJ,CACA,OAAO1oC,CACX,CChBA,MAAMkmC,GAAK,CAAE,YAAA1B,GAAa,iBAAAC,EAAgB,EAC1C,SAASD,GAAY9wB,EAAKowB,EAAOlL,EAAO/U,EAAS,CAC7C,MAAM0kB,EAAQ70B,EAAI,MACZ,CAAE,YAAA4vB,EAAa,QAAAtP,EAAS,OAAAlD,EAAQ,IAAAN,CAAG,EAAKoI,EAC9C,IAAIzK,EACAwa,EAAa,GACjB,OAAQ7E,EAAM,KAAI,CACd,IAAK,QACD3V,EAAOya,GAAal1B,EAAKowB,EAAOjgB,CAAO,GACnCiN,GAAUN,IACV3M,EAAQigB,EAAO,cAAe,+CAA+C,EACjF,MACJ,IAAK,SACL,IAAK,uBACL,IAAK,uBACL,IAAK,eACD3V,EAAO+Z,GAAcx0B,EAAKowB,EAAOtT,EAAK3M,CAAO,EACzCiN,IACA3C,EAAK,OAAS2C,EAAO,OAAO,UAAU,CAAC,GAC3C,MACJ,IAAK,YACL,IAAK,YACL,IAAK,kBACD,GAAI,CACA3C,EAAOiY,GAAkBF,GAAIxyB,EAAKowB,EAAOlL,EAAO/U,CAAO,EACnDiN,IACA3C,EAAK,OAAS2C,EAAO,OAAO,UAAU,CAAC,EAC/C,OACOpyB,EAAO,CAEV,MAAMmmB,EAAUnmB,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACrEmlB,EAAQigB,EAAO,sBAAuBjf,CAAO,CACjD,CACA,MACJ,QAAS,CACL,MAAMA,EAAUif,EAAM,OAAS,QACzBA,EAAM,QACN,4BAA4BA,EAAM,IAAI,IAC5CjgB,EAAQigB,EAAO,mBAAoBjf,CAAO,EAC1C8jB,EAAa,EACjB,CACR,CACI,OAAAxa,IAASA,EAAOsW,GAAiB/wB,EAAKowB,EAAM,OAAQ,OAAW,KAAMlL,EAAO/U,CAAO,GAC/EiN,GAAU3C,EAAK,SAAW,IAC1BtK,EAAQiN,EAAQ,YAAa,kCAAkC,EAC/DyX,GACA70B,EAAI,QAAQ,aACX,CAAC2a,GAASF,CAAI,GACX,OAAOA,EAAK,OAAU,UACrBA,EAAK,KAAOA,EAAK,MAAQ,0BAE9BtK,EAAQ2M,GAAOsT,EAAO,iBADV,2CAC+B,EAE3CR,IACAnV,EAAK,YAAc,IACnB6F,IACI8P,EAAM,OAAS,UAAYA,EAAM,SAAW,GAC5C3V,EAAK,QAAU6F,EAEf7F,EAAK,cAAgB6F,GAGzBtgB,EAAI,QAAQ,kBAAoBi1B,IAChCxa,EAAK,SAAW2V,GACb3V,CACX,CACA,SAASsW,GAAiB/wB,EAAK1T,EAAQ0oC,EAAQlG,EAAK,CAAE,YAAAc,EAAa,QAAAtP,EAAS,OAAAlD,EAAQ,IAAAN,EAAK,IAAA5e,CAAG,EAAIiS,EAAS,CACrG,MAAMigB,EAAQ,CACV,KAAM,SACN,OAAQ2E,GAAoBzoC,EAAQ0oC,EAAQlG,CAAG,EAC/C,OAAQ,GACR,OAAQ,EAChB,EACUrU,EAAO+Z,GAAcx0B,EAAKowB,EAAOtT,EAAK3M,CAAO,EACnD,OAAIiN,IACA3C,EAAK,OAAS2C,EAAO,OAAO,UAAU,CAAC,EACnC3C,EAAK,SAAW,IAChBtK,EAAQiN,EAAQ,YAAa,kCAAkC,GAEnEwS,IACAnV,EAAK,YAAc,IACnB6F,IACA7F,EAAK,QAAU6F,EACf7F,EAAK,MAAM,CAAC,EAAIvc,GAEbuc,CACX,CACA,SAASya,GAAa,CAAE,QAAAp6B,GAAW,CAAE,OAAAxO,EAAQ,OAAAuN,EAAQ,IAAAqE,CAAG,EAAIiS,EAAS,CACjE,MAAMglB,EAAQ,IAAIzW,GAAM7kB,EAAO,UAAU,CAAC,CAAC,EACvCs7B,EAAM,SAAW,IACjBhlB,EAAQ7jB,EAAQ,YAAa,iCAAiC,EAC9D6oC,EAAM,OAAO,SAAS,GAAG,GACzBhlB,EAAQ7jB,EAASuN,EAAO,OAAS,EAAG,YAAa,iCAAkC,EAAI,EAC3F,MAAMm6B,EAAW1nC,EAASuN,EAAO,OAC3BkK,EAAK6tB,GAAW1zB,EAAK81B,EAAUl5B,EAAQ,OAAQqV,CAAO,EAC5D,OAAAglB,EAAM,MAAQ,CAAC7oC,EAAQ0nC,EAAUjwB,EAAG,MAAM,EACtCA,EAAG,UACHoxB,EAAM,QAAUpxB,EAAG,SAChBoxB,CACX,CCrGA,SAASC,GAAWt6B,EAASg6B,EAAY,CAAE,OAAAxoC,EAAQ,MAAA2R,EAAO,MAAApc,EAAO,IAAAqc,CAAG,EAAIiS,EAAS,CAC7E,MAAMklB,EAAO,OAAO,OAAO,CAAE,YAAaP,CAAU,EAAIh6B,CAAO,EACzDiiB,EAAM,IAAIqR,GAAS,OAAWiH,CAAI,EAClCr1B,EAAM,CACR,MAAO,GACP,OAAQ,GACR,WAAY+c,EAAI,WAChB,QAASA,EAAI,QACb,OAAQA,EAAI,MACpB,EACUmI,EAAQqK,GAAatxB,EAAO,CAC9B,UAAW,YACX,KAAMpc,GAASqc,IAAM,CAAC,EACtB,OAAA5R,EACA,QAAA6jB,EACA,aAAc,EACd,eAAgB,EACxB,CAAK,EACG+U,EAAM,QACNnI,EAAI,WAAW,SAAW,GACtBl7B,IACCA,EAAM,OAAS,aAAeA,EAAM,OAAS,cAC9C,CAACqjC,EAAM,YACP/U,EAAQ+U,EAAM,IAAK,eAAgB,uEAAuE,GAGlHnI,EAAI,SAAWl7B,EACTivC,GAAY9wB,EAAKne,EAAOqjC,EAAO/U,CAAO,EACtC4gB,GAAiB/wB,EAAKklB,EAAM,IAAKjnB,EAAO,KAAMinB,EAAO/U,CAAO,EAClE,MAAMmlB,EAAavY,EAAI,SAAS,MAAM,CAAC,EACjChZ,EAAK6tB,GAAW1zB,EAAKo3B,EAAY,GAAOnlB,CAAO,EACrD,OAAIpM,EAAG,UACHgZ,EAAI,QAAUhZ,EAAG,SACrBgZ,EAAI,MAAQ,CAACzwB,EAAQgpC,EAAYvxB,EAAG,MAAM,EACnCgZ,CACX,CCjCA,SAASwY,GAAYtW,EAAK,CACtB,GAAI,OAAOA,GAAQ,SACf,MAAO,CAACA,EAAKA,EAAM,CAAC,EACxB,GAAI,MAAM,QAAQA,CAAG,EACjB,OAAOA,EAAI,SAAW,EAAIA,EAAM,CAACA,EAAI,CAAC,EAAGA,EAAI,CAAC,CAAC,EACnD,KAAM,CAAE,OAAA3yB,EAAQ,OAAAuN,CAAM,EAAKolB,EAC3B,MAAO,CAAC3yB,EAAQA,GAAU,OAAOuN,GAAW,SAAWA,EAAO,OAAS,EAAE,CAC7E,CACA,SAAS27B,GAAaC,EAAS,CAC3B,IAAInV,EAAU,GACVoV,EAAY,GACZC,EAAiB,GACrB,QAASnwC,EAAI,EAAGA,EAAIiwC,EAAQ,OAAQ,EAAEjwC,EAAG,CACrC,MAAMqU,EAAS47B,EAAQjwC,CAAC,EACxB,OAAQqU,EAAO,CAAC,EAAC,CACb,IAAK,IACDymB,IACKA,IAAY,GAAK,GAAKqV,EAAiB;AAAA;AAAA,EAAS;AAAA,IAC5C97B,EAAO,UAAU,CAAC,GAAK,KAChC67B,EAAY,GACZC,EAAiB,GACjB,MACJ,IAAK,IACGF,EAAQjwC,EAAI,CAAC,IAAI,CAAC,IAAM,MACxBA,GAAK,GACTkwC,EAAY,GACZ,MACJ,QAESA,IACDC,EAAiB,IACrBD,EAAY,EAC5B,CACI,CACA,MAAO,CAAE,QAAApV,EAAS,eAAAqV,CAAc,CACpC,CAYA,MAAMC,EAAS,CACX,YAAY96B,EAAU,GAAI,CACtB,KAAK,IAAM,KACX,KAAK,aAAe,GACpB,KAAK,QAAU,CAAA,EACf,KAAK,OAAS,CAAA,EACd,KAAK,SAAW,CAAA,EAChB,KAAK,QAAU,CAACjB,EAAQ2oB,EAAMrR,EAASwV,IAAY,CAC/C,MAAMmI,EAAMyG,GAAY17B,CAAM,EAC1B8sB,EACA,KAAK,SAAS,KAAK,IAAIqI,GAAYF,EAAKtM,EAAMrR,CAAO,CAAC,EAEtD,KAAK,OAAO,KAAK,IAAI4d,GAAeD,EAAKtM,EAAMrR,CAAO,CAAC,CAC/D,EAEA,KAAK,WAAa,IAAI+K,GAAW,CAAE,QAASphB,EAAQ,SAAW,MAAO,EACtE,KAAK,QAAUA,CACnB,CACA,SAASiiB,EAAK8Y,EAAU,CACpB,KAAM,CAAE,QAAAvV,EAAS,eAAAqV,CAAc,EAAKH,GAAa,KAAK,OAAO,EAE7D,GAAIlV,EAAS,CACT,MAAM6N,EAAKpR,EAAI,SACf,GAAI8Y,EACA9Y,EAAI,QAAUA,EAAI,QAAU,GAAGA,EAAI,OAAO;AAAA,EAAKuD,CAAO,GAAKA,UAEtDqV,GAAkB5Y,EAAI,WAAW,UAAY,CAACoR,EACnDpR,EAAI,cAAgBuD,UAEfzF,GAAasT,CAAE,GAAK,CAACA,EAAG,MAAQA,EAAG,MAAM,OAAS,EAAG,CAC1D,IAAIllB,EAAKklB,EAAG,MAAM,CAAC,EACf13B,GAAOwS,CAAE,IACTA,EAAKA,EAAG,KACZ,MAAMpO,EAAKoO,EAAG,cACdA,EAAG,cAAgBpO,EAAK,GAAGylB,CAAO;AAAA,EAAKzlB,CAAE,GAAKylB,CAClD,KACK,CACD,MAAMzlB,EAAKszB,EAAG,cACdA,EAAG,cAAgBtzB,EAAK,GAAGylB,CAAO;AAAA,EAAKzlB,CAAE,GAAKylB,CAClD,CACJ,CACIuV,GACA,MAAM,UAAU,KAAK,MAAM9Y,EAAI,OAAQ,KAAK,MAAM,EAClD,MAAM,UAAU,KAAK,MAAMA,EAAI,SAAU,KAAK,QAAQ,IAGtDA,EAAI,OAAS,KAAK,OAClBA,EAAI,SAAW,KAAK,UAExB,KAAK,QAAU,CAAA,EACf,KAAK,OAAS,CAAA,EACd,KAAK,SAAW,CAAA,CACpB,CAMA,YAAa,CACT,MAAO,CACH,QAASyY,GAAa,KAAK,OAAO,EAAE,QACpC,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,SAAU,KAAK,QAC3B,CACI,CAOA,CAAC,QAAQhG,EAAQsG,EAAW,GAAOC,EAAY,GAAI,CAC/C,UAAW3F,KAASZ,EAChB,MAAO,KAAK,KAAKY,CAAK,EAC1B,MAAO,KAAK,IAAI0F,EAAUC,CAAS,CACvC,CAEA,CAAC,KAAK3F,EAAO,CACT,OAAQA,EAAM,KAAI,CACd,IAAK,YACD,KAAK,WAAW,IAAIA,EAAM,OAAQ,CAAC9jC,EAAQ6kB,EAASwV,IAAY,CAC5D,MAAMmI,EAAMyG,GAAYnF,CAAK,EAC7BtB,EAAI,CAAC,GAAKxiC,EACV,KAAK,QAAQwiC,EAAK,gBAAiB3d,EAASwV,CAAO,CACvD,CAAC,EACD,KAAK,QAAQ,KAAKyJ,EAAM,MAAM,EAC9B,KAAK,aAAe,GACpB,MACJ,IAAK,WAAY,CACb,MAAMrT,EAAMqY,GAAW,KAAK,QAAS,KAAK,WAAYhF,EAAO,KAAK,OAAO,EACrE,KAAK,cAAgB,CAACrT,EAAI,WAAW,UACrC,KAAK,QAAQqT,EAAO,eAAgB,iDAAiD,EACzF,KAAK,SAASrT,EAAK,EAAK,EACpB,KAAK,MACL,MAAM,KAAK,KACf,KAAK,IAAMA,EACX,KAAK,aAAe,GACpB,KACJ,CACA,IAAK,kBACL,IAAK,QACD,MACJ,IAAK,UACL,IAAK,UACD,KAAK,QAAQ,KAAKqT,EAAM,MAAM,EAC9B,MACJ,IAAK,QAAS,CACV,MAAM/S,EAAM+S,EAAM,OACZ,GAAGA,EAAM,OAAO,KAAK,KAAK,UAAUA,EAAM,MAAM,CAAC,GACjDA,EAAM,QACNplC,EAAQ,IAAI+jC,GAAewG,GAAYnF,CAAK,EAAG,mBAAoB/S,CAAG,EACxE,KAAK,cAAgB,CAAC,KAAK,IAC3B,KAAK,OAAO,KAAKryB,CAAK,EAEtB,KAAK,IAAI,OAAO,KAAKA,CAAK,EAC9B,KACJ,CACA,IAAK,UAAW,CACZ,GAAI,CAAC,KAAK,IAAK,CACX,MAAMqyB,EAAM,gDACZ,KAAK,OAAO,KAAK,IAAI0R,GAAewG,GAAYnF,CAAK,EAAG,mBAAoB/S,CAAG,CAAC,EAChF,KACJ,CACA,KAAK,IAAI,WAAW,OAAS,GAC7B,MAAMnf,EAAM0zB,GAAWxB,EAAM,IAAKA,EAAM,OAASA,EAAM,OAAO,OAAQ,KAAK,IAAI,QAAQ,OAAQ,KAAK,OAAO,EAE3G,GADA,KAAK,SAAS,KAAK,IAAK,EAAI,EACxBlyB,EAAI,QAAS,CACb,MAAMiwB,EAAK,KAAK,IAAI,QACpB,KAAK,IAAI,QAAUA,EAAK,GAAGA,CAAE;AAAA,EAAKjwB,EAAI,OAAO,GAAKA,EAAI,OAC1D,CACA,KAAK,IAAI,MAAM,CAAC,EAAIA,EAAI,OACxB,KACJ,CACA,QACI,KAAK,OAAO,KAAK,IAAI6wB,GAAewG,GAAYnF,CAAK,EAAG,mBAAoB,qBAAqBA,EAAM,IAAI,EAAE,CAAC,CAC9H,CACI,CAOA,CAAC,IAAI0F,EAAW,GAAOC,EAAY,GAAI,CACnC,GAAI,KAAK,IACL,KAAK,SAAS,KAAK,IAAK,EAAI,EAC5B,MAAM,KAAK,IACX,KAAK,IAAM,aAEND,EAAU,CACf,MAAMT,EAAO,OAAO,OAAO,CAAE,YAAa,KAAK,UAAU,EAAI,KAAK,OAAO,EACnEtY,EAAM,IAAIqR,GAAS,OAAWiH,CAAI,EACpC,KAAK,cACL,KAAK,QAAQU,EAAW,eAAgB,uCAAuC,EACnFhZ,EAAI,MAAQ,CAAC,EAAGgZ,EAAWA,CAAS,EACpC,KAAK,SAAShZ,EAAK,EAAK,EACxB,MAAMA,CACV,CACJ,CACJ,CCjNA,MAAMiZ,GAAM,SAENC,GAAW,IAEXC,GAAW,IAEX7b,GAAS,IA0Bf,SAAS8b,GAAUt8B,EAAQ,CACvB,OAAQA,EAAM,CACV,KAAKm8B,GACD,MAAO,kBACX,KAAKC,GACD,MAAO,WACX,KAAKC,GACD,MAAO,iBACX,KAAK7b,GACD,MAAO,SACX,IAAK,MACD,MAAO,YACX,IAAK,MACD,MAAO,UACX,IAAK,GACL,IAAK;AAAA,EACL,IAAK;AAAA,EACD,MAAO,UACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,mBACX,IAAK,IACD,MAAO,gBACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,OACnB,CACI,OAAQxgB,EAAO,CAAC,EAAC,CACb,IAAK,IACL,IAAK,IACD,MAAO,QACX,IAAK,IACD,MAAO,UACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,QACX,IAAK,IACD,MAAO,SACX,IAAK,IACD,MAAO,MACX,IAAK,IACD,MAAO,uBACX,IAAK,IACD,MAAO,uBACX,IAAK,IACL,IAAK,IACD,MAAO,qBACnB,CACI,OAAO,IACX,CC1BA,SAASu8B,GAAQna,EAAI,CACjB,OAAQA,EAAE,CACN,KAAK,OACL,IAAK,IACL,IAAK;AAAA,EACL,IAAK,KACL,IAAK,IACD,MAAO,GACX,QACI,MAAO,EACnB,CACA,CACA,MAAMoa,GAAY,IAAI,IAAI,wBAAwB,EAC5CC,GAAW,IAAI,IAAI,mFAAmF,EACtGC,GAAqB,IAAI,IAAI,OAAO,EACpCC,GAAqB,IAAI,IAAI;AAAA,IAAc,EAC3CC,GAAmBxa,GAAO,CAACA,GAAMua,GAAmB,IAAIva,CAAE,EAgBhE,MAAMya,EAAM,CACR,aAAc,CAKV,KAAK,MAAQ,GAMb,KAAK,kBAAoB,GAMzB,KAAK,gBAAkB,GAEvB,KAAK,OAAS,GAKd,KAAK,QAAU,GAEf,KAAK,UAAY,EAKjB,KAAK,WAAa,EAElB,KAAK,YAAc,EAEnB,KAAK,WAAa,KAElB,KAAK,KAAO,KAEZ,KAAK,IAAM,CACf,CAOA,CAAC,IAAI78B,EAAQ88B,EAAa,GAAO,CAC7B,GAAI98B,EAAQ,CACR,GAAI,OAAOA,GAAW,SAClB,MAAM,UAAU,wBAAwB,EAC5C,KAAK,OAAS,KAAK,OAAS,KAAK,OAASA,EAASA,EACnD,KAAK,WAAa,IACtB,CACA,KAAK,MAAQ,CAAC88B,EACd,IAAIntC,EAAO,KAAK,MAAQ,SACxB,KAAOA,IAASmtC,GAAc,KAAK,SAAS,CAAC,IACzCntC,EAAO,MAAO,KAAK,UAAUA,CAAI,CACzC,CACA,WAAY,CACR,IAAIhE,EAAI,KAAK,IACTy2B,EAAK,KAAK,OAAOz2B,CAAC,EACtB,KAAOy2B,IAAO,KAAOA,IAAO,KACxBA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxB,MAAI,CAACy2B,GAAMA,IAAO,KAAOA,IAAO;AAAA,EACrB,GACPA,IAAO,KACA,KAAK,OAAOz2B,EAAI,CAAC,IAAM;AAAA,EAC3B,EACX,CACA,OAAOsb,EAAG,CACN,OAAO,KAAK,OAAO,KAAK,IAAMA,CAAC,CACnC,CACA,eAAexU,EAAQ,CACnB,IAAI2vB,EAAK,KAAK,OAAO3vB,CAAM,EAC3B,GAAI,KAAK,WAAa,EAAG,CACrB,IAAIi0B,EAAS,EACb,KAAOtE,IAAO,KACVA,EAAK,KAAK,OAAO,EAAEsE,EAASj0B,CAAM,EACtC,GAAI2vB,IAAO,KAAM,CACb,MAAMzyB,EAAO,KAAK,OAAO+2B,EAASj0B,EAAS,CAAC,EAC5C,GAAI9C,IAAS;AAAA,GAAS,CAACA,GAAQ,CAAC,KAAK,MACjC,OAAO8C,EAASi0B,EAAS,CACjC,CACA,OAAOtE,IAAO;AAAA,GAAQsE,GAAU,KAAK,YAAe,CAACtE,GAAM,CAAC,KAAK,MAC3D3vB,EAASi0B,EACT,EACV,CACA,GAAItE,IAAO,KAAOA,IAAO,IAAK,CAC1B,MAAM1S,EAAK,KAAK,OAAO,OAAOjd,EAAQ,CAAC,EACvC,IAAKid,IAAO,OAASA,IAAO,QAAU6sB,GAAQ,KAAK,OAAO9pC,EAAS,CAAC,CAAC,EACjE,MAAO,EACf,CACA,OAAOA,CACX,CACA,SAAU,CACN,IAAI4R,EAAM,KAAK,WAKf,OAJI,OAAOA,GAAQ,UAAaA,IAAQ,IAAMA,EAAM,KAAK,OACrDA,EAAM,KAAK,OAAO,QAAQ;AAAA,EAAM,KAAK,GAAG,EACxC,KAAK,WAAaA,GAElBA,IAAQ,GACD,KAAK,MAAQ,KAAK,OAAO,UAAU,KAAK,GAAG,EAAI,MACtD,KAAK,OAAOA,EAAM,CAAC,IAAM,OACzBA,GAAO,GACJ,KAAK,OAAO,UAAU,KAAK,IAAKA,CAAG,EAC9C,CACA,SAAS4C,EAAG,CACR,OAAO,KAAK,IAAMA,GAAK,KAAK,OAAO,MACvC,CACA,QAAQqN,EAAO,CACX,YAAK,OAAS,KAAK,OAAO,UAAU,KAAK,GAAG,EAC5C,KAAK,IAAM,EACX,KAAK,WAAa,KAClB,KAAK,KAAOA,EACL,IACX,CACA,KAAKrN,EAAG,CACJ,OAAO,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,CACzC,CACA,CAAC,UAAUtX,EAAM,CACb,OAAQA,EAAI,CACR,IAAK,SACD,OAAO,MAAO,KAAK,YAAW,EAClC,IAAK,aACD,OAAO,MAAO,KAAK,eAAc,EACrC,IAAK,cACD,OAAO,MAAO,KAAK,gBAAe,EACtC,IAAK,MACD,OAAO,MAAO,KAAK,cAAa,EACpC,IAAK,OACD,OAAO,MAAO,KAAK,oBAAmB,EAC1C,IAAK,gBACD,OAAO,MAAO,KAAK,kBAAiB,EACxC,IAAK,eACD,OAAO,MAAO,KAAK,iBAAgB,EACvC,IAAK,eACD,OAAO,MAAO,KAAK,iBAAgB,CACnD,CACI,CACA,CAAC,aAAc,CACX,IAAI8yB,EAAO,KAAK,QAAO,EACvB,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,QAAQ,EAKhC,GAJIA,EAAK,CAAC,IAAM0Z,KACZ,MAAO,KAAK,UAAU,CAAC,EACvB1Z,EAAOA,EAAK,UAAU,CAAC,GAEvBA,EAAK,CAAC,IAAM,IAAK,CACjB,IAAIsa,EAASta,EAAK,OACd4J,EAAK5J,EAAK,QAAQ,GAAG,EACzB,KAAO4J,IAAO,IAAI,CACd,MAAMjK,EAAKK,EAAK4J,EAAK,CAAC,EACtB,GAAIjK,IAAO,KAAOA,IAAO,IAAM,CAC3B2a,EAAS1Q,EAAK,EACd,KACJ,MAEIA,EAAK5J,EAAK,QAAQ,IAAK4J,EAAK,CAAC,CAErC,CACA,OAAa,CACT,MAAMjK,EAAKK,EAAKsa,EAAS,CAAC,EAC1B,GAAI3a,IAAO,KAAOA,IAAO,IACrB2a,GAAU,MAEV,MACR,CACA,MAAM91B,GAAK,MAAO,KAAK,UAAU81B,CAAM,IAAM,MAAO,KAAK,WAAW,EAAI,GACxE,aAAO,KAAK,UAAUta,EAAK,OAASxb,CAAC,EACrC,KAAK,YAAW,EACT,QACX,CACA,GAAI,KAAK,YAAa,CAClB,MAAM+1B,EAAK,MAAO,KAAK,WAAW,EAAI,EACtC,aAAO,KAAK,UAAUva,EAAK,OAASua,CAAE,EACtC,MAAO,KAAK,YAAW,EAChB,QACX,CACA,aAAMZ,GACC,MAAO,KAAK,eAAc,CACrC,CACA,CAAC,gBAAiB,CACd,MAAMha,EAAK,KAAK,OAAO,CAAC,EACxB,GAAI,CAACA,GAAM,CAAC,KAAK,MACb,OAAO,KAAK,QAAQ,YAAY,EACpC,GAAIA,IAAO,KAAOA,IAAO,IAAK,CAC1B,GAAI,CAAC,KAAK,OAAS,CAAC,KAAK,SAAS,CAAC,EAC/B,OAAO,KAAK,QAAQ,YAAY,EACpC,MAAMrgB,EAAI,KAAK,KAAK,CAAC,EACrB,IAAKA,IAAM,OAASA,IAAM,QAAUw6B,GAAQ,KAAK,OAAO,CAAC,CAAC,EACtD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,YAAc,EACnB,KAAK,WAAa,EACXx6B,IAAM,MAAQ,MAAQ,QAErC,CACA,YAAK,YAAc,MAAO,KAAK,WAAW,EAAK,EAC3C,KAAK,WAAa,KAAK,aAAe,CAACw6B,GAAQ,KAAK,OAAO,CAAC,CAAC,IAC7D,KAAK,WAAa,KAAK,aACpB,MAAO,KAAK,gBAAe,CACtC,CACA,CAAC,iBAAkB,CACf,KAAM,CAACU,EAAKC,CAAG,EAAI,KAAK,KAAK,CAAC,EAC9B,GAAI,CAACA,GAAO,CAAC,KAAK,MACd,OAAO,KAAK,QAAQ,aAAa,EACrC,IAAKD,IAAQ,KAAOA,IAAQ,KAAOA,IAAQ,MAAQV,GAAQW,CAAG,EAAG,CAC7D,MAAMj2B,GAAK,MAAO,KAAK,UAAU,CAAC,IAAM,MAAO,KAAK,WAAW,EAAI,GACnE,YAAK,WAAa,KAAK,YAAc,EACrC,KAAK,aAAeA,EACb,MAAO,KAAK,gBAAe,CACtC,CACA,MAAO,KACX,CACA,CAAC,eAAgB,CACb,MAAO,KAAK,WAAW,EAAI,EAC3B,MAAMwb,EAAO,KAAK,QAAO,EACzB,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,KAAK,EAC7B,IAAIxb,EAAI,MAAO,KAAK,eAAc,EAClC,OAAQwb,EAAKxb,CAAC,EAAC,CACX,IAAK,IACD,MAAO,KAAK,UAAUwb,EAAK,OAASxb,CAAC,EAEzC,KAAK,OACD,aAAO,KAAK,YAAW,EAChB,MAAO,KAAK,eAAc,EACrC,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,UAAY,EACV,OACX,IAAK,IACL,IAAK,IAED,aAAO,KAAK,UAAU,CAAC,EAChB,MACX,IAAK,IACD,aAAO,KAAK,UAAU21B,EAAe,EAC9B,MACX,IAAK,IACL,IAAK,IACD,OAAO,MAAO,KAAK,kBAAiB,EACxC,IAAK,IACL,IAAK,IACD,OAAA31B,GAAK,MAAO,KAAK,uBAAsB,EACvCA,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,MAAO,KAAK,UAAUwb,EAAK,OAASxb,CAAC,EACrC,MAAO,KAAK,YAAW,EAChB,MAAO,KAAK,iBAAgB,EACvC,QACI,OAAO,MAAO,KAAK,iBAAgB,CACnD,CACI,CACA,CAAC,qBAAsB,CACnB,IAAI8xB,EAAIiE,EACJtW,EAAS,GACb,GACIqS,EAAK,MAAO,KAAK,YAAW,EACxBA,EAAK,GACLiE,EAAK,MAAO,KAAK,WAAW,EAAK,EACjC,KAAK,YAActW,EAASsW,GAG5BA,EAAK,EAETA,GAAM,MAAO,KAAK,WAAW,EAAI,QAC5BjE,EAAKiE,EAAK,GACnB,MAAMva,EAAO,KAAK,QAAO,EACzB,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,MAAM,EAC9B,IAAKiE,IAAW,IAAMA,EAAS,KAAK,YAAcjE,EAAK,CAAC,IAAM,KACzDiE,IAAW,IACPjE,EAAK,WAAW,KAAK,GAAKA,EAAK,WAAW,KAAK,IAChD8Z,GAAQ9Z,EAAK,CAAC,CAAC,IAOf,EAHoBiE,IAAW,KAAK,WAAa,GACjD,KAAK,YAAc,IAClBjE,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAGhC,YAAK,UAAY,EACjB,MAAM4Z,GACC,MAAO,KAAK,eAAc,EAGzC,IAAIp1B,EAAI,EACR,KAAOwb,EAAKxb,CAAC,IAAM,KACfA,GAAK,MAAO,KAAK,UAAU,CAAC,EAC5BA,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,KAAK,QAAU,GAGnB,OADAA,GAAK,MAAO,KAAK,eAAc,EACvBwb,EAAKxb,CAAC,EAAC,CACX,KAAK,OACD,MAAO,OACX,IAAK,IACD,aAAO,KAAK,UAAUwb,EAAK,OAASxb,CAAC,EAC9B,OACX,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,WAAa,EACX,OACX,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,WAAa,EACX,KAAK,UAAY,OAAS,MACrC,IAAK,IACD,aAAO,KAAK,UAAU21B,EAAe,EAC9B,OACX,IAAK,IACL,IAAK,IACD,YAAK,QAAU,GACR,MAAO,KAAK,kBAAiB,EACxC,IAAK,IAAK,CACN,MAAMjtC,EAAO,KAAK,OAAO,CAAC,EAC1B,GAAI,KAAK,SAAW4sC,GAAQ5sC,CAAI,GAAKA,IAAS,IAC1C,YAAK,QAAU,GACf,MAAO,KAAK,UAAU,CAAC,EACvB,MAAO,KAAK,WAAW,EAAI,EACpB,MAEf,CAEA,QACI,YAAK,QAAU,GACR,MAAO,KAAK,iBAAgB,CACnD,CACI,CACA,CAAC,mBAAoB,CACjB,MAAMwtC,EAAQ,KAAK,OAAO,CAAC,EAC3B,IAAI94B,EAAM,KAAK,OAAO,QAAQ84B,EAAO,KAAK,IAAM,CAAC,EACjD,GAAIA,IAAU,IACV,KAAO94B,IAAQ,IAAM,KAAK,OAAOA,EAAM,CAAC,IAAM,KAC1CA,EAAM,KAAK,OAAO,QAAQ,IAAKA,EAAM,CAAC,MAI1C,MAAOA,IAAQ,IAAI,CACf,IAAI4C,EAAI,EACR,KAAO,KAAK,OAAO5C,EAAM,EAAI4C,CAAC,IAAM,MAChCA,GAAK,EACT,GAAIA,EAAI,IAAM,EACV,MACJ5C,EAAM,KAAK,OAAO,QAAQ,IAAKA,EAAM,CAAC,CAC1C,CAGJ,MAAM+4B,EAAK,KAAK,OAAO,UAAU,EAAG/4B,CAAG,EACvC,IAAI00B,EAAKqE,EAAG,QAAQ;AAAA,EAAM,KAAK,GAAG,EAClC,GAAIrE,IAAO,GAAI,CACX,KAAOA,IAAO,IAAI,CACd,MAAM1M,EAAK,KAAK,eAAe0M,EAAK,CAAC,EACrC,GAAI1M,IAAO,GACP,MACJ0M,EAAKqE,EAAG,QAAQ;AAAA,EAAM/Q,CAAE,CAC5B,CACI0M,IAAO,KAEP10B,EAAM00B,GAAMqE,EAAGrE,EAAK,CAAC,IAAM,KAAO,EAAI,GAE9C,CACA,GAAI10B,IAAQ,GAAI,CACZ,GAAI,CAAC,KAAK,MACN,OAAO,KAAK,QAAQ,eAAe,EACvCA,EAAM,KAAK,OAAO,MACtB,CACA,aAAO,KAAK,YAAYA,EAAM,EAAG,EAAK,EAC/B,KAAK,UAAY,OAAS,KACrC,CACA,CAAC,wBAAyB,CACtB,KAAK,kBAAoB,GACzB,KAAK,gBAAkB,GACvB,IAAI1Y,EAAI,KAAK,IACb,OAAa,CACT,MAAMy2B,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EAC1B,GAAIy2B,IAAO,IACP,KAAK,gBAAkB,WAClBA,EAAK,KAAOA,GAAM,IACvB,KAAK,kBAAoB,OAAOA,CAAE,EAAI,UACjCA,IAAO,IACZ,KACR,CACA,OAAO,MAAO,KAAK,UAAUA,GAAMma,GAAQna,CAAE,GAAKA,IAAO,GAAG,CAChE,CACA,CAAC,kBAAmB,CAChB,IAAI2W,EAAK,KAAK,IAAM,EAChBrS,EAAS,EACTtE,EACJkW,EAAM,QAAS3sC,EAAI,KAAK,IAAMy2B,EAAK,KAAK,OAAOz2B,CAAC,EAAI,EAAEA,EAClD,OAAQy2B,EAAE,CACN,IAAK,IACDsE,GAAU,EACV,MACJ,IAAK;AAAA,EACDqS,EAAKptC,EACL+6B,EAAS,EACT,MACJ,IAAK,KAAM,CACP,MAAM/2B,EAAO,KAAK,OAAOhE,EAAI,CAAC,EAC9B,GAAI,CAACgE,GAAQ,CAAC,KAAK,MACf,OAAO,KAAK,QAAQ,cAAc,EACtC,GAAIA,IAAS;AAAA,EACT,KACR,CACA,QACI,MAAM2oC,CAC1B,CAEQ,GAAI,CAAClW,GAAM,CAAC,KAAK,MACb,OAAO,KAAK,QAAQ,cAAc,EACtC,GAAIsE,GAAU,KAAK,WAAY,CACvB,KAAK,oBAAsB,GAC3B,KAAK,WAAaA,EAElB,KAAK,WACD,KAAK,mBAAqB,KAAK,aAAe,EAAI,EAAI,KAAK,YAEnE,EAAG,CACC,MAAM2F,EAAK,KAAK,eAAe0M,EAAK,CAAC,EACrC,GAAI1M,IAAO,GACP,MACJ0M,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAM1M,CAAE,CACrC,OAAS0M,IAAO,IAChB,GAAIA,IAAO,GAAI,CACX,GAAI,CAAC,KAAK,MACN,OAAO,KAAK,QAAQ,cAAc,EACtCA,EAAK,KAAK,OAAO,MACrB,CACJ,CAGA,IAAIptC,EAAIotC,EAAK,EAEb,IADA3W,EAAK,KAAK,OAAOz2B,CAAC,EACXy2B,IAAO,KACVA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxB,GAAIy2B,IAAO,IAAM,CACb,KAAOA,IAAO,KAAQA,IAAO,KAAOA,IAAO,MAAQA,IAAO;AAAA,GACtDA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxBotC,EAAKptC,EAAI,CACb,SACS,CAAC,KAAK,gBACX,EAAG,CACC,IAAIA,EAAIotC,EAAK,EACT3W,EAAK,KAAK,OAAOz2B,CAAC,EAClBy2B,IAAO,OACPA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,GACxB,MAAM0xC,EAAW1xC,EACjB,KAAOy2B,IAAO,KACVA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxB,GAAIy2B,IAAO;AAAA,GAAQz2B,GAAK,KAAK,KAAOA,EAAI,EAAI+6B,EAAS2W,EACjDtE,EAAKptC,MAEL,MACR,OAAS,IAEb,aAAM60B,GACN,MAAO,KAAK,YAAYuY,EAAK,EAAG,EAAI,EAC7B,MAAO,KAAK,eAAc,CACrC,CACA,CAAC,kBAAmB,CAChB,MAAMxO,EAAS,KAAK,UAAY,EAChC,IAAIlmB,EAAM,KAAK,IAAM,EACjB,EAAI,KAAK,IAAM,EACf+d,EACJ,KAAQA,EAAK,KAAK,OAAO,EAAE,CAAC,GACxB,GAAIA,IAAO,IAAK,CACZ,MAAMzyB,EAAO,KAAK,OAAO,EAAI,CAAC,EAC9B,GAAI4sC,GAAQ5sC,CAAI,GAAM46B,GAAUmS,GAAmB,IAAI/sC,CAAI,EACvD,MACJ0U,EAAM,CACV,SACSk4B,GAAQna,CAAE,EAAG,CAClB,IAAIzyB,EAAO,KAAK,OAAO,EAAI,CAAC,EAU5B,GATIyyB,IAAO,OACHzyB,IAAS;AAAA,GACT,GAAK,EACLyyB,EAAK;AAAA,EACLzyB,EAAO,KAAK,OAAO,EAAI,CAAC,GAGxB0U,EAAM,GAEV1U,IAAS,KAAQ46B,GAAUmS,GAAmB,IAAI/sC,CAAI,EACtD,MACJ,GAAIyyB,IAAO;AAAA,EAAM,CACb,MAAMiK,EAAK,KAAK,eAAe,EAAI,CAAC,EACpC,GAAIA,IAAO,GACP,MACJ,EAAI,KAAK,IAAI,EAAGA,EAAK,CAAC,CAC1B,CACJ,KACK,CACD,GAAI9B,GAAUmS,GAAmB,IAAIta,CAAE,EACnC,MACJ/d,EAAM,CACV,CAEJ,MAAI,CAAC+d,GAAM,CAAC,KAAK,MACN,KAAK,QAAQ,cAAc,GACtC,MAAM5B,GACN,MAAO,KAAK,YAAYnc,EAAM,EAAG,EAAI,EAC9BkmB,EAAS,OAAS,MAC7B,CACA,CAAC,UAAUtjB,EAAG,CACV,OAAIA,EAAI,GACJ,MAAM,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,EACpC,KAAK,KAAOA,EACLA,GAEJ,CACX,CACA,CAAC,YAAYtb,EAAG2xC,EAAY,CACxB,MAAMv7B,EAAI,KAAK,OAAO,MAAM,KAAK,IAAKpW,CAAC,EACvC,OAAIoW,GACA,MAAMA,EACN,KAAK,KAAOA,EAAE,OACPA,EAAE,SAEJu7B,IACL,KAAM,IACH,EACX,CACA,CAAC,gBAAiB,CACd,OAAQ,KAAK,OAAO,CAAC,EAAC,CAClB,IAAK,IACD,OAAS,MAAO,KAAK,QAAO,IACvB,MAAO,KAAK,WAAW,EAAI,IAC3B,MAAO,KAAK,kBACrB,IAAK,IACD,OAAS,MAAO,KAAK,UAAUV,EAAe,IACzC,MAAO,KAAK,WAAW,EAAI,IAC3B,MAAO,KAAK,kBACrB,IAAK,IACL,IAAK,IACL,IAAK,IAAK,CACN,MAAMrS,EAAS,KAAK,UAAY,EAC1B2S,EAAM,KAAK,OAAO,CAAC,EACzB,GAAIX,GAAQW,CAAG,GAAM3S,GAAUmS,GAAmB,IAAIQ,CAAG,EACrD,OAAK3S,EAEI,KAAK,UACV,KAAK,QAAU,IAFf,KAAK,WAAa,KAAK,YAAc,GAGhC,MAAO,KAAK,UAAU,CAAC,IAC3B,MAAO,KAAK,WAAW,EAAI,IAC3B,MAAO,KAAK,iBAEzB,CACZ,CACQ,MAAO,EACX,CACA,CAAC,SAAU,CACP,GAAI,KAAK,OAAO,CAAC,IAAM,IAAK,CACxB,IAAI5+B,EAAI,KAAK,IAAM,EACfy2B,EAAK,KAAK,OAAOz2B,CAAC,EACtB,KAAO,CAAC4wC,GAAQna,CAAE,GAAKA,IAAO,KAC1BA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxB,OAAO,MAAO,KAAK,YAAYy2B,IAAO,IAAMz2B,EAAI,EAAIA,EAAG,EAAK,CAChE,KACK,CACD,IAAIA,EAAI,KAAK,IAAM,EACfy2B,EAAK,KAAK,OAAOz2B,CAAC,EACtB,KAAOy2B,GACH,GAAIqa,GAAS,IAAIra,CAAE,EACfA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,UACfy2B,IAAO,KACZoa,GAAU,IAAI,KAAK,OAAO7wC,EAAI,CAAC,CAAC,GAChC6wC,GAAU,IAAI,KAAK,OAAO7wC,EAAI,CAAC,CAAC,EAChCy2B,EAAK,KAAK,OAAQz2B,GAAK,CAAC,MAGxB,OAER,OAAO,MAAO,KAAK,YAAYA,EAAG,EAAK,CAC3C,CACJ,CACA,CAAC,aAAc,CACX,MAAMy2B,EAAK,KAAK,OAAO,KAAK,GAAG,EAC/B,OAAIA,IAAO;AAAA,EACA,MAAO,KAAK,UAAU,CAAC,EACzBA,IAAO,MAAQ,KAAK,OAAO,CAAC,IAAM;AAAA,EAChC,MAAO,KAAK,UAAU,CAAC,EAEvB,CACf,CACA,CAAC,WAAWmb,EAAW,CACnB,IAAI5xC,EAAI,KAAK,IAAM,EACfy2B,EACJ,GACIA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,QACfy2B,IAAO,KAAQmb,GAAanb,IAAO,KAC5C,MAAMnb,EAAItb,EAAI,KAAK,IACnB,OAAIsb,EAAI,IACJ,MAAM,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,EACpC,KAAK,IAAMtb,GAERsb,CACX,CACA,CAAC,UAAUujB,EAAM,CACb,IAAI7+B,EAAI,KAAK,IACTy2B,EAAK,KAAK,OAAOz2B,CAAC,EACtB,KAAO,CAAC6+B,EAAKpI,CAAE,GACXA,EAAK,KAAK,OAAO,EAAEz2B,CAAC,EACxB,OAAO,MAAO,KAAK,YAAYA,EAAG,EAAK,CAC3C,CACJ,CCrsBA,MAAM6xC,EAAY,CACd,aAAc,CACV,KAAK,WAAa,CAAA,EAKlB,KAAK,WAAc/qC,GAAW,KAAK,WAAW,KAAKA,CAAM,EAMzD,KAAK,QAAWA,GAAW,CACvB,IAAIgrC,EAAM,EACNC,EAAO,KAAK,WAAW,OAC3B,KAAOD,EAAMC,GAAM,CACf,MAAMC,EAAOF,EAAMC,GAAS,EACxB,KAAK,WAAWC,CAAG,EAAIlrC,EACvBgrC,EAAME,EAAM,EAEZD,EAAOC,CACf,CACA,GAAI,KAAK,WAAWF,CAAG,IAAMhrC,EACzB,MAAO,CAAE,KAAMgrC,EAAM,EAAG,IAAK,CAAC,EAClC,GAAIA,IAAQ,EACR,MAAO,CAAE,KAAM,EAAG,IAAKhrC,CAAM,EACjC,MAAM2R,EAAQ,KAAK,WAAWq5B,EAAM,CAAC,EACrC,MAAO,CAAE,KAAMA,EAAK,IAAKhrC,EAAS2R,EAAQ,CAAC,CAC/C,CACJ,CACJ,CCjCA,SAASw5B,GAAcC,EAAMzlC,EAAM,CAC/B,QAASzM,EAAI,EAAGA,EAAIkyC,EAAK,OAAQ,EAAElyC,EAC/B,GAAIkyC,EAAKlyC,CAAC,EAAE,OAASyM,EACjB,MAAO,GACf,MAAO,EACX,CACA,SAAS0lC,GAAkBD,EAAM,CAC7B,QAASlyC,EAAI,EAAGA,EAAIkyC,EAAK,OAAQ,EAAElyC,EAC/B,OAAQkyC,EAAKlyC,CAAC,EAAE,KAAI,CAChB,IAAK,QACL,IAAK,UACL,IAAK,UACD,MACJ,QACI,OAAOA,CACvB,CAEI,MAAO,EACX,CACA,SAASoyC,GAAYxH,EAAO,CACxB,OAAQA,GAAO,KAAI,CACf,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACL,IAAK,kBACD,MAAO,GACX,QACI,MAAO,EACnB,CACA,CACA,SAASyH,GAAa/xC,EAAQ,CAC1B,OAAQA,EAAO,KAAI,CACf,IAAK,WACD,OAAOA,EAAO,MAClB,IAAK,YAAa,CACd,MAAMmjB,EAAKnjB,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAC/C,OAAOmjB,EAAG,KAAOA,EAAG,KACxB,CACA,IAAK,YACD,OAAOnjB,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAAE,MAEjD,QACI,MAAO,CAAA,CACnB,CACA,CAEA,SAASgyC,GAAsBtnC,EAAM,CACjC,GAAIA,EAAK,SAAW,EAChB,MAAO,CAAA,EACX,IAAIhL,EAAIgL,EAAK,OACb2hC,EAAM,KAAO,EAAE3sC,GAAK,GAChB,OAAQgL,EAAKhL,CAAC,EAAE,KAAI,CAChB,IAAK,YACL,IAAK,mBACL,IAAK,gBACL,IAAK,eACL,IAAK,UACD,MAAM2sC,CACtB,CAEI,KAAO3hC,EAAK,EAAEhL,CAAC,GAAG,OAAS,SAAS,CAGpC,OAAOgL,EAAK,OAAOhL,EAAGgL,EAAK,MAAM,CACrC,CACA,SAASunC,GAAgBxH,EAAI,CACzB,GAAIA,EAAG,MAAM,OAAS,iBAClB,UAAWtnB,KAAMsnB,EAAG,MACZtnB,EAAG,KACH,CAACA,EAAG,OACJ,CAACwuB,GAAcxuB,EAAG,MAAO,kBAAkB,GAC3C,CAACwuB,GAAcxuB,EAAG,IAAK,eAAe,IAClCA,EAAG,MACHA,EAAG,MAAQA,EAAG,KAClB,OAAOA,EAAG,IACN2uB,GAAY3uB,EAAG,KAAK,EAChBA,EAAG,MAAM,IACT,MAAM,UAAU,KAAK,MAAMA,EAAG,MAAM,IAAKA,EAAG,GAAG,EAE/CA,EAAG,MAAM,IAAMA,EAAG,IAGtB,MAAM,UAAU,KAAK,MAAMA,EAAG,MAAOA,EAAG,GAAG,EAC/C,OAAOA,EAAG,IAI1B,CA4BA,MAAM+uB,EAAO,CAKT,YAAYC,EAAW,CAEnB,KAAK,UAAY,GAEjB,KAAK,SAAW,GAEhB,KAAK,OAAS,EAEd,KAAK,OAAS,EAEd,KAAK,UAAY,GAEjB,KAAK,MAAQ,CAAA,EAEb,KAAK,OAAS,GAEd,KAAK,KAAO,GAEZ,KAAK,MAAQ,IAAIvB,GACjB,KAAK,UAAYuB,CACrB,CASA,CAAC,MAAMp+B,EAAQ88B,EAAa,GAAO,CAC3B,KAAK,WAAa,KAAK,SAAW,GAClC,KAAK,UAAU,CAAC,EACpB,UAAWuB,KAAU,KAAK,MAAM,IAAIr+B,EAAQ88B,CAAU,EAClD,MAAO,KAAK,KAAKuB,CAAM,EACtBvB,IACD,MAAO,KAAK,IAAG,EACvB,CAIA,CAAC,KAAK98B,EAAQ,CAEV,GADA,KAAK,OAASA,EACV,KAAK,SAAU,CACf,KAAK,SAAW,GAChB,MAAO,KAAK,KAAI,EAChB,KAAK,QAAUA,EAAO,OACtB,MACJ,CACA,MAAM5H,EAAOkkC,GAAUt8B,CAAM,EAC7B,GAAK5H,EAKA,GAAIA,IAAS,SACd,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,KAAO,aAEX,CAGD,OAFA,KAAK,KAAOA,EACZ,MAAO,KAAK,KAAI,EACRA,EAAI,CACR,IAAK,UACD,KAAK,UAAY,GACjB,KAAK,OAAS,EACV,KAAK,WACL,KAAK,UAAU,KAAK,OAAS4H,EAAO,MAAM,EAC9C,MACJ,IAAK,QACG,KAAK,WAAaA,EAAO,CAAC,IAAM,MAChC,KAAK,QAAUA,EAAO,QAC1B,MACJ,IAAK,mBACL,IAAK,gBACL,IAAK,eACG,KAAK,YACL,KAAK,QAAUA,EAAO,QAC1B,MACJ,IAAK,WACL,IAAK,iBACD,OACJ,QACI,KAAK,UAAY,EACrC,CACY,KAAK,QAAUA,EAAO,MAC1B,KArCW,CACP,MAAMsX,EAAU,qBAAqBtX,CAAM,GAC3C,MAAO,KAAK,IAAI,CAAE,KAAM,QAAS,OAAQ,KAAK,OAAQ,QAAAsX,EAAS,OAAAtX,EAAQ,EACvE,KAAK,QAAUA,EAAO,MAC1B,CAkCJ,CAEA,CAAC,KAAM,CACH,KAAO,KAAK,MAAM,OAAS,GACvB,MAAO,KAAK,IAAG,CACvB,CACA,IAAI,aAAc,CAOd,MANW,CACP,KAAM,KAAK,KACX,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,OAAQ,KAAK,MACzB,CAEI,CACA,CAAC,MAAO,CACJ,MAAMs+B,EAAM,KAAK,KAAK,CAAC,EACvB,GAAI,KAAK,OAAS,WAAaA,GAAK,OAAS,UAAW,CACpD,KAAO,KAAK,MAAM,OAAS,GACvB,MAAO,KAAK,IAAG,EACnB,KAAK,MAAM,KAAK,CACZ,KAAM,UACN,OAAQ,KAAK,OACb,OAAQ,KAAK,MAC7B,CAAa,EACD,MACJ,CACA,GAAI,CAACA,EACD,OAAO,MAAO,KAAK,OAAM,EAC7B,OAAQA,EAAI,KAAI,CACZ,IAAK,WACD,OAAO,MAAO,KAAK,SAASA,CAAG,EACnC,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,OAAO,MAAO,KAAK,OAAOA,CAAG,EACjC,IAAK,eACD,OAAO,MAAO,KAAK,YAAYA,CAAG,EACtC,IAAK,YACD,OAAO,MAAO,KAAK,SAASA,CAAG,EACnC,IAAK,YACD,OAAO,MAAO,KAAK,cAAcA,CAAG,EACxC,IAAK,kBACD,OAAO,MAAO,KAAK,eAAeA,CAAG,EACzC,IAAK,UACD,OAAO,MAAO,KAAK,YAAYA,CAAG,CAClD,CAEQ,MAAO,KAAK,IAAG,CACnB,CACA,KAAKr3B,EAAG,CACJ,OAAO,KAAK,MAAM,KAAK,MAAM,OAASA,CAAC,CAC3C,CACA,CAAC,IAAI9V,EAAO,CACR,MAAMolC,EAAQplC,GAAS,KAAK,MAAM,IAAG,EAErC,GAAI,CAAColC,EAED,KAAM,CAAE,KAAM,QAAS,OAAQ,KAAK,OAAQ,OAAQ,GAAI,QADxC,6BAC+C,UAE1D,KAAK,MAAM,SAAW,EAC3B,MAAMA,MAEL,CACD,MAAM+H,EAAM,KAAK,KAAK,CAAC,EAWvB,OAVI/H,EAAM,OAAS,eAEfA,EAAM,OAAS,WAAY+H,EAAMA,EAAI,OAAS,EAEzC/H,EAAM,OAAS,mBAAqB+H,EAAI,OAAS,aAEtD/H,EAAM,OAAS,GAEfA,EAAM,OAAS,mBACf2H,GAAgB3H,CAAK,EACjB+H,EAAI,KAAI,CACZ,IAAK,WACDA,EAAI,MAAQ/H,EACZ,MACJ,IAAK,eACD+H,EAAI,MAAM,KAAK/H,CAAK,EACpB,MACJ,IAAK,YAAa,CACd,MAAMnnB,EAAKkvB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACzC,GAAIlvB,EAAG,MAAO,CACVkvB,EAAI,MAAM,KAAK,CAAE,MAAO,GAAI,IAAK/H,EAAO,IAAK,CAAA,EAAI,EACjD,KAAK,UAAY,GACjB,MACJ,SACSnnB,EAAG,IACRA,EAAG,MAAQmnB,MAEV,CACD,OAAO,OAAOnnB,EAAI,CAAE,IAAKmnB,EAAO,IAAK,CAAA,EAAI,EACzC,KAAK,UAAY,CAACnnB,EAAG,YACrB,MACJ,CACA,KACJ,CACA,IAAK,YAAa,CACd,MAAMA,EAAKkvB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACrClvB,EAAG,MACHkvB,EAAI,MAAM,KAAK,CAAE,MAAO,GAAI,MAAO/H,EAAO,EAE1CnnB,EAAG,MAAQmnB,EACf,KACJ,CACA,IAAK,kBAAmB,CACpB,MAAMnnB,EAAKkvB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACrC,CAAClvB,GAAMA,EAAG,MACVkvB,EAAI,MAAM,KAAK,CAAE,MAAO,GAAI,IAAK/H,EAAO,IAAK,CAAA,EAAI,EAC5CnnB,EAAG,IACRA,EAAG,MAAQmnB,EAEX,OAAO,OAAOnnB,EAAI,CAAE,IAAKmnB,EAAO,IAAK,CAAA,EAAI,EAC7C,MACJ,CAEA,QACI,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,IAAIA,CAAK,CACzC,CACY,IAAK+H,EAAI,OAAS,YACdA,EAAI,OAAS,aACbA,EAAI,OAAS,eACZ/H,EAAM,OAAS,aAAeA,EAAM,OAAS,aAAc,CAC5D,MAAMxhC,EAAOwhC,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,EAC3CxhC,GACA,CAACA,EAAK,KACN,CAACA,EAAK,OACNA,EAAK,MAAM,OAAS,GACpB+oC,GAAkB/oC,EAAK,KAAK,IAAM,KACjCwhC,EAAM,SAAW,GACdxhC,EAAK,MAAM,MAAMwa,GAAMA,EAAG,OAAS,WAAaA,EAAG,OAASgnB,EAAM,MAAM,KACxE+H,EAAI,OAAS,WACbA,EAAI,IAAMvpC,EAAK,MAEfupC,EAAI,MAAM,KAAK,CAAE,MAAOvpC,EAAK,MAAO,EACxCwhC,EAAM,MAAM,OAAO,GAAI,CAAC,EAEhC,CACJ,CACJ,CACA,CAAC,QAAS,CACN,OAAQ,KAAK,KAAI,CACb,IAAK,iBACD,KAAM,CAAE,KAAM,YAAa,OAAQ,KAAK,OAAQ,OAAQ,KAAK,MAAM,EACnE,OACJ,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,UACD,MAAM,KAAK,YACX,OACJ,IAAK,WACL,IAAK,YAAa,CACd,MAAMrT,EAAM,CACR,KAAM,WACN,OAAQ,KAAK,OACb,MAAO,CAAA,CAC3B,EACoB,KAAK,OAAS,aACdA,EAAI,MAAM,KAAK,KAAK,WAAW,EACnC,KAAK,MAAM,KAAKA,CAAG,EACnB,MACJ,CACZ,CACQ,KAAM,CACF,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,cAAc,KAAK,IAAI,wBAChC,OAAQ,KAAK,MACzB,CACI,CACA,CAAC,SAASA,EAAK,CACX,GAAIA,EAAI,MACJ,OAAO,MAAO,KAAK,QAAQA,CAAG,EAClC,OAAQ,KAAK,KAAI,CACb,IAAK,YAAa,CACV4a,GAAkB5a,EAAI,KAAK,IAAM,IACjC,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,GAGhBA,EAAI,MAAM,KAAK,KAAK,WAAW,EACnC,MACJ,CACA,IAAK,SACL,IAAK,MACL,IAAK,QACL,IAAK,UACL,IAAK,UACDA,EAAI,MAAM,KAAK,KAAK,WAAW,EAC/B,MAChB,CACQ,MAAMqb,EAAK,KAAK,gBAAgBrb,CAAG,EAC/Bqb,EACA,KAAK,MAAM,KAAKA,CAAE,EAElB,KAAM,CACF,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,cAAc,KAAK,IAAI,0BAChC,OAAQ,KAAK,MAC7B,CAEI,CACA,CAAC,OAAOpF,EAAQ,CACZ,GAAI,KAAK,OAAS,gBAAiB,CAC/B,MAAMxiC,EAAOqnC,GAAa,KAAK,KAAK,CAAC,CAAC,EAChC55B,EAAQ65B,GAAsBtnC,CAAI,EACxC,IAAI4gC,EACA4B,EAAO,KACP5B,EAAM4B,EAAO,IACb5B,EAAI,KAAK,KAAK,WAAW,EACzB,OAAO4B,EAAO,KAGd5B,EAAM,CAAC,KAAK,WAAW,EAC3B,MAAM3uC,EAAM,CACR,KAAM,YACN,OAAQuwC,EAAO,OACf,OAAQA,EAAO,OACf,MAAO,CAAC,CAAE,MAAA/0B,EAAO,IAAK+0B,EAAQ,IAAA5B,CAAG,CAAE,CACnD,EACY,KAAK,UAAY,GACjB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAAI3uC,CACxC,MAEI,MAAO,KAAK,QAAQuwC,CAAM,CAClC,CACA,CAAC,YAAYA,EAAQ,CACjB,OAAQ,KAAK,KAAI,CACb,IAAK,QACL,IAAK,UACL,IAAK,UACDA,EAAO,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,SAKD,GAJAA,EAAO,OAAS,KAAK,OAErB,KAAK,UAAY,GACjB,KAAK,OAAS,EACV,KAAK,UAAW,CAChB,IAAIJ,EAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,EAAI,EACrC,KAAOA,IAAO,GACV,KAAK,UAAU,KAAK,OAASA,CAAE,EAC/BA,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAMA,CAAE,EAAI,CAE7C,CACA,MAAO,KAAK,IAAG,EACf,MAEJ,QACI,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,CAChC,CACI,CACA,CAAC,SAASnwC,EAAK,CACX,MAAMwmB,EAAKxmB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EAEzC,OAAQ,KAAK,KAAI,CACb,IAAK,UAED,GADA,KAAK,UAAY,GACbwmB,EAAG,MAAO,CACV,MAAM/K,EAAM,QAAS+K,EAAG,MAAQA,EAAG,MAAM,IAAM,QAClC,MAAM,QAAQ/K,CAAG,EAAIA,EAAIA,EAAI,OAAS,CAAC,EAAI,SAC9C,OAAS,UACfA,GAAK,KAAK,KAAK,WAAW,EAE1Bzb,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,CACpD,MACSwmB,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAElC,OACJ,IAAK,QACL,IAAK,UACD,GAAIA,EAAG,MACHxmB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,UAEvCwmB,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,MAE3B,CACD,GAAI,KAAK,kBAAkBA,EAAG,MAAOxmB,EAAI,MAAM,EAAG,CAE9C,MAAMyb,EADOzb,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,GACzB,OAAO,IACzB,GAAI,MAAM,QAAQyb,CAAG,EAAG,CACpB,MAAM,UAAU,KAAK,MAAMA,EAAK+K,EAAG,KAAK,EACxC/K,EAAI,KAAK,KAAK,WAAW,EACzBzb,EAAI,MAAM,IAAG,EACb,MACJ,CACJ,CACAwmB,EAAG,MAAM,KAAK,KAAK,WAAW,CAClC,CACA,MAChB,CACQ,GAAI,KAAK,QAAUxmB,EAAI,OAAQ,CAC3B,MAAM41C,EAAc,CAAC,KAAK,WAAa,KAAK,SAAW51C,EAAI,OACrD61C,EAAaD,IACdpvB,EAAG,KAAOA,EAAG,cACd,KAAK,OAAS,eAElB,IAAIhL,EAAQ,CAAA,EACZ,GAAIq6B,GAAcrvB,EAAG,KAAO,CAACA,EAAG,MAAO,CACnC,MAAM2pB,EAAK,CAAA,EACX,QAASptC,EAAI,EAAGA,EAAIyjB,EAAG,IAAI,OAAQ,EAAEzjB,EAAG,CACpC,MAAM4jB,EAAKH,EAAG,IAAIzjB,CAAC,EACnB,OAAQ4jB,EAAG,KAAI,CACX,IAAK,UACDwpB,EAAG,KAAKptC,CAAC,EACT,MACJ,IAAK,QACD,MACJ,IAAK,UACG4jB,EAAG,OAAS3mB,EAAI,SAChBmwC,EAAG,OAAS,GAChB,MACJ,QACIA,EAAG,OAAS,CACxC,CACgB,CACIA,EAAG,QAAU,IACb30B,EAAQgL,EAAG,IAAI,OAAO2pB,EAAG,CAAC,CAAC,EACnC,CACA,OAAQ,KAAK,KAAI,CACb,IAAK,SACL,IAAK,MACG0F,GAAcrvB,EAAG,OACjBhL,EAAM,KAAK,KAAK,WAAW,EAC3Bxb,EAAI,MAAM,KAAK,CAAE,MAAAwb,CAAK,CAAE,EACxB,KAAK,UAAY,IAEZgL,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAElC,OACJ,IAAK,mBACG,CAACA,EAAG,KAAO,CAACA,EAAG,aACfA,EAAG,MAAM,KAAK,KAAK,WAAW,EAC9BA,EAAG,YAAc,IAEZqvB,GAAcrvB,EAAG,OACtBhL,EAAM,KAAK,KAAK,WAAW,EAC3Bxb,EAAI,MAAM,KAAK,CAAE,MAAAwb,EAAO,YAAa,GAAM,GAG3C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,YAAa,EAAI,CAAE,CACpF,CAAyB,EAEL,KAAK,UAAY,GACjB,OACJ,IAAK,gBACD,GAAIgL,EAAG,YACH,GAAKA,EAAG,IAcH,GAAIA,EAAG,MACRxmB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAA,EAAI,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,UAE3Dg1C,GAAcxuB,EAAG,IAAK,eAAe,EAC1C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAhL,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,CACrF,CAA6B,UAEI25B,GAAY3uB,EAAG,GAAG,GACvB,CAACwuB,GAAcxuB,EAAG,IAAK,SAAS,EAAG,CACnC,MAAMhL,EAAQ65B,GAAsB7uB,EAAG,KAAK,EACtCrnB,EAAMqnB,EAAG,IACTmoB,EAAMnoB,EAAG,IACfmoB,EAAI,KAAK,KAAK,WAAW,EAEzB,OAAOnoB,EAAG,IAEV,OAAOA,EAAG,IACV,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAhL,EAAO,IAAArc,EAAK,IAAAwvC,CAAG,CAAE,CAC3D,CAA6B,CACL,MACSnzB,EAAM,OAAS,EAEpBgL,EAAG,IAAMA,EAAG,IAAI,OAAOhL,EAAO,KAAK,WAAW,EAG9CgL,EAAG,IAAI,KAAK,KAAK,WAAW,UA9CxBwuB,GAAcxuB,EAAG,MAAO,SAAS,EACjC,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,EAAG,MAEvD,CACD,MAAMhL,EAAQ65B,GAAsB7uB,EAAG,KAAK,EAC5C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAhL,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,CACzF,CAAiC,CACL,MAuCCgL,EAAG,IAGCA,EAAG,OAASqvB,EACjB71C,EAAI,MAAM,KAAK,CAAE,MAAAwb,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,EAEvDw5B,GAAcxuB,EAAG,IAAK,eAAe,EAC1C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,GAAI,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,CACzF,CAA6B,EAGDA,EAAG,IAAI,KAAK,KAAK,WAAW,EAd5B,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,EAAG,EAiBhE,KAAK,UAAY,GACjB,OACJ,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBAAwB,CACzB,MAAMsvB,EAAK,KAAK,WAAW,KAAK,IAAI,EAChCD,GAAcrvB,EAAG,OACjBxmB,EAAI,MAAM,KAAK,CAAE,MAAAwb,EAAO,IAAKs6B,EAAI,IAAK,CAAA,EAAI,EAC1C,KAAK,UAAY,IAEZtvB,EAAG,IACR,KAAK,MAAM,KAAKsvB,CAAE,GAGlB,OAAO,OAAOtvB,EAAI,CAAE,IAAKsvB,EAAI,IAAK,CAAA,EAAI,EACtC,KAAK,UAAY,IAErB,MACJ,CACA,QAAS,CACL,MAAMH,EAAK,KAAK,gBAAgB31C,CAAG,EACnC,GAAI21C,EAAI,CACJ,GAAIA,EAAG,OAAS,aACZ,GAAI,CAACnvB,EAAG,aACJA,EAAG,KACH,CAACwuB,GAAcxuB,EAAG,IAAK,SAAS,EAAG,CACnC,MAAO,KAAK,IAAI,CACZ,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,iDACT,OAAQ,KAAK,MACjD,CAAiC,EACD,MACJ,OAEKovB,GACL51C,EAAI,MAAM,KAAK,CAAE,MAAAwb,CAAK,CAAE,EAE5B,KAAK,MAAM,KAAKm6B,CAAE,EAClB,MACJ,CACJ,CAChB,CACQ,CACA,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,CACpB,CACA,CAAC,cAAc5O,EAAK,CAChB,MAAMvgB,EAAKugB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACzC,OAAQ,KAAK,KAAI,CACb,IAAK,UACD,GAAIvgB,EAAG,MAAO,CACV,MAAM/K,EAAM,QAAS+K,EAAG,MAAQA,EAAG,MAAM,IAAM,QAClC,MAAM,QAAQ/K,CAAG,EAAIA,EAAIA,EAAI,OAAS,CAAC,EAAI,SAC9C,OAAS,UACfA,GAAK,KAAK,KAAK,WAAW,EAE1BsrB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,CACpD,MAEIvgB,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,QACL,IAAK,UACD,GAAIA,EAAG,MACHugB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,MAC3C,CACD,GAAI,KAAK,kBAAkBvgB,EAAG,MAAOugB,EAAI,MAAM,EAAG,CAE9C,MAAMtrB,EADOsrB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,GACzB,OAAO,IACzB,GAAI,MAAM,QAAQtrB,CAAG,EAAG,CACpB,MAAM,UAAU,KAAK,MAAMA,EAAK+K,EAAG,KAAK,EACxC/K,EAAI,KAAK,KAAK,WAAW,EACzBsrB,EAAI,MAAM,IAAG,EACb,MACJ,CACJ,CACAvgB,EAAG,MAAM,KAAK,KAAK,WAAW,CAClC,CACA,OACJ,IAAK,SACL,IAAK,MACD,GAAIA,EAAG,OAAS,KAAK,QAAUugB,EAAI,OAC/B,MACJvgB,EAAG,MAAM,KAAK,KAAK,WAAW,EAC9B,OACJ,IAAK,eACD,GAAI,KAAK,SAAWugB,EAAI,OACpB,MACAvgB,EAAG,OAASwuB,GAAcxuB,EAAG,MAAO,cAAc,EAClDugB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,EAE5CvgB,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,MAChB,CACQ,GAAI,KAAK,OAASugB,EAAI,OAAQ,CAC1B,MAAM4O,EAAK,KAAK,gBAAgB5O,CAAG,EACnC,GAAI4O,EAAI,CACJ,KAAK,MAAM,KAAKA,CAAE,EAClB,MACJ,CACJ,CACA,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,CACpB,CACA,CAAC,eAAe7H,EAAI,CAChB,MAAMtnB,EAAKsnB,EAAG,MAAMA,EAAG,MAAM,OAAS,CAAC,EACvC,GAAI,KAAK,OAAS,iBAAkB,CAChC,IAAI4H,EACJ,GACI,MAAO,KAAK,IAAG,EACfA,EAAM,KAAK,KAAK,CAAC,QACZA,GAAK,OAAS,kBAC3B,SACS5H,EAAG,IAAI,SAAW,EAAG,CAC1B,OAAQ,KAAK,KAAI,CACb,IAAK,QACL,IAAK,mBACG,CAACtnB,GAAMA,EAAG,IACVsnB,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,EAE3CtnB,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,gBACG,CAACA,GAAMA,EAAG,MACVsnB,EAAG,MAAM,KAAK,CAAE,MAAO,CAAA,EAAI,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,EAC1DtnB,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAE5B,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,EAAG,EAC5D,OACJ,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,MACG,CAACA,GAAMA,EAAG,MACVsnB,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,EACtCtnB,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAE5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBAAwB,CACzB,MAAMsvB,EAAK,KAAK,WAAW,KAAK,IAAI,EAChC,CAACtvB,GAAMA,EAAG,MACVsnB,EAAG,MAAM,KAAK,CAAE,MAAO,GAAI,IAAKgI,EAAI,IAAK,CAAA,EAAI,EACxCtvB,EAAG,IACR,KAAK,MAAM,KAAKsvB,CAAE,EAElB,OAAO,OAAOtvB,EAAI,CAAE,IAAKsvB,EAAI,IAAK,CAAA,EAAI,EAC1C,MACJ,CACA,IAAK,eACL,IAAK,eACDhI,EAAG,IAAI,KAAK,KAAK,WAAW,EAC5B,MACpB,CACY,MAAM6H,EAAK,KAAK,gBAAgB7H,CAAE,EAE9B6H,EACA,KAAK,MAAM,KAAKA,CAAE,GAElB,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,EAExB,KACK,CACD,MAAMtyC,EAAS,KAAK,KAAK,CAAC,EAC1B,GAAIA,EAAO,OAAS,cACd,KAAK,OAAS,iBAAmBA,EAAO,SAAWyqC,EAAG,QACnD,KAAK,OAAS,WACX,CAACzqC,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAAE,KAC/C,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,UAEX,KAAK,OAAS,iBACnBA,EAAO,OAAS,kBAAmB,CACnC,MAAM0K,EAAOqnC,GAAa/xC,CAAM,EAC1BmY,EAAQ65B,GAAsBtnC,CAAI,EACxCunC,GAAgBxH,CAAE,EAClB,MAAMa,EAAMb,EAAG,IAAI,OAAO,EAAGA,EAAG,IAAI,MAAM,EAC1Ca,EAAI,KAAK,KAAK,WAAW,EACzB,MAAM3uC,EAAM,CACR,KAAM,YACN,OAAQ8tC,EAAG,OACX,OAAQA,EAAG,OACX,MAAO,CAAC,CAAE,MAAAtyB,EAAO,IAAKsyB,EAAI,IAAAa,CAAG,CAAE,CACnD,EACgB,KAAK,UAAY,GACjB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAAI3uC,CACxC,MAEI,MAAO,KAAK,QAAQ8tC,CAAE,CAE9B,CACJ,CACA,WAAWt+B,EAAM,CACb,GAAI,KAAK,UAAW,CAChB,IAAI2gC,EAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,EAAI,EACrC,KAAOA,IAAO,GACV,KAAK,UAAU,KAAK,OAASA,CAAE,EAC/BA,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAMA,CAAE,EAAI,CAE7C,CACA,MAAO,CACH,KAAA3gC,EACA,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,OAAQ,KAAK,MACzB,CACI,CACA,gBAAgBnM,EAAQ,CACpB,OAAQ,KAAK,KAAI,CACb,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,OAAO,KAAK,WAAW,KAAK,IAAI,EACpC,IAAK,sBACD,MAAO,CACH,KAAM,eACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,KAAK,WAAW,EACxB,OAAQ,EAC5B,EACY,IAAK,iBACL,IAAK,iBACD,MAAO,CACH,KAAM,kBACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,YACZ,MAAO,CAAA,EACP,IAAK,CAAA,CACzB,EACY,IAAK,eACD,MAAO,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,CAAC,KAAK,WAAW,CAAC,CAAE,CACzD,EACY,IAAK,mBAAoB,CACrB,KAAK,UAAY,GACjB,MAAM0K,EAAOqnC,GAAa/xC,CAAM,EAC1BmY,EAAQ65B,GAAsBtnC,CAAI,EACxC,OAAAyN,EAAM,KAAK,KAAK,WAAW,EACpB,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAA,EAAO,YAAa,EAAI,CAAE,CACxD,CACY,CACA,IAAK,gBAAiB,CAClB,KAAK,UAAY,GACjB,MAAMzN,EAAOqnC,GAAa/xC,CAAM,EAC1BmY,EAAQ65B,GAAsBtnC,CAAI,EACxC,MAAO,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAyN,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAC,CAAE,CACzE,CACY,CACZ,CACQ,OAAO,IACX,CACA,kBAAkBA,EAAOsiB,EAAQ,CAG7B,OAFI,KAAK,OAAS,WAEd,KAAK,QAAUA,EACR,GACJtiB,EAAM,MAAMmL,GAAMA,EAAG,OAAS,WAAaA,EAAG,OAAS,OAAO,CACzE,CACA,CAAC,YAAYovB,EAAQ,CACb,KAAK,OAAS,aACVA,EAAO,IACPA,EAAO,IAAI,KAAK,KAAK,WAAW,EAEhCA,EAAO,IAAM,CAAC,KAAK,WAAW,EAC9B,KAAK,OAAS,YACd,MAAO,KAAK,IAAG,GAE3B,CACA,CAAC,QAAQpI,EAAO,CACZ,OAAQ,KAAK,KAAI,CACb,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,eACL,IAAK,eACL,IAAK,gBACD,MAAO,KAAK,IAAG,EACf,MAAO,KAAK,KAAI,EAChB,MACJ,IAAK,UACD,KAAK,UAAY,GAIrB,QAEQA,EAAM,IACNA,EAAM,IAAI,KAAK,KAAK,WAAW,EAE/BA,EAAM,IAAM,CAAC,KAAK,WAAW,EAC7B,KAAK,OAAS,YACd,MAAO,KAAK,IAAG,EACnC,CACI,CACJ,CC57BA,SAASqI,GAAa39B,EAAS,CAC3B,MAAM49B,EAAe59B,EAAQ,eAAiB,GAE9C,MAAO,CAAE,YADWA,EAAQ,aAAgB49B,GAAgB,IAAIrB,IAAkB,KAC5D,aAAAqB,CAAY,CACtC,CAyBA,SAASC,GAAc9+B,EAAQiB,EAAU,GAAI,CACzC,KAAM,CAAE,YAAA89B,EAAa,aAAAF,GAAiBD,GAAa39B,CAAO,EACpD+9B,EAAS,IAAIb,GAAOY,GAAa,UAAU,EAC3CE,EAAW,IAAIlD,GAAS96B,CAAO,EAErC,IAAIiiB,EAAM,KACV,UAAWgc,KAAQD,EAAS,QAAQD,EAAO,MAAMh/B,CAAM,EAAG,GAAMA,EAAO,MAAM,EACzE,GAAI,CAACkjB,EACDA,EAAMgc,UACDhc,EAAI,QAAQ,WAAa,SAAU,CACxCA,EAAI,OAAO,KAAK,IAAIgS,GAAegK,EAAK,MAAM,MAAM,EAAG,CAAC,EAAG,gBAAiB,yEAAyE,CAAC,EACtJ,KACJ,CAEJ,OAAIL,GAAgBE,IAChB7b,EAAI,OAAO,QAAQkS,GAAcp1B,EAAQ++B,CAAW,CAAC,EACrD7b,EAAI,SAAS,QAAQkS,GAAcp1B,EAAQ++B,CAAW,CAAC,GAEpD7b,CACX,CACA,SAASic,GAAM/Z,EAAKlB,EAASjjB,EAAS,CAClC,IAAIm+B,EAOJ,MAAMlc,EAAM4b,GAAc1Z,EAAKnkB,CAAO,EACtC,GAAI,CAACiiB,EACD,OAAO,KAEX,GADAA,EAAI,SAAS,QAAQ4J,GAAWF,GAAK1J,EAAI,QAAQ,SAAU4J,CAAO,CAAC,EAC/D5J,EAAI,OAAO,OAAS,EAAG,CACvB,GAAIA,EAAI,QAAQ,WAAa,SACzB,MAAMA,EAAI,OAAO,CAAC,EAElBA,EAAI,OAAS,CAAA,CACrB,CACA,OAAOA,EAAI,KAAK,OAAO,OAAO,CAAE,QAASkc,GAAYn+B,CAAO,CAAC,CACjE,CACA,SAASqqB,GAAUtjC,EAAOonC,EAAUnuB,EAAS,CACzC,IAAIuzB,EAAY,KAahB,GAZsC,MAAM,QAAQpF,CAAQ,IACxDoF,EAAYpF,GAWZpnC,IAAU,OAAW,CACrB,KAAM,CAAE,cAAAmnC,CAAa,EAA4B,CAAA,EACjD,GAAI,CAACA,EACD,MACR,CACA,OAAItO,GAAW74B,CAAK,GAAK,CAACwsC,EACfxsC,EAAM,SAASiZ,CAAO,EAC1B,IAAIszB,GAASvsC,EAAOwsC,EAAWvzB,CAAO,EAAE,SAASA,CAAO,CACnE,CCzEA,MAAMo+B,EAAwC,CAC5C,SAASC,EAAkE,CACzE,MAAMnc,EAAQmc,EAAY,MAAM;AAAA,CAAI,EACpC,GAAInc,EAAM,CAAC,GAAK,MAAO,CAErBA,EAAM,MAAA,EACN,MAAMoc,EAAsBpc,EAAM,UAAWV,GAASA,GAAQ,KAAK,EACnE,GAAI8c,GAAuB,EAAG,CAE5B,MAAMC,EAAqBrc,EACxB,MAAM,EAAGoc,CAAmB,EAC5B,KAAK;AAAA,CAAI,EAEZ,MAAO,CACL,GAFiBJ,GAAMK,CAAkB,EAGzC,QAASrc,EAAM,MAAMoc,EAAsB,CAAC,EAAE,KAAK;AAAA,CAAI,CAAA,CAE3D,KACE,OAAO,CACL,QAASD,CAAA,CAGf,KAEE,OAAO,CACL,QAASA,CAAA,CAGf,CACF,CC7BA,MAAMG,EAAwC,CAC5C,UAAU7gB,EAA2D,CACnE,KAAM,CAAE,QAAAiB,EAAS,GAAGx1B,CAAA,EAAau0B,EACjC,OAAIv0B,GAAY,OAAO,KAAKA,CAAQ,EAAE,OAAS,EACtC;AAAA,EACXihC,GAAUjhC,CAAQ,CAAC;AAAA,EACnBw1B,GAAW,EAAE,GAEDA,GAAW,EAEvB,CACF,CCpCG,IAAsCzY,GAAI,CAACJ,EAAGnI,EAAG+I,EAAGpX,IAAM,CAC3D,QAAS7E,EAAmCkT,EAAG,EAAImI,EAAE,OAAS,EAAG,EAAG,GAAK,EAAG,KACzE,EAAIA,EAAE,CAAC,KAAOrb,EAAI,EAAEA,CAAC,GAAKA,GAC7B,OAAOA,CACT,EAAG+C,GAAI,CAACsY,EAAGnI,IAAM,CAAC+I,EAAGpX,IAAMqO,EAAE+I,EAAGpX,EAAGwW,CAAC,EACpC,IAAIC,GAAI,KAAM,CACZ,OAGA,WACA,YAAYD,EAAGnI,EAAG,CAChB,KAAK,OAASmI,EAAG,KAAK,OAAO,UAAUnI,CAAC,CAC1C,CACA,cAAcmI,EAAG,CACf,KAAK,OAAO,MAAM,wBAAyBA,CAAC,EAAG,KAAK,WAAaA,CACnE,CACA,eAAgB,CACd,OAAO,KAAK,UACd,CACF,EACAC,GAAIG,GAAE,CACJzS,GAAC,EACDjG,GAAE,EAAGyY,GAAC,CAAE,CACV,EAAGF,EAAC,EACD,IAAsCuB,GAAI,CAACxB,EAAGnI,EAAG+I,EAAGpX,IAAM,CAC3D,QAAS7E,EAAmCkT,EAAG,EAAImI,EAAE,OAAS,EAAG,EAAG,GAAK,EAAG,KACzE,EAAIA,EAAE,CAAC,KAAOrb,EAAI,EAAEA,CAAC,GAAKA,GAC7B,OAAOA,CACT,EAAGwc,GAAI,CAACnB,EAAGnI,IAAM,CAAC+I,EAAGpX,IAAMqO,EAAE+I,EAAGpX,EAAGwW,CAAC,EACpC,IAAIJ,GAAI,KAAM,CACZ,YAAYI,EAAG,CACb,KAAK,WAAaA,CACpB,CACA,KAAM,CACJ,OAAO,KAAK,WAAW,cAAa,EAAG,OACzC,CACF,EACAJ,GAAI4B,GAAE,CACJ7T,GAAC,EACDwT,GAAE,EAAGlE,GAAE,YAAY,CAAC,CACtB,EAAG2C,EAAC,ECzCJ,MAAM84B,GAAQ,CACV,sBAAuB,CAAC,KAAK,EAC7B,0BAA2B,CAAC,KAAK,EACjC,+CAAgD,CAAC,KAAK,EACtD,oCAAqC,CAAC,KAAK,EAC3C,oCAAqC,CAAC,KAAK,EAC3C,kCAAmC,CAAC,KAAK,EACzC,6BAA8B,CAAC,MAAM,EACrC,mCAAoC,CAAC,KAAK,EAC1C,oCAAqC,CAAC,KAAK,EAC3C,oCAAqC,CAAC,KAAK,EAC3C,2BAA4B,CAAC,KAAK,EAClC,0BAA2B,CAAC,MAAO,OAAO,EAC1C,8DAA+D,CAAC,KAAK,EACrE,0CAA2C,CAAC,MAAM,EAClD,4BAA6B,CAAC,MAAO,MAAM,EAC3C,gCAAiC,CAAC,KAAK,EACvC,6BAA8B,CAAC,OAAO,EACtC,sBAAuB,CAAC,KAAK,EAC7B,8BAA+B,CAAC,OAAO,EACvC,wCAAyC,CAAC,KAAK,EAC/C,wCAAyC,CAAC,KAAK,EAC/C,+BAAgC,CAAC,KAAK,EACtC,uCAAwC,CAAC,KAAK,EAC9C,4BAA6B,CAAC,KAAK,EACnC,0CAA2C,CAAC,KAAK,EACjD,yDAA0D,CAAC,KAAK,EAChE,sDAAuD,CAAC,KAAK,EAC7D,uCAAwC,CAAC,KAAK,EAC9C,sCAAuC,CAAC,MAAM,EAC9C,gCAAiC,CAAC,KAAK,EACvC,gCAAiC,CAAC,MAAM,EACxC,gCAAiC,CAAC,SAAS,EAC3C,8BAA+B,CAAC,OAAO,EACvC,+BAAgC,CAAC,QAAQ,EACzC,qCAAsC,CAAC,KAAK,EAC5C,wCAAyC,CAAC,MAAM,EAChD,6BAA8B,CAAC,KAAK,EACpC,+BAAgC,CAAC,KAAK,EACtC,oCAAqC,CAAC,MAAM,EAC5C,oCAAqC,CAAC,KAAK,EAC3C,sBAAuB,CAAC,KAAK,EAC7B,kCAAmC,CAAC,KAAK,EACzC,+BAAgC,CAAC,OAAO,EACxC,uCAAwC,CAAC,KAAK,EAC9C,6BAA8B,CAAC,KAAK,EACpC,2CAA4C,CAAC,KAAK,EAClD,2BAA4B,CAAC,KAAK,EAClC,8BAA+B,CAAC,KAAK,EACrC,gCAAiC,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EACnE,+CAAgD,CAAC,QAAQ,EACzD,mDAAoD,CAAC,QAAQ,EAC7D,8BAA+B,CAAC,KAAK,EACrC,+BAAgC,CAAC,SAAS,EAC1C,8BAA+B,CAAC,KAAK,EACrC,gCAAiC,CAAC,MAAM,EACxC,yCAA0C,CAAC,MAAM,EACjD,wCAAyC,CAAC,MAAM,EAChD,yCAA0C,CAAC,MAAM,EACjD,yCAA0C,CAAC,MAAM,EACjD,wCAAyC,CAAC,KAAK,EAC/C,4BAA6B,CAAC,KAAK,EACnC,2BAA4B,CAAC,KAAK,EAClC,2BAA4B,CAAC,KAAK,EAClC,6BAA8B,CAAC,OAAO,EACtC,uBAAwB,CAAC,MAAM,EAC/B,kCAAmC,CAAC,KAAK,EACzC,sBAAuB,CAAC,KAAK,EAC7B,2BAA4B,CAAC,MAAM,EACnC,4BAA6B,CAAC,MAAO,OAAQ,MAAO,MAAM,EAC1D,gCAAiC,CAAC,MAAO,MAAM,EAC/C,mCAAoC,CAAC,MAAO,MAAM,EAClD,2BAA4B,CAAC,MAAO,MAAM,EAC1C,yCAA0C,CAAC,WAAW,EACtD,sBAAuB,CAAC,KAAK,EAC7B,4BAA6B,CAAC,KAAK,EACnC,0BAA2B,CAAC,KAAK,EACjC,+BAAgC,CAAC,MAAM,EACvC,8BAA+B,CAAC,MAAM,EACtC,0BAA2B,CAAC,KAAK,EACjC,8BAA+B,CAAC,KAAK,EACrC,0BAA2B,CAAC,KAAK,EACjC,+BAAgC,CAAC,KAAK,EACtC,0BAA2B,CAAC,KAAK,EACjC,4BAA6B,CAAC,KAAK,EACnC,4BAA6B,CAAC,KAAK,EACnC,mCAAoC,CAAC,KAAK,EAC1C,6BAA8B,CAAC,KAAK,EACpC,4BAA6B,CAAC,KAAK,EACnC,+BAAgC,CAAC,MAAO,KAAK,EAC7C,8BAA+B,CAAC,KAAK,EACrC,gCAAiC,CAAC,KAAK,EACvC,sBAAuB,CAAC,MAAM,EAC9B,6BAA8B,CAAC,OAAO,EACtC,4BAA6B,CAAC,OAAQ,UAAU,EAChD,6BAA8B,CAAC,KAAK,EACpC,gCAAiC,CAAC,KAAK,EACvC,6BAA8B,CAAC,KAAM,QAAS,QAAS,MAAM,EAC7D,8BAA+B,CAAC,KAAK,EACrC,8BAA+B,CAAC,KAAK,EACrC,gCAAiC,CAAC,KAAK,EACvC,gCAAiC,CAAC,KAAK,EACvC,iCAAkC,CAAC,KAAK,EACxC,iCAAkC,CAAC,KAAK,EACxC,kCAAmC,CAAC,KAAK,EACzC,mCAAoC,CAAC,KAAK,EAC1C,gCAAiC,CAAC,KAAK,EACvC,sCAAuC,CAAC,KAAK,EAC7C,6CAA8C,CAAC,KAAK,EACpD,6BAA8B,CAAC,KAAK,EACpC,mCAAoC,CAAC,KAAK,EAC1C,gCAAiC,CAAC,KAAK,EACvC,kCAAmC,CAAC,KAAK,EACzC,gCAAiC,CAAC,KAAK,EACvC,oCAAqC,CAAC,MAAO,KAAK,EAClD,0BAA2B,CAAC,KAAK,EACjC,0BAA2B,CAAC,KAAK,EACjC,2BAA4B,CAAC,KAAK,EAClC,sBAAuB,CAAC,KAAK,EAC7B,uCAAwC,CAAC,MAAM,EAC/C,sCAAuC,CAAC,OAAO,EAC/C,mCAAoC,CAAC,OAAO,EAC5C,kCAAmC,CAAC,MAAM,EAC1C,kCAAmC,CAAC,MAAM,EAC1C,2CAA4C,CAAC,SAAS,EACtD,qCAAsC,CAAC,SAAS,EAChD,mCAAoC,CAAC,OAAO,EAC5C,0CAA2C,CAAC,QAAQ,EACpD,uCAAwC,CAAC,KAAK,EAC9C,mCAAoC,CAAC,KAAK,EAC1C,8CAA+C,CAAC,MAAM,EACtD,yBAA0B,CAAC,MAAO,KAAK,EACvC,iCAAkC,CAAC,KAAK,EACxC,8BAA+B,CAAC,KAAK,EACrC,0CAA2C,CAAC,KAAK,EACjD,kCAAmC,CAAC,KAAK,EACzC,sCAAuC,CAAC,KAAK,EAC7C,uCAAwC,CAAC,KAAK,EAC9C,+BAAgC,CAAC,KAAK,EACtC,0BAA2B,CAAC,KAAK,EACjC,6CAA8C,CAAC,KAAK,EACpD,uBAAwB,CAAC,MAAM,EAC/B,oCAAqC,CAAC,KAAK,EAC3C,0BAA2B,CAAC,MAAM,EAClC,0BAA2B,CAAC,MAAM,EAClC,yBAA0B,CAAC,KAAK,EAChC,0BAA2B,CAAC,KAAK,EACjC,yBAA0B,CAAC,KAAK,EAChC,2BAA4B,CAAC,OAAO,EACpC,uCAAwC,CAAC,WAAW,EACpD,8BAA+B,CAAC,KAAK,EACrC,6BAA8B,CAAC,MAAO,UAAW,UAAU,EAC3D,wCAAyC,CAAC,KAAK,EAC/C,uCAAwC,CAAC,IAAI,EAC7C,6BAA8B,CAAC,MAAO,KAAK,EAC3C,2BAA4B,CAAC,KAAK,EAClC,kCAAmC,CAAC,KAAK,EACzC,kCAAmC,CAAC,KAAK,EACzC,6BAA8B,CAAC,KAAK,EACpC,mCAAoC,CAAC,MAAO,KAAK,EACjD,2BAA4B,CAAC,KAAK,EAClC,2BAA4B,CAAC,KAAK,EAClC,2BAA4B,CAAC,KAAK,EAClC,wCAAyC,CAAC,WAAW,EACrD,0CAA2C,CAAC,KAAK,EACjD,yBAA0B,CAAC,KAAK,EAChC,2BAA4B,CAAC,KAAK,EAClC,sBAAuB,CAAC,KAAK,EAC7B,wCAAyC,CAAC,KAAK,EAC/C,uBAAwB,CAAC,MAAM,EAC/B,qCAAsC,CAAC,MAAM,EAC7C,0BAA2B,CAAC,MAAO,KAAK,EACxC,6BAA8B,CAAC,QAAQ,EACvC,6BAA8B,CAAC,MAAM,EACrC,+BAAgC,CAAC,KAAK,EACtC,4BAA6B,CAAC,KAAK,EACnC,8BAA+B,CAAC,KAAK,EACrC,iCAAkC,CAAC,MAAO,KAAK,EAC/C,8BAA+B,CAAC,KAAK,EACrC,4BAA6B,CAAC,MAAO,KAAK,EAC1C,6BAA8B,CAAC,MAAM,EACrC,+BAAgC,CAAC,KAAK,EACtC,wBAAyB,CAAC,MAAO,KAAK,EACtC,uBAAwB,CAAC,MAAO,MAAO,MAAO,KAAK,EACnD,mCAAoC,CAAC,KAAK,EAC1C,8BAA+B,CAAC,QAAQ,EACxC,qDAAsD,CAAC,KAAK,EAC5D,0DAA2D,CAAC,KAAK,EACjE,8BAA+B,CAAC,KAAK,EACrC,iCAAkC,CAAC,KAAK,EACxC,kCAAmC,CAAC,KAAK,EACzC,8BAA+B,CAAC,KAAK,EACrC,kCAAmC,CAAC,KAAK,EACzC,kCAAmC,CAAC,KAAK,EACzC,gCAAiC,CAAC,KAAK,EACvC,mCAAoC,CAAC,SAAS,EAC9C,qCAAsC,CAAC,KAAK,EAC5C,sBAAuB,CAAC,KAAK,EAC7B,8BAA+B,CAAC,KAAK,EACrC,qCAAsC,CAAC,OAAO,EAC9C,uBAAwB,CAAC,KAAK,EAC9B,uBAAwB,CAAC,KAAK,EAC9B,iCAAkC,CAAC,KAAK,EACxC,iCAAkC,CAAC,KAAK,EACxC,sBAAuB,CAAC,KAAK,EAC7B,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,6BAA8B,CAAC,KAAK,EACpC,qCAAsC,CAAC,KAAK,EAC5C,qCAAsC,CAAC,KAAK,EAC5C,kCAAmC,CAAC,KAAK,EACzC,8BAA+B,CAAC,KAAK,EACrC,oCAAqC,CAAC,KAAK,EAC3C,2BAA4B,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACrE,iDAAkD,CAAC,MAAM,EACzD,wDAAyD,CAAC,MAAM,EAChE,iDAAkD,CAAC,MAAM,EACzD,oDAAqD,CAAC,MAAM,EAC5D,gCAAiC,CAAC,KAAK,EACvC,8BAA+B,CAAC,KAAK,EACrC,yBAA0B,CAAC,KAAK,EAChC,yBAA0B,CAAC,KAAK,EAChC,iCAAkC,CAAC,MAAM,EACzC,6BAA8B,CAAC,KAAK,EACpC,gCAAiC,CAAC,KAAK,EACvC,6BAA8B,CAAC,MAAM,EACrC,gCAAiC,CAAC,MAAO,MAAO,KAAK,EACrD,sDAAuD,CAAC,MAAM,EAC9D,6DAA8D,CAAC,MAAM,EACrE,sDAAuD,CAAC,MAAM,EAC9D,0DAA2D,CAAC,MAAM,EAClE,yDAA0D,CAAC,MAAM,EACjE,6BAA8B,CAAC,OAAQ,KAAK,EAC5C,kCAAmC,CAAC,KAAK,EACzC,mDAAoD,CAAC,MAAM,EAC3D,mDAAoD,CAAC,MAAM,EAC3D,2BAA4B,CAAC,MAAO,MAAO,MAAO,KAAK,EACvD,yBAA0B,CAAC,KAAK,EAChC,iCAAkC,CAAC,KAAK,EACxC,uBAAwB,CAAC,MAAM,EAC/B,2BAA4B,CAAC,KAAK,EAClC,8BAA+B,CAAC,MAAM,EACtC,wBAAyB,CAAC,QAAQ,EAClC,6CAA8C,CAAC,KAAK,EACpD,oCAAqC,CAAC,KAAK,EAC3C,uBAAwB,CAAC,MAAO,MAAM,EACtC,qCAAsC,CAAC,KAAK,EAC5C,kCAAmC,CAAC,KAAK,EACzC,+BAAgC,CAAC,KAAK,EACtC,sCAAuC,CAAC,KAAK,EAC7C,oCAAqC,CAAC,OAAO,EAC7C,+CAAgD,CAAC,QAAQ,EACzD,qCAAsC,CAAC,MAAM,EAC7C,sCAAuC,CAAC,MAAM,EAC9C,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,2CAA4C,CAAC,KAAK,EAClD,oDAAqD,CAAC,KAAK,EAC3D,8CAA+C,CAAC,KAAK,EACrD,6CAA8C,CAAC,KAAK,EACpD,sDAAuD,CAAC,MAAM,EAC9D,8CAA+C,CAAC,KAAK,EACrD,uDAAwD,CAAC,KAAK,EAC9D,2CAA4C,CAAC,KAAK,EAClD,oDAAqD,CAAC,KAAK,EAC3D,kDAAmD,CAAC,KAAK,EACzD,2DAA4D,CAAC,KAAK,EAClE,iDAAkD,CAAC,KAAK,EACxD,0DAA2D,CAAC,KAAK,EACjE,0CAA2C,CAAC,KAAK,EACjD,iDAAkD,CAAC,KAAK,EACxD,mDAAoD,CAAC,KAAK,EAC1D,8CAA+C,CAAC,KAAK,EACrD,6BAA8B,CAAC,IAAI,EACnC,8BAA+B,CAAC,KAAK,EACrC,oCAAqC,CAAC,MAAM,EAC5C,0CAA2C,CAAC,KAAK,EACjD,yCAA0C,CAAC,KAAK,EAChD,4EAA6E,CACzE,MACR,EACI,qEAAsE,CAClE,MACR,EACI,yEAA0E,CACtE,MACR,EACI,wEAAyE,CACrE,MACR,EACI,oEAAqE,CAAC,MAAM,EAC5E,uEAAwE,CACpE,MACR,EACI,0EAA2E,CACvE,MACR,EACI,0EAA2E,CACvE,MACR,EACI,yCAA0C,CAAC,KAAK,EAChD,0BAA2B,CAAC,IAAI,EAChC,iCAAkC,CAAC,KAAK,EACxC,uBAAwB,CAAC,MAAO,MAAO,MAAM,EAC7C,4BAA6B,CAAC,KAAK,EACnC,4BAA6B,CAAC,KAAK,EACnC,4BAA6B,CAAC,KAAK,EACnC,yBAA0B,CAAC,MAAM,EACjC,6BAA8B,CAAC,IAAI,EACnC,8BAA+B,CAAC,KAAK,EACrC,gCAAiC,CAAC,KAAK,EACvC,qCAAsC,CAAC,KAAK,EAC5C,oCAAqC,CAAC,UAAU,EAChD,kCAAmC,CAAC,OAAO,EAC3C,kCAAmC,CAAC,KAAK,EACzC,mCAAoC,CAAC,KAAK,EAC1C,wCAAyC,CAAC,KAAK,EAC/C,4BAA6B,CAAC,MAAM,EACpC,sCAAuC,CAAC,MAAM,EAC9C,oCAAqC,CACjC,MACA,MACA,MACA,MACA,MACA,KACR,EACI,sBAAuB,CAAC,KAAK,EAC7B,8BAA+B,CAAC,KAAK,EACrC,qCAAsC,CAAC,KAAK,EAC5C,yCAA0C,CAAC,UAAU,EACrD,iCAAkC,CAAC,YAAY,EAC/C,0BAA2B,CAAC,KAAK,EACjC,+BAAgC,CAAC,IAAI,EACrC,mCAAoC,CAAC,MAAM,EAC3C,qCAAsC,CAAC,QAAQ,EAC/C,uCAAwC,CAAC,IAAI,EAC7C,0BAA2B,CAAC,KAAK,EACjC,uBAAwB,CAAC,MAAM,EAC/B,uBAAwB,CAAC,MAAM,EAC/B,uBAAwB,CAAC,MAAM,EAC/B,0CAA2C,CAAC,KAAK,EACjD,8CAA+C,CAAC,KAAK,EACrD,6CAA8C,CAAC,KAAK,EACpD,yCAA0C,CAAC,KAAK,EAChD,qCAAsC,CAAC,MAAO,MAAM,EACpD,uBAAwB,CAAC,KAAK,EAC9B,gCAAiC,CAAC,SAAS,EAC3C,8CAA+C,CAAC,IAAI,EACpD,kCAAmC,CAAC,OAAQ,MAAM,EAClD,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,oCAAqC,CAAC,KAAK,EAC3C,oCAAqC,CAAC,KAAK,EAC3C,uCAAwC,CAAC,KAAK,EAC9C,oCAAqC,CAAC,KAAK,EAC3C,sCAAuC,CAAC,MAAO,KAAK,EACpD,6CAA8C,CAAC,KAAK,EACpD,oCAAqC,CAAC,OAAO,EAC7C,sCAAuC,CAAC,IAAI,EAC5C,+BAAgC,CAAC,MAAM,EACvC,+BAAgC,CAAC,KAAK,EACtC,wCAAyC,CAAC,KAAK,EAC/C,+BAAgC,CAAC,KAAK,EACtC,wCAAyC,CAAC,KAAK,EAC/C,kCAAmC,CAAC,KAAK,EACzC,2CAA4C,CAAC,KAAK,EAClD,+BAAgC,CAAC,KAAK,EACtC,iCAAkC,CAAC,KAAK,EACxC,wCAAyC,CAAC,KAAK,EAC/C,0CAA2C,CAAC,KAAK,EACjD,+BAAgC,CAAC,MAAO,MAAM,EAC9C,sBAAuB,CAAC,KAAK,EAC7B,kCAAmC,CAAC,MAAO,MAAM,EACjD,6BAA8B,CAAC,KAAK,EACpC,kCAAmC,CAAC,KAAK,EACzC,gCAAiC,CAAC,KAAK,EACvC,mCAAoC,CAAC,KAAK,EAC1C,4CAA6C,CAAC,KAAK,EACnD,+BAAgC,CAAC,OAAQ,MAAO,KAAK,EACrD,iCAAkC,CAAC,KAAK,EACxC,2BAA4B,CAAC,KAAK,EAClC,+BAAgC,CAAC,KAAK,EACtC,0BAA2B,CAAC,KAAK,EACjC,uBAAwB,CAAC,MAAO,MAAM,EACtC,4BAA6B,CAAC,KAAK,EACnC,yBAA0B,CAAC,KAAK,EAChC,wBAAyB,CAAC,UAAU,EACpC,2BAA4B,CAAC,OAAQ,IAAI,EACzC,sBAAuB,CAAC,KAAK,EAC7B,wBAAyB,CAAC,MAAO,MAAO,MAAO,MAAO,OAAQ,KAAK,EACnE,4BAA6B,CAAC,KAAK,EACnC,sBAAuB,CAAC,KAAK,EAC7B,4BAA6B,CAAC,OAAO,EACrC,2BAA4B,CAAC,MAAM,EACnC,iCAAkC,CAAC,OAAO,EAC1C,2BAA4B,CAAC,KAAK,EAClC,iCAAkC,CAAC,KAAK,EACxC,8BAA+B,CAAC,KAAK,EACrC,sBAAuB,CAAC,KAAK,EAC7B,yBAA0B,CAAC,KAAK,EAChC,uBAAwB,CAAC,KAAK,EAC9B,uBAAwB,CAAC,MAAM,EAC/B,gCAAiC,CAAC,KAAK,EACvC,mCAAoC,CAAC,KAAK,EAC1C,kCAAmC,CAAC,KAAK,EACzC,yCAA0C,CAAC,KAAK,EAChD,oDAAqD,CAAC,QAAQ,EAC9D,oCAAqC,CAAC,KAAK,EAC3C,qCAAsC,CAAC,KAAK,EAC5C,0CAA2C,CAAC,KAAK,EACjD,sBAAuB,CAAC,MAAO,MAAM,EACrC,iCAAkC,CAAC,KAAK,EACxC,8BAA+B,CAAC,IAAI,EACpC,wBAAyB,CAAC,KAAK,EAC/B,+BAAgC,CAAC,KAAK,EACtC,gCAAiC,CAAC,MAAM,EACxC,oBAAqB,CAAC,KAAK,EAC3B,+BAAgC,CAAC,MAAO,MAAO,MAAO,KAAK,EAC3D,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,sBAAuB,CAAC,OAAO,EAC/B,qBAAsB,CAAC,OAAO,EAC9B,2BAA4B,CAAC,SAAS,EACtC,wBAAyB,CAAC,OAAO,EACjC,sBAAuB,CAAC,MAAO,OAAO,EACtC,qBAAsB,CAAC,IAAI,EAC3B,sBAAuB,CAAC,MAAO,KAAK,EACpC,oBAAqB,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EACvD,uBAAwB,CAAC,KAAK,EAC9B,+BAAgC,CAAC,KAAK,EACtC,qBAAsB,CAAC,MAAM,EAC7B,0BAA2B,CAAC,KAAK,EACjC,iCAAkC,CAAC,KAAK,EACxC,sBAAuB,CAAC,KAAK,EAC7B,2BAA4B,CAAC,MAAM,EACnC,2BAA4B,CAAC,KAAK,EAClC,qBAAsB,CAAC,MAAM,EAC7B,oBAAqB,CAAC,KAAK,EAC3B,+BAAgC,CAAC,OAAQ,MAAM,EAC/C,+BAAgC,CAAC,KAAK,EACtC,yBAA0B,CACtB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACR,EACI,qBAAsB,CAAC,KAAK,EAC5B,2BAA4B,CAAC,KAAK,EAClC,2BAA4B,CAAC,KAAK,EAClC,gCAAiC,CAAC,KAAK,EACvC,oBAAqB,CAAC,KAAK,EAC3B,sBAAuB,CAAC,KAAK,EAC7B,oBAAqB,CAAC,KAAK,EAC3B,yBAA0B,CAAC,KAAK,EAChC,iCAAkC,CAAC,KAAK,EACxC,+BAAgC,CAAC,KAAK,EACtC,yBAA0B,CAAC,KAAK,EAChC,yBAA0B,CAAC,KAAK,EAChC,2BAA4B,CAAC,MAAO,MAAO,MAAO,KAAK,EACvD,wBAAyB,CAAC,KAAK,EAC/B,6BAA8B,CAAC,KAAK,EACpC,+BAAgC,CAAC,KAAK,EACtC,sBAAuB,CAAC,KAAK,EAC7B,yBAA0B,CAAC,UAAU,EACrC,2BAA4B,CAAC,QAAQ,EACrC,qBAAsB,CAAC,MAAM,EAC7B,oBAAqB,CAAC,KAAK,EAC3B,0BAA2B,CAAC,KAAK,EACjC,qCAAsC,CAAC,SAAS,EAChD,2BAA4B,CAAC,OAAO,EACpC,8BAA+B,CAAC,MAAM,EACtC,qCAAsC,CAAC,MAAM,EAC7C,yCAA0C,CAAC,UAAU,EACrD,qCAAsC,CAAC,QAAQ,EAC/C,kCAAmC,CAAC,SAAS,EAC7C,+BAAgC,CAAC,MAAM,EACvC,yBAA0B,CAAC,MAAM,EACjC,sBAAuB,CAAC,OAAO,EAC/B,6BAA8B,CAAC,MAAM,EACrC,+BAAgC,CAAC,MAAO,KAAK,EAC7C,yBAA0B,CAAC,KAAK,EAChC,oBAAqB,CAAC,KAAK,EAC3B,iCAAkC,CAAC,OAAQ,MAAM,EACjD,+BAAgC,CAAC,aAAa,EAC9C,4BAA6B,CAAC,KAAK,EACnC,uBAAwB,CAAC,KAAK,EAC9B,uBAAwB,CAAC,KAAK,EAC9B,wBAAyB,CAAC,MAAM,EAChC,yBAA0B,CAAC,KAAK,EAChC,yBAA0B,CAAC,KAAK,EAChC,2BAA4B,CAAC,KAAK,EAClC,uBAAwB,CAAC,KAAK,EAC9B,8BAA+B,CAAC,MAAM,EACtC,2BAA4B,CAAC,OAAQ,OAAQ,MAAO,MAAO,MAAM,EACjE,4BAA6B,CAAC,MAAO,MAAO,KAAK,EACjD,2BAA4B,CAAC,OAAQ,OAAQ,OAAQ,KAAK,EAC1D,wBAAyB,CAAC,KAAK,EAC/B,4BAA6B,CAAC,KAAK,EACnC,2BAA4B,CAAC,KAAK,EAClC,2BAA4B,CAAC,KAAK,EAClC,wBAAyB,CAAC,KAAK,EAC/B,uBAAwB,CAAC,KAAM,KAAK,EACpC,oCAAqC,CAAC,KAAK,EAC3C,oBAAqB,CAAC,KAAK,EAC3B,qBAAsB,CAAC,KAAM,IAAI,EACjC,sBAAuB,CAAC,OAAQ,MAAM,EACtC,uBAAwB,CAAC,MAAO,KAAK,EACrC,mCAAoC,CAAC,MAAO,KAAK,EACjD,kCAAmC,CAAC,KAAK,EACzC,+BAAgC,CAAC,MAAM,EACvC,uCAAwC,CAAC,KAAK,EAC9C,sCAAuC,CAAC,KAAK,EAC7C,oBAAqB,CAAC,KAAK,EAC3B,mBAAoB,CAAC,IAAI,EACzB,qBAAsB,CAAC,MAAM,EAC7B,gCAAiC,CAAC,KAAK,EACvC,gCAAiC,CAAC,KAAK,EACvC,oBAAqB,CAAC,MAAM,EAC5B,wBAAyB,CAAC,KAAK,EAC/B,yBAA0B,CAAC,MAAM,EACjC,uBAAwB,CAAC,KAAK,EAC9B,wBAAyB,CAAC,SAAS,EACnC,uBAAwB,CAAC,QAAQ,EACjC,2BAA4B,CAAC,IAAI,EACjC,qBAAsB,CAAC,KAAK,EAC5B,oBAAqB,CAAC,KAAK,EAC3B,oBAAqB,CAAC,MAAO,IAAI,EACjC,oBAAqB,CAAC,KAAK,EAC3B,wBAAyB,CAAC,KAAK,EAC/B,wBAAyB,CAAC,UAAW,MAAM,EAC3C,qBAAsB,CAAC,MAAM,EAC7B,sBAAuB,CAAC,OAAO,EAC/B,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,gCAAiC,CAAC,MAAM,EACxC,wCAAyC,CAAC,cAAc,EACxD,+BAAgC,CAAC,KAAK,EACtC,+BAAgC,CAAC,KAAK,EACtC,gCAAiC,CAAC,MAAM,EACxC,4BAA6B,CAAC,KAAK,EACnC,sCAAuC,CAAC,QAAQ,EAChD,6BAA8B,CAAC,MAAO,MAAO,KAAK,EAClD,qBAAsB,CAAC,KAAK,EAC5B,0BAA2B,CAAC,MAAM,EAClC,0BAA2B,CAAC,KAAK,EACjC,mBAAoB,CAAC,IAAI,EACzB,+BAAgC,CAAC,MAAM,EACvC,yBAA0B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACzE,uBAAwB,CAAC,MAAO,MAAM,EACtC,0BAA2B,CAAC,KAAK,EACjC,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,KAAK,EACvB,mBAAoB,CAAC,OAAO,EAC5B,yBAA0B,CAAC,KAAK,EAChC,mCAAoC,CAAC,KAAK,EAC1C,4BAA6B,CAAC,WAAW,EACzC,4BAA6B,CAAC,WAAW,EACzC,4BAA6B,CAAC,WAAW,EACzC,gBAAiB,CAAC,KAAK,EACvB,cAAe,CAAC,MAAM,EACtB,eAAgB,CAAC,MAAO,OAAQ,MAAM,EACtC,cAAe,CAAC,KAAK,EACrB,eAAgB,CAAC,MAAM,EACvB,cAAe,CAAC,MAAM,EACtB,mBAAoB,CAAC,KAAK,EAC1B,kBAAmB,CAAC,KAAK,EACzB,iBAAkB,CAAC,KAAK,EACxB,iBAAkB,CAAC,KAAK,EACxB,uBAAwB,CAAC,MAAO,IAAI,EACpC,8BAA+B,CAAC,KAAK,EACrC,oBAAqB,CAAC,KAAK,EAC3B,cAAe,CAAC,MAAM,EACtB,iBAAkB,CAAC,KAAK,EACxB,iBAAkB,CAAC,KAAK,EACxB,kBAAmB,CAAC,MAAM,EAC1B,iBAAkB,CAAC,KAAK,EACxB,kBAAmB,CAAC,MAAM,EAC1B,iBAAkB,CAAC,KAAK,EACxB,iBAAkB,CAAC,OAAQ,KAAK,EAChC,gBAAiB,CAAC,KAAK,EACvB,4BAA6B,CAAC,KAAK,EACnC,mCAAoC,CAAC,KAAK,EAC1C,4BAA6B,CAAC,OAAO,EACrC,yBAA0B,CAAC,MAAO,OAAQ,MAAO,MAAM,EACvD,iBAAkB,CAAC,OAAQ,KAAK,EAChC,yBAA0B,CAAC,MAAM,EACjC,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,KAAK,EACvB,yBAA0B,CAAC,KAAK,EAChC,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,KAAK,EACvB,iCAAkC,CAAC,KAAK,EACxC,iCAAkC,CAAC,KAAK,EACxC,2BAA4B,CAAC,KAAK,EAClC,mBAAoB,CAAC,KAAK,EAC1B,oBAAqB,CAAC,KAAK,EAC3B,qBAAsB,CAAC,KAAK,EAC5B,oBAAqB,CAAC,KAAK,EAC3B,oBAAqB,CAAC,KAAK,EAC3B,wBAAyB,CAAC,KAAK,EAC/B,iCAAkC,CAAC,KAAK,EACxC,qBAAsB,CAAC,MAAM,EAC7B,iBAAkB,CAAC,KAAK,EACxB,uBAAwB,CAAC,KAAK,EAC9B,cAAe,CAAC,KAAK,EACrB,oBAAqB,CAAC,KAAK,EAC3B,qBAAsB,CAAC,KAAK,EAC5B,cAAe,CAAC,KAAK,EACrB,mBAAoB,CAAC,KAAM,MAAO,MAAO,MAAO,KAAK,EACrD,eAAgB,CAAC,MAAM,EACvB,cAAe,CAAC,KAAK,EACrB,sBAAuB,CAAC,KAAK,EAC7B,iBAAkB,CAAC,MAAM,EACzB,cAAe,CAAC,MAAM,EACtB,eAAgB,CAAC,MAAO,KAAK,EAC7B,0BAA2B,CAAC,KAAK,EACjC,0BAA2B,CAAC,KAAK,EACjC,2BAA4B,CAAC,KAAK,EAClC,0BAA2B,CAAC,KAAK,EACjC,cAAe,CAAC,KAAK,EACrB,cAAe,CAAC,KAAK,EACrB,kBAAmB,CAAC,KAAK,EACzB,kBAAmB,CAAC,KAAK,EACzB,sBAAuB,CAAC,KAAK,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,iBAAkB,CAAC,MAAM,EACzB,gBAAiB,CAAC,KAAK,EACvB,wBAAyB,CAAC,KAAK,EAC/B,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,KAAK,EACvB,gBAAiB,CAAC,MAAM,EACxB,oBAAqB,CAAC,MAAM,EAC5B,sCAAuC,CAAC,KAAK,EAC7C,oCAAqC,CAAC,KAAK,EAC3C,uBAAwB,CAAC,MAAO,MAAM,EACtC,oBAAqB,CAAC,KAAK,EAC3B,iBAAkB,CAAC,MAAM,EACzB,qBAAsB,CAAC,MAAM,EAC7B,sCAAuC,CAAC,KAAK,EAC7C,gBAAiB,CAAC,KAAK,EACvB,qBAAsB,CAAC,KAAK,EAC5B,gBAAiB,CAAC,MAAM,EACxB,sBAAuB,CAAC,OAAO,EAC/B,sBAAuB,CAAC,OAAO,EAC/B,sBAAuB,CAAC,OAAO,EAC/B,wBAAyB,CAAC,KAAK,EAC/B,+BAAgC,CAAC,KAAK,EACtC,eAAgB,CAAC,KAAK,EACtB,wBAAyB,CAAC,KAAK,EAC/B,oBAAqB,CAAC,IAAI,EAC1B,qBAAsB,CAAC,MAAM,EAC7B,qBAAsB,CAAC,MAAM,EAC7B,mCAAoC,CAAC,KAAK,EAC1C,mBAAoB,CAAC,KAAK,EAC1B,yBAA0B,CAAC,MAAM,EACjC,aAAc,CAAC,IAAK,KAAK,EACzB,WAAY,CAAC,IAAK,KAAM,MAAO,MAAO,IAAK,KAAM,KAAK,EACtD,mBAAoB,CAAC,KAAK,EAC1B,iBAAkB,CAAC,IAAK,MAAO,MAAO,KAAK,EAC3C,6BAA8B,CAAC,KAAK,EACpC,qBAAsB,CAAC,MAAM,EAC7B,aAAc,CAAC,KAAK,EACpB,kBAAmB,CAAC,KAAK,EACzB,aAAc,CAAC,KAAK,EACpB,cAAe,CAAC,MAAM,EACtB,aAAc,CAAC,MAAM,EACrB,gBAAiB,CAAC,IAAK,KAAK,EAC5B,oBAAqB,CAAC,KAAK,EAC3B,cAAe,CAAC,MAAM,EACtB,cAAe,CAAC,MAAM,EACtB,gBAAiB,CAAC,KAAK,EACvB,aAAc,CAAC,KAAK,EACpB,kBAAmB,CAAC,KAAK,EACzB,kBAAmB,CAAC,IAAI,EACxB,mBAAoB,CAAC,KAAK,EAC1B,eAAgB,CAAC,KAAK,EACtB,oBAAqB,CAAC,MAAO,MAAM,EACnC,wBAAyB,CAAC,MAAO,MAAM,EACvC,oBAAqB,CAAC,MAAO,MAAM,EACnC,oBAAqB,CAAC,MAAO,MAAM,EACnC,uBAAwB,CAAC,MAAO,MAAM,EACtC,qBAAsB,CAAC,KAAK,EAC5B,gBAAiB,CAAC,KAAK,EACvB,oBAAqB,CAAC,MAAO,KAAK,EAClC,mCAAoC,CAAC,KAAK,EAC1C,qBAAsB,CAAC,MAAO,MAAM,EACpC,iBAAkB,CAAC,KAAK,EACxB,cAAe,CAAC,KAAK,EACrB,cAAe,CAAC,KAAK,EACrB,cAAe,CAAC,KAAK,EACrB,cAAe,CAAC,KAAK,EACrB,mBAAoB,CAAC,MAAO,OAAQ,KAAK,EACzC,cAAe,CAAC,KAAK,EACrB,iBAAkB,CAAC,MAAO,KAAK,EAC/B,iBAAkB,CAAC,KAAK,EACxB,gBAAiB,CAAC,IAAI,EACtB,iBAAkB,CAAC,KAAK,EACxB,iBAAkB,CAAC,KAAK,EACxB,iBAAkB,CAAC,KAAK,EACxB,kBAAmB,CAAC,KAAK,EACzB,oBAAqB,CAAC,OAAO,EAC7B,cAAe,CAAC,KAAK,EACrB,0BAA2B,CAAC,KAAK,CACrC,EACA,OAAO,OAAOA,EAAK,EC7sBnB,MAAMA,GAAQ,CACV,2BAA4B,CAAC,IAAI,EACjC,2BAA4B,CAAC,cAAc,EAC3C,yBAA0B,CAAC,IAAI,EAC/B,mBAAoB,CAAC,MAAM,EAC3B,yBAA0B,CAAC,YAAY,EACvC,uBAAwB,CAAC,MAAM,EAC/B,0BAA2B,CAAC,SAAS,EACrC,8BAA+B,CAAC,aAAa,EAC7C,0BAA2B,CAAC,SAAS,EACrC,2BAA4B,CAAC,KAAK,EAClC,4BAA6B,CAAC,MAAM,EACpC,4BAA6B,CAAC,MAAM,EACpC,mCAAoC,CAAC,KAAK,EAC1C,oCAAqC,CAAC,MAAM,EAC5C,mBAAoB,CAAC,MAAM,EAC3B,2BAA4B,CAAC,KAAK,EAClC,wBAAyB,CAAC,OAAO,EACjC,uBAAwB,CAAC,MAAM,EAC/B,8BAA+B,CAAC,OAAO,EACvC,6BAA8B,CAAC,OAAO,EACtC,0BAA2B,CAAC,OAAO,EACnC,0BAA2B,CAAC,OAAO,EACnC,yBAA0B,CAAC,OAAO,EAClC,sBAAuB,CAAC,KAAK,EAC7B,uBAAwB,CAAC,IAAI,EAC7B,kBAAmB,CAAC,KAAK,EACzB,uBAAwB,CAAC,KAAK,EAC9B,6BAA8B,CAAC,KAAK,EACpC,2BAA4B,CAAC,UAAU,EACvC,oBAAqB,CAAC,KAAK,EAC3B,0BAA2B,CAAC,KAAK,EACjC,uBAAwB,CAAC,MAAM,EAC/B,uBAAwB,CAAC,OAAO,EAChC,yBAA0B,CAAC,MAAM,EACjC,uBAAwB,CAAC,MAAM,EAC/B,4BAA6B,CAAC,WAAW,EACzC,uBAAwB,CAAC,MAAM,EAC/B,kBAAmB,CAAC,KAAK,EACzB,sBAAuB,CAAC,KAAK,EAC7B,kBAAmB,CAAC,KAAK,EACzB,sBAAuB,CAAC,KAAK,EAC7B,yBAA0B,CAAC,KAAK,EAChC,uBAAwB,CAAC,SAAS,EAClC,sBAAuB,CAAC,KAAK,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,kBAAmB,CAAC,KAAK,EACzB,mBAAoB,CAAC,IAAI,EACzB,oBAAqB,CAAC,OAAO,EAC7B,0BAA2B,CAAC,KAAK,EACjC,wBAAyB,CAAC,MAAO,OAAO,EACxC,oBAAqB,CAAC,OAAO,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,2BAA4B,CAAC,MAAO,MAAO,KAAK,EAChD,qCAAsC,CAAC,KAAK,EAC5C,sBAAuB,CAAC,OAAO,EAC/B,yBAA0B,CAAC,KAAK,EAChC,mBAAoB,CAAC,OAAQ,KAAK,EAClC,oBAAqB,CAAC,OAAO,EAC7B,0BAA2B,CAAC,QAAQ,EACpC,sBAAuB,CAAC,QAAQ,EAChC,sBAAuB,CAAC,KAAK,EAC7B,uBAAwB,CAAC,SAAS,EAClC,2BAA4B,CAAC,KAAK,EAClC,6BAA8B,CAAC,KAAK,EACpC,uBAAwB,CAAC,MAAM,EAC/B,4BAA6B,CAAC,aAAa,EAC3C,mBAAoB,CAAC,KAAK,EAC1B,0BAA2B,CAAC,MAAM,EAClC,0BAA2B,CAAC,KAAM,KAAM,IAAI,EAC5C,yBAA0B,CAAC,QAAQ,EACnC,mBAAoB,CAAC,MAAM,EAC3B,uCAAwC,CAAC,KAAK,EAC9C,qCAAsC,CAAC,OAAO,EAC9C,2BAA4B,CAAC,UAAU,EACvC,4BAA6B,CAAC,OAAO,EACrC,uBAAwB,CAAC,MAAM,EAC/B,0BAA2B,CAAC,MAAM,EAClC,0BAA2B,CAAC,MAAM,EAClC,uBAAwB,CAAC,MAAM,EAC/B,mBAAoB,CAAC,MAAO,MAAM,EAClC,kBAAmB,CAAC,OAAQ,QAAS,OAAQ,KAAK,EAClD,mBAAoB,CAAC,MAAM,EAC3B,yBAA0B,CAAC,YAAY,EACvC,qBAAsB,CAAC,MAAO,KAAK,EACnC,kBAAmB,CAAC,KAAK,EACzB,sBAAuB,CAAC,IAAI,EAC5B,wBAAyB,CAAC,IAAI,EAC9B,mBAAoB,CAAC,KAAK,EAC1B,2BAA4B,CACxB,MACA,MACA,MACA,MACA,KACA,OACA,QACA,MACA,MACA,OACA,MACA,SACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACR,EACI,kBAAmB,CAAC,KAAK,EACzB,gCAAiC,CAAC,KAAK,EACvC,kBAAmB,CAAC,KAAK,EACzB,wBAAyB,CAAC,OAAO,EACjC,sBAAuB,CACnB,SACA,UACA,SACA,SACA,MACA,MACR,EACI,mBAAoB,CAAC,MAAM,EAC3B,8BAA+B,CAAC,MAAM,EACtC,kCAAmC,CAAC,KAAK,EACzC,kBAAmB,CAAC,KAAK,EACzB,4BAA6B,CAAC,KAAK,EACnC,uBAAwB,CAAC,KAAK,EAC9B,4BAA6B,CAAC,MAAO,MAAM,EAC3C,yBAA0B,CAAC,KAAK,EAChC,qBAAsB,CAAC,KAAK,EAC5B,yBAA0B,CAAC,MAAO,KAAK,EACvC,8BAA+B,CAAC,KAAK,EACrC,oBAAqB,CAAC,IAAI,EAC1B,6BAA8B,CAAC,IAAI,EACnC,wBAAyB,CAAC,KAAK,EAC/B,uBAAwB,CAAC,KAAK,EAC9B,2BAA4B,CAAC,SAAS,EACtC,sBAAuB,CAAC,KAAK,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,yBAA0B,CAAC,KAAM,MAAO,IAAI,EAC5C,6BAA8B,CAAC,OAAO,EACtC,uBAAwB,CAAC,SAAS,EAClC,wBAAyB,CAAC,MAAM,EAChC,sBAAuB,CAAC,MAAO,KAAK,EACpC,0BAA2B,CAAC,KAAK,EACjC,sCAAuC,CAAC,KAAK,EAC7C,iCAAkC,CAAC,IAAI,EACvC,sCAAuC,CAAC,KAAK,EAC7C,+BAAgC,CAAC,IAAI,EACrC,4BAA6B,CAAC,MAAM,EACpC,+BAAgC,CAAC,KAAK,EACtC,4BAA6B,CAAC,MAAM,EACpC,gCAAiC,CAAC,KAAK,EACvC,4BAA6B,CAAC,KAAK,EACnC,uBAAwB,CAAC,KAAK,EAC9B,sBAAuB,CAAC,KAAK,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,kBAAmB,CAAC,KAAK,EACzB,uBAAwB,CAAC,MAAM,EAC/B,8BAA+B,CAAC,KAAK,EACrC,+BAAgC,CAAC,KAAK,EACtC,8BAA+B,CAAC,KAAK,EACrC,+BAAgC,CAAC,KAAK,EACtC,kBAAmB,CAAC,KAAK,EACzB,wBAAyB,CAAC,QAAQ,EAClC,yBAA0B,CAAC,SAAS,EACpC,qCAAsC,CAAC,QAAQ,EAC/C,0CAA2C,CAAC,QAAQ,EACpD,sBAAuB,CAAC,KAAK,EAC7B,oBAAqB,CAAC,MAAO,OAAO,EACpC,uBAAwB,CAAC,MAAO,MAAM,EACtC,2BAA4B,CAAC,IAAI,EACjC,iCAAkC,CAAC,KAAK,EACxC,kBAAmB,CAAC,KAAK,EACzB,mBAAoB,CAAC,MAAM,EAC3B,uBAAwB,CAAC,OAAO,EAChC,sBAAuB,CAAC,KAAK,EAC7B,uBAAwB,CAAC,MAAM,EAC/B,uBAAwB,CAAC,MAAM,EAC/B,uBAAwB,CAAC,SAAS,EAClC,sBAAuB,CAAC,MAAO,WAAW,EAC1C,yBAA0B,CAAC,KAAK,EAChC,+BAAgC,CAAC,KAAK,EACtC,mBAAoB,CAAC,MAAM,EAC3B,mBAAoB,CAAC,MAAM,EAC3B,uBAAwB,CAAC,MAAM,EAC/B,qBAAsB,CAAC,KAAK,EAC5B,+BAAgC,CAAC,QAAQ,EACzC,iCAAkC,CAAC,IAAI,EACvC,2BAA4B,CAAC,MAAM,EACnC,mBAAoB,CAAC,MAAM,EAC3B,8BAA+B,CAAC,KAAK,EACrC,qBAAsB,CAAC,KAAK,EAC5B,qBAAsB,CAAC,KAAK,EAC5B,uBAAwB,CAAC,MAAM,EAC/B,2BAA4B,CAAC,UAAU,EACvC,uBAAwB,CAAC,MAAM,EAC/B,2BAA4B,CAAC,KAAK,EAClC,4BAA6B,CAAC,KAAK,EACnC,4BAA6B,CAAC,KAAK,EACnC,0BAA2B,CAAC,KAAK,EACjC,0BAA2B,CAAC,KAAK,EACjC,uBAAwB,CAAC,MAAM,EAC/B,mBAAoB,CAAC,MAAM,EAC3B,wBAAyB,CAAC,QAAS,KAAK,EACxC,wBAAyB,CAAC,KAAK,EAC/B,kBAAmB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC9C,sBAAuB,CAAC,KAAK,EAC7B,sBAAuB,CAAC,KAAK,EAC7B,wBAAyB,CAAC,KAAK,EAC/B,uBAAwB,CAAC,OAAQ,MAAM,EACvC,uBAAwB,CAAC,MAAM,EAC/B,qBAAsB,CAAC,OAAQ,QAAS,OAAQ,KAAK,EACrD,mBAAoB,CAAC,MAAM,EAC3B,sBAAuB,CAAC,KAAK,EAC7B,kBAAmB,CAAC,KAAK,EACzB,4BAA6B,CAAC,QAAQ,EACtC,aAAc,CAAC,OAAO,EACtB,YAAa,CAAC,OAAQ,KAAK,EAC3B,cAAe,CAAC,KAAK,EACrB,YAAa,CAAC,KAAK,EACnB,cAAe,CAAC,KAAM,KAAK,EAC3B,aAAc,CAAC,MAAO,OAAQ,MAAO,KAAK,EAC1C,mBAAoB,CAAC,MAAM,EAC3B,YAAa,CAAC,MAAM,EACpB,YAAa,CAAC,MAAO,OAAQ,KAAK,EAClC,aAAc,CAAC,OAAQ,MAAO,OAAQ,MAAO,MAAO,KAAK,EACzD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAM,EACzC,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,KAAK,EACpB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,WAAY,CAAC,IAAI,EACjB,kBAAmB,CAAC,KAAK,EACzB,WAAY,CAAC,KAAK,EAClB,WAAY,CAAC,KAAK,EAClB,YAAa,CAAC,MAAM,EACpB,aAAc,CAAC,OAAO,EACtB,aAAc,CAAC,KAAK,EACpB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,MAAO,KAAK,EAC1B,YAAa,CAAC,KAAK,EACnB,kBAAmB,CAAC,MAAM,EAC1B,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,cAAe,CAAC,IAAI,EACpB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,sBAAuB,CAAC,OAAO,EAC/B,aAAc,CAAC,MAAM,EACrB,sBAAuB,CAAC,OAAO,EAC/B,cAAe,CAAC,MAAM,EACtB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,MAAO,MAAM,EAC3B,aAAc,CAAC,MAAO,OAAQ,KAAK,EACnC,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,KAAK,EACpB,YAAa,CAAC,MAAO,MAAM,EAC3B,YAAa,CAAC,MAAO,KAAK,EAC1B,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAM,EACrB,cAAe,CAAC,MAAM,EACtB,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,gBAAiB,CAAC,MAAO,MAAM,EAC/B,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAO,MAAM,EAC5B,gBAAiB,CAAC,KAAK,EACvB,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,KAAK,EACnB,mCAAoC,CAAC,0BAA0B,EAC/D,iBAAkB,CAAC,OAAO,EAC1B,iCAAkC,CAAC,OAAO,EAC1C,0CAA2C,CAAC,OAAO,EACnD,yBAA0B,CAAC,OAAO,EAClC,iBAAkB,CAAC,MAAO,OAAQ,MAAO,OAAO,EAChD,YAAa,CAAC,KAAK,EACnB,kBAAmB,CAAC,MAAM,EAC1B,oBAAqB,CAAC,KAAK,EAC3B,aAAc,CAAC,MAAO,MAAM,EAC5B,WAAY,CAAC,IAAI,EACjB,aAAc,CAAC,MAAO,OAAQ,MAAM,EACpC,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,OAAQ,MAAO,QAAS,MAAO,KAAK,EACnD,iBAAkB,CAAC,MAAM,EACzB,iBAAkB,CAAC,MAAM,EACzB,qBAAsB,CAAC,OAAO,EAC9B,YAAa,CAAC,KAAK,EACnB,YAAa,CAAC,KAAK,EACnB,aAAc,CAAC,MAAO,MAAM,EAC5B,mBAAoB,CAAC,QAAS,OAAO,EACrC,wBAAyB,CAAC,MAAM,EAChC,iBAAkB,CAAC,QAAS,OAAO,EACnC,gBAAiB,CAAC,MAAO,MAAM,EAC/B,iBAAkB,CAAC,MAAM,EACzB,sBAAuB,CAAC,WAAY,UAAU,EAC9C,gBAAiB,CAAC,MAAO,KAAK,EAC9B,oBAAqB,CAAC,SAAU,WAAW,EAC3C,WAAY,CAAC,KAAK,EAClB,WAAY,CAAC,KAAK,EAClB,YAAa,CAAC,OAAQ,MAAO,OAAO,EACpC,YAAa,CAAC,MAAM,EACpB,kBAAmB,CAAC,KAAM,KAAK,EAC/B,WAAY,CAAC,KAAK,EAClB,YAAa,CAAC,MAAM,EACpB,gBAAiB,CAAC,KAAM,UAAU,EAClC,cAAe,CAAC,KAAK,EACrB,WAAY,CAAC,KAAK,EAClB,UAAW,CAAC,IAAI,EAChB,aAAc,CAAC,MAAO,OAAQ,OAAQ,MAAO,OAAQ,MAAO,KAAM,KAAK,EACvE,gBAAiB,CAAC,KAAK,EACvB,WAAY,CAAC,MAAM,EACnB,YAAa,CAAC,OAAQ,KAAK,EAC3B,YAAa,CAAC,MAAM,EACpB,YAAa,CAAC,OAAQ,KAAK,EAC3B,YAAa,CAAC,MAAM,EACpB,cAAe,CAAC,SAAU,MAAM,EAChC,4BAA6B,CAAC,KAAK,EACnC,aAAc,CAAC,IAAK,KAAM,OAAQ,MAAO,KAAM,IAAI,EACnD,cAAe,CAAC,KAAK,EACrB,gBAAiB,CAAC,MAAO,OAAQ,MAAM,EACvC,aAAc,CAAC,OAAO,EACtB,WAAY,CAAC,KAAK,EAClB,YAAa,CAAC,MAAM,EACpB,WAAY,CAAC,MAAM,EACnB,YAAa,CAAC,OAAQ,KAAK,EAC3B,aAAc,CAAC,MAAO,MAAM,EAC5B,cAAe,CAAC,KAAK,EACrB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,aAAc,CAAC,MAAM,EACrB,oBAAqB,CAAC,KAAK,EAC3B,aAAc,CAAC,MAAM,EACrB,YAAa,CAAC,OAAQ,OAAO,EAC7B,YAAa,CAAC,MAAO,MAAM,EAC3B,aAAc,CAAC,KAAM,MAAO,OAAQ,KAAK,EACzC,YAAa,CAAC,MAAO,OAAQ,MAAM,EACnC,aAAc,CAAC,OAAQ,MAAO,MAAO,MAAO,KAAK,EACjD,YAAa,CAAC,KAAK,EACnB,kBAAmB,CAAC,KAAM,KAAK,EAC/B,aAAc,CAAC,MAAM,CACzB,EACA,OAAO,OAAOA,EAAK,EC5WnB,IAAIC,GAAkE,SAAUpkC,EAAU+Y,EAAOsrB,EAAMlxC,EAAG,CACtG,GAAIkxC,IAAS,KAAO,CAAClxC,EAAG,MAAM,IAAI,UAAU,+CAA+C,EAC3F,GAAI,OAAO4lB,GAAU,WAAa/Y,IAAa+Y,GAAS,CAAC5lB,EAAI,CAAC4lB,EAAM,IAAI/Y,CAAQ,EAAG,MAAM,IAAI,UAAU,0EAA0E,EACjL,OAAOqkC,IAAS,IAAMlxC,EAAIkxC,IAAS,IAAMlxC,EAAE,KAAK6M,CAAQ,EAAI7M,EAAIA,EAAE,MAAQ4lB,EAAM,IAAI/Y,CAAQ,CAChG,EACIskC,GAAuBC,GAAuBC,GAClD,MAAMC,EAAK,CACP,eAAepmC,EAAM,CACjBimC,GAAsB,IAAI,KAAM,IAAI,GAAK,EACzCC,GAAsB,IAAI,KAAM,IAAI,GAAK,EACzCC,GAAuB,IAAI,KAAM,IAAI,GAAK,EAC1C,UAAWxb,KAAO3qB,EACd,KAAK,OAAO2qB,CAAG,CAEvB,CACA,OAAO0b,EAASC,EAAQ,GAAO,CAC3B,OAAS,CAAC9nC,EAAM+nC,CAAU,IAAK,OAAO,QAAQF,CAAO,EAAG,CACpD7nC,EAAOA,EAAK,YAAW,EACvB+nC,EAAaA,EAAW,IAAKC,GAAQA,EAAI,aAAa,EACjDT,GAAuB,KAAMI,GAAwB,GAAG,EAAE,IAAI3nC,CAAI,GACnEunC,GAAuB,KAAMI,GAAwB,GAAG,EAAE,IAAI3nC,EAAM,IAAI,GAAK,EAEjF,MAAMioC,EAAgBV,GAAuB,KAAMI,GAAwB,GAAG,EAAE,IAAI3nC,CAAI,EACxF,IAAIlJ,EAAQ,GACZ,QAASoxC,KAAaH,EAAY,CAC9B,MAAMI,EAAUD,EAAU,WAAW,GAAG,EAOxC,GANAA,EAAYC,EAAUD,EAAU,MAAM,CAAC,EAAIA,EAC3CD,GAAe,IAAIC,CAAS,EACxBpxC,GACAywC,GAAuB,KAAMG,GAAuB,GAAG,EAAE,IAAI1nC,EAAMkoC,CAAS,EAEhFpxC,EAAQ,GACJqxC,EACA,SACJ,MAAMC,EAAcb,GAAuB,KAAME,GAAuB,GAAG,EAAE,IAAIS,CAAS,EAC1F,GAAIE,GAAeA,GAAepoC,GAAQ,CAAC8nC,EACvC,MAAM,IAAI,MAAM,IAAI9nC,CAAI,OAAOkoC,CAAS,qBAAqBE,CAAW,OAAOF,CAAS,qDAAqD,EAEjJX,GAAuB,KAAME,GAAuB,GAAG,EAAE,IAAIS,EAAWloC,CAAI,CAChF,CACJ,CACA,OAAO,IACX,CACA,QAAQupB,EAAM,CACV,GAAI,OAAOA,GAAS,SAChB,OAAO,KACX,MAAM5sB,EAAO4sB,EAAK,QAAQ,YAAa,EAAE,EAAE,YAAW,EAChDye,EAAMrrC,EAAK,QAAQ,SAAU,EAAE,EAAE,YAAW,EAC5C0rC,EAAU1rC,EAAK,OAAS4sB,EAAK,OAEnC,MAAI,EADWye,EAAI,OAASrrC,EAAK,OAAS,IAC3B0rC,EACJ,KACJd,GAAuB,KAAME,GAAuB,GAAG,EAAE,IAAIO,CAAG,GAAK,IAChF,CACA,aAAahoC,EAAM,CACf,OAAI,OAAOA,GAAS,SACT,MACXA,EAAOA,GAAM,QAAQ,GAAG,EAAE,CAAC,GAClBA,GAAQunC,GAAuB,KAAMG,GAAuB,GAAG,EAAE,IAAI1nC,EAAK,KAAI,EAAG,YAAW,CAAE,IAAM,KACjH,CACA,iBAAiBA,EAAM,CACnB,OAAI,OAAOA,GAAS,SACT,KACJunC,GAAuB,KAAMI,GAAwB,GAAG,EAAE,IAAI3nC,EAAK,YAAW,CAAE,GAAK,IAChG,CACA,SAAU,CACN,KAAK,OAAS,IAAM,CAChB,MAAM,IAAI,MAAM,8HAA8H,CAClJ,EACA,OAAO,OAAO,IAAI,EAClB,UAAW+nC,KAAcR,GAAuB,KAAMI,GAAwB,GAAG,EAAE,SAC/E,OAAO,OAAOI,CAAU,EAE5B,OAAO,IACX,CACA,eAAgB,CACZ,MAAO,CACH,MAAOR,GAAuB,KAAME,GAAuB,GAAG,EAC9D,WAAYF,GAAuB,KAAMG,GAAuB,GAAG,CAC/E,CACI,CACJ,CACAD,GAAwB,IAAI,QAAWC,GAAwB,IAAI,QAAWC,GAAyB,IAAI,QC9E3G,IAAAW,GAAe,IAAIV,GAAKW,GAAeC,EAAU,EAAE,QAAO,uKCkCnD,IAAMC,GAAN,cAA4BC,EAAgB,CAGjD,YACoBviB,EAEDwiB,EAEAC,EACjB,CACA,MAAMziB,EAAQ,kCAAkC,EAJ/B,KAAA,8BAAAwiB,EAEA,KAAA,sBAAAC,CAGnB,CAViB,YAAc,cAY/B,MAAa,gBAAmC,CAC9C,MAAO,EACT,CAEA,eAAepiB,EAAcqiB,EAAiBC,EAA2B,CACvE,KAAK,QAAQ,MAAM,sBAAuBtiB,CAAI,EAC9C,IAAIuiB,EAAc,GAAG,KAAK,WAAW,WAAW,aAAaviB,CAAI,GACjE,OAAIsiB,IACFC,EAAc,GAAGA,CAAW,QAAQD,CAAQ,IAEvCC,CACT,CAEQ,mBAAmBviB,EAAcqiB,EAAiBC,EAAmB,CAC3E,MAAMxZ,EAAQ9I,EAAK,MAAM,GAAG,EAC5B8I,EAAMA,EAAM,OAAS,CAAC,EAAI,IAAIA,EAAMA,EAAM,OAAS,CAAC,CAAC,GACrD,IAAIyZ,EAAc,GAAG,KAAK,WAAW,WAAW,aAAazZ,EAAM,KAAK,GAAG,CAAC,GAC5E,OAAIwZ,IACFC,EAAc,GAAGA,CAAW,QAAQD,CAAQ,IAEvCC,CACT,CAEA,mBAAmBhiB,EAA4B,CAC7C,IAAIP,EAAO,KACX,OAAIO,EAAI,WAAW,KAAK,WAAW,OAAO,IAExCP,EADYO,EAAI,QAAQ,KAAK,WAAW,QAAS,EAAE,GAG9CP,CACT,CAEA,YAAYA,EAAcQ,EAAuB,CAC/C,MAAMgiB,EAAYxiB,EAAK,QAAQ,SAAU,EAAE,EAC3C,MAAO,GAAG,KAAK,WAAW,OAAO,IAAIwiB,CAAS,GAAGhiB,CAAK,EACxD,CAEA,SAAW,SAAUxsB,EAAqB,CACxC,IAAIyuC,EAAO,EACT11C,EACA21C,EACF,GAAI1uC,EAAI,SAAW,EACjB,MAAO,GAAKyuC,EAEd,IAAK11C,EAAI,EAAGA,EAAIiH,EAAI,OAAQjH,IAC1B21C,EAAM1uC,EAAI,WAAWjH,CAAC,EACtB01C,GAAQA,GAAQ,GAAKA,EAAOC,EAC5BD,GAAQ,EAEV,MAAO,GAAKA,CACd,EAEA,MAAM,eACJziB,EACAM,EACAgiB,EAC+B,CAC/B,KAAK,QAAQ,MAAM,sBAAuBtiB,CAAI,EAC9C,MAAMO,EAAM,KAAK,eAAe,GAAGP,CAAI,MAAOM,EAAQgiB,CAAQ,EACxDK,EAAW,MAAM,MAAMpiB,EAAK,CAChC,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,iCAAA,CACV,CACD,EAED,GAAIoiB,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CACnD,KAAM,CAAE,QAAA1hB,EAAS,GAAG2I,GAAS,IAAI6W,KAAoB,SACnD,MAAMkC,EAAS,KAAA,CAAK,EAEhB,CAAE,KAAAtO,EAAM,KAAAne,EAAM,SAAA0sB,CAAA,EAAa,MAAM,KAAK,mBAC1C5iB,EACAsiB,CAAA,EAGF,OAAO,OAAO,OAAO,IAAIviB,GAAmB,CAC1C,OAAQkB,EACR,OAAQ,eACR,GAAG2I,EACH,GAAI5J,EACJ,SAAU4J,EAAK,KACf,YAAaA,EAAK,KAClB,QACG,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBACjD,GACF,qBAAsByK,EACtB,WAAY,CAAE,KAAAne,EAAM,SAAA0sB,CAAA,CAAS,CAC9B,CACH,KACE,OAEJ,CAMA,MAAM,eAAe5iB,EAAoD,CACvE,MAAMO,EAAM,GAAG,KAAK,mBAAmBP,EAAM,EAAE,CAAC,IAAI,KAAK,WAAW,GAC9D2iB,EAAW,MAAM,MAAMpiB,EAAK,CAChC,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,iCAAA,CACV,CACD,EACD,GAAIoiB,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CACnD,MAAME,EAAwC,MAAMF,EAAS,KAAA,EAC7D,MAAO,CACL,YAAa,MAAM,QAAQ,IACzBE,EAAa,IACX,MAAOv8B,GAAO,MAAM,KAAK,cAAc0Z,EAAM1Z,EAAE,IAAI,CAAA,CACrD,EAEF,MAAOu8B,EAAa,MAAA,CAExB,KACE,OAAO,CAAE,YAAa,GAAI,MAAO,CAAA,CAErC,CAEA,MAAM,cACJ7iB,EACA9J,EACqC,CACrC,MAAMqK,EAAM,GAAG,KAAK,mBAAmBP,EAAM,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI9J,CAAI,GACtEysB,EAAW,MAAM,MAAMpiB,EAAK,CAChC,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,oCAAA,CACV,CACD,EACD,GAAIoiB,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CACnD,MAAME,EAKF,MAAMF,EAAS,KAAA,EAEbG,EAAa,IAAI,IAAI,GAAG,KAAK,WAAW,WAAW,UAAU,EACnEA,EAAW,OAAS,IAAI,gBAAgB,CACtC,CAAC,OAAQD,EAAa,IAAI,EAC1B,CAAC,WAAY,GAAG,CAAA,CACjB,EAAE,SAAA,EAQH,MAAME,EAED,MATmB,MAAM,MAAMD,EAAY,CAC9C,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,6BAAA,CACV,CACD,GAG0B,KAAA,EAE3B,MAAO,CACL,UAAWD,EAAa,KACxB,GAAIA,EAAa,KACjB,KAAMA,EAAa,KACnB,KAAMA,EAAa,aACnB,SAAUf,GAAK,QAAQe,EAAa,IAAI,GAAK,GAC7C,KAAM,IAAI,KAAKE,EAAoB,CAAC,EAAE,OAAO,OAAO,IAAI,EACxD,OAAQA,EAAoB,CAAC,EAAE,OAAO,OAAO,IAAA,CAEjD,KACE,OAEJ,CAEA,MAAM,iBAAqC,CACzC,OAAO,IAAIhjB,EACb,CAEA,MAAM,cAAgC,CACpC,MAAO,EACT,CAEA,MAAM,KAAKC,EAAcgB,EAAeC,EAAmC,CACzE,MAAM+hB,EAAc,KAAK,eAAe,GAAGhjB,CAAI,MAAO,EAAE,EAElDijB,EAAe,MAAM,MAAMD,EAAa,CAC5C,OAAQ,OACR,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,oCAAA,CACV,CACD,EACKE,EACJD,EAAa,QAAU,KAAOA,EAAa,OAAS,IAChDA,EAAa,QAAQ,IAAI,MAAM,EAAG,MAAM,EAAG,EAAE,EAC7C,OAEAvC,EAAc,IAAIG,GAAA,EAAoB,UAAU,CACpD,QAAA5f,EACA,KAAMD,EACN,OAAQ,cAAA,CACT,EACKmiB,EAAc,MAAM,MAAMH,EAAa,CAC3C,OAAQ,MACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAEhC,KAAM,KAAK,UAAU,CACnB,QAAS,KAAKtC,CAAW,EACzB,QAAS,UAAU1gB,CAAI,GACvB,IAAAkjB,CAAA,CACD,CAAA,CACF,EACD,GAAI,CAACC,EAAY,GAAI,CACnB,MAAMC,EAAe,MAAMD,EAAY,KAAA,EAEvC,WAAK,sBACF,MACA,MAAM,uBAAuBnjB,CAAI,aAAaojB,CAAY,EAAE,EAEzD,IAAI,MAAMA,CAAY,CAC9B,CAEF,CAEA,MAAM,gBACJpjB,EACAkB,EAC6C,CAC7C,MAAMmiB,EAAsC,CAAA,EAE5C,UAAWC,KAAQpiB,EAAO,CACxB,MAAMqiB,EAAU,GAAG,KAAK,mBAAmBvjB,EAAM,EAAE,CAAC,IAAI,KAAK,WAAW,IAAIsjB,EAAK,IAAI,GAC/EJ,EAAM,MAAM,KAAK,qBAAqBK,CAAO,EAEnDF,EAAK,KAAK,KAAK,iBAAiBE,EAASD,EAAMJ,EAAKljB,CAAI,CAAC,CAC3D,CACA,OAAO,QAAQ,IAAIqjB,CAAI,CACzB,CAEA,MAAc,qBAAqBE,EAAiB,CAClD,MAAMN,EAAe,MAAM,MAAMM,EAAS,CACxC,OAAQ,OACR,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,oCAAA,CACV,CACD,EACD,OAAON,EAAa,QAAU,KAAOA,EAAa,OAAS,IACvDA,EAAa,QAAQ,IAAI,MAAM,EAAG,MAAM,EAAG,EAAE,EAC7C,MACN,CAEQ,iBACNM,EACAD,EACAJ,EACAljB,EAC6B,CAC7B,OAAO,IAAI,QAASwjB,GAAY,CAC9B,MAAMC,EAAS,IAAI,WACnBA,EAAO,OAAS,SAAY,CAC1B,MAAMN,EAAc,MAAM,MAAMI,EAAS,CACvC,OAAQ,MACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAEhC,KAAM,KAAK,UAAU,CACnB,QAAUE,EAAO,OAAmB,MAAM,GAAG,EAAE,CAAC,EAChD,QAAS,UAAUH,EAAK,IAAI,GAC5B,IAAAJ,CAAA,CACD,CAAA,CACF,EACD,GAAKC,EAAY,GAUfK,GAAS,MAAML,EAAY,KAAA,GAAQ,QAAQ,YAAsB,MAV9C,CACnB,MAAMC,EAAe,MAAMD,EAAY,KAAA,EAEvC,KAAK,sBACF,MACA,MACC,+BAA+BG,EAAK,IAAI,aAAatjB,CAAI,aAAaojB,CAAY,EAAA,EAEtFI,EAAQ,MAAS,CACnB,CAGF,EACAC,EAAO,cAAcH,CAAI,CAC3B,CAAC,CACH,CAEA,MAAM,OAAOtjB,EAA6D,CAIxE,MAAM0jB,EAAS,KAAK,WAAW,QAAQ,MAAM,GAAG,EAAE,IAAA,EAG5CC,GACJ,MACE,MAAM,MAAM,GAAG,KAAK,WAAW,WAAW,kBAAkBD,CAAM,GAAI,CACpE,OAAQ,MACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,CAChC,CACD,GACD,QACF,OAAO,IAKHE,EAAe,MAAM,MACzB,GAAG,KAAK,WAAW,WAAW,aAC9B,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAEhC,KAAM,KAAK,UAAU,CACnB,UAAWF,EACX,KAAM,CACJ,CACE,KAAM,GAAG1jB,CAAI,MACb,KAAM,SACN,KAAM,OACN,IAAK,IAAA,CACP,CACF,CACD,CAAA,CACH,EAGF,GAAI,CAAC4jB,EAAa,GAChB,MAAO,CAAE,QAAS,GAAO,MAAO,MAAMA,EAAa,MAAK,EAI1D,MAAMC,EAAiB,MAAM,MAC3B,GAAG,KAAK,WAAW,WAAW,eAC9B,CACE,OAAQ,OACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAEhC,KAAM,KAAK,UAAU,CACnB,MAAO,MAAMD,EAAa,KAAA,GAAQ,IAClC,QAAS,UAAU5jB,CAAI,GACvB,QAAS,CAAC2jB,CAAU,CAAA,CACrB,CAAA,CACH,EAGF,OAAKE,EAAe,GAMb,MAAM,MACX,GAAG,KAAK,WAAW,WAAW,mBAAmBH,CAAM,GACvD,CACE,OAAQ,QACR,QAAS,CACP,eAAgB,8BAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAEhC,KAAM,KAAK,UAAU,CACnB,KAAM,MAAMG,EAAe,QAAQ,GAAA,CACpC,CAAA,CACH,EACA,KAAK,MAAOlB,GACRA,EAAS,GACJ,CAAE,QAAS,EAAA,EAEX,CAAE,QAAS,GAAO,MAAO,MAAMA,EAAS,MAAK,CAEvD,EAvBQ,CAAE,QAAS,GAAO,MAAO,MAAMkB,EAAe,MAAK,CAwB9D,CAEA,MAAM,MAAsD,CAE1D,MAAM,IAAI,MAAM,oBAAoB,CACtC,CAEA,MAAc,gBAAsD,CAClE,MAAMC,EAAsB,MAAM,KAAK,8BACpC,IAAA,GACC,uBAAA,EACEC,EAAsC,CAAA,EAC5C,OAAID,IACFC,EAAQ,cAAmBD,GAEtBC,CACT,CAEA,MAAc,mBACZ/jB,EACAsiB,EACyD,CACzD,GAAIA,EAAU,CACZ,MAAMQ,EAAa,IAAI,IACrB,GAAG,KAAK,WAAW,WAAW,YAAYR,CAAQ,EAAA,EAS9CS,EAEF,MAToB,MAAM,MAAMD,EAAY,CAC9C,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,6BAAA,CACV,CACD,GAGyB,KAAA,EAE1B,MAAO,CACL,KAAM,IAAI,KAAKC,EAAoB,OAAO,OAAO,IAAI,EACrD,SAAUA,EAAoB,OAAO,OAAO,MAC5C,KAAMA,EAAoB,OAAO,OAAO,IAAA,CAE5C,KAAO,CACL,MAAMD,EAAa,IAAI,IAAI,GAAG,KAAK,WAAW,WAAW,UAAU,EACnEA,EAAW,OAAS,IAAI,gBAAgB,CACtC,CAAC,OAAQ,GAAG9iB,CAAI,KAAK,EACrB,CAAC,WAAY,GAAG,CAAA,CACjB,EAAE,SAAA,EAQH,MAAM+iB,EAED,MATmB,MAAM,MAAMD,EAAY,CAC9C,MAAO,WACP,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,OAAQ,6BAAA,CACV,CACD,GAG0B,KAAA,EAE3B,MAAO,CACL,KAAM,IAAI,KAAKC,EAAoB,CAAC,EAAE,OAAO,OAAO,IAAI,EACxD,SAAUA,EAAoB,CAAC,EAAE,OAAO,OAAO,MAC/C,KAAMA,EAAoB,CAAC,EAAE,OAAO,OAAO,IAAA,CAE/C,CACF,CACF,EA7cad,GAANjuB,GAAA,CADNC,GAAA,EAKI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,+BAA+B,CAAA,EAEtCA,QAAO,uBAAuB,CAAA,CAAA,EAPtBkpB,EAAA,ECXb,SAAS+B,GACP9tB,EAC8C,CAC9C,OAAQ+tB,GACNA,EAAY,MAAQ/tB,GAAQ+tB,EAAY,MAAQ,IACpD,CCHO,IAAAC,GAAA,KAAoB,CACzB,YAAY1wB,EAAsB,CAChCA,EACG,KAAiB,YAAY,EAC7B,GAAG8N,EAAgB,EACnB,KAAK0iB,GAAmB,QAAQ,CAAC,EACpCxwB,EAAU,KAAc,SAAS,EAAE,GAAGyuB,EAAa,EAAE,UAAU,QAAQ,CACzE,CACF,2KCNO,IAAMkC,GAAN,cAAkC5iB,EAAkB,CAChD,QACA,QAET,YACoB5B,EACqBS,EACjBtH,EACtB,CACA,MAAM6G,CAAM,EACZ,KAAK,QAAU7G,EACf,KAAK,QAAUsH,EACf,KAAK,QAAQ,cAAc,IAAI,CACjC,CAES,YAAYiR,EAAyB,CAC5C,OAAOA,GAAU,MACnB,CAES,iBAA0B,CACjC,MAAO,MACT,CAES,SAAkB,CACzB,MAAO,WACT,CACF,EA1Ba8S,GAANnwB,GAAA,CADNC,GAAA,EAMI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,SAAS,CAAA,EAAGA,QAAM,WAAW,CAAA,EACpCA,QAAO,YAAY,CAAA,CAAA,EAPXorB,EAAA,ECvBb,MAAM36B,EAAE,CACN,KAAO,EACP,KACA,MACA,YAAYlD,KAAM,EAAG,CACnB,KAAK,KAAOA,EAAG,KAAK,MAAQ,CAC9B,CACF,CACA,MAAM+B,EAAE,CACN,KAAO,EACP,MACA,KAMA,SACA,YAAY/B,EAAG,EAAGnD,EAAG,CACnB,KAAK,MAAQ,EAAG,KAAK,KAAOmD,EAAG,KAAK,SAAWnD,GAAK,EACtD,CACF,CC3BA,MAAMihC,GAAgB,gLAChBC,GAAWD,GAAgB,+CACpBE,GAAa,IAAMF,GAAgB,KAAOC,GAAW,KAC5DE,GAAY,IAAI,OAAO,IAAMD,GAAa,GAAG,EAE5C,SAASE,GAAcxT,EAAQyT,EAAO,CAC3C,MAAMC,EAAU,CAAA,EAChB,IAAI1d,EAAQyd,EAAM,KAAKzT,CAAM,EAC7B,KAAOhK,GAAO,CACZ,MAAM2d,EAAa,CAAA,EACnBA,EAAW,WAAaF,EAAM,UAAYzd,EAAM,CAAC,EAAE,OACnD,MAAMzB,EAAMyB,EAAM,OAClB,QAAS10B,EAAQ,EAAGA,EAAQizB,EAAKjzB,IAC/BqyC,EAAW,KAAK3d,EAAM10B,CAAK,CAAC,EAE9BoyC,EAAQ,KAAKC,CAAU,EACvB3d,EAAQyd,EAAM,KAAKzT,CAAM,CAC3B,CACA,OAAO0T,CACT,CAEO,MAAME,GAAS,SAAU5T,EAAQ,CACtC,MAAMhK,EAAQud,GAAU,KAAKvT,CAAM,EACnC,MAAO,EAAEhK,IAAU,MAAQ,OAAOA,EAAU,IAC9C,EAEO,SAAS6d,GAAQ1pC,EAAG,CACzB,OAAO,OAAOA,EAAM,GACtB,CAiBO,MAAM2pC,GAA2B,CAItC,iBACA,WACA,UACA,mBACA,mBACA,mBACA,kBACF,EAEaC,GAAqB,CAAC,YAAa,cAAe,WAAW,ECxDpEC,GAAiB,CACrB,uBAAwB,GACxB,aAAc,CAAA,CAChB,EAGO,SAASC,GAASC,EAAS7iC,EAAS,CACzCA,EAAU,OAAO,OAAO,CAAA,EAAI2iC,GAAgB3iC,CAAO,EAKnD,MAAMshB,EAAO,CAAA,EACb,IAAIwhB,EAAW,GAGXC,EAAc,GAEdF,EAAQ,CAAC,IAAM,WAEjBA,EAAUA,EAAQ,OAAO,CAAC,GAG5B,QAASn4C,EAAI,EAAGA,EAAIm4C,EAAQ,OAAQn4C,IAElC,GAAIm4C,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,KAG3C,GAFAA,GAAK,EACLA,EAAIs4C,GAAOH,EAASn4C,CAAC,EACjBA,EAAE,IAAK,OAAOA,UACTm4C,EAAQn4C,CAAC,IAAM,IAAK,CAG7B,IAAIu4C,EAAcv4C,EAGlB,GAFAA,IAEIm4C,EAAQn4C,CAAC,IAAM,IAAK,CACtBA,EAAIw4C,GAAoBL,EAASn4C,CAAC,EAClC,QACF,KAAO,CACL,IAAIy4C,EAAa,GACbN,EAAQn4C,CAAC,IAAM,MAEjBy4C,EAAa,GACbz4C,KAGF,IAAIg6B,EAAU,GACd,KAAOh6B,EAAIm4C,EAAQ,QACjBA,EAAQn4C,CAAC,IAAM,KACfm4C,EAAQn4C,CAAC,IAAM,KACfm4C,EAAQn4C,CAAC,IAAM,KACfm4C,EAAQn4C,CAAC,IAAM;AAAA,GACfm4C,EAAQn4C,CAAC,IAAM,KAAMA,IAErBg6B,GAAWme,EAAQn4C,CAAC,EAWtB,GATAg6B,EAAUA,EAAQ,KAAI,EAGlBA,EAAQA,EAAQ,OAAS,CAAC,IAAM,MAElCA,EAAUA,EAAQ,UAAU,EAAGA,EAAQ,OAAS,CAAC,EAEjDh6B,KAEE,CAAC04C,GAAgB1e,CAAO,EAAG,CAC7B,IAAInC,EACJ,OAAImC,EAAQ,OAAO,SAAW,EAC5BnC,EAAM,2BAENA,EAAM,QAAUmC,EAAU,wBAErB2e,GAAe,aAAc9gB,EAAK+gB,GAAyBT,EAASn4C,CAAC,CAAC,CAC/E,CAEA,MAAM4B,EAASi3C,GAAiBV,EAASn4C,CAAC,EAC1C,GAAI4B,IAAW,GACb,OAAO+2C,GAAe,cAAe,mBAAqB3e,EAAU,qBAAsB4e,GAAyBT,EAASn4C,CAAC,CAAC,EAEhI,IAAI84C,EAAUl3C,EAAO,MAGrB,GAFA5B,EAAI4B,EAAO,MAEPk3C,EAAQA,EAAQ,OAAS,CAAC,IAAM,IAAK,CAEvC,MAAMC,EAAe/4C,EAAI84C,EAAQ,OACjCA,EAAUA,EAAQ,UAAU,EAAGA,EAAQ,OAAS,CAAC,EACjD,MAAM3hB,EAAU6hB,GAAwBF,EAASxjC,CAAO,EACxD,GAAI6hB,IAAY,GACdihB,EAAW,OAMX,QAAOO,GAAexhB,EAAQ,IAAI,KAAMA,EAAQ,IAAI,IAAKyhB,GAAyBT,EAASY,EAAe5hB,EAAQ,IAAI,IAAI,CAAC,CAE/H,SAAWshB,EACT,GAAK72C,EAAO,UAEL,IAAIk3C,EAAQ,KAAI,EAAG,OAAS,EACjC,OAAOH,GAAe,aAAc,gBAAkB3e,EAAU,+CAAgD4e,GAAyBT,EAASI,CAAW,CAAC,EACzJ,GAAI3hB,EAAK,SAAW,EACzB,OAAO+hB,GAAe,aAAc,gBAAkB3e,EAAU,yBAA0B4e,GAAyBT,EAASI,CAAW,CAAC,EACnI,CACL,MAAMU,EAAMriB,EAAK,IAAG,EACpB,GAAIoD,IAAYif,EAAI,QAAS,CAC3B,IAAIC,EAAUN,GAAyBT,EAASc,EAAI,WAAW,EAC/D,OAAON,GAAe,aACpB,yBAA2BM,EAAI,QAAU,qBAAuBC,EAAQ,KAAO,SAAWA,EAAQ,IAAM,6BAA+Blf,EAAU,KACjJ4e,GAAyBT,EAASI,CAAW,CAAC,CAClD,CAGI3hB,EAAK,QAAU,IACjByhB,EAAc,GAElB,MAlBE,QAAOM,GAAe,aAAc,gBAAkB3e,EAAU,iCAAkC4e,GAAyBT,EAASn4C,CAAC,CAAC,MAmBnI,CACL,MAAMm3B,EAAU6hB,GAAwBF,EAASxjC,CAAO,EACxD,GAAI6hB,IAAY,GAId,OAAOwhB,GAAexhB,EAAQ,IAAI,KAAMA,EAAQ,IAAI,IAAKyhB,GAAyBT,EAASn4C,EAAI84C,EAAQ,OAAS3hB,EAAQ,IAAI,IAAI,CAAC,EAInI,GAAIkhB,IAAgB,GAClB,OAAOM,GAAe,aAAc,sCAAuCC,GAAyBT,EAASn4C,CAAC,CAAC,EACtGsV,EAAQ,aAAa,QAAQ0kB,CAAO,IAAM,IAGnDpD,EAAK,KAAK,CAAE,QAAAoD,EAAS,YAAAue,CAAW,CAAE,EAEpCH,EAAW,EACb,CAIA,IAAKp4C,IAAKA,EAAIm4C,EAAQ,OAAQn4C,IAC5B,GAAIm4C,EAAQn4C,CAAC,IAAM,IACjB,GAAIm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAE1BA,IACAA,EAAIw4C,GAAoBL,EAASn4C,CAAC,EAClC,QACF,SAAWm4C,EAAQn4C,EAAI,CAAC,IAAM,KAE5B,GADAA,EAAIs4C,GAAOH,EAAS,EAAEn4C,CAAC,EACnBA,EAAE,IAAK,OAAOA,MAElB,eAEOm4C,EAAQn4C,CAAC,IAAM,IAAK,CAC7B,MAAMm5C,EAAWC,GAAkBjB,EAASn4C,CAAC,EAC7C,GAAIm5C,GAAY,GACd,OAAOR,GAAe,cAAe,4BAA6BC,GAAyBT,EAASn4C,CAAC,CAAC,EACxGA,EAAIm5C,CACN,SACMd,IAAgB,IAAQ,CAACgB,GAAalB,EAAQn4C,CAAC,CAAC,EAClD,OAAO24C,GAAe,aAAc,wBAAyBC,GAAyBT,EAASn4C,CAAC,CAAC,EAInGm4C,EAAQn4C,CAAC,IAAM,KACjBA,GAEJ,CACF,KAAO,CACL,GAAIq5C,GAAalB,EAAQn4C,CAAC,CAAC,EACzB,SAEF,OAAO24C,GAAe,cAAe,SAAWR,EAAQn4C,CAAC,EAAI,qBAAsB44C,GAAyBT,EAASn4C,CAAC,CAAC,CACzH,CAGF,GAAKo4C,EAEE,IAAIxhB,EAAK,QAAU,EACxB,OAAO+hB,GAAe,aAAc,iBAAmB/hB,EAAK,CAAC,EAAE,QAAU,KAAMgiB,GAAyBT,EAASvhB,EAAK,CAAC,EAAE,WAAW,CAAC,EAChI,GAAIA,EAAK,OAAS,EACvB,OAAO+hB,GAAe,aAAc,YAClC,KAAK,UAAU/hB,EAAK,IAAIvb,GAAKA,EAAE,OAAO,EAAG,KAAM,CAAC,EAAE,QAAQ,SAAU,EAAE,EACtE,WAAY,CAAE,KAAM,EAAG,IAAK,CAAC,CAAE,MANjC,QAAOs9B,GAAe,aAAc,sBAAuB,CAAC,EAS9D,MAAO,EACT,CAEA,SAASU,GAAaC,EAAM,CAC1B,OAAOA,IAAS,KAAOA,IAAS,KAAQA,IAAS;AAAA,GAAQA,IAAS,IACpE,CAMA,SAAShB,GAAOH,EAASn4C,EAAG,CAC1B,MAAMyY,EAAQzY,EACd,KAAOA,EAAIm4C,EAAQ,OAAQn4C,IACzB,GAAIm4C,EAAQn4C,CAAC,GAAK,KAAOm4C,EAAQn4C,CAAC,GAAK,IAAK,CAE1C,MAAMu5C,EAAUpB,EAAQ,OAAO1/B,EAAOzY,EAAIyY,CAAK,EAC/C,GAAIzY,EAAI,GAAKu5C,IAAY,MACvB,OAAOZ,GAAe,aAAc,6DAA8DC,GAAyBT,EAASn4C,CAAC,CAAC,EACjI,GAAIm4C,EAAQn4C,CAAC,GAAK,KAAOm4C,EAAQn4C,EAAI,CAAC,GAAK,IAAK,CAErDA,IACA,KACF,KACE,SAEJ,CAEF,OAAOA,CACT,CAEA,SAASw4C,GAAoBL,EAASn4C,EAAG,CACvC,GAAIm4C,EAAQ,OAASn4C,EAAI,GAAKm4C,EAAQn4C,EAAI,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,KAEzE,IAAKA,GAAK,EAAGA,EAAIm4C,EAAQ,OAAQn4C,IAC/B,GAAIm4C,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAC1EA,GAAK,EACL,KACF,UAGFm4C,EAAQ,OAASn4C,EAAI,GACrBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,IACnB,CACA,IAAIw5C,EAAqB,EACzB,IAAKx5C,GAAK,EAAGA,EAAIm4C,EAAQ,OAAQn4C,IAC/B,GAAIm4C,EAAQn4C,CAAC,IAAM,IACjBw5C,YACSrB,EAAQn4C,CAAC,IAAM,MACxBw5C,IACIA,IAAuB,GACzB,KAIR,SACErB,EAAQ,OAASn4C,EAAI,GACrBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KAEnB,IAAKA,GAAK,EAAGA,EAAIm4C,EAAQ,OAAQn4C,IAC/B,GAAIm4C,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAC1EA,GAAK,EACL,KACF,EAIJ,OAAOA,CACT,CAEA,MAAMy5C,GAAc,IACdtc,GAAc,IAOpB,SAAS0b,GAAiBV,EAASn4C,EAAG,CACpC,IAAI84C,EAAU,GACVY,EAAY,GACZC,EAAY,GAChB,KAAO35C,EAAIm4C,EAAQ,OAAQn4C,IAAK,CAC9B,GAAIm4C,EAAQn4C,CAAC,IAAMy5C,IAAetB,EAAQn4C,CAAC,IAAMm9B,GAC3Cuc,IAAc,GAChBA,EAAYvB,EAAQn4C,CAAC,EACZ05C,IAAcvB,EAAQn4C,CAAC,IAGhC05C,EAAY,YAELvB,EAAQn4C,CAAC,IAAM,KACpB05C,IAAc,GAAI,CACpBC,EAAY,GACZ,KACF,CAEFb,GAAWX,EAAQn4C,CAAC,CACtB,CACA,OAAI05C,IAAc,GACT,GAGF,CACL,MAAOZ,EACP,MAAO94C,EACP,UAAW25C,CACf,CACA,CAKA,MAAMC,GAAoB,IAAI,OAAO,yDAA2D,GAAG,EAInG,SAASZ,GAAwBF,EAASxjC,EAAS,CAKjD,MAAMqiC,EAAUF,GAAcqB,EAASc,EAAiB,EAClDC,EAAY,CAAA,EAElB,QAAS75C,EAAI,EAAGA,EAAI23C,EAAQ,OAAQ33C,IAAK,CACvC,GAAI23C,EAAQ33C,CAAC,EAAE,CAAC,EAAE,SAAW,EAE3B,OAAO24C,GAAe,cAAe,cAAgBhB,EAAQ33C,CAAC,EAAE,CAAC,EAAI,8BAA+B85C,GAAqBnC,EAAQ33C,CAAC,CAAC,CAAC,EAC/H,GAAI23C,EAAQ33C,CAAC,EAAE,CAAC,IAAM,QAAa23C,EAAQ33C,CAAC,EAAE,CAAC,IAAM,OAC1D,OAAO24C,GAAe,cAAe,cAAgBhB,EAAQ33C,CAAC,EAAE,CAAC,EAAI,sBAAuB85C,GAAqBnC,EAAQ33C,CAAC,CAAC,CAAC,EACvH,GAAI23C,EAAQ33C,CAAC,EAAE,CAAC,IAAM,QAAa,CAACsV,EAAQ,uBAEjD,OAAOqjC,GAAe,cAAe,sBAAwBhB,EAAQ33C,CAAC,EAAE,CAAC,EAAI,oBAAqB85C,GAAqBnC,EAAQ33C,CAAC,CAAC,CAAC,EAKpI,MAAM+5C,EAAWpC,EAAQ33C,CAAC,EAAE,CAAC,EAC7B,GAAI,CAACg6C,GAAiBD,CAAQ,EAC5B,OAAOpB,GAAe,cAAe,cAAgBoB,EAAW,wBAAyBD,GAAqBnC,EAAQ33C,CAAC,CAAC,CAAC,EAE3H,GAAI,CAAC,OAAO,UAAU,eAAe,KAAK65C,EAAWE,CAAQ,EAE3DF,EAAUE,CAAQ,EAAI,MAEtB,QAAOpB,GAAe,cAAe,cAAgBoB,EAAW,iBAAkBD,GAAqBnC,EAAQ33C,CAAC,CAAC,CAAC,CAEtH,CAEA,MAAO,EACT,CAEA,SAASi6C,GAAwB9B,EAASn4C,EAAG,CAC3C,IAAIue,EAAK,KAKT,IAJI45B,EAAQn4C,CAAC,IAAM,MACjBA,IACAue,EAAK,cAEAve,EAAIm4C,EAAQ,OAAQn4C,IAAK,CAC9B,GAAIm4C,EAAQn4C,CAAC,IAAM,IACjB,OAAOA,EACT,GAAI,CAACm4C,EAAQn4C,CAAC,EAAE,MAAMue,CAAE,EACtB,KACJ,CACA,MAAO,EACT,CAEA,SAAS66B,GAAkBjB,EAASn4C,EAAG,CAGrC,GADAA,IACIm4C,EAAQn4C,CAAC,IAAM,IACjB,MAAO,GACT,GAAIm4C,EAAQn4C,CAAC,IAAM,IACjB,OAAAA,IACOi6C,GAAwB9B,EAASn4C,CAAC,EAE3C,IAAIi5B,EAAQ,EACZ,KAAOj5B,EAAIm4C,EAAQ,OAAQn4C,IAAKi5B,IAC9B,GAAI,EAAAkf,EAAQn4C,CAAC,EAAE,MAAM,IAAI,GAAKi5B,EAAQ,IAEtC,IAAIkf,EAAQn4C,CAAC,IAAM,IACjB,MACF,MAAO,GAET,OAAOA,CACT,CAEA,SAAS24C,GAAe3b,EAAMrR,EAASuuB,EAAY,CACjD,MAAO,CACL,IAAK,CACH,KAAMld,EACN,IAAKrR,EACL,KAAMuuB,EAAW,MAAQA,EACzB,IAAKA,EAAW,GACtB,CACA,CACA,CAEA,SAASF,GAAiBD,EAAU,CAClC,OAAOlC,GAAOkC,CAAQ,CACxB,CAIA,SAASrB,GAAgBa,EAAS,CAChC,OAAO1B,GAAO0B,CAAO,CACvB,CAGA,SAASX,GAAyBT,EAAS5yC,EAAO,CAChD,MAAMiyB,EAAQ2gB,EAAQ,UAAU,EAAG5yC,CAAK,EAAE,MAAM,OAAO,EACvD,MAAO,CACL,KAAMiyB,EAAM,OAGZ,IAAKA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAAS,CAC1C,CACA,CAGA,SAASsiB,GAAqB7f,EAAO,CACnC,OAAOA,EAAM,WAAaA,EAAM,CAAC,EAAE,MACrC,CCtaA,MAAMkgB,GAA8BhxB,GAC9B4uB,GAAyB,SAAS5uB,CAAI,EACjC,KAAOA,EAETA,EAII8uB,GAAiB,CAC5B,cAAe,GACf,oBAAqB,KACrB,oBAAqB,GACrB,aAAc,QACd,iBAAkB,GAClB,eAAgB,GAChB,uBAAwB,GAExB,cAAe,GACf,oBAAqB,GACrB,WAAY,GACZ,cAAe,GACf,mBAAoB,CAClB,IAAK,GACL,aAAc,GACd,UAAW,EACf,EACE,kBAAmB,SAAUje,EAAS9yB,EAAK,CACzC,OAAOA,CACT,EACA,wBAAyB,SAAU6yC,EAAU7yC,EAAK,CAChD,OAAOA,CACT,EACA,UAAW,CAAA,EACX,qBAAsB,GACtB,QAAS,IAAM,GACf,gBAAiB,GACjB,aAAc,CAAA,EACd,gBAAiB,GACjB,aAAc,GACd,kBAAmB,GACnB,aAAc,GACd,iBAAkB,GAClB,uBAAwB,GACxB,UAAW,SAAU8yB,EAASogB,EAAOC,EAAO,CAC1C,OAAOrgB,CACT,EAEA,gBAAiB,GACjB,cAAe,IACf,oBAAqB,GACrB,MAAO,GACP,oBAAqBmgB,EACvB,EASA,SAASG,GAAqBC,EAAcC,EAAY,CACtD,GAAI,OAAOD,GAAiB,SAC1B,OAGF,MAAME,EAAaF,EAAa,YAAW,EAC3C,GAAIxC,GAAyB,KAAK2C,GAAaD,IAAeC,EAAU,YAAW,CAAE,EACnF,MAAM,IAAI,MACR,sBAAsBF,CAAU,MAAMD,CAAY,yEACxD,EAGE,GAAIvC,GAAmB,KAAK0C,GAAaD,IAAeC,EAAU,YAAW,CAAE,EAC7E,MAAM,IAAI,MACR,sBAAsBF,CAAU,MAAMD,CAAY,yEACxD,CAEA,CAOA,SAASI,GAAyBt+C,EAAO,CAEvC,OAAI,OAAOA,GAAU,UACZ,CACL,QAASA,EACT,cAAe,IACf,kBAAmB,GACnB,mBAAoB,IACpB,kBAAmB,IACnB,eAAgB,IAChB,YAAa,KACb,UAAW,IACjB,EAIM,OAAOA,GAAU,UAAYA,IAAU,KAClC,CACL,QAASA,EAAM,UAAY,GAC3B,cAAe,KAAK,IAAI,EAAGA,EAAM,eAAiB,GAAK,EACvD,kBAAmB,KAAK,IAAI,EAAGA,EAAM,mBAAqB,EAAE,EAC5D,mBAAoB,KAAK,IAAI,EAAGA,EAAM,oBAAsB,GAAI,EAChE,kBAAmB,KAAK,IAAI,EAAGA,EAAM,mBAAqB,GAAM,EAChE,eAAgB,KAAK,IAAI,EAAGA,EAAM,gBAAkB,GAAG,EACvD,YAAaA,EAAM,aAAe,KAClC,UAAWA,EAAM,WAAa,IACpC,EAISs+C,GAAyB,EAAI,CACtC,CAEO,MAAMC,GAAe,SAAUtlC,EAAS,CAC7C,MAAMulC,EAAQ,OAAO,OAAO,CAAA,EAAI5C,GAAgB3iC,CAAO,EAGjDwlC,EAAsB,CAC1B,CAAE,MAAOD,EAAM,oBAAqB,KAAM,qBAAqB,EAC/D,CAAE,MAAOA,EAAM,oBAAqB,KAAM,qBAAqB,EAC/D,CAAE,MAAOA,EAAM,aAAc,KAAM,cAAc,EACjD,CAAE,MAAOA,EAAM,cAAe,KAAM,eAAe,EACnD,CAAE,MAAOA,EAAM,gBAAiB,KAAM,iBAAiB,CAC3D,EAEE,SAAW,CAAE,MAAAx+C,EAAO,KAAA8sB,CAAI,IAAM2xB,EACxBz+C,GACFi+C,GAAqBj+C,EAAO8sB,CAAI,EAIpC,OAAI0xB,EAAM,sBAAwB,OAChCA,EAAM,oBAAsBV,IAI9BU,EAAM,gBAAkBF,GAAyBE,EAAM,eAAe,EAGlEA,EAAM,WAAa,MAAM,QAAQA,EAAM,SAAS,IAClDA,EAAM,UAAYA,EAAM,UAAU,IAAI5lB,GAChC,OAAOA,GAAS,UAAYA,EAAK,WAAW,IAAI,EAG3C,KAAOA,EAAK,UAAU,CAAC,EAEzBA,CACR,GAGI4lB,CACT,EC5JA,IAAIE,GAEA,OAAO,QAAW,WACpBA,GAAkB,gBAElBA,GAAkB,OAAO,mBAAmB,EAG/B,MAAMC,EAAQ,CAC3B,YAAYzB,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,MAAQ,GACb,KAAK,IAAI,EAAI,OAAO,OAAO,IAAI,CACjC,CACA,IAAIn9C,EAAK8K,EAAK,CAER9K,IAAQ,cAAaA,EAAM,cAC/B,KAAK,MAAM,KAAK,CAAE,CAACA,CAAG,EAAG8K,CAAG,CAAE,CAChC,CACA,SAAS+tB,EAAMgmB,EAAY,CACrBhmB,EAAK,UAAY,cAAaA,EAAK,QAAU,cAC7CA,EAAK,IAAI,GAAK,OAAO,KAAKA,EAAK,IAAI,CAAC,EAAE,OAAS,EACjD,KAAK,MAAM,KAAK,CAAE,CAACA,EAAK,OAAO,EAAGA,EAAK,MAAQ,KAAOA,EAAK,IAAI,CAAC,CAAE,EAElE,KAAK,MAAM,KAAK,CAAE,CAACA,EAAK,OAAO,EAAGA,EAAK,MAAO,EAG5CgmB,IAAe,SAGjB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAAEF,EAAe,EAAI,CAAE,WAAAE,CAAU,EAErE,CAEA,OAAO,mBAAoB,CACzB,OAAOF,EACT,CACF,CCrCe,MAAMG,EAAc,CAC/B,YAAY5lC,EAAS,CACjB,KAAK,sBAAwB,CAACA,EAC9B,KAAK,QAAUA,CACnB,CAEA,YAAY6iC,EAASn4C,EAAG,CACpB,MAAMm7C,EAAW,OAAO,OAAO,IAAI,EACnC,IAAIC,EAAc,EAElB,GAAIjD,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,KACnBm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CACxBA,EAAIA,EAAI,EACR,IAAIw5C,EAAqB,EACrB6B,EAAU,GAAOvgB,EAAU,GAC3BwgB,EAAM,GACV,KAAOt7C,EAAIm4C,EAAQ,OAAQn4C,IACvB,GAAIm4C,EAAQn4C,CAAC,IAAM,KAAO,CAAC86B,EAAS,CAChC,GAAIugB,GAAWE,GAAOpD,EAAS,UAAWn4C,CAAC,EAAG,CAC1CA,GAAK,EACL,IAAIw7C,EAAYt0C,EAEhB,GADA,CAACs0C,EAAYt0C,EAAKlH,CAAC,EAAI,KAAK,cAAcm4C,EAASn4C,EAAI,EAAG,KAAK,qBAAqB,EAChFkH,EAAI,QAAQ,GAAG,IAAM,GAAI,CACzB,GAAI,KAAK,QAAQ,UAAY,IACzB,KAAK,QAAQ,gBAAkB,MAC/Bk0C,GAAe,KAAK,QAAQ,eAC5B,MAAM,IAAI,MACN,iBAAiBA,EAAc,CAAC,8BAA8B,KAAK,QAAQ,cAAc,GAC7H,EAG4B,MAAMK,EAAUD,EAAW,QAAQ,sBAAuB,MAAM,EAChEL,EAASK,CAAU,EAAI,CACnB,KAAM,OAAO,IAAIC,CAAO,IAAK,GAAG,EAChC,IAAKv0C,CACrC,EAC4Bk0C,GACJ,CACJ,SACSC,GAAWE,GAAOpD,EAAS,WAAYn4C,CAAC,EAAG,CAChDA,GAAK,EACL,KAAM,CAAE,MAAAuF,CAAK,EAAK,KAAK,eAAe4yC,EAASn4C,EAAI,CAAC,EACpDA,EAAIuF,CACR,SAAW81C,GAAWE,GAAOpD,EAAS,WAAYn4C,CAAC,EAC/CA,GAAK,UAGEq7C,GAAWE,GAAOpD,EAAS,YAAan4C,CAAC,EAAG,CACnDA,GAAK,EACL,KAAM,CAAE,MAAAuF,GAAU,KAAK,gBAAgB4yC,EAASn4C,EAAI,EAAG,KAAK,qBAAqB,EACjFA,EAAIuF,CACR,SAAWg2C,GAAOpD,EAAS,MAAOn4C,CAAC,EAAG86B,EAAU,OAC3C,OAAM,IAAI,MAAM,iBAAiB,EAEtC0e,IACA8B,EAAM,EACV,SAAWnD,EAAQn4C,CAAC,IAAM,KAStB,GARI86B,EACIqd,EAAQn4C,EAAI,CAAC,IAAM,KAAOm4C,EAAQn4C,EAAI,CAAC,IAAM,MAC7C86B,EAAU,GACV0e,KAGJA,IAEAA,IAAuB,EACvB,WAEGrB,EAAQn4C,CAAC,IAAM,IACtBq7C,EAAU,GAEVC,GAAOnD,EAAQn4C,CAAC,EAGxB,GAAIw5C,IAAuB,EACvB,MAAM,IAAI,MAAM,kBAAkB,CAE1C,KACI,OAAM,IAAI,MAAM,gCAAgC,EAEpD,MAAO,CAAE,SAAA2B,EAAU,EAAAn7C,CAAC,CACxB,CACA,cAAcm4C,EAASn4C,EAAG,CAWtBA,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAAKm4C,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,CAAC,IAAM,KACxFA,IAEJ,IAAIw7C,EAAarD,EAAQ,UAAU8C,EAAYj7C,CAAC,EAQhD,GANA27C,GAAmBH,CAAU,EAG7Bx7C,EAAI07C,GAAevD,EAASn4C,CAAC,EAGzB,CAAC,KAAK,sBAAuB,CAC7B,GAAIm4C,EAAQ,UAAUn4C,EAAGA,EAAI,CAAC,EAAE,YAAW,IAAO,SAC9C,MAAM,IAAI,MAAM,qCAAqC,EAClD,GAAIm4C,EAAQn4C,CAAC,IAAM,IACtB,MAAM,IAAI,MAAM,sCAAsC,CAE9D,CAGA,IAAI47C,EAAc,GAIlB,GAHA,CAAC57C,EAAG47C,CAAW,EAAI,KAAK,kBAAkBzD,EAASn4C,EAAG,QAAQ,EAG1D,KAAK,QAAQ,UAAY,IACzB,KAAK,QAAQ,eAAiB,MAC9B47C,EAAY,OAAS,KAAK,QAAQ,cAClC,MAAM,IAAI,MACN,WAAWJ,CAAU,WAAWI,EAAY,MAAM,mCAAmC,KAAK,QAAQ,aAAa,GAC/H,EAGQ,OAAA57C,IACO,CAACw7C,EAAYI,EAAa57C,CAAC,CACtC,CAEA,gBAAgBm4C,EAASn4C,EAAG,CAExBA,EAAI07C,GAAevD,EAASn4C,CAAC,EAI7B,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAC9CA,IAEJ,IAAI67C,EAAe1D,EAAQ,UAAU8C,EAAYj7C,CAAC,EAElD,CAAC,KAAK,uBAAyB27C,GAAmBE,CAAY,EAG9D77C,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,MAAM87C,EAAiB3D,EAAQ,UAAUn4C,EAAGA,EAAI,CAAC,EAAE,YAAW,EAC9D,GAAI,CAAC,KAAK,uBAAyB87C,IAAmB,UAAYA,IAAmB,SACjF,MAAM,IAAI,MAAM,qCAAqCA,CAAc,GAAG,EAE1E97C,GAAK87C,EAAe,OAGpB97C,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,IAAI+7C,EAAmB,KACnBC,EAAmB,KAEvB,GAAIF,IAAmB,SACnB,CAAC97C,EAAG+7C,CAAgB,EAAI,KAAK,kBAAkB5D,EAASn4C,EAAG,kBAAkB,EAG7EA,EAAI07C,GAAevD,EAASn4C,CAAC,GAGzBm4C,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,CAAC,IAAM,OACrC,CAACA,EAAGg8C,CAAgB,EAAI,KAAK,kBAAkB7D,EAASn4C,EAAG,kBAAkB,WAE1E87C,IAAmB,WAE1B,CAAC97C,EAAGg8C,CAAgB,EAAI,KAAK,kBAAkB7D,EAASn4C,EAAG,kBAAkB,EAEzE,CAAC,KAAK,uBAAyB,CAACg8C,GAChC,MAAM,IAAI,MAAM,yDAAyD,EAIjF,MAAO,CAAE,aAAAH,EAAc,iBAAAE,EAAkB,iBAAAC,EAAkB,MAAO,EAAEh8C,CAAC,CACzE,CAEA,kBAAkBm4C,EAASn4C,EAAGyM,EAAM,CAChC,IAAIwvC,EAAgB,GACpB,MAAMvC,EAAYvB,EAAQn4C,CAAC,EAC3B,GAAI05C,IAAc,KAAOA,IAAc,IACnC,MAAM,IAAI,MAAM,kCAAkCA,CAAS,GAAG,EAElE15C,IAEA,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAUA,EAAQn4C,CAAC,IAAM05C,GACxC15C,IAIJ,GAFAi8C,EAAgB9D,EAAQ,UAAU8C,EAAYj7C,CAAC,EAE3Cm4C,EAAQn4C,CAAC,IAAM05C,EACf,MAAM,IAAI,MAAM,gBAAgBjtC,CAAI,QAAQ,EAEhD,OAAAzM,IACO,CAACA,EAAGi8C,CAAa,CAC5B,CAEA,eAAe9D,EAASn4C,EAAG,CAQvBA,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAC9CA,IAEJ,IAAIk8C,EAAc/D,EAAQ,UAAU8C,EAAYj7C,CAAC,EAGjD,GAAI,CAAC,KAAK,uBAAyB,CAAC63C,GAAOqE,CAAW,EAClD,MAAM,IAAI,MAAM,0BAA0BA,CAAW,GAAG,EAI5Dl8C,EAAI07C,GAAevD,EAASn4C,CAAC,EAC7B,IAAIm8C,EAAe,GAEnB,GAAIhE,EAAQn4C,CAAC,IAAM,KAAOu7C,GAAOpD,EAAS,OAAQn4C,CAAC,EAAGA,GAAK,UAClDm4C,EAAQn4C,CAAC,IAAM,KAAOu7C,GAAOpD,EAAS,KAAMn4C,CAAC,EAAGA,GAAK,UACrDm4C,EAAQn4C,CAAC,IAAM,IAAK,CACzBA,IAGA,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAUA,EAAQn4C,CAAC,IAAM,KACxCA,IAIJ,GAFAm8C,EAAehE,EAAQ,UAAU8C,EAAYj7C,CAAC,EAE1Cm4C,EAAQn4C,CAAC,IAAM,IACf,MAAM,IAAI,MAAM,4BAA4B,CAGpD,SAAW,CAAC,KAAK,sBACb,MAAM,IAAI,MAAM,sCAAsCm4C,EAAQn4C,CAAC,CAAC,GAAG,EAGvE,MAAO,CACH,YAAAk8C,EACA,aAAcC,EAAa,KAAI,EAC/B,MAAOn8C,CACnB,CACI,CAEA,eAAem4C,EAASn4C,EAAG,CAEvBA,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,IAAIi7C,EAAaj7C,EACjB,KAAOA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAC9CA,IAEJ,IAAIk8C,EAAc/D,EAAQ,UAAU8C,EAAYj7C,CAAC,EAUjD,IAPA27C,GAAmBO,CAAW,EAG9Bl8C,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7Bi7C,EAAaj7C,EACNA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAC9CA,IAEJ,IAAIo8C,EAAgBjE,EAAQ,UAAU8C,EAAYj7C,CAAC,EAGnD,GAAI,CAAC27C,GAAmBS,CAAa,EACjC,MAAM,IAAI,MAAM,4BAA4BA,CAAa,GAAG,EAIhEp8C,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,IAAIq8C,EAAgB,GACpB,GAAIlE,EAAQ,UAAUn4C,EAAGA,EAAI,CAAC,EAAE,YAAW,IAAO,WAAY,CAQ1D,GAPAq8C,EAAgB,WAChBr8C,GAAK,EAGLA,EAAI07C,GAAevD,EAASn4C,CAAC,EAGzBm4C,EAAQn4C,CAAC,IAAM,IACf,MAAM,IAAI,MAAM,wBAAwBm4C,EAAQn4C,CAAC,CAAC,GAAG,EAEzDA,IAGA,IAAIs8C,EAAmB,CAAA,EACvB,KAAOt8C,EAAIm4C,EAAQ,QAAUA,EAAQn4C,CAAC,IAAM,KAAK,CAG7C,MAAMi7C,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAUA,EAAQn4C,CAAC,IAAM,KAAOm4C,EAAQn4C,CAAC,IAAM,KAC9DA,IAEJ,IAAIu8C,EAAWpE,EAAQ,UAAU8C,EAAYj7C,CAAC,EAI9C,GADAu8C,EAAWA,EAAS,KAAI,EACpB,CAACZ,GAAmBY,CAAQ,EAC5B,MAAM,IAAI,MAAM,2BAA2BA,CAAQ,GAAG,EAG1DD,EAAiB,KAAKC,CAAQ,EAG1BpE,EAAQn4C,CAAC,IAAM,MACfA,IACAA,EAAI07C,GAAevD,EAASn4C,CAAC,EAErC,CAEA,GAAIm4C,EAAQn4C,CAAC,IAAM,IACf,MAAM,IAAI,MAAM,gCAAgC,EAEpDA,IAGAq8C,GAAiB,KAAOC,EAAiB,KAAK,GAAG,EAAI,GACzD,KAAO,CAEH,MAAMrB,EAAaj7C,EACnB,KAAOA,EAAIm4C,EAAQ,QAAU,CAAC,KAAK,KAAKA,EAAQn4C,CAAC,CAAC,GAC9CA,IAEJq8C,GAAiBlE,EAAQ,UAAU8C,EAAYj7C,CAAC,EAGhD,MAAMw8C,EAAa,CAAC,QAAS,KAAM,QAAS,SAAU,SAAU,WAAY,UAAW,UAAU,EACjG,GAAI,CAAC,KAAK,uBAAyB,CAACA,EAAW,SAASH,EAAc,YAAW,CAAE,EAC/E,MAAM,IAAI,MAAM,4BAA4BA,CAAa,GAAG,CAEpE,CAGAr8C,EAAI07C,GAAevD,EAASn4C,CAAC,EAG7B,IAAIsU,EAAe,GACnB,OAAI6jC,EAAQ,UAAUn4C,EAAGA,EAAI,CAAC,EAAE,YAAW,IAAO,aAC9CsU,EAAe,YACftU,GAAK,GACEm4C,EAAQ,UAAUn4C,EAAGA,EAAI,CAAC,EAAE,YAAW,IAAO,YACrDsU,EAAe,WACftU,GAAK,GAEL,CAACA,EAAGsU,CAAY,EAAI,KAAK,kBAAkB6jC,EAASn4C,EAAG,SAAS,EAG7D,CACH,YAAAk8C,EACA,cAAAE,EACA,cAAAC,EACA,aAAA/nC,EACA,MAAOtU,CACnB,CACI,CACJ,CAIA,MAAM07C,GAAiB,CAAC70C,EAAMtB,IAAU,CACpC,KAAOA,EAAQsB,EAAK,QAAU,KAAK,KAAKA,EAAKtB,CAAK,CAAC,GAC/CA,IAEJ,OAAOA,CACX,EAIA,SAASg2C,GAAO10C,EAAMm9B,EAAKhkC,EAAG,CAC1B,QAASud,EAAI,EAAGA,EAAIymB,EAAI,OAAQzmB,IAC5B,GAAIymB,EAAIzmB,CAAC,IAAM1W,EAAK7G,EAAIud,EAAI,CAAC,EAAG,MAAO,GAE3C,MAAO,EACX,CAEA,SAASo+B,GAAmBxyB,EAAM,CAC9B,GAAI0uB,GAAO1uB,CAAI,EACX,OAAOA,EAEP,MAAM,IAAI,MAAM,uBAAuBA,CAAI,EAAE,CACrD,CCzZA,MAAMszB,GAAW,wBACXC,GAAW,qCAKXC,GAAW,CACb,IAAK,GAEL,aAAc,GACd,aAAc,IACd,UAAW,GAEX,SAAU,UACd,EAEe,SAASC,GAAS31C,EAAKqO,EAAU,GAAI,CAEhD,GADAA,EAAU,OAAO,OAAO,CAAA,EAAIqnC,GAAUrnC,CAAO,EACzC,CAACrO,GAAO,OAAOA,GAAQ,SAAU,OAAOA,EAE5C,IAAI41C,EAAa51C,EAAI,KAAI,EAEzB,GAAIqO,EAAQ,WAAa,QAAaA,EAAQ,SAAS,KAAKunC,CAAU,EAAG,OAAO51C,EAC3E,GAAIA,IAAQ,IAAK,MAAO,GACxB,GAAIqO,EAAQ,KAAOmnC,GAAS,KAAKI,CAAU,EAC5C,OAAOC,GAAUD,EAAY,EAAE,EAG5B,GAAK,SAASA,CAAU,EAExB,IAAIA,EAAW,SAAS,GAAG,GAAKA,EAAW,SAAS,GAAG,EAC1D,OAAOE,GAAiB91C,EAAK41C,EAAYvnC,CAAO,EAG7C,CAEH,MAAM2kB,EAAQyiB,GAAS,KAAKG,CAAU,EAEtC,GAAI5iB,EAAO,CACP,MAAMoM,EAAOpM,EAAM,CAAC,GAAK,GACnB+iB,EAAe/iB,EAAM,CAAC,EAC5B,IAAIgjB,EAAoBC,GAAUjjB,EAAM,CAAC,CAAC,EAC1C,MAAMkjB,EAAgC9W,EAClCp/B,EAAI+1C,EAAa,OAAS,CAAC,IAAM,IAC/B/1C,EAAI+1C,EAAa,MAAM,IAAM,IAGnC,GAAI,CAAC1nC,EAAQ,eACL0nC,EAAa,OAAS,GAClBA,EAAa,SAAW,GAAK,CAACG,GAEtC,OAAOl2C,EAEN,CACD,MAAMu9B,EAAM,OAAOqY,CAAU,EACvBO,EAAY,OAAO5Y,CAAG,EAE5B,GAAIA,IAAQ,EAAG,OAAOA,EACtB,GAAI4Y,EAAU,OAAO,MAAM,IAAM,GAC7B,OAAI9nC,EAAQ,UAAkBkvB,EAClBv9B,EACT,GAAI41C,EAAW,QAAQ,GAAG,IAAM,GACnC,OAAIO,IAAc,KACTA,IAAcH,GACdG,IAAc,GAAG/W,CAAI,GAAG4W,CAAiB,GAFpBzY,EAGlBv9B,EAGhB,IAAIqU,EAAI0hC,EAAeC,EAAoBJ,EAC3C,OAAIG,EAEQ1hC,IAAM8hC,GAAe/W,EAAO/qB,IAAM8hC,EAAa5Y,EAAMv9B,EAGrDqU,IAAM8hC,GAAe9hC,IAAM+qB,EAAO+W,EAAa5Y,EAAMv9B,CAErE,CACJ,KACI,QAAOA,CAEf,MAnDI,QAAOo2C,GAAep2C,EAAK,OAAO41C,CAAU,EAAGvnC,CAAO,CAoD9D,CAEA,MAAMgoC,GAAgB,0CACtB,SAASP,GAAiB91C,EAAK41C,EAAYvnC,EAAS,CAChD,GAAI,CAACA,EAAQ,UAAW,OAAOrO,EAC/B,MAAMs1C,EAAWM,EAAW,MAAMS,EAAa,EAC/C,GAAIf,EAAU,CACV,IAAIlW,EAAOkW,EAAS,CAAC,GAAK,GAC1B,MAAMgB,EAAQhB,EAAS,CAAC,EAAE,QAAQ,GAAG,IAAM,GAAK,IAAM,IAChDS,EAAeT,EAAS,CAAC,EACzBiB,EAA0BnX,EAC5Bp/B,EAAI+1C,EAAa,OAAS,CAAC,IAAMO,EAC/Bt2C,EAAI+1C,EAAa,MAAM,IAAMO,EAEnC,OAAIP,EAAa,OAAS,GAAKQ,EAAgCv2C,EACtD+1C,EAAa,SAAW,IACzBT,EAAS,CAAC,EAAE,WAAW,IAAIgB,CAAK,EAAE,GAAKhB,EAAS,CAAC,EAAE,CAAC,IAAMgB,GACvD,OAAOV,CAAU,EACjBG,EAAa,OAAS,EAEzB1nC,EAAQ,cAAgB,CAACkoC,GACzBX,GAAcN,EAAS,CAAC,GAAK,IAAMA,EAAS,CAAC,EACtC,OAAOM,CAAU,GACd51C,EAGP,OAAO41C,CAAU,CAEhC,KACI,QAAO51C,CAEf,CAOA,SAASi2C,GAAUO,EAAQ,CACvB,OAAIA,GAAUA,EAAO,QAAQ,GAAG,IAAM,KAClCA,EAASA,EAAO,QAAQ,MAAO,EAAE,EAC7BA,IAAW,IAAKA,EAAS,IACpBA,EAAO,CAAC,IAAM,IAAKA,EAAS,IAAMA,EAClCA,EAAOA,EAAO,OAAS,CAAC,IAAM,MAAKA,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,IACnFA,CAGf,CAEA,SAASX,GAAUW,EAAQC,EAAM,CAE7B,GAAI,SAAU,OAAO,SAASD,EAAQC,CAAI,EACrC,GAAI,OAAO,SAAU,OAAO,OAAO,SAASD,EAAQC,CAAI,EACxD,GAAI,QAAU,OAAO,SAAU,OAAO,OAAO,SAASD,EAAQC,CAAI,EAClE,MAAM,IAAI,MAAM,8DAA8D,CACvF,CASA,SAASL,GAAep2C,EAAKu9B,EAAKlvB,EAAS,CACvC,MAAMqoC,EAAanZ,IAAQ,IAE3B,OAAQlvB,EAAQ,SAAS,YAAW,EAAE,CAClC,IAAK,OACD,OAAO,KACX,IAAK,WACD,OAAOkvB,EACX,IAAK,SACD,OAAOmZ,EAAa,WAAa,YAErC,QACI,OAAO12C,CACnB,CACA,CC/Je,SAAS22C,GAAsBC,EAAkB,CAC5D,OAAI,OAAOA,GAAqB,WACrBA,EAEP,MAAM,QAAQA,CAAgB,EACtB9D,GAAa,CACjB,UAAW+D,KAAWD,EAIlB,GAHI,OAAOC,GAAY,UAAY/D,IAAa+D,GAG5CA,aAAmB,QAAUA,EAAQ,KAAK/D,CAAQ,EAClD,MAAO,EAGnB,EAEG,IAAM,EACjB,CCPe,MAAMgE,EAAW,CAO9B,YAAYD,EAASxoC,EAAU,GAAI,CACjC,KAAK,QAAUwoC,EACf,KAAK,UAAYxoC,EAAQ,WAAa,IACtC,KAAK,SAAW,KAAK,OAAOwoC,CAAO,EAGnC,KAAK,iBAAmB,KAAK,SAAS,KAAKE,GAAOA,EAAI,OAAS,eAAe,EAC9E,KAAK,uBAAyB,KAAK,SAAS,KAAKA,GAAOA,EAAI,WAAa,MAAS,EAClF,KAAK,qBAAuB,KAAK,SAAS,KAAKA,GAAOA,EAAI,WAAa,MAAS,CAClF,CAQA,OAAOF,EAAS,CACd,MAAMG,EAAW,CAAA,EAGjB,IAAI,EAAI,EACJC,EAAc,GAElB,KAAO,EAAIJ,EAAQ,QACbA,EAAQ,CAAC,IAAM,KAAK,UAElB,EAAI,EAAIA,EAAQ,QAAUA,EAAQ,EAAI,CAAC,IAAM,KAAK,WAEhDI,EAAY,SACdD,EAAS,KAAK,KAAK,cAAcC,EAAY,KAAI,CAAE,CAAC,EACpDA,EAAc,IAGhBD,EAAS,KAAK,CAAE,KAAM,eAAe,CAAE,EACvC,GAAK,IAGDC,EAAY,QACdD,EAAS,KAAK,KAAK,cAAcC,EAAY,KAAI,CAAE,CAAC,EAEtDA,EAAc,GACd,MAGFA,GAAeJ,EAAQ,CAAC,EACxB,KAKJ,OAAII,EAAY,QACdD,EAAS,KAAK,KAAK,cAAcC,EAAY,KAAI,CAAE,CAAC,EAG/CD,CACT,CAQA,cAAcE,EAAM,CAClB,MAAMC,EAAU,CAAE,KAAM,KAAK,EAwB7B,IAAIC,EAAiB,KACjBC,EAAkBH,EAEtB,MAAMI,EAAeJ,EAAK,MAAM,4BAA4B,EAC5D,GAAII,IACFD,EAAkBC,EAAa,CAAC,EAAIA,EAAa,CAAC,EAC9CA,EAAa,CAAC,GAAG,CACnB,MAAMrqB,EAAUqqB,EAAa,CAAC,EAAE,MAAM,EAAG,EAAE,EACvCrqB,IACFmqB,EAAiBnqB,EAErB,CAIF,IAAIsqB,EACAC,EAAiBH,EAErB,GAAIA,EAAgB,SAAS,IAAI,EAAG,CAClC,MAAMI,EAAUJ,EAAgB,QAAQ,IAAI,EAI5C,GAHAE,EAAYF,EAAgB,UAAU,EAAGI,CAAO,EAAE,KAAI,EACtDD,EAAiBH,EAAgB,UAAUI,EAAU,CAAC,EAAE,OAEpD,CAACF,EACH,MAAM,IAAI,MAAM,iCAAiCL,CAAI,EAAE,CAE3D,CAGA,IAAI7mB,EACAqnB,EAAgB,KAEpB,GAAIF,EAAe,SAAS,GAAG,EAAG,CAChC,MAAMG,EAAaH,EAAe,YAAY,GAAG,EAC3CI,EAAUJ,EAAe,UAAU,EAAGG,CAAU,EAAE,KAAI,EACtDE,EAAUL,EAAe,UAAUG,EAAa,CAAC,EAAE,KAAI,EAGnC,CAAC,QAAS,OAAQ,MAAO,MAAM,EAAE,SAASE,CAAO,GACzE,eAAe,KAAKA,CAAO,GAG3BxnB,EAAMunB,EACNF,EAAgBG,GAGhBxnB,EAAMmnB,CAEV,MACEnnB,EAAMmnB,EAGR,GAAI,CAACnnB,EACH,MAAM,IAAI,MAAM,4BAA4B6mB,CAAI,EAAE,EASpD,GANAC,EAAQ,IAAM9mB,EACVknB,IACFJ,EAAQ,UAAYI,GAIlBH,EACF,GAAIA,EAAe,SAAS,GAAG,EAAG,CAChC,MAAMU,EAAUV,EAAe,QAAQ,GAAG,EAC1CD,EAAQ,SAAWC,EAAe,UAAU,EAAGU,CAAO,EAAE,KAAI,EAC5DX,EAAQ,UAAYC,EAAe,UAAUU,EAAU,CAAC,EAAE,KAAI,CAChE,MACEX,EAAQ,SAAWC,EAAe,KAAI,EAK1C,GAAIM,EAAe,CACjB,MAAMK,EAAWL,EAAc,MAAM,gBAAgB,EACjDK,GACFZ,EAAQ,SAAW,MACnBA,EAAQ,cAAgB,SAASY,EAAS,CAAC,EAAG,EAAE,GAEhDZ,EAAQ,SAAWO,CAEvB,CAEA,OAAOP,CACT,CAMA,IAAI,QAAS,CACX,OAAO,KAAK,SAAS,MACvB,CAMA,iBAAkB,CAChB,OAAO,KAAK,gBACd,CAMA,uBAAwB,CACtB,OAAO,KAAK,sBACd,CAMA,qBAAsB,CACpB,OAAO,KAAK,oBACd,CAMA,UAAW,CACT,OAAO,KAAK,OACd,CACF,CCvNe,MAAMa,EAAQ,CAM3B,YAAY3pC,EAAU,GAAI,CACxB,KAAK,UAAYA,EAAQ,WAAa,IACtC,KAAK,KAAO,CAAA,EACZ,KAAK,cAAgB,CAAA,CAIvB,CAQA,KAAK0kB,EAASklB,EAAa,KAAMV,EAAY,KAAM,CAEjD,GAAI,KAAK,KAAK,OAAS,EAAG,CACxB,MAAMxzC,EAAO,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAC3CA,EAAK,OAAS,MAChB,CAGA,MAAMm0C,EAAe,KAAK,KAAK,OAC1B,KAAK,cAAcA,CAAY,IAClC,KAAK,cAAcA,CAAY,EAAI,IAAI,KAGzC,MAAMC,EAAW,KAAK,cAAcD,CAAY,EAG1CE,EAAab,EAAY,GAAGA,CAAS,IAAIxkB,CAAO,GAAKA,EAGrDslB,EAAUF,EAAS,IAAIC,CAAU,GAAK,EAG5C,IAAIE,EAAW,EACf,UAAWtmB,KAASmmB,EAAS,SAC3BG,GAAYtmB,EAIdmmB,EAAS,IAAIC,EAAYC,EAAU,CAAC,EAGpC,MAAMrqB,EAAO,CACX,IAAK+E,EACL,SAAUulB,EACV,QAASD,CACf,EAGQd,GAAc,OAChBvpB,EAAK,UAAYupB,GAIfU,GAAe,OACjBjqB,EAAK,OAASiqB,GAGhB,KAAK,KAAK,KAAKjqB,CAAI,CACrB,CAMA,KAAM,CACJ,GAAI,KAAK,KAAK,SAAW,EACvB,OAGF,MAAMA,EAAO,KAAK,KAAK,IAAG,EAK1B,OAAI,KAAK,cAAc,OAAS,KAAK,KAAK,OAAS,IACjD,KAAK,cAAc,OAAS,KAAK,KAAK,OAAS,GAG1CA,CACT,CAOA,cAAciqB,EAAY,CACxB,GAAI,KAAK,KAAK,OAAS,EAAG,CACxB,MAAMM,EAAU,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAC1CN,GAAe,OACjBM,EAAQ,OAASN,EAErB,CACF,CAMA,eAAgB,CACd,OAAO,KAAK,KAAK,OAAS,EAAI,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAAE,IAAM,MACtE,CAMA,qBAAsB,CACpB,OAAO,KAAK,KAAK,OAAS,EAAI,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAAE,UAAY,MAC5E,CAOA,aAAanF,EAAU,CACrB,OAAI,KAAK,KAAK,SAAW,EAAG,OACZ,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAC/B,SAASA,CAAQ,CAClC,CAOA,QAAQA,EAAU,CAChB,GAAI,KAAK,KAAK,SAAW,EAAG,MAAO,GACnC,MAAMyF,EAAU,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAC9C,OAAOA,EAAQ,SAAW,QAAazF,KAAYyF,EAAQ,MAC7D,CAMA,aAAc,CACZ,OAAI,KAAK,KAAK,SAAW,EAAU,GAC5B,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAAE,UAAY,CACrD,CAMA,YAAa,CACX,OAAI,KAAK,KAAK,SAAW,EAAU,GAC5B,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAAE,SAAW,CACpD,CAOA,UAAW,CACT,OAAO,KAAK,YAAW,CACzB,CAMA,UAAW,CACT,OAAO,KAAK,KAAK,MACnB,CAQA,SAASlxC,EAAWmxC,EAAmB,GAAM,CAC3C,MAAM7T,EAAMt9B,GAAa,KAAK,UAC9B,OAAO,KAAK,KAAK,IAAIgN,GACfmkC,GAAoBnkC,EAAE,UACjB,GAAGA,EAAE,SAAS,IAAIA,EAAE,GAAG,GAEzBA,EAAE,GACV,EAAE,KAAKswB,CAAG,CACb,CAMA,SAAU,CACR,OAAO,KAAK,KAAK,IAAItwB,GAAKA,EAAE,GAAG,CACjC,CAKA,OAAQ,CACN,KAAK,KAAO,CAAA,EACZ,KAAK,cAAgB,CAAA,CACvB,CAOA,QAAQokC,EAAY,CAClB,MAAMzB,EAAWyB,EAAW,SAE5B,OAAIzB,EAAS,SAAW,EACf,GAILyB,EAAW,kBACN,KAAK,uBAAuBzB,CAAQ,EAItC,KAAK,aAAaA,CAAQ,CACnC,CAMA,aAAaA,EAAU,CAErB,GAAI,KAAK,KAAK,SAAWA,EAAS,OAChC,MAAO,GAIT,QAASj+C,EAAI,EAAGA,EAAIi+C,EAAS,OAAQj+C,IAAK,CACxC,MAAMo+C,EAAUH,EAASj+C,CAAC,EACpBi1B,EAAO,KAAK,KAAKj1B,CAAC,EAClB2/C,EAAiB3/C,IAAM,KAAK,KAAK,OAAS,EAEhD,GAAI,CAAC,KAAK,cAAco+C,EAASnpB,EAAM0qB,CAAa,EAClD,MAAO,EAEX,CAEA,MAAO,EACT,CAMA,uBAAuB1B,EAAU,CAC/B,IAAI2B,EAAU,KAAK,KAAK,OAAS,EAC7BC,EAAS5B,EAAS,OAAS,EAE/B,KAAO4B,GAAU,GAAKD,GAAW,GAAG,CAClC,MAAMxB,EAAUH,EAAS4B,CAAM,EAE/B,GAAIzB,EAAQ,OAAS,gBAAiB,CAIpC,GAFAyB,IAEIA,EAAS,EAEX,MAAO,GAIT,MAAMC,EAAU7B,EAAS4B,CAAM,EAC/B,IAAIzmB,EAAQ,GAEZ,QAASp5B,EAAI4/C,EAAS5/C,GAAK,EAAGA,IAAK,CACjC,MAAM2/C,EAAiB3/C,IAAM,KAAK,KAAK,OAAS,EAChD,GAAI,KAAK,cAAc8/C,EAAS,KAAK,KAAK9/C,CAAC,EAAG2/C,CAAa,EAAG,CAC5DC,EAAU5/C,EAAI,EACd6/C,IACAzmB,EAAQ,GACR,KACF,CACF,CAEA,GAAI,CAACA,EACH,MAAO,EAEX,KAAO,CAEL,MAAMumB,EAAiBC,IAAY,KAAK,KAAK,OAAS,EACtD,GAAI,CAAC,KAAK,cAAcxB,EAAS,KAAK,KAAKwB,CAAO,EAAGD,CAAa,EAChE,MAAO,GAETC,IACAC,GACF,CACF,CAGA,OAAOA,EAAS,CAClB,CAUA,cAAczB,EAASnpB,EAAM0qB,EAAe,CAO1C,GALIvB,EAAQ,MAAQ,KAAOA,EAAQ,MAAQnpB,EAAK,KAK5CmpB,EAAQ,YAAc,QAEpBA,EAAQ,YAAc,KAAOA,EAAQ,YAAcnpB,EAAK,UAC1D,MAAO,GAOX,GAAImpB,EAAQ,WAAa,OAAW,CAMlC,GALI,CAACuB,GAKD,CAAC1qB,EAAK,QAAU,EAAEmpB,EAAQ,YAAYnpB,EAAK,QAC7C,MAAO,GAIT,GAAImpB,EAAQ,YAAc,OAAW,CACnC,MAAM2B,EAAc9qB,EAAK,OAAOmpB,EAAQ,QAAQ,EAEhD,GAAI,OAAO2B,CAAW,IAAM,OAAO3B,EAAQ,SAAS,EAClD,MAAO,EAEX,CACF,CAGA,GAAIA,EAAQ,WAAa,OAAW,CAClC,GAAI,CAACuB,EAEH,MAAO,GAGT,MAAML,EAAUrqB,EAAK,SAAW,EAEhC,GAAImpB,EAAQ,WAAa,SAAWkB,IAAY,EAC9C,MAAO,GACF,GAAIlB,EAAQ,WAAa,OAASkB,EAAU,IAAM,EACvD,MAAO,GACF,GAAIlB,EAAQ,WAAa,QAAUkB,EAAU,IAAM,EACxD,MAAO,GACF,GAAIlB,EAAQ,WAAa,OAC1BkB,IAAYlB,EAAQ,cACtB,MAAO,EAGb,CAEA,MAAO,EACT,CAMA,UAAW,CACT,MAAO,CACL,KAAM,KAAK,KAAK,IAAInpB,IAAS,CAAE,GAAGA,CAAI,EAAG,EACzC,cAAe,KAAK,cAAc,IAAIh4B,GAAO,IAAI,IAAIA,CAAG,CAAC,CAC/D,CACE,CAMA,QAAQ+iD,EAAU,CAChB,KAAK,KAAOA,EAAS,KAAK,IAAI/qB,IAAS,CAAE,GAAGA,CAAI,EAAG,EACnD,KAAK,cAAgB+qB,EAAS,cAAc,IAAI/iD,GAAO,IAAI,IAAIA,CAAG,CAAC,CACrE,CACF,CCpYA,SAASgjD,GAAqBC,EAAe5qC,EAAS,CACpD,GAAI,CAAC4qC,EAAe,MAAO,CAAA,EAG3B,MAAM7F,EAAQ/kC,EAAQ,oBAClB4qC,EAAc5qC,EAAQ,mBAAmB,EACzC4qC,EAEJ,GAAI,CAAC7F,EAAO,MAAO,CAAA,EAEnB,MAAM8F,EAAW,CAAA,EACjB,UAAW/jD,KAAOi+C,EAEhB,GAAIj+C,EAAI,WAAWkZ,EAAQ,mBAAmB,EAAG,CAC/C,MAAM8qC,EAAUhkD,EAAI,UAAUkZ,EAAQ,oBAAoB,MAAM,EAChE6qC,EAASC,CAAO,EAAI/F,EAAMj+C,CAAG,CAC/B,MAEE+jD,EAAS/jD,CAAG,EAAIi+C,EAAMj+C,CAAG,EAG7B,OAAO+jD,CACT,CAOA,SAASE,GAAiBC,EAAY,CACpC,GAAI,CAACA,GAAc,OAAOA,GAAe,SAAU,OAEnD,MAAM1B,EAAa0B,EAAW,QAAQ,GAAG,EACzC,GAAI1B,IAAe,IAAMA,EAAa,EAAG,CACvC,MAAM2B,EAAKD,EAAW,UAAU,EAAG1B,CAAU,EAE7C,GAAI2B,IAAO,QACT,OAAOA,CAEX,CAEF,CAEe,MAAMC,EAAiB,CACpC,YAAYlrC,EAAS,CAkDnB,GAjDA,KAAK,QAAUA,EACf,KAAK,YAAc,KACnB,KAAK,cAAgB,CAAA,EACrB,KAAK,gBAAkB,CAAA,EACvB,KAAK,aAAe,CAClB,KAAQ,CAAE,MAAO,qBAAsB,IAAK,GAAG,EAC/C,GAAM,CAAE,MAAO,mBAAoB,IAAK,GAAG,EAC3C,GAAM,CAAE,MAAO,mBAAoB,IAAK,GAAG,EAC3C,KAAQ,CAAE,MAAO,qBAAsB,IAAK,GAAI,CACtD,EACI,KAAK,UAAY,CAAE,MAAO,oBAAqB,IAAK,GAAG,EACvD,KAAK,aAAe,CAClB,MAAS,CAAE,MAAO,iBAAkB,IAAK,GAAG,EAM5C,KAAQ,CAAE,MAAO,iBAAkB,IAAK,GAAG,EAC3C,MAAS,CAAE,MAAO,kBAAmB,IAAK,GAAG,EAC7C,IAAO,CAAE,MAAO,gBAAiB,IAAK,GAAG,EACzC,KAAQ,CAAE,MAAO,kBAAmB,IAAK,GAAG,EAC5C,UAAa,CAAE,MAAO,iBAAkB,IAAK,GAAG,EAChD,IAAO,CAAE,MAAO,gBAAiB,IAAK,GAAG,EACzC,IAAO,CAAE,MAAO,iBAAkB,IAAK,GAAG,EAC1C,QAAW,CAAE,MAAO,mBAAoB,IAAK,CAACvP,EAAGkB,IAAQw5C,GAAcx5C,EAAK,GAAI,IAAI,CAAC,EACrF,QAAW,CAAE,MAAO,0BAA2B,IAAK,CAAClB,EAAGkB,IAAQw5C,GAAcx5C,EAAK,GAAI,KAAK,CAAC,CACnG,EACI,KAAK,oBAAsBy5C,GAC3B,KAAK,SAAWC,GAChB,KAAK,cAAgBC,GACrB,KAAK,iBAAmBC,GACxB,KAAK,mBAAqBC,GAC1B,KAAK,aAAeC,GACpB,KAAK,qBAAuBC,GAC5B,KAAK,iBAAmBC,GACxB,KAAK,oBAAsBC,GAC3B,KAAK,SAAWC,GAChB,KAAK,mBAAqBvD,GAAsB,KAAK,QAAQ,gBAAgB,EAC7E,KAAK,qBAAuB,EAC5B,KAAK,sBAAwB,EAG7B,KAAK,QAAU,IAAIqB,GAGnB,KAAK,sBAAwB,GAGzB,KAAK,QAAQ,WAAa,KAAK,QAAQ,UAAU,OAAS,EAAG,CAC/D,KAAK,oBAAsB,CAAA,EAC3B,QAASj/C,EAAI,EAAGA,EAAI,KAAK,QAAQ,UAAU,OAAQA,IAAK,CACtD,MAAMohD,EAAc,KAAK,QAAQ,UAAUphD,CAAC,EACxC,OAAOohD,GAAgB,SAEzB,KAAK,oBAAoB,KAAK,IAAIrD,GAAWqD,CAAW,CAAC,EAChDA,aAAuBrD,IAEhC,KAAK,oBAAoB,KAAKqD,CAAW,CAE7C,CACF,CACF,CAEF,CAEA,SAASV,GAAoBW,EAAkB,CAC7C,MAAMC,EAAU,OAAO,KAAKD,CAAgB,EAC5C,QAASrhD,EAAI,EAAGA,EAAIshD,EAAQ,OAAQthD,IAAK,CACvC,MAAMuhD,EAAMD,EAAQthD,CAAC,EACfy7C,EAAU8F,EAAI,QAAQ,YAAa,KAAK,EAC9C,KAAK,aAAaA,CAAG,EAAI,CACvB,MAAO,IAAI,OAAO,IAAM9F,EAAU,IAAK,GAAG,EAC1C,IAAK4F,EAAiBE,CAAG,CAC/B,CACE,CACF,CAWA,SAASX,GAAc15C,EAAK8yB,EAASogB,EAAOoH,EAAUC,EAAeC,EAAYC,EAAgB,CAC/F,GAAIz6C,IAAQ,SACN,KAAK,QAAQ,YAAc,CAACs6C,IAC9Bt6C,EAAMA,EAAI,KAAI,GAEZA,EAAI,OAAS,GAAG,CACby6C,IAAgBz6C,EAAM,KAAK,qBAAqBA,EAAK8yB,EAASogB,CAAK,GAGxE,MAAMwH,EAAiB,KAAK,QAAQ,MAAQxH,EAAM,SAAQ,EAAKA,EACzDyH,EAAS,KAAK,QAAQ,kBAAkB7nB,EAAS9yB,EAAK06C,EAAgBH,EAAeC,CAAU,EACrG,OAAIG,GAAW,KAEN36C,EACE,OAAO26C,GAAW,OAAO36C,GAAO26C,IAAW36C,EAE7C26C,EACE,KAAK,QAAQ,WACfC,GAAW56C,EAAK,KAAK,QAAQ,cAAe,KAAK,QAAQ,kBAAkB,EAE/DA,EAAI,KAAI,IACRA,EACV46C,GAAW56C,EAAK,KAAK,QAAQ,cAAe,KAAK,QAAQ,kBAAkB,EAE3EA,CAGb,CAEJ,CAEA,SAAS25C,GAAiBtH,EAAS,CACjC,GAAI,KAAK,QAAQ,eAAgB,CAC/B,MAAM3iB,EAAO2iB,EAAQ,MAAM,GAAG,EACxBtiB,EAASsiB,EAAQ,OAAO,CAAC,IAAM,IAAM,IAAM,GACjD,GAAI3iB,EAAK,CAAC,IAAM,QACd,MAAO,GAELA,EAAK,SAAW,IAClB2iB,EAAUtiB,EAASL,EAAK,CAAC,EAE7B,CACA,OAAO2iB,CACT,CAIA,MAAMwI,GAAY,IAAI,OAAO,8CAAgD,IAAI,EAEjF,SAASjB,GAAmBhI,EAASsB,EAAOpgB,EAAS,CACnD,GAAI,KAAK,QAAQ,mBAAqB,IAAQ,OAAO8e,GAAY,SAAU,CAIzE,MAAMnB,EAAUF,GAAcqB,EAASiJ,EAAS,EAC1CvpB,EAAMmf,EAAQ,OACd0C,EAAQ,CAAA,EAIR2H,EAAqB,CAAA,EAC3B,QAAShiD,EAAI,EAAGA,EAAIw4B,EAAKx4B,IAAK,CAC5B,MAAM+5C,EAAW,KAAK,iBAAiBpC,EAAQ33C,CAAC,EAAE,CAAC,CAAC,EAC9CiiD,EAAStK,EAAQ33C,CAAC,EAAE,CAAC,EAE3B,GAAI+5C,EAAS,QAAUkI,IAAW,OAAW,CAC3C,IAAIC,EAAYD,EACZ,KAAK,QAAQ,aACfC,EAAYA,EAAU,KAAI,GAE5BA,EAAY,KAAK,qBAAqBA,EAAWloB,EAASogB,CAAK,EAC/D4H,EAAmBjI,CAAQ,EAAImI,CACjC,CACF,CAGI,OAAO,KAAKF,CAAkB,EAAE,OAAS,GAAK,OAAO5H,GAAU,UAAYA,EAAM,eACnFA,EAAM,cAAc4H,CAAkB,EAIxC,QAAShiD,EAAI,EAAGA,EAAIw4B,EAAKx4B,IAAK,CAC5B,MAAM+5C,EAAW,KAAK,iBAAiBpC,EAAQ33C,CAAC,EAAE,CAAC,CAAC,EAG9CmiD,EAAW,KAAK,QAAQ,MAAQ/H,EAAM,SAAQ,EAAKA,EACzD,GAAI,KAAK,mBAAmBL,EAAUoI,CAAQ,EAC5C,SAGF,IAAIF,EAAStK,EAAQ33C,CAAC,EAAE,CAAC,EACrBoiD,EAAQ,KAAK,QAAQ,oBAAsBrI,EAE/C,GAAIA,EAAS,OAOX,GANI,KAAK,QAAQ,yBACfqI,EAAQ,KAAK,QAAQ,uBAAuBA,CAAK,GAGnDA,EAAQC,GAAaD,EAAO,KAAK,OAAO,EAEpCH,IAAW,OAAW,CACpB,KAAK,QAAQ,aACfA,EAASA,EAAO,KAAI,GAEtBA,EAAS,KAAK,qBAAqBA,EAAQjoB,EAASogB,CAAK,EAGzD,MAAMwH,EAAiB,KAAK,QAAQ,MAAQxH,EAAM,SAAQ,EAAKA,EACzDpmC,EAAS,KAAK,QAAQ,wBAAwB+lC,EAAUkI,EAAQL,CAAc,EAChF5tC,GAAW,KAEbqmC,EAAM+H,CAAK,EAAIH,EACN,OAAOjuC,GAAW,OAAOiuC,GAAUjuC,IAAWiuC,EAEvD5H,EAAM+H,CAAK,EAAIpuC,EAGfqmC,EAAM+H,CAAK,EAAIN,GACbG,EACA,KAAK,QAAQ,oBACb,KAAK,QAAQ,kBAC3B,CAEQ,MAAW,KAAK,QAAQ,yBACtB5H,EAAM+H,CAAK,EAAI,GAGrB,CAEA,GAAI,CAAC,OAAO,KAAK/H,CAAK,EAAE,OACtB,OAEF,GAAI,KAAK,QAAQ,oBAAqB,CACpC,MAAMiI,EAAiB,CAAA,EACvB,OAAAA,EAAe,KAAK,QAAQ,mBAAmB,EAAIjI,EAC5CiI,CACT,CACA,OAAOjI,CACT,CACF,CAEA,MAAMsG,GAAW,SAAUxI,EAAS,CAClCA,EAAUA,EAAQ,QAAQ,SAAU;AAAA,CAAI,EACxC,MAAMoK,EAAS,IAAIC,GAAQ,MAAM,EACjC,IAAIC,EAAcF,EACdG,EAAW,GAGf,KAAK,QAAQ,MAAK,EAGlB,KAAK,qBAAuB,EAC5B,KAAK,sBAAwB,EAE7B,MAAMC,EAAgB,IAAIzH,GAAc,KAAK,QAAQ,eAAe,EACpE,QAASl7C,EAAI,EAAGA,EAAIm4C,EAAQ,OAAQn4C,IAElC,GADWm4C,EAAQn4C,CAAC,IACT,IAGT,GAAIm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAC1B,MAAM4iD,EAAaC,GAAiB1K,EAAS,IAAKn4C,EAAG,4BAA4B,EACjF,IAAIg6B,EAAUme,EAAQ,UAAUn4C,EAAI,EAAG4iD,CAAU,EAAE,KAAI,EAEvD,GAAI,KAAK,QAAQ,eAAgB,CAC/B,MAAMhE,EAAa5kB,EAAQ,QAAQ,GAAG,EAClC4kB,IAAe,KACjB5kB,EAAUA,EAAQ,OAAO4kB,EAAa,CAAC,EAE3C,CAEA5kB,EAAU8oB,GAAiB,KAAK,QAAQ,iBAAkB9oB,EAAS,GAAI,KAAK,OAAO,EAAE,QAEjFyoB,IACFC,EAAW,KAAK,oBAAoBA,EAAUD,EAAa,KAAK,OAAO,GAIzE,MAAMM,EAAc,KAAK,QAAQ,cAAa,EAC9C,GAAI/oB,GAAW,KAAK,QAAQ,aAAa,QAAQA,CAAO,IAAM,GAC5D,MAAM,IAAI,MAAM,kDAAkDA,CAAO,GAAG,EAE1E+oB,GAAe,KAAK,QAAQ,aAAa,QAAQA,CAAW,IAAM,KAEpE,KAAK,QAAQ,IAAG,EAChB,KAAK,cAAc,IAAG,GAGxB,KAAK,QAAQ,IAAG,EAChB,KAAK,sBAAwB,GAE7BN,EAAc,KAAK,cAAc,MACjCC,EAAW,GACX1iD,EAAI4iD,CACN,SAAWzK,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAEjC,IAAIgjD,EAAUC,GAAW9K,EAASn4C,EAAG,GAAO,IAAI,EAChD,GAAI,CAACgjD,EAAS,MAAM,IAAI,MAAM,uBAAuB,EAGrD,GADAN,EAAW,KAAK,oBAAoBA,EAAUD,EAAa,KAAK,OAAO,EAClE,OAAK,QAAQ,mBAAqBO,EAAQ,UAAY,QAAW,KAAK,QAAQ,cAE5E,CAEL,MAAME,EAAY,IAAIV,GAAQQ,EAAQ,OAAO,EAC7CE,EAAU,IAAI,KAAK,QAAQ,aAAc,EAAE,EAEvCF,EAAQ,UAAYA,EAAQ,QAAUA,EAAQ,iBAChDE,EAAU,IAAI,EAAI,KAAK,mBAAmBF,EAAQ,OAAQ,KAAK,QAASA,EAAQ,OAAO,GAEzF,KAAK,SAASP,EAAaS,EAAW,KAAK,QAASljD,CAAC,CACvD,CAGAA,EAAIgjD,EAAQ,WAAa,CAC3B,SAAW7K,EAAQ,OAAOn4C,EAAI,EAAG,CAAC,IAAM,MAAO,CAC7C,MAAMmjD,EAAWN,GAAiB1K,EAAS,MAAOn4C,EAAI,EAAG,wBAAwB,EACjF,GAAI,KAAK,QAAQ,gBAAiB,CAChC,MAAM86B,EAAUqd,EAAQ,UAAUn4C,EAAI,EAAGmjD,EAAW,CAAC,EAErDT,EAAW,KAAK,oBAAoBA,EAAUD,EAAa,KAAK,OAAO,EAEvEA,EAAY,IAAI,KAAK,QAAQ,gBAAiB,CAAC,CAAE,CAAC,KAAK,QAAQ,YAAY,EAAG3nB,CAAO,CAAE,CAAC,CAC1F,CACA96B,EAAImjD,CACN,SAAWhL,EAAQ,OAAOn4C,EAAI,EAAG,CAAC,IAAM,KAAM,CAC5C,MAAM4B,EAAS+gD,EAAc,YAAYxK,EAASn4C,CAAC,EACnD,KAAK,gBAAkB4B,EAAO,SAC9B5B,EAAI4B,EAAO,CACb,SAAWu2C,EAAQ,OAAOn4C,EAAI,EAAG,CAAC,IAAM,KAAM,CAC5C,MAAM4iD,EAAaC,GAAiB1K,EAAS,MAAOn4C,EAAG,sBAAsB,EAAI,EAC3EojD,EAASjL,EAAQ,UAAUn4C,EAAI,EAAG4iD,CAAU,EAElDF,EAAW,KAAK,oBAAoBA,EAAUD,EAAa,KAAK,OAAO,EAEvE,IAAIv7C,EAAM,KAAK,cAAck8C,EAAQX,EAAY,QAAS,KAAK,QAAS,GAAM,GAAO,GAAM,EAAI,EAC3Fv7C,GAAO,OAAWA,EAAM,IAGxB,KAAK,QAAQ,cACfu7C,EAAY,IAAI,KAAK,QAAQ,cAAe,CAAC,CAAE,CAAC,KAAK,QAAQ,YAAY,EAAGW,CAAM,CAAE,CAAC,EAErFX,EAAY,IAAI,KAAK,QAAQ,aAAcv7C,CAAG,EAGhDlH,EAAI4iD,EAAa,CACnB,KAAO,CACL,IAAIhhD,EAASqhD,GAAW9K,EAASn4C,EAAG,KAAK,QAAQ,cAAc,EAG/D,GAAI,CAAC4B,EAAQ,CAEX,MAAMyhD,EAAUlL,EAAQ,UAAU,KAAK,IAAI,EAAGn4C,EAAI,EAAE,EAAG,KAAK,IAAIm4C,EAAQ,OAAQn4C,EAAI,EAAE,CAAC,EACvF,MAAM,IAAI,MAAM,6CAA6CA,CAAC,eAAeqjD,CAAO,GAAG,CACzF,CAEA,IAAIrpB,EAAUp4B,EAAO,QACrB,MAAM0+C,EAAa1+C,EAAO,WAC1B,IAAIwhD,EAASxhD,EAAO,OAChB0hD,EAAiB1hD,EAAO,eACxBghD,EAAahhD,EAAO,WAIxB,GAFC,CAAE,QAAAo4B,EAAS,OAAAopB,CAAM,EAAKN,GAAiB,KAAK,QAAQ,iBAAkB9oB,EAASopB,EAAQ,KAAK,OAAO,EAEhG,KAAK,QAAQ,sBACdppB,IAAY,KAAK,QAAQ,iBACrBA,IAAY,KAAK,QAAQ,eACzBA,IAAY,KAAK,QAAQ,cACzBA,IAAY,KAAK,QAAQ,qBAE9B,MAAM,IAAI,MAAM,qBAAqBA,CAAO,EAAE,EAI5CyoB,GAAeC,GACbD,EAAY,UAAY,SAE1BC,EAAW,KAAK,oBAAoBA,EAAUD,EAAa,KAAK,QAAS,EAAK,GAKlF,MAAMc,EAAUd,EACZc,GAAW,KAAK,QAAQ,aAAa,QAAQA,EAAQ,OAAO,IAAM,KACpEd,EAAc,KAAK,cAAc,IAAG,EACpC,KAAK,QAAQ,IAAG,GAKlB,IAAIe,EAAgB,GAChBJ,EAAO,OAAS,GAAKA,EAAO,YAAY,GAAG,IAAMA,EAAO,OAAS,IACnEI,EAAgB,GACZxpB,EAAQA,EAAQ,OAAS,CAAC,IAAM,KAClCA,EAAUA,EAAQ,OAAO,EAAGA,EAAQ,OAAS,CAAC,EAC9CopB,EAASppB,GAETopB,EAASA,EAAO,OAAO,EAAGA,EAAO,OAAS,CAAC,EAI7CE,EAAkBtpB,IAAYopB,GAIhC,IAAIlD,EAAgB,KAEhB1B,EAGJA,EAAY6B,GAAiBC,CAAU,EAGnCtmB,IAAYuoB,EAAO,SACrB,KAAK,QAAQ,KAAKvoB,EAAS,CAAA,EAAIwkB,CAAS,EAItCxkB,IAAYopB,GAAUE,IAGxBpD,EAAgB,KAAK,mBAAmBkD,EAAQ,KAAK,QAASppB,CAAO,EAEjEkmB,GAESD,GAAqBC,EAAe,KAAK,OAAO,GAK3DlmB,IAAYuoB,EAAO,UACrB,KAAK,sBAAwB,KAAK,aAAa,KAAK,oBAAqB,KAAK,OAAO,GAGvF,MAAMtH,EAAaj7C,EACnB,GAAI,KAAK,sBAAuB,CAC9B,IAAIyjD,EAAa,GAGjB,GAAID,EACFxjD,EAAI4B,EAAO,mBAGJ,KAAK,QAAQ,aAAa,QAAQo4B,CAAO,IAAM,GACtDh6B,EAAI4B,EAAO,eAGR,CAEH,MAAMA,EAAS,KAAK,iBAAiBu2C,EAASmI,EAAYsC,EAAa,CAAC,EACxE,GAAI,CAAChhD,EAAQ,MAAM,IAAI,MAAM,qBAAqB0+C,CAAU,EAAE,EAC9DtgD,EAAI4B,EAAO,EACX6hD,EAAa7hD,EAAO,UACtB,CAEA,MAAMshD,GAAY,IAAIV,GAAQxoB,CAAO,EAEjCkmB,IACFgD,GAAU,IAAI,EAAIhD,GAIpBgD,GAAU,IAAI,KAAK,QAAQ,aAAcO,CAAU,EAEnD,KAAK,QAAQ,MACb,KAAK,sBAAwB,GAE7B,KAAK,SAAShB,EAAaS,GAAW,KAAK,QAASjI,CAAU,CAChE,KAAO,CAEL,GAAIuI,EAAe,EAChB,CAAE,QAAAxpB,EAAS,OAAAopB,CAAM,EAAKN,GAAiB,KAAK,QAAQ,iBAAkB9oB,EAASopB,EAAQ,KAAK,OAAO,GAEpG,MAAMF,EAAY,IAAIV,GAAQxoB,CAAO,EACjCkmB,IACFgD,EAAU,IAAI,EAAIhD,GAEpB,KAAK,SAASuC,EAAaS,EAAW,KAAK,QAASjI,CAAU,EAC9D,KAAK,QAAQ,MACb,KAAK,sBAAwB,EAC/B,SACS,KAAK,QAAQ,aAAa,QAAQjhB,CAAO,IAAM,GAAI,CAC1D,MAAMkpB,EAAY,IAAIV,GAAQxoB,CAAO,EACjCkmB,IACFgD,EAAU,IAAI,EAAIhD,GAEpB,KAAK,SAASuC,EAAaS,EAAW,KAAK,QAASjI,CAAU,EAC9D,KAAK,QAAQ,MACb,KAAK,sBAAwB,GAC7Bj7C,EAAI4B,EAAO,WAEX,QACF,KAEK,CACH,MAAMshD,EAAY,IAAIV,GAAQxoB,CAAO,EACrC,GAAI,KAAK,cAAc,OAAS,KAAK,QAAQ,cAC3C,MAAM,IAAI,MAAM,8BAA8B,EAEhD,KAAK,cAAc,KAAKyoB,CAAW,EAE/BvC,IACFgD,EAAU,IAAI,EAAIhD,GAEpB,KAAK,SAASuC,EAAaS,EAAW,KAAK,QAASjI,CAAU,EAC9DwH,EAAcS,CAChB,CACAR,EAAW,GACX1iD,EAAI4iD,CACN,CACF,MAEAF,GAAYvK,EAAQn4C,CAAC,EAGzB,OAAOuiD,EAAO,KAChB,EAEA,SAASpB,GAASsB,EAAaS,EAAWQ,EAASzI,EAAY,CAExD,KAAK,QAAQ,kBAAiBA,EAAa,QAGhD,MAAM2G,EAAiB,KAAK,QAAQ,MAAQ8B,EAAQ,SAAQ,EAAKA,EAC3D9hD,EAAS,KAAK,QAAQ,UAAUshD,EAAU,QAAStB,EAAgBsB,EAAU,IAAI,CAAC,EACpFthD,IAAW,KAEJ,OAAOA,GAAW,WAC3BshD,EAAU,QAAUthD,GACpB6gD,EAAY,SAASS,EAAWjI,CAAU,EAI9C,CAOA,SAAS+F,GAAqB95C,EAAK8yB,EAASogB,EAAO,CACjD,MAAMuJ,EAAe,KAAK,QAAQ,gBAElC,GAAI,CAACA,GAAgB,CAACA,EAAa,QACjC,OAAOz8C,EAIT,GAAIy8C,EAAa,YAAa,CAC5B,MAAM/B,EAAiB,KAAK,QAAQ,MAAQxH,EAAM,SAAQ,EAAKA,EAK/D,GAAI,EAJY,MAAM,QAAQuJ,EAAa,WAAW,EAClDA,EAAa,YAAY,SAAS3pB,CAAO,EACzC2pB,EAAa,YAAY3pB,EAAS4nB,CAAc,GAGlD,OAAO16C,CAEX,CAGA,GAAIy8C,EAAa,UAAW,CAC1B,MAAM/B,EAAiB,KAAK,QAAQ,MAAQxH,EAAM,SAAQ,EAAKA,EAC/D,GAAI,CAACuJ,EAAa,UAAU3pB,EAAS4nB,CAAc,EACjD,OAAO16C,CAEX,CAGA,UAAWs0C,KAAc,OAAO,KAAK,KAAK,eAAe,EAAG,CAC1D,MAAMoI,EAAS,KAAK,gBAAgBpI,CAAU,EACxC7D,EAAUzwC,EAAI,MAAM08C,EAAO,IAAI,EAErC,GAAIjM,EAAS,CAKX,GAHA,KAAK,sBAAwBA,EAAQ,OAGjCgM,EAAa,oBACf,KAAK,qBAAuBA,EAAa,mBACzC,MAAM,IAAI,MACR,oCAAoC,KAAK,oBAAoB,MAAMA,EAAa,kBAAkB,EAC5G,EAIM,MAAME,EAAe38C,EAAI,OAIzB,GAHAA,EAAMA,EAAI,QAAQ08C,EAAO,KAAMA,EAAO,GAAG,EAGrCD,EAAa,oBACf,KAAK,uBAA0Bz8C,EAAI,OAAS28C,EAExC,KAAK,sBAAwBF,EAAa,mBAC5C,MAAM,IAAI,MACR,yCAAyC,KAAK,qBAAqB,MAAMA,EAAa,iBAAiB,EACnH,CAGI,CACF,CAEA,UAAWnI,KAAc,OAAO,KAAK,KAAK,YAAY,EAAG,CACvD,MAAMoI,EAAS,KAAK,aAAapI,CAAU,EACrC7D,EAAUzwC,EAAI,MAAM08C,EAAO,KAAK,EACtC,GAAIjM,IACF,KAAK,sBAAwBA,EAAQ,OACjCgM,EAAa,oBACf,KAAK,qBAAuBA,EAAa,oBACzC,MAAM,IAAI,MACR,oCAAoC,KAAK,oBAAoB,MAAMA,EAAa,kBAAkB,EAC5G,EAGIz8C,EAAMA,EAAI,QAAQ08C,EAAO,MAAOA,EAAO,GAAG,CAC5C,CACA,GAAI18C,EAAI,QAAQ,GAAG,IAAM,GAAI,OAAOA,EAGpC,GAAI,KAAK,QAAQ,aACf,UAAWs0C,KAAc,OAAO,KAAK,KAAK,YAAY,EAAG,CACvD,MAAMoI,EAAS,KAAK,aAAapI,CAAU,EACrC7D,EAAUzwC,EAAI,MAAM08C,EAAO,KAAK,EACtC,GAAIjM,IAEF,KAAK,sBAAwBA,EAAQ,OACjCgM,EAAa,oBACf,KAAK,qBAAuBA,EAAa,oBACzC,MAAM,IAAI,MACR,oCAAoC,KAAK,oBAAoB,MAAMA,EAAa,kBAAkB,EAC9G,EAGMz8C,EAAMA,EAAI,QAAQ08C,EAAO,MAAOA,EAAO,GAAG,CAC5C,CAIF,OAAA18C,EAAMA,EAAI,QAAQ,KAAK,UAAU,MAAO,KAAK,UAAU,GAAG,EAEnDA,CACT,CAGA,SAASg6C,GAAoBwB,EAAUoB,EAAYJ,EAAShC,EAAY,CACtE,OAAIgB,IACEhB,IAAe,SAAWA,EAAaoC,EAAW,MAAM,SAAW,GAEvEpB,EAAW,KAAK,cAAcA,EAC5BoB,EAAW,QACXJ,EACA,GACAI,EAAW,IAAI,EAAI,OAAO,KAAKA,EAAW,IAAI,CAAC,EAAE,SAAW,EAAI,GAChEpC,CAAU,EAERgB,IAAa,QAAaA,IAAa,IACzCoB,EAAW,IAAI,KAAK,QAAQ,aAAcpB,CAAQ,EACpDA,EAAW,IAENA,CACT,CAOA,SAAS3B,GAAagD,EAAqBL,EAAS,CAClD,GAAI,CAACK,GAAuBA,EAAoB,SAAW,EAAG,MAAO,GAErE,QAAS/jD,EAAI,EAAGA,EAAI+jD,EAAoB,OAAQ/jD,IAC9C,GAAI0jD,EAAQ,QAAQK,EAAoB/jD,CAAC,CAAC,EACxC,MAAO,GAGX,MAAO,EACT,CAQA,SAASgkD,GAAuB7L,EAASn4C,EAAGikD,EAAc,IAAK,CAC7D,IAAIC,EACAd,EAAS,GACb,QAAS79C,EAAQvF,EAAGuF,EAAQ4yC,EAAQ,OAAQ5yC,IAAS,CACnD,IAAIkxB,EAAK0hB,EAAQ5yC,CAAK,EACtB,GAAI2+C,EACEztB,IAAOytB,IAAcA,EAAe,YAC/BztB,IAAO,KAAOA,IAAO,IAC9BytB,EAAeztB,UACNA,IAAOwtB,EAAY,CAAC,EAC7B,GAAIA,EAAY,CAAC,GACf,GAAI9L,EAAQ5yC,EAAQ,CAAC,IAAM0+C,EAAY,CAAC,EACtC,MAAO,CACL,KAAMb,EACN,MAAO79C,CACnB,MAGQ,OAAO,CACL,KAAM69C,EACN,MAAO79C,CACjB,OAEekxB,IAAO,MAChBA,EAAK,KAEP2sB,GAAU3sB,CACZ,CACF,CAEA,SAASosB,GAAiB1K,EAASlxC,EAAKjH,EAAGmkD,EAAQ,CACjD,MAAMC,EAAejM,EAAQ,QAAQlxC,EAAKjH,CAAC,EAC3C,GAAIokD,IAAiB,GACnB,MAAM,IAAI,MAAMD,CAAM,EAEtB,OAAOC,EAAen9C,EAAI,OAAS,CAEvC,CAEA,SAASg8C,GAAW9K,EAASn4C,EAAGqkD,EAAgBJ,EAAc,IAAK,CACjE,MAAMriD,EAASoiD,GAAuB7L,EAASn4C,EAAI,EAAGikD,CAAW,EACjE,GAAI,CAACriD,EAAQ,OACb,IAAIwhD,EAASxhD,EAAO,KACpB,MAAMghD,EAAahhD,EAAO,MACpB0iD,EAAiBlB,EAAO,OAAO,IAAI,EACzC,IAAIppB,EAAUopB,EACVE,EAAiB,GACjBgB,IAAmB,KACrBtqB,EAAUopB,EAAO,UAAU,EAAGkB,CAAc,EAC5ClB,EAASA,EAAO,UAAUkB,EAAiB,CAAC,EAAE,UAAS,GAGzD,MAAMhE,EAAatmB,EACnB,GAAIqqB,EAAgB,CAClB,MAAMzF,EAAa5kB,EAAQ,QAAQ,GAAG,EAClC4kB,IAAe,KACjB5kB,EAAUA,EAAQ,OAAO4kB,EAAa,CAAC,EACvC0E,EAAiBtpB,IAAYp4B,EAAO,KAAK,OAAOg9C,EAAa,CAAC,EAElE,CAEA,MAAO,CACL,QAAS5kB,EACT,OAAQopB,EACR,WAAYR,EACZ,eAAgBU,EAChB,WAAYhD,CAChB,CACA,CAOA,SAASW,GAAiB9I,EAASne,EAASh6B,EAAG,CAC7C,MAAMi7C,EAAaj7C,EAEnB,IAAIukD,EAAe,EAEnB,KAAOvkD,EAAIm4C,EAAQ,OAAQn4C,IACzB,GAAIm4C,EAAQn4C,CAAC,IAAM,IACjB,GAAIm4C,EAAQn4C,EAAI,CAAC,IAAM,IAAK,CAC1B,MAAM4iD,EAAaC,GAAiB1K,EAAS,IAAKn4C,EAAG,GAAGg6B,CAAO,gBAAgB,EAE/E,GADmBme,EAAQ,UAAUn4C,EAAI,EAAG4iD,CAAU,EAAE,KAAI,IACvC5oB,IACnBuqB,IACIA,IAAiB,GACnB,MAAO,CACL,WAAYpM,EAAQ,UAAU8C,EAAYj7C,CAAC,EAC3C,EAAG4iD,CACjB,EAGQ5iD,EAAI4iD,CACN,SAAWzK,EAAQn4C,EAAI,CAAC,IAAM,IAE5BA,EADmB6iD,GAAiB1K,EAAS,KAAMn4C,EAAI,EAAG,yBAAyB,UAE1Em4C,EAAQ,OAAOn4C,EAAI,EAAG,CAAC,IAAM,MAEtCA,EADmB6iD,GAAiB1K,EAAS,MAAOn4C,EAAI,EAAG,yBAAyB,UAE3Em4C,EAAQ,OAAOn4C,EAAI,EAAG,CAAC,IAAM,KAEtCA,EADmB6iD,GAAiB1K,EAAS,MAAOn4C,EAAG,yBAAyB,EAAI,MAE/E,CACL,MAAMgjD,EAAUC,GAAW9K,EAASn4C,EAAG,GAAG,EAEtCgjD,KACkBA,GAAWA,EAAQ,WACnBhpB,GAAWgpB,EAAQ,OAAOA,EAAQ,OAAO,OAAS,CAAC,IAAM,KAC3EuB,IAEFvkD,EAAIgjD,EAAQ,WAEhB,CAGN,CAEA,SAASlB,GAAW56C,EAAKs9C,EAAalvC,EAAS,CAC7C,GAAIkvC,GAAe,OAAOt9C,GAAQ,SAAU,CAE1C,MAAM26C,EAAS36C,EAAI,KAAI,EACvB,OAAI26C,IAAW,OAAe,GACrBA,IAAW,QAAgB,GACxBjF,GAAS11C,EAAKoO,CAAO,CACnC,KACE,QAAIwiC,GAAQ5wC,CAAG,EACNA,EAEA,EAGb,CAEA,SAASu5C,GAAcx5C,EAAKy2C,EAAMzmB,EAAQ,CACxC,MAAMwtB,EAAY,OAAO,SAASx9C,EAAKy2C,CAAI,EAE3C,OAAI+G,GAAa,GAAKA,GAAa,QAC1B,OAAO,cAAcA,CAAS,EAE9BxtB,EAAShwB,EAAM,GAE1B,CAEA,SAAS67C,GAAiB75C,EAAI+wB,EAASopB,EAAQ9tC,EAAS,CACtD,GAAIrM,EAAI,CACN,MAAMy7C,EAAaz7C,EAAG+wB,CAAO,EACzBopB,IAAWppB,IACbopB,EAASsB,GAEX1qB,EAAU0qB,CACZ,CACA,OAAA1qB,EAAUqoB,GAAaroB,EAAS1kB,CAAO,EAChC,CAAE,QAAA0kB,EAAS,OAAAopB,CAAM,CAC1B,CAIA,SAASf,GAAal5B,EAAM7T,EAAS,CACnC,GAAI0iC,GAAmB,SAAS7uB,CAAI,EAClC,MAAM,IAAI,MAAM,6BAA6BA,CAAI,yEAAyE,EACrH,OAAI4uB,GAAyB,SAAS5uB,CAAI,EACxC7T,EAAQ,oBAAoB6T,CAAI,EAElCA,CACT,CCr4BA,MAAM4xB,GAAkBC,GAAQ,kBAAiB,EAQjD,SAAS2J,GAAqBtK,EAAOpjB,EAAQ,CAC3C,GAAI,CAACojB,GAAS,OAAOA,GAAU,SAAU,MAAO,CAAA,EAChD,GAAI,CAACpjB,EAAQ,OAAOojB,EAEpB,MAAM8F,EAAW,CAAA,EACjB,UAAW/jD,KAAOi+C,EAChB,GAAIj+C,EAAI,WAAW66B,CAAM,EAAG,CAC1B,MAAMmpB,EAAUhkD,EAAI,UAAU66B,EAAO,MAAM,EAC3CkpB,EAASC,CAAO,EAAI/F,EAAMj+C,CAAG,CAC/B,MAEE+jD,EAAS/jD,CAAG,EAAIi+C,EAAMj+C,CAAG,EAG7B,OAAO+jD,CACT,CASe,SAASyE,GAAS3vB,EAAM3f,EAASouC,EAAS,CACvD,OAAOmB,GAAS5vB,EAAM3f,EAASouC,CAAO,CACxC,CASA,SAASmB,GAASt9C,EAAK+N,EAASouC,EAAS,CACvC,IAAIroB,EACJ,MAAMypB,EAAgB,CAAA,EACtB,QAAS9kD,EAAI,EAAGA,EAAIuH,EAAI,OAAQvH,IAAK,CACnC,MAAMk6B,EAAS3yB,EAAIvH,CAAC,EACd+kD,EAAWC,GAAS9qB,CAAM,EAGhC,GAAI6qB,IAAa,QAAaA,IAAazvC,EAAQ,aAAc,CAC/D,MAAM6qC,EAAWwE,GACfzqB,EAAO,IAAI,GAAK,CAAA,EAChB5kB,EAAQ,mBAChB,EACMouC,EAAQ,KAAKqB,EAAU5E,CAAQ,CACjC,CAEA,GAAI4E,IAAazvC,EAAQ,aACnB+lB,IAAS,OAAWA,EAAOnB,EAAO6qB,CAAQ,EACzC1pB,GAAQ,GAAKnB,EAAO6qB,CAAQ,MAC5B,IAAIA,IAAa,OACtB,SACK,GAAI7qB,EAAO6qB,CAAQ,EAAG,CAE3B,IAAI79C,EAAM29C,GAAS3qB,EAAO6qB,CAAQ,EAAGzvC,EAASouC,CAAO,EACrD,MAAMuB,EAASC,GAAUh+C,EAAKoO,CAAO,EAgBrC,GAdI4kB,EAAO,IAAI,EACbirB,GAAiBj+C,EAAKgzB,EAAO,IAAI,EAAGwpB,EAASpuC,CAAO,EAC3C,OAAO,KAAKpO,CAAG,EAAE,SAAW,GAAKA,EAAIoO,EAAQ,YAAY,IAAM,QAAa,CAACA,EAAQ,qBAC9FpO,EAAMA,EAAIoO,EAAQ,YAAY,EACrB,OAAO,KAAKpO,CAAG,EAAE,SAAW,IACjCoO,EAAQ,qBAAsBpO,EAAIoO,EAAQ,YAAY,EAAI,GACzDpO,EAAM,IAGTgzB,EAAO6gB,EAAe,IAAM,QAAa,OAAO7zC,GAAQ,UAAYA,IAAQ,OAC9EA,EAAI6zC,EAAe,EAAI7gB,EAAO6gB,EAAe,GAI3C+J,EAAcC,CAAQ,IAAM,QAAa,OAAO,UAAU,eAAe,KAAKD,EAAeC,CAAQ,EAClG,MAAM,QAAQD,EAAcC,CAAQ,CAAC,IACxCD,EAAcC,CAAQ,EAAI,CAACD,EAAcC,CAAQ,CAAC,GAEpDD,EAAcC,CAAQ,EAAE,KAAK79C,CAAG,MAC3B,CAKL,MAAM06C,EAAiBtsC,EAAQ,MAAQouC,EAAQ,SAAQ,EAAKA,EACxDpuC,EAAQ,QAAQyvC,EAAUnD,EAAgBqD,CAAM,EAClDH,EAAcC,CAAQ,EAAI,CAAC79C,CAAG,EAE9B49C,EAAcC,CAAQ,EAAI79C,CAE9B,CAGI69C,IAAa,QAAaA,IAAazvC,EAAQ,cACjDouC,EAAQ,IAAG,CAEf,EAEF,CAEA,OAAI,OAAOroB,GAAS,SACdA,EAAK,OAAS,IAAGypB,EAAcxvC,EAAQ,YAAY,EAAI+lB,GAClDA,IAAS,SAAWypB,EAAcxvC,EAAQ,YAAY,EAAI+lB,GAG9DypB,CACT,CAEA,SAASE,GAASxiD,EAAK,CACrB,MAAM3B,EAAO,OAAO,KAAK2B,CAAG,EAC5B,QAASxC,EAAI,EAAGA,EAAIa,EAAK,OAAQb,IAAK,CACpC,MAAM5D,EAAMyE,EAAKb,CAAC,EAClB,GAAI5D,IAAQ,KAAM,OAAOA,CAC3B,CACF,CAEA,SAAS+oD,GAAiB3iD,EAAK4iD,EAAS1B,EAASpuC,EAAS,CACxD,GAAI8vC,EAAS,CACX,MAAMvkD,EAAO,OAAO,KAAKukD,CAAO,EAC1B5sB,EAAM33B,EAAK,OACjB,QAASb,EAAI,EAAGA,EAAIw4B,EAAKx4B,IAAK,CAC5B,MAAMqlD,EAAWxkD,EAAKb,CAAC,EAGjBslD,EAAcD,EAAS,WAAW/vC,EAAQ,mBAAmB,EAC/D+vC,EAAS,UAAU/vC,EAAQ,oBAAoB,MAAM,EACrD+vC,EAIEzD,EAAiBtsC,EAAQ,MAC3BouC,EAAQ,SAAQ,EAAK,IAAM4B,EAC3B5B,EAEApuC,EAAQ,QAAQ+vC,EAAUzD,EAAgB,GAAM,EAAI,EACtDp/C,EAAI6iD,CAAQ,EAAI,CAACD,EAAQC,CAAQ,CAAC,EAElC7iD,EAAI6iD,CAAQ,EAAID,EAAQC,CAAQ,CAEpC,CACF,CACF,CAEA,SAASH,GAAU1iD,EAAK8S,EAAS,CAC/B,KAAM,CAAE,aAAAiwC,CAAY,EAAKjwC,EACnBkwC,EAAY,OAAO,KAAKhjD,CAAG,EAAE,OAMnC,MAJI,GAAAgjD,IAAc,GAKhBA,IAAc,IACbhjD,EAAI+iD,CAAY,GAAK,OAAO/iD,EAAI+iD,CAAY,GAAM,WAAa/iD,EAAI+iD,CAAY,IAAM,GAM1F,CCvKe,MAAME,EAAU,CAE3B,YAAYnwC,EAAS,CACjB,KAAK,iBAAmB,CAAA,EACxB,KAAK,QAAUslC,GAAatlC,CAAO,CAEvC,CAMA,MAAM6iC,EAASuN,EAAkB,CAC7B,GAAI,OAAOvN,GAAY,UAAYA,EAAQ,SACvCA,EAAUA,EAAQ,SAAQ,UACnB,OAAOA,GAAY,SAC1B,MAAM,IAAI,MAAM,iDAAiD,EAGrE,GAAIuN,EAAkB,CACdA,IAAqB,KAAMA,EAAmB,IAElD,MAAM9jD,EAASs2C,GAASC,EAASuN,CAAgB,EACjD,GAAI9jD,IAAW,GACX,MAAM,MAAM,GAAGA,EAAO,IAAI,GAAG,IAAIA,EAAO,IAAI,IAAI,IAAIA,EAAO,IAAI,GAAG,EAAE,CAE5E,CACA,MAAM+jD,EAAmB,IAAInF,GAAiB,KAAK,OAAO,EAC1DmF,EAAiB,oBAAoB,KAAK,gBAAgB,EAC1D,MAAMC,EAAgBD,EAAiB,SAASxN,CAAO,EACvD,OAAI,KAAK,QAAQ,eAAiByN,IAAkB,OAAkBA,EAC1DhB,GAASgB,EAAe,KAAK,QAASD,EAAiB,OAAO,CAC9E,CAOA,UAAUvpD,EAAKC,EAAO,CAClB,GAAIA,EAAM,QAAQ,GAAG,IAAM,GACvB,MAAM,IAAI,MAAM,6BAA6B,EAC1C,GAAID,EAAI,QAAQ,GAAG,IAAM,IAAMA,EAAI,QAAQ,GAAG,IAAM,GACvD,MAAM,IAAI,MAAM,sEAAsE,EACnF,GAAIC,IAAU,IACjB,MAAM,IAAI,MAAM,2CAA2C,EAE3D,KAAK,iBAAiBD,CAAG,EAAIC,CAErC,CAYA,OAAO,mBAAoB,CACvB,OAAO2+C,GAAQ,kBAAiB,CACpC,CACJ,0KChBO,IAAM6K,GAAN,cAA+B1Q,EAAgB,CAMpD,YACoBviB,EAEVwiB,EAESC,EACsBlpB,EACvC,CACA,MAAMyG,EAAQ,qCAAqC,EAL3C,KAAA,8BAAAwiB,EAES,KAAA,sBAAAC,EACsB,KAAA,WAAAlpB,CAGzC,CAdiB,YAAc,cACvB,sBAAiC,GACjC,iCACA,gBAaR,MAAM,cAAgC,CAEpC,MAAO,EACT,CAEA,aAAsB,CAEpB,MAAO,EACT,CAOA,MAAc,6BAAgD,CAC5D,OAAK,KAAK,mCACR,KAAK,iCAAmC,KAAK,WAC1C,aAAA,EACA,IAAI,sBAAuB,CAAE,KAAM,0BAA2B,GAE5D,MAAM,KAAK,iCAAkC,WAAA,CACtD,CAKQ,oBAAsC,CAC5C,OAAK,KAAK,kBACR,KAAK,gBAAkB,KAAK,WACzB,aAAA,EACA,IAAI,iBAAiB,GAEnB,KAAK,eACd,CAEQ,WAAW0pB,EAAkB,CACnC,MAAMviB,EAAS,KAAK,cAAA,EACpB,MAAO,GAAGA,EAAO,WAAW,GAC1BA,EAAO,aAAe,UAAUuiB,CAAQ,WAC1C,GAAG,QAAQ,cAAeA,CAAQ,CACpC,CAGA,MAAM,eAAe5iB,EAA6C,CAChE,MAAM4iB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EAAU,CACb,MAAM9iB,EAAW,IAAIC,GAErB,OAAAD,EAAS,KAAO,iBAChBA,EAAS,QAAU,GACZA,CACT,CAEA,MAAM,KAAK,gBAAgB8iB,CAAS,EACpC,GAAI,CACF,MAAMD,EAAW,MAAM,MAAM,GAAG,KAAK,WAAWC,CAAQ,CAAC,IAAI5iB,CAAI,MAAO,CACtE,OAAQ,MACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,EAED,GAAI2iB,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CACnD,KAAM,CAAE,qBAAAkQ,EAAsB,WAAAC,CAAA,EAC5B,MAAM,KAAK,mBAAmB9yB,EAAM4iB,CAAS,EAEzCmQ,EAAgB,IAAItS,GAAA,EAAoB,SAC5C,MAAMkC,EAAS,KAAA,CAAK,EAMhB7iB,EAAW,IAAIC,GACrB,OAAAD,EAAS,OAASizB,EAAc,QAChCjzB,EAAS,KAAOizB,EAAc,KAC9BjzB,EAAS,SAAWizB,EAAc,KAClCjzB,EAAS,YAAcizB,EAAc,KACrCjzB,EAAS,OAASizB,EAAc,OAChCjzB,EAAS,WAAagzB,EACtBhzB,EAAS,qBAAuB+yB,EAChC/yB,EAAS,QAAU,GACZA,CACT,KACE,OAEJ,OAASluB,EAAG,CACV,QAAQ,MAAM,6BAA8BA,CAAC,EAC7C,MACF,CACF,CAEA,MAAc,mBACZouB,EACA4iB,EACoE,CACpE,IAAIiQ,EACAC,EACJ,MAAMnQ,EAAW,MAAM,MAAM,GAAG,KAAK,WAAWC,CAAS,CAAC,IAAI5iB,CAAI,MAAO,CACvE,KAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAQN,OAAQ,WACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,EACD,GAAI2iB,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CAGnD,MAAM7qB,EAAO,IAAI06B,GAAA,EAAY,MAAM,MAAM7P,EAAS,MAAM,EACtD,eACF,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAChCqQ,EAAWl7B,EAAK,mBAAmB,EACrCk7B,IACFH,EAAuB,IAAI,KAAK,KAAK,MAAMG,CAAQ,CAAC,GAEtDF,EAAa,CACX,SAAUh7B,EAAK,aAAa,EAC5B,KAAMA,EAAK,uBAAuB,CAAA,CAEtC,CAEA,MAAO,CAAE,qBAAA+6B,EAAsB,WAAAC,CAAA,CACjC,CAIA,MAAM,eAAe9yB,EAAoD,CACvE,MAAM4iB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EACH,OAGF,MAAMD,EAAW,MAAM,MAAM,KAAK,uBAAuB3iB,EAAM4iB,CAAS,EAAG,CACzE,OAAQ,WACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,EAED,GAAID,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CACnD,MAAMva,EAAO,MAAMua,EAAS,KAAA,EAGtBsQ,EAFO,IAAI,OAAO,YAAY,gBAAgB7qB,EAAM,UAAU,EAE7C,qBAAqB,YAAY,EAClD8qB,EAAgC,CAAA,EACtC,QAASnmD,EAAI,EAAGA,EAAIkmD,EAAU,OAAQlmD,IAAK,CACzC,MAAMomD,EAAYF,EAAUlmD,CAAC,EACzBomD,EAAU,qBAAqB,kBAAkB,EAAE,OAAS,GAC9DD,EAAY,KAAK,KAAK,gBAAgBC,CAAS,CAAC,CAEpD,CAEA,MAAO,CAAE,YAAAD,CAAA,CACX,KACE,OAEJ,CAEA,MAAM,cACJlzB,EACA9J,EACqC,CACrC,MAAM0sB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EACH,OAGF,MAAMwQ,EAAmB,MAAM,MAC7B,KAAK,sBAAsBl9B,EAAM8J,EAAM4iB,CAAS,EAChD,CACE,OAAQ,WACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CAClD,EAGF,GAAIwQ,EAAiB,QAAU,KAAOA,EAAiB,OAAS,IAAK,CACnE,MAAMhrB,EAAO,MAAMgrB,EAAiB,KAAA,EAE9BzQ,EADO,IAAI,OAAO,YAAY,gBAAgBva,EAAM,UAAU,EAC9C,qBAAqB,YAAY,EAAE,CAAC,EAC1D,OAAO,KAAK,gBAAgBua,CAAQ,CACtC,KACE,OAEJ,CAEQ,uBAAuB3iB,EAAc4iB,EAAkB,CAC7D,MAAMyQ,EAAc,KAAK,sBAAsBrzB,CAAI,EAAE,KAAK,GAAG,EAC7D,MAAO,GAAG,KAAK,WAAW4iB,CAAS,CAAC,IAAIyQ,CAAW,IAAI,KAAK,WAAW,EACzE,CAEQ,sBAAsBn9B,EAAc8J,EAAc4iB,EAAkB,CAC1E,MAAO,GAAG,KAAK,uBAAuB5iB,EAAM4iB,CAAQ,CAAC,IAAI1sB,CAAI,EAC/D,CAEA,MAAM,KAAK8J,EAAcgB,EAAeC,EAAmC,CACzE,MAAM2hB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EACH,OAMF,MAAM0Q,EAAiBtzB,EAAK,MAAM,GAAG,EAG/BuzB,EAAU,KAAK,WAAW3Q,CAAS,EACzC,MAAM,KAAK,8BACT2Q,EACAD,EAAe,MAAM,EAAGA,EAAe,OAAS,CAAC,CAAA,EAGnD,MAAM/nB,EAAO,IAAIsV,GAAA,EAAoB,UAAU,CAC7C,QAAA5f,EACA,KAAMD,EACN,OAAQ,cAAA,CACT,EACD,MAAM,MAAM,GAAGuyB,CAAO,IAAID,EAAe,KAAK,GAAG,CAAC,MAAO,CACvD,OAAQ,MACR,QAAS,MAAM,KAAK,4BAAA,EACpB,KAAA/nB,CAAA,CACD,CAGH,CAEQ,sBAAsBvL,EAAc,CAC1C,MAAMwzB,EAAcxzB,EAAK,MAAM,GAAG,EAClC,MAAO,CACL,GAAGwzB,EAAY,MAAM,EAAGA,EAAY,OAAS,CAAC,EAC9C,IAAIA,EAAYA,EAAY,OAAS,CAAC,CAAC,EAAA,CAE3C,CAEA,MAAc,8BACZD,EACAC,EACA,CACA,MAAM,KAAK,gBAAgBD,CAAO,EAElC,QAASxmD,EAAI,EAAGA,EAAIymD,EAAY,OAAQzmD,IAGtC,MAAM,KAAK,gBACT,GAAGwmD,CAAO,IAAIC,EAAY,MAAM,EAAGzmD,EAAI,CAAC,EAAE,KAAK,GAAG,CAAC,EAAA,CAGzD,CAEA,MAAM,gBACJizB,EACAkB,EAC6C,CAC7C,MAAM0hB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EAAU,CAEb,KAAK,sBACF,MACA,MACC,uCAAuC5iB,CAAI,uCAAA,EAE/C,MACF,CAEA,OAAO,QAAQ,IACbkB,EAAM,IAAKoiB,GAAS,KAAK,eAAetjB,EAAMsjB,EAAMV,CAAS,CAAC,CAAA,CAElE,CAEA,MAAc,eACZ5iB,EACAsjB,EACAV,EAC6B,CAC7B,MAAM4Q,EAAc,KAAK,sBAAsBxzB,CAAI,EAG7CuzB,EAAU,KAAK,WAAW3Q,CAAS,EACzC,MAAM,KAAK,8BAA8B2Q,EAAS,CAChD,GAAGC,EACH,KAAK,WAAA,CACN,EAED,MAAMC,EACJ,KAAK,uBAAuBzzB,EAAM4iB,CAAQ,EAAI,IAAMU,EAAK,KAC3D,MAAM,MAAMmQ,EAAS,CACnB,OAAQ,MACR,QAAS,MAAM,KAAK,4BAAA,EACpB,KAAMnQ,CAAA,CACP,CAEH,CAEA,oBAAoC,CAClC,OAAO,IACT,CAEA,gBAAyB,CACvB,MAAO,EACT,CAEA,MAAM,iBAAqC,CAEzC,OAAO,IAAIvjB,EACb,CAEA,MAAM,OAAOC,EAA6D,CACxE,MAAM4iB,GACJ,MAAM,KAAK,8BAA8B,IAAA,GAAO,mBAC/C,SACH,GAAI,CAACA,EACH,MAAO,CAAE,QAAS,GAAO,MAAO,gBAAA,EAGlC,MAAM2Q,EAAU,KAAK,WAAW3Q,CAAS,EAMnC8Q,GALU,MAAM,QAAQ,IAAI,CAChC,MAAM,KAAK,eAAeH,EAASvzB,CAAI,EACvC,MAAM,KAAK,iBAAiBuzB,EAASvzB,CAAI,CAAA,CAC1C,GAGE,OAAQxP,GAAO,CAACA,EAAG,OAAO,EAC1B,IAAKA,GAAOA,EAAG,KAAK,EACpB,OAAQA,GAAOA,IAAO,MAAS,EAClC,OAAIkjC,EAAO,OAAS,EACX,CAAE,QAAS,GAAO,MAAOA,EAAO,KAAK,IAAI,CAAA,EAEzC,CAAE,QAAS,EAAA,CAEtB,CAEA,MAAc,eAAeH,EAAiBvzB,EAAc,CAC1D,OAAO,MAAM,MAAM,GAAGuzB,CAAO,IAAIvzB,CAAI,MAAO,CAC1C,OAAQ,SACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,EAAE,KAAK,MAAO2iB,GACTA,EAAS,GACJ,CAAE,QAAS,EAAA,EAEX,CAAE,QAAS,GAAO,MAAO,MAAMA,EAAS,MAAK,CAEvD,CACH,CAEA,MAAc,iBAAiB4Q,EAAiBvzB,EAAc,CAC5D,OAAO,MAAM,MACX,GAAGuzB,CAAO,IAAI,KAAK,sBAAsBvzB,CAAI,EAAE,KAAK,GAAG,CAAC,GACxD,CACE,OAAQ,SACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CAClD,EACA,KAAK,MAAO2iB,GAIRA,EAAS,IAAMA,EAAS,QAAU,IAC7B,CAAE,QAAS,EAAA,EAEX,CAAE,QAAS,GAAO,MAAO,MAAMA,EAAS,MAAK,CAEvD,CACH,CAEA,MAAM,MAAsD,CAE1D,MAAM,IAAI,MAAM,oBAAoB,CACtC,CAEA,MAAM,gBAAmC,CACvC,MAAO,EACT,CAEA,MAAc,gBAAgBgR,EAAuB,CACnD,MAAM,MAAMA,EAAe,CACzB,OAAQ,QACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,CACH,CAEQ,gBAAgBC,EAAkC,CACxD,MAAMruC,EAAKquC,EAAQ,qBAAqB,QAAQ,EAAE,CAAC,EAAE,YAC/CC,EACJD,EAAQ,qBAAqB,kBAAkB,EAAE,CAAC,EAAE,YAChDnhD,EAAO,SACXmhD,EAAQ,qBAAqB,oBAAoB,EAAE,CAAC,EAAE,WAAA,EAElDvf,EAAO,KAAK,MAChBuf,EAAQ,qBAAqB,mBAAmB,EAAE,CAAC,EAAE,WAAA,EAEjD5I,EAAWzlC,EAAG,MAAM,GAAG,EACvBuuC,EAAO,GAAG,KAAK,gBAAgB,OAAO,GAAGvuC,CAAE,GAC3CwuC,EAAY/I,EAASA,EAAS,OAAS,CAAC,EAE9C,MAAO,CACL,SAAA6I,EACA,UAAAE,EACA,GAAAxuC,EACA,KAAAuuC,EACA,KAAArhD,EACA,KAAM,IAAI,KAAK4hC,CAAI,EAEnB,OAAQ,MAAA,CAEZ,CAEA,MAAc,gBAAgBuO,EAAkB,CAC9C,GAAI,CAAC,KAAK,sBAAuB,CAC/B,KAAK,sBAAwB,GAC7B,GAAI,EACU,MAAM,MAAM,KAAK,WAAWA,CAAS,EAAG,CAClD,OAAQ,MACR,QAAS,MAAM,KAAK,4BAAA,CAA4B,CACjD,GAEO,SAAW,MACjB,MAAM,KAAK,KACT,OACA,GACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAA,EAQF,MAAM,KAAK,qBAAqB,qBAC9B,SACA,IAAIoR,GAAkB,OAAQ,IAAIC,EAAgB,CAAA,EAGxD,OAAS,EAAG,CACV,QAAQ,MAAM,+CAAgD,CAAC,CACjE,CACF,CACF,CACF,EAjdarB,GAAN5+B,GAAA,CADNC,GAAA,EAQI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,+BAA+B,CAAA,EAEtCA,QAAO,uBAAuB,CAAA,EAE9BA,QAAO,YAAY,CAAA,CAAA,EAZX65B,EAAA,ECzBN,IAAAsB,GAAA,KAAoB,CACzB,YAAY1gC,EAAsB,CAChCA,EACG,KAAiB,YAAY,EAC7B,GAAG2wB,EAAmB,EACtB,KAAKH,GAAmB,WAAW,CAAC,EACvCxwB,EACG,KAAc,SAAS,EACvB,GAAGo/B,EAAgB,EACnB,UAAU,WAAW,CAC1B,CACF,2KCfO,IAAMuB,GAAN,cAA8B5yB,EAAkB,CAC5C,QACA,QAET,YACoB5B,EACiBS,EACbtH,EACtB,CACA,MAAM6G,CAAM,EACZ,KAAK,QAAU7G,EACf,KAAK,QAAUsH,EACf,KAAK,QAAQ,cAAc,IAAI,EAC3B,KAAK,UAAY,KACnB,KAAK,SAAW,eAEpB,CAES,YAAYiR,EAAyB,CAC5C,OAAOA,GAAU,QAAUA,GAAU,QACvC,CAES,iBAA0B,CACjC,MAAO,cACT,CAES,SAAkB,CACzB,MAAO,OACT,CAES,uBAAgC,CACvC,MAAO,SACT,CACF,EAjCa8iB,GAANngC,GAAA,CADNC,GAAA,EAMI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,SAAS,CAAA,EAAGA,QAAM,OAAO,CAAA,EAChCA,QAAO,YAAY,CAAA,CAAA,EAPXo7B,EAAA,ECMN,SAASC,GACd3gC,EACA4gC,EACQ,CACR,MAAMC,EAAqBD,EAAW,MAAM,GAAG,EACzCE,EAAOD,EAAmB,OAAS,EAAIA,EAAmB,CAAC,EAAI,QAC/DhwB,EACJgwB,EAAmB,OAAS,EACxBA,EAAmB,CAAC,EACpBA,EAAmB,CAAC,EAC1B,MAAO,GAAG7gC,EAAW,OAAO,eAAe8gC,CAAI,WAAW,mBACxDjwB,CAAA,EAEC,QAAQ,sBAAuB,OAAO,EACtC,QAAQ,UAAW,KAAK,EACxB,QAAQ,cAAe,UAAU,EACjC,QAAQ,KAAM,SAAS,CAAC,EAC7B,0KCkBO,IAAMkwB,GAAN,cAA2BtS,EAAgB,CAChD,YACoBviB,EAEVwiB,EAESC,EACjB,CACA,MAAMziB,EAAQ,iCAAiC,EAJvC,KAAA,8BAAAwiB,EAES,KAAA,sBAAAC,CAGnB,CAEA,MAAa,gBAAmC,CAC9C,MAAO,EACT,CAEA,eAAepiB,EAAcM,EAAgBgiB,EAA2B,CACtE,KAAK,QAAQ,MAAM,qBAAsBtiB,CAAI,EAC7C,MAAMO,EAAM,IAAI,IACd,KAAK,qBAAqBP,EAAM,CAAC,OAAQ,UAAW,QAAS,OAAO,CAAC,CAAA,EAEjEy0B,EAAe,IAAI,gBAAgB,CAAC,CAAC,SAAUn0B,CAAM,CAAC,CAAC,EAC7D,OAAIgiB,GACFmS,EAAa,OAAO,WAAYnS,CAAQ,EAE1C/hB,EAAI,OAASk0B,EAAa,SAAA,EACnBl0B,EAAI,SAAA,CACb,CAEA,mBAAmBA,EAA4B,CAC7C,IAAIP,EACJ,OAAIO,EAAI,WAAW,KAAK,WAAW,OAAO,GAExCP,EADYO,EAAI,QAAQ,KAAK,WAAW,QAAS,EAAE,EAEhD,QAAQ,OAAQ,EAAE,EAClB,QAAQ,SAAU,EAAE,EACpB,WAAW,MAAO,QAAQ,EAC1B,WAAW,IAAK,MAAM,EACtB,WAAW,IAAK,GAAG,EAClBP,EAAK,SAAS,GAAG,IACnBA,GAAQ,WAEVA,EAAO,mBAAmBA,CAAI,GAE9BA,EAAO,KAEFA,CACT,CAEA,YAAYA,EAAcQ,EAAuB,CAC3CR,GAAQ,KACVA,EAAO,gBAET,MAAM00B,EACJ,KAAK,WAAW,QAChB,iBACA10B,EAAK,QAAQ,IAAK,GAAG,EACrB,IACAQ,EACF,YAAK,QAAQ,MAAM,mBAAoBk0B,CAAQ,EACxCA,CACT,CAIA,MAAM,eACJ10B,EACAM,EACAgiB,EAC+B,CAC/B,KAAK,QAAQ,MAAM,qBAAsBtiB,CAAI,EACzCA,GAAQ,KACVA,EAAO,gBAGT,IAAIO,EACA+hB,EAGF/hB,EAAM,IAAI,IACR,GAAG6zB,GAAoB,KAAK,WAAYp0B,CAAI,CAAC,YAAYsiB,CAAQ,EAAA,GAGnE/hB,EAAM,IAAI,IAAI6zB,GAAoB,KAAK,WAAYp0B,CAAI,CAAC,EACxDO,EAAI,OAAS,IAAI,gBAAgB,CAC/B,CAAC,aAAc,MAAM,EACrB,CAAC,kBAAmB,cAAc,CAAA,CACnC,EAAE,SAAA,GAEL,KAAK,QAAQ,MAAM,oBAAqBA,CAAG,EAC3C,MAAMoiB,EAAW,MAAM,MAAMpiB,EAAK,CAChC,MAAO,WACP,QAAS,CACP,OAAQ,mBACR,GAAI,MAAM,KAAK,eAAA,CAAe,CAChC,CACD,EAED,IAAIqJ,EACJ,GAAI,CAEF,GADAA,EAAO,MAAM+Y,EAAS,KAAA,EAClB,CAACA,EAAS,GAAI,CAEhB,KAAK,sBACF,MACA,MAAM,uBAAuB3iB,CAAI,aAAa4J,EAAK,OAAO,EAAE,EAC/D,MACF,CACF,MAAQ,CAEN,MACF,CAEA,MAAM+qB,EAAkB,IAAI50B,GAC5B40B,EAAgB,OAAS/qB,EAAK,OAC9B+qB,EAAgB,OAAS/qB,EAAK,QAC9B+qB,EAAgB,KAAO/qB,EAAK,gBAC5B+qB,EAAgB,QAAU,GAAG/qB,EAAK,YAAY,IAAIA,EAAK,YAAY,GACnE+qB,EAAgB,YAAc/qB,EAAK,SACnC+qB,EAAgB,SAAW/qB,EAAK,MAEhC,MAAMgrB,EAAWhrB,EAAK,UAAU,MAAM,MAAM,KAC5C,OAAA+qB,EAAgB,KACdC,GAAY,UAAYA,EAAWhrB,EAAK,UAAU,MAAM,MAAM,KAEhE+qB,EAAgB,qBAAuB,IAAI,KAAK/qB,EAAK,QAAQ,EAC7D+qB,EAAgB,WAAa,CAAE,KAAM/qB,EAAK,MAAA,EAC1C+qB,EAAgB,QACd/qB,EAAK,QAAQ,KACVirB,GAA4CA,EAAM,MAAQ,MAAA,GAC1D,OAAS,GAEdF,EAAgB,SAAW,IAAIG,GAAe,CAC5C,eAAgBH,EAAgB,OAChC,KAAMA,EAAgB,KACtB,WAAY/qB,EAAK,SACjB,SAAU+qB,EAAgB,SAC1B,YAAaA,EAAgB,YAC7B,KAAMA,EAAgB,OACtB,KAAMA,EAAgB,IAAA,CACvB,EAEMA,CACT,CAEA,MAAM,eAAe30B,EAAoD,CAqBvE,MAAO,CAAE,aAjBqB,MAHb,MAAM,MAAM,KAAK,oBAAoBA,CAAI,EAAG,CAC3D,QAAS,CAAE,OAAQ,mBAAoB,GAAI,MAAM,KAAK,gBAAe,CAAG,CACzE,GAC4C,KAAA,GACpB,YAAY,IACnC,CAAC,CAAE,GAAAza,EAAI,KAAA2Q,EAAM,SAAA6+B,EAAU,iBAAAC,EAAkB,KAAAviD,EAAM,KAAA4hC,EAAM,OAAA4gB,MAC5C,CACL,GAAA1vC,EACA,UAAW2Q,EACX,SAAU6+B,EACV,KAAMC,EACN,KAAAviD,EACA,KAAM,IAAI,KAAK4hC,CAAI,EACnB,OAAA4gB,CAAA,EAEJ,CAKO,CACX,CAEA,MAAM,cACJj1B,EACA9J,EACqC,CACrC,MAAMg9B,EAAc,MAAM,KAAK,eAAelzB,CAAI,EAClD,GAAIkzB,EACF,OAAOA,EAAY,YAAY,OAAQ5sC,GAAMA,EAAE,WAAa4P,CAAI,EAAE,CAAC,CAEvE,CAIA,MAAM,gBAAgB0K,EAAeC,EAAwC,CAC3E,MAAMN,EACJ,KAAK,WAAW,QAChB,uCAEAM,EACA,UACAD,EACF,KAAK,QAAQ,MAAM,oBAAqBL,CAAG,EAE3C,MAAMqJ,EAAO,MADI,MAAM,MAAMrJ,EAAK,CAAE,MAAO,WAAY,GAC3B,KAAA,EACtB20B,EAAmB,IAAIn1B,GAC7B,OAAAm1B,EAAiB,OAAStrB,EAAK,OAC/BsrB,EAAiB,OAAS,QAC1BA,EAAiB,KAAOtrB,EAAK,QAC7BsrB,EAAiB,IAAMtrB,EAAK,IAC5BsrB,EAAiB,GAAKtrB,EAAK,GACpBsrB,CACT,CAIA,MAAM,aAAap0B,EAAoBC,EAAoC,CAIzE,GAAI,CAGF,MAAMo0B,EAAoBr0B,EAAS,IAAI,cAAc,EAAEC,CAAS,EAChE,IAAIvnB,EAAO27C,EAAa,KACpBC,EAAiBD,EAAa,UAC9B37C,GAAQ,OACVA,EAAO,YAEL47C,GAAkB,OACpBA,EAAiBr0B,GAEnB,MAAMR,EACJ,KAAK,WAAW,QAChB,YACAO,EAAS,gBAAgB,WAAW,IAAK,GAAG,EAC5C,iCACAtnB,EACA,aACAsnB,EAAS,IAAI,WAAW,EACxB,IACAs0B,EACF,YAAK,QAAQ,MAAM,0BAA2B70B,CAAG,EAE1C,MADU,MAAM,MAAMA,EAAK,CAAE,MAAO,WAAY,GACjC,KAAA,CACxB,OAAS3uB,EAAG,CACV,YAAK,QAAQ,MACX,6CACAmvB,EACAnvB,CAAA,EAEK,EACT,CACF,CAEA,MAAM,KAAKouB,EAAcgB,EAAeC,EAAmC,CACzE,MAAMV,EAAM,KAAK,qBAAqBP,EAAM,CAAC,OAAQ,QAAS,OAAO,CAAC,EAEhE2iB,EAAW,MAAM,MAAMpiB,EAAK,CAChC,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,GAAI,MAAM,KAAK,eAAA,CAAe,EAGhC,KAAM,KAAK,UAAU,CAAE,QAAAU,EAAS,MAAAD,EAAO,OAAQ,eAAgB,CAAA,CAChE,EACD,GAAI,CAAC2hB,EAAS,GAAI,CAChB,MAAMS,EAAe,MAAMT,EAAS,KAAA,EAEpC,WAAK,sBACF,MACA,MAAM,uBAAuB3iB,CAAI,aAAaojB,CAAY,EAAE,EAEzD,IAAI,MAAMA,CAAY,CAC9B,CAGF,CAEA,MAAM,gBACJpjB,EACAkB,EAC6C,CAC7C,MAAM,QAAQ,IAAIA,EAAM,IAAKoiB,GAAS,KAAK,eAAetjB,EAAMsjB,CAAI,CAAC,CAAC,CAExE,CAEA,MAAM,eAAetjB,EAAcsjB,EAA8B,CAC/D,MAAMX,EAAW,MAAM,MACrB,GAAG,KAAK,oBAAoB3iB,CAAI,CAAC,IAAIsjB,EAAK,IAAI,GAC9C,CACE,OAAQ,MACR,KAAMA,EACN,QAAS,CACP,GAAI,MAAM,KAAK,eAAA,EACf,eAAgBA,EAAK,IAAA,CACvB,CACF,EAEF,GAAI,CAACX,EAAS,GAEZ,MAAM,IAAI,MACR,6CAA6CA,EAAS,UAAU,GAAA,CAItE,CAEA,MAAM,OAAO3iB,EAA6D,CACxE,MAAMO,EAAM,KAAK,qBAAqBP,EAAM,CAAC,OAAQ,QAAS,OAAO,CAAC,EAgBtE,OAdgB,MAAM,MAAMO,EAAK,CAC/B,OAAQ,SACR,QAAS,CACP,eAAgB,mBAChB,GAAI,MAAM,KAAK,eAAA,CAAe,CAChC,CACD,EAAE,KAAK,MAAOoiB,GACTA,EAAS,GACJ,CAAE,QAAS,EAAA,EAEX,CAAE,QAAS,GAAO,MAAO,MAAMA,EAAS,MAAK,CAEvD,CAGH,CAEA,MAAM,MAAsD,CAE1D,MAAM,IAAI,MAAM,oBAAoB,CACtC,CAEA,MAAc,gBAAsD,CAClE,MAAMmB,EAAsB,MAAM,KAAK,8BACpC,IAAA,GACC,uBAAA,EACEC,EAAsC,CAAA,EAC5C,OAAID,IACFC,EAAQ,cAAmBD,GAEtBC,CACT,CAEQ,qBAAqB/jB,EAAcgrB,EAAoB,CAC7D,MAAMzqB,EAAM,KAAK,WAAW,QAGtB80B,EAAiBr1B,EAAK,MAAM,yBAAyB,EAC3D,QAASjzB,EAAI,EAAGA,EAAIsoD,EAAe,OAAQtoD,IAAK,CAC9C,MAAMo+C,EAAUp+C,EAAIsoD,EAAe,OAAS,EAAI,SAAW,QAC3DrK,EAAS,KAAKG,CAAO,EAErBH,EAAS,KAAKqK,EAAetoD,CAAC,EAAE,QAAQ,QAAS,GAAG,CAAC,CACvD,CAEA,MAAO,GAAGwzB,CAAG,IAAIyqB,EAAS,KAAK,GAAG,CAAC,EACrC,CAEQ,oBAAoBhrB,EAAc,CACxC,MAAO,GAAGo0B,GAAoB,KAAK,WAAYp0B,CAAI,CAAC,cACtD,CACF,EA7Vaw0B,GAANxgC,GAAA,CADNC,GAAA,EAGI8E,QAAO,QAAQ,CAAA,EACfA,QAAO,+BAA+B,CAAA,EAEtCA,QAAO,uBAAuB,CAAA,CAAA,EALtBy7B,EAAA,ECrCN,IAAAc,GAAA,KAAoB,CACzB,YAAY9hC,EAAsB,CAChCA,EACG,KAAiB,YAAY,EAC7B,GAAG2gC,EAAe,EAClB,KAAKnQ,GAAmB,OAAO,CAAC,EACnCxwB,EAAU,KAAc,SAAS,EAAE,GAAGghC,EAAY,EAAE,UAAU,OAAO,CACvE,CACF,iJCRO,IAAMe,GAAN,KAAmD,CACjD,KACA,KACA,SACA,UAEP,aAAc,CACZ,KAAK,KAAO,iBACZ,KAAK,KAAO,UACZ,KAAK,SAAW,IAChB,KAAK,UAAY,EACnB,CAEA,SAAkB,CAChB,OAAO,KAAK,IACd,CAEA,SAAkB,CAChB,OAAO,KAAK,IACd,CACA,aAAsB,CACpB,OAAO,KAAK,QACd,CACA,aAAuB,CACrB,OAAO,KAAK,SACd,CACF,EA1BaA,GAANvhC,GAAA,CADNC,GAAA,CAAW,EACCshC,EAAA,ECHN,MAAMC,EAAkD,CAC7D,KACA,UACA,aAEA,YACEt/B,EACAu/B,EACAC,EACA,CACA,KAAK,KAAOx/B,EACZ,KAAK,UAAYu/B,EACjB,KAAK,aAAeC,CACtB,CACF,0KCNO,IAAMC,GAAN,cACGJ,EAEV,CACY,qBAAqD,IAIrD,0BAA4B,SAC5B,gCAAkC,iBAErC,OAEP,YAA8B51B,EAAgB,CAC5C,MAAA,EACA,KAAK,OAASA,EACd,KAAK,OAAO,UACV,qDAAA,CAEJ,CAEA,mBACEzJ,EACA0/B,EACAF,EACM,CACN,KAAK,iBAAiB,IACpBx/B,EACA,IAAIs/B,GAAuBt/B,EAAM0/B,EAAiBF,CAAY,CAAA,CAElE,CAEA,0BACEG,EACAC,EACM,CACN,KAAK,0BAA4BD,EACjC,KAAK,gCAAkCC,CACzC,CAIA,MAAM,cACJC,EACAviC,EACe,CACf,GAAI,CACF,MAAMwiC,EAAkB,KAAK,iBAAiB,IAAID,CAAa,EACzDN,EACJO,GAAmBA,EAAgB,UAC/BA,EAAgB,UAChB,KAAK,gCACLC,EACJ,KAAK,0BAA4BF,EAAgB,IAAMN,EACnDS,EACJ,KAAK,0BAA4BH,EAAgB,aAEnD,KAAK,QAAQ,MAAM,mBAAoBE,CAAU,EAEjD,GAAI,CACF,MAAME,EAAY,MAAM,OAA0BD,8BAGlD,SAAS,mBAAqB,CAACC,EAAU,OAAO,CAClD,MAAQ,CAER,CAEA,MAAMC,EAAsB,MAAM,OAA0BH,GAC5D,GAAIG,GAAuB,KAAM,CAC/B,KAAK,QAAQ,MACX,6BACAL,EACAK,CAAA,EAEF,MAAMC,EAAgBD,EAAoB,cAC1C,IAAIC,EAAc7iC,CAAS,EAC3B,KAAK,QAAQ,MAAM,kCAAmCuiC,CAAa,CACrE,MACE,KAAK,QAAQ,MAAM,6BAA8BA,CAAa,EAEhE,MACF,OAASnkD,EAAG,CACV,KAAK,QAAQ,MACX,2CACAmkD,EACAnkD,CAAA,CAEJ,CACF,CAEA,MAAM,eAAe4hB,EAAqC,CAExD,UAAWrqB,KAAO,KAAK,iBAAiB,KAAA,EACtC,MAAM,KAAK,cAAcA,EAAKqqB,CAAS,CAG3C,CACF,EAlGamiC,GAAN3hC,GAAA,CADNC,GAAA,EAcc8E,QAAO,QAAQ,CAAA,CAAA,EAbjB48B,EAAA,ECLb,MAAqBU,EAAc,CACjC,OAEA,YAAY7iC,EAAsB,CAChC,KAAK,OAASA,EAAU,IAAY,QAAQ,EAC5C,KAAK,OAAO,UAAU,4CAA4C,EAElE,KAAK,QAAQ,MAAM,yCAAyC,EAC5DA,EACG,KAAuB,kBAAkB,EACzC,GAAGmiC,EAAuB,EAC7B,KAAK,QAAQ,MAAM,uCAAuC,CAC5D,CACF,CCZO,MAAMW,EAAc,CAGlB,OAGA,UACA,cAEA,YAAYC,EAA8B,CAC/C,KAAK,cAAgBA,CACvB,CACO,UAAUl9B,EAAwB,CACvC,IAAIsG,EAAS,KAAK,UAAU,IAAY,QAAQ,EAChD,OAAKA,IACHA,EAAS,IAAI5L,IAEf4L,EAAO,UAAUtG,CAAM,EAChBsG,CACT,CAIA,MAAa,qBACX62B,EACe,CACf,MAAMT,EAAgB,oBAChBE,EAAa,SAAWF,EAAgB,sBAC9C,GAAI,CACF,GAAIS,EAEF,KAAK,QAAQ,MAAM,kCAAkC,EACrD,IAAIH,GAAc,KAAK,SAAS,MAC3B,CAEL,KAAK,QAAQ,MACX,8CACAJ,CAAA,EAEF,MAAMG,EAAsB,MAAM,OAA0BH,GAC5D,GAAIG,GAAuB,KAAM,CAC/B,KAAK,QAAQ,MACX,6BACAL,EACAK,CAAA,EAEF,MAAMC,EAAgBD,EAAoB,cAC1C,IAAIC,EAAc,KAAK,SAAS,EAChC,KAAK,QAAQ,MAAM,kCAAmCN,CAAa,CACrE,MACE,KAAK,QAAQ,MAAM,6BAA8BA,CAAa,CAElE,CACF,OAASnkD,EAAG,CACV,KAAK,QAAQ,MACX,kDACAqkD,EACArkD,CAAA,CAEJ,CACF,CAIA,MAAa,eACX4kD,EACAC,EACkC,CAClC,KAAK,QAAQ,MAAM,WAAW,EAC9B,MAAM,KAAK,qBAAqBD,CAAsB,EAEtD,MAAME,EACJ,KAAK,UAAU,IAAsB,kBAAkB,EAGzD,GAFA,KAAK,QAAQ,MAAM,wBAAyBA,CAAgB,EAExDA,GAAoB,KAAM,CAC5B,GAAI,CAACD,EAAa,CAChBC,EAAiB,0BACf,SACA,oBAAA,EAEF,UAAWC,KAAW,KAAK,cACzBD,EAAiB,mBAAmBC,EAAS,GAAI,EAAI,EAIvD,MAAMD,EAAiB,eAAe,KAAK,SAAS,CACtD,CACA,KAAK,QAAQ,MAAM,0BAA0B,CAC/C,MACE,KAAK,QAAQ,MAAM,mCAAmC,EAExD,OAAOA,CACT,CAEO,qBAA4B,CACjC,KAAK,UAAY,IAAIE,GAGrB,KAAK,UACF,KAAmB,cAAc,EACjC,GAAGC,EAAmB,EACtB,iBAAA,EACH,KAAK,UAAU,KAAa,QAAQ,EAAE,GAAG9iC,EAAa,EAEtD,MAAM+iC,EAAe,KAAK,UAAU,IAAkB,cAAc,EAChEA,GACFA,EAAa,gBAAgB,OAAO,EAEtC,KAAK,OAAS,KAAK,UAAU,UAAU,EACvC,KAAK,QAAQ,MAAM,qBAAqB,CAC1C,CAEO,sBAAsBC,EAA0B,CACrD,IAAIjjC,EAAqB,GAEzB,GAAIijC,EAAS,WAAW,GAAG,EAAG,CAC5B,MAAMC,EAAKD,EAAS,QAAQ,IAAK,CAAC,EAC9BC,GAAM,KACRljC,EAAaijC,EAAS,UAAU,EAAGC,CAAE,EAEzC,CAEA,OAAIljC,GAAc,MAAQA,GAAc,MACtCA,EAAa,SAGRA,CACT,CACF,CC1JA,MAAMmjC,GAAc,OAAO,eAAe,EACpCC,GAAiB,OAAO,kBAAkB,EAC1CC,GAAe,OAAO,sBAAsB,EAC5CC,GAAY,OAAO,mBAAmB,EACtCC,GAAc,OAAO,gBAAgB,EACrCriD,GAAYf,GAAS,OAAOA,GAAQ,UAAYA,IAAQ,MAAS,OAAOA,GAAQ,WAIhFqjD,GAAuB,CACzB,UAAYrjD,GAAQe,GAASf,CAAG,GAAKA,EAAIgjD,EAAW,EACpD,UAAU1nD,EAAK,CACX,KAAM,CAAE,MAAAgoD,EAAO,MAAAC,CAAK,EAAK,IAAI,eAC7B,OAAAC,GAAOloD,EAAKgoD,CAAK,EACV,CAACC,EAAO,CAACA,CAAK,CAAC,CAC1B,EACA,YAAYE,EAAM,CACd,OAAAA,EAAK,MAAK,EACHv5C,GAAKu5C,CAAI,CACpB,CACJ,EAIMC,GAAuB,CACzB,UAAYvuD,GAAU4L,GAAS5L,CAAK,GAAKiuD,MAAejuD,EACxD,UAAU,CAAE,MAAAA,GAAS,CACjB,IAAIwuD,EACJ,OAAIxuD,aAAiB,MACjBwuD,EAAa,CACT,QAAS,GACT,MAAO,CACH,QAASxuD,EAAM,QACf,KAAMA,EAAM,KACZ,MAAOA,EAAM,KACjC,CACA,EAGYwuD,EAAa,CAAE,QAAS,GAAO,MAAAxuD,CAAK,EAEjC,CAACwuD,EAAY,EAAE,CAC1B,EACA,YAAYA,EAAY,CACpB,MAAIA,EAAW,QACL,OAAO,OAAO,IAAI,MAAMA,EAAW,MAAM,OAAO,EAAGA,EAAW,KAAK,EAEvEA,EAAW,KACrB,CACJ,EAIMC,GAAmB,IAAI,IAAI,CAC7B,CAAC,QAASP,EAAoB,EAC9B,CAAC,QAASK,EAAoB,CAClC,CAAC,EACD,SAASG,GAAgBC,EAAgBC,EAAQ,CAC7C,UAAWC,KAAiBF,EAIxB,GAHIC,IAAWC,GAAiBA,IAAkB,KAG9CA,aAAyB,QAAUA,EAAc,KAAKD,CAAM,EAC5D,MAAO,GAGf,MAAO,EACX,CACA,SAASP,GAAOloD,EAAK2oD,EAAK,WAAYH,EAAiB,CAAC,GAAG,EAAG,CAC1DG,EAAG,iBAAiB,UAAW,SAASv5C,EAASw5C,EAAI,CACjD,GAAI,CAACA,GAAM,CAACA,EAAG,KACX,OAEJ,GAAI,CAACL,GAAgBC,EAAgBI,EAAG,MAAM,EAAG,CAC7C,QAAQ,KAAK,mBAAmBA,EAAG,MAAM,qBAAqB,EAC9D,MACJ,CACA,KAAM,CAAE,GAAA5yC,EAAI,KAAA/L,EAAM,KAAAupB,CAAI,EAAK,OAAO,OAAO,CAAE,KAAM,CAAA,GAAMo1B,EAAG,IAAI,EACxDC,GAAgBD,EAAG,KAAK,cAAgB,CAAA,GAAI,IAAIE,EAAa,EACnE,IAAIC,EACJ,GAAI,CACA,MAAMjrD,EAAS01B,EAAK,MAAM,EAAG,EAAE,EAAE,OAAO,CAACxzB,EAAKuoB,IAASvoB,EAAIuoB,CAAI,EAAGvoB,CAAG,EAC/DsP,EAAWkkB,EAAK,OAAO,CAACxzB,EAAKuoB,IAASvoB,EAAIuoB,CAAI,EAAGvoB,CAAG,EAC1D,OAAQiK,EAAI,CACR,IAAK,MAEG8+C,EAAcz5C,EAElB,MACJ,IAAK,MAEGxR,EAAO01B,EAAK,MAAM,EAAE,EAAE,CAAC,CAAC,EAAIs1B,GAAcF,EAAG,KAAK,KAAK,EACvDG,EAAc,GAElB,MACJ,IAAK,QAEGA,EAAcz5C,EAAS,MAAMxR,EAAQ+qD,CAAY,EAErD,MACJ,IAAK,YACD,CACI,MAAMhvD,EAAQ,IAAIyV,EAAS,GAAGu5C,CAAY,EAC1CE,EAAcx4C,GAAM1W,CAAK,CAC7B,CACA,MACJ,IAAK,WACD,CACI,KAAM,CAAE,MAAAmuD,EAAO,MAAAC,CAAK,EAAK,IAAI,eAC7BC,GAAOloD,EAAKioD,CAAK,EACjBc,EAAcC,GAAShB,EAAO,CAACA,CAAK,CAAC,CACzC,CACA,MACJ,IAAK,UAEGe,EAAc,OAElB,MACJ,QACI,MACpB,CACQ,OACOlvD,EAAO,CACVkvD,EAAc,CAAE,MAAAlvD,EAAO,CAACiuD,EAAW,EAAG,CAAC,CAC3C,CACA,QAAQ,QAAQiB,CAAW,EACtB,MAAOlvD,IACD,CAAE,MAAAA,EAAO,CAACiuD,EAAW,EAAG,CAAC,EACnC,EACI,KAAMiB,GAAgB,CACvB,KAAM,CAACE,EAAWC,CAAa,EAAIC,GAAYJ,CAAW,EAC1DJ,EAAG,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIM,CAAS,EAAG,CAAE,GAAAjzC,CAAE,CAAE,EAAGkzC,CAAa,EAC7Ej/C,IAAS,YAET0+C,EAAG,oBAAoB,UAAWv5C,CAAQ,EAC1Cg6C,GAAcT,CAAE,EACZd,MAAa7nD,GAAO,OAAOA,EAAI6nD,EAAS,GAAM,YAC9C7nD,EAAI6nD,EAAS,EAAC,EAG1B,CAAC,EACI,MAAO7kD,GAAU,CAElB,KAAM,CAACimD,EAAWC,CAAa,EAAIC,GAAY,CAC3C,MAAO,IAAI,UAAU,6BAA6B,EAClD,CAACrB,EAAW,EAAG,CAC/B,CAAa,EACDa,EAAG,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIM,CAAS,EAAG,CAAE,GAAAjzC,CAAE,CAAE,EAAGkzC,CAAa,CACrF,CAAC,CACL,CAAC,EACGP,EAAG,OACHA,EAAG,MAAK,CAEhB,CACA,SAASU,GAAcC,EAAU,CAC7B,OAAOA,EAAS,YAAY,OAAS,aACzC,CACA,SAASF,GAAcE,EAAU,CACzBD,GAAcC,CAAQ,GACtBA,EAAS,MAAK,CACtB,CACA,SAAS16C,GAAK+5C,EAAIjvD,EAAQ,CACtB,MAAM6vD,EAAmB,IAAI,IAC7B,OAAAZ,EAAG,iBAAiB,UAAW,SAAuBC,EAAI,CACtD,KAAM,CAAE,KAAAvkD,CAAI,EAAKukD,EACjB,GAAI,CAACvkD,GAAQ,CAACA,EAAK,GACf,OAEJ,MAAMmlD,EAAWD,EAAiB,IAAIllD,EAAK,EAAE,EAC7C,GAAKmlD,EAGL,GAAI,CACAA,EAASnlD,CAAI,CACjB,QACR,CACYklD,EAAiB,OAAOllD,EAAK,EAAE,CACnC,CACJ,CAAC,EACMolD,GAAYd,EAAIY,EAAkB,CAAA,EAAI7vD,CAAM,CACvD,CACA,SAASgwD,GAAqBC,EAAY,CACtC,GAAIA,EACA,MAAM,IAAI,MAAM,4CAA4C,CAEpE,CACA,SAASC,GAAgBjB,EAAI,CACzB,OAAOkB,GAAuBlB,EAAI,IAAI,IAAO,CACzC,KAAM,SACd,CAAK,EAAE,KAAK,IAAM,CACVS,GAAcT,CAAE,CACpB,CAAC,CACL,CACA,MAAMmB,GAAe,IAAI,QACnBC,GAAkB,yBAA0B,YAC9C,IAAI,qBAAsBpB,GAAO,CAC7B,MAAMqB,GAAYF,GAAa,IAAInB,CAAE,GAAK,GAAK,EAC/CmB,GAAa,IAAInB,EAAIqB,CAAQ,EACzBA,IAAa,GACbJ,GAAgBjB,CAAE,CAE1B,CAAC,EACL,SAASsB,GAAc15C,EAAOo4C,EAAI,CAC9B,MAAMqB,GAAYF,GAAa,IAAInB,CAAE,GAAK,GAAK,EAC/CmB,GAAa,IAAInB,EAAIqB,CAAQ,EACzBD,IACAA,GAAgB,SAASx5C,EAAOo4C,EAAIp4C,CAAK,CAEjD,CACA,SAAS25C,GAAgB35C,EAAO,CACxBw5C,IACAA,GAAgB,WAAWx5C,CAAK,CAExC,CACA,SAASk5C,GAAYd,EAAIY,EAAkB/1B,EAAO,CAAA,EAAI95B,EAAS,UAAY,CAAE,EAAG,CAC5E,IAAIywD,EAAkB,GACtB,MAAM55C,EAAQ,IAAI,MAAM7W,EAAQ,CAC5B,IAAI0wD,EAAS7hC,EAAM,CAEf,GADAmhC,GAAqBS,CAAe,EAChC5hC,IAASq/B,GACT,MAAO,IAAM,CACTsC,GAAgB35C,CAAK,EACrBq5C,GAAgBjB,CAAE,EAClBY,EAAiB,MAAK,EACtBY,EAAkB,EACtB,EAEJ,GAAI5hC,IAAS,OAAQ,CACjB,GAAIiL,EAAK,SAAW,EAChB,MAAO,CAAE,KAAM,IAAMjjB,CAAK,EAE9B,MAAMG,EAAIm5C,GAAuBlB,EAAIY,EAAkB,CACnD,KAAM,MACN,KAAM/1B,EAAK,IAAK1d,GAAMA,EAAE,UAAU,CACtD,CAAiB,EAAE,KAAKgzC,EAAa,EACrB,OAAOp4C,EAAE,KAAK,KAAKA,CAAC,CACxB,CACA,OAAO+4C,GAAYd,EAAIY,EAAkB,CAAC,GAAG/1B,EAAMjL,CAAI,CAAC,CAC5D,EACA,IAAI6hC,EAAS7hC,EAAMjZ,EAAU,CACzBo6C,GAAqBS,CAAe,EAGpC,KAAM,CAACtwD,EAAOqvD,CAAa,EAAIC,GAAY75C,CAAQ,EACnD,OAAOu6C,GAAuBlB,EAAIY,EAAkB,CAChD,KAAM,MACN,KAAM,CAAC,GAAG/1B,EAAMjL,CAAI,EAAE,IAAKzS,GAAMA,EAAE,UAAU,EAC7C,MAAAjc,CAChB,EAAeqvD,CAAa,EAAE,KAAKJ,EAAa,CACxC,EACA,MAAMsB,EAASC,EAAUC,EAAiB,CACtCZ,GAAqBS,CAAe,EACpC,MAAMvjD,EAAO4sB,EAAKA,EAAK,OAAS,CAAC,EACjC,GAAI5sB,IAAS+gD,GACT,OAAOkC,GAAuBlB,EAAIY,EAAkB,CAChD,KAAM,UAC1B,CAAiB,EAAE,KAAKT,EAAa,EAGzB,GAAIliD,IAAS,OACT,OAAO6iD,GAAYd,EAAIY,EAAkB/1B,EAAK,MAAM,EAAG,EAAE,CAAC,EAE9D,KAAM,CAACq1B,EAAcK,CAAa,EAAIqB,GAAiBD,CAAe,EACtE,OAAOT,GAAuBlB,EAAIY,EAAkB,CAChD,KAAM,QACN,KAAM/1B,EAAK,IAAK1d,GAAMA,EAAE,UAAU,EAClC,aAAA+yC,CAChB,EAAeK,CAAa,EAAE,KAAKJ,EAAa,CACxC,EACA,UAAUsB,EAASE,EAAiB,CAChCZ,GAAqBS,CAAe,EACpC,KAAM,CAACtB,EAAcK,CAAa,EAAIqB,GAAiBD,CAAe,EACtE,OAAOT,GAAuBlB,EAAIY,EAAkB,CAChD,KAAM,YACN,KAAM/1B,EAAK,IAAK1d,GAAMA,EAAE,UAAU,EAClC,aAAA+yC,CAChB,EAAeK,CAAa,EAAE,KAAKJ,EAAa,CACxC,CACR,CAAK,EACD,OAAAmB,GAAc15C,EAAOo4C,CAAE,EAChBp4C,CACX,CACA,SAASi6C,GAAOzlD,EAAK,CACjB,OAAO,MAAM,UAAU,OAAO,MAAM,CAAA,EAAIA,CAAG,CAC/C,CACA,SAASwlD,GAAiB1B,EAAc,CACpC,MAAM4B,EAAY5B,EAAa,IAAIM,EAAW,EAC9C,MAAO,CAACsB,EAAU,IAAK7+C,GAAMA,EAAE,CAAC,CAAC,EAAG4+C,GAAOC,EAAU,IAAK7+C,GAAMA,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1E,CACA,MAAM8+C,GAAgB,IAAI,QAC1B,SAAS1B,GAAShpD,EAAK2qD,EAAW,CAC9B,OAAAD,GAAc,IAAI1qD,EAAK2qD,CAAS,EACzB3qD,CACX,CACA,SAASuQ,GAAMvQ,EAAK,CAChB,OAAO,OAAO,OAAOA,EAAK,CAAE,CAAC0nD,EAAW,EAAG,GAAM,CACrD,CAQA,SAASyB,GAAYtvD,EAAO,CACxB,SAAW,CAAC8sB,EAAMikC,CAAO,IAAKtC,GAC1B,GAAIsC,EAAQ,UAAU/wD,CAAK,EAAG,CAC1B,KAAM,CAACgxD,EAAiB3B,CAAa,EAAI0B,EAAQ,UAAU/wD,CAAK,EAChE,MAAO,CACH,CACI,KAAM,UACN,KAAA8sB,EACA,MAAOkkC,CAC3B,EACgB3B,CAChB,CACQ,CAEJ,MAAO,CACH,CACI,KAAM,MACN,MAAArvD,CACZ,EACQ6wD,GAAc,IAAI7wD,CAAK,GAAK,CAAA,CACpC,CACA,CACA,SAASivD,GAAcjvD,EAAO,CAC1B,OAAQA,EAAM,KAAI,CACd,IAAK,UACD,OAAOyuD,GAAiB,IAAIzuD,EAAM,IAAI,EAAE,YAAYA,EAAM,KAAK,EACnE,IAAK,MACD,OAAOA,EAAM,KACzB,CACA,CACA,SAASgwD,GAAuBlB,EAAIY,EAAkBl0B,EAAKs1B,EAAW,CAClE,OAAO,IAAI,QAAS1W,GAAY,CAC5B,MAAMj+B,EAAK80C,GAAY,EACvBvB,EAAiB,IAAIvzC,EAAIi+B,CAAO,EAC5B0U,EAAG,OACHA,EAAG,MAAK,EAEZA,EAAG,YAAY,OAAO,OAAO,CAAE,GAAA3yC,GAAMqf,CAAG,EAAGs1B,CAAS,CACxD,CAAC,CACL,CACA,SAASG,IAAe,CACpB,OAAO,IAAI,MAAM,CAAC,EACb,KAAK,CAAC,EACN,IAAI,IAAM,KAAK,MAAM,KAAK,SAAW,OAAO,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAC1E,KAAK,GAAG,CACjB,CCvTA,eAAeC,IAAgB,CAI7B,OAAO,MAFL,KAAM,QAAO,qBAAkC,GAC/C,WAAW,cAAc,EACdC,CACf,CAMA,eAAeA,IAAsC,CACnD,GAAI,CAEF,MAAI,CAAC,SAAW,CAAC,QAAQ,UAAY,CAAC,QAAQ,SAAS,SAE9C,CAAA,EAEA,MAAMD,GAAA,CAEjB,MAAQ,CACN,OAAO,MAAMA,GAAA,CACf,CACF,CAEO,MAAME,EAA2B,CAC9B,cAAwB,EACxB,MAAuB,CAAA,EAGvB,UAGA,QAGA,UACA,YAAuB,GAGvB,IAKR,MAAa,OAAuB,CAGlC,IAFA,QAAQ,IAAI,wBAAwB,EACpC,MAAM,KAAK,WAAA,IAET,MAAM,KAAK,MAAM,GAAI,EACrB,MAAM,KAAK,WAAA,CAEf,CAEO,sBAAsBC,EAAgC,CAC3D,KAAK,IAAMA,CACb,CAEO,MAAMC,EAA8B,CACzC,OAAO,IAAI,QAASlX,GAAY,WAAWA,EAASkX,CAAE,CAAC,CACzD,CAEA,MAAa,YAA4B,CAIvC,GAFa,KAAK,aAAA,EAEP,EACT,GAAI,KAAK,YAAa,CACpB,MAAM16B,EAAO,KAAK,MAAM,IAAA,EACpBA,GACF,MAAM,KAAK,gBAAgBA,CAAI,EAEjC,MAAM,KAAK,WAAA,CACb,MACE,QAAQ,IACN,sEAAA,CAIR,CAIA,MAAa,gBAAgBA,EAA6B,CACxD,QAAQ,IAAI,4CAA6CA,CAAI,EAE7D,GAAI,CACF,IAAIlM,EAAa,KACb8gC,EAAW,KACXp7C,EAAO,KACX,MAAMmhD,EAAS36B,EAAK,QAAQ,GAAG,EACzB46B,EAAS56B,EAAK,YAAY,GAAG,EACnC,GAAI26B,GAAU,IAAMC,GAAU,GAAI,CAChC9mC,EAAakM,EAAK,UAAU,EAAG26B,CAAM,EACrC/F,EAAW50B,EAAK,UAAU26B,EAAS,EAAGC,CAAM,EAC5CphD,EAAOwmB,EAAK,UAAU46B,EAAS,CAAC,EAEhC,MAAMnnC,EAAa,KAAK,cAAcK,CAAU,EAC5CL,GAAc,KAChB,QAAQ,IAAI,iCAAkCuM,CAAI,GAElD,QAAQ,IAAI,iBAAkB40B,EAAUp7C,CAAI,EAE7B,MADCia,EAAW,QACE,kBAAkBmhC,EAAUp7C,CAAI,IAE3D,QAAQ,IAAI,2CAA2C,EACvD,KAAK,IAAIwmB,CAAI,GAGnB,MACE,QAAQ,IAAI,yBAA0BA,CAAI,CAE9C,OAASpuB,EAAG,CACV,QAAQ,IAAI,iCAAkCouB,EAAMpuB,CAAC,CACvD,CACF,CAEO,IAAI0U,EAAmB,CAC5B,eAAQ,IAAI,eAAe,EAC3B,KAAK,eAAiBA,EACf,KAAK,aACd,CAEO,WAAW0Z,EAAoB,CACpC,QAAQ,IAAI,uBAAwBA,CAAI,EACnC,KAAK,MAAM,SAASA,CAAI,GAC3B,KAAK,MAAM,KAAKA,CAAI,CAGxB,CAEO,cAAuB,CAC5B,eAAQ,IAAI,wBAAwB,EAC7B,KAAK,MAAM,MACpB,CAIO,cAAclM,EAA4C,CAC/D,MAAMF,EAAmB,KAAK,UAAU,IAAIE,CAAU,EACtD,GAAIF,GAAoB,KAAM,CAC5B,QAAQ,MAAM,2CAA4CE,CAAU,EACpE,MACF,CAEA,MAAMD,EADgB,IAAI,IAAI,OAAO,QAAQD,CAAgB,CAAC,EAC7B,IAAI,YAAY,EACjD,QAAQ,IACN,kCACAE,EACA,WACAD,CAAA,EAGF,IAAIJ,EACJ,GAAI,CACF,OAAAA,EAAa,KAAK,UAAU,IAAgB,aAAc,CACxD,KAAMI,CAAA,CACP,EACD,KAAK,QAAQ,cAAcJ,CAAU,EACrCA,EAAW,oBAAoBG,CAAgB,EAI/CH,EAAW,WAAA,EAEX,QAAQ,MACN,uBACAK,EACA,WACAD,EACA,IACAJ,CAAA,EAEKA,CACT,OAAS7hB,EAAG,CACV,QAAQ,MACN,qCACAkiB,EACA,WACAD,EACAjiB,CAAA,EAEF,MACF,CACF,CAIA,MAAa,YAA4B,CACvC,QAAQ,IAAI,qBAAqB,EACjC,MAAM2kD,EAA+B,CAAC,SAAS,EACzCl2B,EAAS,MAAMk6B,GAAA,EACrB,KAAK,UAAY,IAAI,IAAI,OAAO,QAAQl6B,CAAM,CAAC,EAC/C,QAAQ,IAAI,qBAAsB,KAAK,SAAS,EAChD,MAAMw6B,EAAgB,IAAIvE,GAAcC,CAAa,EACrDsE,EAAc,oBAAA,EACd,KAAK,UAAYA,EAAc,UAC/B,QAAQ,IAAI,mBAAoB,KAAK,SAAS,EAC9C,KAAK,UACF,KAAiB,YAAY,EAC7B,GAAGtnC,EAAgB,EACnB,iBAAA,EACH,KAAK,UACF,KAAkB,aAAa,EAC/B,GAAGW,EAAiB,EACpB,iBAAA,EACH,KAAK,QAAU,KAAK,UAAU,IAAgB,YAAY,EAC1D,KAAK,QAAQ,aAAa,KAAK,SAAS,EACxC,QAAQ,IAAI,mBAAoB,KAAK,SAAS,EAG9C,IAAI4mC,GAA0BD,EAAc,SAAS,EACrD,IAAIE,GAA2BF,EAAc,SAAS,EACtD,IAAIG,GAA8BH,EAAc,SAAS,EACzD,IAAII,GAA0BJ,EAAc,SAAS,EACrD,IAAIK,GAAmCL,EAAc,SAAS,EAC9D,IAAIM,GAA2BN,EAAc,SAAS,EACtD,QAAQ,IAAI,4BAA4B,EACxC,KAAK,YAAc,GACnB,QAAQ,IAAI,qBAAqB,CACnC,CACF,CAEA,MAAMO,GAAS,IAAIZ,GACnBY,GAAO,MAAA,EAEP,UAAaxpD,GAAM,CACjBypD,GAAeD,GAAQxpD,EAAE,MAAM,CAAC,CAAC,CACnC,EACA,QAAQ,IAAI,oBAAoB","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,13,19,20,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,96,97,98,99,100,105,106,107,108,109,110,111,112,113,114,115,116,117,129]}