@undefineds.co/xpod 0.4.13 → 0.4.14

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 (253) hide show
  1. package/config/components-ignore.json +11 -7
  2. package/dist/api/ai-gateway/providers/ProviderRegistry.js +1 -1
  3. package/dist/api/ai-gateway/service-access/AiConnectionsServiceAccess.d.ts +1 -1
  4. package/dist/api/ai-gateway/service-access/AiConnectionsServiceAccess.js +1 -1
  5. package/dist/api/container/index.js +1 -0
  6. package/dist/api/container/local.js +30 -12
  7. package/dist/api/container/routes.js +2 -0
  8. package/dist/api/container/types.d.ts +2 -0
  9. package/dist/api/handlers/AdminHandler.d.ts +17 -1
  10. package/dist/api/handlers/AdminHandler.js +40 -3
  11. package/dist/api/handlers/EdgeNodeSignalHandler.js +10 -2
  12. package/dist/api/handlers/NetworkSettingsHandler.d.ts +37 -5
  13. package/dist/api/handlers/NetworkSettingsHandler.js +39 -11
  14. package/dist/api/handlers/ProvisionHandler.d.ts +6 -1
  15. package/dist/api/handlers/ProvisionHandler.js +7 -2
  16. package/dist/api/handlers/ReachabilityHandler.d.ts +6 -0
  17. package/dist/api/handlers/ReachabilityHandler.js +22 -5
  18. package/dist/api/network/NetworkEnvironmentConfigurationStore.d.ts +6 -1
  19. package/dist/api/network/NetworkEnvironmentConfigurationStore.js +72 -16
  20. package/dist/api/runtime.d.ts +9 -0
  21. package/dist/api/runtime.js +15 -2
  22. package/dist/api/service/AiClientConfigurationService.d.ts +1 -1
  23. package/dist/api/service/AiClientConfigurationService.js +1 -1
  24. package/dist/cli/commands/start.d.ts +19 -1
  25. package/dist/cli/commands/start.js +71 -5
  26. package/dist/components/context.jsonld +30 -0
  27. package/dist/edge/EdgeNodeAgent.d.ts +6 -0
  28. package/dist/edge/EdgeNodeAgent.js +1 -1
  29. package/dist/edge/EdgeNodeAgentInitializer.d.ts +2 -0
  30. package/dist/edge/EdgeNodeAgentInitializer.js +1 -0
  31. package/dist/edge/EdgeNodeAgentInitializer.jsonld +19 -0
  32. package/dist/edge/EdgeNodeDnsCoordinator.d.ts +11 -1
  33. package/dist/edge/EdgeNodeDnsCoordinator.js +12 -2
  34. package/dist/edge/EdgeNodeHealthProbeService.d.ts +15 -0
  35. package/dist/edge/EdgeNodeHealthProbeService.js +44 -12
  36. package/dist/edge/EdgeNodeHealthProbeService.jsonld +77 -0
  37. package/dist/edge/ProbeTargetGuard.d.ts +35 -0
  38. package/dist/edge/ProbeTargetGuard.js +142 -0
  39. package/dist/edge/reachability/NodeAccessResolver.d.ts +16 -0
  40. package/dist/edge/reachability/NodeAccessResolver.js +30 -0
  41. package/dist/index.d.ts +3 -1
  42. package/dist/index.js +9 -3
  43. package/dist/main.js +7 -0
  44. package/dist/runtime/Proxy.d.ts +22 -0
  45. package/dist/runtime/Proxy.js +34 -7
  46. package/dist/runtime/bootstrap.d.ts +11 -0
  47. package/dist/runtime/bootstrap.js +21 -1
  48. package/dist/runtime/css-process.d.ts +1 -0
  49. package/dist/runtime/css-process.js +1 -0
  50. package/dist/runtime/host/node/NodeRuntimeHost.js +4 -1
  51. package/dist/runtime/host/types.d.ts +6 -0
  52. package/dist/runtime/index.d.ts +1 -1
  53. package/dist/runtime/index.js +5 -1
  54. package/dist/runtime/lifecycle.js +1 -0
  55. package/dist/runtime/port-finder.d.ts +30 -0
  56. package/dist/runtime/port-finder.js +83 -0
  57. package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +1 -0
  58. package/dist/runtime/runner/types.d.ts +5 -0
  59. package/dist/runtime/runtime-types.d.ts +1 -0
  60. package/dist/test-utils/local-managed-client-p2p-e2e-smoke.js +1 -1
  61. package/dist/tunnel/LocalTunnelProvider.d.ts +15 -0
  62. package/dist/tunnel/LocalTunnelProvider.js +87 -18
  63. package/dist/tunnel/LocalTunnelProvider.jsonld +27 -0
  64. package/dist/tunnel/NgrokTunnelProvider.d.ts +4 -0
  65. package/dist/tunnel/NgrokTunnelProvider.js +117 -43
  66. package/dist/tunnel/NgrokTunnelProvider.jsonld +4 -0
  67. package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +65 -3
  68. package/dist/tunnel/SakuraFrpTunnelProvider.js +268 -25
  69. package/dist/tunnel/TunnelLifecycle.d.ts +14 -0
  70. package/dist/tunnel/TunnelLifecycle.js +34 -0
  71. package/dist/tunnel/TunnelProfiles.d.ts +33 -3
  72. package/dist/tunnel/TunnelProfiles.js +105 -78
  73. package/dist/tunnel/TunnelProvider.d.ts +15 -2
  74. package/dist/tunnel/TunnelProvider.jsonld +8 -0
  75. package/dist/tunnel/TunnelProviderCatalog.d.ts +62 -0
  76. package/dist/tunnel/TunnelProviderCatalog.js +130 -0
  77. package/node_modules/@undefineds.co/ai-connections/dist/AiApiKeyPool.d.ts +1 -1
  78. package/node_modules/@undefineds.co/ai-connections/dist/AiApiKeyPool.js +1 -1
  79. package/node_modules/@undefineds.co/ai-connections/dist/AiAuthorizationActions.d.ts +1 -1
  80. package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.d.ts +1 -1
  81. package/node_modules/@undefineds.co/ai-connections/dist/AiClientConfigurationSection.js +1 -1
  82. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectDialog.d.ts +1 -1
  83. package/node_modules/@undefineds.co/ai-connections/dist/AiConnectionsPanel.d.ts +1 -1
  84. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialPoolSection.d.ts +1 -1
  85. package/node_modules/@undefineds.co/ai-connections/dist/AiCredentialRow.d.ts +1 -1
  86. package/node_modules/@undefineds.co/ai-connections/dist/AiCustomProviderDialog.d.ts +1 -1
  87. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeyRow.d.ts +1 -1
  88. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayKeysSection.d.ts +1 -1
  89. package/node_modules/@undefineds.co/ai-connections/dist/AiGatewayModelsSection.d.ts +1 -1
  90. package/node_modules/@undefineds.co/ai-connections/dist/AiOfferingDetails.d.ts +1 -1
  91. package/node_modules/@undefineds.co/ai-connections/dist/AiProviderCard.d.ts +1 -1
  92. package/node_modules/@undefineds.co/ai-connections/dist/AiQuotaCard.d.ts +1 -1
  93. package/node_modules/@undefineds.co/ai-connections/dist/AiSortableCredentialList.d.ts +1 -1
  94. package/node_modules/@undefineds.co/ai-connections/dist/authorization-methods.d.ts +1 -1
  95. package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.d.ts +1 -1
  96. package/node_modules/@undefineds.co/ai-connections/dist/collection-runtime.js +3 -3
  97. package/node_modules/@undefineds.co/ai-connections/dist/collections.d.ts +1 -1
  98. package/node_modules/@undefineds.co/ai-connections/dist/collections.js +3 -3
  99. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/ai-connections-client.d.ts +1 -1
  100. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/ai-connections-client.js +1 -1
  101. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/index.cjs +8 -8
  102. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/index.d.ts +1 -1
  103. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/index.js +1 -1
  104. package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/provider-catalog.cjs +3 -3
  105. package/node_modules/@undefineds.co/ai-connections/dist/controller.d.ts +1 -1
  106. package/node_modules/@undefineds.co/ai-connections/dist/controller.js +1 -1
  107. package/node_modules/@undefineds.co/ai-connections/dist/credential-labels.d.ts +1 -1
  108. package/node_modules/@undefineds.co/ai-connections/dist/display-wording.d.ts +1 -1
  109. package/node_modules/@undefineds.co/ai-connections/dist/error-wording.d.ts +1 -1
  110. package/node_modules/@undefineds.co/ai-connections/dist/error-wording.js +1 -1
  111. package/node_modules/@undefineds.co/ai-connections/dist/gateway-endpoints.js +1 -1
  112. package/node_modules/@undefineds.co/ai-connections/dist/offering-endpoints.d.ts +1 -1
  113. package/node_modules/@undefineds.co/ai-connections/dist/offering-label.d.ts +1 -1
  114. package/node_modules/@undefineds.co/ai-connections/dist/provider-visuals.d.ts +1 -1
  115. package/node_modules/@undefineds.co/ai-connections/dist/service-access.js +1 -1
  116. package/node_modules/@undefineds.co/ai-connections/dist/useAiConnectDialog.d.ts +1 -1
  117. package/node_modules/@undefineds.co/ai-connections/package.json +31 -1
  118. package/package.json +5 -6
  119. package/static/app/assets/main.css +1 -1
  120. package/static/auth-callback/assets/{AiConfigContext-DlFyEWy9.js → AiConfigContext-DCXpjzpj.js} +1 -1
  121. package/static/auth-callback/assets/{AiConfigPage-CkYk-SFW.js → AiConfigPage-fe-xMIXa.js} +1 -1
  122. package/static/auth-callback/assets/{DocumentProcessingPanel-CqIr3JqN.js → DocumentProcessingPanel-BGnkfMuU.js} +1 -1
  123. package/static/auth-callback/assets/{IndexLifecyclePanel-C1GKV3Vx.js → IndexLifecyclePanel-42Jups0j.js} +1 -1
  124. package/static/auth-callback/assets/{IndexSubjectPanel-ro9lC6XW.js → IndexSubjectPanel-CYyLOlQU.js} +1 -1
  125. package/static/auth-callback/assets/{ModelAssignmentsPanel-DxNdyKRJ.js → ModelAssignmentsPanel-BOvUH4yr.js} +1 -1
  126. package/static/auth-callback/assets/{ModelsPage-BVtWSPBU.js → ModelsPage-DwyITxt7.js} +3 -3
  127. package/static/auth-callback/assets/NetworkPage-CG9RelJA.js +2 -0
  128. package/static/auth-callback/assets/{PaneListHeader-ByKw8ada.js → PaneListHeader-yvd5ohs6.js} +1 -1
  129. package/static/auth-callback/assets/{SearchIndexingPanel-CulBKcYT.js → SearchIndexingPanel-2_a6ezzj.js} +1 -1
  130. package/static/auth-callback/assets/{StatusSubjectPanel-VOcfrt8o.js → StatusSubjectPanel-8qtVxnzC.js} +1 -1
  131. package/static/auth-callback/assets/{StatusWorkspace-Jsz6hAdE.js → StatusWorkspace-CBdRahCF.js} +1 -1
  132. package/static/auth-callback/assets/{SystemSettingsPage-BFNvGAle.js → SystemSettingsPage-BZJ6vWkg.js} +1 -1
  133. package/static/auth-callback/assets/{SystemSettingsSubjectPanel-DFRdrSfK.js → SystemSettingsSubjectPanel-xm08UhXP.js} +1 -1
  134. package/static/auth-callback/assets/{XpodAiConnectionsPodStore-C6KpvHVg.js → XpodAiConnectionsPodStore-V6vgGfuw.js} +1 -1
  135. package/static/auth-callback/assets/{activity-DnTlb9iM.js → activity-CeM7xly8.js} +1 -1
  136. package/static/auth-callback/assets/{auth-callback-D2UkK5Xj.js → auth-callback-DTG8cSj7.js} +3 -3
  137. package/static/auth-callback/assets/auth-callback-rk080mvG.css +1 -0
  138. package/static/auth-callback/assets/{badge-D7IJuuTM.js → badge-qJo2Zr4d.js} +1 -1
  139. package/static/auth-callback/assets/{collection-runtime-wT1n4GS2.js → collection-runtime-Bztsz31a.js} +1 -1
  140. package/static/auth-callback/assets/{dialog-DickLu5z.js → dialog-D-h6x5x0.js} +1 -1
  141. package/static/auth-callback/assets/{download-kn8WnRu3.js → download-C2ir4lmR.js} +1 -1
  142. package/static/auth-callback/assets/{external-link-B6B8jfSn.js → external-link-THLDL4On.js} +1 -1
  143. package/static/auth-callback/assets/{index-Dz83EEHD.js → index-BRpv4yO3.js} +1 -1
  144. package/static/auth-callback/assets/{index-DHF97YLP.js → index-BlVZb9A7.js} +1 -1
  145. package/static/auth-callback/assets/index-D983R1FV.js +4 -0
  146. package/static/auth-callback/assets/{index-browser-CSghinyi.js → index-browser-3FvR0aaf.js} +1 -1
  147. package/static/auth-callback/assets/{key-round-ChkOx3E1.js → key-round-C9U5j1Ly.js} +1 -1
  148. package/static/auth-callback/assets/{rotate-ccw-B3hE-nyd.js → rotate-ccw-DP45cD4o.js} +1 -1
  149. package/static/auth-callback/assets/{skeleton-kEqR7tpI.js → skeleton-Dn4EiSCS.js} +1 -1
  150. package/static/auth-callback/assets/{waypoints-D6Jo-SZa.js → waypoints-uqFQ3uEG.js} +1 -1
  151. package/static/auth-callback/assets/{workspace-layout-BHwT_cHd.js → workspace-layout-DLYK0Wwu.js} +1 -1
  152. package/static/auth-callback/auth-callback.html +2 -2
  153. package/static/dashboard/assets/{AiConfigContext-BfC3v-x2.js → AiConfigContext-DJcMECNw.js} +1 -1
  154. package/static/dashboard/assets/{AiConfigPage-QNS3u7Ff.js → AiConfigPage-BvE7dOTy.js} +1 -1
  155. package/static/dashboard/assets/{DocumentProcessingPanel-Dr4XLeT4.js → DocumentProcessingPanel-D9780krf.js} +1 -1
  156. package/static/dashboard/assets/{IndexLifecyclePanel-KtM_gpeO.js → IndexLifecyclePanel-SjsUcnbM.js} +1 -1
  157. package/static/dashboard/assets/{IndexSubjectPanel-DLaiKdLc.js → IndexSubjectPanel-C-ym2Tqi.js} +1 -1
  158. package/static/dashboard/assets/{ModelAssignmentsPanel-Bk7TvQRq.js → ModelAssignmentsPanel-BRjZ-arB.js} +1 -1
  159. package/static/dashboard/assets/{ModelsPage-Cci3vlos.js → ModelsPage-BtTU6du3.js} +3 -3
  160. package/static/dashboard/assets/NetworkPage-CV9qpkDg.js +2 -0
  161. package/static/dashboard/assets/{PaneListHeader-qHME_s08.js → PaneListHeader-KyPTTBsv.js} +1 -1
  162. package/static/dashboard/assets/{SearchIndexingPanel-HZPKj8H9.js → SearchIndexingPanel-DolHGawg.js} +1 -1
  163. package/static/dashboard/assets/{StatusSubjectPanel-ij7IpI8d.js → StatusSubjectPanel-_YZvKiYi.js} +1 -1
  164. package/static/dashboard/assets/{StatusWorkspace-Cp02JcaN.js → StatusWorkspace-Dlbh_G40.js} +1 -1
  165. package/static/dashboard/assets/{SystemSettingsPage-BSeuvb8X.js → SystemSettingsPage-Be7QSIoz.js} +1 -1
  166. package/static/dashboard/assets/{SystemSettingsSubjectPanel-CP4_luGS.js → SystemSettingsSubjectPanel-DBp0gja7.js} +1 -1
  167. package/static/dashboard/assets/{XpodAiConnectionsPodStore-urO6zaHL.js → XpodAiConnectionsPodStore-ClpSjzpP.js} +1 -1
  168. package/static/dashboard/assets/{activity-DxjgQNvr.js → activity-lsNbTXJu.js} +1 -1
  169. package/static/dashboard/assets/{badge-53qCrRbl.js → badge-CVatKjaG.js} +1 -1
  170. package/static/dashboard/assets/{collection-runtime-BPAmHG46.js → collection-runtime-Ec4UnY28.js} +1 -1
  171. package/static/dashboard/assets/{dashboard-BcT2ByXw.js → dashboard-BEzsRsvF.js} +2 -2
  172. package/static/dashboard/assets/dashboard-rk080mvG.css +1 -0
  173. package/static/dashboard/assets/{dialog-B28YtNhS.js → dialog-BuyelQ4V.js} +1 -1
  174. package/static/dashboard/assets/{download-DkLNceJ4.js → download-B4Nf678F.js} +1 -1
  175. package/static/dashboard/assets/{external-link-D3TXnlo3.js → external-link-PYv9CvKL.js} +1 -1
  176. package/static/dashboard/assets/index-C9XPE-mI.js +4 -0
  177. package/static/dashboard/assets/{index-CFIenkeK.js → index-Cx69bTNh.js} +1 -1
  178. package/static/dashboard/assets/{index-CIiBu9mr.js → index-awr7ulur.js} +1 -1
  179. package/static/dashboard/assets/{key-round-B5ccp6nx.js → key-round-VsY80U1Z.js} +1 -1
  180. package/static/dashboard/assets/{rotate-ccw-DUpfkNnk.js → rotate-ccw-Cz1K4vE9.js} +1 -1
  181. package/static/dashboard/assets/{skeleton-BRe19fO0.js → skeleton-BhNv_8tO.js} +1 -1
  182. package/static/dashboard/assets/{waypoints-BKDMxEvu.js → waypoints-DYS9XFYV.js} +1 -1
  183. package/static/dashboard/assets/{workspace-layout-ZTF7C16h.js → workspace-layout-OZJAFx5V.js} +1 -1
  184. package/static/dashboard/dashboard.html +2 -2
  185. package/static/settings/assets/{AiConfigContext-DsyWgu2i.js → AiConfigContext-B8JS3MXF.js} +1 -1
  186. package/static/settings/assets/{AiConfigPage-CSCBckKo.js → AiConfigPage-C3Zl8LUl.js} +1 -1
  187. package/static/settings/assets/{DocumentProcessingPanel-w9yQDbBe.js → DocumentProcessingPanel-DpDZAQvf.js} +1 -1
  188. package/static/settings/assets/{IndexLifecyclePanel-CUUXI8mP.js → IndexLifecyclePanel-Ec1XF88t.js} +1 -1
  189. package/static/settings/assets/{IndexSubjectPanel-BypAU5TJ.js → IndexSubjectPanel-BulT9BmO.js} +1 -1
  190. package/static/settings/assets/{ModelAssignmentsPanel-BetgXw1G.js → ModelAssignmentsPanel-BcGSmYjb.js} +1 -1
  191. package/static/settings/assets/{ModelsPage-DZpTlTZ3.js → ModelsPage-CvTCKy1T.js} +3 -3
  192. package/static/settings/assets/NetworkPage-DQF5u9Bn.js +2 -0
  193. package/static/settings/assets/{PaneListHeader-BGOqGec4.js → PaneListHeader-D40hqcVl.js} +1 -1
  194. package/static/settings/assets/{SearchIndexingPanel-DYAbpZ_9.js → SearchIndexingPanel-iCUPOx_0.js} +1 -1
  195. package/static/settings/assets/{StatusSubjectPanel-CFgzeQ8Q.js → StatusSubjectPanel-E--ZHSql.js} +1 -1
  196. package/static/settings/assets/{StatusWorkspace-4Z6g4Jvv.js → StatusWorkspace-YjDAx1II.js} +1 -1
  197. package/static/settings/assets/{SystemSettingsPage-C1tlrgvI.js → SystemSettingsPage-CDdV3mC9.js} +1 -1
  198. package/static/settings/assets/{SystemSettingsSubjectPanel-CcURI-1L.js → SystemSettingsSubjectPanel-Br8WazDq.js} +1 -1
  199. package/static/settings/assets/{XpodAiConnectionsPodStore-owBQc5nY.js → XpodAiConnectionsPodStore-CLr38P_Z.js} +1 -1
  200. package/static/settings/assets/{activity-CtBc9cNy.js → activity-C5DAHHTE.js} +1 -1
  201. package/static/settings/assets/{badge--r-FDIhU.js → badge-D8eIyxKt.js} +1 -1
  202. package/static/settings/assets/{collection-runtime-CnhPmwAM.js → collection-runtime-DLc9zil8.js} +1 -1
  203. package/static/settings/assets/{dialog-B7ZRsjN7.js → dialog-CyuR7Va4.js} +1 -1
  204. package/static/settings/assets/{download-DgQ1F8QR.js → download-c0oxZrCz.js} +1 -1
  205. package/static/settings/assets/{external-link-Bz7NckNO.js → external-link-D3Z34fP_.js} +1 -1
  206. package/static/settings/assets/{index-Vv-8Vslg.js → index-CKGbRFlc.js} +1 -1
  207. package/static/settings/assets/index-CSr3-2Cj.js +4 -0
  208. package/static/settings/assets/{index-CkGda_Pg.js → index-ComidxAm.js} +1 -1
  209. package/static/settings/assets/{index-browser-Dq7omlpY.js → index-browser-CAscEbae.js} +1 -1
  210. package/static/settings/assets/{key-round-CvuhloKV.js → key-round-DyjLmXuB.js} +1 -1
  211. package/static/settings/assets/{rotate-ccw-DgFKDaz7.js → rotate-ccw-679HF_ec.js} +1 -1
  212. package/static/settings/assets/{settings-BvqY7K96.js → settings-DKknqu4C.js} +3 -3
  213. package/static/settings/assets/settings-rk080mvG.css +1 -0
  214. package/static/settings/assets/{skeleton-D3OeFDF6.js → skeleton-CkopNkPB.js} +1 -1
  215. package/static/settings/assets/{waypoints-C4WbspTb.js → waypoints-CrqfAftE.js} +1 -1
  216. package/static/settings/assets/{workspace-layout-B9H1Tqrk.js → workspace-layout-UN6c4qTG.js} +1 -1
  217. package/static/settings/settings.html +2 -2
  218. package/node_modules/@undefineds.co/ai-connections-core/package.json +0 -61
  219. package/static/auth-callback/assets/NetworkPage-cEvxRMAl.js +0 -2
  220. package/static/auth-callback/assets/auth-callback-Cx9D_1qj.css +0 -1
  221. package/static/auth-callback/assets/index-Cu0EguPo.js +0 -4
  222. package/static/dashboard/assets/NetworkPage-Ot4G2dX5.js +0 -2
  223. package/static/dashboard/assets/dashboard-Cx9D_1qj.css +0 -1
  224. package/static/dashboard/assets/index-Gp3cLolR.js +0 -4
  225. package/static/settings/assets/NetworkPage-BVkasFGM.js +0 -2
  226. package/static/settings/assets/index-BdXwm8nh.js +0 -4
  227. package/static/settings/assets/settings-Cx9D_1qj.css +0 -1
  228. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/normalize.d.ts +0 -0
  229. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/normalize.js +0 -0
  230. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/request.d.ts +0 -0
  231. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/request.js +0 -0
  232. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/types.d.ts +0 -0
  233. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client/types.js +0 -0
  234. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/base-adapter.d.ts +0 -0
  235. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/base-adapter.js +0 -0
  236. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/codex.d.ts +0 -0
  237. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/codex.js +0 -0
  238. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/index.d.ts +0 -0
  239. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/index.js +0 -0
  240. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/json-env-adapter.d.ts +0 -0
  241. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/json-env-adapter.js +0 -0
  242. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/pi.d.ts +0 -0
  243. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/pi.js +0 -0
  244. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/transaction.d.ts +0 -0
  245. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/transaction.js +0 -0
  246. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/types.d.ts +0 -0
  247. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/client-config/types.js +0 -0
  248. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/credential-storage.d.ts +0 -0
  249. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/credential-storage.js +0 -0
  250. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/endpoint-urls.d.ts +0 -0
  251. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/endpoint-urls.js +0 -0
  252. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/provider-catalog.d.ts +0 -0
  253. /package/node_modules/@undefineds.co/{ai-connections-core/dist → ai-connections/dist/contract}/provider-catalog.js +0 -0
@@ -0,0 +1,4 @@
1
+ var St=t=>{throw TypeError(t)};var wt=(t,n,s)=>n.has(t)||St("Cannot "+s);var xe=(t,n,s)=>(wt(t,n,"read from private field"),s?s.call(t):n.get(t)),Ct=(t,n,s)=>n.has(t)?St("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(t):n.set(t,s),st=(t,n,s,o)=>(wt(t,n,"write to private field"),o?o.call(t,s):n.set(t,s),s);import{r as a,c as Ee,j as e,Z as ae,R as mt,D as Nn,M as Sn,O as wn,V as Et,_ as Cn,m as ye,n as ft,o as He,P as Te,l as Be,T as ht,Q as Wt,$ as En}from"./dashboard-BEzsRsvF.js";import{g as Tn,f as Tt,i as _n,s as Rn,j as Ln,a as Pn,k as Dn,c as kn,e as On,h as An,u as In,t as qn}from"./admin-C6qCRFiY.js";import{A as Mn}from"./activity-lsNbTXJu.js";import{E as $n}from"./external-link-PYv9CvKL.js";import{c as be,a as Un,P as Fn,e as Qt,h as Hn,b as Bn,R as Vn,F as Kn,D as zn,d as _t}from"./index-Cx69bTNh.js";import{A as Xn,c as Yt,C as Gn,V as Wn,R as Qn}from"./index-awr7ulur.js";import{D as Yn}from"./download-B4Nf678F.js";import{K as Jn}from"./key-round-VsY80U1Z.js";var Zn=Object.defineProperty,es=(t,n)=>Zn(t,"name",{value:n,configurable:!0}),ts=a.createContext(void 0);function Jt(t){const n=a.useContext(ts);return t||n||"ltr"}es(Jt,"useDirection");var ns=Object.defineProperty,ss=(t,n)=>ns(t,"name",{value:n,configurable:!0});function lt(t,[n,s]){return Math.min(s,Math.max(n,t))}ss(lt,"clamp");const os=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],cs=Ee("chart-column",os);const rs=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],as=Ee("check",rs);const ls=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],is=Ee("chevron-down",ls);const ds=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]],us=Ee("file-down",ds);const ps=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],ms=Ee("pause",ps);const fs=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],hs=Ee("play",fs);const xs=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Rt=Ee("search",xs);const gs=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],bs=Ee("trash-2",gs);const vs=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],xt=Ee("triangle-alert",vs);const ys=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],js=Ee("x",ys);function me(t){const{className:n,variant:s="default",size:o="default",children:c,...r}=t,i="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus-visible:outline-none active:translate-y-px disabled:opacity-50 disabled:pointer-events-none",p={default:"bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:bg-primary/80",secondary:"bg-muted text-foreground hover:bg-muted/80 focus-visible:bg-muted/60",ghost:"bg-transparent hover:bg-muted focus-visible:bg-muted text-foreground"},m={default:"h-10 px-4 py-2",sm:"h-8 px-3",icon:"h-9 w-9 p-0"};return e.jsx("button",{className:ae(i,p[s],m[o],n),...r,children:c})}function te(t){const{className:n,variant:s,children:o}=t;return e.jsx("div",{className:ae("rounded-xl bg-background",s==="bordered"&&"border border-border",n),children:o})}function ce(t){const{className:n,children:s}=t;return e.jsx("div",{className:ae("px-5 pt-5",n),children:s})}function re(t){const{className:n,children:s}=t;return e.jsx("div",{className:ae("text-base font-semibold",n),children:s})}function ne(t){const{className:n,children:s}=t;return e.jsx("div",{className:ae("px-5 pb-5 pt-4",n),children:s})}function Ze(t){const{className:n,...s}=t;return e.jsx("input",{className:ae("w-full h-10 rounded-md border border-input bg-background px-3 py-2 text-sm","placeholder:text-muted-foreground","focus:outline-none focus-visible:border-primary",n),...s})}function Oe(t){const{className:n,...s}=t;return e.jsx("label",{className:ae("text-sm font-medium text-foreground",n),...s})}const Ns={"not-cloud":"非 Cloud 模式","missing-sparql-endpoint":"缺少 PostgreSQL 端点","unsupported-sparql-endpoint":"非 PostgreSQL 端点"};function Ss(t){const n=t.trim();return n?{cacheScopeQuery:n,cacheScopeLimit:50}:{}}function EF(){const[t,n]=a.useState(null),[s,o]=a.useState(!0),[c,r]=a.useState(!1),[i,p]=a.useState(""),[m,f]=a.useState(""),[y,S]=a.useState(""),C=a.useRef(!1),R=a.useCallback(async(g=!1,w=y)=>{g?o(!0):r(!0),p("");try{const v=await Tn(Ss(w));v?n(v):p("RDF 统计不可用")}finally{o(!1),r(!1)}},[y]);a.useEffect(()=>{C.current||(C.current=!0,R(!0))},[R]),a.useEffect(()=>{const g=setInterval(()=>{R(!1)},1e4);return()=>clearInterval(g)},[R]);const L=g=>{g.preventDefault();const w=m.trim();S(w),R(!1,w)},T=()=>{f(""),S(""),R(!1,"")},x=t?et(t.generatedAt):"-";return s?e.jsx("div",{className:"p-8 text-foreground",children:"加载中..."}):e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"type-h1",children:"RDF 索引"}),e.jsxs("div",{className:"mt-1 text-sm text-muted-foreground",children:["更新时间 ",x]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("form",{className:"flex min-w-0 items-center gap-2",onSubmit:L,children:[e.jsxs("div",{className:"relative w-72 max-w-[70vw]",children:[e.jsx(Rt,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(Ze,{value:m,onChange:g=>f(g.target.value),className:"pl-9",placeholder:"principal / base / version"})]}),e.jsxs(me,{type:"submit",variant:"secondary",size:"sm",className:"gap-2",children:[e.jsx(Rt,{className:"h-4 w-4"}),"搜索"]}),y&&e.jsx(me,{type:"button",variant:"ghost",size:"sm",onClick:T,"aria-label":"清除 scope 搜索",children:e.jsx(js,{className:"h-4 w-4"})})]}),e.jsxs(me,{type:"button",variant:"secondary",size:"sm",onClick:()=>{R(!1)},disabled:c,className:"gap-2",children:[e.jsx(mt,{className:ae("h-4 w-4",c&&"animate-spin")}),"刷新"]})]})]}),i&&e.jsx("div",{className:"mb-5 rounded-md border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm text-destructive",children:i}),t?.available?e.jsx(ws,{snapshot:t,scopeQuery:y}):e.jsxs(e.Fragment,{children:[e.jsx(Cs,{snapshot:t}),e.jsx("div",{className:"mt-8",children:e.jsx(Zt,{snapshot:t?.benchmarkReports})})]})]})}function ws(t){const{snapshot:n,scopeQuery:s}=t,o=n.stats,c=o.rdf3x,r=o.slowQueries?.entries??[],i=o.derivedCache,p=i?.scopeEntries??[],m=o.pgAcceleration,f=o.lifecycle,y=f?.coldStart,S=y?.phases.reduce((C,R)=>R.durationMs>C.durationMs?R:C,{name:"-",durationMs:0});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-8 grid grid-cols-1 gap-5 md:grid-cols-2 xl:grid-cols-5",children:[e.jsx(Fe,{icon:Nn,label:"引擎",value:n.engine,detail:m?.profile??"baseline",tone:m?.enabled?"good":"neutral"}),e.jsx(Fe,{icon:Mn,label:"RDF-3X",value:c?.syncedWithFacts?"已同步":`${c?.refreshLag??0} 版本延迟`,detail:`facts ${c?.factsDataVersion??0} / rdf3x ${c?.rdf3xFactsDataVersion??0} / pending ${c?.pendingSources??0}`,tone:c?.syncedWithFacts?"good":"warn"}),e.jsx(Fe,{icon:Sn,label:"存储",value:pe(o.totalBytes),detail:`facts ${pe(o.factsBytes)} / derived ${pe(o.derivedBytes)}`,tone:"neutral"}),e.jsx(Fe,{icon:mt,label:"冷启动",value:Ce(y?.durationMs??f?.lastOpenDurationMs??0),detail:`${f?.status??"unknown"} / open ${f?.openCount??0}`,tone:f?.status==="failed"?"warn":"neutral"}),e.jsx(Fe,{icon:xt,label:"慢查询",value:`${o.slowQueries?.entryCount??0}`,detail:`保留 ${o.slowQueries?.maxEntries??0} 条`,tone:(o.slowQueries?.entryCount??0)>0?"warn":"good"})]}),e.jsxs("div",{className:"mb-8 grid grid-cols-1 gap-5 xl:grid-cols-5",children:[e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"空间占用"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"derived/facts",value:it(o.derivedToFactsRatio)}),e.jsx(U,{label:"total/facts",value:it(o.totalToFactsRatio)}),e.jsx(U,{label:"result cache",value:pe(o.queryResultCache?.totalBytes??0)}),e.jsx(U,{label:"materialized",value:pe(o.materializedResultCache?.totalBytes??0)}),e.jsx(U,{label:"template",value:pe(o.queryTemplateCache?.totalBytes??0)})]})]}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"Cache"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"result entries",value:`${o.queryResultCache?.entryCount??0}`}),e.jsx(U,{label:"result scopes",value:`${o.queryResultCache?.scopeCount??0}`}),e.jsx(U,{label:"materialized entries",value:`${o.materializedResultCache?.entryCount??0}`}),e.jsx(U,{label:"materialized scopes",value:`${o.materializedResultCache?.scopeCount??0}`}),e.jsx(U,{label:"result hit rate",value:Pt(o.queryResultCache)}),e.jsx(U,{label:"materialized hit rate",value:Pt(o.materializedResultCache)}),e.jsx(U,{label:"template entries",value:`${o.queryTemplateCache?.entryCount??0}`}),e.jsx(U,{label:"cache pressure",value:Ve(i?.cachePressure??0)})]})]}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"生命周期"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"driver",value:f?.driver??"-"}),e.jsx(U,{label:"ready at",value:f?.lastReadyAt?et(f.lastReadyAt):"-"}),e.jsx(U,{label:"slowest phase",value:`${S?.name??"-"} ${Ce(S?.durationMs??0)}`}),e.jsx(U,{label:"dirty sources",value:`${c?.pendingSources??0}`}),e.jsx(U,{label:"custom index",value:y?y.customIndexDeferred?"deferred":"startup":"-"}),e.jsx(U,{label:"maintenance",value:y?y.maintenanceEnabled?"enabled":"disabled":"-"})]})]}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"权限 Scope"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"scope versions",value:`${i?.scopeVersionCount??0}`}),e.jsx(U,{label:"max scope",value:pe(i?.maxScopeBytes??0)}),e.jsx(U,{label:"largest scope",value:pe(i?.largestScopeBytes??0)}),e.jsx(U,{label:"scope pressure",value:Ve(i?.largestScopePressure??0)}),e.jsx(U,{label:"scope hash",value:Ke(i?.largestScopeHash??"-")}),e.jsx(U,{label:"facts version",value:`${i?.largestScopeFactsDataVersion??"-"}`})]})]}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"PG 加速"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"profile",value:m?.profile??"baseline"}),e.jsx(U,{label:"provider",value:m?.provider??"-"}),e.jsx(U,{label:"enabled",value:m?.enabled?"true":"false"}),e.jsx(U,{label:"capabilities",value:`${m?.capabilities?.length??0}`}),e.jsx(U,{label:"active operators",value:ze(m?.activeOperators)}),e.jsx(U,{label:"missing caps",value:ze(m?.missingCapabilities)}),e.jsx(U,{label:"fallback",value:m?.fallbackReason??"-"})]})]})]}),e.jsxs("div",{className:"mb-8 grid grid-cols-1 gap-5 xl:grid-cols-2",children:[e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"Cache 淘汰"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"total",value:`${i?.evictionCount??0}`}),e.jsx(Rs,{evictions:i?.evictions})]})]}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"Cache 载荷"})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx(U,{label:"result payload",value:pe(i?.queryResultPayloadBytes??0)}),e.jsx(U,{label:"materialized payload",value:pe(i?.materializedResultPayloadBytes??0)}),e.jsx(U,{label:"template bytes",value:pe(i?.queryTemplateBytes??0)}),e.jsx(U,{label:"result table/index",value:`${pe(o.queryResultCache?.tableBytes??0)} / ${pe(o.queryResultCache?.indexBytes??0)}`}),e.jsx(U,{label:"materialized table/index",value:`${pe(o.materializedResultCache?.tableBytes??0)} / ${pe(o.materializedResultCache?.indexBytes??0)}`})]})]})]}),e.jsx("div",{className:"mb-8",children:e.jsx(_s,{entries:p,totalCount:i?.scopeVersionCount??0,query:s})}),e.jsx("div",{className:"mb-8",children:e.jsx(Zt,{snapshot:n.benchmarkReports})}),e.jsx(Es,{entries:r})]})}function Cs(t){const{snapshot:n}=t,s=n?.available===!1?Ns[n.reason]:"无数据";return e.jsx(te,{variant:"bordered",children:e.jsx(ne,{children:e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground",children:[e.jsx(xt,{className:"h-5 w-5 text-yellow-600"}),e.jsx("span",{children:s})]})})})}function Fe(t){const n=t.icon;return e.jsx(te,{variant:"bordered",children:e.jsxs(ne,{children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:t.label}),e.jsx(n,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsx("div",{className:ae("text-xl font-semibold",t.tone==="good"&&"text-green-600",t.tone==="warn"&&"text-yellow-700"),children:t.value}),e.jsx("div",{className:"mt-1 truncate text-sm text-muted-foreground",children:t.detail})]})})}function U(t){return e.jsxs("div",{className:"flex items-center justify-between gap-4 text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:t.label}),e.jsx("span",{className:"min-w-0 truncate font-mono",children:t.value})]})}function Es(t){return e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"最近慢查询"})}),e.jsx(ne,{className:"p-0",children:t.entries.length===0?e.jsx("div",{className:"px-5 pb-5 pt-4 text-sm text-muted-foreground",children:"暂无慢查询"}):e.jsx("div",{className:"overflow-auto",children:e.jsxs("table",{className:"w-full min-w-[920px] border-collapse text-left text-sm",children:[e.jsx("thead",{className:"border-b border-border text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-5 py-3 font-medium",children:"时间"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"路径"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"耗时"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"扫描"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Cache"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"原因"})]})}),e.jsx("tbody",{children:t.entries.map(n=>e.jsxs("tr",{className:"border-b border-border/60 last:border-0",children:[e.jsx("td",{className:"whitespace-nowrap px-5 py-3 font-mono text-xs",children:et(n.generatedAt)}),e.jsxs("td",{className:"px-5 py-3",children:[e.jsx("div",{className:"font-medium",children:n.selectedPath}),e.jsx("div",{className:"mt-1 max-w-[240px] truncate font-mono text-xs text-muted-foreground",children:Ke(n.queryKey)})]}),e.jsx("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:Ce(n.runtime.durationMs)}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[le(n.runtime.scannedRows)," / ",le(n.runtime.returnedRows)]}),e.jsxs("td",{className:"px-5 py-3",children:[e.jsxs("div",{className:"font-mono text-xs",children:["tpl ",n.cache.templateStatus??"-"," / res ",n.cache.resultStatus??"-"," / mat ",n.cache.materializedStatus??"-"]}),e.jsx("div",{className:"mt-1 max-w-[220px] truncate font-mono text-xs text-muted-foreground",children:Ds(n)}),e.jsx("div",{className:"mt-1 max-w-[220px] truncate text-xs text-muted-foreground",children:ks(n)}),e.jsx("div",{className:"mt-1 max-w-[220px] truncate text-xs text-muted-foreground",children:n.cache.scopeBasePath??n.cache.scopeHash}),n.cache.scopePrincipal&&e.jsx("div",{className:"mt-1 max-w-[220px] truncate text-xs text-muted-foreground",children:n.cache.scopePrincipal})]}),e.jsxs("td",{className:"px-5 py-3",children:[e.jsx(Ps,{reasons:n.slowQuery.reasons}),e.jsx(Ts,{entry:n})]})]},`${n.generatedAt}-${n.queryKey}`))})]})})})]})}function Ts(t){const n=Os(t.entry),s=As(t.entry);return!n&&!s?null:e.jsxs("div",{className:"mt-2 max-w-[320px] space-y-1 text-xs text-muted-foreground",children:[n&&e.jsx("div",{className:"truncate",children:n}),s&&e.jsx("div",{className:"truncate",children:s})]})}function _s(t){return e.jsxs(te,{variant:"bordered",children:[e.jsxs(ce,{className:"flex flex-row items-start justify-between gap-3",children:[e.jsx(re,{children:"权限 Scope 明细"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[le(t.entries.length)," / ",le(t.totalCount)]})]}),e.jsx(ne,{className:"p-0",children:t.entries.length===0?e.jsx("div",{className:"px-5 pb-5 pt-4 text-sm text-muted-foreground",children:t.query?"没有匹配的缓存 scope":"暂无缓存 scope"}):e.jsx("div",{className:"overflow-auto",children:e.jsxs("table",{className:"w-full min-w-[1020px] border-collapse text-left text-sm",children:[e.jsx("thead",{className:"border-b border-border text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-5 py-3 font-medium",children:"Scope"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Principal"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Base"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"权限"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"版本"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Payload"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Entries"})]})}),e.jsx("tbody",{children:t.entries.map(n=>e.jsxs("tr",{className:"border-b border-border/60 last:border-0",children:[e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono text-xs",children:[e.jsx("div",{children:Ke(n.scopeHash)}),e.jsxs("div",{className:"mt-1 text-muted-foreground",children:["facts ",n.factsDataVersion]})]}),e.jsx("td",{className:"px-5 py-3",children:e.jsx("div",{className:"max-w-[220px] truncate",children:n.principal??"-"})}),e.jsx("td",{className:"px-5 py-3",children:e.jsx("div",{className:"max-w-[260px] truncate",children:n.basePath??"-"})}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono text-xs",children:[n.authorizationModel??"-","/",n.mode??"-"]}),e.jsx("td",{className:"px-5 py-3",children:e.jsx("div",{className:"max-w-[180px] truncate font-mono text-xs",children:n.permissionVersion??"-"})}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsx("div",{children:pe(n.payloadBytes)}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["r ",pe(n.queryResultPayloadBytes)," / m ",pe(n.materializedResultPayloadBytes)]})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[le(n.queryResultEntries)," / ",le(n.materializedResultEntries)]})]},`${n.scopeHash}-${n.factsDataVersion}`))})]})})})]})}function Rs(t){const n=Object.entries(t.evictions??{}).filter(([,s])=>s>0);return n.length===0?e.jsx("div",{className:"text-sm text-muted-foreground",children:"暂无淘汰"}):e.jsx("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:n.map(([s,o])=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-md bg-muted px-3 py-2 text-sm",children:[e.jsx("span",{className:"min-w-0 truncate text-muted-foreground",children:s}),e.jsx("span",{className:"font-mono",children:le(o)})]},s))})}function Zt(t){const n=t.snapshot?.reports??[],s=t.snapshot?.errors??[];return e.jsxs(te,{variant:"bordered",children:[e.jsxs(ce,{className:"flex flex-row items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx(re,{children:"Benchmark 报告"}),e.jsx("div",{className:"mt-1 max-w-[720px] truncate text-sm text-muted-foreground",children:(t.snapshot?.roots??[]).join(", ")||"未配置目录"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(cs,{className:"h-4 w-4"}),le(t.snapshot?.reportCount??n.length)]})]}),e.jsxs(ne,{className:"p-0",children:[s.length>0&&e.jsxs("div",{className:"border-b border-border px-5 py-3 text-sm text-yellow-700",children:[le(s.length)," 个报告读取失败,最近一个:",s[0].path," - ",s[0].message]}),n.length===0?e.jsx("div",{className:"px-5 pb-5 pt-4 text-sm text-muted-foreground",children:"暂无 benchmark report"}):e.jsx("div",{className:"overflow-auto",children:e.jsxs("table",{className:"w-full min-w-[1180px] border-collapse text-left text-sm",children:[e.jsx("thead",{className:"border-b border-border text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-5 py-3 font-medium",children:"时间"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Profile"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"规模"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Gate"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Ingest"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Refresh"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Cold / Warm"}),e.jsx("th",{className:"px-5 py-3 font-medium",children:"Storage"})]})}),e.jsx("tbody",{children:n.map(o=>e.jsx(Ls,{report:o},`${o.path}-${o.generatedAt}`))})]})})]})]})}function Ls(t){const n=t.report,s=n.failedPlanCases.length,o=n.failedConcurrencyCases.length;return e.jsxs("tr",{className:"border-b border-border/60 last:border-0",children:[e.jsxs("td",{className:"whitespace-nowrap px-5 py-3",children:[e.jsx("div",{className:"font-mono text-xs",children:et(n.generatedAt)}),e.jsx("div",{className:"mt-1 max-w-[220px] truncate font-mono text-xs text-muted-foreground",children:n.path})]}),e.jsxs("td",{className:"px-5 py-3",children:[e.jsx("div",{className:"font-medium",children:n.rdfAccelerationProfile??n.engine}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:[n.driver??n.engine," / ",n.caseProfile??"-"]}),e.jsx("div",{className:"mt-1 max-w-[220px] truncate text-xs text-muted-foreground",children:n.pgAccelerationFallbackReason??ze(n.pgActiveOperators)})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsxs("div",{children:[le(n.seedQuadCount??0)," / ",le(n.targetQuadCount??0)]}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:[n.scale??"-"," / ",n.fullScale===!1?"partial":"full"]})]}),e.jsxs("td",{className:"px-5 py-3",children:[e.jsx(Lt,{ok:n.planMatched!==!1&&s===0,label:`plan ${n.planMatched===!1?"fail":"ok"}`}),e.jsx("div",{className:"mt-1",children:e.jsx(Lt,{ok:n.concurrencyMatched!==!1&&o===0,label:`conc ${n.concurrency??1}`})}),(s>0||o>0)&&e.jsxs("div",{className:"mt-1 text-xs text-yellow-700",children:["fail ",le(s+o)]})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsx("div",{children:Ce(n.ingestDurationMs??0)}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["COPY ",le(n.copyRows??0)," / fb ",le(n.copyFallbacks??0)]})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsx("div",{children:Ce(n.refreshDurationMs??0)}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["planner ",Ce(n.plannerStatsDurationMs??0)," / ",le(n.plannerStatsAnalyzedTables?.length??0)]})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsxs("div",{children:[Ce(n.coldStartDurationMs??0)," / ",Ce(n.firstQueryDurationMs??0)]}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["p50/p95 ",Ce(n.warmP50DurationMs??0)," / ",Ce(n.warmP95DurationMs??0)]})]}),e.jsxs("td",{className:"whitespace-nowrap px-5 py-3 font-mono",children:[e.jsx("div",{children:it(n.storageTotalToFactsRatio??0)}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:pe(n.storageTotalBytes??0)})]})]})}function Lt(t){return e.jsx("span",{className:ae("inline-flex rounded-md px-2 py-0.5 text-xs",t.ok?"bg-green-100 text-green-700":"bg-yellow-100 text-yellow-800"),children:t.label})}function Ps(t){return e.jsx("div",{className:"flex max-w-[320px] flex-wrap gap-1.5",children:t.reasons.map(n=>e.jsx("span",{className:"rounded-md bg-yellow-100 px-2 py-0.5 text-xs text-yellow-800",children:n},n))})}function pe(t){if(!Number.isFinite(t)||t<=0)return"0 B";const n=["B","KiB","MiB","GiB","TiB"];let s=t,o=0;for(;s>=1024&&o<n.length-1;)s/=1024,o+=1;return`${s>=10||o===0?s.toFixed(0):s.toFixed(1)} ${n[o]}`}function it(t){return Number.isFinite(t)?`${t.toFixed(2)}x`:"0.00x"}function Ve(t){return Number.isFinite(t)?`${Math.round(t*100)}%`:"0%"}function Pt(t){const n=t?.hitCount??0,s=t?.missCount??0,o=n+s;return o<=0?"-":`${Ve(n/o)} (${le(n)}/${le(o)})`}function Ds(t){const n=t.cache.materialized?.key;if(n)return`mat ${Ke(n)}`;const s=t.cache.result?.key??t.queryKey;return`res ${Ke(s)}`}function ks(t){const n=t.derivedCache,s=Ve(n.cachePressure),o=Ve(n.largestScopePressure),c=n.evictionCount;return`pressure ${s} / scope ${o} / evict ${le(c)}`}function Os(t){const n=t.histogramHints??[];if(n.length===0)return"";const s=n.map(o=>`${o.kind}:${le(o.quadCount)}`);return`hist ${le(n.length)} ${ze(s)}`}function As(t){const n=t.rejectedNativeOperators??[];if(n.length===0)return"";const s=n.map(o=>`${o.capability}:${o.reason}`);return`native rejected ${le(n.length)} ${ze(s)}`}function Ce(t){return Number.isFinite(t)?`${Math.round(t)} ms`:"0 ms"}function le(t){return Number.isFinite(t)?new Intl.NumberFormat().format(t):"0"}function et(t){const n=new Date(t);return Number.isNaN(n.getTime())?t:n.toLocaleString()}function Ke(t){return t.length<=16?t:`${t.slice(0,12)}...${t.slice(-4)}`}function ze(t){return t?.length?t.length<=2?t.join(", "):`${t.slice(0,2).join(", ")} +${t.length-2}`:"-"}function TF(){return e.jsx(wn,{})}const Is={healthy:"border-green-200 bg-green-50 text-green-700 dark:border-green-900 dark:bg-green-950/40 dark:text-green-300",degraded:"border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-300",failed:"border-destructive/30 bg-destructive/10 text-destructive",unknown:"border-border bg-muted text-muted-foreground"};function Ye(t){const{state:n,children:s,className:o}=t;return e.jsx("span",{className:ae("inline-flex items-center rounded-md border px-2 py-1 text-xs font-medium",Is[n],o),children:s})}const qs=a.createContext(null);function en(){return a.useContext(qs)}function Ms(t,n,s,o=[]){const c=$s(t.XPOD_TUNNEL_PROFILES,s);if(c)return c;const r=o.find(i=>i.id===n);for(const i of r?.legacyPublicUrlKeys??[])if(t[i])return t[i];return"未配置"}function $s(t,n){if(!t||!n||n==="none")return"";try{const s=JSON.parse(t);if(!Array.isArray(s))return"";const o=s.find(r=>r&&typeof r=="object"&&!Array.isArray(r)&&r.id===n);return(typeof o?.publicUrl=="string"?o.publicUrl.trim():"")||""}catch{return""}}function Je(t){switch(t){case"healthy":return"可用";case"degraded":return"降级";case"failed":return"失败";default:return"未知"}}function Dt(t){return t?t.status==="running"?"healthy":t.status==="starting"?"degraded":"failed":"unknown"}function Us(t,n){return t?n?"healthy":"failed":"unknown"}function kt(t){if(!t)return"未知";const n=Math.floor(t/1e3),s=Math.floor(n/60),o=Math.floor(s/60);return o>0?`${o}h ${s%60}m`:s>0?`${s}m ${n%60}s`:`${n}s`}function Fs(t){return["Public","User tunnel","LAN","Loopback"].map(s=>t.find(o=>o.name===s&&o.state==="healthy")).find(s=>!!s)??t.find(s=>s.state==="degraded")??t.find(s=>s.state==="unknown")??null}function Hs(t){try{const n=new URL(t).hostname;if(n==="localhost"||n==="::1"||n.startsWith("127.")||n.startsWith("10.")||n.startsWith("192.168."))return!0;const s=n.match(/^172\.(\d+)\./u);return s?Number(s[1])>=16&&Number(s[1])<=31:!1}catch{return!1}}function Bs(t){return e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"访问路径"})}),e.jsx(ne,{children:e.jsx("div",{"data-testid":"runtime-access-path-list",className:"divide-y divide-border rounded-xl border border-border",children:t.routes.map(n=>e.jsxs("div",{"data-testid":"runtime-access-path-row","data-route-name":n.name,className:"flex min-w-0 flex-col gap-3 p-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-medium",children:n.label}),e.jsx("div",{className:"mt-1 min-w-0 break-all font-mono text-xs text-muted-foreground",title:n.target,children:n.target}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:n.detail})]}),e.jsx("div",{className:"shrink-0 sm:self-start",children:e.jsx(Ye,{state:n.state,children:n.statusLabel??Je(n.state)})})]},n.name))})})]})}function Vs(t){return e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"完整路径详情"})}),e.jsx(ne,{children:e.jsx("div",{className:"overflow-x-auto rounded-md border border-border",children:e.jsxs("table",{className:"w-full min-w-[720px] text-sm",children:[e.jsx("thead",{className:"bg-muted/60 text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"路径"}),e.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"目标"}),e.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"状态"}),e.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"证据"})]})}),e.jsx("tbody",{className:"divide-y divide-border",children:t.routes.map(n=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-3 py-2 font-medium",children:n.label}),e.jsx("td",{className:"px-3 py-2 font-mono text-xs break-all",children:n.target}),e.jsx("td",{className:"px-3 py-2",children:e.jsx(Ye,{state:n.state,children:n.statusLabel??Je(n.state)})}),e.jsx("td",{className:"px-3 py-2 text-muted-foreground",children:n.detail})]},n.name))})]})})})]})}function Ks(t){if(!t.servicesKnown||t.servicesHealthy&&!t.publicAccessProblem)return null;const n=!t.servicesHealthy,s=n?"服务异常":"外部访问异常",o=n?"Solid Server 或 API Server 未运行,当前无法正常使用 Xpod。请先查看日志。":"Xpod 在本机运行正常,但从外网暂时无法访问。请检查公网域名、端口映射或用户隧道。";return e.jsxs(te,{variant:"bordered",className:"border-amber-200 bg-amber-50/60 dark:border-amber-900 dark:bg-amber-950/20",children:[e.jsx(ce,{children:e.jsx(re,{children:s})}),e.jsxs(ne,{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-amber-800 dark:text-amber-200",children:o}),n?e.jsx(me,{variant:"secondary",onClick:()=>window.location.assign("/status/logs"),children:"查看日志"}):e.jsx(me,{variant:"secondary",onClick:()=>window.location.assign("/network"),children:"打开网络设置"})]})]})}function _F(){const t=en(),[n,s]=a.useState(null),[o,c]=a.useState(null),[r,i]=a.useState(null),[p,m]=a.useState(null),[f,y]=a.useState(null),[S,C]=a.useState(!0),[R,L]=a.useState(""),[T,x]=a.useState(""),[g,w]=a.useState(null),v=a.useCallback(P=>{s(P.servicesData),c(P.adminData),i(P.configData),m(P.ddnsData),y(P.publicCheck),w(P.checkedAt),x(""),C(!1)},[]),b=a.useCallback(async()=>{try{v(await Tt())}catch{x("状态加载失败,请查看日志或稍后刷新。"),C(!1)}},[v]),I=a.useCallback(async()=>{C(!0),await b()},[b]);a.useEffect(()=>{if(t)return;let P=!1;return Tt().then(se=>{P||v(se)}).catch(()=>{P||(x("状态加载失败,请查看日志或稍后刷新。"),C(!1))}),()=>{P=!0}},[v,t]);const D=t?.snapshot,k=D?.servicesData??n,O=D?.adminData??o,A=D?.configData??r,z=D?.ddnsData??p,Y=D?.publicCheck??f,l=D?.checkedAt??g,u=t?t.loading&&!D:S,d=t?.error??T,j=k?.find(P=>P.name==="css"),E=k?.find(P=>P.name==="api"),N=k?"healthy":"unknown",B=Dt(j),J=Dt(E),M=B==="healthy"&&J==="healthy",V=A?.env??{},q=V.XPOD_TUNNEL_PROVIDER||z?.tunnelProvider||"none",ie=V.XPOD_TUNNEL_ACTIVE_PROFILE_ID||q,W=_n(V,z,window.location.origin),ue=Hs(W),oe=Ms(V,q,ie,A?.providers),fe=a.useMemo(()=>{const P=Y?.status==="pass"?"healthy":ue?"unknown":Y?.status==="fail"?"failed":"unknown",se=q==="none"?"unknown":z?.mode==="tunnel"||oe!=="未配置"?"healthy":"degraded";return[{name:"Loopback",label:"本机",target:`http://127.0.0.1:${V.CSS_PORT||"3000"}`,state:Us(k,M),detail:k?M?"当前设备可以使用。":"核心服务未运行。":"正在检查本机服务。"},{name:"LAN",label:"局域网",target:z?.ipv4?`http://${z.ipv4}:${V.CSS_PORT||"3000"}`:"等待本机地址上报",state:z?.ipv4&&M?"healthy":"unknown",detail:z?.ipv4?"同一网络中的设备可以使用这个地址。":"尚未发现局域网地址。"},{name:"Public",label:"公网",target:W,state:P,statusLabel:ue?"未配置":void 0,detail:ue?"尚未开放公网访问。目前可以在本机或局域网使用。":Y?.detail||"尚未检查外网是否可以访问。"},{name:"User tunnel",label:"用户隧道",target:oe,state:se,statusLabel:q==="none"?"未启用":void 0,detail:q==="none"?"未启用远程访问隧道。":`已启用 ${q}。`},{name:"P2P backup",label:"P2P 备用",target:"信令协调的原生客户端",state:"unknown",statusLabel:"备用",detail:"备用连接方式,浏览器不会默认使用。"}]},[M,W,z,V.CSS_PORT,ue,Y,k,q,oe]),_=!ue&&fe.some(P=>(P.name==="Public"||P.name==="User tunnel")&&P.state==="failed"),F=k?M?_?"degraded":"healthy":"failed":"unknown",K=Fs(fe),X=[{name:"Gateway",state:N,detail:k?"当前控制台可访问":"等待网关状态上报",uptime:l?`检查于 ${l.toLocaleTimeString()}`:"等待检查"},{name:"Solid Server",state:B,detail:j?.pid?`PID ${j.pid}`:"CSS 请求处理与 Pod 数据服务",uptime:kt(j?.uptime)},{name:"API Server",state:J,detail:E?.pid?`PID ${E.pid}`:"管理 API 与本机控制能力",uptime:kt(E?.uptime)}],G=async()=>{const P={lastCheckedAt:l?.toISOString()??null,services:k,adminStatus:O,ddnsStatus:z,publicIpCheck:Y,routes:fe,stableDataUrl:W,recommendedRoute:K,sanitizedConfig:A?{env:A.env,secrets:A.secrets??{}}:null};await navigator.clipboard.writeText(JSON.stringify(P,null,2)),L("状态 JSON 已复制")},H=async()=>{await navigator.clipboard.writeText(W),L("稳定资料入口已复制")};return e.jsxs("div",{className:"p-4 sm:p-8 max-w-6xl space-y-6",children:[e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"type-h1",children:"状态"}),e.jsx("p",{className:"mt-2 max-w-[65ch] text-sm text-muted-foreground",children:"查看 Xpod 是否正常运行,以及当前可以从哪里访问。"})]}),e.jsxs("div",{"data-testid":"status-page-actions",className:"flex items-center gap-1 self-end lg:shrink-0 lg:self-start",children:[e.jsx(me,{type:"button",variant:"ghost",size:"icon","aria-label":"刷新状态",title:"刷新状态",onClick:()=>t?t.refresh():void I(),disabled:u||t?.refreshing,children:e.jsx(mt,{className:`h-4 w-4 ${u||t?.refreshing?"animate-spin":""}`,"aria-hidden":"true"})}),e.jsx(me,{type:"button",variant:"ghost",size:"icon","aria-label":"复制状态 JSON",title:"复制状态 JSON",onClick:()=>{G()},children:e.jsx(Et,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),R?e.jsx("p",{className:"text-sm text-green-700 dark:text-green-300",children:R}):null,d?e.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:d}):null,e.jsx(te,{variant:"bordered",children:e.jsx(ne,{className:"pt-5",children:e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(Ye,{state:F,children:Je(F)}),e.jsx("div",{className:"text-2xl font-semibold",children:"Xpod runtime"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:l?`最后检查: ${l.toLocaleString()}`:"等待第一次检查。"}),e.jsxs("div",{className:"pt-3",children:[e.jsx("div",{className:"text-sm font-medium",children:"稳定资料入口"}),e.jsxs("div",{"data-testid":"stable-entry-row",className:"mt-1 flex min-w-0 items-center gap-1 rounded-md border border-border bg-muted/30 p-1 pl-3",children:[e.jsx("div",{className:"min-w-0 flex-1 break-all font-mono text-sm",children:W||"等待稳定入口"}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsx(me,{type:"button",variant:"ghost",size:"icon","aria-label":"复制入口 URL",title:"复制入口 URL",onClick:()=>{H()},disabled:!W,children:e.jsx(Et,{className:"h-4 w-4","aria-hidden":"true"})}),e.jsx(me,{type:"button",variant:"ghost",size:"icon","aria-label":"打开入口",title:"打开入口",onClick:()=>window.open(W,"_blank"),disabled:!W,children:e.jsx($n,{className:"h-4 w-4","aria-hidden":"true"})})]})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium",children:"当前建议路径"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:K?`${K.label}: ${K.detail}`:"正在检查可用的访问方式。"})]})]}),e.jsxs("div",{className:"border-t border-border pt-5",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"text-base font-semibold",children:"Services"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"核心运行服务,不包含访问路径或隧道。"})]}),e.jsx("div",{"data-testid":"runtime-services-list",className:"divide-y divide-border rounded-xl border border-border",children:X.map(P=>e.jsxs("div",{"data-testid":"runtime-service-row","data-service-name":P.name,className:"flex min-w-0 flex-col gap-2 p-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:P.name}),e.jsx(Ye,{state:P.state,children:Je(P.state)})]}),e.jsx("div",{className:"mt-1 break-words text-xs text-muted-foreground",children:P.detail})]}),e.jsxs("div",{className:"shrink-0 text-xs text-muted-foreground sm:text-right",children:[e.jsx("span",{className:"text-muted-foreground",children:"uptime"}),e.jsx("span",{className:"ml-2 font-mono",children:P.uptime})]})]},P.name))})]})]})})}),e.jsx(Ks,{servicesKnown:!!k,servicesHealthy:M,publicAccessProblem:_}),e.jsx("div",{"data-testid":"runtime-access-paths",children:e.jsx(Bs,{routes:fe})}),e.jsx(Vs,{routes:fe}),e.jsxs(te,{variant:"bordered",children:[e.jsx(ce,{children:e.jsx(re,{children:"Cloud 协调"})}),e.jsxs(ne,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"nodeId"}),e.jsx("span",{className:"font-mono break-all",children:V.XPOD_NODE_ID||"未上报"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"spDomain"}),e.jsx("span",{className:"font-mono break-all",children:V.XPOD_SP_DOMAIN||z?.fqdn||"未分配"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"DDNS"}),e.jsx("span",{children:z?.detail||"未上报"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"heartbeat"}),e.jsx("span",{children:z?.enabled?"已启用":"未启用或未上报"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"模式"}),e.jsx("span",{children:z?.mode||"unknown"})]}),e.jsx("p",{className:"pt-2 text-muted-foreground",children:"Cloud 负责稳定域名和 IDP,本地 SP 负责数据存储与实际接入。"})]})]}),e.jsxs(te,{variant:"bordered",className:"bg-muted/30",children:[e.jsx(ce,{children:e.jsx(re,{children:"配置摘要"})}),e.jsxs(ne,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"edition"}),e.jsx("span",{children:O?.env.XPOD_EDITION||"local"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"baseUrl"}),e.jsx("span",{className:"font-mono break-all",children:W})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"storage"}),e.jsx("span",{className:"font-mono break-all",children:V.CSS_ROOT_FILE_PATH||"./data"})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"provider"}),e.jsx("span",{children:q})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"tunnelProfile"}),e.jsx("span",{children:ie})]}),e.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:"secrets"}),e.jsxs("span",{children:[Object.entries(A?.secrets??{}).filter(([,P])=>P.configured).length," 个已配置"]})]})]})]}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:["修改运行方式时,请进入 ",e.jsx(Cn,{className:"text-primary underline-offset-4 hover:underline",to:"/services/configuration",children:"配置"}),"。"]})]})}var zs=Object.defineProperty,he=(t,n)=>zs(t,"name",{value:n,configurable:!0});function tn(t){const n=t+"CollectionProvider",[s,o]=ft(n),[c,r]=s(n,{collectionRef:{current:null},itemMap:new Map}),i=he(T=>{const{scope:x,children:g}=T,w=a.useRef(null),v=a.useRef(new Map).current;return e.jsx(c,{scope:x,itemMap:v,collectionRef:w,children:g})},"CollectionProvider");i.displayName=n;const p=t+"CollectionSlot",m=He(p),f=a.forwardRef((T,x)=>{const{scope:g,children:w}=T,v=r(p,g),b=ye(x,v.collectionRef);return e.jsx(m,{ref:b,children:w})});f.displayName=p;const y=t+"CollectionItemSlot",S="data-radix-collection-item",C=He(y),R=a.forwardRef((T,x)=>{const{scope:g,children:w,...v}=T,b=a.useRef(null),I=ye(x,b),D=r(y,g);return a.useEffect(()=>(D.itemMap.set(b,{ref:b,...v}),()=>{D.itemMap.delete(b)})),e.jsx(C,{[S]:"",ref:I,children:w})});R.displayName=y;function L(T){const x=r(t+"CollectionConsumer",T);return a.useCallback(()=>{const w=x.collectionRef.current;if(!w)return[];const v=Array.from(w.querySelectorAll(`[${S}]`));return Array.from(x.itemMap.values()).sort((D,k)=>v.indexOf(D.ref.current)-v.indexOf(k.ref.current))},[x.collectionRef,x.itemMap])}return he(L,"useCollection"),[{Provider:i,Slot:f,ItemSlot:R},L,o]}he(tn,"createCollection");var Ot=new WeakMap,de,ve,ot=(ve=class extends Map{constructor(s){super(s);Ct(this,de);st(this,de,[...super.keys()]),Ot.set(this,!0)}set(s,o){return Ot.get(this)&&(this.has(s)?xe(this,de)[xe(this,de).indexOf(s)]=s:xe(this,de).push(s)),super.set(s,o),this}insert(s,o,c){const r=this.has(o),i=xe(this,de).length,p=gt(s);let m=p>=0?p:i+p;const f=m<0||m>=i?-1:m;if(f===this.size||r&&f===this.size-1||f===-1)return this.set(o,c),this;const y=this.size+(r?0:1);p<0&&m++;const S=[...xe(this,de)];let C,R=!1;for(let L=m;L<y;L++)if(m===L){let T=S[L];S[L]===o&&(T=S[L+1]),r&&this.delete(o),C=this.get(T),this.set(o,c)}else{!R&&S[L-1]===o&&(R=!0);const T=S[R?L:L-1],x=C;C=this.get(T),this.delete(T),this.set(T,x)}return this}with(s,o,c){const r=new ve(this);return r.insert(s,o,c),r}before(s){const o=xe(this,de).indexOf(s)-1;if(!(o<0))return this.entryAt(o)}setBefore(s,o,c){const r=xe(this,de).indexOf(s);return r===-1?this:this.insert(r,o,c)}after(s){let o=xe(this,de).indexOf(s);if(o=o===-1||o===this.size-1?-1:o+1,o!==-1)return this.entryAt(o)}setAfter(s,o,c){const r=xe(this,de).indexOf(s);return r===-1?this:this.insert(r+1,o,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return st(this,de,[]),super.clear()}delete(s){const o=super.delete(s);return o&&xe(this,de).splice(xe(this,de).indexOf(s),1),o}deleteAt(s){const o=this.keyAt(s);return o!==void 0?this.delete(o):!1}at(s){const o=Qe(xe(this,de),s);if(o!==void 0)return this.get(o)}entryAt(s){const o=Qe(xe(this,de),s);if(o!==void 0)return[o,this.get(o)]}indexOf(s){return xe(this,de).indexOf(s)}keyAt(s){return Qe(xe(this,de),s)}from(s,o){const c=this.indexOf(s);if(c===-1)return;let r=c+o;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(s,o){const c=this.indexOf(s);if(c===-1)return;let r=c+o;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(s,o){let c=0;for(const r of this){if(Reflect.apply(s,o,[r,c,this]))return r;c++}}findIndex(s,o){let c=0;for(const r of this){if(Reflect.apply(s,o,[r,c,this]))return c;c++}return-1}filter(s,o){const c=[];let r=0;for(const i of this)Reflect.apply(s,o,[i,r,this])&&c.push(i),r++;return new ve(c)}map(s,o){const c=[];let r=0;for(const i of this)c.push([i[0],Reflect.apply(s,o,[i,r,this])]),r++;return new ve(c)}reduce(...s){const[o,c]=s;let r=0,i=c??this.at(0);for(const p of this)r===0&&s.length===1?i=p:i=Reflect.apply(o,this,[i,p,r,this]),r++;return i}reduceRight(...s){const[o,c]=s;let r=c??this.at(-1);for(let i=this.size-1;i>=0;i--){const p=this.at(i);i===this.size-1&&s.length===1?r=p:r=Reflect.apply(o,this,[r,p,i,this])}return r}toSorted(s){const o=[...this.entries()].sort(s);return new ve(o)}toReversed(){const s=new ve;for(let o=this.size-1;o>=0;o--){const c=this.keyAt(o),r=this.get(c);s.set(c,r)}return s}toSpliced(...s){const o=[...this.entries()];return o.splice(...s),new ve(o)}slice(s,o){const c=new ve;let r=this.size-1;if(s===void 0)return c;s<0&&(s=s+this.size),o!==void 0&&o>0&&(r=o-1);for(let i=s;i<=r;i++){const p=this.keyAt(i),m=this.get(p);c.set(p,m)}return c}every(s,o){let c=0;for(const r of this){if(!Reflect.apply(s,o,[r,c,this]))return!1;c++}return!0}some(s,o){let c=0;for(const r of this){if(Reflect.apply(s,o,[r,c,this]))return!0;c++}return!1}},de=new WeakMap,he(ve,"OrderedDict"),ve);function Qe(t,n){if("at"in Array.prototype)return Array.prototype.at.call(t,n);const s=nn(t,n);return s===-1?void 0:t[s]}he(Qe,"at");function nn(t,n){const s=t.length,o=gt(n),c=o>=0?o:s+o;return c<0||c>=s?-1:c}he(nn,"toSafeIndex");function gt(t){return t!==t||t===0?0:Math.trunc(t)}he(gt,"toSafeInteger");function Xs(t){const n=t+"CollectionProvider",[s,o]=ft(n),[c,r]=s(n,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new ot,setItemMap:he(()=>{},"setItemMap")}),i=he(({state:v,...b})=>v?e.jsx(m,{...b,state:v}):e.jsx(p,{...b}),"CollectionProvider");i.displayName=n;const p=he(v=>{const b=x();return e.jsx(m,{...v,state:b})},"CollectionInit");p.displayName=n+"Init";const m=he(v=>{const{scope:b,children:I,state:D}=v,k=a.useRef(null),[O,A]=a.useState(null),z=ye(k,A),[Y,l]=D;return a.useEffect(()=>{if(!O)return;const u=cn(()=>{});return u.observe(O,{childList:!0,subtree:!0}),()=>{u.disconnect()}},[O]),e.jsx(c,{scope:b,itemMap:Y,setItemMap:l,collectionRef:z,collectionRefObject:k,collectionElement:O,children:I})},"CollectionProviderImpl");m.displayName=n+"Impl";const f=t+"CollectionSlot",y=He(f),S=a.forwardRef((v,b)=>{const{scope:I,children:D}=v,k=r(f,I),O=ye(b,k.collectionRef);return e.jsx(y,{ref:O,children:D})});S.displayName=f;const C=t+"CollectionItemSlot",R="data-radix-collection-item",L=He(C),T=a.forwardRef((v,b)=>{const{scope:I,children:D,...k}=v,O=a.useRef(null),[A,z]=a.useState(null),Y=ye(b,O,z),l=r(C,I),{setItemMap:u}=l,d=a.useRef(k);sn(d.current,k)||(d.current=k);const j=d.current;return a.useEffect(()=>{const E=j;return u(N=>A?N.has(A)?N.set(A,{...E,element:A}).toSorted(dt):(N.set(A,{...E,element:A}),N.toSorted(dt)):N),()=>{u(N=>!A||!N.has(A)?N:(N.delete(A),new ot(N)))}},[A,j,u]),e.jsx(L,{[R]:"",ref:Y,children:D})});T.displayName=C;function x(){return a.useState(new ot)}he(x,"useInitCollection");function g(v){const{itemMap:b}=r(t+"CollectionConsumer",v);return b}return he(g,"useCollection"),[{Provider:i,Slot:S,ItemSlot:T},{createCollectionScope:o,useCollection:g,useInitCollection:x}]}he(Xs,"createCollection");function sn(t,n){if(t===n)return!0;if(typeof t!="object"||typeof n!="object"||t==null||n==null)return!1;const s=Object.keys(t),o=Object.keys(n);if(s.length!==o.length)return!1;for(const c of s)if(!Object.prototype.hasOwnProperty.call(n,c)||t[c]!==n[c])return!1;return!0}he(sn,"shallowEqual");function on(t,n){return!!(n.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}he(on,"isElementPreceding");function dt(t,n){return!t[1].element||!n[1].element?0:on(t[1].element,n[1].element)?-1:1}he(dt,"sortByDocumentPosition");function cn(t){return new MutationObserver(s=>{for(const o of s)if(o.type==="childList"){t();return}})}he(cn,"getChildListObserver");var Gs=Object.defineProperty,Ws=(t,n)=>Gs(t,"name",{value:n,configurable:!0});function rn(t){const n=a.useRef({value:t,previous:t});return a.useMemo(()=>(n.current.value!==t&&(n.current.previous=n.current.value,n.current.value=t),n.current.previous),[t])}Ws(rn,"usePrevious");var Qs=Object.defineProperty,Q=(t,n)=>Qs(t,"name",{value:n,configurable:!0}),Ys=[" ","Enter","ArrowUp","ArrowDown"],Js=[" ","Enter"],Ue="Select",[tt,bt,Zs]=tn(Ue),[Me,RF]=ft(Ue,[Zs,Yt]),vt=Yt(),[eo,De]=Me(Ue),[to,no]=Me(Ue);function an(t){const{__scopeSelect:n,children:s,open:o,defaultOpen:c,onOpenChange:r,value:i,defaultValue:p,onValueChange:m,dir:f,name:y,autoComplete:S,disabled:C,required:R,form:L,internal_do_not_use_render:T}=t,x=vt(n),[g,w]=a.useState(null),[v,b]=a.useState(null),[I,D]=a.useState(!1),k=Jt(f),[O,A]=_t({prop:o,defaultProp:c??!1,onChange:r,caller:Ue}),[z,Y]=_t({prop:i,defaultProp:p,onChange:m,caller:Ue}),l=a.useRef(null),u=a.useRef(z);a.useEffect(()=>{const q=L?g?.ownerDocument.getElementById(L):g?.form;if(q instanceof HTMLFormElement){const ie=Q(()=>Y(u.current),"reset");return q.addEventListener("reset",ie),()=>q.removeEventListener("reset",ie)}},[L,g,Y]);const d=g?!!L||!!g.closest("form"):!0,[j,E]=a.useState(new Set),N=Qt(),B=Array.from(j).map(q=>q.props.value).join(";"),J=a.useCallback(q=>{E(ie=>new Set(ie).add(q))},[]),M=a.useCallback(q=>{E(ie=>{const W=new Set(ie);return W.delete(q),W})},[]),V={required:R,trigger:g,onTriggerChange:w,valueNode:v,onValueNodeChange:b,valueNodeHasChildren:I,onValueNodeHasChildrenChange:D,contentId:N,value:z,onValueChange:Y,open:O,onOpenChange:A,dir:k,triggerPointerDownPosRef:l,disabled:C,name:y,autoComplete:S,form:L,nativeOptions:j,nativeSelectKey:B,isFormControl:d};return e.jsx(Qn,{...x,children:e.jsx(eo,{scope:n,...V,children:e.jsx(tt.Provider,{scope:n,children:e.jsx(to,{scope:n,onNativeOptionAdd:J,onNativeOptionRemove:M,children:hn(T)?T(V):s})})})})}Q(an,"SelectProvider");var so=Q(t=>{const{__scopeSelect:n,children:s,...o}=t;return e.jsx(an,{__scopeSelect:n,...o,internal_do_not_use_render:({isFormControl:c})=>e.jsxs(e.Fragment,{children:[s,c?e.jsx(_o,{__scopeSelect:n}):null]})})},"Select"),oo="SelectTrigger",ln=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,disabled:c=!1,...r}=n,i=vt(o),p=De(oo,o),m=p.disabled||c,f=ye(s,p.onTriggerChange),y=bt(o),S=a.useRef("touch"),[C,R,L]=yt(x=>{const g=y().filter(b=>!b.disabled),w=g.find(b=>b.value===p.value),v=jt(g,x,w);v!==void 0&&p.onValueChange(v.value)}),T=Q(x=>{m||(p.onOpenChange(!0),L()),x&&(p.triggerPointerDownPosRef.current={x:Math.round(x.pageX),y:Math.round(x.pageY)})},"handleOpen");return e.jsx(Xn,{asChild:!0,...i,children:e.jsx(Te.button,{type:"button",role:"combobox","aria-controls":p.open?p.contentId:void 0,"aria-expanded":p.open,"aria-required":p.required,"aria-autocomplete":"none",dir:p.dir,"data-state":p.open?"open":"closed",disabled:m,"data-disabled":m?"":void 0,"data-placeholder":Xe(p.value)?"":void 0,...r,ref:f,onClick:be(r.onClick,x=>{x.currentTarget.focus(),S.current!=="mouse"&&T(x)}),onPointerDown:be(r.onPointerDown,x=>{S.current=x.pointerType;const g=x.target;g.hasPointerCapture(x.pointerId)&&g.releasePointerCapture(x.pointerId),x.button===0&&x.ctrlKey===!1&&x.pointerType==="mouse"&&(T(x),x.preventDefault())}),onKeyDown:be(r.onKeyDown,x=>{const g=C.current!=="";!(x.ctrlKey||x.altKey||x.metaKey)&&x.key.length===1&&R(x.key),!(g&&x.key===" ")&&Ys.includes(x.key)&&(T(),x.preventDefault())})})})},"SelectTrigger")),co="SelectValue",ro=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,className:c,style:r,children:i,placeholder:p="",...m}=n,f=De(co,o),{onValueNodeHasChildrenChange:y}=f,S=i!==void 0,C=ye(s,f.onValueNodeChange);Be(()=>{y(S)},[y,S]);const R=Xe(f.value);return e.jsx(Te.span,{...m,asChild:R?!1:m.asChild,ref:C,style:{pointerEvents:"none"},children:e.jsx(a.Fragment,{children:R?p:i},R?"placeholder":"value")})},"SelectValue")),ao=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,children:c,...r}=n;return e.jsx(Te.span,{"aria-hidden":!0,...r,ref:s,children:c||"▼"})},"SelectIcon")),lo="SelectPortal",[io,uo]=Me(lo,{forceMount:void 0}),po=Q(t=>{const{__scopeSelect:n,forceMount:s,...o}=t;return e.jsx(io,{scope:t.__scopeSelect,forceMount:s,children:e.jsx(Un,{asChild:!0,...o})})},"SelectPortal"),qe="SelectContent",dn=a.forwardRef(Q(function(n,s){const o=uo(qe,n.__scopeSelect),{forceMount:c=o.forceMount,...r}=n,i=De(qe,n.__scopeSelect),[p,m]=a.useState();return Be(()=>{m(new DocumentFragment)},[]),e.jsx(Fn,{present:c||i.open,children:({present:f})=>f?e.jsx(ho,{...r,ref:s}):e.jsx(mo,{...r,fragment:p})})},"SelectContent")),mo=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,children:c,fragment:r}=n;return r?Wt.createPortal(e.jsx(un,{scope:o,children:e.jsx(tt.Slot,{scope:o,children:e.jsx("div",{ref:s,children:c})})}),r):null},"SelectContentFragment")),Se=10,[un,nt]=Me(qe),fo=He("SelectContent.RemoveScroll"),ho=a.forwardRef(Q(function(n,s){const{__scopeSelect:o}=n,{position:c="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:i,onPointerDownOutside:p,side:m,sideOffset:f,align:y,alignOffset:S,arrowPadding:C,collisionBoundary:R,collisionPadding:L,sticky:T,hideWhenDetached:x,avoidCollisions:g,...w}=n,v=De(qe,o),[b,I]=a.useState(null),[D,k]=a.useState(null),O=ye(s,I),[A,z]=a.useState(null),[Y,l]=a.useState(null),u=bt(o),[d,j]=a.useState(!1),E=a.useRef(!1);a.useEffect(()=>{if(b)return Hn(b)},[b]),Bn();const N=a.useCallback(_=>{const[F,...K]=u().map(H=>H.ref.current),[X]=K.slice(-1),G=document.activeElement;for(const H of _)if(H===G||(H?.scrollIntoView({block:"nearest"}),H===F&&D&&(D.scrollTop=0),H===X&&D&&(D.scrollTop=D.scrollHeight),H?.focus(),document.activeElement!==G))return},[u,D]),B=a.useCallback(()=>N([A,b]),[N,A,b]);a.useEffect(()=>{d&&B()},[d,B]);const{onOpenChange:J,triggerPointerDownPosRef:M}=v;a.useEffect(()=>{if(b){let _={x:0,y:0};const F=Q(X=>{_={x:Math.abs(Math.round(X.pageX)-(M.current?.x??0)),y:Math.abs(Math.round(X.pageY)-(M.current?.y??0))}},"handlePointerMove"),K=Q(X=>{_.x<=10&&_.y<=10?X.preventDefault():X.composedPath().includes(b)||J(!1),document.removeEventListener("pointermove",F),M.current=null},"handlePointerUp");return M.current!==null&&(document.addEventListener("pointermove",F),document.addEventListener("pointerup",K,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",K,{capture:!0})}}},[b,J,M]),a.useEffect(()=>{const _=Q(()=>J(!1),"close");return window.addEventListener("blur",_),window.addEventListener("resize",_),()=>{window.removeEventListener("blur",_),window.removeEventListener("resize",_)}},[J]);const[V,q]=yt(_=>{const F=u().filter(G=>!G.disabled),K=F.find(G=>G.ref.current===document.activeElement),X=jt(F,_,K);X&&setTimeout(()=>X.ref.current?.focus())}),ie=a.useCallback((_,F,K)=>{const X=!E.current&&!K;(v.value!==void 0&&v.value===F||X)&&(z(_),X&&(E.current=!0))},[v.value]),W=a.useCallback(()=>b?.focus(),[b]),ue=a.useCallback((_,F,K)=>{const X=!E.current&&!K;(v.value!==void 0&&v.value===F||X)&&l(_)},[v.value]),oe=c==="popper"?At:xo,fe=oe===At?{side:m,sideOffset:f,align:y,alignOffset:S,arrowPadding:C,collisionBoundary:R,collisionPadding:L,sticky:T,hideWhenDetached:x,avoidCollisions:g}:{};return e.jsx(un,{scope:o,content:b,viewport:D,onViewportChange:k,itemRefCallback:ie,selectedItem:A,onItemLeave:W,itemTextRefCallback:ue,focusSelectedItem:B,selectedItemText:Y,position:c,isPositioned:d,searchRef:V,children:e.jsx(Vn,{as:fo,allowPinchZoom:!0,children:e.jsx(Kn,{asChild:!0,trapped:v.open,onMountAutoFocus:_=>{_.preventDefault()},onUnmountAutoFocus:be(r,_=>{v.trigger?.focus({preventScroll:!0}),_.preventDefault()}),children:e.jsx(zn,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:p,onFocusOutside:_=>_.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:e.jsx(oe,{role:"listbox",id:v.contentId,"data-state":v.open?"open":"closed",dir:v.dir,onContextMenu:_=>_.preventDefault(),...w,...fe,onPlaced:()=>j(!0),ref:O,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:be(w.onKeyDown,_=>{const F=_.ctrlKey||_.altKey||_.metaKey;if(_.key==="Tab"&&_.preventDefault(),!F&&_.key.length===1&&q(_.key),["ArrowUp","ArrowDown","Home","End"].includes(_.key)){let X=u().filter(G=>!G.disabled).map(G=>G.ref.current);if(["ArrowUp","End"].includes(_.key)&&(X=X.slice().reverse()),["ArrowUp","ArrowDown"].includes(_.key)){const G=_.target,H=X.indexOf(G);X=X.slice(H+1)}setTimeout(()=>N(X)),_.preventDefault()}})})})})})})},"SelectContentImpl")),xo=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,onPlaced:c,...r}=n,i=De(qe,o),p=nt(qe,o),[m,f]=a.useState(null),[y,S]=a.useState(null),C=ye(s,S),R=bt(o),L=a.useRef(!1),T=a.useRef(!0),{viewport:x,selectedItem:g,selectedItemText:w,focusSelectedItem:v}=p,b=a.useCallback(()=>{if(i.trigger&&i.valueNode&&m&&y&&x&&g&&w){const O=i.trigger.getBoundingClientRect(),A=y.getBoundingClientRect(),z=i.valueNode.getBoundingClientRect(),Y=w.getBoundingClientRect();if(i.dir!=="rtl"){const G=Y.left-A.left,H=z.left-G,P=O.left-H,se=O.width+P,_e=Math.max(se,A.width),Re=window.innerWidth-Se,ke=lt(H,[Se,Math.max(Se,Re-_e)]);m.style.minWidth=se+"px",m.style.left=ke+"px"}else{const G=A.right-Y.right,H=window.innerWidth-z.right-G,P=window.innerWidth-O.right-H,se=O.width+P,_e=Math.max(se,A.width),Re=window.innerWidth-Se,ke=lt(H,[Se,Math.max(Se,Re-_e)]);m.style.minWidth=se+"px",m.style.right=ke+"px"}const l=R(),u=window.innerHeight-Se*2,d=x.scrollHeight,j=window.getComputedStyle(y),E=parseInt(j.borderTopWidth,10),N=parseInt(j.paddingTop,10),B=parseInt(j.borderBottomWidth,10),J=parseInt(j.paddingBottom,10),M=E+N+d+J+B,V=Math.min(g.offsetHeight*5,M),q=window.getComputedStyle(x),ie=parseInt(q.paddingTop,10),W=parseInt(q.paddingBottom,10),ue=O.top+O.height/2-Se,oe=u-ue,fe=g.offsetHeight/2,_=g.offsetTop+fe,F=E+N+_,K=M-F;if(F<=ue){const G=l.length>0&&g===l[l.length-1].ref.current;m.style.bottom="0px";const H=y.clientHeight-x.offsetTop-x.offsetHeight,P=Math.max(oe,fe+(G?W:0)+H+B),se=F+P;m.style.height=se+"px"}else{const G=l.length>0&&g===l[0].ref.current;m.style.top="0px";const P=Math.max(ue,E+x.offsetTop+(G?ie:0)+fe)+K;m.style.height=P+"px",x.scrollTop=F-ue+x.offsetTop}m.style.margin=`${Se}px 0`,m.style.minHeight=V+"px",m.style.maxHeight=u+"px",c?.(),requestAnimationFrame(()=>L.current=!0)}},[R,i.trigger,i.valueNode,m,y,x,g,w,i.dir,c]);Be(()=>b(),[b]);const[I,D]=a.useState();Be(()=>{y&&D(window.getComputedStyle(y).zIndex)},[y]);const k=a.useCallback(O=>{O&&T.current===!0&&(b(),v?.(),T.current=!1)},[b,v]);return e.jsx(go,{scope:o,contentWrapper:m,shouldExpandOnScrollRef:L,onScrollButtonChange:k,children:e.jsx("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:I},children:e.jsx(Te.div,{...r,ref:C,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})},"SelectItemAlignedPosition")),At=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,align:c="start",collisionPadding:r=Se,...i}=n,p=vt(o);return e.jsx(Gn,{...p,...i,ref:s,align:c,collisionPadding:r,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})},"SelectPopperPosition")),[go,bo]=Me(qe,{}),It="SelectViewport",vo=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,nonce:c,...r}=n,i=nt(It,o),p=bo(It,o),m=ye(s,i.onViewportChange),f=a.useRef(0);return e.jsxs(e.Fragment,{children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:c}),e.jsx(tt.Slot,{scope:o,children:e.jsx(Te.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:m,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:be(r.onScroll,y=>{const S=y.currentTarget,{contentWrapper:C,shouldExpandOnScrollRef:R}=p;if(R?.current&&C){const L=Math.abs(f.current-S.scrollTop);if(L>0){const T=window.innerHeight-Se*2,x=parseFloat(C.style.minHeight),g=parseFloat(C.style.height),w=Math.max(x,g);if(w<T){const v=w+L,b=Math.min(T,v),I=v-b;C.style.height=b+"px",C.style.bottom==="0px"&&(S.scrollTop=I>0?I:0,C.style.justifyContent="flex-end")}}}f.current=S.scrollTop})})})]})},"SelectViewport")),yo="SelectGroup",[LF,jo]=Me(yo),No="SelectLabel",pn=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,...c}=n,r=jo(No,o);return e.jsx(Te.div,{id:r.id,...c,ref:s})},"SelectLabel")),ut="SelectItem",[So,mn]=Me(ut),fn=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,value:c,disabled:r=!1,textValue:i,...p}=n,m=De(ut,o),f=nt(ut,o),y=m.value===c,[S,C]=a.useState(i??""),[R,L]=a.useState(!1),T=ht(b=>f.itemRefCallback?.(b,c,r)),x=ye(s,T),g=Qt(),w=a.useRef("touch"),v=Q(()=>{r||(m.onValueChange(c),m.onOpenChange(!1))},"handleSelect");return e.jsx(So,{scope:o,value:c,disabled:r,textId:g,isSelected:y,onItemTextChange:a.useCallback(b=>{C(I=>I||(b?.textContent??"").trim())},[]),children:e.jsx(tt.ItemSlot,{scope:o,value:c,disabled:r,textValue:S,children:e.jsx(Te.div,{role:"option","aria-labelledby":g,"data-highlighted":R?"":void 0,"aria-selected":y&&R,"data-state":y?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...p,ref:x,onFocus:be(p.onFocus,()=>L(!0)),onBlur:be(p.onBlur,()=>L(!1)),onClick:be(p.onClick,()=>{w.current!=="mouse"&&v()}),onPointerUp:be(p.onPointerUp,()=>{w.current==="mouse"&&v()}),onPointerDown:be(p.onPointerDown,b=>{w.current=b.pointerType}),onPointerMove:be(p.onPointerMove,b=>{w.current=b.pointerType,r?f.onItemLeave?.():w.current==="mouse"&&b.currentTarget.focus({preventScroll:!0})}),onPointerLeave:be(p.onPointerLeave,b=>{b.currentTarget===document.activeElement&&f.onItemLeave?.()}),onKeyDown:be(p.onKeyDown,b=>{r||b.target!==b.currentTarget||f.searchRef?.current!==""&&b.key===" "||(Js.includes(b.key)&&v(),b.key===" "&&b.preventDefault())})})})})},"SelectItem")),Ge="SelectItemText",wo=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,className:c,style:r,...i}=n,p=De(Ge,o),m=nt(Ge,o),f=mn(Ge,o),y=no(Ge,o),[S,C]=a.useState(null),R=ht(v=>m.itemTextRefCallback?.(v,f.value,f.disabled)),L=ye(s,C,f.onItemTextChange,R),T=S?.textContent,x=a.useMemo(()=>e.jsx("option",{value:f.value,disabled:f.disabled,children:T},f.value),[f.disabled,f.value,T]),{onNativeOptionAdd:g,onNativeOptionRemove:w}=y;return Be(()=>(g(x),()=>w(x)),[g,w,x]),e.jsxs(e.Fragment,{children:[e.jsx(Te.span,{id:f.textId,...i,ref:L}),f.isSelected&&p.valueNode&&!p.valueNodeHasChildren&&!Xe(p.value)?Wt.createPortal(i.children,p.valueNode):null]})},"SelectItemText")),Co="SelectItemIndicator",Eo=a.forwardRef(Q(function(n,s){const{__scopeSelect:o,...c}=n;return mn(Co,o).isSelected?e.jsx(Te.span,{"aria-hidden":!0,...c,ref:s}):null},"SelectItemIndicator")),To="SelectBubbleInput",_o=a.forwardRef(Q(function({__scopeSelect:n,...s},o){const c=De(To,n),{value:r,onValueChange:i,required:p,disabled:m,name:f,autoComplete:y,form:S}=c,{nativeOptions:C,nativeSelectKey:R}=c,L=a.useRef(null),T=ye(o,L),x=r??"",g=rn(x),w=Array.from(C).some(v=>(v.props.value??"")==="");return a.useEffect(()=>{const v=L.current;if(!v)return;const b=window.HTMLSelectElement.prototype,D=Object.getOwnPropertyDescriptor(b,"value").set;if(g!==x&&D){const k=new Event("change",{bubbles:!0});D.call(v,x),v.dispatchEvent(k)}},[g,x]),e.jsxs(Te.select,{"aria-hidden":!0,required:p,tabIndex:-1,name:f,autoComplete:y,disabled:m,form:S,onChange:v=>i(v.target.value),...s,style:{...Wn,...s.style},ref:T,defaultValue:x,children:[Xe(r)&&!w?e.jsx("option",{value:""}):null,Array.from(C)]},R)},"SelectBubbleInput"));function hn(t){return typeof t=="function"}Q(hn,"isFunction");function Xe(t){return t===""||t===void 0}Q(Xe,"shouldShowPlaceholder");function yt(t){const n=ht(t),s=a.useRef(""),o=a.useRef(0),c=a.useCallback(i=>{const p=s.current+i;n(p),Q((function m(f){s.current=f,window.clearTimeout(o.current),f!==""&&(o.current=window.setTimeout(()=>m(""),1e3))}),"updateSearch")(p)},[n]),r=a.useCallback(()=>{s.current="",window.clearTimeout(o.current)},[]);return a.useEffect(()=>()=>window.clearTimeout(o.current),[]),[s,c,r]}Q(yt,"useTypeaheadSearch");function jt(t,n,s){const c=n.length>1&&Array.from(n).every(f=>f===n[0])?n[0]:n,r=s?t.indexOf(s):-1;let i=xn(t,Math.max(r,0));c.length===1&&(i=i.filter(f=>f!==s));const m=i.find(f=>f.textValue.toLowerCase().startsWith(c.toLowerCase()));return m!==s?m:void 0}Q(jt,"findNextItem");function xn(t,n){return t.map((s,o)=>t[(n+o)%t.length])}Q(xn,"wrapArray");const Ae=so,Ie=ro,Le=a.forwardRef(({className:t,children:n,...s},o)=>e.jsxs(ln,{ref:o,className:ae("flex h-9 items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm","placeholder:text-muted-foreground focus:outline-none focus-visible:border-primary","disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:[n,e.jsx(ao,{asChild:!0,children:e.jsx(is,{className:"h-4 w-4 opacity-50"})})]}));Le.displayName=ln.displayName;const Pe=a.forwardRef(({className:t,children:n,position:s="popper",...o},c)=>e.jsx(po,{children:e.jsx(dn,{ref:c,className:ae("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,...o,children:e.jsx(vo,{className:ae("p-1",s==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n})})}));Pe.displayName=dn.displayName;const Ro=a.forwardRef(({className:t,...n},s)=>e.jsx(pn,{ref:s,className:ae("px-2 py-1.5 text-sm font-semibold",t),...n}));Ro.displayName=pn.displayName;const ee=a.forwardRef(({className:t,children:n,...s},o)=>e.jsxs(fn,{ref:o,className:ae("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none","focus:bg-accent focus:text-accent-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[e.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Eo,{children:e.jsx(as,{className:"h-4 w-4"})})}),e.jsx(wo,{children:n})]}));ee.displayName=fn.displayName;var ct={},Ne={};const Lo="Á",Po="á",Do="Ă",ko="ă",Oo="∾",Ao="∿",Io="∾̳",qo="Â",Mo="â",$o="´",Uo="А",Fo="а",Ho="Æ",Bo="æ",Vo="⁡",Ko="𝔄",zo="𝔞",Xo="À",Go="à",Wo="ℵ",Qo="ℵ",Yo="Α",Jo="α",Zo="Ā",ec="ā",tc="⨿",nc="&",sc="&",oc="⩕",cc="⩓",rc="∧",ac="⩜",lc="⩘",ic="⩚",dc="∠",uc="⦤",pc="∠",mc="⦨",fc="⦩",hc="⦪",xc="⦫",gc="⦬",bc="⦭",vc="⦮",yc="⦯",jc="∡",Nc="∟",Sc="⊾",wc="⦝",Cc="∢",Ec="Å",Tc="⍼",_c="Ą",Rc="ą",Lc="𝔸",Pc="𝕒",Dc="⩯",kc="≈",Oc="⩰",Ac="≊",Ic="≋",qc="'",Mc="⁡",$c="≈",Uc="≊",Fc="Å",Hc="å",Bc="𝒜",Vc="𝒶",Kc="≔",zc="*",Xc="≈",Gc="≍",Wc="Ã",Qc="ã",Yc="Ä",Jc="ä",Zc="∳",er="⨑",tr="≌",nr="϶",sr="‵",or="∽",cr="⋍",rr="∖",ar="⫧",lr="⊽",ir="⌅",dr="⌆",ur="⌅",pr="⎵",mr="⎶",fr="≌",hr="Б",xr="б",gr="„",br="∵",vr="∵",yr="∵",jr="⦰",Nr="϶",Sr="ℬ",wr="ℬ",Cr="Β",Er="β",Tr="ℶ",_r="≬",Rr="𝔅",Lr="𝔟",Pr="⋂",Dr="◯",kr="⋃",Or="⨀",Ar="⨁",Ir="⨂",qr="⨆",Mr="★",$r="▽",Ur="△",Fr="⨄",Hr="⋁",Br="⋀",Vr="⤍",Kr="⧫",zr="▪",Xr="▴",Gr="▾",Wr="◂",Qr="▸",Yr="␣",Jr="▒",Zr="░",ea="▓",ta="█",na="=⃥",sa="≡⃥",oa="⫭",ca="⌐",ra="𝔹",aa="𝕓",la="⊥",ia="⊥",da="⋈",ua="⧉",pa="┐",ma="╕",fa="╖",ha="╗",xa="┌",ga="╒",ba="╓",va="╔",ya="─",ja="═",Na="┬",Sa="╤",wa="╥",Ca="╦",Ea="┴",Ta="╧",_a="╨",Ra="╩",La="⊟",Pa="⊞",Da="⊠",ka="┘",Oa="╛",Aa="╜",Ia="╝",qa="└",Ma="╘",$a="╙",Ua="╚",Fa="│",Ha="║",Ba="┼",Va="╪",Ka="╫",za="╬",Xa="┤",Ga="╡",Wa="╢",Qa="╣",Ya="├",Ja="╞",Za="╟",el="╠",tl="‵",nl="˘",sl="˘",ol="¦",cl="𝒷",rl="ℬ",al="⁏",ll="∽",il="⋍",dl="⧅",ul="\\",pl="⟈",ml="•",fl="•",hl="≎",xl="⪮",gl="≏",bl="≎",vl="≏",yl="Ć",jl="ć",Nl="⩄",Sl="⩉",wl="⩋",Cl="∩",El="⋒",Tl="⩇",_l="⩀",Rl="ⅅ",Ll="∩︀",Pl="⁁",Dl="ˇ",kl="ℭ",Ol="⩍",Al="Č",Il="č",ql="Ç",Ml="ç",$l="Ĉ",Ul="ĉ",Fl="∰",Hl="⩌",Bl="⩐",Vl="Ċ",Kl="ċ",zl="¸",Xl="¸",Gl="⦲",Wl="¢",Ql="·",Yl="·",Jl="𝔠",Zl="ℭ",ei="Ч",ti="ч",ni="✓",si="✓",oi="Χ",ci="χ",ri="ˆ",ai="≗",li="↺",ii="↻",di="⊛",ui="⊚",pi="⊝",mi="⊙",fi="®",hi="Ⓢ",xi="⊖",gi="⊕",bi="⊗",vi="○",yi="⧃",ji="≗",Ni="⨐",Si="⫯",wi="⧂",Ci="∲",Ei="”",Ti="’",_i="♣",Ri="♣",Li=":",Pi="∷",Di="⩴",ki="≔",Oi="≔",Ai=",",Ii="@",qi="∁",Mi="∘",$i="∁",Ui="ℂ",Fi="≅",Hi="⩭",Bi="≡",Vi="∮",Ki="∯",zi="∮",Xi="𝕔",Gi="ℂ",Wi="∐",Qi="∐",Yi="©",Ji="©",Zi="℗",ed="∳",td="↵",nd="✗",sd="⨯",od="𝒞",cd="𝒸",rd="⫏",ad="⫑",ld="⫐",id="⫒",dd="⋯",ud="⤸",pd="⤵",md="⋞",fd="⋟",hd="↶",xd="⤽",gd="⩈",bd="⩆",vd="≍",yd="∪",jd="⋓",Nd="⩊",Sd="⊍",wd="⩅",Cd="∪︀",Ed="↷",Td="⤼",_d="⋞",Rd="⋟",Ld="⋎",Pd="⋏",Dd="¤",kd="↶",Od="↷",Ad="⋎",Id="⋏",qd="∲",Md="∱",$d="⌭",Ud="†",Fd="‡",Hd="ℸ",Bd="↓",Vd="↡",Kd="⇓",zd="‐",Xd="⫤",Gd="⊣",Wd="⤏",Qd="˝",Yd="Ď",Jd="ď",Zd="Д",eu="д",tu="‡",nu="⇊",su="ⅅ",ou="ⅆ",cu="⤑",ru="⩷",au="°",lu="∇",iu="Δ",du="δ",uu="⦱",pu="⥿",mu="𝔇",fu="𝔡",hu="⥥",xu="⇃",gu="⇂",bu="´",vu="˙",yu="˝",ju="`",Nu="˜",Su="⋄",wu="⋄",Cu="⋄",Eu="♦",Tu="♦",_u="¨",Ru="ⅆ",Lu="ϝ",Pu="⋲",Du="÷",ku="÷",Ou="⋇",Au="⋇",Iu="Ђ",qu="ђ",Mu="⌞",$u="⌍",Uu="$",Fu="𝔻",Hu="𝕕",Bu="¨",Vu="˙",Ku="⃜",zu="≐",Xu="≑",Gu="≐",Wu="∸",Qu="∔",Yu="⊡",Ju="⌆",Zu="∯",ep="¨",tp="⇓",np="⇐",sp="⇔",op="⫤",cp="⟸",rp="⟺",ap="⟹",lp="⇒",ip="⊨",dp="⇑",up="⇕",pp="∥",mp="⤓",fp="↓",hp="↓",xp="⇓",gp="⇵",bp="̑",vp="⇊",yp="⇃",jp="⇂",Np="⥐",Sp="⥞",wp="⥖",Cp="↽",Ep="⥟",Tp="⥗",_p="⇁",Rp="↧",Lp="⊤",Pp="⤐",Dp="⌟",kp="⌌",Op="𝒟",Ap="𝒹",Ip="Ѕ",qp="ѕ",Mp="⧶",$p="Đ",Up="đ",Fp="⋱",Hp="▿",Bp="▾",Vp="⇵",Kp="⥯",zp="⦦",Xp="Џ",Gp="џ",Wp="⟿",Qp="É",Yp="é",Jp="⩮",Zp="Ě",em="ě",tm="Ê",nm="ê",sm="≖",om="≕",cm="Э",rm="э",am="⩷",lm="Ė",im="ė",dm="≑",um="ⅇ",pm="≒",mm="𝔈",fm="𝔢",hm="⪚",xm="È",gm="è",bm="⪖",vm="⪘",ym="⪙",jm="∈",Nm="⏧",Sm="ℓ",wm="⪕",Cm="⪗",Em="Ē",Tm="ē",_m="∅",Rm="∅",Lm="◻",Pm="∅",Dm="▫",km=" ",Om=" ",Am=" ",Im="Ŋ",qm="ŋ",Mm=" ",$m="Ę",Um="ę",Fm="𝔼",Hm="𝕖",Bm="⋕",Vm="⧣",Km="⩱",zm="ε",Xm="Ε",Gm="ε",Wm="ϵ",Qm="≖",Ym="≕",Jm="≂",Zm="⪖",ef="⪕",tf="⩵",nf="=",sf="≂",of="≟",cf="⇌",rf="≡",af="⩸",lf="⧥",df="⥱",uf="≓",pf="ℯ",mf="ℰ",ff="≐",hf="⩳",xf="≂",gf="Η",bf="η",vf="Ð",yf="ð",jf="Ë",Nf="ë",Sf="€",wf="!",Cf="∃",Ef="∃",Tf="ℰ",_f="ⅇ",Rf="ⅇ",Lf="≒",Pf="Ф",Df="ф",kf="♀",Of="ffi",Af="ff",If="ffl",qf="𝔉",Mf="𝔣",$f="fi",Uf="◼",Ff="▪",Hf="fj",Bf="♭",Vf="fl",Kf="▱",zf="ƒ",Xf="𝔽",Gf="𝕗",Wf="∀",Qf="∀",Yf="⋔",Jf="⫙",Zf="ℱ",eh="⨍",th="½",nh="⅓",sh="¼",oh="⅕",ch="⅙",rh="⅛",ah="⅔",lh="⅖",ih="¾",dh="⅗",uh="⅜",ph="⅘",mh="⅚",fh="⅝",hh="⅞",xh="⁄",gh="⌢",bh="𝒻",vh="ℱ",yh="ǵ",jh="Γ",Nh="γ",Sh="Ϝ",wh="ϝ",Ch="⪆",Eh="Ğ",Th="ğ",_h="Ģ",Rh="Ĝ",Lh="ĝ",Ph="Г",Dh="г",kh="Ġ",Oh="ġ",Ah="≥",Ih="≧",qh="⪌",Mh="⋛",$h="≥",Uh="≧",Fh="⩾",Hh="⪩",Bh="⩾",Vh="⪀",Kh="⪂",zh="⪄",Xh="⋛︀",Gh="⪔",Wh="𝔊",Qh="𝔤",Yh="≫",Jh="⋙",Zh="⋙",ex="ℷ",tx="Ѓ",nx="ѓ",sx="⪥",ox="≷",cx="⪒",rx="⪤",ax="⪊",lx="⪊",ix="⪈",dx="≩",ux="⪈",px="≩",mx="⋧",fx="𝔾",hx="𝕘",xx="`",gx="≥",bx="⋛",vx="≧",yx="⪢",jx="≷",Nx="⩾",Sx="≳",wx="𝒢",Cx="ℊ",Ex="≳",Tx="⪎",_x="⪐",Rx="⪧",Lx="⩺",Px=">",Dx=">",kx="≫",Ox="⋗",Ax="⦕",Ix="⩼",qx="⪆",Mx="⥸",$x="⋗",Ux="⋛",Fx="⪌",Hx="≷",Bx="≳",Vx="≩︀",Kx="≩︀",zx="ˇ",Xx=" ",Gx="½",Wx="ℋ",Qx="Ъ",Yx="ъ",Jx="⥈",Zx="↔",eg="⇔",tg="↭",ng="^",sg="ℏ",og="Ĥ",cg="ĥ",rg="♥",ag="♥",lg="…",ig="⊹",dg="𝔥",ug="ℌ",pg="ℋ",mg="⤥",fg="⤦",hg="⇿",xg="∻",gg="↩",bg="↪",vg="𝕙",yg="ℍ",jg="―",Ng="─",Sg="𝒽",wg="ℋ",Cg="ℏ",Eg="Ħ",Tg="ħ",_g="≎",Rg="≏",Lg="⁃",Pg="‐",Dg="Í",kg="í",Og="⁣",Ag="Î",Ig="î",qg="И",Mg="и",$g="İ",Ug="Е",Fg="е",Hg="¡",Bg="⇔",Vg="𝔦",Kg="ℑ",zg="Ì",Xg="ì",Gg="ⅈ",Wg="⨌",Qg="∭",Yg="⧜",Jg="℩",Zg="IJ",eb="ij",tb="Ī",nb="ī",sb="ℑ",ob="ⅈ",cb="ℐ",rb="ℑ",ab="ı",lb="ℑ",ib="⊷",db="Ƶ",ub="⇒",pb="℅",mb="∞",fb="⧝",hb="ı",xb="⊺",gb="∫",bb="∬",vb="ℤ",yb="∫",jb="⊺",Nb="⋂",Sb="⨗",wb="⨼",Cb="⁣",Eb="⁢",Tb="Ё",_b="ё",Rb="Į",Lb="į",Pb="𝕀",Db="𝕚",kb="Ι",Ob="ι",Ab="⨼",Ib="¿",qb="𝒾",Mb="ℐ",$b="∈",Ub="⋵",Fb="⋹",Hb="⋴",Bb="⋳",Vb="∈",Kb="⁢",zb="Ĩ",Xb="ĩ",Gb="І",Wb="і",Qb="Ï",Yb="ï",Jb="Ĵ",Zb="ĵ",ev="Й",tv="й",nv="𝔍",sv="𝔧",ov="ȷ",cv="𝕁",rv="𝕛",av="𝒥",lv="𝒿",iv="Ј",dv="ј",uv="Є",pv="є",mv="Κ",fv="κ",hv="ϰ",xv="Ķ",gv="ķ",bv="К",vv="к",yv="𝔎",jv="𝔨",Nv="ĸ",Sv="Х",wv="х",Cv="Ќ",Ev="ќ",Tv="𝕂",_v="𝕜",Rv="𝒦",Lv="𝓀",Pv="⇚",Dv="Ĺ",kv="ĺ",Ov="⦴",Av="ℒ",Iv="Λ",qv="λ",Mv="⟨",$v="⟪",Uv="⦑",Fv="⟨",Hv="⪅",Bv="ℒ",Vv="«",Kv="⇤",zv="⤟",Xv="←",Gv="↞",Wv="⇐",Qv="⤝",Yv="↩",Jv="↫",Zv="⤹",ey="⥳",ty="↢",ny="⤙",sy="⤛",oy="⪫",cy="⪭",ry="⪭︀",ay="⤌",ly="⤎",iy="❲",dy="{",uy="[",py="⦋",my="⦏",fy="⦍",hy="Ľ",xy="ľ",gy="Ļ",by="ļ",vy="⌈",yy="{",jy="Л",Ny="л",Sy="⤶",wy="“",Cy="„",Ey="⥧",Ty="⥋",_y="↲",Ry="≤",Ly="≦",Py="⟨",Dy="⇤",ky="←",Oy="←",Ay="⇐",Iy="⇆",qy="↢",My="⌈",$y="⟦",Uy="⥡",Fy="⥙",Hy="⇃",By="⌊",Vy="↽",Ky="↼",zy="⇇",Xy="↔",Gy="↔",Wy="⇔",Qy="⇆",Yy="⇋",Jy="↭",Zy="⥎",ej="↤",tj="⊣",nj="⥚",sj="⋋",oj="⧏",cj="⊲",rj="⊴",aj="⥑",lj="⥠",ij="⥘",dj="↿",uj="⥒",pj="↼",mj="⪋",fj="⋚",hj="≤",xj="≦",gj="⩽",bj="⪨",vj="⩽",yj="⩿",jj="⪁",Nj="⪃",Sj="⋚︀",wj="⪓",Cj="⪅",Ej="⋖",Tj="⋚",_j="⪋",Rj="⋚",Lj="≦",Pj="≶",Dj="≶",kj="⪡",Oj="≲",Aj="⩽",Ij="≲",qj="⥼",Mj="⌊",$j="𝔏",Uj="𝔩",Fj="≶",Hj="⪑",Bj="⥢",Vj="↽",Kj="↼",zj="⥪",Xj="▄",Gj="Љ",Wj="љ",Qj="⇇",Yj="≪",Jj="⋘",Zj="⌞",eN="⇚",tN="⥫",nN="◺",sN="Ŀ",oN="ŀ",cN="⎰",rN="⎰",aN="⪉",lN="⪉",iN="⪇",dN="≨",uN="⪇",pN="≨",mN="⋦",fN="⟬",hN="⇽",xN="⟦",gN="⟵",bN="⟵",vN="⟸",yN="⟷",jN="⟷",NN="⟺",SN="⟼",wN="⟶",CN="⟶",EN="⟹",TN="↫",_N="↬",RN="⦅",LN="𝕃",PN="𝕝",DN="⨭",kN="⨴",ON="∗",AN="_",IN="↙",qN="↘",MN="◊",$N="◊",UN="⧫",FN="(",HN="⦓",BN="⇆",VN="⌟",KN="⇋",zN="⥭",XN="‎",GN="⊿",WN="‹",QN="𝓁",YN="ℒ",JN="↰",ZN="↰",eS="≲",tS="⪍",nS="⪏",sS="[",oS="‘",cS="‚",rS="Ł",aS="ł",lS="⪦",iS="⩹",dS="<",uS="<",pS="≪",mS="⋖",fS="⋋",hS="⋉",xS="⥶",gS="⩻",bS="◃",vS="⊴",yS="◂",jS="⦖",NS="⥊",SS="⥦",wS="≨︀",CS="≨︀",ES="¯",TS="♂",_S="✠",RS="✠",LS="↦",PS="↦",DS="↧",kS="↤",OS="↥",AS="▮",IS="⨩",qS="М",MS="м",$S="—",US="∺",FS="∡",HS=" ",BS="ℳ",VS="𝔐",KS="𝔪",zS="℧",XS="µ",GS="*",WS="⫰",QS="∣",YS="·",JS="⊟",ZS="−",ew="∸",tw="⨪",nw="∓",sw="⫛",ow="…",cw="∓",rw="⊧",aw="𝕄",lw="𝕞",iw="∓",dw="𝓂",uw="ℳ",pw="∾",mw="Μ",fw="μ",hw="⊸",xw="⊸",gw="∇",bw="Ń",vw="ń",yw="∠⃒",jw="≉",Nw="⩰̸",Sw="≋̸",ww="ʼn",Cw="≉",Ew="♮",Tw="ℕ",_w="♮",Rw=" ",Lw="≎̸",Pw="≏̸",Dw="⩃",kw="Ň",Ow="ň",Aw="Ņ",Iw="ņ",qw="≇",Mw="⩭̸",$w="⩂",Uw="Н",Fw="н",Hw="–",Bw="⤤",Vw="↗",Kw="⇗",zw="↗",Xw="≠",Gw="≐̸",Ww="​",Qw="​",Yw="​",Jw="​",Zw="≢",e0="⤨",t0="≂̸",n0="≫",s0="≪",o0=`
2
+ `,c0="∄",r0="∄",a0="𝔑",l0="𝔫",i0="≧̸",d0="≱",u0="≱",p0="≧̸",m0="⩾̸",f0="⩾̸",h0="⋙̸",x0="≵",g0="≫⃒",b0="≯",v0="≯",y0="≫̸",j0="↮",N0="⇎",S0="⫲",w0="∋",C0="⋼",E0="⋺",T0="∋",_0="Њ",R0="њ",L0="↚",P0="⇍",D0="‥",k0="≦̸",O0="≰",A0="↚",I0="⇍",q0="↮",M0="⇎",$0="≰",U0="≦̸",F0="⩽̸",H0="⩽̸",B0="≮",V0="⋘̸",K0="≴",z0="≪⃒",X0="≮",G0="⋪",W0="⋬",Q0="≪̸",Y0="∤",J0="⁠",Z0=" ",eC="𝕟",tC="ℕ",nC="⫬",sC="¬",oC="≢",cC="≭",rC="∦",aC="∉",lC="≠",iC="≂̸",dC="∄",uC="≯",pC="≱",mC="≧̸",fC="≫̸",hC="≹",xC="⩾̸",gC="≵",bC="≎̸",vC="≏̸",yC="∉",jC="⋵̸",NC="⋹̸",SC="∉",wC="⋷",CC="⋶",EC="⧏̸",TC="⋪",_C="⋬",RC="≮",LC="≰",PC="≸",DC="≪̸",kC="⩽̸",OC="≴",AC="⪢̸",IC="⪡̸",qC="∌",MC="∌",$C="⋾",UC="⋽",FC="⊀",HC="⪯̸",BC="⋠",VC="∌",KC="⧐̸",zC="⋫",XC="⋭",GC="⊏̸",WC="⋢",QC="⊐̸",YC="⋣",JC="⊂⃒",ZC="⊈",e1="⊁",t1="⪰̸",n1="⋡",s1="≿̸",o1="⊃⃒",c1="⊉",r1="≁",a1="≄",l1="≇",i1="≉",d1="∤",u1="∦",p1="∦",m1="⫽⃥",f1="∂̸",h1="⨔",x1="⊀",g1="⋠",b1="⊀",v1="⪯̸",y1="⪯̸",j1="⤳̸",N1="↛",S1="⇏",w1="↝̸",C1="↛",E1="⇏",T1="⋫",_1="⋭",R1="⊁",L1="⋡",P1="⪰̸",D1="𝒩",k1="𝓃",O1="∤",A1="∦",I1="≁",q1="≄",M1="≄",$1="∤",U1="∦",F1="⋢",H1="⋣",B1="⊄",V1="⫅̸",K1="⊈",z1="⊂⃒",X1="⊈",G1="⫅̸",W1="⊁",Q1="⪰̸",Y1="⊅",J1="⫆̸",Z1="⊉",eE="⊃⃒",tE="⊉",nE="⫆̸",sE="≹",oE="Ñ",cE="ñ",rE="≸",aE="⋪",lE="⋬",iE="⋫",dE="⋭",uE="Ν",pE="ν",mE="#",fE="№",hE=" ",xE="≍⃒",gE="⊬",bE="⊭",vE="⊮",yE="⊯",jE="≥⃒",NE=">⃒",SE="⤄",wE="⧞",CE="⤂",EE="≤⃒",TE="<⃒",_E="⊴⃒",RE="⤃",LE="⊵⃒",PE="∼⃒",DE="⤣",kE="↖",OE="⇖",AE="↖",IE="⤧",qE="Ó",ME="ó",$E="⊛",UE="Ô",FE="ô",HE="⊚",BE="О",VE="о",KE="⊝",zE="Ő",XE="ő",GE="⨸",WE="⊙",QE="⦼",YE="Œ",JE="œ",ZE="⦿",eT="𝔒",tT="𝔬",nT="˛",sT="Ò",oT="ò",cT="⧁",rT="⦵",aT="Ω",lT="∮",iT="↺",dT="⦾",uT="⦻",pT="‾",mT="⧀",fT="Ō",hT="ō",xT="Ω",gT="ω",bT="Ο",vT="ο",yT="⦶",jT="⊖",NT="𝕆",ST="𝕠",wT="⦷",CT="“",ET="‘",TT="⦹",_T="⊕",RT="↻",LT="⩔",PT="∨",DT="⩝",kT="ℴ",OT="ℴ",AT="ª",IT="º",qT="⊶",MT="⩖",$T="⩗",UT="⩛",FT="Ⓢ",HT="𝒪",BT="ℴ",VT="Ø",KT="ø",zT="⊘",XT="Õ",GT="õ",WT="⨶",QT="⨷",YT="⊗",JT="Ö",ZT="ö",e_="⌽",t_="‾",n_="⏞",s_="⎴",o_="⏜",c_="¶",r_="∥",a_="∥",l_="⫳",i_="⫽",d_="∂",u_="∂",p_="П",m_="п",f_="%",h_=".",x_="‰",g_="⊥",b_="‱",v_="𝔓",y_="𝔭",j_="Φ",N_="φ",S_="ϕ",w_="ℳ",C_="☎",E_="Π",T_="π",__="⋔",R_="ϖ",L_="ℏ",P_="ℎ",D_="ℏ",k_="⨣",O_="⊞",A_="⨢",I_="+",q_="∔",M_="⨥",$_="⩲",U_="±",F_="±",H_="⨦",B_="⨧",V_="±",K_="ℌ",z_="⨕",X_="𝕡",G_="ℙ",W_="£",Q_="⪷",Y_="⪻",J_="≺",Z_="≼",eR="⪷",tR="≺",nR="≼",sR="≺",oR="⪯",cR="≼",rR="≾",aR="⪯",lR="⪹",iR="⪵",dR="⋨",uR="⪯",pR="⪳",mR="≾",fR="′",hR="″",xR="ℙ",gR="⪹",bR="⪵",vR="⋨",yR="∏",jR="∏",NR="⌮",SR="⌒",wR="⌓",CR="∝",ER="∝",TR="∷",_R="∝",RR="≾",LR="⊰",PR="𝒫",DR="𝓅",kR="Ψ",OR="ψ",AR=" ",IR="𝔔",qR="𝔮",MR="⨌",$R="𝕢",UR="ℚ",FR="⁗",HR="𝒬",BR="𝓆",VR="ℍ",KR="⨖",zR="?",XR="≟",GR='"',WR='"',QR="⇛",YR="∽̱",JR="Ŕ",ZR="ŕ",eL="√",tL="⦳",nL="⟩",sL="⟫",oL="⦒",cL="⦥",rL="⟩",aL="»",lL="⥵",iL="⇥",dL="⤠",uL="⤳",pL="→",mL="↠",fL="⇒",hL="⤞",xL="↪",gL="↬",bL="⥅",vL="⥴",yL="⤖",jL="↣",NL="↝",SL="⤚",wL="⤜",CL="∶",EL="ℚ",TL="⤍",_L="⤏",RL="⤐",LL="❳",PL="}",DL="]",kL="⦌",OL="⦎",AL="⦐",IL="Ř",qL="ř",ML="Ŗ",$L="ŗ",UL="⌉",FL="}",HL="Р",BL="р",VL="⤷",KL="⥩",zL="”",XL="”",GL="↳",WL="ℜ",QL="ℛ",YL="ℜ",JL="ℝ",ZL="ℜ",eP="▭",tP="®",nP="®",sP="∋",oP="⇋",cP="⥯",rP="⥽",aP="⌋",lP="𝔯",iP="ℜ",dP="⥤",uP="⇁",pP="⇀",mP="⥬",fP="Ρ",hP="ρ",xP="ϱ",gP="⟩",bP="⇥",vP="→",yP="→",jP="⇒",NP="⇄",SP="↣",wP="⌉",CP="⟧",EP="⥝",TP="⥕",_P="⇂",RP="⌋",LP="⇁",PP="⇀",DP="⇄",kP="⇌",OP="⇉",AP="↝",IP="↦",qP="⊢",MP="⥛",$P="⋌",UP="⧐",FP="⊳",HP="⊵",BP="⥏",VP="⥜",KP="⥔",zP="↾",XP="⥓",GP="⇀",WP="˚",QP="≓",YP="⇄",JP="⇌",ZP="‏",eD="⎱",tD="⎱",nD="⫮",sD="⟭",oD="⇾",cD="⟧",rD="⦆",aD="𝕣",lD="ℝ",iD="⨮",dD="⨵",uD="⥰",pD=")",mD="⦔",fD="⨒",hD="⇉",xD="⇛",gD="›",bD="𝓇",vD="ℛ",yD="↱",jD="↱",ND="]",SD="’",wD="’",CD="⋌",ED="⋊",TD="▹",_D="⊵",RD="▸",LD="⧎",PD="⧴",DD="⥨",kD="℞",OD="Ś",AD="ś",ID="‚",qD="⪸",MD="Š",$D="š",UD="⪼",FD="≻",HD="≽",BD="⪰",VD="⪴",KD="Ş",zD="ş",XD="Ŝ",GD="ŝ",WD="⪺",QD="⪶",YD="⋩",JD="⨓",ZD="≿",ek="С",tk="с",nk="⊡",sk="⋅",ok="⩦",ck="⤥",rk="↘",ak="⇘",lk="↘",ik="§",dk=";",uk="⤩",pk="∖",mk="∖",fk="✶",hk="𝔖",xk="𝔰",gk="⌢",bk="♯",vk="Щ",yk="щ",jk="Ш",Nk="ш",Sk="↓",wk="←",Ck="∣",Ek="∥",Tk="→",_k="↑",Rk="­",Lk="Σ",Pk="σ",Dk="ς",kk="ς",Ok="∼",Ak="⩪",Ik="≃",qk="≃",Mk="⪞",$k="⪠",Uk="⪝",Fk="⪟",Hk="≆",Bk="⨤",Vk="⥲",Kk="←",zk="∘",Xk="∖",Gk="⨳",Wk="⧤",Qk="∣",Yk="⌣",Jk="⪪",Zk="⪬",eO="⪬︀",tO="Ь",nO="ь",sO="⌿",oO="⧄",cO="/",rO="𝕊",aO="𝕤",lO="♠",iO="♠",dO="∥",uO="⊓",pO="⊓︀",mO="⊔",fO="⊔︀",hO="√",xO="⊏",gO="⊑",bO="⊏",vO="⊑",yO="⊐",jO="⊒",NO="⊐",SO="⊒",wO="□",CO="□",EO="⊓",TO="⊏",_O="⊑",RO="⊐",LO="⊒",PO="⊔",DO="▪",kO="□",OO="▪",AO="→",IO="𝒮",qO="𝓈",MO="∖",$O="⌣",UO="⋆",FO="⋆",HO="☆",BO="★",VO="ϵ",KO="ϕ",zO="¯",XO="⊂",GO="⋐",WO="⪽",QO="⫅",YO="⊆",JO="⫃",ZO="⫁",eA="⫋",tA="⊊",nA="⪿",sA="⥹",oA="⊂",cA="⋐",rA="⊆",aA="⫅",lA="⊆",iA="⊊",dA="⫋",uA="⫇",pA="⫕",mA="⫓",fA="⪸",hA="≻",xA="≽",gA="≻",bA="⪰",vA="≽",yA="≿",jA="⪰",NA="⪺",SA="⪶",wA="⋩",CA="≿",EA="∋",TA="∑",_A="∑",RA="♪",LA="¹",PA="²",DA="³",kA="⊃",OA="⋑",AA="⪾",IA="⫘",qA="⫆",MA="⊇",$A="⫄",UA="⊃",FA="⊇",HA="⟉",BA="⫗",VA="⥻",KA="⫂",zA="⫌",XA="⊋",GA="⫀",WA="⊃",QA="⋑",YA="⊇",JA="⫆",ZA="⊋",eI="⫌",tI="⫈",nI="⫔",sI="⫖",oI="⤦",cI="↙",rI="⇙",aI="↙",lI="⤪",iI="ß",dI=" ",uI="⌖",pI="Τ",mI="τ",fI="⎴",hI="Ť",xI="ť",gI="Ţ",bI="ţ",vI="Т",yI="т",jI="⃛",NI="⌕",SI="𝔗",wI="𝔱",CI="∴",EI="∴",TI="∴",_I="Θ",RI="θ",LI="ϑ",PI="ϑ",DI="≈",kI="∼",OI="  ",AI=" ",II=" ",qI="≈",MI="∼",$I="Þ",UI="þ",FI="˜",HI="∼",BI="≃",VI="≅",KI="≈",zI="⨱",XI="⊠",GI="×",WI="⨰",QI="∭",YI="⤨",JI="⌶",ZI="⫱",e2="⊤",t2="𝕋",n2="𝕥",s2="⫚",o2="⤩",c2="‴",r2="™",a2="™",l2="▵",i2="▿",d2="◃",u2="⊴",p2="≜",m2="▹",f2="⊵",h2="◬",x2="≜",g2="⨺",b2="⃛",v2="⨹",y2="⧍",j2="⨻",N2="⏢",S2="𝒯",w2="𝓉",C2="Ц",E2="ц",T2="Ћ",_2="ћ",R2="Ŧ",L2="ŧ",P2="≬",D2="↞",k2="↠",O2="Ú",A2="ú",I2="↑",q2="↟",M2="⇑",$2="⥉",U2="Ў",F2="ў",H2="Ŭ",B2="ŭ",V2="Û",K2="û",z2="У",X2="у",G2="⇅",W2="Ű",Q2="ű",Y2="⥮",J2="⥾",Z2="𝔘",eq="𝔲",tq="Ù",nq="ù",sq="⥣",oq="↿",cq="↾",rq="▀",aq="⌜",lq="⌜",iq="⌏",dq="◸",uq="Ū",pq="ū",mq="¨",fq="_",hq="⏟",xq="⎵",gq="⏝",bq="⋃",vq="⊎",yq="Ų",jq="ų",Nq="𝕌",Sq="𝕦",wq="⤒",Cq="↑",Eq="↑",Tq="⇑",_q="⇅",Rq="↕",Lq="↕",Pq="⇕",Dq="⥮",kq="↿",Oq="↾",Aq="⊎",Iq="↖",qq="↗",Mq="υ",$q="ϒ",Uq="ϒ",Fq="Υ",Hq="υ",Bq="↥",Vq="⊥",Kq="⇈",zq="⌝",Xq="⌝",Gq="⌎",Wq="Ů",Qq="ů",Yq="◹",Jq="𝒰",Zq="𝓊",eM="⋰",tM="Ũ",nM="ũ",sM="▵",oM="▴",cM="⇈",rM="Ü",aM="ü",lM="⦧",iM="⦜",dM="ϵ",uM="ϰ",pM="∅",mM="ϕ",fM="ϖ",hM="∝",xM="↕",gM="⇕",bM="ϱ",vM="ς",yM="⊊︀",jM="⫋︀",NM="⊋︀",SM="⫌︀",wM="ϑ",CM="⊲",EM="⊳",TM="⫨",_M="⫫",RM="⫩",LM="В",PM="в",DM="⊢",kM="⊨",OM="⊩",AM="⊫",IM="⫦",qM="⊻",MM="∨",$M="⋁",UM="≚",FM="⋮",HM="|",BM="‖",VM="|",KM="‖",zM="∣",XM="|",GM="❘",WM="≀",QM=" ",YM="𝔙",JM="𝔳",ZM="⊲",e$="⊂⃒",t$="⊃⃒",n$="𝕍",s$="𝕧",o$="∝",c$="⊳",r$="𝒱",a$="𝓋",l$="⫋︀",i$="⊊︀",d$="⫌︀",u$="⊋︀",p$="⊪",m$="⦚",f$="Ŵ",h$="ŵ",x$="⩟",g$="∧",b$="⋀",v$="≙",y$="℘",j$="𝔚",N$="𝔴",S$="𝕎",w$="𝕨",C$="℘",E$="≀",T$="≀",_$="𝒲",R$="𝓌",L$="⋂",P$="◯",D$="⋃",k$="▽",O$="𝔛",A$="𝔵",I$="⟷",q$="⟺",M$="Ξ",$$="ξ",U$="⟵",F$="⟸",H$="⟼",B$="⋻",V$="⨀",K$="𝕏",z$="𝕩",X$="⨁",G$="⨂",W$="⟶",Q$="⟹",Y$="𝒳",J$="𝓍",Z$="⨆",e3="⨄",t3="△",n3="⋁",s3="⋀",o3="Ý",c3="ý",r3="Я",a3="я",l3="Ŷ",i3="ŷ",d3="Ы",u3="ы",p3="¥",m3="𝔜",f3="𝔶",h3="Ї",x3="ї",g3="𝕐",b3="𝕪",v3="𝒴",y3="𝓎",j3="Ю",N3="ю",S3="ÿ",w3="Ÿ",C3="Ź",E3="ź",T3="Ž",_3="ž",R3="З",L3="з",P3="Ż",D3="ż",k3="ℨ",O3="​",A3="Ζ",I3="ζ",q3="𝔷",M3="ℨ",$3="Ж",U3="ж",F3="⇝",H3="𝕫",B3="ℤ",V3="𝒵",K3="𝓏",z3="‍",X3="‌",gn={Aacute:Lo,aacute:Po,Abreve:Do,abreve:ko,ac:Oo,acd:Ao,acE:Io,Acirc:qo,acirc:Mo,acute:$o,Acy:Uo,acy:Fo,AElig:Ho,aelig:Bo,af:Vo,Afr:Ko,afr:zo,Agrave:Xo,agrave:Go,alefsym:Wo,aleph:Qo,Alpha:Yo,alpha:Jo,Amacr:Zo,amacr:ec,amalg:tc,amp:nc,AMP:sc,andand:oc,And:cc,and:rc,andd:ac,andslope:lc,andv:ic,ang:dc,ange:uc,angle:pc,angmsdaa:mc,angmsdab:fc,angmsdac:hc,angmsdad:xc,angmsdae:gc,angmsdaf:bc,angmsdag:vc,angmsdah:yc,angmsd:jc,angrt:Nc,angrtvb:Sc,angrtvbd:wc,angsph:Cc,angst:Ec,angzarr:Tc,Aogon:_c,aogon:Rc,Aopf:Lc,aopf:Pc,apacir:Dc,ap:kc,apE:Oc,ape:Ac,apid:Ic,apos:qc,ApplyFunction:Mc,approx:$c,approxeq:Uc,Aring:Fc,aring:Hc,Ascr:Bc,ascr:Vc,Assign:Kc,ast:zc,asymp:Xc,asympeq:Gc,Atilde:Wc,atilde:Qc,Auml:Yc,auml:Jc,awconint:Zc,awint:er,backcong:tr,backepsilon:nr,backprime:sr,backsim:or,backsimeq:cr,Backslash:rr,Barv:ar,barvee:lr,barwed:ir,Barwed:dr,barwedge:ur,bbrk:pr,bbrktbrk:mr,bcong:fr,Bcy:hr,bcy:xr,bdquo:gr,becaus:br,because:vr,Because:yr,bemptyv:jr,bepsi:Nr,bernou:Sr,Bernoullis:wr,Beta:Cr,beta:Er,beth:Tr,between:_r,Bfr:Rr,bfr:Lr,bigcap:Pr,bigcirc:Dr,bigcup:kr,bigodot:Or,bigoplus:Ar,bigotimes:Ir,bigsqcup:qr,bigstar:Mr,bigtriangledown:$r,bigtriangleup:Ur,biguplus:Fr,bigvee:Hr,bigwedge:Br,bkarow:Vr,blacklozenge:Kr,blacksquare:zr,blacktriangle:Xr,blacktriangledown:Gr,blacktriangleleft:Wr,blacktriangleright:Qr,blank:Yr,blk12:Jr,blk14:Zr,blk34:ea,block:ta,bne:na,bnequiv:sa,bNot:oa,bnot:ca,Bopf:ra,bopf:aa,bot:la,bottom:ia,bowtie:da,boxbox:ua,boxdl:pa,boxdL:ma,boxDl:fa,boxDL:ha,boxdr:xa,boxdR:ga,boxDr:ba,boxDR:va,boxh:ya,boxH:ja,boxhd:Na,boxHd:Sa,boxhD:wa,boxHD:Ca,boxhu:Ea,boxHu:Ta,boxhU:_a,boxHU:Ra,boxminus:La,boxplus:Pa,boxtimes:Da,boxul:ka,boxuL:Oa,boxUl:Aa,boxUL:Ia,boxur:qa,boxuR:Ma,boxUr:$a,boxUR:Ua,boxv:Fa,boxV:Ha,boxvh:Ba,boxvH:Va,boxVh:Ka,boxVH:za,boxvl:Xa,boxvL:Ga,boxVl:Wa,boxVL:Qa,boxvr:Ya,boxvR:Ja,boxVr:Za,boxVR:el,bprime:tl,breve:nl,Breve:sl,brvbar:ol,bscr:cl,Bscr:rl,bsemi:al,bsim:ll,bsime:il,bsolb:dl,bsol:ul,bsolhsub:pl,bull:ml,bullet:fl,bump:hl,bumpE:xl,bumpe:gl,Bumpeq:bl,bumpeq:vl,Cacute:yl,cacute:jl,capand:Nl,capbrcup:Sl,capcap:wl,cap:Cl,Cap:El,capcup:Tl,capdot:_l,CapitalDifferentialD:Rl,caps:Ll,caret:Pl,caron:Dl,Cayleys:kl,ccaps:Ol,Ccaron:Al,ccaron:Il,Ccedil:ql,ccedil:Ml,Ccirc:$l,ccirc:Ul,Cconint:Fl,ccups:Hl,ccupssm:Bl,Cdot:Vl,cdot:Kl,cedil:zl,Cedilla:Xl,cemptyv:Gl,cent:Wl,centerdot:Ql,CenterDot:Yl,cfr:Jl,Cfr:Zl,CHcy:ei,chcy:ti,check:ni,checkmark:si,Chi:oi,chi:ci,circ:ri,circeq:ai,circlearrowleft:li,circlearrowright:ii,circledast:di,circledcirc:ui,circleddash:pi,CircleDot:mi,circledR:fi,circledS:hi,CircleMinus:xi,CirclePlus:gi,CircleTimes:bi,cir:vi,cirE:yi,cire:ji,cirfnint:Ni,cirmid:Si,cirscir:wi,ClockwiseContourIntegral:Ci,CloseCurlyDoubleQuote:Ei,CloseCurlyQuote:Ti,clubs:_i,clubsuit:Ri,colon:Li,Colon:Pi,Colone:Di,colone:ki,coloneq:Oi,comma:Ai,commat:Ii,comp:qi,compfn:Mi,complement:$i,complexes:Ui,cong:Fi,congdot:Hi,Congruent:Bi,conint:Vi,Conint:Ki,ContourIntegral:zi,copf:Xi,Copf:Gi,coprod:Wi,Coproduct:Qi,copy:Yi,COPY:Ji,copysr:Zi,CounterClockwiseContourIntegral:ed,crarr:td,cross:nd,Cross:sd,Cscr:od,cscr:cd,csub:rd,csube:ad,csup:ld,csupe:id,ctdot:dd,cudarrl:ud,cudarrr:pd,cuepr:md,cuesc:fd,cularr:hd,cularrp:xd,cupbrcap:gd,cupcap:bd,CupCap:vd,cup:yd,Cup:jd,cupcup:Nd,cupdot:Sd,cupor:wd,cups:Cd,curarr:Ed,curarrm:Td,curlyeqprec:_d,curlyeqsucc:Rd,curlyvee:Ld,curlywedge:Pd,curren:Dd,curvearrowleft:kd,curvearrowright:Od,cuvee:Ad,cuwed:Id,cwconint:qd,cwint:Md,cylcty:$d,dagger:Ud,Dagger:Fd,daleth:Hd,darr:Bd,Darr:Vd,dArr:Kd,dash:zd,Dashv:Xd,dashv:Gd,dbkarow:Wd,dblac:Qd,Dcaron:Yd,dcaron:Jd,Dcy:Zd,dcy:eu,ddagger:tu,ddarr:nu,DD:su,dd:ou,DDotrahd:cu,ddotseq:ru,deg:au,Del:lu,Delta:iu,delta:du,demptyv:uu,dfisht:pu,Dfr:mu,dfr:fu,dHar:hu,dharl:xu,dharr:gu,DiacriticalAcute:bu,DiacriticalDot:vu,DiacriticalDoubleAcute:yu,DiacriticalGrave:ju,DiacriticalTilde:Nu,diam:Su,diamond:wu,Diamond:Cu,diamondsuit:Eu,diams:Tu,die:_u,DifferentialD:Ru,digamma:Lu,disin:Pu,div:Du,divide:ku,divideontimes:Ou,divonx:Au,DJcy:Iu,djcy:qu,dlcorn:Mu,dlcrop:$u,dollar:Uu,Dopf:Fu,dopf:Hu,Dot:Bu,dot:Vu,DotDot:Ku,doteq:zu,doteqdot:Xu,DotEqual:Gu,dotminus:Wu,dotplus:Qu,dotsquare:Yu,doublebarwedge:Ju,DoubleContourIntegral:Zu,DoubleDot:ep,DoubleDownArrow:tp,DoubleLeftArrow:np,DoubleLeftRightArrow:sp,DoubleLeftTee:op,DoubleLongLeftArrow:cp,DoubleLongLeftRightArrow:rp,DoubleLongRightArrow:ap,DoubleRightArrow:lp,DoubleRightTee:ip,DoubleUpArrow:dp,DoubleUpDownArrow:up,DoubleVerticalBar:pp,DownArrowBar:mp,downarrow:fp,DownArrow:hp,Downarrow:xp,DownArrowUpArrow:gp,DownBreve:bp,downdownarrows:vp,downharpoonleft:yp,downharpoonright:jp,DownLeftRightVector:Np,DownLeftTeeVector:Sp,DownLeftVectorBar:wp,DownLeftVector:Cp,DownRightTeeVector:Ep,DownRightVectorBar:Tp,DownRightVector:_p,DownTeeArrow:Rp,DownTee:Lp,drbkarow:Pp,drcorn:Dp,drcrop:kp,Dscr:Op,dscr:Ap,DScy:Ip,dscy:qp,dsol:Mp,Dstrok:$p,dstrok:Up,dtdot:Fp,dtri:Hp,dtrif:Bp,duarr:Vp,duhar:Kp,dwangle:zp,DZcy:Xp,dzcy:Gp,dzigrarr:Wp,Eacute:Qp,eacute:Yp,easter:Jp,Ecaron:Zp,ecaron:em,Ecirc:tm,ecirc:nm,ecir:sm,ecolon:om,Ecy:cm,ecy:rm,eDDot:am,Edot:lm,edot:im,eDot:dm,ee:um,efDot:pm,Efr:mm,efr:fm,eg:hm,Egrave:xm,egrave:gm,egs:bm,egsdot:vm,el:ym,Element:jm,elinters:Nm,ell:Sm,els:wm,elsdot:Cm,Emacr:Em,emacr:Tm,empty:_m,emptyset:Rm,EmptySmallSquare:Lm,emptyv:Pm,EmptyVerySmallSquare:Dm,emsp13:km,emsp14:Om,emsp:Am,ENG:Im,eng:qm,ensp:Mm,Eogon:$m,eogon:Um,Eopf:Fm,eopf:Hm,epar:Bm,eparsl:Vm,eplus:Km,epsi:zm,Epsilon:Xm,epsilon:Gm,epsiv:Wm,eqcirc:Qm,eqcolon:Ym,eqsim:Jm,eqslantgtr:Zm,eqslantless:ef,Equal:tf,equals:nf,EqualTilde:sf,equest:of,Equilibrium:cf,equiv:rf,equivDD:af,eqvparsl:lf,erarr:df,erDot:uf,escr:pf,Escr:mf,esdot:ff,Esim:hf,esim:xf,Eta:gf,eta:bf,ETH:vf,eth:yf,Euml:jf,euml:Nf,euro:Sf,excl:wf,exist:Cf,Exists:Ef,expectation:Tf,exponentiale:_f,ExponentialE:Rf,fallingdotseq:Lf,Fcy:Pf,fcy:Df,female:kf,ffilig:Of,fflig:Af,ffllig:If,Ffr:qf,ffr:Mf,filig:$f,FilledSmallSquare:Uf,FilledVerySmallSquare:Ff,fjlig:Hf,flat:Bf,fllig:Vf,fltns:Kf,fnof:zf,Fopf:Xf,fopf:Gf,forall:Wf,ForAll:Qf,fork:Yf,forkv:Jf,Fouriertrf:Zf,fpartint:eh,frac12:th,frac13:nh,frac14:sh,frac15:oh,frac16:ch,frac18:rh,frac23:ah,frac25:lh,frac34:ih,frac35:dh,frac38:uh,frac45:ph,frac56:mh,frac58:fh,frac78:hh,frasl:xh,frown:gh,fscr:bh,Fscr:vh,gacute:yh,Gamma:jh,gamma:Nh,Gammad:Sh,gammad:wh,gap:Ch,Gbreve:Eh,gbreve:Th,Gcedil:_h,Gcirc:Rh,gcirc:Lh,Gcy:Ph,gcy:Dh,Gdot:kh,gdot:Oh,ge:Ah,gE:Ih,gEl:qh,gel:Mh,geq:$h,geqq:Uh,geqslant:Fh,gescc:Hh,ges:Bh,gesdot:Vh,gesdoto:Kh,gesdotol:zh,gesl:Xh,gesles:Gh,Gfr:Wh,gfr:Qh,gg:Yh,Gg:Jh,ggg:Zh,gimel:ex,GJcy:tx,gjcy:nx,gla:sx,gl:ox,glE:cx,glj:rx,gnap:ax,gnapprox:lx,gne:ix,gnE:dx,gneq:ux,gneqq:px,gnsim:mx,Gopf:fx,gopf:hx,grave:xx,GreaterEqual:gx,GreaterEqualLess:bx,GreaterFullEqual:vx,GreaterGreater:yx,GreaterLess:jx,GreaterSlantEqual:Nx,GreaterTilde:Sx,Gscr:wx,gscr:Cx,gsim:Ex,gsime:Tx,gsiml:_x,gtcc:Rx,gtcir:Lx,gt:Px,GT:Dx,Gt:kx,gtdot:Ox,gtlPar:Ax,gtquest:Ix,gtrapprox:qx,gtrarr:Mx,gtrdot:$x,gtreqless:Ux,gtreqqless:Fx,gtrless:Hx,gtrsim:Bx,gvertneqq:Vx,gvnE:Kx,Hacek:zx,hairsp:Xx,half:Gx,hamilt:Wx,HARDcy:Qx,hardcy:Yx,harrcir:Jx,harr:Zx,hArr:eg,harrw:tg,Hat:ng,hbar:sg,Hcirc:og,hcirc:cg,hearts:rg,heartsuit:ag,hellip:lg,hercon:ig,hfr:dg,Hfr:ug,HilbertSpace:pg,hksearow:mg,hkswarow:fg,hoarr:hg,homtht:xg,hookleftarrow:gg,hookrightarrow:bg,hopf:vg,Hopf:yg,horbar:jg,HorizontalLine:Ng,hscr:Sg,Hscr:wg,hslash:Cg,Hstrok:Eg,hstrok:Tg,HumpDownHump:_g,HumpEqual:Rg,hybull:Lg,hyphen:Pg,Iacute:Dg,iacute:kg,ic:Og,Icirc:Ag,icirc:Ig,Icy:qg,icy:Mg,Idot:$g,IEcy:Ug,iecy:Fg,iexcl:Hg,iff:Bg,ifr:Vg,Ifr:Kg,Igrave:zg,igrave:Xg,ii:Gg,iiiint:Wg,iiint:Qg,iinfin:Yg,iiota:Jg,IJlig:Zg,ijlig:eb,Imacr:tb,imacr:nb,image:sb,ImaginaryI:ob,imagline:cb,imagpart:rb,imath:ab,Im:lb,imof:ib,imped:db,Implies:ub,incare:pb,in:"∈",infin:mb,infintie:fb,inodot:hb,intcal:xb,int:gb,Int:bb,integers:vb,Integral:yb,intercal:jb,Intersection:Nb,intlarhk:Sb,intprod:wb,InvisibleComma:Cb,InvisibleTimes:Eb,IOcy:Tb,iocy:_b,Iogon:Rb,iogon:Lb,Iopf:Pb,iopf:Db,Iota:kb,iota:Ob,iprod:Ab,iquest:Ib,iscr:qb,Iscr:Mb,isin:$b,isindot:Ub,isinE:Fb,isins:Hb,isinsv:Bb,isinv:Vb,it:Kb,Itilde:zb,itilde:Xb,Iukcy:Gb,iukcy:Wb,Iuml:Qb,iuml:Yb,Jcirc:Jb,jcirc:Zb,Jcy:ev,jcy:tv,Jfr:nv,jfr:sv,jmath:ov,Jopf:cv,jopf:rv,Jscr:av,jscr:lv,Jsercy:iv,jsercy:dv,Jukcy:uv,jukcy:pv,Kappa:mv,kappa:fv,kappav:hv,Kcedil:xv,kcedil:gv,Kcy:bv,kcy:vv,Kfr:yv,kfr:jv,kgreen:Nv,KHcy:Sv,khcy:wv,KJcy:Cv,kjcy:Ev,Kopf:Tv,kopf:_v,Kscr:Rv,kscr:Lv,lAarr:Pv,Lacute:Dv,lacute:kv,laemptyv:Ov,lagran:Av,Lambda:Iv,lambda:qv,lang:Mv,Lang:$v,langd:Uv,langle:Fv,lap:Hv,Laplacetrf:Bv,laquo:Vv,larrb:Kv,larrbfs:zv,larr:Xv,Larr:Gv,lArr:Wv,larrfs:Qv,larrhk:Yv,larrlp:Jv,larrpl:Zv,larrsim:ey,larrtl:ty,latail:ny,lAtail:sy,lat:oy,late:cy,lates:ry,lbarr:ay,lBarr:ly,lbbrk:iy,lbrace:dy,lbrack:uy,lbrke:py,lbrksld:my,lbrkslu:fy,Lcaron:hy,lcaron:xy,Lcedil:gy,lcedil:by,lceil:vy,lcub:yy,Lcy:jy,lcy:Ny,ldca:Sy,ldquo:wy,ldquor:Cy,ldrdhar:Ey,ldrushar:Ty,ldsh:_y,le:Ry,lE:Ly,LeftAngleBracket:Py,LeftArrowBar:Dy,leftarrow:ky,LeftArrow:Oy,Leftarrow:Ay,LeftArrowRightArrow:Iy,leftarrowtail:qy,LeftCeiling:My,LeftDoubleBracket:$y,LeftDownTeeVector:Uy,LeftDownVectorBar:Fy,LeftDownVector:Hy,LeftFloor:By,leftharpoondown:Vy,leftharpoonup:Ky,leftleftarrows:zy,leftrightarrow:Xy,LeftRightArrow:Gy,Leftrightarrow:Wy,leftrightarrows:Qy,leftrightharpoons:Yy,leftrightsquigarrow:Jy,LeftRightVector:Zy,LeftTeeArrow:ej,LeftTee:tj,LeftTeeVector:nj,leftthreetimes:sj,LeftTriangleBar:oj,LeftTriangle:cj,LeftTriangleEqual:rj,LeftUpDownVector:aj,LeftUpTeeVector:lj,LeftUpVectorBar:ij,LeftUpVector:dj,LeftVectorBar:uj,LeftVector:pj,lEg:mj,leg:fj,leq:hj,leqq:xj,leqslant:gj,lescc:bj,les:vj,lesdot:yj,lesdoto:jj,lesdotor:Nj,lesg:Sj,lesges:wj,lessapprox:Cj,lessdot:Ej,lesseqgtr:Tj,lesseqqgtr:_j,LessEqualGreater:Rj,LessFullEqual:Lj,LessGreater:Pj,lessgtr:Dj,LessLess:kj,lesssim:Oj,LessSlantEqual:Aj,LessTilde:Ij,lfisht:qj,lfloor:Mj,Lfr:$j,lfr:Uj,lg:Fj,lgE:Hj,lHar:Bj,lhard:Vj,lharu:Kj,lharul:zj,lhblk:Xj,LJcy:Gj,ljcy:Wj,llarr:Qj,ll:Yj,Ll:Jj,llcorner:Zj,Lleftarrow:eN,llhard:tN,lltri:nN,Lmidot:sN,lmidot:oN,lmoustache:cN,lmoust:rN,lnap:aN,lnapprox:lN,lne:iN,lnE:dN,lneq:uN,lneqq:pN,lnsim:mN,loang:fN,loarr:hN,lobrk:xN,longleftarrow:gN,LongLeftArrow:bN,Longleftarrow:vN,longleftrightarrow:yN,LongLeftRightArrow:jN,Longleftrightarrow:NN,longmapsto:SN,longrightarrow:wN,LongRightArrow:CN,Longrightarrow:EN,looparrowleft:TN,looparrowright:_N,lopar:RN,Lopf:LN,lopf:PN,loplus:DN,lotimes:kN,lowast:ON,lowbar:AN,LowerLeftArrow:IN,LowerRightArrow:qN,loz:MN,lozenge:$N,lozf:UN,lpar:FN,lparlt:HN,lrarr:BN,lrcorner:VN,lrhar:KN,lrhard:zN,lrm:XN,lrtri:GN,lsaquo:WN,lscr:QN,Lscr:YN,lsh:JN,Lsh:ZN,lsim:eS,lsime:tS,lsimg:nS,lsqb:sS,lsquo:oS,lsquor:cS,Lstrok:rS,lstrok:aS,ltcc:lS,ltcir:iS,lt:dS,LT:uS,Lt:pS,ltdot:mS,lthree:fS,ltimes:hS,ltlarr:xS,ltquest:gS,ltri:bS,ltrie:vS,ltrif:yS,ltrPar:jS,lurdshar:NS,luruhar:SS,lvertneqq:wS,lvnE:CS,macr:ES,male:TS,malt:_S,maltese:RS,Map:"⤅",map:LS,mapsto:PS,mapstodown:DS,mapstoleft:kS,mapstoup:OS,marker:AS,mcomma:IS,Mcy:qS,mcy:MS,mdash:$S,mDDot:US,measuredangle:FS,MediumSpace:HS,Mellintrf:BS,Mfr:VS,mfr:KS,mho:zS,micro:XS,midast:GS,midcir:WS,mid:QS,middot:YS,minusb:JS,minus:ZS,minusd:ew,minusdu:tw,MinusPlus:nw,mlcp:sw,mldr:ow,mnplus:cw,models:rw,Mopf:aw,mopf:lw,mp:iw,mscr:dw,Mscr:uw,mstpos:pw,Mu:mw,mu:fw,multimap:hw,mumap:xw,nabla:gw,Nacute:bw,nacute:vw,nang:yw,nap:jw,napE:Nw,napid:Sw,napos:ww,napprox:Cw,natural:Ew,naturals:Tw,natur:_w,nbsp:Rw,nbump:Lw,nbumpe:Pw,ncap:Dw,Ncaron:kw,ncaron:Ow,Ncedil:Aw,ncedil:Iw,ncong:qw,ncongdot:Mw,ncup:$w,Ncy:Uw,ncy:Fw,ndash:Hw,nearhk:Bw,nearr:Vw,neArr:Kw,nearrow:zw,ne:Xw,nedot:Gw,NegativeMediumSpace:Ww,NegativeThickSpace:Qw,NegativeThinSpace:Yw,NegativeVeryThinSpace:Jw,nequiv:Zw,nesear:e0,nesim:t0,NestedGreaterGreater:n0,NestedLessLess:s0,NewLine:o0,nexist:c0,nexists:r0,Nfr:a0,nfr:l0,ngE:i0,nge:d0,ngeq:u0,ngeqq:p0,ngeqslant:m0,nges:f0,nGg:h0,ngsim:x0,nGt:g0,ngt:b0,ngtr:v0,nGtv:y0,nharr:j0,nhArr:N0,nhpar:S0,ni:w0,nis:C0,nisd:E0,niv:T0,NJcy:_0,njcy:R0,nlarr:L0,nlArr:P0,nldr:D0,nlE:k0,nle:O0,nleftarrow:A0,nLeftarrow:I0,nleftrightarrow:q0,nLeftrightarrow:M0,nleq:$0,nleqq:U0,nleqslant:F0,nles:H0,nless:B0,nLl:V0,nlsim:K0,nLt:z0,nlt:X0,nltri:G0,nltrie:W0,nLtv:Q0,nmid:Y0,NoBreak:J0,NonBreakingSpace:Z0,nopf:eC,Nopf:tC,Not:nC,not:sC,NotCongruent:oC,NotCupCap:cC,NotDoubleVerticalBar:rC,NotElement:aC,NotEqual:lC,NotEqualTilde:iC,NotExists:dC,NotGreater:uC,NotGreaterEqual:pC,NotGreaterFullEqual:mC,NotGreaterGreater:fC,NotGreaterLess:hC,NotGreaterSlantEqual:xC,NotGreaterTilde:gC,NotHumpDownHump:bC,NotHumpEqual:vC,notin:yC,notindot:jC,notinE:NC,notinva:SC,notinvb:wC,notinvc:CC,NotLeftTriangleBar:EC,NotLeftTriangle:TC,NotLeftTriangleEqual:_C,NotLess:RC,NotLessEqual:LC,NotLessGreater:PC,NotLessLess:DC,NotLessSlantEqual:kC,NotLessTilde:OC,NotNestedGreaterGreater:AC,NotNestedLessLess:IC,notni:qC,notniva:MC,notnivb:$C,notnivc:UC,NotPrecedes:FC,NotPrecedesEqual:HC,NotPrecedesSlantEqual:BC,NotReverseElement:VC,NotRightTriangleBar:KC,NotRightTriangle:zC,NotRightTriangleEqual:XC,NotSquareSubset:GC,NotSquareSubsetEqual:WC,NotSquareSuperset:QC,NotSquareSupersetEqual:YC,NotSubset:JC,NotSubsetEqual:ZC,NotSucceeds:e1,NotSucceedsEqual:t1,NotSucceedsSlantEqual:n1,NotSucceedsTilde:s1,NotSuperset:o1,NotSupersetEqual:c1,NotTilde:r1,NotTildeEqual:a1,NotTildeFullEqual:l1,NotTildeTilde:i1,NotVerticalBar:d1,nparallel:u1,npar:p1,nparsl:m1,npart:f1,npolint:h1,npr:x1,nprcue:g1,nprec:b1,npreceq:v1,npre:y1,nrarrc:j1,nrarr:N1,nrArr:S1,nrarrw:w1,nrightarrow:C1,nRightarrow:E1,nrtri:T1,nrtrie:_1,nsc:R1,nsccue:L1,nsce:P1,Nscr:D1,nscr:k1,nshortmid:O1,nshortparallel:A1,nsim:I1,nsime:q1,nsimeq:M1,nsmid:$1,nspar:U1,nsqsube:F1,nsqsupe:H1,nsub:B1,nsubE:V1,nsube:K1,nsubset:z1,nsubseteq:X1,nsubseteqq:G1,nsucc:W1,nsucceq:Q1,nsup:Y1,nsupE:J1,nsupe:Z1,nsupset:eE,nsupseteq:tE,nsupseteqq:nE,ntgl:sE,Ntilde:oE,ntilde:cE,ntlg:rE,ntriangleleft:aE,ntrianglelefteq:lE,ntriangleright:iE,ntrianglerighteq:dE,Nu:uE,nu:pE,num:mE,numero:fE,numsp:hE,nvap:xE,nvdash:gE,nvDash:bE,nVdash:vE,nVDash:yE,nvge:jE,nvgt:NE,nvHarr:SE,nvinfin:wE,nvlArr:CE,nvle:EE,nvlt:TE,nvltrie:_E,nvrArr:RE,nvrtrie:LE,nvsim:PE,nwarhk:DE,nwarr:kE,nwArr:OE,nwarrow:AE,nwnear:IE,Oacute:qE,oacute:ME,oast:$E,Ocirc:UE,ocirc:FE,ocir:HE,Ocy:BE,ocy:VE,odash:KE,Odblac:zE,odblac:XE,odiv:GE,odot:WE,odsold:QE,OElig:YE,oelig:JE,ofcir:ZE,Ofr:eT,ofr:tT,ogon:nT,Ograve:sT,ograve:oT,ogt:cT,ohbar:rT,ohm:aT,oint:lT,olarr:iT,olcir:dT,olcross:uT,oline:pT,olt:mT,Omacr:fT,omacr:hT,Omega:xT,omega:gT,Omicron:bT,omicron:vT,omid:yT,ominus:jT,Oopf:NT,oopf:ST,opar:wT,OpenCurlyDoubleQuote:CT,OpenCurlyQuote:ET,operp:TT,oplus:_T,orarr:RT,Or:LT,or:PT,ord:DT,order:kT,orderof:OT,ordf:AT,ordm:IT,origof:qT,oror:MT,orslope:$T,orv:UT,oS:FT,Oscr:HT,oscr:BT,Oslash:VT,oslash:KT,osol:zT,Otilde:XT,otilde:GT,otimesas:WT,Otimes:QT,otimes:YT,Ouml:JT,ouml:ZT,ovbar:e_,OverBar:t_,OverBrace:n_,OverBracket:s_,OverParenthesis:o_,para:c_,parallel:r_,par:a_,parsim:l_,parsl:i_,part:d_,PartialD:u_,Pcy:p_,pcy:m_,percnt:f_,period:h_,permil:x_,perp:g_,pertenk:b_,Pfr:v_,pfr:y_,Phi:j_,phi:N_,phiv:S_,phmmat:w_,phone:C_,Pi:E_,pi:T_,pitchfork:__,piv:R_,planck:L_,planckh:P_,plankv:D_,plusacir:k_,plusb:O_,pluscir:A_,plus:I_,plusdo:q_,plusdu:M_,pluse:$_,PlusMinus:U_,plusmn:F_,plussim:H_,plustwo:B_,pm:V_,Poincareplane:K_,pointint:z_,popf:X_,Popf:G_,pound:W_,prap:Q_,Pr:Y_,pr:J_,prcue:Z_,precapprox:eR,prec:tR,preccurlyeq:nR,Precedes:sR,PrecedesEqual:oR,PrecedesSlantEqual:cR,PrecedesTilde:rR,preceq:aR,precnapprox:lR,precneqq:iR,precnsim:dR,pre:uR,prE:pR,precsim:mR,prime:fR,Prime:hR,primes:xR,prnap:gR,prnE:bR,prnsim:vR,prod:yR,Product:jR,profalar:NR,profline:SR,profsurf:wR,prop:CR,Proportional:ER,Proportion:TR,propto:_R,prsim:RR,prurel:LR,Pscr:PR,pscr:DR,Psi:kR,psi:OR,puncsp:AR,Qfr:IR,qfr:qR,qint:MR,qopf:$R,Qopf:UR,qprime:FR,Qscr:HR,qscr:BR,quaternions:VR,quatint:KR,quest:zR,questeq:XR,quot:GR,QUOT:WR,rAarr:QR,race:YR,Racute:JR,racute:ZR,radic:eL,raemptyv:tL,rang:nL,Rang:sL,rangd:oL,range:cL,rangle:rL,raquo:aL,rarrap:lL,rarrb:iL,rarrbfs:dL,rarrc:uL,rarr:pL,Rarr:mL,rArr:fL,rarrfs:hL,rarrhk:xL,rarrlp:gL,rarrpl:bL,rarrsim:vL,Rarrtl:yL,rarrtl:jL,rarrw:NL,ratail:SL,rAtail:wL,ratio:CL,rationals:EL,rbarr:TL,rBarr:_L,RBarr:RL,rbbrk:LL,rbrace:PL,rbrack:DL,rbrke:kL,rbrksld:OL,rbrkslu:AL,Rcaron:IL,rcaron:qL,Rcedil:ML,rcedil:$L,rceil:UL,rcub:FL,Rcy:HL,rcy:BL,rdca:VL,rdldhar:KL,rdquo:zL,rdquor:XL,rdsh:GL,real:WL,realine:QL,realpart:YL,reals:JL,Re:ZL,rect:eP,reg:tP,REG:nP,ReverseElement:sP,ReverseEquilibrium:oP,ReverseUpEquilibrium:cP,rfisht:rP,rfloor:aP,rfr:lP,Rfr:iP,rHar:dP,rhard:uP,rharu:pP,rharul:mP,Rho:fP,rho:hP,rhov:xP,RightAngleBracket:gP,RightArrowBar:bP,rightarrow:vP,RightArrow:yP,Rightarrow:jP,RightArrowLeftArrow:NP,rightarrowtail:SP,RightCeiling:wP,RightDoubleBracket:CP,RightDownTeeVector:EP,RightDownVectorBar:TP,RightDownVector:_P,RightFloor:RP,rightharpoondown:LP,rightharpoonup:PP,rightleftarrows:DP,rightleftharpoons:kP,rightrightarrows:OP,rightsquigarrow:AP,RightTeeArrow:IP,RightTee:qP,RightTeeVector:MP,rightthreetimes:$P,RightTriangleBar:UP,RightTriangle:FP,RightTriangleEqual:HP,RightUpDownVector:BP,RightUpTeeVector:VP,RightUpVectorBar:KP,RightUpVector:zP,RightVectorBar:XP,RightVector:GP,ring:WP,risingdotseq:QP,rlarr:YP,rlhar:JP,rlm:ZP,rmoustache:eD,rmoust:tD,rnmid:nD,roang:sD,roarr:oD,robrk:cD,ropar:rD,ropf:aD,Ropf:lD,roplus:iD,rotimes:dD,RoundImplies:uD,rpar:pD,rpargt:mD,rppolint:fD,rrarr:hD,Rrightarrow:xD,rsaquo:gD,rscr:bD,Rscr:vD,rsh:yD,Rsh:jD,rsqb:ND,rsquo:SD,rsquor:wD,rthree:CD,rtimes:ED,rtri:TD,rtrie:_D,rtrif:RD,rtriltri:LD,RuleDelayed:PD,ruluhar:DD,rx:kD,Sacute:OD,sacute:AD,sbquo:ID,scap:qD,Scaron:MD,scaron:$D,Sc:UD,sc:FD,sccue:HD,sce:BD,scE:VD,Scedil:KD,scedil:zD,Scirc:XD,scirc:GD,scnap:WD,scnE:QD,scnsim:YD,scpolint:JD,scsim:ZD,Scy:ek,scy:tk,sdotb:nk,sdot:sk,sdote:ok,searhk:ck,searr:rk,seArr:ak,searrow:lk,sect:ik,semi:dk,seswar:uk,setminus:pk,setmn:mk,sext:fk,Sfr:hk,sfr:xk,sfrown:gk,sharp:bk,SHCHcy:vk,shchcy:yk,SHcy:jk,shcy:Nk,ShortDownArrow:Sk,ShortLeftArrow:wk,shortmid:Ck,shortparallel:Ek,ShortRightArrow:Tk,ShortUpArrow:_k,shy:Rk,Sigma:Lk,sigma:Pk,sigmaf:Dk,sigmav:kk,sim:Ok,simdot:Ak,sime:Ik,simeq:qk,simg:Mk,simgE:$k,siml:Uk,simlE:Fk,simne:Hk,simplus:Bk,simrarr:Vk,slarr:Kk,SmallCircle:zk,smallsetminus:Xk,smashp:Gk,smeparsl:Wk,smid:Qk,smile:Yk,smt:Jk,smte:Zk,smtes:eO,SOFTcy:tO,softcy:nO,solbar:sO,solb:oO,sol:cO,Sopf:rO,sopf:aO,spades:lO,spadesuit:iO,spar:dO,sqcap:uO,sqcaps:pO,sqcup:mO,sqcups:fO,Sqrt:hO,sqsub:xO,sqsube:gO,sqsubset:bO,sqsubseteq:vO,sqsup:yO,sqsupe:jO,sqsupset:NO,sqsupseteq:SO,square:wO,Square:CO,SquareIntersection:EO,SquareSubset:TO,SquareSubsetEqual:_O,SquareSuperset:RO,SquareSupersetEqual:LO,SquareUnion:PO,squarf:DO,squ:kO,squf:OO,srarr:AO,Sscr:IO,sscr:qO,ssetmn:MO,ssmile:$O,sstarf:UO,Star:FO,star:HO,starf:BO,straightepsilon:VO,straightphi:KO,strns:zO,sub:XO,Sub:GO,subdot:WO,subE:QO,sube:YO,subedot:JO,submult:ZO,subnE:eA,subne:tA,subplus:nA,subrarr:sA,subset:oA,Subset:cA,subseteq:rA,subseteqq:aA,SubsetEqual:lA,subsetneq:iA,subsetneqq:dA,subsim:uA,subsub:pA,subsup:mA,succapprox:fA,succ:hA,succcurlyeq:xA,Succeeds:gA,SucceedsEqual:bA,SucceedsSlantEqual:vA,SucceedsTilde:yA,succeq:jA,succnapprox:NA,succneqq:SA,succnsim:wA,succsim:CA,SuchThat:EA,sum:TA,Sum:_A,sung:RA,sup1:LA,sup2:PA,sup3:DA,sup:kA,Sup:OA,supdot:AA,supdsub:IA,supE:qA,supe:MA,supedot:$A,Superset:UA,SupersetEqual:FA,suphsol:HA,suphsub:BA,suplarr:VA,supmult:KA,supnE:zA,supne:XA,supplus:GA,supset:WA,Supset:QA,supseteq:YA,supseteqq:JA,supsetneq:ZA,supsetneqq:eI,supsim:tI,supsub:nI,supsup:sI,swarhk:oI,swarr:cI,swArr:rI,swarrow:aI,swnwar:lI,szlig:iI,Tab:dI,target:uI,Tau:pI,tau:mI,tbrk:fI,Tcaron:hI,tcaron:xI,Tcedil:gI,tcedil:bI,Tcy:vI,tcy:yI,tdot:jI,telrec:NI,Tfr:SI,tfr:wI,there4:CI,therefore:EI,Therefore:TI,Theta:_I,theta:RI,thetasym:LI,thetav:PI,thickapprox:DI,thicksim:kI,ThickSpace:OI,ThinSpace:AI,thinsp:II,thkap:qI,thksim:MI,THORN:$I,thorn:UI,tilde:FI,Tilde:HI,TildeEqual:BI,TildeFullEqual:VI,TildeTilde:KI,timesbar:zI,timesb:XI,times:GI,timesd:WI,tint:QI,toea:YI,topbot:JI,topcir:ZI,top:e2,Topf:t2,topf:n2,topfork:s2,tosa:o2,tprime:c2,trade:r2,TRADE:a2,triangle:l2,triangledown:i2,triangleleft:d2,trianglelefteq:u2,triangleq:p2,triangleright:m2,trianglerighteq:f2,tridot:h2,trie:x2,triminus:g2,TripleDot:b2,triplus:v2,trisb:y2,tritime:j2,trpezium:N2,Tscr:S2,tscr:w2,TScy:C2,tscy:E2,TSHcy:T2,tshcy:_2,Tstrok:R2,tstrok:L2,twixt:P2,twoheadleftarrow:D2,twoheadrightarrow:k2,Uacute:O2,uacute:A2,uarr:I2,Uarr:q2,uArr:M2,Uarrocir:$2,Ubrcy:U2,ubrcy:F2,Ubreve:H2,ubreve:B2,Ucirc:V2,ucirc:K2,Ucy:z2,ucy:X2,udarr:G2,Udblac:W2,udblac:Q2,udhar:Y2,ufisht:J2,Ufr:Z2,ufr:eq,Ugrave:tq,ugrave:nq,uHar:sq,uharl:oq,uharr:cq,uhblk:rq,ulcorn:aq,ulcorner:lq,ulcrop:iq,ultri:dq,Umacr:uq,umacr:pq,uml:mq,UnderBar:fq,UnderBrace:hq,UnderBracket:xq,UnderParenthesis:gq,Union:bq,UnionPlus:vq,Uogon:yq,uogon:jq,Uopf:Nq,uopf:Sq,UpArrowBar:wq,uparrow:Cq,UpArrow:Eq,Uparrow:Tq,UpArrowDownArrow:_q,updownarrow:Rq,UpDownArrow:Lq,Updownarrow:Pq,UpEquilibrium:Dq,upharpoonleft:kq,upharpoonright:Oq,uplus:Aq,UpperLeftArrow:Iq,UpperRightArrow:qq,upsi:Mq,Upsi:$q,upsih:Uq,Upsilon:Fq,upsilon:Hq,UpTeeArrow:Bq,UpTee:Vq,upuparrows:Kq,urcorn:zq,urcorner:Xq,urcrop:Gq,Uring:Wq,uring:Qq,urtri:Yq,Uscr:Jq,uscr:Zq,utdot:eM,Utilde:tM,utilde:nM,utri:sM,utrif:oM,uuarr:cM,Uuml:rM,uuml:aM,uwangle:lM,vangrt:iM,varepsilon:dM,varkappa:uM,varnothing:pM,varphi:mM,varpi:fM,varpropto:hM,varr:xM,vArr:gM,varrho:bM,varsigma:vM,varsubsetneq:yM,varsubsetneqq:jM,varsupsetneq:NM,varsupsetneqq:SM,vartheta:wM,vartriangleleft:CM,vartriangleright:EM,vBar:TM,Vbar:_M,vBarv:RM,Vcy:LM,vcy:PM,vdash:DM,vDash:kM,Vdash:OM,VDash:AM,Vdashl:IM,veebar:qM,vee:MM,Vee:$M,veeeq:UM,vellip:FM,verbar:HM,Verbar:BM,vert:VM,Vert:KM,VerticalBar:zM,VerticalLine:XM,VerticalSeparator:GM,VerticalTilde:WM,VeryThinSpace:QM,Vfr:YM,vfr:JM,vltri:ZM,vnsub:e$,vnsup:t$,Vopf:n$,vopf:s$,vprop:o$,vrtri:c$,Vscr:r$,vscr:a$,vsubnE:l$,vsubne:i$,vsupnE:d$,vsupne:u$,Vvdash:p$,vzigzag:m$,Wcirc:f$,wcirc:h$,wedbar:x$,wedge:g$,Wedge:b$,wedgeq:v$,weierp:y$,Wfr:j$,wfr:N$,Wopf:S$,wopf:w$,wp:C$,wr:E$,wreath:T$,Wscr:_$,wscr:R$,xcap:L$,xcirc:P$,xcup:D$,xdtri:k$,Xfr:O$,xfr:A$,xharr:I$,xhArr:q$,Xi:M$,xi:$$,xlarr:U$,xlArr:F$,xmap:H$,xnis:B$,xodot:V$,Xopf:K$,xopf:z$,xoplus:X$,xotime:G$,xrarr:W$,xrArr:Q$,Xscr:Y$,xscr:J$,xsqcup:Z$,xuplus:e3,xutri:t3,xvee:n3,xwedge:s3,Yacute:o3,yacute:c3,YAcy:r3,yacy:a3,Ycirc:l3,ycirc:i3,Ycy:d3,ycy:u3,yen:p3,Yfr:m3,yfr:f3,YIcy:h3,yicy:x3,Yopf:g3,yopf:b3,Yscr:v3,yscr:y3,YUcy:j3,yucy:N3,yuml:S3,Yuml:w3,Zacute:C3,zacute:E3,Zcaron:T3,zcaron:_3,Zcy:R3,zcy:L3,Zdot:P3,zdot:D3,zeetrf:k3,ZeroWidthSpace:O3,Zeta:A3,zeta:I3,zfr:q3,Zfr:M3,ZHcy:$3,zhcy:U3,zigrarr:F3,zopf:H3,Zopf:B3,Zscr:V3,zscr:K3,zwj:z3,zwnj:X3},G3="Á",W3="á",Q3="Â",Y3="â",J3="´",Z3="Æ",eU="æ",tU="À",nU="à",sU="&",oU="&",cU="Å",rU="å",aU="Ã",lU="ã",iU="Ä",dU="ä",uU="¦",pU="Ç",mU="ç",fU="¸",hU="¢",xU="©",gU="©",bU="¤",vU="°",yU="÷",jU="É",NU="é",SU="Ê",wU="ê",CU="È",EU="è",TU="Ð",_U="ð",RU="Ë",LU="ë",PU="½",DU="¼",kU="¾",OU=">",AU=">",IU="Í",qU="í",MU="Î",$U="î",UU="¡",FU="Ì",HU="ì",BU="¿",VU="Ï",KU="ï",zU="«",XU="<",GU="<",WU="¯",QU="µ",YU="·",JU=" ",ZU="¬",e5="Ñ",t5="ñ",n5="Ó",s5="ó",o5="Ô",c5="ô",r5="Ò",a5="ò",l5="ª",i5="º",d5="Ø",u5="ø",p5="Õ",m5="õ",f5="Ö",h5="ö",x5="¶",g5="±",b5="£",v5='"',y5='"',j5="»",N5="®",S5="®",w5="§",C5="­",E5="¹",T5="²",_5="³",R5="ß",L5="Þ",P5="þ",D5="×",k5="Ú",O5="ú",A5="Û",I5="û",q5="Ù",M5="ù",$5="¨",U5="Ü",F5="ü",H5="Ý",B5="ý",V5="¥",K5="ÿ",z5={Aacute:G3,aacute:W3,Acirc:Q3,acirc:Y3,acute:J3,AElig:Z3,aelig:eU,Agrave:tU,agrave:nU,amp:sU,AMP:oU,Aring:cU,aring:rU,Atilde:aU,atilde:lU,Auml:iU,auml:dU,brvbar:uU,Ccedil:pU,ccedil:mU,cedil:fU,cent:hU,copy:xU,COPY:gU,curren:bU,deg:vU,divide:yU,Eacute:jU,eacute:NU,Ecirc:SU,ecirc:wU,Egrave:CU,egrave:EU,ETH:TU,eth:_U,Euml:RU,euml:LU,frac12:PU,frac14:DU,frac34:kU,gt:OU,GT:AU,Iacute:IU,iacute:qU,Icirc:MU,icirc:$U,iexcl:UU,Igrave:FU,igrave:HU,iquest:BU,Iuml:VU,iuml:KU,laquo:zU,lt:XU,LT:GU,macr:WU,micro:QU,middot:YU,nbsp:JU,not:ZU,Ntilde:e5,ntilde:t5,Oacute:n5,oacute:s5,Ocirc:o5,ocirc:c5,Ograve:r5,ograve:a5,ordf:l5,ordm:i5,Oslash:d5,oslash:u5,Otilde:p5,otilde:m5,Ouml:f5,ouml:h5,para:x5,plusmn:g5,pound:b5,quot:v5,QUOT:y5,raquo:j5,reg:N5,REG:S5,sect:w5,shy:C5,sup1:E5,sup2:T5,sup3:_5,szlig:R5,THORN:L5,thorn:P5,times:D5,Uacute:k5,uacute:O5,Ucirc:A5,ucirc:I5,Ugrave:q5,ugrave:M5,uml:$5,Uuml:U5,uuml:F5,Yacute:H5,yacute:B5,yen:V5,yuml:K5},X5="&",G5="'",W5=">",Q5="<",Y5='"',bn={amp:X5,apos:G5,gt:W5,lt:Q5,quot:Y5};var $e={};const J5={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};var qt;function Z5(){if(qt)return $e;qt=1;var t=$e&&$e.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty($e,"__esModule",{value:!0});var n=t(J5),s=String.fromCodePoint||function(c){var r="";return c>65535&&(c-=65536,r+=String.fromCharCode(c>>>10&1023|55296),c=56320|c&1023),r+=String.fromCharCode(c),r};function o(c){return c>=55296&&c<=57343||c>1114111?"�":(c in n.default&&(c=n.default[c]),s(c))}return $e.default=o,$e}var Mt;function $t(){if(Mt)return Ne;Mt=1;var t=Ne&&Ne.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(Ne,"__esModule",{value:!0}),Ne.decodeHTML=Ne.decodeHTMLStrict=Ne.decodeXML=void 0;var n=t(gn),s=t(z5),o=t(bn),c=t(Z5()),r=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;Ne.decodeXML=i(o.default),Ne.decodeHTMLStrict=i(n.default);function i(f){var y=m(f);return function(S){return String(S).replace(r,y)}}var p=function(f,y){return f<y?1:-1};Ne.decodeHTML=(function(){for(var f=Object.keys(s.default).sort(p),y=Object.keys(n.default).sort(p),S=0,C=0;S<y.length;S++)f[C]===y[S]?(y[S]+=";?",C++):y[S]+=";";var R=new RegExp("&(?:"+y.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),L=m(n.default);function T(x){return x.substr(-1)!==";"&&(x+=";"),L(x)}return function(x){return String(x).replace(R,T)}})();function m(f){return function(S){if(S.charAt(1)==="#"){var C=S.charAt(2);return C==="X"||C==="x"?c.default(parseInt(S.substr(3),16)):c.default(parseInt(S.substr(2),10))}return f[S.slice(1,-1)]||S}}return Ne}var ge={},Ut;function Ft(){if(Ut)return ge;Ut=1;var t=ge&&ge.__importDefault||function(g){return g&&g.__esModule?g:{default:g}};Object.defineProperty(ge,"__esModule",{value:!0}),ge.escapeUTF8=ge.escape=ge.encodeNonAsciiHTML=ge.encodeHTML=ge.encodeXML=void 0;var n=t(bn),s=p(n.default),o=m(s);ge.encodeXML=x(s);var c=t(gn),r=p(c.default),i=m(r);ge.encodeHTML=C(r,i),ge.encodeNonAsciiHTML=x(r);function p(g){return Object.keys(g).sort().reduce(function(w,v){return w[g[v]]="&"+v+";",w},{})}function m(g){for(var w=[],v=[],b=0,I=Object.keys(g);b<I.length;b++){var D=I[b];D.length===1?w.push("\\"+D):v.push(D)}w.sort();for(var k=0;k<w.length-1;k++){for(var O=k;O<w.length-1&&w[O].charCodeAt(1)+1===w[O+1].charCodeAt(1);)O+=1;var A=1+O-k;A<3||w.splice(k,A,w[k]+"-"+w[O])}return v.unshift("["+w.join("")+"]"),new RegExp(v.join("|"),"g")}var f=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,y=String.prototype.codePointAt!=null?function(g){return g.codePointAt(0)}:function(g){return(g.charCodeAt(0)-55296)*1024+g.charCodeAt(1)-56320+65536};function S(g){return"&#x"+(g.length>1?y(g):g.charCodeAt(0)).toString(16).toUpperCase()+";"}function C(g,w){return function(v){return v.replace(w,function(b){return g[b]}).replace(f,S)}}var R=new RegExp(o.source+"|"+f.source,"g");function L(g){return g.replace(R,S)}ge.escape=L;function T(g){return g.replace(o,S)}ge.escapeUTF8=T;function x(g){return function(w){return w.replace(R,function(v){return g[v]||S(v)})}}return ge}var Ht;function eF(){return Ht||(Ht=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var n=$t(),s=Ft();function o(m,f){return(!f||f<=0?n.decodeXML:n.decodeHTML)(m)}t.decode=o;function c(m,f){return(!f||f<=0?n.decodeXML:n.decodeHTMLStrict)(m)}t.decodeStrict=c;function r(m,f){return(!f||f<=0?s.encodeXML:s.encodeHTML)(m)}t.encode=r;var i=Ft();Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return i.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return i.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return i.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return i.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return i.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return i.encodeHTML}});var p=$t();Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return p.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return p.decodeXML}})})(ct)),ct}var rt,Bt;function tF(){if(Bt)return rt;Bt=1;function t(l,u){if(!(l instanceof u))throw new TypeError("Cannot call a class as a function")}function n(l,u){for(var d=0;d<u.length;d++){var j=u[d];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(l,j.key,j)}}function s(l,u,d){return u&&n(l.prototype,u),l}function o(l,u){var d=typeof Symbol<"u"&&l[Symbol.iterator]||l["@@iterator"];if(!d){if(Array.isArray(l)||(d=c(l))||u){d&&(l=d);var j=0,E=function(){};return{s:E,n:function(){return j>=l.length?{done:!0}:{done:!1,value:l[j++]}},e:function(V){throw V},f:E}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var N=!0,B=!1,J;return{s:function(){d=d.call(l)},n:function(){var V=d.next();return N=V.done,V},e:function(V){B=!0,J=V},f:function(){try{!N&&d.return!=null&&d.return()}finally{if(B)throw J}}}}function c(l,u){if(l){if(typeof l=="string")return r(l,u);var d=Object.prototype.toString.call(l).slice(8,-1);if(d==="Object"&&l.constructor&&(d=l.constructor.name),d==="Map"||d==="Set")return Array.from(l);if(d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d))return r(l,u)}}function r(l,u){(u==null||u>l.length)&&(u=l.length);for(var d=0,j=new Array(u);d<u;d++)j[d]=l[d];return j}var i=eF(),p={fg:"#FFF",bg:"#000",newline:!1,escapeXML:!1,stream:!1,colors:m()};function m(){var l={0:"#000",1:"#A00",2:"#0A0",3:"#A50",4:"#00A",5:"#A0A",6:"#0AA",7:"#AAA",8:"#555",9:"#F55",10:"#5F5",11:"#FF5",12:"#55F",13:"#F5F",14:"#5FF",15:"#FFF"};return x(0,5).forEach(function(u){x(0,5).forEach(function(d){x(0,5).forEach(function(j){return f(u,d,j,l)})})}),x(0,23).forEach(function(u){var d=u+232,j=y(u*10+8);l[d]="#"+j+j+j}),l}function f(l,u,d,j){var E=16+l*36+u*6+d,N=l>0?l*40+55:0,B=u>0?u*40+55:0,J=d>0?d*40+55:0;j[E]=S([N,B,J])}function y(l){for(var u=l.toString(16);u.length<2;)u="0"+u;return u}function S(l){var u=[],d=o(l),j;try{for(d.s();!(j=d.n()).done;){var E=j.value;u.push(y(E))}}catch(N){d.e(N)}finally{d.f()}return"#"+u.join("")}function C(l,u,d,j){var E;return u==="text"?E=v(d,j):u==="display"?E=L(l,d,j):u==="xterm256Foreground"?E=D(l,j.colors[d]):u==="xterm256Background"?E=k(l,j.colors[d]):u==="rgb"&&(E=R(l,d)),E}function R(l,u){u=u.substring(2).slice(0,-1);var d=+u.substr(0,2),j=u.substring(5).split(";"),E=j.map(function(N){return("0"+Number(N).toString(16)).substr(-2)}).join("");return I(l,(d===38?"color:#":"background-color:#")+E)}function L(l,u,d){u=parseInt(u,10);var j={"-1":function(){return"<br/>"},0:function(){return l.length&&T(l)},1:function(){return b(l,"b")},3:function(){return b(l,"i")},4:function(){return b(l,"u")},8:function(){return I(l,"display:none")},9:function(){return b(l,"strike")},22:function(){return I(l,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return O(l,"i")},24:function(){return O(l,"u")},39:function(){return D(l,d.fg)},49:function(){return k(l,d.bg)},53:function(){return I(l,"text-decoration:overline")}},E;return j[u]?E=j[u]():4<u&&u<7?E=b(l,"blink"):29<u&&u<38?E=D(l,d.colors[u-30]):39<u&&u<48?E=k(l,d.colors[u-40]):89<u&&u<98?E=D(l,d.colors[8+(u-90)]):99<u&&u<108&&(E=k(l,d.colors[8+(u-100)])),E}function T(l){var u=l.slice(0);return l.length=0,u.reverse().map(function(d){return"</"+d+">"}).join("")}function x(l,u){for(var d=[],j=l;j<=u;j++)d.push(j);return d}function g(l){return function(u){return(l===null||u.category!==l)&&l!=="all"}}function w(l){l=parseInt(l,10);var u=null;return l===0?u="all":l===1?u="bold":2<l&&l<5?u="underline":4<l&&l<7?u="blink":l===8?u="hide":l===9?u="strike":29<l&&l<38||l===39||89<l&&l<98?u="foreground-color":(39<l&&l<48||l===49||99<l&&l<108)&&(u="background-color"),u}function v(l,u){return u.escapeXML?i.encodeXML(l):l}function b(l,u,d){return d||(d=""),l.push(u),"<".concat(u).concat(d?' style="'.concat(d,'"'):"",">")}function I(l,u){return b(l,"span",u)}function D(l,u){return b(l,"span","color:"+u)}function k(l,u){return b(l,"span","background-color:"+u)}function O(l,u){var d;if(l.slice(-1)[0]===u&&(d=l.pop()),d)return"</"+u+">"}function A(l,u,d){var j=!1,E=3;function N(){return""}function B(H,P){return d("xterm256Foreground",P),""}function J(H,P){return d("xterm256Background",P),""}function M(H){return u.newline?d("display",-1):d("text",H),""}function V(H,P){j=!0,P.trim().length===0&&(P="0"),P=P.trimRight(";").split(";");var se=o(P),_e;try{for(se.s();!(_e=se.n()).done;){var Re=_e.value;d("display",Re)}}catch(ke){se.e(ke)}finally{se.f()}return""}function q(H){return d("text",H),""}function ie(H){return d("rgb",H),""}var W=[{pattern:/^\x08+/,sub:N},{pattern:/^\x1b\[[012]?K/,sub:N},{pattern:/^\x1b\[\(B/,sub:N},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:ie},{pattern:/^\x1b\[38;5;(\d+)m/,sub:B},{pattern:/^\x1b\[48;5;(\d+)m/,sub:J},{pattern:/^\n/,sub:M},{pattern:/^\r+\n/,sub:M},{pattern:/^\r/,sub:M},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:V},{pattern:/^\x1b\[\d?J/,sub:N},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:N},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:N},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:q}];function ue(H,P){P>E&&j||(j=!1,l=l.replace(H.pattern,H.sub))}var oe=[],fe=l,_=fe.length;e:for(;_>0;){for(var F=0,K=0,X=W.length;K<X;F=++K){var G=W[F];if(ue(G,F),l.length!==_){_=l.length;continue e}}if(l.length===_)break;oe.push(0),_=l.length}return oe}function z(l,u,d){return u!=="text"&&(l=l.filter(g(w(d))),l.push({token:u,data:d,category:w(d)})),l}var Y=(function(){function l(u){t(this,l),u=u||{},u.colors&&(u.colors=Object.assign({},p.colors,u.colors)),this.options=Object.assign({},p,u),this.stack=[],this.stickyStack=[]}return s(l,[{key:"toHtml",value:function(d){var j=this;d=typeof d=="string"?[d]:d;var E=this.stack,N=this.options,B=[];return this.stickyStack.forEach(function(J){var M=C(E,J.token,J.data,N);M&&B.push(M)}),A(d.join(""),N,function(J,M){var V=C(E,J,M,N);V&&B.push(V),N.stream&&(j.stickyStack=z(j.stickyStack,J,M))}),E.length&&B.push(T(E)),B.join("")}}]),l})();return rt=Y,rt}var nF=tF();const sF=En(nF),oF={"15m":900*1e3,"1h":3600*1e3,"24h":1440*60*1e3};function cF(t,n){const s=n.keyword.trim().toLowerCase(),o=n.timeRange==="all"?null:(n.now??new Date).getTime()-oF[n.timeRange];return t.filter(c=>{const r=rF(c,n.source),i=n.level==="all"||c.level===n.level,p=!s||`${c.timestamp} ${c.level} ${c.source} ${c.message}`.toLowerCase().includes(s),m=Date.parse(c.timestamp),f=o==null||Number.isFinite(m)&&m>=o;return r&&i&&p&&f})}function rF(t,n){return n==="all"?!0:n==="errors"?t.level==="error":n==="solid-server"?t.source==="css"||t.source==="solid-server":n==="runtime"?t.source==="xpod"||t.source==="runtime":t.source===n}const aF=new sF({fg:"hsl(var(--foreground))",bg:"hsl(var(--background))",newline:!0,escapeXML:!0});function lF(t){return t.includes("ERR_NGROK_8001")?"ERR_NGROK_8001: ngrok agent 无法连到 ngrok edge,通常是本机网络或代理限制。":t.includes("ERR_NGROK_9009")?"ERR_NGROK_9009: 当前 ngrok 计划或代理路径不允许该用法。":t.includes("DNS")||t.includes("DDNS")?"DNS/DDNS 相关错误:检查 Cloud 协调状态和当前公网地址。":null}function iF(t){return e.jsxs(te,{variant:"bordered",className:"mb-4",children:[e.jsx(ce,{className:"pb-2",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx(re,{children:"诊断导出"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"导出可交给开发者的脱敏运行时证据,默认不包含用户 Pod 内容。"})]}),e.jsxs(me,{onClick:t.onExport,disabled:t.exporting,className:"gap-2",children:[e.jsx(us,{className:"h-4 w-4"}),"导出诊断"]})]})}),e.jsxs(ne,{className:"grid gap-3 text-sm lg:grid-cols-[1fr_auto] lg:items-end",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-medium",children:"包含:"}),e.jsx("span",{className:"text-muted-foreground",children:"/service/status、隧道、DDNS、运行时配置摘要、最近错误和日志尾部。"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"font-medium",children:"排除:"}),e.jsx("span",{className:"text-muted-foreground",children:"Token、API key、数据库密码、认证 cookie、client secret、用户 Pod 内容。"})]})]}),e.jsxs("div",{className:"text-xs text-muted-foreground lg:text-right",children:["日志文件: ",t.logFileInfo]})]})]})}function PF(){const[t,n]=a.useState([]),[s,o]=a.useState(()=>new URLSearchParams(window.location.search).get("source")||"all"),[c,r]=a.useState("all"),[i,p]=a.useState("all"),[m,f]=a.useState(""),[y,S]=a.useState(!1),[C,R]=a.useState(!0),[L,T]=a.useState(""),[x,g]=a.useState(!1),[w,v]=a.useState("未读取"),b=a.useRef(null),I=a.useRef(null);a.useEffect(()=>{(async()=>{const j=await Pn({limit:500});n(j);const E=await Dn({lines:20});v(E?.file??"未找到日志文件")})()},[]),a.useEffect(()=>{if(y){I.current?.(),I.current=null;return}const d=Rn(j=>{T(""),n(E=>[...E,...j].slice(-500))},()=>{T("日志流连接异常,已保留当前视图。")});return I.current=d,()=>{d(),I.current=null}},[y]),a.useEffect(()=>{C&&!y&&b.current?.scrollIntoView({block:"end"})},[t,y,C]);const D=a.useMemo(()=>cF(t,{source:s,level:c,keyword:m,timeRange:i}),[t,s,c,m,i]),k=a.useCallback(()=>{n([])},[]),O=a.useCallback(()=>{const d=D.map(B=>`[${B.timestamp}] [${B.level.toUpperCase()}] [${B.source}] ${B.message}`).join(`
4
+ `),j=new Blob([d],{type:"text/plain"}),E=URL.createObjectURL(j),N=document.createElement("a");N.href=E,N.download=`xpod-logs-${new Date().toISOString().slice(0,10)}.txt`,N.click(),URL.revokeObjectURL(E)},[D]),A=a.useCallback(async()=>{g(!0);try{const d=await Ln(),j=new Blob([JSON.stringify(d,null,2)],{type:"application/json"}),E=URL.createObjectURL(j),N=document.createElement("a");N.href=E,N.download=`xpod-diagnostics-${new Date().toISOString().slice(0,10)}.json`,N.click(),URL.revokeObjectURL(E)}finally{g(!1)}},[]),z=d=>{try{return new Date(d).toLocaleTimeString()}catch{return d}},Y=d=>{switch(d){case"error":return"text-destructive";case"warn":return"text-amber-600 dark:text-amber-300";case"debug":return"text-muted-foreground";default:return"text-foreground"}},l=d=>{switch(d){case"xpod":return"text-primary";case"css":return"text-green-700 dark:text-green-300";case"api":return"text-blue-700 dark:text-blue-300";case"gateway":return"text-amber-700 dark:text-amber-300";default:return"text-muted-foreground"}},u=D.map(d=>lF(d.message)).find(Boolean);return e.jsxs("div",{className:"p-4 sm:p-8 h-full flex flex-col max-w-6xl",children:[e.jsxs("div",{className:"flex flex-col gap-4 mb-6 lg:flex-row lg:items-start lg:justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"type-h1",children:"日志"}),e.jsx("p",{className:"mt-2 max-w-[65ch] text-sm text-muted-foreground",children:"实时检查运行时输出,并导出不包含 secret 的诊断证据。"})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0 flex-wrap",children:[e.jsxs(me,{variant:"ghost",size:"sm",onClick:()=>S(!y),className:"gap-1.5 whitespace-nowrap",children:[y?e.jsx(hs,{className:"w-4 h-4"}):e.jsx(ms,{className:"w-4 h-4"}),y?"继续":"暂停"]}),e.jsxs(me,{variant:"ghost",size:"sm",onClick:O,className:"gap-1.5 whitespace-nowrap",children:[e.jsx(Yn,{className:"w-4 h-4"}),"导出日志"]}),e.jsxs(me,{variant:"ghost",size:"sm",onClick:k,className:"gap-1.5 whitespace-nowrap",children:[e.jsx(bs,{className:"w-4 h-4"}),"清空视图"]})]})]}),e.jsx(iF,{onExport:A,exporting:x,logFileInfo:w}),e.jsxs("div",{className:"mb-4 grid gap-3 lg:grid-cols-[170px_140px_140px_1fr_auto]",children:[e.jsxs(Ae,{value:s,onValueChange:d=>o(d),children:[e.jsx(Le,{className:"h-9 text-sm",children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"all",children:"All Sources"}),e.jsx(ee,{value:"runtime",children:"Xpod Runtime"}),e.jsx(ee,{value:"gateway",children:"Gateway"}),e.jsx(ee,{value:"solid-server",children:"Solid Server"}),e.jsx(ee,{value:"api",children:"API Server"}),e.jsx(ee,{value:"errors",children:"Errors"})]})]}),e.jsxs(Ae,{value:i,onValueChange:d=>p(d),children:[e.jsx(Le,{className:"h-9 text-sm",children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"all",children:"All time"}),e.jsx(ee,{value:"15m",children:"Last 15 min"}),e.jsx(ee,{value:"1h",children:"Last hour"}),e.jsx(ee,{value:"24h",children:"Last 24 hours"})]})]}),e.jsxs(Ae,{value:c,onValueChange:d=>r(d),children:[e.jsx(Le,{className:"h-9 text-sm",children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"all",children:"全部等级"}),e.jsx(ee,{value:"error",children:"错误"}),e.jsx(ee,{value:"warn",children:"警告"}),e.jsx(ee,{value:"info",children:"信息"}),e.jsx(ee,{value:"debug",children:"调试"})]})]}),e.jsxs("div",{children:[e.jsx(Oe,{htmlFor:"keywordFilter",className:"sr-only",children:"关键词"}),e.jsx(Ze,{id:"keywordFilter",value:m,onChange:d=>f(d.target.value),placeholder:"按关键词过滤",className:"h-9"})]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx("input",{type:"checkbox",checked:C,onChange:d=>R(d.target.checked)}),"自动滚动"]})]}),L?e.jsx("div",{className:"mb-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:L}):null,u?e.jsx("div",{className:"mb-3 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:border-amber-900 dark:bg-amber-950/20 dark:text-amber-200",children:u}):null,e.jsx(te,{variant:"bordered",className:"flex-1 min-h-[420px] overflow-hidden",children:e.jsx(ne,{className:"h-full p-0",children:e.jsx("div",{className:"h-full overflow-auto font-mono text-sm bg-background",children:D.length===0?e.jsx("div",{className:"p-6 text-muted-foreground text-center",children:"暂无日志"}):e.jsxs("div",{className:"p-4 space-y-1 min-w-max",children:[D.map((d,j)=>e.jsxs("div",{className:"flex gap-2 hover:bg-muted px-2 py-0.5 rounded w-max min-w-full",children:[e.jsx("span",{className:"text-muted-foreground shrink-0 w-20",children:z(d.timestamp)}),e.jsxs("span",{className:ae("shrink-0 w-14 font-semibold",Y(d.level)),children:["[",d.level.toUpperCase(),"]"]}),e.jsxs("span",{className:ae("shrink-0 w-20",l(d.source)),children:["[",d.source,"]"]}),e.jsx("span",{className:"text-foreground whitespace-pre",dangerouslySetInnerHTML:{__html:aF.toHtml(d.message)}})]},`${d.timestamp}-${j}`)),e.jsx("div",{ref:b})]})})})})]})}function dF(t){const{changes:n,onReset:s}=t;return e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx(re,{children:"待应用变更"}),e.jsx(me,{type:"button",variant:"ghost",size:"sm",onClick:s,disabled:n.length===0,children:"重置未保存"})]})}),e.jsx(ne,{children:n.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"没有未保存的变更。"}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-amber-700 dark:text-amber-300",children:"保存后需要重启运行时才能完全生效。"}),e.jsx("div",{className:"divide-y divide-border rounded-md border border-border",children:n.map(o=>e.jsxs("div",{className:"grid gap-1 px-3 py-2 text-sm sm:grid-cols-[180px_1fr]",children:[e.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:o.key}),e.jsxs("span",{className:"font-mono text-xs text-foreground break-all",children:[o.from||"∅"," → ",o.to||"∅"]})]},o.key))})]})})]})}function We(t){const{id:n,label:s,configured:o,value:c,onChange:r,placeholder:i,helper:p}=t;return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Oe,{htmlFor:n,children:s}),e.jsxs("span",{className:ae("inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs",o?"border-green-200 text-green-700 dark:border-green-900 dark:text-green-300":"border-border text-muted-foreground"),children:[e.jsx(Jn,{className:"h-3.5 w-3.5"}),o?"已配置":"未配置"]})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[e.jsx(Ze,{id:n,type:"password",autoComplete:"new-password",value:c,onChange:m=>r(m.target.value),placeholder:i??"填写新 secret","aria-describedby":p?`${n}-helper`:void 0}),c?e.jsx(me,{type:"button",variant:"ghost",onClick:()=>r(""),className:"shrink-0",children:"清除替换值"}):null]}),p?e.jsx("p",{id:`${n}-helper`,className:"text-xs text-muted-foreground",children:p}):null]})}const at=["XPOD_DEPLOY_MODE","CSS_ROOT_FILE_PATH","CSS_BASE_URL","XPOD_TUNNEL_PROVIDER","XPOD_TUNNEL_ACTIVE_PROFILE_ID","XPOD_TUNNEL_PROFILES","XPOD_TUNNEL_PUBLIC_URL","CLOUDFLARE_TUNNEL_URL","SAKURA_TUNNEL_URL","CLOUDFLARE_TUNNEL_TOKEN","SAKURA_TUNNEL_TOKEN","NGROK_AUTHTOKEN","NGROK_URL","FRP_TUNNEL_TOKEN","FRP_TUNNEL_URL","XPOD_HTTPS_MODE","XPOD_HTTPS_CERT_PATH","XPOD_HTTPS_KEY_PATH","XPOD_CLOUD_API_ENDPOINT","XPOD_NODE_ID","XPOD_SP_DOMAIN","XPOD_NODE_TOKEN","XPOD_SERVICE_TOKEN","CSS_PORT","CSS_SPARQL_ENDPOINT","CSS_IDENTITY_DB_URL","CSS_LOGGING_LEVEL","CSS_SHOW_STACK_TRACE"],uF=new Set(["CLOUDFLARE_TUNNEL_TOKEN","SAKURA_TUNNEL_TOKEN","NGROK_AUTHTOKEN","FRP_TUNNEL_TOKEN","XPOD_NODE_TOKEN","XPOD_SERVICE_TOKEN","CSS_IDENTITY_DB_URL"]),pt={ngrok:{publicEndpointKey:"NGROK_URL",publicEndpointLabel:"ngrok 固定入口 URL",publicEndpointPlaceholder:"https://example.ngrok-free.dev",credentialKey:"NGROK_AUTHTOKEN",credentialLabel:"ngrok authtoken"},cloudflare:{publicEndpointKey:"CLOUDFLARE_TUNNEL_URL",publicEndpointLabel:"Cloudflare Tunnel 公开入口",publicEndpointPlaceholder:"https://example.trycloudflare.com",credentialKey:"CLOUDFLARE_TUNNEL_TOKEN",credentialLabel:"Cloudflare Tunnel Token"},sakura_frp:{publicEndpointKey:"SAKURA_TUNNEL_URL",publicEndpointLabel:"Sakura FRP 公开入口 URL",publicEndpointPlaceholder:"https://example.example.com",credentialKey:"SAKURA_TUNNEL_TOKEN",credentialLabel:"Sakura FRP Token"},frp:{publicEndpointKey:"FRP_TUNNEL_URL",publicEndpointLabel:"FRP 公开入口 URL",publicEndpointPlaceholder:"https://example.example.com",credentialKey:"FRP_TUNNEL_TOKEN",credentialLabel:"FRP Token"}};function pF(t){return t==="none"?null:pt[t]}const mF=["ngrok","cloudflare","sakura_frp","frp"];function Nt(t){return t==="ngrok"||t==="cloudflare"||t==="sakura_frp"||t==="frp"?t:t==="sakura-frp"?"sakura_frp":"none"}function Vt(t){switch(t){case"ngrok":return"ngrok";case"cloudflare":return"Cloudflare";case"sakura_frp":return"Sakura FRP";case"frp":return"FRP"}}function fF(t,n,s){const o=[],c=new Set,r=new Map((s??[]).map(i=>[i.id,i]));for(const i of hF(t.XPOD_TUNNEL_PROFILES)){const p=pt[i.provider],m=r.get(i.id),f=m?.credentialEnvKey??i.credentialEnvKey??p.credentialKey,y=m?.publicUrl??i.publicUrl??Kt(t,i.provider,p),S=m?.credentialConfigured??n(f);o.push({id:i.id,provider:i.provider,label:m?.label||i.label||Vt(i.provider),publicEndpointUrl:y,credentialConfigured:S,configured:!0,active:m?.active??!1,credentialEnvKey:f,...m?.parameters??i.parameters?{parameters:m?.parameters??i.parameters}:{},...p,credentialKey:f}),c.add(i.id)}for(const i of mF){if(c.has(i))continue;const p=pt[i],m=Kt(t,i,p),f=n(p.credentialKey),y=r.get(i);o.push({id:i,provider:i,label:Vt(i),publicEndpointUrl:y?.publicUrl??m,credentialConfigured:y?.credentialConfigured??f,configured:!!(m||f||Nt(t.XPOD_TUNNEL_PROVIDER)===i),active:y?.active??!1,credentialEnvKey:y?.credentialEnvKey??p.credentialKey,...y?.parameters?{parameters:y.parameters}:{},...p})}return o}function hF(t){if(!t?.trim())return[];try{const n=JSON.parse(t);return Array.isArray(n)?n.flatMap(s=>{if(!s||typeof s!="object"||Array.isArray(s))return[];const o=s,c=typeof o.id=="string"&&o.id.trim()?o.id.trim():"",r=Nt(typeof o.provider=="string"?o.provider:void 0);return!c||r==="none"?[]:[{id:c,provider:r,label:typeof o.label=="string"?o.label:void 0,publicUrl:typeof o.publicUrl=="string"?o.publicUrl:void 0,credentialEnvKey:typeof o.credentialEnvKey=="string"?o.credentialEnvKey:void 0}]}):[]}catch{return[]}}function Kt(t,n,s){const o=(n==="cloudflare"||n==="sakura_frp")&&t.XPOD_TUNNEL_PUBLIC_URL||"";return t[s.publicEndpointKey]||o||""}function zt(t){const n=t.filter(s=>s.configured).map(s=>({id:s.id,provider:s.provider,label:s.label,publicUrl:s.publicEndpointUrl,...s.parameters&&Object.keys(s.parameters).length>0?{parameters:s.parameters}:{}}));return n.length>0?JSON.stringify(n):""}function xF(t,n,s){const o=t.XPOD_TUNNEL_ACTIVE_PROFILE_ID?.trim();return o||(n!=="none"?n:s.find(c=>c.configured)?.id??"none")}function Xt(t){return uF.has(t)}function Gt(t,n,s){return{...t,[n]:s}}function we(t){return e.jsxs("div",{className:"space-y-2",children:[e.jsx(Oe,{htmlFor:t.id,children:t.label}),e.jsx(Ze,{id:t.id,value:t.value,onChange:n=>t.onChange(n.target.value),placeholder:t.placeholder,readOnly:t.readOnly,"aria-readonly":t.readOnly||void 0}),t.helper?e.jsx("p",{className:"text-xs text-muted-foreground",children:t.helper}):null]})}function DF(){const t=en(),[n,s]=a.useState({}),[o,c]=a.useState({}),[r,i]=a.useState({}),[p,m]=a.useState({}),[f,y]=a.useState([]),[S,C]=a.useState([]),[R,L]=a.useState(null),[T,x]=a.useState(null),[g,w]=a.useState(!0),[v,b]=a.useState(!1),[I,D]=a.useState(!1),[k,O]=a.useState(""),[A,z]=a.useState(!1),Y=n.XPOD_DEPLOY_MODE==="standalone"?"standalone":"local",l=Nt(n.XPOD_TUNNEL_PROVIDER),u=["none","acme","manual"].includes(n.XPOD_HTTPS_MODE)?n.XPOD_HTTPS_MODE:"none",d=R?.status??"unknown",j=Y==="local",E=!!n.XPOD_CLOUD_API_ENDPOINT,N=j&&E,B=T?.baseUrl||n.CSS_BASE_URL||(T?.fqdn?`https://${T.fqdn}/`:""),J=a.useCallback(async()=>{try{const h=await kn();x(h)}catch(h){console.error("Failed to load ddns status:",h),x(null)}},[]),M=a.useCallback(async()=>{try{const h=await On(),$={...h?.env??{}};s($),c($),i({}),m(h?.secrets??{}),y(h?.tunnelProfiles??[]),C(h?.providers??[])}catch(h){console.error("Failed to load config:",h)}finally{w(!1)}},[]),V=a.useCallback(async h=>{D(!0);try{const $=await An(h);L($)}catch($){console.error("Failed to refresh public ip check:",$),L(null)}finally{D(!1)}},[]);a.useEffect(()=>{let h=!0;return Promise.resolve().then(()=>{h&&M()}),()=>{h=!1}},[M]),a.useEffect(()=>{if(g)return;let h=!0;return Promise.resolve().then(()=>{h&&V(N?B:n.CSS_BASE_URL)}),()=>{h=!1}},[n.CSS_BASE_URL,N,B,Y,g,V]),a.useEffect(()=>{if(g)return;let h=!0;return N?Promise.resolve().then(()=>{h&&J()}):Promise.resolve().then(()=>{h&&x(null)}),()=>{h=!1}},[N,J,g]);const q=(h,$)=>{s(Z=>Gt(Z,h,$))},ie=(h,$)=>{i(Z=>Gt(Z,h,$))},W=a.useCallback(h=>!!p[h]?.configured,[p]),ue=a.useCallback(h=>W(h)||!!r[h],[W,r]),oe=a.useMemo(()=>fF(n,ue,f),[n,ue,f]),fe=xF(n,l,oe),_=oe.find(h=>h.id===fe),F=_?.provider??"none",K=pF(F),X=(S??[]).find(h=>h.id===F),G=X?X.endpointSource==="declared":!0,H=h=>{const $=oe.find(Z=>Z.id===h);s(Z=>({...Z,XPOD_TUNNEL_ACTIVE_PROFILE_ID:$?$.id:"",XPOD_TUNNEL_PROVIDER:$?.provider??"none"}))},P=(h,$)=>{const Z=oe.map(je=>je.id===h.id?{...je,publicEndpointUrl:$,configured:!0}:je);s(je=>({...je,[h.publicEndpointKey]:$,XPOD_TUNNEL_PROFILES:zt(Z)}))},se=a.useMemo(()=>{if(K){if(G&&!(_?.publicEndpointUrl||"").trim())return`请填写 ${K.publicEndpointLabel}`;if(!ue(K.credentialKey))return`请填写 ${K.credentialLabel}`}if(N&&T?.mode==="tunnel"&&F==="none")return"当前网络不可直连,必须启用一个隧道供应商。";const $=(n.CSS_BASE_URL||"").trim().startsWith("https://");return!N&&$&&F==="none"&&u==="none"?"独立部署使用 https:// Base URL 时,需要配置 HTTPS 或启用隧道。":""},[_?.publicEndpointUrl,F,T?.mode,G,n.CSS_BASE_URL,u,N,K,ue]),_e=a.useMemo(()=>{const h=[];for(const $ of at){const Z=n[$],je=o[$];if(Xt($)){r[$]&&h.push({key:$,from:W($)?"[configured]":"",to:"[replace]"});continue}(Z??"")!==(je??"")&&h.push({key:$,from:je??"",to:Z??""})}for(const $ of oe){const Z=$.credentialEnvKey;at.includes(Z)||!r[Z]||h.push({key:Z,from:$.credentialConfigured?"[configured]":"",to:"[replace]"})}return h},[n,o,W,r,oe]),Re=async()=>{if(se)return O(se),!1;b(!0),O("");try{const h={};for(const Z of at)Xt(Z)?r[Z]&&(h[Z]=r[Z]):Z in n&&(h[Z]=n[Z]);h.XPOD_TUNNEL_ACTIVE_PROFILE_ID=F==="none"?"":fe,h.XPOD_TUNNEL_PROVIDER=F,h.XPOD_TUNNEL_PROFILES=zt(oe);for(const Z of oe){const je=r[Z.credentialEnvKey];je&&(h[Z.credentialEnvKey]=je)}const $=await In(h);return $?(O("配置已保存,需要重启服务生效"),await M()):O("保存失败"),!!$}catch{return O("保存失败"),!1}finally{b(!1)}},ke=async()=>{if(t&&!t.restartCapability.supported){O("当前入口不支持重启操作。请在本机或携带管理 Token 操作。");return}O("正在重启服务..."),await qn()?(O("重启信号已发送,请稍候..."),setTimeout(()=>window.location.reload(),3e3)):O("重启失败。远程访问时默认禁止重启,请在本机或携带管理 Token 操作。")},vn=async()=>{if(t&&!t.configurationWriteCapability.supported){O("当前入口不支持保存运行时配置。请在本机或携带管理 Token 操作。");return}await Re()&&await ke()},yn=()=>{s(o),i({}),O("未保存变更已重置")},jn=a.useMemo(()=>I?"检测中...":d==="pass"?"可直连":d==="fail"?"不可直连":"未知",[I,d]);return g?e.jsxs("div",{className:"p-4 sm:p-8 max-w-4xl space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"type-h1",children:"设置"}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"正在读取运行时配置。"})]}),e.jsx(te,{variant:"bordered",children:e.jsxs(ne,{className:"space-y-3 pt-5",children:[e.jsx("div",{className:"h-4 w-40 rounded bg-muted"}),e.jsx("div",{className:"h-10 rounded bg-muted"}),e.jsx("div",{className:"h-10 rounded bg-muted"})]})})]}):e.jsxs("div",{className:"p-4 sm:p-8 max-w-4xl",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h1",{className:"type-h1",children:"设置"}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"高级运行时设置。大多数用户应在常规设置中完成配置。"})]}),e.jsx("div",{className:"mb-6 rounded-xl border border-amber-200 bg-amber-50/70 p-4 text-sm text-amber-900 dark:border-amber-900 dark:bg-amber-950/20 dark:text-amber-200",children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx(xt,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"高级运行时设置"}),e.jsx("p",{className:"mt-1",children:"这里修改的是本地 Xpod 运行时,不是用户 Pod 资料,也不是 Cloud IDP 账号设置。"})]})]})}),e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{children:e.jsx(re,{children:"运行时"})}),e.jsxs(ne,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(Oe,{children:"部署模式"}),e.jsxs(Ae,{value:Y,onValueChange:h=>q("XPOD_DEPLOY_MODE",h),children:[e.jsx(Le,{children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"local",children:"边缘部署"}),e.jsx(ee,{value:"standalone",children:"独立部署"})]})]})]}),e.jsx(we,{id:"storageRoot",label:"存储目录",value:n.CSS_ROOT_FILE_PATH||"./data",onChange:h=>q("CSS_ROOT_FILE_PATH",h)})]}),e.jsx(we,{id:"baseUrl",label:"资料入口 URL",value:N?B:n.CSS_BASE_URL||"http://127.0.0.1:3000",onChange:h=>q("CSS_BASE_URL",h),readOnly:N,helper:N?"托管模式下由 Cloud 分配稳定域名,本地只上报状态和隧道入口。":"独立部署需要保证该 URL 可被目标客户端访问。"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:Y==="local"?"边缘部署:Cloud IDP 和稳定域名在云端,数据/SP 保留在本地。":"独立部署:域名、身份认证和证书都由本机或用户自管。"})]})]}),e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx(re,{children:"网络访问"}),e.jsxs("span",{className:"text-sm",children:["外网: ",e.jsx("span",{className:ae(d==="pass"?"text-green-700 dark:text-green-300":d==="fail"?"text-destructive":"text-muted-foreground"),children:jn})]})]})}),e.jsxs(ne,{className:"space-y-4",children:[N&&T?.mode==="tunnel"&&F==="none"?e.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:"当前网络不可直连,请启用一个隧道供应商。"}):null,e.jsxs("div",{className:"space-y-2",children:[e.jsx(Oe,{children:"当前生效"}),e.jsxs(Ae,{value:fe,onValueChange:H,children:[e.jsx(Le,{children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"none",children:"不使用隧道"}),oe.map(h=>e.jsx(ee,{value:h.id,children:h.label},h.id))]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"可以记录多个隧道配置,但同一时间只启用当前选择的一个。公网、局域网、本机和 P2P 由状态页判断最优接入。"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"text-sm font-medium",children:"已记录隧道"}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:oe.map(h=>{const $=h.id===fe;return e.jsxs("div",{className:ae("rounded-xl border p-3",$?"border-primary bg-primary/5":"border-border"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:h.label}),e.jsx(me,{type:"button",variant:$?"secondary":"ghost",size:"sm",onClick:()=>H(h.id),disabled:$,children:$?"当前生效":"设为当前"})]}),e.jsx("div",{className:"mt-2 break-all font-mono text-xs text-muted-foreground",children:h.publicEndpointUrl||"未配置入口"}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:h.credentialConfigured?"密钥已配置":"未配置密钥"})]},h.id)})})]}),_&&K?e.jsxs("div",{className:"space-y-4 rounded-xl border border-border p-4",children:[e.jsx("div",{className:"text-sm font-medium",children:"编辑当前隧道"}),G?e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:"隧道入口 URL"}),e.jsx(we,{id:"tunnelPublicEndpoint",label:K.publicEndpointLabel,value:_.publicEndpointUrl,onChange:h=>P(_,h),placeholder:K.publicEndpointPlaceholder,helper:"这是实际数据面入口,不替代上方的稳定资料 URL。"})]}):e.jsxs("div",{className:"rounded-md border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:["入口由 ",_.label," 分配,运行时自动读取,无需填写。"]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:"访问密钥"}),e.jsx(We,{id:"tunnelCredential",label:K.credentialLabel,configured:W(K.credentialKey),value:r[_.credentialEnvKey]||"",onChange:h=>ie(_.credentialEnvKey,h)})]})]}):e.jsx("div",{className:"rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground",children:"不使用隧道时,不填写隧道入口 URL 或访问密钥。"})]})]}),e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{children:e.jsx(re,{children:"Cloud 协调"})}),e.jsxs(ne,{className:"space-y-4",children:[e.jsx(we,{id:"cloudEndpoint",label:"Cloud API endpoint",value:n.XPOD_CLOUD_API_ENDPOINT||"",onChange:h=>q("XPOD_CLOUD_API_ENDPOINT",h)}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(we,{id:"nodeId",label:"nodeId",value:n.XPOD_NODE_ID||"",onChange:h=>q("XPOD_NODE_ID",h)}),e.jsx(we,{id:"spDomain",label:"spDomain",value:n.XPOD_SP_DOMAIN||"",onChange:h=>q("XPOD_SP_DOMAIN",h)})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(We,{id:"nodeToken",label:"Node token",configured:W("XPOD_NODE_TOKEN"),value:r.XPOD_NODE_TOKEN||"",onChange:h=>ie("XPOD_NODE_TOKEN",h)}),e.jsx(We,{id:"serviceToken",label:"Service token",configured:W("XPOD_SERVICE_TOKEN"),value:r.XPOD_SERVICE_TOKEN||"",onChange:h=>ie("XPOD_SERVICE_TOKEN",h)})]})]})]}),Y==="standalone"?e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{children:e.jsx(re,{children:"HTTPS"})}),e.jsxs(ne,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(Oe,{children:"HTTPS 模式"}),e.jsxs(Ae,{value:u,onValueChange:h=>q("XPOD_HTTPS_MODE",h),children:[e.jsx(Le,{children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"none",children:"关闭"}),e.jsx(ee,{value:"acme",children:"自动申请 ACME"}),e.jsx(ee,{value:"manual",children:"手动证书"})]})]})]}),u==="manual"?e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(we,{id:"certPath",label:"证书路径",value:n.XPOD_HTTPS_CERT_PATH||"",onChange:h=>q("XPOD_HTTPS_CERT_PATH",h)}),e.jsx(we,{id:"keyPath",label:"私钥路径",value:n.XPOD_HTTPS_KEY_PATH||"",onChange:h=>q("XPOD_HTTPS_KEY_PATH",h)})]}):null]})]}):null,e.jsx("div",{className:"mb-6",children:e.jsx(me,{variant:"ghost",size:"sm",onClick:()=>z(h=>!h),children:A?"收起高级设置":"展开高级设置"})}),A?e.jsxs(te,{variant:"bordered",className:"mb-6",children:[e.jsx(ce,{children:e.jsx(re,{children:"高级设置"})}),e.jsxs(ne,{className:"space-y-4",children:[e.jsx(we,{id:"cssPort",label:"端口",value:n.CSS_PORT||"3000",onChange:h=>q("CSS_PORT",h)}),e.jsx(we,{id:"sparqlEndpoint",label:"SPARQL 存储",value:n.CSS_SPARQL_ENDPOINT||"",onChange:h=>q("CSS_SPARQL_ENDPOINT",h)}),e.jsx(We,{id:"identityDb",label:"身份数据库 URL",configured:W("CSS_IDENTITY_DB_URL"),value:r.CSS_IDENTITY_DB_URL||"",onChange:h=>ie("CSS_IDENTITY_DB_URL",h)}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(Oe,{children:"日志级别"}),e.jsxs(Ae,{value:n.CSS_LOGGING_LEVEL||"info",onValueChange:h=>q("CSS_LOGGING_LEVEL",h),children:[e.jsx(Le,{className:"w-40",children:e.jsx(Ie,{})}),e.jsxs(Pe,{children:[e.jsx(ee,{value:"error",children:"error"}),e.jsx(ee,{value:"warn",children:"warn"}),e.jsx(ee,{value:"info",children:"info"}),e.jsx(ee,{value:"debug",children:"debug"})]})]})]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[e.jsx("input",{type:"checkbox",id:"showStackTrace",checked:n.CSS_SHOW_STACK_TRACE==="true",onChange:h=>q("CSS_SHOW_STACK_TRACE",h.target.checked?"true":"false"),className:"rounded border-input"}),"显示错误堆栈"]})]})]}):null,e.jsx(dF,{changes:_e,onReset:yn}),t&&!t.configurationWriteCapability.supported?e.jsxs("div",{className:"rounded-md border border-border bg-muted/40 px-3 py-2 text-sm text-muted-foreground",children:["Configuration changes are not supported from this host capability",t.configurationWriteCapability.reason?`: ${t.configurationWriteCapability.reason}`:"","."]}):e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx(me,{onClick:()=>{Re()},disabled:v||!!se,children:v?"保存中...":"保存配置"}),t&&!t.restartCapability.supported?null:e.jsx(me,{variant:"secondary",onClick:()=>{vn()},disabled:v||!!se,children:"保存并重启"})]}),k||se?e.jsx("div",{className:ae("mt-4 rounded-md border px-3 py-2 text-sm",se||k&&k.includes("失败")?"border-destructive/30 bg-destructive/10 text-destructive":"border-green-200 bg-green-50 text-green-800 dark:border-green-900 dark:bg-green-950/20 dark:text-green-200"),children:k||se}):null]})}export{TF as AdminLayout,PF as LogsPage,EF as RdfPage,DF as SettingsPage,_F as StatusPage};
@@ -1,4 +1,4 @@
1
- import{r as a,l as U,W as J,m as Fe,T as j,j as pe,P as Ee,Y as ct,Q as lt}from"./dashboard-BcT2ByXw.js";var ft=Object.defineProperty,B=(e,t)=>ft(e,"name",{value:t,configurable:!0}),Me=!!(typeof window<"u"&&window.document&&window.document.createElement);function Z(e,t,{checkForDefaultPrevented:n=!0}={}){return B(function(o){if(e?.(o),n===!1||!o||!o.defaultPrevented)return t?.(o)},"handleEvent")}B(Z,"composeEventHandlers");function dt(e){if(!Me)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}B(dt,"getOwnerWindow");function ue(e){if(!Me)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}B(ue,"getOwnerDocument");function ke(e,t=!1){const{activeElement:n}=ue(e);if(!n?.nodeName)return null;if(_e(n)&&n.contentDocument)return ke(n.contentDocument.body,t);if(t){const r=n.getAttribute("aria-activedescendant");if(r){const o=ue(n).getElementById(r);if(o)return o}}return n}B(ke,"getActiveElement");function _e(e){return e.tagName==="IFRAME"}B(_e,"isFrame");var vt=Object.defineProperty,mt=(e,t)=>vt(e,"name",{value:t,configurable:!0}),ht=J[" useId ".trim().toString()]||(()=>{}),pt=0;function Et(e){const[t,n]=a.useState(ht());return U(()=>{e||n(r=>r??String(pt++))},[e]),e||(t?`radix-${t}`:"")}mt(Et,"useId");var bt=Object.defineProperty,yt=(e,t)=>bt(e,"name",{value:t,configurable:!0}),Se=J[" useEffectEvent ".trim().toString()],Ce=J[" useInsertionEffect ".trim().toString()];function xe(e){if(typeof Se=="function")return Se(e);const t=a.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Ce=="function"?Ce(()=>{t.current=e}):U(()=>{t.current=e}),a.useMemo(()=>((...n)=>t.current?.(...n)),[])}yt(xe,"useEffectEvent");var gt=Object.defineProperty,V=(e,t)=>gt(e,"name",{value:t,configurable:!0}),wt=J[" useInsertionEffect ".trim().toString()]||U;function St({prop:e,defaultProp:t,onChange:n=V(()=>{},"onChange"),caller:r}){const[o,i,l]=We({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:o,p=a.useCallback(m=>{if(u){const s=Ue(m)?m(e):m;s!==e&&l.current?.(s)}else i(m)},[u,e,i,l]);return[d,p]}V(St,"useControllableState");function We({defaultProp:e,onChange:t}){const[n,r]=a.useState(e),o=a.useRef(n),i=a.useRef(t);return wt(()=>{i.current=t},[t]),a.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}V(We,"useUncontrolledState");function Ue(e){return typeof e=="function"}V(Ue,"isFunction");var Pe=Symbol("RADIX:SYNC_STATE");function Ct(e,t,n,r){const{prop:o,defaultProp:i,onChange:l,caller:u}=t,d=o!==void 0,p=xe(l),m=[{...n,state:i}];r&&m.push(r);const[s,f]=a.useReducer((c,y)=>{if(y.type===Pe)return{...c,state:y.state};const E=e(c,y);return d&&!Object.is(E.state,c.state)&&p(E.state),E},...m),g=s.state,h=a.useRef(g);a.useEffect(()=>{h.current!==g&&(h.current=g,d||p(g))},[g,h,d]);const v=a.useMemo(()=>o!==void 0?{...s,state:o}:s,[s,o]);return a.useEffect(()=>{d&&!Object.is(o,s.state)&&f({type:Pe,state:o})},[o,s.state,d]),[v,f]}V(Ct,"useControllableStateReducer");var Pt=Object.defineProperty,O=(e,t)=>Pt(e,"name",{value:t,configurable:!0}),ce="dismissableLayer.update",Ot="dismissableLayer.pointerDownOutside",Rt="dismissableLayer.focusOutside",Oe,Be=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Cn=a.forwardRef(O(function(t,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:o=!1,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,onDismiss:p,...m}=t,s=a.useContext(Be),[f,g]=a.useState(null),h=f?.ownerDocument??globalThis?.document,[,v]=a.useState({}),c=Fe(n,g),y=Array.from(s.layers),[E]=[...s.layersWithOutsidePointerEventsDisabled].slice(-1),b=E?y.indexOf(E):-1,S=f?y.indexOf(f):-1,w=s.layersWithOutsidePointerEventsDisabled.size>0,P=S>=b,D=a.useRef(!1),$=je(C=>{l?.(C),d?.(C),C.defaultPrevented||p?.()},{ownerDocument:h,deferPointerDownOutside:o,isDeferredPointerDownOutsideRef:D,dismissableSurfaces:s.dismissableSurfaces,shouldHandlePointerDownOutside:a.useCallback(C=>{if(!(C instanceof Node))return!1;const te=[...s.branches].some(we=>we.contains(C));return P&&!te},[s.branches,P])}),L=Ve(C=>{if(o&&D.current)return;const te=C.target;[...s.branches].some(ut=>ut.contains(te))||(u?.(C),d?.(C),C.defaultPrevented||p?.())},h),H=f?S===y.length-1:!1,I=j(C=>{C.key==="Escape"&&(i?.(C),!C.defaultPrevented&&p&&(C.preventDefault(),p()))});return a.useEffect(()=>{if(H)return h.addEventListener("keydown",I,{capture:!0}),()=>h.removeEventListener("keydown",I,{capture:!0})},[h,H,I]),a.useEffect(()=>{if(f)return r&&(s.layersWithOutsidePointerEventsDisabled.size===0&&(Oe=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),s.layersWithOutsidePointerEventsDisabled.add(f)),s.layers.add(f),le(),()=>{r&&(s.layersWithOutsidePointerEventsDisabled.delete(f),s.layersWithOutsidePointerEventsDisabled.size===0&&(h.body.style.pointerEvents=Oe))}},[f,h,r,s]),a.useEffect(()=>()=>{f&&(s.layers.delete(f),s.layersWithOutsidePointerEventsDisabled.delete(f),le())},[f,s]),a.useEffect(()=>{const C=O(()=>v({}),"handleUpdate");return document.addEventListener(ce,C),()=>document.removeEventListener(ce,C)},[]),pe.jsx(Ee.div,{...m,ref:c,style:{pointerEvents:w?P?"auto":"none":void 0,...t.style},onFocusCapture:Z(t.onFocusCapture,L.onFocusCapture),onBlurCapture:Z(t.onBlurCapture,L.onBlurCapture),onPointerDownCapture:Z(t.onPointerDownCapture,$.onPointerDownCapture)})},"DismissableLayer"));function Dt(){const e=a.useContext(Be),[t,n]=a.useState(null);return a.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}O(Dt,"useDismissableLayerSurface");var Nt=O(()=>!0,"IS_TRUE");function je(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:i,shouldHandlePointerDownOutside:l=Nt}=t,u=j(e),d=a.useRef(!1),p=a.useRef(!1),m=a.useRef(new Map),s=a.useRef(()=>{});return a.useEffect(()=>{function f(){p.current=!1,o.current=!1,m.current.clear()}O(f,"resetOutsideInteraction");function g(){return Array.from(m.current.values()).some(Boolean)}O(g,"isOutsideInteractionIntercepted");function h(b){if(!p.current)return;const S=b.target;S instanceof Node&&[...i].some(P=>P.contains(S))||m.current.set(b.type,!0),b.type==="click"&&window.setTimeout(()=>{p.current&&s.current()},0)}O(h,"handleInteractionCapture");function v(b){p.current&&m.current.set(b.type,!1)}O(v,"handleInteractionBubble");const c=O(b=>{if(b.target&&!d.current){let S=function(){n.removeEventListener("click",s.current);const P=g();f(),P||be(Ot,u,w,{discrete:!0})};if(O(S,"handleAndDispatchPointerDownOutsideEvent"),!l(b.target)){n.removeEventListener("click",s.current),f(),d.current=!1;return}const w={originalEvent:b};p.current=!0,o.current=r&&b.button===0,m.current.clear(),!r||b.button!==0?S():(n.removeEventListener("click",s.current),s.current=S,n.addEventListener("click",s.current,{once:!0}))}else n.removeEventListener("click",s.current),f();d.current=!1},"handlePointerDown"),y=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const b of y)n.addEventListener(b,h,!0),n.addEventListener(b,v);const E=window.setTimeout(()=>{n.addEventListener("pointerdown",c)},0);return()=>{window.clearTimeout(E),n.removeEventListener("pointerdown",c),n.removeEventListener("click",s.current);for(const b of y)n.removeEventListener(b,h,!0),n.removeEventListener(b,v)}},[n,u,r,o,i,l]),{onPointerDownCapture:O(()=>d.current=!0,"onPointerDownCapture")}}O(je,"usePointerDownOutside");function Ve(e,t=globalThis?.document){const n=j(e),r=a.useRef(!1);return a.useEffect(()=>{const o=O(i=>{i.target&&!r.current&&be(Rt,n,{originalEvent:i},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:O(()=>r.current=!0,"onFocusCapture"),onBlurCapture:O(()=>r.current=!1,"onBlurCapture")}}O(Ve,"useFocusOutside");function le(){const e=new CustomEvent(ce);document.dispatchEvent(e)}O(le,"dispatchUpdate");function be(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?ct(o,i):o.dispatchEvent(i)}O(be,"handleAndDispatchCustomEvent");var Tt=Object.defineProperty,R=(e,t)=>Tt(e,"name",{value:t,configurable:!0}),ne="focusScope.autoFocusOnMount",re="focusScope.autoFocusOnUnmount",Re={bubbles:!1,cancelable:!0},Pn=a.forwardRef(R(function(t,n){const{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:l,...u}=t,[d,p]=a.useState(null),m=j(i),s=j(l),f=a.useRef(null),g=Fe(n,p),h=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(o){let c=function(S){if(h.paused||!d)return;const w=S.target;d.contains(w)?f.current=w:T(f.current,{select:!0})},y=function(S){if(h.paused||!d)return;const w=S.relatedTarget;w!==null&&(d.contains(w)||T(f.current,{select:!0}))},E=function(S){if(document.activeElement===document.body)for(const P of S)P.removedNodes.length>0&&T(d)};R(c,"handleFocusIn"),R(y,"handleFocusOut"),R(E,"handleMutations"),document.addEventListener("focusin",c),document.addEventListener("focusout",y);const b=new MutationObserver(E);return d&&b.observe(d,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",c),document.removeEventListener("focusout",y),b.disconnect()}}},[o,d,h.paused]),a.useEffect(()=>{if(d){De.add(h);const c=document.activeElement;if(!d.contains(c)){const E=new CustomEvent(ne,Re);d.addEventListener(ne,m),d.dispatchEvent(E),E.defaultPrevented||($e(Ge(ye(d)),{select:!0}),document.activeElement===c&&T(d))}return()=>{d.removeEventListener(ne,m),setTimeout(()=>{const E=new CustomEvent(re,Re);d.addEventListener(re,s),d.dispatchEvent(E),E.defaultPrevented||T(c??document.body,{select:!0}),d.removeEventListener(re,s),De.remove(h)},0)}}},[d,m,s,h]);const v=a.useCallback(c=>{if(!r&&!o||h.paused)return;const y=c.key==="Tab"&&!c.altKey&&!c.ctrlKey&&!c.metaKey,E=document.activeElement;if(y&&E){const b=c.currentTarget,[S,w]=He(b);S&&w?!c.shiftKey&&E===w?(c.preventDefault(),r&&T(S,{select:!0})):c.shiftKey&&E===S&&(c.preventDefault(),r&&T(w,{select:!0})):E===b&&c.preventDefault()}},[r,o,h.paused]);return pe.jsx(Ee.div,{tabIndex:-1,...u,ref:g,onKeyDown:v})},"FocusScope"));function $e(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(T(r,{select:t}),document.activeElement!==n)return}R($e,"focusFirst");function He(e){const t=ye(e),n=fe(t,e),r=fe(t.reverse(),e);return[n,r]}R(He,"getTabbableEdges");function ye(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:R(r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}R(ye,"getTabbableCandidates");function fe(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ke(r,{upTo:t})))return r}R(fe,"findVisible");function Ke(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}R(Ke,"isHidden");function Ye(e){return e instanceof HTMLInputElement&&"select"in e}R(Ye,"isSelectableInput");function T(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ye(e)&&t&&e.select()}}R(T,"focus");var De=Xe();function Xe(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=de(e,t),e.unshift(t)},remove(t){e=de(e,t),e[0]?.resume()}}}R(Xe,"createFocusScopesStack");function de(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}R(de,"arrayRemove");function Ge(e){return e.filter(t=>t.tagName!=="A")}R(Ge,"removeLinks");var At=Object.defineProperty,It=(e,t)=>At(e,"name",{value:t,configurable:!0}),On=a.forwardRef(It(function(t,n){const{container:r,...o}=t,[i,l]=a.useState(!1);U(()=>l(!0),[]);const u=r||i&&globalThis?.document?.body;return u?lt.createPortal(pe.jsx(Ee.div,{...o,ref:n}),u):null},"Portal")),Lt=Object.defineProperty,A=(e,t)=>Lt(e,"name",{value:t,configurable:!0});function ze(e,t){return a.useReducer((n,r)=>t[n][r]??n,e)}A(ze,"useStateMachine");var Rn=A(e=>{const{present:t,children:n}=e,r=Ze(t),o=typeof n=="function"?n({present:r.isPresent}):a.Children.only(n),i=Qe(r.ref,qe(o));return typeof n=="function"||r.isPresent?a.cloneElement(o,{ref:i}):null},"Presence");function Ze(e){const[t,n]=a.useState(),r=a.useRef(null),o=a.useRef(e),i=a.useRef("none"),l=a.useRef(void 0),u=e?"mounted":"unmounted",[d,p]=ze(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{d==="mounted"?(i.current=l.current??x(r.current),l.current=void 0):i.current="none"},[d]),U(()=>{const m=r.current,s=o.current;if(s!==e){const g=i.current,h=x(m);e?(l.current=h,p("MOUNT")):h==="none"||m?.display==="none"?p("UNMOUNT"):p(s&&g!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,p]),U(()=>{if(t){let m;const s=t.ownerDocument.defaultView??window,f=A(h=>{const c=x(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&c&&(p("ANIMATION_END"),!o.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",m=s.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},"handleAnimationEnd"),g=A(h=>{h.target===t&&(i.current=x(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{s.clearTimeout(m),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else p("ANIMATION_END")},[t,p]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:a.useCallback(m=>{if(m){const s=getComputedStyle(m);r.current=s,l.current=x(s)}else r.current=null;n(m)},[])}}A(Ze,"usePresence");function ve(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}A(ve,"setRef");function Qe(...e){const t=a.useRef(e);return t.current=e,a.useCallback(n=>{const r=t.current;let o=!1;const i=r.map(l=>{const u=ve(l,n);return!o&&typeof u=="function"&&(o=!0),u});if(o)return()=>{for(let l=0;l<i.length;l++){const u=i[l];typeof u=="function"?u():ve(r[l],null)}}},[])}A(Qe,"useStableComposedRefs");function x(e){return e?.animationName||"none"}A(x,"getAnimationName");function qe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}A(qe,"getElementRef");var Ft=Object.defineProperty,ge=(e,t)=>Ft(e,"name",{value:t,configurable:!0}),K=0,F=null;function Mt(e){return Je(),e.children}ge(Mt,"FocusGuards");function Je(){a.useEffect(()=>{F||(F={start:me(),end:me()});const{start:e,end:t}=F;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),K++,()=>{K===1&&(F?.start.remove(),F?.end.remove(),F=null),K=Math.max(0,K-1)}},[])}ge(Je,"useFocusGuards");function me(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}ge(me,"createFocusGuard");var N=function(){return N=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},N.apply(this,arguments)};function et(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function kt(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var Q="right-scroll-bar-position",q="width-before-scroll-bar",_t="with-scroll-bars-hidden",xt="--removed-body-scroll-bar-size";function oe(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function Wt(e,t){var n=a.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var Ut=typeof window<"u"?a.useLayoutEffect:a.useEffect,Ne=new WeakMap;function Bt(e,t){var n=Wt(null,function(r){return e.forEach(function(o){return oe(o,r)})});return Ut(function(){var r=Ne.get(n);if(r){var o=new Set(r),i=new Set(e),l=n.current;o.forEach(function(u){i.has(u)||oe(u,null)}),i.forEach(function(u){o.has(u)||oe(u,l)})}Ne.set(n,e)},[e]),n}function jt(e){return e}function Vt(e,t){t===void 0&&(t=jt);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var l=t(i,r);return n.push(l),function(){n=n.filter(function(u){return u!==l})}},assignSyncMedium:function(i){for(r=!0;n.length;){var l=n;n=[],l.forEach(i)}n={push:function(u){return i(u)},filter:function(){return n}}},assignMedium:function(i){r=!0;var l=[];if(n.length){var u=n;n=[],u.forEach(i),l=n}var d=function(){var m=l;l=[],m.forEach(i)},p=function(){return Promise.resolve().then(d)};p(),n={push:function(m){l.push(m),p()},filter:function(m){return l=l.filter(m),n}}}};return o}function $t(e){e===void 0&&(e={});var t=Vt(null);return t.options=N({async:!0,ssr:!1},e),t}var tt=function(e){var t=e.sideCar,n=et(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return a.createElement(r,N({},n))};tt.isSideCarExport=!0;function Ht(e,t){return e.useMedium(t),tt}var nt=$t(),ae=function(){},ee=a.forwardRef(function(e,t){var n=a.useRef(null),r=a.useState({onScrollCapture:ae,onWheelCapture:ae,onTouchMoveCapture:ae}),o=r[0],i=r[1],l=e.forwardProps,u=e.children,d=e.className,p=e.removeScrollBar,m=e.enabled,s=e.shards,f=e.sideCar,g=e.noRelative,h=e.noIsolation,v=e.inert,c=e.allowPinchZoom,y=e.as,E=y===void 0?"div":y,b=e.gapMode,S=et(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),w=f,P=Bt([n,t]),D=N(N({},S),o);return a.createElement(a.Fragment,null,m&&a.createElement(w,{sideCar:nt,removeScrollBar:p,shards:s,noRelative:g,noIsolation:h,inert:v,setCallbacks:i,allowPinchZoom:!!c,lockRef:n,gapMode:b}),l?a.cloneElement(a.Children.only(u),N(N({},D),{ref:P})):a.createElement(E,N({},D,{className:d,ref:P}),u))});ee.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ee.classNames={fullWidth:q,zeroRight:Q};var Kt=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Yt(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Kt();return t&&e.setAttribute("nonce",t),e}function Xt(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Gt(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var zt=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Yt())&&(Xt(t,n),Gt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Zt=function(){var e=zt();return function(t,n){a.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},rt=function(){var e=Zt(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Qt={left:0,top:0,right:0,gap:0},ie=function(e){return parseInt(e||"",10)||0},qt=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[ie(n),ie(r),ie(o)]},Jt=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Qt;var t=qt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},en=rt(),W="data-scroll-locked",tn=function(e,t,n,r){var o=e.left,i=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),`
1
+ import{r as a,l as U,W as J,m as Fe,T as j,j as pe,P as Ee,Y as ct,Q as lt}from"./dashboard-BEzsRsvF.js";var ft=Object.defineProperty,B=(e,t)=>ft(e,"name",{value:t,configurable:!0}),Me=!!(typeof window<"u"&&window.document&&window.document.createElement);function Z(e,t,{checkForDefaultPrevented:n=!0}={}){return B(function(o){if(e?.(o),n===!1||!o||!o.defaultPrevented)return t?.(o)},"handleEvent")}B(Z,"composeEventHandlers");function dt(e){if(!Me)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}B(dt,"getOwnerWindow");function ue(e){if(!Me)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}B(ue,"getOwnerDocument");function ke(e,t=!1){const{activeElement:n}=ue(e);if(!n?.nodeName)return null;if(_e(n)&&n.contentDocument)return ke(n.contentDocument.body,t);if(t){const r=n.getAttribute("aria-activedescendant");if(r){const o=ue(n).getElementById(r);if(o)return o}}return n}B(ke,"getActiveElement");function _e(e){return e.tagName==="IFRAME"}B(_e,"isFrame");var vt=Object.defineProperty,mt=(e,t)=>vt(e,"name",{value:t,configurable:!0}),ht=J[" useId ".trim().toString()]||(()=>{}),pt=0;function Et(e){const[t,n]=a.useState(ht());return U(()=>{e||n(r=>r??String(pt++))},[e]),e||(t?`radix-${t}`:"")}mt(Et,"useId");var bt=Object.defineProperty,yt=(e,t)=>bt(e,"name",{value:t,configurable:!0}),Se=J[" useEffectEvent ".trim().toString()],Ce=J[" useInsertionEffect ".trim().toString()];function xe(e){if(typeof Se=="function")return Se(e);const t=a.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Ce=="function"?Ce(()=>{t.current=e}):U(()=>{t.current=e}),a.useMemo(()=>((...n)=>t.current?.(...n)),[])}yt(xe,"useEffectEvent");var gt=Object.defineProperty,V=(e,t)=>gt(e,"name",{value:t,configurable:!0}),wt=J[" useInsertionEffect ".trim().toString()]||U;function St({prop:e,defaultProp:t,onChange:n=V(()=>{},"onChange"),caller:r}){const[o,i,l]=We({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:o,p=a.useCallback(m=>{if(u){const s=Ue(m)?m(e):m;s!==e&&l.current?.(s)}else i(m)},[u,e,i,l]);return[d,p]}V(St,"useControllableState");function We({defaultProp:e,onChange:t}){const[n,r]=a.useState(e),o=a.useRef(n),i=a.useRef(t);return wt(()=>{i.current=t},[t]),a.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}V(We,"useUncontrolledState");function Ue(e){return typeof e=="function"}V(Ue,"isFunction");var Pe=Symbol("RADIX:SYNC_STATE");function Ct(e,t,n,r){const{prop:o,defaultProp:i,onChange:l,caller:u}=t,d=o!==void 0,p=xe(l),m=[{...n,state:i}];r&&m.push(r);const[s,f]=a.useReducer((c,y)=>{if(y.type===Pe)return{...c,state:y.state};const E=e(c,y);return d&&!Object.is(E.state,c.state)&&p(E.state),E},...m),g=s.state,h=a.useRef(g);a.useEffect(()=>{h.current!==g&&(h.current=g,d||p(g))},[g,h,d]);const v=a.useMemo(()=>o!==void 0?{...s,state:o}:s,[s,o]);return a.useEffect(()=>{d&&!Object.is(o,s.state)&&f({type:Pe,state:o})},[o,s.state,d]),[v,f]}V(Ct,"useControllableStateReducer");var Pt=Object.defineProperty,O=(e,t)=>Pt(e,"name",{value:t,configurable:!0}),ce="dismissableLayer.update",Ot="dismissableLayer.pointerDownOutside",Rt="dismissableLayer.focusOutside",Oe,Be=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Cn=a.forwardRef(O(function(t,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:o=!1,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,onDismiss:p,...m}=t,s=a.useContext(Be),[f,g]=a.useState(null),h=f?.ownerDocument??globalThis?.document,[,v]=a.useState({}),c=Fe(n,g),y=Array.from(s.layers),[E]=[...s.layersWithOutsidePointerEventsDisabled].slice(-1),b=E?y.indexOf(E):-1,S=f?y.indexOf(f):-1,w=s.layersWithOutsidePointerEventsDisabled.size>0,P=S>=b,D=a.useRef(!1),$=je(C=>{l?.(C),d?.(C),C.defaultPrevented||p?.()},{ownerDocument:h,deferPointerDownOutside:o,isDeferredPointerDownOutsideRef:D,dismissableSurfaces:s.dismissableSurfaces,shouldHandlePointerDownOutside:a.useCallback(C=>{if(!(C instanceof Node))return!1;const te=[...s.branches].some(we=>we.contains(C));return P&&!te},[s.branches,P])}),L=Ve(C=>{if(o&&D.current)return;const te=C.target;[...s.branches].some(ut=>ut.contains(te))||(u?.(C),d?.(C),C.defaultPrevented||p?.())},h),H=f?S===y.length-1:!1,I=j(C=>{C.key==="Escape"&&(i?.(C),!C.defaultPrevented&&p&&(C.preventDefault(),p()))});return a.useEffect(()=>{if(H)return h.addEventListener("keydown",I,{capture:!0}),()=>h.removeEventListener("keydown",I,{capture:!0})},[h,H,I]),a.useEffect(()=>{if(f)return r&&(s.layersWithOutsidePointerEventsDisabled.size===0&&(Oe=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),s.layersWithOutsidePointerEventsDisabled.add(f)),s.layers.add(f),le(),()=>{r&&(s.layersWithOutsidePointerEventsDisabled.delete(f),s.layersWithOutsidePointerEventsDisabled.size===0&&(h.body.style.pointerEvents=Oe))}},[f,h,r,s]),a.useEffect(()=>()=>{f&&(s.layers.delete(f),s.layersWithOutsidePointerEventsDisabled.delete(f),le())},[f,s]),a.useEffect(()=>{const C=O(()=>v({}),"handleUpdate");return document.addEventListener(ce,C),()=>document.removeEventListener(ce,C)},[]),pe.jsx(Ee.div,{...m,ref:c,style:{pointerEvents:w?P?"auto":"none":void 0,...t.style},onFocusCapture:Z(t.onFocusCapture,L.onFocusCapture),onBlurCapture:Z(t.onBlurCapture,L.onBlurCapture),onPointerDownCapture:Z(t.onPointerDownCapture,$.onPointerDownCapture)})},"DismissableLayer"));function Dt(){const e=a.useContext(Be),[t,n]=a.useState(null);return a.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}O(Dt,"useDismissableLayerSurface");var Nt=O(()=>!0,"IS_TRUE");function je(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:i,shouldHandlePointerDownOutside:l=Nt}=t,u=j(e),d=a.useRef(!1),p=a.useRef(!1),m=a.useRef(new Map),s=a.useRef(()=>{});return a.useEffect(()=>{function f(){p.current=!1,o.current=!1,m.current.clear()}O(f,"resetOutsideInteraction");function g(){return Array.from(m.current.values()).some(Boolean)}O(g,"isOutsideInteractionIntercepted");function h(b){if(!p.current)return;const S=b.target;S instanceof Node&&[...i].some(P=>P.contains(S))||m.current.set(b.type,!0),b.type==="click"&&window.setTimeout(()=>{p.current&&s.current()},0)}O(h,"handleInteractionCapture");function v(b){p.current&&m.current.set(b.type,!1)}O(v,"handleInteractionBubble");const c=O(b=>{if(b.target&&!d.current){let S=function(){n.removeEventListener("click",s.current);const P=g();f(),P||be(Ot,u,w,{discrete:!0})};if(O(S,"handleAndDispatchPointerDownOutsideEvent"),!l(b.target)){n.removeEventListener("click",s.current),f(),d.current=!1;return}const w={originalEvent:b};p.current=!0,o.current=r&&b.button===0,m.current.clear(),!r||b.button!==0?S():(n.removeEventListener("click",s.current),s.current=S,n.addEventListener("click",s.current,{once:!0}))}else n.removeEventListener("click",s.current),f();d.current=!1},"handlePointerDown"),y=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const b of y)n.addEventListener(b,h,!0),n.addEventListener(b,v);const E=window.setTimeout(()=>{n.addEventListener("pointerdown",c)},0);return()=>{window.clearTimeout(E),n.removeEventListener("pointerdown",c),n.removeEventListener("click",s.current);for(const b of y)n.removeEventListener(b,h,!0),n.removeEventListener(b,v)}},[n,u,r,o,i,l]),{onPointerDownCapture:O(()=>d.current=!0,"onPointerDownCapture")}}O(je,"usePointerDownOutside");function Ve(e,t=globalThis?.document){const n=j(e),r=a.useRef(!1);return a.useEffect(()=>{const o=O(i=>{i.target&&!r.current&&be(Rt,n,{originalEvent:i},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:O(()=>r.current=!0,"onFocusCapture"),onBlurCapture:O(()=>r.current=!1,"onBlurCapture")}}O(Ve,"useFocusOutside");function le(){const e=new CustomEvent(ce);document.dispatchEvent(e)}O(le,"dispatchUpdate");function be(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?ct(o,i):o.dispatchEvent(i)}O(be,"handleAndDispatchCustomEvent");var Tt=Object.defineProperty,R=(e,t)=>Tt(e,"name",{value:t,configurable:!0}),ne="focusScope.autoFocusOnMount",re="focusScope.autoFocusOnUnmount",Re={bubbles:!1,cancelable:!0},Pn=a.forwardRef(R(function(t,n){const{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:l,...u}=t,[d,p]=a.useState(null),m=j(i),s=j(l),f=a.useRef(null),g=Fe(n,p),h=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(o){let c=function(S){if(h.paused||!d)return;const w=S.target;d.contains(w)?f.current=w:T(f.current,{select:!0})},y=function(S){if(h.paused||!d)return;const w=S.relatedTarget;w!==null&&(d.contains(w)||T(f.current,{select:!0}))},E=function(S){if(document.activeElement===document.body)for(const P of S)P.removedNodes.length>0&&T(d)};R(c,"handleFocusIn"),R(y,"handleFocusOut"),R(E,"handleMutations"),document.addEventListener("focusin",c),document.addEventListener("focusout",y);const b=new MutationObserver(E);return d&&b.observe(d,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",c),document.removeEventListener("focusout",y),b.disconnect()}}},[o,d,h.paused]),a.useEffect(()=>{if(d){De.add(h);const c=document.activeElement;if(!d.contains(c)){const E=new CustomEvent(ne,Re);d.addEventListener(ne,m),d.dispatchEvent(E),E.defaultPrevented||($e(Ge(ye(d)),{select:!0}),document.activeElement===c&&T(d))}return()=>{d.removeEventListener(ne,m),setTimeout(()=>{const E=new CustomEvent(re,Re);d.addEventListener(re,s),d.dispatchEvent(E),E.defaultPrevented||T(c??document.body,{select:!0}),d.removeEventListener(re,s),De.remove(h)},0)}}},[d,m,s,h]);const v=a.useCallback(c=>{if(!r&&!o||h.paused)return;const y=c.key==="Tab"&&!c.altKey&&!c.ctrlKey&&!c.metaKey,E=document.activeElement;if(y&&E){const b=c.currentTarget,[S,w]=He(b);S&&w?!c.shiftKey&&E===w?(c.preventDefault(),r&&T(S,{select:!0})):c.shiftKey&&E===S&&(c.preventDefault(),r&&T(w,{select:!0})):E===b&&c.preventDefault()}},[r,o,h.paused]);return pe.jsx(Ee.div,{tabIndex:-1,...u,ref:g,onKeyDown:v})},"FocusScope"));function $e(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(T(r,{select:t}),document.activeElement!==n)return}R($e,"focusFirst");function He(e){const t=ye(e),n=fe(t,e),r=fe(t.reverse(),e);return[n,r]}R(He,"getTabbableEdges");function ye(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:R(r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}R(ye,"getTabbableCandidates");function fe(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ke(r,{upTo:t})))return r}R(fe,"findVisible");function Ke(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}R(Ke,"isHidden");function Ye(e){return e instanceof HTMLInputElement&&"select"in e}R(Ye,"isSelectableInput");function T(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ye(e)&&t&&e.select()}}R(T,"focus");var De=Xe();function Xe(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=de(e,t),e.unshift(t)},remove(t){e=de(e,t),e[0]?.resume()}}}R(Xe,"createFocusScopesStack");function de(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}R(de,"arrayRemove");function Ge(e){return e.filter(t=>t.tagName!=="A")}R(Ge,"removeLinks");var At=Object.defineProperty,It=(e,t)=>At(e,"name",{value:t,configurable:!0}),On=a.forwardRef(It(function(t,n){const{container:r,...o}=t,[i,l]=a.useState(!1);U(()=>l(!0),[]);const u=r||i&&globalThis?.document?.body;return u?lt.createPortal(pe.jsx(Ee.div,{...o,ref:n}),u):null},"Portal")),Lt=Object.defineProperty,A=(e,t)=>Lt(e,"name",{value:t,configurable:!0});function ze(e,t){return a.useReducer((n,r)=>t[n][r]??n,e)}A(ze,"useStateMachine");var Rn=A(e=>{const{present:t,children:n}=e,r=Ze(t),o=typeof n=="function"?n({present:r.isPresent}):a.Children.only(n),i=Qe(r.ref,qe(o));return typeof n=="function"||r.isPresent?a.cloneElement(o,{ref:i}):null},"Presence");function Ze(e){const[t,n]=a.useState(),r=a.useRef(null),o=a.useRef(e),i=a.useRef("none"),l=a.useRef(void 0),u=e?"mounted":"unmounted",[d,p]=ze(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{d==="mounted"?(i.current=l.current??x(r.current),l.current=void 0):i.current="none"},[d]),U(()=>{const m=r.current,s=o.current;if(s!==e){const g=i.current,h=x(m);e?(l.current=h,p("MOUNT")):h==="none"||m?.display==="none"?p("UNMOUNT"):p(s&&g!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,p]),U(()=>{if(t){let m;const s=t.ownerDocument.defaultView??window,f=A(h=>{const c=x(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&c&&(p("ANIMATION_END"),!o.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",m=s.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},"handleAnimationEnd"),g=A(h=>{h.target===t&&(i.current=x(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{s.clearTimeout(m),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else p("ANIMATION_END")},[t,p]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:a.useCallback(m=>{if(m){const s=getComputedStyle(m);r.current=s,l.current=x(s)}else r.current=null;n(m)},[])}}A(Ze,"usePresence");function ve(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}A(ve,"setRef");function Qe(...e){const t=a.useRef(e);return t.current=e,a.useCallback(n=>{const r=t.current;let o=!1;const i=r.map(l=>{const u=ve(l,n);return!o&&typeof u=="function"&&(o=!0),u});if(o)return()=>{for(let l=0;l<i.length;l++){const u=i[l];typeof u=="function"?u():ve(r[l],null)}}},[])}A(Qe,"useStableComposedRefs");function x(e){return e?.animationName||"none"}A(x,"getAnimationName");function qe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}A(qe,"getElementRef");var Ft=Object.defineProperty,ge=(e,t)=>Ft(e,"name",{value:t,configurable:!0}),K=0,F=null;function Mt(e){return Je(),e.children}ge(Mt,"FocusGuards");function Je(){a.useEffect(()=>{F||(F={start:me(),end:me()});const{start:e,end:t}=F;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),K++,()=>{K===1&&(F?.start.remove(),F?.end.remove(),F=null),K=Math.max(0,K-1)}},[])}ge(Je,"useFocusGuards");function me(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}ge(me,"createFocusGuard");var N=function(){return N=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},N.apply(this,arguments)};function et(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function kt(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var Q="right-scroll-bar-position",q="width-before-scroll-bar",_t="with-scroll-bars-hidden",xt="--removed-body-scroll-bar-size";function oe(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function Wt(e,t){var n=a.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var Ut=typeof window<"u"?a.useLayoutEffect:a.useEffect,Ne=new WeakMap;function Bt(e,t){var n=Wt(null,function(r){return e.forEach(function(o){return oe(o,r)})});return Ut(function(){var r=Ne.get(n);if(r){var o=new Set(r),i=new Set(e),l=n.current;o.forEach(function(u){i.has(u)||oe(u,null)}),i.forEach(function(u){o.has(u)||oe(u,l)})}Ne.set(n,e)},[e]),n}function jt(e){return e}function Vt(e,t){t===void 0&&(t=jt);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var l=t(i,r);return n.push(l),function(){n=n.filter(function(u){return u!==l})}},assignSyncMedium:function(i){for(r=!0;n.length;){var l=n;n=[],l.forEach(i)}n={push:function(u){return i(u)},filter:function(){return n}}},assignMedium:function(i){r=!0;var l=[];if(n.length){var u=n;n=[],u.forEach(i),l=n}var d=function(){var m=l;l=[],m.forEach(i)},p=function(){return Promise.resolve().then(d)};p(),n={push:function(m){l.push(m),p()},filter:function(m){return l=l.filter(m),n}}}};return o}function $t(e){e===void 0&&(e={});var t=Vt(null);return t.options=N({async:!0,ssr:!1},e),t}var tt=function(e){var t=e.sideCar,n=et(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return a.createElement(r,N({},n))};tt.isSideCarExport=!0;function Ht(e,t){return e.useMedium(t),tt}var nt=$t(),ae=function(){},ee=a.forwardRef(function(e,t){var n=a.useRef(null),r=a.useState({onScrollCapture:ae,onWheelCapture:ae,onTouchMoveCapture:ae}),o=r[0],i=r[1],l=e.forwardProps,u=e.children,d=e.className,p=e.removeScrollBar,m=e.enabled,s=e.shards,f=e.sideCar,g=e.noRelative,h=e.noIsolation,v=e.inert,c=e.allowPinchZoom,y=e.as,E=y===void 0?"div":y,b=e.gapMode,S=et(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),w=f,P=Bt([n,t]),D=N(N({},S),o);return a.createElement(a.Fragment,null,m&&a.createElement(w,{sideCar:nt,removeScrollBar:p,shards:s,noRelative:g,noIsolation:h,inert:v,setCallbacks:i,allowPinchZoom:!!c,lockRef:n,gapMode:b}),l?a.cloneElement(a.Children.only(u),N(N({},D),{ref:P})):a.createElement(E,N({},D,{className:d,ref:P}),u))});ee.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ee.classNames={fullWidth:q,zeroRight:Q};var Kt=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Yt(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Kt();return t&&e.setAttribute("nonce",t),e}function Xt(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Gt(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var zt=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Yt())&&(Xt(t,n),Gt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Zt=function(){var e=zt();return function(t,n){a.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},rt=function(){var e=Zt(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Qt={left:0,top:0,right:0,gap:0},ie=function(e){return parseInt(e||"",10)||0},qt=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[ie(n),ie(r),ie(o)]},Jt=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Qt;var t=qt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},en=rt(),W="data-scroll-locked",tn=function(e,t,n,r){var o=e.left,i=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),`
2
2
  .`.concat(_t,` {
3
3
  overflow: hidden `).concat(r,`;
4
4
  padding-right: `).concat(u,"px ").concat(r,`;