@marimo-team/islands 0.25.3-dev5 → 0.25.3-dev51

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 (220) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CNMliVzw.js → ConnectedDataExplorerComponent-Da5OoEUL.js} +14 -14
  2. package/dist/{ErrorBoundary-BiZWOrv4.js → ErrorBoundary-CbxCC2kk.js} +8 -8
  3. package/dist/{abnfDiagram-VCTEODGH-D-Ez91gV.js → abnfDiagram-VCTEODGH-Bz3mrprX.js} +2 -2
  4. package/dist/any-language-editor-k2B8YI3Y.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-CTpcNtO8.js → architectureDiagram-5GKGNRK7-Cs5ujb9K.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-R6JsImiT.js} +8 -0
  7. package/dist/{button-CvjkwdSk.js → button-BxB3RDjN.js} +1 -1
  8. package/dist/{capabilities-CQ5IjhzL.js → capabilities-BgR0osfN.js} +2 -2
  9. package/dist/{chat-ui-0lKdOoQ3.js → chat-ui-C1Gjgokv.js} +1103 -1103
  10. package/dist/{check-EDwSwP89.js → check-P35dc2dH.js} +1 -1
  11. package/dist/{chunk-IMKFNOWR-DGxi-zeo.js → chunk-IMKFNOWR-CcTSaxZt.js} +1 -1
  12. package/dist/{chunk-SHT3W25Y-CV9J3rAB.js → chunk-SHT3W25Y-DcJcjOaO.js} +1 -1
  13. package/dist/{chunk-SVP7TREG-BL-9Fqgg.js → chunk-SVP7TREG-BVtDTjaF.js} +1 -1
  14. package/dist/{chunk-TICWLB2K-Cu_XMjDM.js → chunk-TICWLB2K-BkDFkh8q.js} +1 -1
  15. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  16. package/dist/{classDiagram-ZZMXUADV-BXXV13Hq.js → classDiagram-ZZMXUADV-CfAt7HT5.js} +2 -2
  17. package/dist/{classDiagram-v2-VYDZK3BY-B7FXJ1Cp.js → classDiagram-v2-VYDZK3BY-CGEjNYa2.js} +2 -2
  18. package/dist/{code-visibility-CW5_8ZOI.js → code-visibility-DoZ9lxzx.js} +6 -6
  19. package/dist/{common-mzWw4FdI.js → common-D1PacyXO.js} +3112 -3015
  20. package/dist/{copy-icon-Ft7t9bqz.js → copy-icon-CPoxUG7G.js} +3 -3
  21. package/dist/{cynefinDiagram-5FMLGOSQ-CH96rwba.js → cynefinDiagram-5FMLGOSQ-BW6NmfJi.js} +1 -1
  22. package/dist/{dagre-GXQ25YYZ-BD3PmpFY.js → dagre-GXQ25YYZ-CWg3CTuF.js} +1 -1
  23. package/dist/{data-grid-overlay-editor-CJmehSdc.js → data-grid-overlay-editor-B50UpkXd.js} +5 -5
  24. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  25. package/dist/{diagram-S7CK7UJ4-BsSJJldB.js → diagram-S7CK7UJ4-BPxtoS-z.js} +1 -1
  26. package/dist/{diagram-UQ7AKVKN-muQtNZc4.js → diagram-UQ7AKVKN-DA-vJdFL.js} +1 -1
  27. package/dist/{diagram-VX7I27RA-CdhuZAqR.js → diagram-VX7I27RA-D6bkR84S.js} +1 -1
  28. package/dist/{diagram-Z3DM3KII-BD8mXjOj.js → diagram-Z3DM3KII-m60g4cAT.js} +1 -1
  29. package/dist/{dialog-CEBFZNyc.js → dialog-C1PcpCqX.js} +3 -3
  30. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  31. package/dist/{dropdown-menu-CP_qCYHC.js → dropdown-menu-MG5hiCIa.js} +76 -76
  32. package/dist/{ebnfDiagram-PWID7BFC-BIN1sweE.js → ebnfDiagram-PWID7BFC-CK99sho2.js} +2 -2
  33. package/dist/{erDiagram-RLTQ6QDP-Ctp5cfoN.js → erDiagram-RLTQ6QDP-Bryq0tdE.js} +1 -1
  34. package/dist/{error-banner-D-WCIiMt.js → error-banner-Sl2FlSJ4.js} +2 -2
  35. package/dist/{error-entries-DSvFWT_M.js → error-entries-CMNtA8NK.js} +959 -959
  36. package/dist/{feedback-button-BcT1FBud.js → feedback-button-DqPqwryB.js} +29 -29
  37. package/dist/{flowDiagram-HODETNUW-3EfLrlFb.js → flowDiagram-HODETNUW-D-3aRpfS.js} +2 -2
  38. package/dist/{formats-CeOmU1MU.js → formats-6pLWWrY2.js} +3 -3
  39. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  40. package/dist/{glide-data-editor-XckatD0j.js → glide-data-editor-BxMhUd3K.js} +370 -368
  41. package/dist/{glide-utils-DJyqh0EM.js → glide-utils-Bt8_pBa2.js} +16 -16
  42. package/dist/{globals-jRrLCkrP.js → globals-DTJa_doJ.js} +3 -3
  43. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  44. package/dist/{html-to-image-B8s5SgGm.js → html-to-image-By72ALyI.js} +29 -29
  45. package/dist/{infoDiagram-27XIBGKW-DipQoHxl.js → infoDiagram-27XIBGKW-s1C1kgfU.js} +1 -1
  46. package/dist/{ishikawaDiagram-5VMMS53U-DgFMjSGz.js → ishikawaDiagram-5VMMS53U-CCsRgolY.js} +1 -1
  47. package/dist/{kanban-definition-UXKFOSKX-w1ACVjgl.js → kanban-definition-UXKFOSKX-BrmxDlcc.js} +1 -1
  48. package/dist/{label-BDKF3Afc.js → label-BRnUC0NX.js} +2 -2
  49. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  50. package/dist/{loader-BQOfjTIJ.js → loader-Bm8cy3e8.js} +12 -12
  51. package/dist/main.js +2358 -2221
  52. package/dist/{mermaid-CHo49Yv-.js → mermaid-DKI0869I.js} +38 -38
  53. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  54. package/dist/{mindmap-definition-YA3MSWOX-CrT0KSfX.js → mindmap-definition-YA3MSWOX-641xJysF.js} +1 -1
  55. package/dist/{number-overlay-editor-pZx8dUDV.js → number-overlay-editor-Z_H6x5b-.js} +3 -3
  56. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  57. package/dist/{once-BtE-wKRL.js → once-eG8Vmvjd.js} +1 -1
  58. package/dist/{pegDiagram-XKGWAZYB-BqvywNJA.js → pegDiagram-XKGWAZYB-keVUAUeS.js} +2 -2
  59. package/dist/{pieDiagram-E7YTZNPT-BfxJ_XCc.js → pieDiagram-E7YTZNPT-DHktXPO_.js} +1 -1
  60. package/dist/precisionRound-DhAzeRcm.js +49 -0
  61. package/dist/{process-output-CKRXyszb.js → process-output-D-OMW5sV.js} +4 -4
  62. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  63. package/dist/{railroadDiagram-O6MQD6OU-8vFLVTPu.js → railroadDiagram-O6MQD6OU-BVEF4OV_.js} +2 -2
  64. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  65. package/dist/{requirementDiagram-BXWQKSXE-a_MxGvxe.js → requirementDiagram-BXWQKSXE-CWo-UAKV.js} +1 -1
  66. package/dist/{reveal-component-79ez8-D5.js → reveal-component-tAB5K3QE.js} +10 -10
  67. package/dist/{select-BButFi-d.js → select-B0LRDH0g.js} +4 -4
  68. package/dist/{sequenceDiagram-WJ2MYXX4-CXFMnxGh.js → sequenceDiagram-WJ2MYXX4-CHQvLnq4.js} +1 -1
  69. package/dist/{spec-BwarBpUJ.js → spec-C-LRKGtT.js} +4 -4
  70. package/dist/{stateDiagram-D77RDMKH-DQeA_CwI.js → stateDiagram-D77RDMKH-BOJZgbUJ.js} +2 -2
  71. package/dist/{stateDiagram-v2-MP3YSRHH-BxxQucm1.js → stateDiagram-v2-MP3YSRHH-C53XXdYH.js} +2 -2
  72. package/dist/style.css +1 -1
  73. package/dist/{swimlanes-42K2YHIH-Do6L-cYg.js → swimlanes-42K2YHIH-D2o1gOtw.js} +1 -1
  74. package/dist/{swimlanesDiagram-VR7AAH4N-DUzPvSVU.js → swimlanesDiagram-VR7AAH4N-BHFzN1Wk.js} +2 -2
  75. package/dist/{swiper-component-DKntyn8p.js → swiper-component-DfhRvAFi.js} +2 -2
  76. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  77. package/dist/{timeline-definition-24CTP7MA-D3c46WM5.js → timeline-definition-24CTP7MA-rv7QUa46.js} +1 -1
  78. package/dist/{toDate-vIXljnsr.js → toDate-CjPuEPou.js} +21 -20
  79. package/dist/{toast-B9UMEi8u.js → toast-CFWpihJU.js} +4 -4
  80. package/dist/{tooltip-BO1REbqs.js → tooltip-CKO1pHJo.js} +2 -2
  81. package/dist/{use-restore-focus-BEM7sFWl.js → use-restore-focus-DBCITLeF.js} +1 -1
  82. package/dist/{useAsyncData-Deh5kszT.js → useAsyncData-ChgNtdmE.js} +15 -14
  83. package/dist/{useDateFormatter-D8XruNGG.js → useDateFormatter-c_yJtkAe.js} +2 -2
  84. package/dist/{useDeepCompareMemoize-DXwzRINI.js → useDeepCompareMemoize-Bet7kSsI.js} +1 -1
  85. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-BkdeVdXC.js} +1 -1
  86. package/dist/{useLifecycle-j7D9uD1o.js → useLifecycle-VVmz_24o.js} +3 -3
  87. package/dist/{useTheme-CRnjkku0.js → useTheme-DympCsQg.js} +5 -5
  88. package/dist/{vega-component-DTG6zxaY.js → vega-component-DnfQeoyt.js} +147 -147
  89. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  90. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  91. package/dist/{vennDiagram-4TSXK5OY-BSZD8JcZ.js → vennDiagram-4TSXK5OY-D36Zk7t-.js} +1 -1
  92. package/dist/{wardleyDiagram-VM6X3IG4-48cUWkfA.js → wardleyDiagram-VM6X3IG4-BLBolvyQ.js} +1 -1
  93. package/dist/{xychartDiagram-S5SC5T6Z-CswYgYeu.js → xychartDiagram-S5SC5T6Z-CfH57l0v.js} +2 -2
  94. package/package.json +4 -4
  95. package/src/__tests__/fixtures/{pair-preview.ts → pair-config.ts} +3 -2
  96. package/src/__tests__/host-imports.test.ts +1 -0
  97. package/src/__tests__/mount.test.ts +8 -8
  98. package/src/components/app-config/ai-config.tsx +5 -1
  99. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  100. package/src/components/chat/chat-panel.tsx +3 -7
  101. package/src/components/chat/chat-utils.ts +4 -8
  102. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  103. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  104. package/src/components/data-table/__tests__/export-actions.test.tsx +417 -6
  105. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  106. package/src/components/data-table/columns.tsx +2 -1
  107. package/src/components/data-table/context-menu.tsx +36 -20
  108. package/src/components/data-table/date-popover.tsx +6 -4
  109. package/src/components/data-table/export-actions.tsx +263 -161
  110. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
  111. package/src/components/data-table/schemas.ts +14 -36
  112. package/src/components/editor/Output.tsx +5 -1
  113. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  114. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +80 -252
  115. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +186 -34
  116. package/src/components/editor/actions/pair-with-agent-commands.ts +42 -51
  117. package/src/components/editor/actions/pair-with-agent-modal.tsx +96 -36
  118. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  119. package/src/components/editor/cell/CreateCellButton.tsx +8 -10
  120. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  121. package/src/components/editor/cell/code/cell-editor.tsx +1 -1
  122. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  123. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +277 -78
  124. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +196 -41
  125. package/src/components/editor/connections/components.tsx +1 -1
  126. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  127. package/src/components/editor/controls/command-palette.tsx +22 -10
  128. package/src/components/editor/dynamic-favicon.tsx +21 -40
  129. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +139 -36
  130. package/src/components/editor/errors/send-error-report-button.tsx +10 -7
  131. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  132. package/src/components/editor/output/MarimoTracebackOutput.tsx +28 -22
  133. package/src/components/editor/output/console/ConsoleOutput.tsx +8 -18
  134. package/src/components/pages/home-page.tsx +4 -4
  135. package/src/components/slides/slide-cell-view.tsx +1 -1
  136. package/src/components/tracing/tracing.tsx +2 -2
  137. package/src/core/attachments/__tests__/toast.test.tsx +58 -0
  138. package/src/core/attachments/state.ts +5 -8
  139. package/src/core/attachments/toast.ts +15 -0
  140. package/src/core/cells/__tests__/error-report.test.ts +53 -3
  141. package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
  142. package/src/core/cells/__tests__/session.test.ts +18 -3
  143. package/src/core/cells/cells.ts +2 -1
  144. package/src/core/cells/error-report.ts +14 -6
  145. package/src/core/cells/pending-delete-service.ts +2 -6
  146. package/src/core/cells/session.ts +19 -1
  147. package/src/core/config/pair.ts +5 -3
  148. package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
  149. package/src/core/datasets/data-source-discovery.ts +4 -6
  150. package/src/core/edit-app.tsx +2 -2
  151. package/src/core/host/AGENTS.md +11 -2
  152. package/src/core/host/__tests__/attachments.test.ts +56 -0
  153. package/src/core/host/__tests__/document.test.ts +126 -0
  154. package/src/core/host/__tests__/events.test.ts +49 -0
  155. package/src/core/host/__tests__/fixtures.ts +41 -0
  156. package/src/core/host/__tests__/notebook-client.test.ts +496 -0
  157. package/src/core/host/connection.ts +81 -0
  158. package/src/core/host/events.ts +68 -0
  159. package/src/core/host/notebook-client.ts +316 -0
  160. package/src/core/host/resources/attachments.ts +19 -0
  161. package/src/core/host/resources/document.ts +101 -0
  162. package/src/core/hotkeys/actions.ts +2 -4
  163. package/src/core/islands/__tests__/bootstrap.test.ts +0 -26
  164. package/src/core/islands/bootstrap.ts +0 -1
  165. package/src/core/network/connection.ts +4 -2
  166. package/src/core/run-app.tsx +2 -2
  167. package/src/core/runtime/__tests__/runtime.test.ts +5 -12
  168. package/src/core/runtime/runtime.ts +5 -5
  169. package/src/core/static/files.ts +2 -0
  170. package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
  171. package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
  172. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +149 -0
  173. package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +168 -253
  174. package/src/core/websocket/connection-state.ts +70 -0
  175. package/src/core/websocket/state.ts +7 -0
  176. package/src/core/websocket/transports/__tests__/sse.test.ts +18 -4
  177. package/src/core/websocket/transports/create.ts +31 -0
  178. package/src/core/websocket/transports/sse.ts +14 -2
  179. package/src/core/websocket/transports/transport.ts +12 -23
  180. package/src/core/websocket/types.ts +9 -39
  181. package/src/core/websocket/useNotebookClient.ts +78 -0
  182. package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +53 -233
  183. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  184. package/src/hooks/useAsyncData.ts +3 -3
  185. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  186. package/src/hooks/useElapsedTime.ts +3 -3
  187. package/src/hooks/useInputHistory.ts +4 -7
  188. package/src/hooks/useResizeObserver.ts +4 -7
  189. package/src/mount.tsx +3 -3
  190. package/src/plugins/core/registerReactComponent.tsx +1 -1
  191. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  192. package/src/plugins/impl/FormPlugin.tsx +1 -1
  193. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +84 -0
  194. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +2 -0
  195. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  196. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  197. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  198. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  199. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  200. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  201. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  202. package/src/plugins/impl/panel/PanelPlugin.tsx +15 -16
  203. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  204. package/src/plugins/impl/panel/utils.ts +17 -0
  205. package/src/plugins/impl/vega/make-selectable.ts +3 -6
  206. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  207. package/src/stories/editor.stories.tsx +24 -17
  208. package/src/utils/__tests__/arrays.test.ts +35 -0
  209. package/src/utils/__tests__/numbers.test.ts +48 -1
  210. package/src/utils/__tests__/objects.test.ts +21 -0
  211. package/src/utils/arrays.ts +10 -0
  212. package/src/utils/numbers.ts +28 -17
  213. package/src/utils/objects.ts +3 -7
  214. package/src/utils/once.ts +19 -19
  215. package/dist/any-language-editor-DZ_YTVus.js +0 -76
  216. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  217. package/dist/precisionRound-DMIVQrt2.js +0 -97
  218. package/src/core/host/__tests__/protocol.test.ts +0 -214
  219. package/src/core/host/protocol.ts +0 -1943
  220. package/src/core/websocket/useWebSocket.tsx +0 -88
@@ -1,32 +1,32 @@
1
1
  import { a as e, i as t, n, r, t as i } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { g as a, h as o, o as s, p as c, t as l } from "./button-CvjkwdSk.js";
2
+ import { g as a, h as o, o as s, p as c, t as l } from "./button-BxB3RDjN.js";
3
3
  import { t as u } from "./react-sHtZdjeP.js";
4
4
  import { t as d } from "./compiler-runtime-CldRdSsv.js";
5
- import { i as f } from "./copy-icon-Ft7t9bqz.js";
6
- import { d as p, h as m, i as h, t as g } from "./tooltip-BO1REbqs.js";
7
- import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-j7D9uD1o.js";
8
- import { t as w } from "./check-EDwSwP89.js";
9
- import { C as T, S as ee, a as te, b as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "./select-BButFi-d.js";
10
- import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-vIXljnsr.js";
5
+ import { i as f } from "./copy-icon-CPoxUG7G.js";
6
+ import { d as p, h as m, i as h, t as g } from "./tooltip-CKO1pHJo.js";
7
+ import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-VVmz_24o.js";
8
+ import { t as w } from "./check-P35dc2dH.js";
9
+ import { C as T, S as ee, a as te, b as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "./select-B0LRDH0g.js";
10
+ import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-CjPuEPou.js";
11
11
  import { t as ve } from "./react-dom-DUmH0GXv.js";
12
12
  import { t as ye } from "./jsx-runtime-3BD1kT0s.js";
13
- import { C as be, Ct as xe, D as Se, F as D, L as O, M as Ce, S as we, St as Te, bt as Ee, j as De, wt as k, yt as Oe } from "./use-restore-focus-BEM7sFWl.js";
14
- import { c as ke, n as Ae } from "./toast-B9UMEi8u.js";
13
+ import { C as be, Ct as xe, D as Se, F as D, L as O, M as Ce, S as we, St as Te, bt as Ee, j as De, wt as k, yt as Oe } from "./use-restore-focus-DBCITLeF.js";
14
+ import { c as ke, n as Ae } from "./toast-CFWpihJU.js";
15
15
  import { t as je } from "./debounce-C3jyATpc.js";
16
- import { C as Me, E as A, S as Ne, _ as j, b as Pe, c as Fe, g as Ie, k as Le, l as Re, t as ze, x as Be, y as Ve } from "./useTheme-CRnjkku0.js";
16
+ import { C as Me, E as A, S as Ne, _ as j, b as Pe, c as Fe, g as Ie, k as Le, l as Re, t as ze, x as Be, y as Ve } from "./useTheme-DympCsQg.js";
17
17
  import { $ as He, At as Ue, B as We, Bt as Ge, Ct as Ke, E as qe, Ft as Je, H as Ye, I as Xe, L as Ze, Mt as Qe, Pt as $e, Rt as et, S as tt, St as nt, Tt as rt, U as it, Vt as at, X as ot, Z as st, b as ct, et as lt, f as ut, ht as dt, jt as ft, kt as pt, l as M, mt, tt as ht, u as gt, ut as _t, vt, w as yt, z as bt, zt as xt } from "./dist-DoE4XJBC.js";
18
18
  import { i as St, o as Ct, r as wt, s as Tt, t as Et, u as Dt } from "./dist-CN8zI-XC.js";
19
19
  import { t as N } from "./invariant-DLmrl-hA.js";
20
- import { a as Ot, i as kt, n as At, r as jt, s as Mt, u as Nt } from "./arrays-CN1djC4k.js";
21
- import { t as Pt } from "./objects-CzUgoMIF.js";
22
- import { n as Ft } from "./once-BtE-wKRL.js";
23
- import { t as It } from "./capabilities-CQ5IjhzL.js";
20
+ import { a as Ot, i as kt, n as At, r as jt, s as Mt, u as Nt } from "./arrays-R6JsImiT.js";
21
+ import { t as Pt } from "./objects-DCmMvZtn.js";
22
+ import { n as Ft } from "./once-eG8Vmvjd.js";
23
+ import { t as It } from "./capabilities-BgR0osfN.js";
24
24
  import { d as Lt, n as Rt, r as zt, u as Bt } from "./dist-CkTTIdBe.js";
25
25
  import { a as Vt, c as Ht, d as Ut, f as Wt, i as Gt, l as Kt, n as qt, o as Jt, p as Yt, r as P, s as Xt, t as Zt } from "./dist-diIx5qJW.js";
26
26
  import { n as Qt, r as $t } from "./dist-CrSP_H1M.js";
27
27
  import { a as en, i as tn, n as nn, o as rn, r as an } from "./dist-BorMD-uX.js";
28
28
  import { n as on } from "./stex-Btf3omL8.js";
29
- import { t as sn } from "./useAsyncData-Deh5kszT.js";
29
+ import { t as sn } from "./useAsyncData-ChgNtdmE.js";
30
30
  import { t as cn } from "./purify.es-DMv5zIkJ.js";
31
31
  var ln = m("activity", [["path", {
32
32
  d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
@@ -762,7 +762,7 @@ function or(e) {
762
762
  }
763
763
  Wn(or, "getState");
764
764
  //#endregion
765
- //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/utils.mjs
765
+ //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/utils.mjs
766
766
  var sr = /* @__PURE__ */ Symbol("");
767
767
  function cr(e, t) {
768
768
  return A(e, function(e, n, r) {
@@ -18123,7 +18123,7 @@ function wu(e) {
18123
18123
  }
18124
18124
  var Tu = new Cu(), Eu = et.define();
18125
18125
  async function Du(e, t) {
18126
- let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Ou(Tu.getInternalDialect(t)), i = e.state.field(Py), o = qe(e.state);
18126
+ let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Ou(Tu.getInternalDialect(t)), i = e.state.field(Ny), o = qe(e.state);
18127
18127
  if (i.type !== "sql") {
18128
18128
  a.error("Language adapter is not SQL");
18129
18129
  return;
@@ -21943,7 +21943,7 @@ function Sp(e) {
21943
21943
  //#endregion
21944
21944
  //#region src/core/codemirror/lsp/utils.ts
21945
21945
  function Cp(e) {
21946
- return bp.is(e) ? j.get(yx).inOrderIds.includes(bp.parse(e)) : !1;
21946
+ return bp.is(e) ? j.get(vx).inOrderIds.includes(bp.parse(e)) : !1;
21947
21947
  }
21948
21948
  function wp() {
21949
21949
  return j.get(ii)?.rootUri ?? "file:///";
@@ -22135,7 +22135,7 @@ var Fp = A((e) => {
22135
22135
  let t = e($);
22136
22136
  return Pt.fromEntries(t.cellIds.inOrderIds.map((e) => {
22137
22137
  let n = t.cellHandles[e]?.current?.editorViewOrNull;
22138
- return [e, n ? Ry(n) : t.cellData[e]?.code ?? ""];
22138
+ return [e, n ? Ly(n) : t.cellData[e]?.code ?? ""];
22139
22139
  }));
22140
22140
  }), Ip = A((e) => e($).cellIds.inOrderIds), Lp = A((e) => zp(e(Ip), e(Cd))), Rp = A((e) => ({
22141
22141
  cellIds: e(Lp),
@@ -22406,7 +22406,7 @@ var cm = class {
22406
22406
  return Bp(e, t);
22407
22407
  }
22408
22408
  }, lm = () => {
22409
- let e = Ex().cellHandles;
22409
+ let e = Tx().cellHandles;
22410
22410
  return Pt.mapValues(e, (e) => e.current?.editorViewOrNull);
22411
22411
  };
22412
22412
  function um(e) {
@@ -22523,7 +22523,7 @@ var vm = class {
22523
22523
  cellIds: e,
22524
22524
  codes: Pt.fromEntries(e.map((e) => {
22525
22525
  let r = n[e];
22526
- return [e, r ? Ry(r) : t[e] ?? ""];
22526
+ return [e, r ? Ly(r) : t[e] ?? ""];
22527
22527
  }))
22528
22528
  };
22529
22529
  }
@@ -22665,7 +22665,7 @@ var vm = class {
22665
22665
  a.warn("[lsp] No editor view for cell during rename", e), m.push(e);
22666
22666
  continue;
22667
22667
  }
22668
- Ry(t) !== r && (zy(t, r), h++);
22668
+ Ly(t) !== r && (Ry(t, r), h++);
22669
22669
  }
22670
22670
  return m.length > 0 && a.error(`[lsp] Rename partially failed: could not update ${m.length} cell(s)`, m), a.debug(`[lsp] Rename completed: updated ${h} cell(s)`), {
22671
22671
  ...o,
@@ -22936,21 +22936,19 @@ function Tm() {
22936
22936
  function Em() {
22937
22937
  return me() ? Tm() : Promise.resolve();
22938
22938
  }
22939
- A((e) => e(wm).state === Cm.CONNECTING);
22940
- var Dm = A((e) => e(wm).state === Cm.OPEN);
22941
- A((e) => {
22939
+ A((e) => e(wm).state === Cm.CONNECTING), A((e) => e(wm).state === Cm.OPEN), A((e) => {
22942
22940
  let t = e(wm);
22943
22941
  return t.state === Cm.OPEN || t.state === Cm.NOT_STARTED;
22944
22942
  }), A((e) => e(wm).state === Cm.CLOSED), A((e) => e(wm).state === Cm.NOT_STARTED);
22945
22943
  //#endregion
22946
22944
  //#region src/core/codemirror/lsp/log-messages.ts
22947
- var Om = /* @__PURE__ */ new Set([1, 2]);
22948
- function km(e, t) {
22945
+ var Dm = /* @__PURE__ */ new Set([1, 2]);
22946
+ function Om(e, t) {
22949
22947
  if (!("method" in t) || t.method !== "window/logMessage") return;
22950
22948
  let n = t.params;
22951
- !Np(n) || typeof n.message != "string" || vx({ logs: [{
22949
+ !Np(n) || typeof n.message != "string" || _x({ logs: [{
22952
22950
  timestamp: Date.now() / 1e3,
22953
- level: Om.has(n.type) ? "stderr" : "stdout",
22951
+ level: Dm.has(n.type) ? "stderr" : "stdout",
22954
22952
  message: n.message,
22955
22953
  source: {
22956
22954
  type: "lsp",
@@ -22960,7 +22958,7 @@ function km(e, t) {
22960
22958
  }
22961
22959
  //#endregion
22962
22960
  //#region src/core/codemirror/lsp/transports.ts
22963
- function Am(e, t) {
22961
+ function km(e, t) {
22964
22962
  let n = he(), r = new Sm({
22965
22963
  getWsUrl: () => n.getLSPURL(e).toString(),
22966
22964
  waitForConnection: async () => {
@@ -22968,27 +22966,27 @@ function Am(e, t) {
22968
22966
  },
22969
22967
  onReconnect: t
22970
22968
  });
22971
- return r.onMessage((t) => km(e, t)), r;
22969
+ return r.onMessage((t) => Om(e, t)), r;
22972
22970
  }
22973
22971
  et.define(), new pt();
22974
- function jm(e) {
22972
+ function Am(e) {
22975
22973
  return e.facet(ft.readOnly);
22976
22974
  }
22977
22975
  //#endregion
22978
22976
  //#region src/core/codemirror/placeholder/extensions.ts
22979
- function Mm(e) {
22977
+ function jm(e) {
22980
22978
  return [vt(e), dt.of([{
22981
22979
  key: "ArrowRight",
22982
22980
  preventDefault: !0,
22983
- run: (t) => Nm(t, e)
22981
+ run: (t) => Mm(t, e)
22984
22982
  }, {
22985
22983
  key: "Tab",
22986
22984
  preventDefault: !0,
22987
- run: (t) => Nm(t, e)
22985
+ run: (t) => Mm(t, e)
22988
22986
  }])];
22989
22987
  }
22990
- function Nm(e, t) {
22991
- if (jm(e.state)) return !1;
22988
+ function Mm(e, t) {
22989
+ if (Am(e.state)) return !1;
22992
22990
  let n = e.state.doc.length;
22993
22991
  return n === 0 && (e.dispatch({
22994
22992
  changes: {
@@ -23002,7 +23000,7 @@ function Nm(e, t) {
23002
23000
  }
23003
23001
  }), !0);
23004
23002
  }
23005
- function Pm(e) {
23003
+ function Nm(e) {
23006
23004
  let { beforeText: t, linkText: n, afterText: r, onClick: i } = e;
23007
23005
  return [vt((e) => {
23008
23006
  let a = document.createElement("span");
@@ -23025,9 +23023,9 @@ function Pm(e) {
23025
23023
  }
23026
23024
  //#endregion
23027
23025
  //#region src/core/codemirror/language/languages/python.ts
23028
- var Fm = Ft((e) => {
23026
+ var Pm = Ft((e) => {
23029
23027
  let t, n = {
23030
- transport: Am("pylsp", async () => {
23028
+ transport: km("pylsp", async () => {
23031
23029
  await t?.();
23032
23030
  }),
23033
23031
  rootUri: wp(),
@@ -23072,9 +23070,9 @@ var Fm = Ft((e) => {
23072
23070
  }
23073
23071
  } } }, c = new vm(new oc({ ...n }), s);
23074
23072
  return t = () => c.resyncAllDocuments(), c;
23075
- }), Im = Ft((e) => {
23073
+ }), Fm = Ft((e) => {
23076
23074
  let t, n = new vm(new oc({
23077
- transport: Am("ty", async () => {
23075
+ transport: km("ty", async () => {
23078
23076
  await t?.();
23079
23077
  }),
23080
23078
  rootUri: wp(),
@@ -23082,9 +23080,9 @@ var Fm = Ft((e) => {
23082
23080
  getWorkspaceConfiguration: (e) => [{ disableLanguageServices: !0 }]
23083
23081
  }), {});
23084
23082
  return t = () => n.resyncAllDocuments(), n;
23085
- }), Lm = Ft((e) => {
23083
+ }), Im = Ft((e) => {
23086
23084
  let t, n = new vm(new oc({
23087
- transport: Am("pyrefly", async () => {
23085
+ transport: km("pyrefly", async () => {
23088
23086
  await t?.();
23089
23087
  }),
23090
23088
  rootUri: wp(),
@@ -23092,16 +23090,16 @@ var Fm = Ft((e) => {
23092
23090
  initializationOptions: { pyrefly: { displayTypeErrors: e.diagnostics?.enabled ?? !1 ? "force-on" : "force-off" } }
23093
23091
  }), {});
23094
23092
  return t = () => n.resyncAllDocuments(), n;
23095
- }), Rm = Ft((e) => {
23093
+ }), Lm = Ft((e) => {
23096
23094
  let t, n = new vm(new oc({
23097
- transport: Am("basedpyright", async () => {
23095
+ transport: km("basedpyright", async () => {
23098
23096
  await t?.();
23099
23097
  }),
23100
23098
  rootUri: wp(),
23101
23099
  workspaceFolders: Tp()
23102
23100
  }), {});
23103
23101
  return t = () => n.resyncAllDocuments(), n;
23104
- }), zm = class {
23102
+ }), Rm = class {
23105
23103
  parser = new ld();
23106
23104
  type = "python";
23107
23105
  defaultCode = this.parser.defaultCode;
@@ -23129,7 +23127,7 @@ var Fm = Ft((e) => {
23129
23127
  activateOnTyping: t.activate_on_typing,
23130
23128
  closeOnBlur: !1
23131
23129
  }, o = { hideOnChange: !0 }, s = [];
23132
- i?.pylsp?.enabled && Vd("pylsp") && s.push(Fm(i)), i?.ty?.enabled && Vd("ty") && s.push(Im(i)), i?.pyrefly?.enabled && Vd("pyrefly") && s.push(Lm(i)), i?.basedpyright?.enabled && Vd("basedpyright") && s.push(Rm(i));
23130
+ i?.pylsp?.enabled && Vd("pylsp") && s.push(Pm(i)), i?.ty?.enabled && Vd("ty") && s.push(Fm(i)), i?.pyrefly?.enabled && Vd("pyrefly") && s.push(Im(i)), i?.basedpyright?.enabled && Vd("basedpyright") && s.push(Lm(i));
23133
23131
  let c = t.signature_hint_on_typing, l = c ? /(\w+|\w+\.|\/)$/ : /(\w+|\w+\.|\(|\/|,)$/;
23134
23132
  if (s.length > 0) {
23135
23133
  let t = s.length === 1 ? s[0] : new kp(s), u = (e) => {
@@ -23164,13 +23162,13 @@ var Fm = Ft((e) => {
23164
23162
  override: [Af]
23165
23163
  }), kf];
23166
23164
  })(),
23167
- Hm(),
23168
- Bm(r)
23165
+ Vm(),
23166
+ zm(r)
23169
23167
  ];
23170
23168
  }
23171
23169
  };
23172
- function Bm(e) {
23173
- return e === "marimo-import" ? $e.highest(Mm("import marimo as mo")) : e === "ai" ? Pm({
23170
+ function zm(e) {
23171
+ return e === "marimo-import" ? $e.highest(jm("import marimo as mo")) : e === "ai" ? Nm({
23174
23172
  beforeText: "Start coding or ",
23175
23173
  linkText: "generate",
23176
23174
  afterText: " with AI.",
@@ -23179,44 +23177,44 @@ function Bm(e) {
23179
23177
  }
23180
23178
  }) : [];
23181
23179
  }
23182
- var Vm = en.configure({ props: [yt.add({
23180
+ var Bm = en.configure({ props: [yt.add({
23183
23181
  ParenthesizedExpression: tt,
23184
23182
  ArgList: tt
23185
23183
  })] });
23186
- function Hm() {
23187
- return new gt(Vm, [Vm.data.of({ autocomplete: an }), Vm.data.of({ autocomplete: nn })]);
23184
+ function Vm() {
23185
+ return new gt(Bm, [Bm.data.of({ autocomplete: an }), Bm.data.of({ autocomplete: nn })]);
23188
23186
  }
23189
23187
  //#endregion
23190
23188
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/namespace-utils.js
23191
- function Um(e) {
23192
- return typeof e == "object" && !Array.isArray(e) && !Wm(e);
23189
+ function Hm(e) {
23190
+ return typeof e == "object" && !Array.isArray(e) && !Um(e);
23193
23191
  }
23194
- function Wm(e) {
23192
+ function Um(e) {
23195
23193
  if (typeof e != "object" || Array.isArray(e) || !("self" in e) || !("children" in e)) return !1;
23196
23194
  let t = e.self;
23197
23195
  return typeof t == "object" && !!t && !Array.isArray(t) && typeof t.label == "string";
23198
23196
  }
23199
- function Gm(e) {
23197
+ function Wm(e) {
23200
23198
  return Array.isArray(e);
23201
23199
  }
23202
- function Km(e, t, n, r) {
23200
+ function Gm(e, t, n, r) {
23203
23201
  let i = e.length;
23204
- if (t === "string" || t === "completion" && r && Gm(r)) return "column";
23202
+ if (t === "string" || t === "completion" && r && Wm(r)) return "column";
23205
23203
  if (t === "namespace" && n) {
23206
- if (Gm(n)) return "table";
23207
- if (Um(n)) return Object.values(n).some((e) => Gm(e) || Wm(e) && Gm(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
23204
+ if (Wm(n)) return "table";
23205
+ if (Hm(n)) return Object.values(n).some((e) => Wm(e) || Um(e) && Wm(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
23208
23206
  }
23209
- if (t === "completion" && n) return Gm(n) ? "table" : (Um(n) && Object.values(n).some((e) => Gm(e) || Wm(e) && Gm(e.children)), i <= 1 ? "database" : "schema");
23207
+ if (t === "completion" && n) return Wm(n) ? "table" : (Hm(n) && Object.values(n).some((e) => Wm(e) || Um(e) && Wm(e.children)), i <= 1 ? "database" : "schema");
23210
23208
  switch (i) {
23211
23209
  case 0: return "database";
23212
23210
  case 1: return "schema";
23213
23211
  default: return "namespace";
23214
23212
  }
23215
23213
  }
23216
- function qm(e, t, n = {}) {
23214
+ function Km(e, t, n = {}) {
23217
23215
  let { maxDepth: r = 10 } = n;
23218
- if ((typeof t == "string" ? t === "" : t.length === 0) && Wm(e)) {
23219
- let t = Km([], "completion", e.children);
23216
+ if ((typeof t == "string" ? t === "" : t.length === 0) && Um(e)) {
23217
+ let t = Gm([], "completion", e.children);
23220
23218
  return {
23221
23219
  completion: e.self,
23222
23220
  path: [],
@@ -23226,12 +23224,12 @@ function qm(e, t, n = {}) {
23226
23224
  };
23227
23225
  }
23228
23226
  let i = (typeof t == "string" ? t.split(".") : t).filter((e) => e.length > 0);
23229
- return i.length === 0 || i.length > r ? null : Jm(e, i, [], n);
23227
+ return i.length === 0 || i.length > r ? null : qm(e, i, [], n);
23230
23228
  }
23231
- function Jm(e, t, n, r, i) {
23229
+ function qm(e, t, n, r, i) {
23232
23230
  if (t.length === 0) {
23233
- if (Wm(e)) {
23234
- let t = Km(n, "completion", e.children, i);
23231
+ if (Um(e)) {
23232
+ let t = Gm(n, "completion", e.children, i);
23235
23233
  return {
23236
23234
  completion: e.self,
23237
23235
  path: n,
@@ -23243,23 +23241,23 @@ function Jm(e, t, n, r, i) {
23243
23241
  return {
23244
23242
  path: n,
23245
23243
  type: "namespace",
23246
- semanticType: Km(n, "namespace", e, i),
23244
+ semanticType: Gm(n, "namespace", e, i),
23247
23245
  namespace: e
23248
23246
  };
23249
23247
  }
23250
23248
  let [a, ...o] = t, { caseSensitive: s = !1 } = r;
23251
23249
  if (!a) return null;
23252
- if (Um(e)) {
23250
+ if (Hm(e)) {
23253
23251
  let t = s ? Object.keys(e).find((e) => e === a) : Object.keys(e).find((e) => e.toLowerCase() === a.toLowerCase());
23254
23252
  if (t) {
23255
23253
  let i = e[t];
23256
- if (i) return Jm(i, o, [...n, t], r, e);
23254
+ if (i) return qm(i, o, [...n, t], r, e);
23257
23255
  }
23258
- } else if (Wm(e)) return Jm(e.children, t, n, r, e);
23259
- else if (Gm(e)) {
23256
+ } else if (Um(e)) return qm(e.children, t, n, r, e);
23257
+ else if (Wm(e)) {
23260
23258
  for (let t of e) if (typeof t == "string") {
23261
23259
  if ((s ? t === a : t.toLowerCase() === a.toLowerCase()) && o.length === 0) {
23262
- let r = Km([...n, t], "string", void 0, e);
23260
+ let r = Gm([...n, t], "string", void 0, e);
23263
23261
  return {
23264
23262
  value: t,
23265
23263
  path: [...n, t],
@@ -23268,7 +23266,7 @@ function Jm(e, t, n, r, i) {
23268
23266
  };
23269
23267
  }
23270
23268
  } else if ((s ? t.label === a : t.label.toLowerCase() === a.toLowerCase()) && o.length === 0) {
23271
- let r = Km([...n, t.label], "completion", void 0, e);
23269
+ let r = Gm([...n, t.label], "completion", void 0, e);
23272
23270
  return {
23273
23271
  completion: t,
23274
23272
  path: [...n, t.label],
@@ -23279,20 +23277,20 @@ function Jm(e, t, n, r, i) {
23279
23277
  }
23280
23278
  return null;
23281
23279
  }
23282
- function Ym(e, t, n = {}) {
23280
+ function Jm(e, t, n = {}) {
23283
23281
  let r = [];
23284
23282
  if (t.includes(".")) {
23285
- let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = qm(e, i, n);
23286
- if (o?.namespace) return Xm(o.namespace, a, o.path, n);
23287
- } else return Xm(e, t, [], n);
23283
+ let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = Km(e, i, n);
23284
+ if (o?.namespace) return Ym(o.namespace, a, o.path, n);
23285
+ } else return Ym(e, t, [], n);
23288
23286
  return r;
23289
23287
  }
23290
- function Xm(e, t, n, r) {
23288
+ function Ym(e, t, n, r) {
23291
23289
  let i = [], { caseSensitive: a = !1, allowPartialMatch: o = !0 } = r;
23292
- if (Um(e)) {
23290
+ if (Hm(e)) {
23293
23291
  for (let [r, s] of Object.entries(e)) if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
23294
- if (Wm(s)) {
23295
- let t = Km([...n, r], "completion", s.children, e);
23292
+ if (Um(s)) {
23293
+ let t = Gm([...n, r], "completion", s.children, e);
23296
23294
  i.push({
23297
23295
  completion: s.self,
23298
23296
  path: [...n, r],
@@ -23301,7 +23299,7 @@ function Xm(e, t, n, r) {
23301
23299
  namespace: s.children
23302
23300
  });
23303
23301
  } else {
23304
- let t = Km([...n, r], "namespace", s, e);
23302
+ let t = Gm([...n, r], "namespace", s, e);
23305
23303
  i.push({
23306
23304
  path: [...n, r],
23307
23305
  type: "namespace",
@@ -23310,9 +23308,9 @@ function Xm(e, t, n, r) {
23310
23308
  });
23311
23309
  }
23312
23310
  }
23313
- } else if (Wm(e)) {
23311
+ } else if (Um(e)) {
23314
23312
  if (o ? a ? e.self.label.startsWith(t) : e.self.label.toLowerCase().startsWith(t.toLowerCase()) : a ? e.self.label === t : e.self.label.toLowerCase() === t.toLowerCase()) {
23315
- let t = Km([...n, e.self.label], "completion", e.children);
23313
+ let t = Gm([...n, e.self.label], "completion", e.children);
23316
23314
  i.push({
23317
23315
  completion: e.self,
23318
23316
  path: [...n, e.self.label],
@@ -23321,11 +23319,11 @@ function Xm(e, t, n, r) {
23321
23319
  namespace: e.children
23322
23320
  });
23323
23321
  }
23324
- i.push(...Xm(e.children, t, n, r));
23325
- } else if (Gm(e)) {
23322
+ i.push(...Ym(e.children, t, n, r));
23323
+ } else if (Wm(e)) {
23326
23324
  for (let r of e) if (typeof r == "string") {
23327
23325
  if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
23328
- let t = Km([...n, r], "string", void 0, e);
23326
+ let t = Gm([...n, r], "string", void 0, e);
23329
23327
  i.push({
23330
23328
  value: r,
23331
23329
  path: [...n, r],
@@ -23334,7 +23332,7 @@ function Xm(e, t, n, r) {
23334
23332
  });
23335
23333
  }
23336
23334
  } else if (o ? a ? r.label.startsWith(t) : r.label.toLowerCase().startsWith(t.toLowerCase()) : a ? r.label === t : r.label.toLowerCase() === t.toLowerCase()) {
23337
- let t = Km([...n, r.label], "completion", void 0, e);
23335
+ let t = Gm([...n, r.label], "completion", void 0, e);
23338
23336
  i.push({
23339
23337
  completion: r,
23340
23338
  path: [...n, r.label],
@@ -23345,49 +23343,49 @@ function Xm(e, t, n, r) {
23345
23343
  }
23346
23344
  return i;
23347
23345
  }
23348
- function Zm(e, t, n = {}) {
23346
+ function Xm(e, t, n = {}) {
23349
23347
  let r = [], { maxDepth: i = 10 } = n;
23350
- Qm(e, [], r, i);
23348
+ Zm(e, [], r, i);
23351
23349
  let { caseSensitive: a = !1 } = n;
23352
23350
  return r.filter((e) => e.path.some((e) => a ? e === t : e.toLowerCase() === t.toLowerCase())).sort((e, n) => {
23353
23351
  let r = a ? e.path[e.path.length - 1] === t : e.path[e.path.length - 1]?.toLowerCase() === t.toLowerCase(), i = a ? n.path[n.path.length - 1] === t : n.path[n.path.length - 1]?.toLowerCase() === t.toLowerCase();
23354
23352
  return r && !i ? -1 : !r && i ? 1 : e.path.length - n.path.length;
23355
23353
  });
23356
23354
  }
23357
- function Qm(e, t, n, r) {
23355
+ function Zm(e, t, n, r) {
23358
23356
  if (!(t.length >= r)) {
23359
- if (Um(e)) for (let [i, a] of Object.entries(e)) {
23357
+ if (Hm(e)) for (let [i, a] of Object.entries(e)) {
23360
23358
  let o = [...t, i];
23361
- if (Wm(a)) {
23362
- let t = Km(o, "completion", a.children, e);
23359
+ if (Um(a)) {
23360
+ let t = Gm(o, "completion", a.children, e);
23363
23361
  n.push({
23364
23362
  completion: a.self,
23365
23363
  path: o,
23366
23364
  type: "completion",
23367
23365
  semanticType: t,
23368
23366
  namespace: a.children
23369
- }), Qm(a.children, o, n, r);
23367
+ }), Zm(a.children, o, n, r);
23370
23368
  } else {
23371
- let t = Km(o, "namespace", a, e);
23369
+ let t = Gm(o, "namespace", a, e);
23372
23370
  n.push({
23373
23371
  path: o,
23374
23372
  type: "namespace",
23375
23373
  semanticType: t,
23376
23374
  namespace: a
23377
- }), Qm(a, o, n, r);
23375
+ }), Zm(a, o, n, r);
23378
23376
  }
23379
23377
  }
23380
- else if (Wm(e)) {
23381
- let i = Km(t, "completion", e.children);
23378
+ else if (Um(e)) {
23379
+ let i = Gm(t, "completion", e.children);
23382
23380
  n.push({
23383
23381
  completion: e.self,
23384
23382
  path: t,
23385
23383
  type: "completion",
23386
23384
  semanticType: i,
23387
23385
  namespace: e.children
23388
- }), Qm(e.children, t, n, r);
23389
- } else if (Gm(e)) for (let r of e) if (typeof r == "string") {
23390
- let i = Km([...t, r], "string", void 0, e);
23386
+ }), Zm(e.children, t, n, r);
23387
+ } else if (Wm(e)) for (let r of e) if (typeof r == "string") {
23388
+ let i = Gm([...t, r], "string", void 0, e);
23391
23389
  n.push({
23392
23390
  value: r,
23393
23391
  path: [...t, r],
@@ -23395,7 +23393,7 @@ function Qm(e, t, n, r) {
23395
23393
  semanticType: i
23396
23394
  });
23397
23395
  } else {
23398
- let i = Km([...t, r.label], "completion", void 0, e);
23396
+ let i = Gm([...t, r.label], "completion", void 0, e);
23399
23397
  n.push({
23400
23398
  completion: r,
23401
23399
  path: [...t, r.label],
@@ -23405,48 +23403,48 @@ function Qm(e, t, n, r) {
23405
23403
  }
23406
23404
  }
23407
23405
  }
23408
- function $m(e, t, n = {}) {
23409
- let { enableFuzzySearch: r = !1 } = n, i = qm(e, t, n);
23406
+ function Qm(e, t, n = {}) {
23407
+ let { enableFuzzySearch: r = !1 } = n, i = Km(e, t, n);
23410
23408
  if (i) return i;
23411
- let a = Ym(e, t, n);
23409
+ let a = Jm(e, t, n);
23412
23410
  if (a.length > 0) return a[0] || null;
23413
23411
  if (r) {
23414
- let r = Zm(e, t, n);
23412
+ let r = Xm(e, t, n);
23415
23413
  if (r.length > 0) return r[0] || null;
23416
23414
  }
23417
23415
  return null;
23418
23416
  }
23419
23417
  //#endregion
23420
23418
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/schema-facet.js
23421
- var eh = Qe.define({ combine: (e) => e[0] ?? null });
23422
- function th(e, t) {
23423
- let n = e ?? t.state.facet(eh);
23419
+ var $m = Qe.define({ combine: (e) => e[0] ?? null });
23420
+ function eh(e, t) {
23421
+ let n = e ?? t.state.facet($m);
23424
23422
  return n == null ? null : typeof n == "function" ? n(t) : n;
23425
23423
  }
23426
23424
  //#endregion
23427
23425
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/completion-utils.js
23428
- function nh(e, t) {
23429
- let n = e ?? t.state.facet(eh);
23426
+ function th(e, t) {
23427
+ let n = e ?? t.state.facet($m);
23430
23428
  return n == null ? null : typeof n == "function" ? t.view ? n(t.view) : null : n;
23431
23429
  }
23432
- function rh(e) {
23430
+ function nh(e) {
23433
23431
  if (e == null) return null;
23434
- let t = Wm(e) ? e.children : e;
23435
- return Gm(t) ? t : null;
23432
+ let t = Um(e) ? e.children : e;
23433
+ return Wm(t) ? t : null;
23436
23434
  }
23437
- function ih(e, t) {
23438
- let n = rh(qm(e, t, { caseSensitive: !1 })?.namespace);
23435
+ function rh(e, t) {
23436
+ let n = nh(Km(e, t, { caseSensitive: !1 })?.namespace);
23439
23437
  if (n) return n;
23440
23438
  let r = (typeof t == "string" ? t.split(".") : t).map((e) => e.toLowerCase()), i = r[r.length - 1];
23441
23439
  if (!i) return null;
23442
- let a = Zm(e, i).filter((e) => {
23443
- if (rh(e.namespace) === null || e.path.length < r.length) return !1;
23440
+ let a = Xm(e, i).filter((e) => {
23441
+ if (nh(e.namespace) === null || e.path.length < r.length) return !1;
23444
23442
  let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
23445
23443
  return r.every((e, n) => t[n] === e);
23446
23444
  });
23447
- return a.length === 1 ? rh(a[0]?.namespace) : null;
23445
+ return a.length === 1 ? nh(a[0]?.namespace) : null;
23448
23446
  }
23449
- function ah(e, t, n) {
23447
+ function ih(e, t, n) {
23450
23448
  if (typeof e == "string") return n === void 0 ? {
23451
23449
  label: e,
23452
23450
  type: "property",
@@ -23466,17 +23464,17 @@ function ah(e, t, n) {
23466
23464
  }
23467
23465
  //#endregion
23468
23466
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/utils.js
23469
- var oh = (e) => {
23467
+ var ah = (e) => {
23470
23468
  let t;
23471
23469
  return async () => (t ||= e(), await t);
23472
- }, sh = class {
23470
+ }, oh = class {
23473
23471
  opts;
23474
23472
  parser = null;
23475
23473
  offsetRecord = {};
23476
23474
  constructor(e = {}) {
23477
23475
  this.opts = e;
23478
23476
  }
23479
- getParser = oh(async () => {
23477
+ getParser = ah(async () => {
23480
23478
  if (this.parser) return this.parser;
23481
23479
  let t = await import("./node-sql-parser-BiZOJ-FS.js").then((t) => /* @__PURE__ */ e(t.default, 1)), { Parser: n } = t.default || t;
23482
23480
  return this.parser = new n(), this.parser;
@@ -23500,13 +23498,13 @@ var oh = (e) => {
23500
23498
  }
23501
23499
  async sanitizeSql(e, t) {
23502
23500
  if (t?.ignoreBrackets) {
23503
- let { sql: t, offsetRecord: n } = uh(e);
23501
+ let { sql: t, offsetRecord: n } = lh(e);
23504
23502
  return this.offsetRecord = n, t;
23505
23503
  }
23506
23504
  return e;
23507
23505
  }
23508
23506
  async parseWithDuckDBSupport(e, t) {
23509
- let n = await this.getParser(), r = ch(e).trimStart().toLowerCase();
23507
+ let n = await this.getParser(), r = sh(e).trimStart().toLowerCase();
23510
23508
  if (r.startsWith("from") || r.includes("macro")) return {
23511
23509
  success: !0,
23512
23510
  errors: []
@@ -23584,24 +23582,24 @@ var oh = (e) => {
23584
23582
  }
23585
23583
  }
23586
23584
  };
23587
- function ch(e, t = ["/*", "--"]) {
23585
+ function sh(e, t = ["/*", "--"]) {
23588
23586
  let n = [];
23589
23587
  if (t.includes("/*") && n.push("/\\*[\\s\\S]*?\\*/"), t.includes("--") && n.push("--[^\\n]*"), n.length === 0) return e;
23590
23588
  let r = RegExp(`^\\s*(${n.join("|")})\\s*`, ""), i = e, a = "";
23591
23589
  for (; i !== a;) a = i, i = i.replace(r, "");
23592
23590
  return i;
23593
23591
  }
23594
- var lh = 2;
23595
- function uh(e) {
23592
+ var ch = 2;
23593
+ function lh(e) {
23596
23594
  let t = {};
23597
23595
  return {
23598
- sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = lh, `'${i}'`) : e),
23596
+ sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = ch, `'${i}'`) : e),
23599
23597
  offsetRecord: t
23600
23598
  };
23601
23599
  }
23602
23600
  //#endregion
23603
23601
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/query-context.js
23604
- function dh() {
23602
+ function uh() {
23605
23603
  return {
23606
23604
  tables: [],
23607
23605
  ctes: [],
@@ -23609,79 +23607,79 @@ function dh() {
23609
23607
  selectAliases: []
23610
23608
  };
23611
23609
  }
23612
- function fh(e) {
23610
+ function dh(e) {
23613
23611
  return typeof e == "object" && !!e && !Array.isArray(e);
23614
23612
  }
23615
- function ph(e) {
23613
+ function fh(e) {
23616
23614
  return Array.isArray(e) ? e : [];
23617
23615
  }
23618
- function mh(e) {
23616
+ function ph(e) {
23619
23617
  let t = e[0], n = e[e.length - 1];
23620
23618
  return e.length >= 2 && (t === "\"" && n === "\"" || t === "'" && n === "'" || t === "`" && n === "`" || t === "[" && n === "]") ? e.slice(1, -1) : e;
23621
23619
  }
23622
- function hh(e) {
23623
- return typeof e == "string" ? e : fh(e) && typeof e.value == "string" ? e.value : null;
23620
+ function mh(e) {
23621
+ return typeof e == "string" ? e : dh(e) && typeof e.value == "string" ? e.value : null;
23624
23622
  }
23625
- function gh(e) {
23626
- if (!fh(e) || e.type !== "column_ref") return null;
23623
+ function hh(e) {
23624
+ if (!dh(e) || e.type !== "column_ref") return null;
23627
23625
  let t = e.column;
23628
23626
  if (typeof t == "string") return t;
23629
- if (fh(t)) {
23630
- let e = t.expr, n = fh(e) ? e.value : t.value;
23627
+ if (dh(t)) {
23628
+ let e = t.expr, n = dh(e) ? e.value : t.value;
23631
23629
  if (typeof n == "string") return n;
23632
23630
  }
23633
23631
  return null;
23634
23632
  }
23635
- function _h(e) {
23636
- let t = ph(e.columns).map((e) => hh(e) ?? gh(e) ?? hh(e.column)).filter((e) => typeof e == "string");
23633
+ function gh(e) {
23634
+ let t = fh(e.columns).map((e) => mh(e) ?? hh(e) ?? mh(e.column)).filter((e) => typeof e == "string");
23637
23635
  if (t.length > 0) return t;
23638
- let n = e.stmt, r = fh(n) ? n.ast ?? n : null;
23639
- if (!fh(r) || r.type !== "select") return [];
23636
+ let n = e.stmt, r = dh(n) ? n.ast ?? n : null;
23637
+ if (!dh(r) || r.type !== "select") return [];
23640
23638
  let i = [];
23641
- for (let e of ph(r.columns)) if (typeof e.as == "string") i.push(e.as);
23639
+ for (let e of fh(r.columns)) if (typeof e.as == "string") i.push(e.as);
23642
23640
  else {
23643
- let t = gh(e.expr);
23641
+ let t = hh(e.expr);
23644
23642
  t && t !== "*" && i.push(t);
23645
23643
  }
23646
23644
  return i;
23647
23645
  }
23648
- function vh(e, t) {
23646
+ function _h(e, t) {
23649
23647
  if (typeof e.table != "string" || e.table.length === 0) return;
23650
23648
  let n = [
23651
23649
  e.db ?? e.catalog,
23652
23650
  e.schema,
23653
23651
  e.table
23654
- ].filter((e) => typeof e == "string" && e.length > 0).map(mh), r = typeof e.as == "string" ? mh(e.as) : void 0, i = `${n.join(".").toLowerCase()}::${r?.toLowerCase() ?? ""}`;
23652
+ ].filter((e) => typeof e == "string" && e.length > 0).map(ph), r = typeof e.as == "string" ? ph(e.as) : void 0, i = `${n.join(".").toLowerCase()}::${r?.toLowerCase() ?? ""}`;
23655
23653
  t.seenTables.has(i) || (t.seenTables.add(i), t.tables.push({
23656
- name: mh(e.table),
23654
+ name: ph(e.table),
23657
23655
  path: n,
23658
23656
  ...r ? { alias: r } : {}
23659
23657
  }));
23660
23658
  }
23661
- function yh(e, t, n) {
23659
+ function vh(e, t, n) {
23662
23660
  if (Array.isArray(e)) {
23663
- for (let r of e) yh(r, t, n);
23661
+ for (let r of e) vh(r, t, n);
23664
23662
  return;
23665
23663
  }
23666
- if (!(!fh(e) || n.has(e))) {
23664
+ if (!(!dh(e) || n.has(e))) {
23667
23665
  n.add(e);
23668
- for (let n of ph(e.with)) {
23669
- let e = hh(n.name);
23666
+ for (let n of fh(e.with)) {
23667
+ let e = mh(n.name);
23670
23668
  e && !t.seenCtes.has(e.toLowerCase()) && (t.seenCtes.add(e.toLowerCase()), t.ctes.push({
23671
- name: mh(e),
23672
- columns: _h(n).map(mh),
23669
+ name: ph(e),
23670
+ columns: gh(n).map(ph),
23673
23671
  from: -1,
23674
23672
  to: -1
23675
23673
  }));
23676
23674
  }
23677
- for (let n of ["from", "table"]) for (let r of ph(e[n])) vh(r, t);
23678
- for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && yh(i, t, n);
23675
+ for (let n of ["from", "table"]) for (let r of fh(e[n])) _h(r, t);
23676
+ for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && vh(i, t, n);
23679
23677
  }
23680
23678
  }
23681
- function bh(e, t) {
23682
- if (e.type === "select") for (let n of ph(e.columns)) typeof n.as == "string" && t.selectAliases.push(mh(n.as));
23679
+ function yh(e, t) {
23680
+ if (e.type === "select") for (let n of fh(e.columns)) typeof n.as == "string" && t.selectAliases.push(ph(n.as));
23683
23681
  }
23684
- function xh(e, t) {
23682
+ function bh(e, t) {
23685
23683
  let n = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), r = `(?:"${n}"|\`${n}\`|\\[${n}\\]|\\b${n})`, i = RegExp(`(${r})\\s*(?:\\([^)]*\\)\\s*)?AS\\s*\\(`, "i").exec(e);
23686
23684
  return !i || i.index < 0 || !i[1] ? {
23687
23685
  from: -1,
@@ -23691,8 +23689,8 @@ function xh(e, t) {
23691
23689
  to: i.index + i[1].length
23692
23690
  };
23693
23691
  }
23694
- var Sh = /* @__PURE__ */ new Set(/* @__PURE__ */ "as.on.using.where.join.inner.left.right.full.cross.outer.natural.lateral.group.order.limit.offset.having.union.intersect.except.select.set.values.when.then.and.or.not.in.is.asc.desc.fetch.window.qualify.returning.with".split(".")), Ch = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, wh = `(?!(?:${[...Sh].join("|")})\\b)`, Th = new RegExp(String.raw`\b(?:from|join)\s+(${Ch}(?:\.${Ch})*)(?:\s+(?:as\s+)?${wh}(${Ch}))?`, "gi");
23695
- function Eh(e) {
23692
+ var xh = /* @__PURE__ */ new Set(/* @__PURE__ */ "as.on.using.where.join.inner.left.right.full.cross.outer.natural.lateral.group.order.limit.offset.having.union.intersect.except.select.set.values.when.then.and.or.not.in.is.asc.desc.fetch.window.qualify.returning.with".split(".")), Sh = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, Ch = `(?!(?:${[...xh].join("|")})\\b)`, wh = new RegExp(String.raw`\b(?:from|join)\s+(${Sh}(?:\.${Sh})*)(?:\s+(?:as\s+)?${Ch}(${Sh}))?`, "gi");
23693
+ function Th(e) {
23696
23694
  let t = e.split(""), n = 0;
23697
23695
  for (; n < e.length;) {
23698
23696
  let r = e[n], i = e[n + 1];
@@ -23729,45 +23727,45 @@ function Eh(e) {
23729
23727
  }
23730
23728
  return t.join("");
23731
23729
  }
23732
- function Dh(e) {
23730
+ function Eh(e) {
23733
23731
  let t = {
23734
23732
  tables: [],
23735
23733
  ctes: [],
23736
23734
  selectAliases: [],
23737
23735
  seenTables: /* @__PURE__ */ new Set(),
23738
23736
  seenCtes: /* @__PURE__ */ new Set()
23739
- }, n = Eh(e);
23740
- Oh(n, t), Th.lastIndex = 0;
23741
- let r = Th.exec(n);
23737
+ }, n = Th(e);
23738
+ Dh(n, t), wh.lastIndex = 0;
23739
+ let r = wh.exec(n);
23742
23740
  for (; r !== null;) {
23743
23741
  let e = r[1], i = r[2];
23744
23742
  if (e) {
23745
- let n = e.split(".").map(mh), r = n[n.length - 1] ?? "", a = i && !Sh.has(i.toLowerCase()) ? mh(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
23743
+ let n = e.split(".").map(ph), r = n[n.length - 1] ?? "", a = i && !xh.has(i.toLowerCase()) ? ph(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
23746
23744
  r && !t.seenTables.has(o) && (t.seenTables.add(o), t.tables.push({
23747
23745
  name: r,
23748
23746
  path: n,
23749
23747
  ...a ? { alias: a } : {}
23750
23748
  }));
23751
23749
  }
23752
- r = Th.exec(n);
23750
+ r = wh.exec(n);
23753
23751
  }
23754
- return jh(t);
23752
+ return Ah(t);
23755
23753
  }
23756
- function Oh(e, t) {
23757
- let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Ch})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
23754
+ function Dh(e, t) {
23755
+ let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Sh})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
23758
23756
  for (; i !== null;) {
23759
23757
  let a = i.index + i[0].length;
23760
23758
  for (;;) {
23761
- let n = r.exec(e.slice(a)), i = n?.[1], o = i ? mh(i) : void 0;
23759
+ let n = r.exec(e.slice(a)), i = n?.[1], o = i ? ph(i) : void 0;
23762
23760
  if (!n || !i || !o) break;
23763
23761
  let s = a + n[0].length, c = s, l = 1;
23764
23762
  for (; c < e.length && l > 0;) e[c] === "(" ? l++ : e[c] === ")" && l--, c++;
23765
23763
  if (!t.seenCtes.has(o.toLowerCase())) {
23766
23764
  t.seenCtes.add(o.toLowerCase());
23767
- let r = (n[2] ?? "").split(",").map((e) => mh(e.trim())).filter((e) => e.length > 0);
23765
+ let r = (n[2] ?? "").split(",").map((e) => ph(e.trim())).filter((e) => e.length > 0);
23768
23766
  t.ctes.push({
23769
23767
  name: o,
23770
- columns: r.length > 0 ? r : Ah(e.slice(s, Math.max(s, c - 1))),
23768
+ columns: r.length > 0 ? r : kh(e.slice(s, Math.max(s, c - 1))),
23771
23769
  from: a,
23772
23770
  to: a + i.length
23773
23771
  });
@@ -23779,19 +23777,19 @@ function Oh(e, t) {
23779
23777
  i = n.exec(e);
23780
23778
  }
23781
23779
  }
23782
- function kh(e) {
23780
+ function Oh(e) {
23783
23781
  let t = [], n = 0, r = "";
23784
23782
  for (let i of e) i === "(" ? n++ : i === ")" && (n = Math.max(0, n - 1)), i === "," && n === 0 ? (t.push(r), r = "") : r += i;
23785
23783
  return t.push(r), t;
23786
23784
  }
23787
- function Ah(e) {
23785
+ function kh(e) {
23788
23786
  let t = /^\s*SELECT\s+(?:DISTINCT\s+)?([\s\S]*?)\s+FROM\s/i.exec(e);
23789
23787
  if (!t || !t[1]) return [];
23790
23788
  let n = [];
23791
- for (let e of kh(t[1])) {
23792
- let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Ch})$`, "i").exec(t);
23789
+ for (let e of Oh(t[1])) {
23790
+ let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Sh})$`, "i").exec(t);
23793
23791
  if (r?.[1]) {
23794
- n.push(mh(r[1]));
23792
+ n.push(ph(r[1]));
23795
23793
  continue;
23796
23794
  }
23797
23795
  if (/^(?:[\w$]+\.)*[\w$]+$/.test(t)) {
@@ -23801,7 +23799,7 @@ function Ah(e) {
23801
23799
  }
23802
23800
  return n;
23803
23801
  }
23804
- function jh(e) {
23802
+ function Ah(e) {
23805
23803
  let t = /* @__PURE__ */ new Map();
23806
23804
  for (let n of e.tables) if (n.alias) {
23807
23805
  let e = n.alias.toLowerCase();
@@ -23814,14 +23812,14 @@ function jh(e) {
23814
23812
  selectAliases: e.selectAliases
23815
23813
  };
23816
23814
  }
23817
- async function Mh(e, t, n) {
23818
- if (!e.trim()) return dh();
23815
+ async function jh(e, t, n) {
23816
+ if (!e.trim()) return uh();
23819
23817
  let r = null;
23820
23818
  try {
23821
23819
  let i = await t.parse(e, n);
23822
23820
  i.success && i.ast != null && (r = i.ast);
23823
23821
  } catch {}
23824
- if (r == null) return Dh(e);
23822
+ if (r == null) return Eh(e);
23825
23823
  try {
23826
23824
  let t = {
23827
23825
  tables: [],
@@ -23830,29 +23828,29 @@ async function Mh(e, t, n) {
23830
23828
  seenTables: /* @__PURE__ */ new Set(),
23831
23829
  seenCtes: /* @__PURE__ */ new Set()
23832
23830
  }, n = Array.isArray(r) ? r : [r];
23833
- for (let e of n) fh(e) && bh(e, t);
23834
- yh(r, t, /* @__PURE__ */ new Set());
23835
- let i = Eh(e);
23831
+ for (let e of n) dh(e) && yh(e, t);
23832
+ vh(r, t, /* @__PURE__ */ new Set());
23833
+ let i = Th(e);
23836
23834
  for (let e of t.ctes) {
23837
- let t = xh(i, e.name);
23835
+ let t = bh(i, e.name);
23838
23836
  e.from = t.from, e.to = t.to;
23839
23837
  }
23840
- return jh(t);
23838
+ return Ah(t);
23841
23839
  } catch {
23842
- return Dh(e);
23840
+ return Eh(e);
23843
23841
  }
23844
23842
  }
23845
- var Nh = class {
23843
+ var Mh = class {
23846
23844
  parser;
23847
23845
  cache = /* @__PURE__ */ new Map();
23848
23846
  MAX_CACHE_SIZE = 20;
23849
- constructor(e = new sh()) {
23847
+ constructor(e = new oh()) {
23850
23848
  this.parser = e;
23851
23849
  }
23852
23850
  async getContext(e, t) {
23853
23851
  let n = this.cache.get(e);
23854
23852
  if (n) return n;
23855
- let r = await Mh(e, this.parser, t);
23853
+ let r = await jh(e, this.parser, t);
23856
23854
  if (this.cache.set(e, r), this.cache.size > this.MAX_CACHE_SIZE) {
23857
23855
  let e = this.cache.keys().next().value;
23858
23856
  e !== void 0 && this.cache.delete(e);
@@ -23862,7 +23860,7 @@ var Nh = class {
23862
23860
  clearCache() {
23863
23861
  this.cache.clear();
23864
23862
  }
23865
- }, Ph = class {
23863
+ }, Nh = class {
23866
23864
  parser;
23867
23865
  cache = /* @__PURE__ */ new Map();
23868
23866
  MAX_CACHE_SIZE = 10;
@@ -23994,53 +23992,53 @@ var Nh = class {
23994
23992
  };
23995
23993
  //#endregion
23996
23994
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/alias-completion-source.js
23997
- function Fh(e = {}) {
23998
- let t = e.parser ?? new sh(), n = e.contextAnalyzer ?? new Nh(t), r = new Ph(t);
23995
+ function Ph(e = {}) {
23996
+ let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = new Nh(t);
23999
23997
  return async (t) => {
24000
23998
  let i = t.matchBefore(/(?:[\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])\.[\w$]*/);
24001
23999
  if (!i || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
24002
- let a = i.text.lastIndexOf("."), o = mh(i.text.slice(0, a)), s = await r.getStatementAtPosition(t.state, t.pos), c = s ? t.state.sliceDoc(s.from, s.to) : t.state.doc.toString(), l = await n.getContext(c, { state: t.state }), u = l.aliases.get(o.toLowerCase());
24000
+ let a = i.text.lastIndexOf("."), o = ph(i.text.slice(0, a)), s = await r.getStatementAtPosition(t.state, t.pos), c = s ? t.state.sliceDoc(s.from, s.to) : t.state.doc.toString(), l = await n.getContext(c, { state: t.state }), u = l.aliases.get(o.toLowerCase());
24003
24001
  if (!u) return null;
24004
24002
  let d = null, f = l.ctes.find((e) => e.name.toLowerCase() === u.toLowerCase());
24005
24003
  if (f && f.columns.length > 0) d = f.columns;
24006
24004
  else if (!f) {
24007
- let n = nh(e.schema, t);
24008
- n != null && (d = ih(n, u));
24005
+ let n = th(e.schema, t);
24006
+ n != null && (d = rh(n, u));
24009
24007
  }
24010
24008
  if (!d || d.length === 0) return null;
24011
24009
  let p = `column of ${u}`;
24012
24010
  return {
24013
24011
  from: i.from + a + 1,
24014
- options: d.map((e) => ah(e, p)),
24012
+ options: d.map((e) => ih(e, p)),
24015
24013
  validFor: /^[\w$]*$/
24016
24014
  };
24017
24015
  };
24018
24016
  }
24019
24017
  //#endregion
24020
24018
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/column-completion-source.js
24021
- var Ih = 1, Lh = /\b(?:from|join|into|update|table)\s+$/i, Rh = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
24022
- function zh(e = {}) {
24023
- let t = e.parser ?? new sh(), n = e.contextAnalyzer ?? new Nh(t), r = new Ph(t);
24019
+ var Fh = 1, Ih = /\b(?:from|join|into|update|table)\s+$/i, Lh = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
24020
+ function Rh(e = {}) {
24021
+ let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = new Nh(t);
24024
24022
  return async (t) => {
24025
24023
  let i = t.matchBefore(/[\w$]*/);
24026
24024
  if (!i || i.from === i.to && !t.explicit || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
24027
24025
  let a = t.state.sliceDoc(Math.max(0, i.from - 256), i.from);
24028
- if (Lh.test(a) || Rh.test(a)) return null;
24029
- let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l = Eh(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
24026
+ if (Ih.test(a) || Lh.test(a)) return null;
24027
+ let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l = Th(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
24030
24028
  if (l.slice(u, d) !== c.slice(u, d)) return null;
24031
24029
  let f = await n.getContext(c, { state: t.state });
24032
24030
  if (f.tables.length === 0) return null;
24033
- let p = nh(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
24031
+ let p = th(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
24034
24032
  for (let e of f.tables) {
24035
24033
  let t = e.path.join(".").toLowerCase();
24036
24034
  if (g.has(t)) continue;
24037
24035
  g.add(t);
24038
24036
  let n = f.ctes.find((t) => t.name.toLowerCase() === e.name.toLowerCase()), r = null;
24039
- if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = ih(p, e.path)), !r) continue;
24037
+ if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = rh(p, e.path)), !r) continue;
24040
24038
  let i = `column of ${e.name}`;
24041
24039
  for (let e of r) {
24042
24040
  let t = (typeof e == "string" ? e : e.label).toLowerCase();
24043
- h.has(t) || (h.add(t), m.push(ah(e, i, Ih)));
24041
+ h.has(t) || (h.add(t), m.push(ih(e, i, Fh)));
24044
24042
  }
24045
24043
  }
24046
24044
  return m.length === 0 ? null : {
@@ -24052,30 +24050,30 @@ function zh(e = {}) {
24052
24050
  }
24053
24051
  //#endregion
24054
24052
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/references.js
24055
- var Bh = /[\w$]/, Vh = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
24056
- function Hh(e, t) {
24053
+ var zh = /[\w$]/, Bh = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
24054
+ function Vh(e, t) {
24057
24055
  let n = e.doc.lineAt(t), r = n.text, i = t - n.from;
24058
- Vh.lastIndex = 0;
24059
- let a = Vh.exec(r);
24056
+ Bh.lastIndex = 0;
24057
+ let a = Bh.exec(r);
24060
24058
  for (; a !== null && a.index <= i;) {
24061
24059
  let e = a.index + a[0].length;
24062
24060
  if (i <= e) return {
24063
24061
  from: n.from + a.index,
24064
24062
  to: n.from + e,
24065
- text: mh(a[0])
24063
+ text: ph(a[0])
24066
24064
  };
24067
- a = Vh.exec(r);
24065
+ a = Bh.exec(r);
24068
24066
  }
24069
24067
  let o = i, s = i;
24070
- for (; o > 0 && Bh.test(r[o - 1] ?? "");) o--;
24071
- for (; s < r.length && Bh.test(r[s] ?? "");) s++;
24068
+ for (; o > 0 && zh.test(r[o - 1] ?? "");) o--;
24069
+ for (; s < r.length && zh.test(r[s] ?? "");) s++;
24072
24070
  return o === s ? null : {
24073
24071
  from: n.from + o,
24074
24072
  to: n.from + s,
24075
24073
  text: r.slice(o, s)
24076
24074
  };
24077
24075
  }
24078
- async function Uh(e, t, n) {
24076
+ async function Hh(e, t, n) {
24079
24077
  let r = await e.analyzeDocument(t), i = null;
24080
24078
  for (let e of r) {
24081
24079
  if (n >= e.from && n <= e.to) return e;
@@ -24083,15 +24081,15 @@ async function Uh(e, t, n) {
24083
24081
  }
24084
24082
  return i;
24085
24083
  }
24086
- function Wh(e) {
24084
+ function Uh(e) {
24087
24085
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
24088
24086
  }
24089
- function Gh(e, t = {}) {
24090
- let n = Wh(e);
24087
+ function Wh(e, t = {}) {
24088
+ let n = Uh(e);
24091
24089
  return `(?:"${n}"|\`${n}\`|\\[${n}\\]|${t.allowLeadingDot ? "(?<![\\w$])" : "(?<![\\w$.])"}${n}(?![\\w$]))`;
24092
24090
  }
24093
- function Kh(e, t, n = {}) {
24094
- let r = new RegExp(Gh(t), "gi"), i = [], a = r.exec(e);
24091
+ function Gh(e, t, n = {}) {
24092
+ let r = new RegExp(Wh(t), "gi"), i = [], a = r.exec(e);
24095
24093
  for (; a !== null;) {
24096
24094
  let t = a.index + a[0].length;
24097
24095
  (!n.followedByDot || e[t] === ".") && i.push({
@@ -24101,19 +24099,19 @@ function Kh(e, t, n = {}) {
24101
24099
  }
24102
24100
  return i;
24103
24101
  }
24104
- function qh(e) {
24102
+ function Kh(e) {
24105
24103
  let t = [], n = 0;
24106
24104
  for (let r = 0; r < e.length; r++) e[r] === ")" && (n = Math.max(0, n - 1)), t[r] = n, e[r] === "(" && n++;
24107
24105
  return t;
24108
24106
  }
24109
- var Jh = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
24110
- function Yh(e) {
24111
- Jh.lastIndex = 0;
24112
- let t = null, n = Jh.exec(e);
24113
- for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = Jh.exec(e);
24107
+ var qh = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
24108
+ function Jh(e) {
24109
+ qh.lastIndex = 0;
24110
+ let t = null, n = qh.exec(e);
24111
+ for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = qh.exec(e);
24114
24112
  return t;
24115
24113
  }
24116
- function Xh(e, t) {
24114
+ function Yh(e, t) {
24117
24115
  let n = t - 1;
24118
24116
  for (;;) {
24119
24117
  for (; n >= 0 && /\s/.test(e[n] ?? "");) n--;
@@ -24124,34 +24122,34 @@ function Xh(e, t) {
24124
24122
  let r = t === "]" ? "[" : t;
24125
24123
  for (n--; n >= 0 && e[n] !== r;) n--;
24126
24124
  n--;
24127
- } else for (; n >= 0 && Bh.test(e[n] ?? "");) n--;
24125
+ } else for (; n >= 0 && zh.test(e[n] ?? "");) n--;
24128
24126
  continue;
24129
24127
  }
24130
24128
  break;
24131
24129
  }
24132
24130
  if (n < 0) return !1;
24133
- if (e[n] === ",") return Yh(e.slice(0, n)) === "from";
24131
+ if (e[n] === ",") return Jh(e.slice(0, n)) === "from";
24134
24132
  let r = /([A-Za-z_]+)$/.exec(e.slice(0, n + 1))?.[1]?.toLowerCase();
24135
24133
  return r === "from" || r === "join";
24136
24134
  }
24137
- function Zh(e) {
24135
+ function Xh(e) {
24138
24136
  let t = /* @__PURE__ */ new Map();
24139
24137
  for (let n of e) t.has(n.from) || t.set(n.from, n);
24140
24138
  return [...t.values()].sort((e, t) => e.from - t.from);
24141
24139
  }
24142
- function Qh(e, t) {
24140
+ function Zh(e, t) {
24143
24141
  return e.some((e) => e.from <= t.from && t.to <= e.to);
24144
24142
  }
24145
- function $h(e, t, n) {
24146
- let r = Eh(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
24143
+ function Qh(e, t, n) {
24144
+ let r = Th(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
24147
24145
  if (o) {
24148
24146
  let e = t.aliases.get(i);
24149
24147
  if (e && e.toLowerCase() !== i || a || o.from < 0) return null;
24150
24148
  let s = {
24151
24149
  from: o.from,
24152
24150
  to: o.to
24153
- }, c = Zh([s, ...Kh(r, o.name).filter((e) => r[e.to] === "." || Xh(r, e.from))]);
24154
- return Qh(c, n) ? {
24151
+ }, c = Xh([s, ...Gh(r, o.name).filter((e) => r[e.to] === "." || Yh(r, e.from))]);
24152
+ return Zh(c, n) ? {
24155
24153
  kind: "cte",
24156
24154
  name: o.name,
24157
24155
  definition: s,
@@ -24162,14 +24160,14 @@ function $h(e, t, n) {
24162
24160
  if (a) return null;
24163
24161
  let e = t.tables.filter((e) => e.alias?.toLowerCase() === i);
24164
24162
  if (e.length !== 1 || !e[0]) return null;
24165
- let o = e[0], s = o.alias ?? n.text, c = Gh(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${Gh(s)})`, "gi"), u = l.exec(r);
24166
- for (; u !== null && !Xh(r, u.index);) u = l.exec(r);
24163
+ let o = e[0], s = o.alias ?? n.text, c = Wh(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${Wh(s)})`, "gi"), u = l.exec(r);
24164
+ for (; u !== null && !Yh(r, u.index);) u = l.exec(r);
24167
24165
  if (!u || u[1] == null) return null;
24168
24166
  let d = {
24169
24167
  from: u.index + u[0].length - u[1].length,
24170
24168
  to: u.index + u[0].length
24171
- }, f = Zh([d, ...Kh(r, s, { followedByDot: !0 })]);
24172
- return Qh(f, n) ? {
24169
+ }, f = Xh([d, ...Gh(r, s, { followedByDot: !0 })]);
24170
+ return Zh(f, n) ? {
24173
24171
  kind: "table-alias",
24174
24172
  name: s,
24175
24173
  definition: d,
@@ -24178,7 +24176,7 @@ function $h(e, t, n) {
24178
24176
  }
24179
24177
  let s = t.selectAliases.find((e) => e.toLowerCase() === i);
24180
24178
  if (s) {
24181
- let e = qh(r), t = (t) => e[t] === 0, i = eg(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${Gh(s)})`, "gi"), c = null, l = o.exec(r);
24179
+ let e = Kh(r), t = (t) => e[t] === 0, i = $h(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${Wh(s)})`, "gi"), c = null, l = o.exec(r);
24182
24180
  for (; l !== null;) {
24183
24181
  let e = l.index + l[0].length - (l[1]?.length ?? 0);
24184
24182
  if (t(l.index) && e < a) {
@@ -24191,8 +24189,8 @@ function $h(e, t, n) {
24191
24189
  l = o.exec(r);
24192
24190
  }
24193
24191
  if (!c) return null;
24194
- let u = rg(r, t), d = Kh(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = Zh([c, ...d]);
24195
- return Qh(f, n) ? {
24192
+ let u = ng(r, t), d = Gh(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = Xh([c, ...d]);
24193
+ return Zh(f, n) ? {
24196
24194
  kind: "select-alias",
24197
24195
  name: s,
24198
24196
  definition: c,
@@ -24201,7 +24199,7 @@ function $h(e, t, n) {
24201
24199
  }
24202
24200
  return null;
24203
24201
  }
24204
- function eg(e, t, n) {
24202
+ function $h(e, t, n) {
24205
24203
  let r = t.exec(e);
24206
24204
  for (; r !== null;) {
24207
24205
  if (n(r.index)) return r;
@@ -24209,45 +24207,45 @@ function eg(e, t, n) {
24209
24207
  }
24210
24208
  return null;
24211
24209
  }
24212
- var tg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, ng = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
24213
- function rg(e, t) {
24210
+ var eg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, tg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
24211
+ function ng(e, t) {
24214
24212
  let n = [];
24215
- tg.lastIndex = 0;
24216
- let r = tg.exec(e);
24213
+ eg.lastIndex = 0;
24214
+ let r = eg.exec(e);
24217
24215
  for (; r !== null;) {
24218
24216
  if (t(r.index)) {
24219
24217
  let i = r.index + r[0].length;
24220
- ng.lastIndex = i;
24221
- let a = e.length, o = ng.exec(e);
24218
+ tg.lastIndex = i;
24219
+ let a = e.length, o = tg.exec(e);
24222
24220
  for (; o !== null;) {
24223
24221
  if (t(o.index)) {
24224
24222
  a = o.index;
24225
24223
  break;
24226
24224
  }
24227
- o = ng.exec(e);
24225
+ o = tg.exec(e);
24228
24226
  }
24229
24227
  n.push({
24230
24228
  from: i,
24231
24229
  to: a
24232
24230
  });
24233
24231
  }
24234
- r = tg.exec(e);
24232
+ r = eg.exec(e);
24235
24233
  }
24236
24234
  return n;
24237
24235
  }
24238
- var ig = class {
24236
+ var rg = class {
24239
24237
  structureAnalyzer;
24240
24238
  contextAnalyzer;
24241
24239
  constructor(e = {}) {
24242
- let t = e.parser ?? new sh();
24243
- this.structureAnalyzer = e.structureAnalyzer ?? new Ph(t), this.contextAnalyzer = e.contextAnalyzer ?? new Nh(t);
24240
+ let t = e.parser ?? new oh();
24241
+ this.structureAnalyzer = e.structureAnalyzer ?? new Nh(t), this.contextAnalyzer = e.contextAnalyzer ?? new Mh(t);
24244
24242
  }
24245
24243
  async resolve(e, t) {
24246
- let n = Hh(e, t);
24244
+ let n = Vh(e, t);
24247
24245
  if (!n) return null;
24248
- let r = await Uh(this.structureAnalyzer, e, t);
24246
+ let r = await Hh(this.structureAnalyzer, e, t);
24249
24247
  if (!r || n.from < r.from || n.to > r.to) return null;
24250
- let i = e.sliceDoc(r.from, r.to), a = $h(i, await this.contextAnalyzer.getContext(i, { state: e }), {
24248
+ let i = e.sliceDoc(r.from, r.to), a = Qh(i, await this.contextAnalyzer.getContext(i, { state: e }), {
24251
24249
  from: n.from - r.from,
24252
24250
  to: n.to - r.from,
24253
24251
  text: n.text
@@ -24263,54 +24261,54 @@ var ig = class {
24263
24261
  references: a.references.map(o)
24264
24262
  };
24265
24263
  }
24266
- }, ag = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
24267
- function og(e) {
24264
+ }, ig = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
24265
+ function ag(e) {
24268
24266
  return /\b(?:from|join)\s+$/i.test(e);
24269
24267
  }
24270
- function sg(e) {
24268
+ function og(e) {
24271
24269
  return /^[A-Za-z_][\w$]*$/.test(e);
24272
24270
  }
24273
- function cg(e) {
24271
+ function sg(e) {
24274
24272
  return {
24275
24273
  label: e.name,
24276
24274
  type: "variable",
24277
24275
  info: `Common Table Expression: ${e.name}`,
24278
24276
  boost: 10,
24279
- ...sg(e.name) ? {} : { apply: `"${e.name}"` }
24277
+ ...og(e.name) ? {} : { apply: `"${e.name}"` }
24280
24278
  };
24281
24279
  }
24282
- function lg(e) {
24280
+ function cg(e) {
24283
24281
  return e.columns.map((t) => ({
24284
24282
  label: t,
24285
24283
  type: "property",
24286
24284
  detail: `column of ${e.name}`,
24287
24285
  boost: 5,
24288
- ...sg(t) ? {} : { apply: `"${t}"` }
24286
+ ...og(t) ? {} : { apply: `"${t}"` }
24289
24287
  }));
24290
24288
  }
24291
- function ug(e = {}) {
24292
- let t = e.parser ?? new sh(), n = e.contextAnalyzer ?? new Nh(t), r = e.structureAnalyzer ?? new Ph(t);
24289
+ function lg(e = {}) {
24290
+ let t = e.parser ?? new oh(), n = e.contextAnalyzer ?? new Mh(t), r = e.structureAnalyzer ?? new Nh(t);
24293
24291
  return async (e) => {
24294
24292
  let t = e.matchBefore(/[\w$]*/);
24295
24293
  if (!t) return null;
24296
24294
  let i = e.state.sliceDoc(Math.max(0, t.from - 1), t.from) === ".";
24297
24295
  if (t.from === t.to && !e.explicit && !i) return null;
24298
- let a = await Uh(r, e.state, e.pos), o = a ? e.state.sliceDoc(a.from, a.to) : e.state.doc.toString(), s = await n.getContext(o, { state: e.state });
24296
+ let a = await Hh(r, e.state, e.pos), o = a ? e.state.sliceDoc(a.from, a.to) : e.state.doc.toString(), s = await n.getContext(o, { state: e.state });
24299
24297
  if (s.ctes.length === 0) return null;
24300
24298
  if (i) {
24301
- let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = ag.exec(r);
24299
+ let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = ig.exec(r);
24302
24300
  if (!i || !i[1] || r.slice(0, r.length - i[1].length).endsWith(".")) return null;
24303
- let a = mh(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
24301
+ let a = ph(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
24304
24302
  return !o || o.columns.length === 0 ? null : {
24305
24303
  from: t.from,
24306
- options: lg(o),
24304
+ options: cg(o),
24307
24305
  validFor: /^[\w$]*$/
24308
24306
  };
24309
24307
  }
24310
- let c = s.ctes.map(cg);
24311
- if (!og(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
24308
+ let c = s.ctes.map(sg);
24309
+ if (!ag(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
24312
24310
  let e = new Set(s.tables.map((e) => e.name.toLowerCase())), t = /* @__PURE__ */ new Set();
24313
- for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of lg(n)) {
24311
+ for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of cg(n)) {
24314
24312
  let n = e.label.toLowerCase();
24315
24313
  t.has(n) || (t.add(n), c.push(e));
24316
24314
  }
@@ -24324,59 +24322,59 @@ function ug(e = {}) {
24324
24322
  }
24325
24323
  //#endregion
24326
24324
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/diagnostics.js
24327
- var dg = 750;
24328
- function fg(e, t) {
24325
+ var ug = 750;
24326
+ function dg(e, t) {
24329
24327
  if (t >= e.length) return e.length;
24330
24328
  let n = e.lineAt(t), r = n.text.slice(t - n.from).match(/^[\w"'`.]+/);
24331
24329
  return r ? t + r[0].length : Math.min(t + 1, e.length);
24332
24330
  }
24333
- function pg(e, t) {
24331
+ function fg(e, t) {
24334
24332
  let n = t.line(Math.min(e.line, t.lines)), r = Math.min(n.from + Math.max(0, e.column - 1), t.length);
24335
24333
  return {
24336
24334
  from: r,
24337
- to: fg(t, r),
24335
+ to: dg(t, r),
24338
24336
  severity: e.severity,
24339
24337
  message: e.message,
24340
24338
  source: "sql-parser"
24341
24339
  };
24342
24340
  }
24343
- function mg(e, t, n) {
24341
+ function pg(e, t, n) {
24344
24342
  let r;
24345
24343
  return r = e.line <= 1 ? t.from + Math.max(0, e.column - 1) : n.line(Math.min(t.lineFrom + e.line - 1, n.lines)).from + Math.max(0, e.column - 1), r = Math.max(t.from, Math.min(r, t.to)), {
24346
24344
  from: r,
24347
- to: Math.max(r, Math.min(fg(n, r), t.to)),
24345
+ to: Math.max(r, Math.min(dg(n, r), t.to)),
24348
24346
  severity: e.severity,
24349
24347
  message: e.message,
24350
24348
  source: "sql-parser"
24351
24349
  };
24352
24350
  }
24353
- function hg(e = {}) {
24354
- return wt(gg(e), { delay: e.delay || dg });
24351
+ function mg(e = {}) {
24352
+ return wt(hg(e), { delay: e.delay || ug });
24355
24353
  }
24356
- function gg(e = {}) {
24357
- let t = e.parser || new sh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new Ph(t);
24354
+ function hg(e = {}) {
24355
+ let t = e.parser || new oh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new Nh(t);
24358
24356
  return async (e) => {
24359
24357
  let i = e.state.doc, a = i.toString();
24360
- return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) => mg(t, e, i))) : (await t.validateSql(a, { state: e.state })).map((e) => pg(e, i)) : [];
24358
+ return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) => pg(t, e, i))) : (await t.validateSql(a, { state: e.state })).map((e) => fg(e, i)) : [];
24361
24359
  };
24362
24360
  }
24363
24361
  //#endregion
24364
24362
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/hover.js
24365
- function _g(e, t) {
24363
+ function gg(e, t) {
24366
24364
  if (t.size === 0) return {};
24367
- if (Um(e)) {
24365
+ if (Hm(e)) {
24368
24366
  let n = {};
24369
24367
  for (let [r, i] of Object.entries(e)) if (Array.from(t).some((e) => e.toLowerCase() === r.toLowerCase())) n[r] = i;
24370
- else if (Um(i)) {
24371
- let e = _g(i, t);
24368
+ else if (Hm(i)) {
24369
+ let e = gg(i, t);
24372
24370
  Object.keys(e).length > 0 && (n[r] = e);
24373
24371
  }
24374
24372
  return n;
24375
24373
  }
24376
24374
  return e;
24377
24375
  }
24378
- function vg(e = {}) {
24379
- let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new sh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new Ph(s), d = e.contextAnalyzer ?? new Nh(s), f = null;
24376
+ function _g(e = {}) {
24377
+ let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new oh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new Nh(s), d = e.contextAnalyzer ?? new Mh(s), f = null;
24380
24378
  return async (e, s, p) => {
24381
24379
  let { from: m, to: h, text: g } = e.state.doc.lineAt(s), _ = s, v = s;
24382
24380
  f === null && (f = typeof n == "function" ? n(e) : Promise.resolve(n));
@@ -24391,7 +24389,7 @@ function vg(e = {}) {
24391
24389
  if (_ === s && p < 0 || v === s && p > 0) return null;
24392
24390
  let b = g.slice(_ - m, v - m).toLowerCase();
24393
24391
  if (!b || b.length === 0) return null;
24394
- let x = th(t, e) ?? {}, S = null;
24392
+ let x = eh(t, e) ?? {}, S = null;
24395
24393
  `${b}`;
24396
24394
  let C = Object.hasOwn(y, b) ? y[b] : void 0;
24397
24395
  if (!S && r && C && (S = {
@@ -24404,8 +24402,8 @@ function vg(e = {}) {
24404
24402
  info: C
24405
24403
  }
24406
24404
  }), !S && (i || a) && x) {
24407
- let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h = _g(x, m), g = $m(h, p, { enableFuzzySearch: o });
24408
- if (!g && m.size === 0 && (g = $m(x, p, { enableFuzzySearch: o })), g) {
24405
+ let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h = gg(x, m), g = Qm(h, p, { enableFuzzySearch: o });
24406
+ if (!g && m.size === 0 && (g = Qm(x, p, { enableFuzzySearch: o })), g) {
24409
24407
  let { semanticType: e } = g;
24410
24408
  (e === "table" && !i || e === "column" && !a) && (g = null);
24411
24409
  }
@@ -24434,10 +24432,10 @@ function vg(e = {}) {
24434
24432
  if (t) return { dom: t };
24435
24433
  }
24436
24434
  let t = null;
24437
- if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Cg(w.keywordData);
24435
+ if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Sg(w.keywordData);
24438
24436
  else if (w.tooltipType === "namespace" && w.namespaceData) {
24439
24437
  let e = w.namespaceData, { semanticType: n } = e.item;
24440
- n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t = xg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${bg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${bg(e.aliasFor)}</code></div>` + t));
24438
+ n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t = bg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${yg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${yg(e.aliasFor)}</code></div>` + t));
24441
24439
  }
24442
24440
  if (!t) return { dom: document.createElement("div") };
24443
24441
  let n = document.createElement("div");
@@ -24446,25 +24444,25 @@ function vg(e = {}) {
24446
24444
  };
24447
24445
  };
24448
24446
  }
24449
- function yg(e = {}) {
24447
+ function vg(e = {}) {
24450
24448
  let { hoverTime: t = 300 } = e;
24451
- return mt(vg(e), { hoverTime: t });
24449
+ return mt(_g(e), { hoverTime: t });
24452
24450
  }
24453
- function bg(e) {
24451
+ function yg(e) {
24454
24452
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
24455
24453
  }
24456
- function xg(e) {
24454
+ function bg(e) {
24457
24455
  let t = e.path.join("."), n = e.completion?.label || e.value || e.path[e.path.length - 1] || "unknown", r = `<div class="sql-hover-${e.semanticType}">`;
24458
24456
  switch (r += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">${e.semanticType}</span></div>`, e.semanticType) {
24459
24457
  case "database":
24460
24458
  if (r += `<div class="sql-hover-description">Database${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, e.namespace) {
24461
- let t = Sg(e.namespace);
24459
+ let t = xg(e.namespace);
24462
24460
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} schema${t === 1 ? "" : "s"}</div>`);
24463
24461
  }
24464
24462
  break;
24465
24463
  case "schema":
24466
24464
  if (r += `<div class="sql-hover-description">Schema${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
24467
- let t = Sg(e.namespace);
24465
+ let t = xg(e.namespace);
24468
24466
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} table${t === 1 ? "" : "s"}</div>`);
24469
24467
  }
24470
24468
  break;
@@ -24473,7 +24471,7 @@ function xg(e) {
24473
24471
  let t = e.path;
24474
24472
  t.length > 1 && (r += `<div class="sql-hover-path"><strong>Schema:</strong> <code>${t.slice(0, -1).join(".")}</code></div>`);
24475
24473
  }
24476
- if (e.namespace && Gm(e.namespace)) {
24474
+ if (e.namespace && Wm(e.namespace)) {
24477
24475
  let t = e.namespace;
24478
24476
  if (t.length > 0) {
24479
24477
  r += `<div class="sql-hover-columns"><strong>Columns (${t.length}):</strong><br>`;
@@ -24489,16 +24487,16 @@ function xg(e) {
24489
24487
  }
24490
24488
  break;
24491
24489
  default: if (r += `<div class="sql-hover-description">Namespace${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
24492
- let t = Sg(e.namespace);
24490
+ let t = xg(e.namespace);
24493
24491
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} item${t === 1 ? "" : "s"}</div>`);
24494
24492
  }
24495
24493
  }
24496
24494
  return e.completion?.info && typeof e.completion.info == "string" && (r += `<div class="sql-hover-info">${e.completion.info}</div>`), r += "</div>", r;
24497
24495
  }
24498
- function Sg(e) {
24499
- return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + Sg(e.children) : Object.keys(e).length : 0;
24496
+ function xg(e) {
24497
+ return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + xg(e.children) : Object.keys(e).length : 0;
24500
24498
  }
24501
- function Cg(e) {
24499
+ function Sg(e) {
24502
24500
  let { keyword: t, info: n } = e, r = "<div class=\"sql-hover-keyword\">";
24503
24501
  if (r += `<div class="sql-hover-header"><strong>${t.toUpperCase()}</strong> <span class="sql-hover-type">keyword</span></div>`, r += `<div class="sql-hover-description">${n.description}</div>`, n.syntax && (r += `<div class="sql-hover-syntax"><strong>Syntax:</strong> <code>${n.syntax}</code></div>`), n.example && (r += `<div class="sql-hover-example"><strong>Example:</strong><br><code>${n.example}</code></div>`), n.metadata && typeof n.metadata == "object" && Object.keys(n.metadata).length > 0) {
24504
24502
  r += "<div class=\"sql-hover-metadata\">";
@@ -24507,7 +24505,7 @@ function Cg(e) {
24507
24505
  }
24508
24506
  return r += "</div>", r;
24509
24507
  }
24510
- function wg(e) {
24508
+ function Cg(e) {
24511
24509
  let { tableName: t, columns: n, metadata: r } = e, i = "<div class=\"sql-hover-table\">";
24512
24510
  if (i += `<div class="sql-hover-header"><strong>${t}</strong> <span class="sql-hover-type">table</span></div>`, i += `<div class="sql-hover-description">Table with ${n.length} column${n.length === 1 ? "" : "s"}</div>`, n.length > 0) {
24513
24511
  i += "<div class=\"sql-hover-columns\"><strong>Columns:</strong><br>";
@@ -24521,7 +24519,7 @@ function wg(e) {
24521
24519
  }
24522
24520
  return i += "</div>", i;
24523
24521
  }
24524
- function Tg(e) {
24522
+ function wg(e) {
24525
24523
  let { tableName: t, columnName: n, schema: r, metadata: i } = e, a = "<div class=\"sql-hover-column\">";
24526
24524
  a += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">column</span></div>`, a += `<div class="sql-hover-description">Column in table <code>${t}</code></div>`;
24527
24525
  let o = r[t];
@@ -24540,12 +24538,12 @@ function Tg(e) {
24540
24538
  }
24541
24539
  return a += "</div>", a;
24542
24540
  }
24543
- var Eg = {
24544
- keyword: Cg,
24545
- table: wg,
24546
- column: Tg,
24547
- namespace: xg
24548
- }, Dg = (e = "light") => {
24541
+ var Tg = {
24542
+ keyword: Sg,
24543
+ table: Cg,
24544
+ column: wg,
24545
+ namespace: bg
24546
+ }, Eg = (e = "light") => {
24549
24547
  let t = e === "dark" ? {
24550
24548
  tooltipBg: "#1f2937",
24551
24549
  tooltipBorder: "#374151",
@@ -24669,32 +24667,32 @@ var Eg = {
24669
24667
  };
24670
24668
  //#endregion
24671
24669
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/navigation-extension.js
24672
- function Og(e) {
24673
- return e.resolver ?? new ig(e);
24670
+ function Dg(e) {
24671
+ return e.resolver ?? new rg(e);
24674
24672
  }
24675
- var kg = He.baseTheme({
24673
+ var Og = He.baseTheme({
24676
24674
  ".cm-sqlReference": { backgroundColor: "rgba(96, 165, 250, 0.18)" },
24677
24675
  ".cm-sqlReference.cm-sqlDefinition": { backgroundColor: "rgba(96, 165, 250, 0.35)" },
24678
24676
  ".cm-sqlGotoTarget": {
24679
24677
  textDecoration: "underline",
24680
24678
  cursor: "pointer"
24681
24679
  }
24682
- }), Ag = st.mark({ class: "cm-sqlReference" }), jg = st.mark({ class: "cm-sqlReference cm-sqlDefinition" }), Mg = st.mark({ class: "cm-sqlGotoTarget" });
24683
- function Ng(e) {
24684
- return st.set(e.references.map((t) => (t.from === e.definition.from ? jg : Ag).range(t.from, t.to)), !0);
24680
+ }), kg = st.mark({ class: "cm-sqlReference" }), Ag = st.mark({ class: "cm-sqlReference cm-sqlDefinition" }), jg = st.mark({ class: "cm-sqlGotoTarget" });
24681
+ function Mg(e) {
24682
+ return st.set(e.references.map((t) => (t.from === e.definition.from ? Ag : kg).range(t.from, t.to)), !0);
24685
24683
  }
24686
- var Pg = et.define(), Fg = xt.define({
24684
+ var Ng = et.define(), Pg = xt.define({
24687
24685
  create: () => st.none,
24688
24686
  update(e, t) {
24689
- for (let e of t.effects) if (e.is(Pg)) return e.value;
24687
+ for (let e of t.effects) if (e.is(Ng)) return e.value;
24690
24688
  return t.docChanged ? e.map(t.changes) : e;
24691
24689
  },
24692
24690
  provide: (e) => He.decorations.from(e)
24693
24691
  });
24694
- function Ig(e = {}) {
24695
- let t = Og(e), n = e.highlightDelay ?? 150;
24692
+ function Fg(e = {}) {
24693
+ let t = Dg(e), n = e.highlightDelay ?? 150;
24696
24694
  return [
24697
- Fg,
24695
+ Pg,
24698
24696
  ht.fromClass(class {
24699
24697
  view;
24700
24698
  timer = null;
@@ -24714,21 +24712,21 @@ function Ig(e = {}) {
24714
24712
  let e = this.generation, n = this.view.state, r = n.selection.main, i = st.none;
24715
24713
  if (r.empty) try {
24716
24714
  let e = await t.resolve(n, r.head);
24717
- e && (i = Ng(e));
24715
+ e && (i = Mg(e));
24718
24716
  } catch {}
24719
24717
  if (e !== this.generation) return;
24720
- let a = this.view.state.field(Fg, !1);
24721
- (i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: Pg.of(i) });
24718
+ let a = this.view.state.field(Pg, !1);
24719
+ (i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: Ng.of(i) });
24722
24720
  }
24723
24721
  destroy() {
24724
24722
  this.generation++, this.timer != null && clearTimeout(this.timer);
24725
24723
  }
24726
24724
  }),
24727
- kg
24725
+ Og
24728
24726
  ];
24729
24727
  }
24730
- async function Lg(e, t, n = {}) {
24731
- let r = e.state, i = t ?? r.selection.main.head, a = await Og(n).resolve(r, i);
24728
+ async function Ig(e, t, n = {}) {
24729
+ let r = e.state, i = t ?? r.selection.main.head, a = await Dg(n).resolve(r, i);
24732
24730
  return !a || e.state !== r ? !1 : (e.dispatch({
24733
24731
  selection: {
24734
24732
  anchor: a.definition.from,
@@ -24738,18 +24736,18 @@ async function Lg(e, t, n = {}) {
24738
24736
  userEvent: "select"
24739
24737
  }), !0);
24740
24738
  }
24741
- var Rg = et.define(), zg = xt.define({
24739
+ var Lg = et.define(), Rg = xt.define({
24742
24740
  create: () => st.none,
24743
24741
  update(e, t) {
24744
- for (let e of t.effects) if (e.is(Rg)) return e.value;
24742
+ for (let e of t.effects) if (e.is(Lg)) return e.value;
24745
24743
  return t.docChanged ? e.map(t.changes) : e;
24746
24744
  },
24747
24745
  provide: (e) => He.decorations.from(e)
24748
24746
  });
24749
- function Bg(e = {}) {
24750
- let t = Og(e);
24747
+ function zg(e = {}) {
24748
+ let t = Dg(e);
24751
24749
  return [
24752
- zg,
24750
+ Rg,
24753
24751
  ht.fromClass(class {
24754
24752
  view;
24755
24753
  hovered = null;
@@ -24765,12 +24763,12 @@ function Bg(e = {}) {
24765
24763
  clear() {
24766
24764
  if (this.hovered) {
24767
24765
  this.hovered = null;
24768
- let e = this.view.state.field(zg, !1);
24769
- e && e.size > 0 && this.view.dispatch({ effects: Rg.of(st.none) });
24766
+ let e = this.view.state.field(Rg, !1);
24767
+ e && e.size > 0 && this.view.dispatch({ effects: Lg.of(st.none) });
24770
24768
  }
24771
24769
  }
24772
24770
  async hover(e) {
24773
- let n = Hh(this.view.state, e);
24771
+ let n = Vh(this.view.state, e);
24774
24772
  if (!n) {
24775
24773
  this.clear();
24776
24774
  return;
@@ -24786,7 +24784,7 @@ function Bg(e = {}) {
24786
24784
  try {
24787
24785
  let a = await t.resolve(i, e);
24788
24786
  if (this.hovered !== r || this.view.state !== i) return;
24789
- r.result = a, this.view.dispatch({ effects: Rg.of(a ? st.set([Mg.range(n.from, n.to)]) : st.none) });
24787
+ r.result = a, this.view.dispatch({ effects: Lg.of(a ? st.set([jg.range(n.from, n.to)]) : st.none) });
24790
24788
  } catch {}
24791
24789
  }
24792
24790
  destroy() {
@@ -24826,15 +24824,15 @@ function Bg(e = {}) {
24826
24824
  }), !0) : !1;
24827
24825
  }
24828
24826
  } }),
24829
- kg
24827
+ Og
24830
24828
  ];
24831
24829
  }
24832
- var Vg = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, Hg = /^[A-Za-z_][\w$]*$/, Ug = /* @__PURE__ */ new Set(/* @__PURE__ */ "all.and.as.asc.between.by.case.cross.delete.desc.distinct.else.end.except.exists.fetch.from.full.group.having.in.inner.insert.intersect.into.is.join.lateral.left.like.limit.natural.not.null.offset.on.or.order.outer.qualify.recursive.right.select.set.table.then.union.update.using.values.when.where.window.with".split("."));
24833
- async function Wg(e, t = {}) {
24834
- let n = e.state, r = await Og(t).resolve(n, n.selection.main.head);
24830
+ var Bg = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, Vg = /^[A-Za-z_][\w$]*$/, Hg = /* @__PURE__ */ new Set(/* @__PURE__ */ "all.and.as.asc.between.by.case.cross.delete.desc.distinct.else.end.except.exists.fetch.from.full.group.having.in.inner.insert.intersect.into.is.join.lateral.left.like.limit.natural.not.null.offset.on.or.order.outer.qualify.recursive.right.select.set.table.then.union.update.using.values.when.where.window.with".split("."));
24831
+ async function Ug(e, t = {}) {
24832
+ let n = e.state, r = await Dg(t).resolve(n, n.selection.main.head);
24835
24833
  if (!r) return !1;
24836
- let i = await (t.prompt ?? Vg)(r.name);
24837
- return !i || i === r.name || !Hg.test(i) || Ug.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
24834
+ let i = await (t.prompt ?? Bg)(r.name);
24835
+ return !i || i === r.name || !Vg.test(i) || Hg.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
24838
24836
  changes: r.references.map((e) => ({
24839
24837
  from: e.from,
24840
24838
  to: e.to,
@@ -24843,36 +24841,36 @@ async function Wg(e, t = {}) {
24843
24841
  userEvent: "rename"
24844
24842
  }), !0);
24845
24843
  }
24846
- function Gg(e = {}) {
24844
+ function Wg(e = {}) {
24847
24845
  let t = {
24848
24846
  ...e,
24849
- resolver: Og(e)
24847
+ resolver: Dg(e)
24850
24848
  }, n = e.gotoDefinitionKeys ?? ["F12", "Mod-b"], r = e.renameKey ?? "F2";
24851
24849
  return dt.of([...n.map((e) => ({
24852
24850
  key: e,
24853
- run: (e) => (Lg(e, void 0, t), !0)
24851
+ run: (e) => (Ig(e, void 0, t), !0)
24854
24852
  })), {
24855
24853
  key: r,
24856
- run: (e) => (Wg(e, t), !0)
24854
+ run: (e) => (Ug(e, t), !0)
24857
24855
  }]);
24858
24856
  }
24859
- function Kg(e = {}) {
24857
+ function Gg(e = {}) {
24860
24858
  let t = {
24861
24859
  ...e,
24862
- resolver: Og(e)
24863
- }, n = [Ig(t), Bg(t)];
24864
- return e.keymap && n.push(Gg(t)), n;
24860
+ resolver: Dg(e)
24861
+ }, n = [Fg(t), zg(t)];
24862
+ return e.keymap && n.push(Wg(t)), n;
24865
24863
  }
24866
24864
  //#endregion
24867
24865
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/semantic-diagnostics.js
24868
- var qg = 750;
24869
- function Jg(e) {
24866
+ var Kg = 750;
24867
+ function qg(e) {
24870
24868
  return typeof e == "object" && !!e && !Array.isArray(e) && e.type === "select";
24871
24869
  }
24872
- function Yg(e) {
24870
+ function Jg(e) {
24873
24871
  return Array.isArray(e) ? e : [];
24874
24872
  }
24875
- function Xg(e) {
24873
+ function Yg(e) {
24876
24874
  return {
24877
24875
  sources: [],
24878
24876
  columnRefs: [],
@@ -24881,23 +24879,23 @@ function Xg(e) {
24881
24879
  hasUsingJoin: !1
24882
24880
  };
24883
24881
  }
24884
- function Zg(e, t, n) {
24885
- let r = Yg(e.with);
24882
+ function Xg(e, t, n) {
24883
+ let r = Jg(e.with);
24886
24884
  for (let e of r) {
24887
24885
  let n = e.name, r = typeof n == "string" ? n : n?.value;
24888
24886
  typeof r == "string" && t.add(r.toLowerCase());
24889
24887
  }
24890
24888
  for (let e of r) {
24891
24889
  let r = e.stmt, i = r?.ast ?? r;
24892
- Jg(i) && e_(i, t, n, !1);
24890
+ qg(i) && $g(i, t, n, !1);
24893
24891
  }
24894
24892
  }
24895
- function Qg(e, t, n, r) {
24896
- e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && $g(e.on, t, n, r);
24893
+ function Zg(e, t, n, r) {
24894
+ e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && Qg(e.on, t, n, r);
24897
24895
  let i = e.expr;
24898
24896
  if (i != null) {
24899
24897
  let a = i.ast ?? i;
24900
- Jg(a) && e_(a, n, r, !1), t.sources.push({
24898
+ qg(a) && $g(a, n, r, !1), t.sources.push({
24901
24899
  path: "",
24902
24900
  name: "",
24903
24901
  alias: typeof e.as == "string" ? e.as : null,
@@ -24921,10 +24919,10 @@ function Qg(e, t, n, r) {
24921
24919
  });
24922
24920
  }
24923
24921
  }
24924
- function $g(e, t, n, r) {
24922
+ function Qg(e, t, n, r) {
24925
24923
  if (typeof e != "object" || !e) return;
24926
24924
  if (Array.isArray(e)) {
24927
- for (let i of e) $g(i, t, n, r);
24925
+ for (let i of e) Qg(i, t, n, r);
24928
24926
  return;
24929
24927
  }
24930
24928
  let i = e;
@@ -24932,78 +24930,78 @@ function $g(e, t, n, r) {
24932
24930
  t.columnRefs.push(i);
24933
24931
  return;
24934
24932
  }
24935
- if (Jg(i)) {
24936
- e_(i, n, r, !0);
24933
+ if (qg(i)) {
24934
+ $g(i, n, r, !0);
24937
24935
  return;
24938
24936
  }
24939
- if (Jg(i.ast)) {
24940
- e_(i.ast, n, r, !0);
24937
+ if (qg(i.ast)) {
24938
+ $g(i.ast, n, r, !0);
24941
24939
  return;
24942
24940
  }
24943
- for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && $g(a, t, n, r);
24941
+ for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && Qg(a, t, n, r);
24944
24942
  }
24945
- function e_(e, t, n, r) {
24943
+ function $g(e, t, n, r) {
24946
24944
  let i = new Set(t);
24947
- Zg(e, i, n);
24948
- let a = Xg(!r);
24945
+ Xg(e, i, n);
24946
+ let a = Yg(!r);
24949
24947
  n.push(a);
24950
- for (let t of Yg(e.from)) Qg(t, a, i, n);
24951
- for (let t of Yg(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
24952
- for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && $g(r, a, i, n);
24948
+ for (let t of Jg(e.from)) Zg(t, a, i, n);
24949
+ for (let t of Jg(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
24950
+ for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && Qg(r, a, i, n);
24953
24951
  }
24954
- function t_(e, t) {
24952
+ function e_(e, t) {
24955
24953
  let n = /* @__PURE__ */ new Set();
24956
24954
  switch (e.type) {
24957
24955
  case "select":
24958
- e_(e, n, t, !1);
24956
+ $g(e, n, t, !1);
24959
24957
  return;
24960
24958
  case "update": {
24961
- Zg(e, n, t);
24962
- let r = Xg(!0);
24959
+ Xg(e, n, t);
24960
+ let r = Yg(!0);
24963
24961
  t.push(r);
24964
- for (let i of Yg(e.table)) Qg(i, r, n, t);
24965
- for (let i of Yg(e.from)) Qg(i, r, n, t);
24966
- for (let i of Yg(e.set)) i.column != null && r.columnRefs.push({
24962
+ for (let i of Jg(e.table)) Zg(i, r, n, t);
24963
+ for (let i of Jg(e.from)) Zg(i, r, n, t);
24964
+ for (let i of Jg(e.set)) i.column != null && r.columnRefs.push({
24967
24965
  type: "column_ref",
24968
24966
  table: i.table ?? null,
24969
24967
  column: i.column
24970
- }), $g(i.value, r, n, t);
24971
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && $g(a, r, n, t);
24968
+ }), Qg(i.value, r, n, t);
24969
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && Qg(a, r, n, t);
24972
24970
  return;
24973
24971
  }
24974
24972
  case "delete": {
24975
- Zg(e, n, t);
24976
- let r = Xg(!0);
24973
+ Xg(e, n, t);
24974
+ let r = Yg(!0);
24977
24975
  t.push(r);
24978
- for (let i of Yg(e.from)) Qg(i, r, n, t);
24979
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && $g(a, r, n, t);
24976
+ for (let i of Jg(e.from)) Zg(i, r, n, t);
24977
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && Qg(a, r, n, t);
24980
24978
  return;
24981
24979
  }
24982
24980
  case "insert":
24983
24981
  case "replace": {
24984
- Zg(e, n, t);
24985
- let r = Xg(!1);
24982
+ Xg(e, n, t);
24983
+ let r = Yg(!1);
24986
24984
  t.push(r);
24987
- for (let i of Yg(e.table)) Qg(i, r, n, t);
24988
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (Jg(a) ? e_(a, n, t, !1) : $g(a, r, n, t));
24985
+ for (let i of Jg(e.table)) Zg(i, r, n, t);
24986
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (qg(a) ? $g(a, n, t, !1) : Qg(a, r, n, t));
24989
24987
  return;
24990
24988
  }
24991
24989
  case "create":
24992
24990
  case "alter":
24993
24991
  case "drop": {
24994
- let r = Xg(!1);
24992
+ let r = Yg(!1);
24995
24993
  t.push(r);
24996
- for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (Jg(a) ? e_(a, n, t, !1) : $g(a, r, n, t));
24994
+ for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (qg(a) ? $g(a, n, t, !1) : Qg(a, r, n, t));
24997
24995
  return;
24998
24996
  }
24999
24997
  default: {
25000
- let r = Xg(!1);
24998
+ let r = Yg(!1);
25001
24999
  t.push(r);
25002
- for (let [i, a] of Object.entries(e)) i !== "loc" && $g(a, r, n, t);
25000
+ for (let [i, a] of Object.entries(e)) i !== "loc" && Qg(a, r, n, t);
25003
25001
  }
25004
25002
  }
25005
25003
  }
25006
- function n_(e) {
25004
+ function t_(e) {
25007
25005
  let t = e.column;
25008
25006
  if (typeof t == "string") return t;
25009
25007
  if (typeof t == "object" && t) {
@@ -25012,27 +25010,27 @@ function n_(e) {
25012
25010
  }
25013
25011
  return null;
25014
25012
  }
25015
- function r_(e) {
25013
+ function n_(e) {
25016
25014
  return typeof e.table != "string" || e.table.length === 0 ? null : typeof e.db == "string" && e.db.length > 0 ? `${e.db}.${e.table}` : e.table;
25017
25015
  }
25018
- function i_(e) {
25016
+ function r_(e) {
25019
25017
  if (e == null) return null;
25020
- let t = Wm(e) ? e.children : e;
25021
- return Gm(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
25018
+ let t = Um(e) ? e.children : e;
25019
+ return Wm(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
25022
25020
  }
25023
- function a_(e, t) {
25024
- let n = qm(e, t, { caseSensitive: !1 });
25021
+ function i_(e, t) {
25022
+ let n = Km(e, t, { caseSensitive: !1 });
25025
25023
  if (n) return {
25026
25024
  exists: !0,
25027
- columns: i_(n.namespace)
25025
+ columns: r_(n.namespace)
25028
25026
  };
25029
25027
  let r = t.split(".").map((e) => e.toLowerCase()), i = r[r.length - 1];
25030
25028
  if (!i) return {
25031
25029
  exists: !1,
25032
25030
  columns: null
25033
25031
  };
25034
- let a = Zm(e, i).filter((e) => {
25035
- if (i_(e.namespace) === null || e.path.length < r.length) return !1;
25032
+ let a = Xm(e, i).filter((e) => {
25033
+ if (r_(e.namespace) === null || e.path.length < r.length) return !1;
25036
25034
  let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
25037
25035
  return r.every((e, n) => t[n] === e);
25038
25036
  });
@@ -25041,16 +25039,16 @@ function a_(e, t) {
25041
25039
  columns: null
25042
25040
  } : {
25043
25041
  exists: !0,
25044
- columns: a.length === 1 ? i_(a[0]?.namespace) : null
25042
+ columns: a.length === 1 ? r_(a[0]?.namespace) : null
25045
25043
  };
25046
25044
  }
25047
- function o_(e, t) {
25045
+ function a_(e, t) {
25048
25046
  let n = t.toLowerCase();
25049
25047
  return e.some((e) => e.toLowerCase() === n);
25050
25048
  }
25051
- function s_(e, t) {
25049
+ function o_(e, t) {
25052
25050
  let n = [];
25053
- t_(e, n);
25051
+ e_(e, n);
25054
25052
  let r = /* @__PURE__ */ new Map(), i = (e) => {
25055
25053
  let t = `${e.kind}::${e.identifier.toLowerCase()}`;
25056
25054
  r.has(t) || r.set(t, e);
@@ -25062,7 +25060,7 @@ function s_(e, t) {
25062
25060
  exists: !0,
25063
25061
  columns: null
25064
25062
  };
25065
- let n = a_(t, e.path);
25063
+ let n = i_(t, e.path);
25066
25064
  return {
25067
25065
  source: e,
25068
25066
  exists: n.exists,
@@ -25075,12 +25073,12 @@ function s_(e, t) {
25075
25073
  message: `Unknown table '${e.path}'`
25076
25074
  });
25077
25075
  for (let t of e.columnRefs) {
25078
- let r = n_(t);
25076
+ let r = t_(t);
25079
25077
  if (!r || r === "*") continue;
25080
- let a = r_(t);
25078
+ let a = n_(t);
25081
25079
  if (a) {
25082
25080
  let e = a.toLowerCase(), t = n.find((t) => t.source.alias?.toLowerCase() === e) ?? n.find((t) => t.source.name.toLowerCase() === e || t.source.path.toLowerCase() === e);
25083
- t?.columns && !o_(t.columns, r) && i({
25081
+ t?.columns && !a_(t.columns, r) && i({
25084
25082
  kind: "unknownColumn",
25085
25083
  identifier: r,
25086
25084
  message: `Column '${r}' not found in table '${t.source.path || a}'`
@@ -25088,7 +25086,7 @@ function s_(e, t) {
25088
25086
  continue;
25089
25087
  }
25090
25088
  if (!e.checkUnqualified || e.selectAliases.has(r.toLowerCase())) continue;
25091
- let o = n.filter((e) => e.columns !== null && o_(e.columns, r));
25089
+ let o = n.filter((e) => e.columns !== null && a_(e.columns, r));
25092
25090
  if (o.length >= 2 && !e.hasUsingJoin) {
25093
25091
  i({
25094
25092
  kind: "ambiguousColumn",
@@ -25107,7 +25105,7 @@ function s_(e, t) {
25107
25105
  }
25108
25106
  return [...r.values()];
25109
25107
  }
25110
- function c_(e, t) {
25108
+ function s_(e, t) {
25111
25109
  let n = e.toLowerCase(), r = t.toLowerCase(), i = n.indexOf(r);
25112
25110
  for (; i !== -1;) {
25113
25111
  let e = i > 0 ? n[i - 1] ?? "" : "", t = n[i + r.length] ?? "";
@@ -25116,8 +25114,8 @@ function c_(e, t) {
25116
25114
  }
25117
25115
  return -1;
25118
25116
  }
25119
- function l_(e, t, n, r) {
25120
- let i = n.sliceString(t.from, t.to), a = c_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
25117
+ function c_(e, t, n, r) {
25118
+ let i = n.sliceString(t.from, t.to), a = s_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
25121
25119
  return {
25122
25120
  from: o,
25123
25121
  to: Math.min(a === -1 ? t.from + (i.match(/^[\w"'`.]+/)?.[0].length ?? 1) : o + e.identifier.length, t.to),
@@ -25126,18 +25124,18 @@ function l_(e, t, n, r) {
25126
25124
  source: "sql-schema"
25127
25125
  };
25128
25126
  }
25129
- function u_(e) {
25130
- return Gm(e) ? e.length === 0 : Um(e) ? Object.keys(e).length === 0 : !1;
25127
+ function l_(e) {
25128
+ return Wm(e) ? e.length === 0 : Hm(e) ? Object.keys(e).length === 0 : !1;
25131
25129
  }
25132
- function d_(e = {}) {
25133
- let t = e.parser || new sh(), n = e.structureAnalyzer || new Ph(t), r = {
25130
+ function u_(e = {}) {
25131
+ let t = e.parser || new oh(), n = e.structureAnalyzer || new Nh(t), r = {
25134
25132
  unknownTable: e.severity?.unknownTable ?? "warning",
25135
25133
  unknownColumn: e.severity?.unknownColumn ?? "warning",
25136
25134
  ambiguousColumn: e.severity?.ambiguousColumn ?? "warning"
25137
25135
  };
25138
25136
  return async (i) => {
25139
- let a = th(e.schema, i);
25140
- if (a == null || u_(a)) return [];
25137
+ let a = eh(e.schema, i);
25138
+ if (a == null || l_(a)) return [];
25141
25139
  let o = i.state.doc;
25142
25140
  if (!o.toString().trim()) return [];
25143
25141
  let s = [], c = await n.analyzeDocument(i.state);
@@ -25146,20 +25144,20 @@ function d_(e = {}) {
25146
25144
  let n = await t.parse(e.content, { state: i.state });
25147
25145
  if (!n.success || n.ast == null) continue;
25148
25146
  let c = Array.isArray(n.ast) ? n.ast : [n.ast];
25149
- for (let t of c) for (let n of s_(t, a)) {
25147
+ for (let t of c) for (let n of o_(t, a)) {
25150
25148
  let t = r[n.kind];
25151
- t !== "off" && s.push(l_(n, e, o, t));
25149
+ t !== "off" && s.push(c_(n, e, o, t));
25152
25150
  }
25153
25151
  }
25154
25152
  return s;
25155
25153
  };
25156
25154
  }
25157
- function f_(e = {}) {
25158
- return wt(d_(e), { delay: e.delay || qg });
25155
+ function d_(e = {}) {
25156
+ return wt(u_(e), { delay: e.delay || Kg });
25159
25157
  }
25160
25158
  //#endregion
25161
25159
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/structure-extension.js
25162
- var p_ = et.define(), m_ = xt.define({
25160
+ var f_ = et.define(), p_ = xt.define({
25163
25161
  create() {
25164
25162
  return {
25165
25163
  currentStatement: null,
@@ -25169,11 +25167,11 @@ var p_ = et.define(), m_ = xt.define({
25169
25167
  };
25170
25168
  },
25171
25169
  update(e, t) {
25172
- for (let e of t.effects) if (e.is(p_)) return e.value;
25170
+ for (let e of t.effects) if (e.is(f_)) return e.value;
25173
25171
  return e;
25174
25172
  }
25175
25173
  });
25176
- function h_(e, t) {
25174
+ function m_(e, t) {
25177
25175
  let { isCurrent: n, isValid: r, isFocused: i } = t, a = e.backgroundColor || "#3b82f6";
25178
25176
  !r && e.showInvalid !== !1 && (a = e.errorBackgroundColor || "#ef4444");
25179
25177
  let o = n ? "1" : (e.inactiveOpacity ?? .3).toString(), s;
@@ -25182,7 +25180,7 @@ function h_(e, t) {
25182
25180
  opacity: s
25183
25181
  };
25184
25182
  }
25185
- var g_ = class extends lt {
25183
+ var h_ = class extends lt {
25186
25184
  config;
25187
25185
  isCurrent;
25188
25186
  isValid;
@@ -25193,7 +25191,7 @@ var g_ = class extends lt {
25193
25191
  toDOM() {
25194
25192
  let e = document.createElement("div");
25195
25193
  e.className = "cm-sql-gutter-marker";
25196
- let { backgroundColor: t, opacity: n } = h_(this.config, {
25194
+ let { backgroundColor: t, opacity: n } = m_(this.config, {
25197
25195
  isCurrent: this.isCurrent,
25198
25196
  isValid: this.isValid,
25199
25197
  isFocused: this.isFocused
@@ -25211,10 +25209,10 @@ var g_ = class extends lt {
25211
25209
  return this.isCurrent === e.isCurrent && this.isValid === e.isValid && this.isFocused === e.isFocused && this.config === e.config;
25212
25210
  }
25213
25211
  };
25214
- function __(e, t) {
25212
+ function g_(e, t) {
25215
25213
  let n = Je.empty;
25216
25214
  if (t.whenHide?.(e)) return n;
25217
- let r = e.state.field(m_, !1);
25215
+ let r = e.state.field(p_, !1);
25218
25216
  if (!r) return n;
25219
25217
  let { currentStatement: i, allStatements: a, isFocused: o } = r;
25220
25218
  try {
@@ -25223,7 +25221,7 @@ function __(e, t) {
25223
25221
  if (c.lineTo < r || c.lineFrom > s) continue;
25224
25222
  let a = i?.from === c.from && i?.to === c.to;
25225
25223
  if (!c.isValid && t.showInvalid === !1) continue;
25226
- let l = new g_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
25224
+ let l = new h_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
25227
25225
  for (let t = u; t <= d; t++) try {
25228
25226
  if (t < 1 || t > e.state.doc.lines) continue;
25229
25227
  let r = e.state.doc.line(t);
@@ -25237,21 +25235,21 @@ function __(e, t) {
25237
25235
  }
25238
25236
  return n;
25239
25237
  }
25240
- async function v_(e, t) {
25238
+ async function __(e, t) {
25241
25239
  let { state: n } = e, r = n.selection.main.head, i = await t.analyzeDocument(n), a = {
25242
25240
  currentStatement: await t.getStatementAtPosition(n, r),
25243
25241
  allStatements: i,
25244
25242
  cursorPosition: r,
25245
25243
  isFocused: e.hasFocus
25246
25244
  };
25247
- e.dispatch({ effects: p_.of(a) });
25245
+ e.dispatch({ effects: f_.of(a) });
25248
25246
  }
25249
- function y_(e) {
25250
- return ht.define((t) => (v_(t, e), { update(t) {
25251
- !t.docChanged && !t.selectionSet && !t.focusChanged || v_(t.view, e);
25247
+ function v_(e) {
25248
+ return ht.define((t) => (__(t, e), { update(t) {
25249
+ !t.docChanged && !t.selectionSet && !t.focusChanged || __(t.view, e);
25252
25250
  } }));
25253
25251
  }
25254
- function b_(e) {
25252
+ function y_(e) {
25255
25253
  let t = e.width || 3;
25256
25254
  return He.baseTheme({
25257
25255
  ".cm-sql-gutter": {
@@ -25274,35 +25272,35 @@ function b_(e) {
25274
25272
  }
25275
25273
  });
25276
25274
  }
25277
- function x_(e) {
25275
+ function b_(e) {
25278
25276
  return _t({
25279
25277
  class: `cm-sql-gutter ${e.className || ""}`,
25280
- markers: (t) => __(t, e)
25278
+ markers: (t) => g_(t, e)
25281
25279
  });
25282
25280
  }
25283
- function S_(e = {}) {
25281
+ function x_(e = {}) {
25284
25282
  return [
25285
- m_,
25286
- y_(new Ph(e.parser || new sh())),
25287
- b_(e),
25288
- x_(e)
25283
+ p_,
25284
+ v_(new Nh(e.parser || new oh())),
25285
+ y_(e),
25286
+ b_(e)
25289
25287
  ];
25290
25288
  }
25291
25289
  //#endregion
25292
25290
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/extension.js
25293
- function C_(e = {}) {
25291
+ function S_(e = {}) {
25294
25292
  let t = [], { schema: n, enableLinting: r = !0, enableSemanticLinting: i = !0, enableGutterMarkers: a = !0, enableHover: o = !0, enableNavigation: s = !0, linterConfig: c, semanticLinterConfig: l, gutterConfig: u, hoverConfig: d, navigationConfig: f } = e;
25295
- if (n != null && t.push(eh.of(n)), r && t.push(hg(c)), i) {
25293
+ if (n != null && t.push($m.of(n)), r && t.push(mg(c)), i) {
25296
25294
  let e = l?.parser ?? c?.parser, n = l?.structureAnalyzer ?? (l?.parser == null ? c?.structureAnalyzer : void 0);
25297
- t.push(f_({
25295
+ t.push(d_({
25298
25296
  ...l,
25299
25297
  parser: e,
25300
25298
  structureAnalyzer: n
25301
25299
  }));
25302
25300
  }
25303
- if (a && t.push(S_(u)), o && (t.push(yg(d)), t.push(d?.theme ?? Dg())), s) {
25301
+ if (a && t.push(x_(u)), o && (t.push(vg(d)), t.push(d?.theme ?? Eg())), s) {
25304
25302
  let e = f?.parser ?? c?.parser, n = f?.structureAnalyzer ?? (f?.parser == null ? c?.structureAnalyzer : void 0);
25305
- t.push(...Kg({
25303
+ t.push(...Gg({
25306
25304
  ...f,
25307
25305
  parser: e,
25308
25306
  structureAnalyzer: n
@@ -25312,7 +25310,7 @@ function C_(e = {}) {
25312
25310
  }
25313
25311
  //#endregion
25314
25312
  //#region src/core/network/CachingRequestRegistry.ts
25315
- var w_ = class e {
25313
+ var C_ = class e {
25316
25314
  delegate;
25317
25315
  toKey;
25318
25316
  cache;
@@ -25338,7 +25336,7 @@ var w_ = class e {
25338
25336
  reject(e, t) {
25339
25337
  this.delegate.reject(e, t);
25340
25338
  }
25341
- }, T_ = new Xd("data-source-discovery-result", async (e) => {
25339
+ }, w_ = new Xd("data-source-discovery-result", async (e) => {
25342
25340
  await nl().discoverDataSources({ requestId: e });
25343
25341
  });
25344
25342
  new Xd("sql-table-preview", async (e, t) => {
@@ -25357,32 +25355,32 @@ new Xd("sql-table-preview", async (e, t) => {
25357
25355
  ...t
25358
25356
  });
25359
25357
  });
25360
- var E_ = new w_(new Xd("validate-sql", async (e, t) => {
25358
+ var T_ = new C_(new Xd("validate-sql", async (e, t) => {
25361
25359
  await nl().validateSQL({
25362
25360
  requestId: e,
25363
25361
  ...t
25364
25362
  });
25365
- }), { maxSize: 3 }), D_ = A(/* @__PURE__ */ new Map());
25366
- function O_(e) {
25367
- let t = j.get(D_), n = new Map(t);
25368
- n.delete(e), j.set(D_, n);
25363
+ }), { maxSize: 3 }), E_ = A(/* @__PURE__ */ new Map());
25364
+ function D_(e) {
25365
+ let t = j.get(E_), n = new Map(t);
25366
+ n.delete(e), j.set(E_, n);
25369
25367
  }
25370
- function k_() {
25371
- j.set(D_, /* @__PURE__ */ new Map());
25368
+ function O_() {
25369
+ j.set(E_, /* @__PURE__ */ new Map());
25372
25370
  }
25373
- function A_({ cellId: e, errorMessage: t, dialect: n }) {
25374
- let r = j.get(D_), i = new Map(r), a = n === "DuckDB" ? j_(t) : M_(t);
25375
- i.set(e, a), j.set(D_, i);
25371
+ function k_({ cellId: e, errorMessage: t, dialect: n }) {
25372
+ let r = j.get(E_), i = new Map(r), a = n === "DuckDB" ? A_(t) : j_(t);
25373
+ i.set(e, a), j.set(E_, i);
25376
25374
  }
25377
- function j_(e) {
25378
- let { errorType: t, errorMessage: n } = M_(e), r = n, i, a = n.indexOf("LINE ");
25375
+ function A_(e) {
25376
+ let { errorType: t, errorMessage: n } = j_(e), r = n, i, a = n.indexOf("LINE ");
25379
25377
  return a !== -1 && (i = n.slice(Math.max(0, a)).trim(), r = n.slice(0, Math.max(0, a)).trim()), {
25380
25378
  errorType: t,
25381
25379
  errorMessage: r,
25382
25380
  codeblock: i
25383
25381
  };
25384
25382
  }
25385
- function M_(e) {
25383
+ function j_(e) {
25386
25384
  return {
25387
25385
  errorType: e.split(":")[0].trim(),
25388
25386
  errorMessage: e.split(":").slice(1).join(":").trim()
@@ -25390,26 +25388,26 @@ function M_(e) {
25390
25388
  }
25391
25389
  //#endregion
25392
25390
  //#region src/core/codemirror/language/languages/sql/completion-sources.tsx
25393
- function N_(e) {
25391
+ function M_(e) {
25394
25392
  return e.field(vp);
25395
25393
  }
25396
- function P_() {
25394
+ function N_() {
25397
25395
  return (e) => {
25398
- let t = N_(e.state).engine, n = Tu.getCompletionSource(t);
25396
+ let t = M_(e.state).engine, n = Tu.getCompletionSource(t);
25399
25397
  return n && Wt(n)(e) || null;
25400
25398
  };
25401
25399
  }
25402
- function F_() {
25400
+ function P_() {
25403
25401
  return (e) => {
25404
- let t = N_(e.state).engine, n = Tu.getDialect(t);
25402
+ let t = M_(e.state).engine, n = Tu.getDialect(t);
25405
25403
  return e.matchBefore(/\.\w*/) ? null : Ut(n, !0, (e, t) => ({
25406
25404
  label: e,
25407
25405
  type: t,
25408
25406
  info: async () => {
25409
- let t = (await I_())[e.toLocaleLowerCase()];
25407
+ let t = (await F_())[e.toLocaleLowerCase()];
25410
25408
  if (!t) return null;
25411
25409
  let n = document.createElement("div");
25412
- return n.innerHTML = Eg.keyword({
25410
+ return n.innerHTML = Tg.keyword({
25413
25411
  keyword: e,
25414
25412
  info: t
25415
25413
  }), n;
@@ -25417,31 +25415,31 @@ function F_() {
25417
25415
  }))(e);
25418
25416
  };
25419
25417
  }
25420
- var I_ = Ft(async () => {
25418
+ var F_ = Ft(async () => {
25421
25419
  let e = await import("./common-keywords-8jMJIC1L.js"), t = await import("./duckdb-keywords-BGArYVVK.js");
25422
25420
  return {
25423
25421
  ...e.default.keywords,
25424
25422
  ...t.default.keywords
25425
25423
  };
25426
- }), L_ = wr("marimo:notebook-sql-mode", "default", Ed);
25427
- function R_() {
25428
- let e = (0, Tr.c)(3), [t, n] = Ne(L_), r;
25424
+ }), I_ = wr("marimo:notebook-sql-mode", "default", Ed);
25425
+ function L_() {
25426
+ let e = (0, Tr.c)(3), [t, n] = Ne(I_), r;
25429
25427
  return e[0] !== n || e[1] !== t ? (r = {
25430
25428
  sqlMode: t,
25431
25429
  setSQLMode: n
25432
25430
  }, e[0] = n, e[1] = t, e[2] = r) : r = e[2], r;
25433
25431
  }
25434
- function z_() {
25435
- return j.get(L_);
25432
+ function R_() {
25433
+ return j.get(I_);
25436
25434
  }
25437
25435
  //#endregion
25438
25436
  //#region src/core/codemirror/language/languages/sql/sql.ts
25439
- var B_ = cl, V_ = "DuckDB", H_ = new pt();
25440
- function U_() {
25437
+ var z_ = cl, B_ = "DuckDB", V_ = new pt();
25438
+ function H_() {
25441
25439
  let { latestEngineSelected: e, connectionsMap: t } = j.get(Al);
25442
25440
  return e === null ? [...t.values()].reverse().find((e) => !hl.has(e.name) && e.source !== "iceberg")?.name ?? "__marimo_duckdb" : e;
25443
25441
  }
25444
- var W_ = class {
25442
+ var U_ = class {
25445
25443
  parser = new dd();
25446
25444
  type = "sql";
25447
25445
  sqlModeEnabled;
@@ -25451,16 +25449,16 @@ var W_ = class {
25451
25449
  get defaultMetadata() {
25452
25450
  return {
25453
25451
  ...this.parser.defaultMetadata,
25454
- engine: U_() || "__marimo_duckdb"
25452
+ engine: H_() || "__marimo_duckdb"
25455
25453
  };
25456
25454
  }
25457
25455
  get defaultCode() {
25458
- let e = U_();
25456
+ let e = H_();
25459
25457
  return e && e !== "__marimo_duckdb" ? `_df = mo.sql(f"""SELECT * FROM """, engine=${e})` : this.parser.defaultCode;
25460
25458
  }
25461
25459
  static fromQuery = (e) => dd.fromQuery(e);
25462
25460
  transformIn(e) {
25463
- this.parser.defaultMetadata.engine = U_() || "__marimo_duckdb";
25461
+ this.parser.defaultMetadata.engine = H_() || "__marimo_duckdb";
25464
25462
  let t = this.parser.transformIn(e), n = t.metadata;
25465
25463
  return n.engine && n.engine !== "__marimo_duckdb" && Nl(n.engine), [
25466
25464
  t.code,
@@ -25476,8 +25474,8 @@ var W_ = class {
25476
25474
  return this.parser.isSupported(e);
25477
25475
  }
25478
25476
  getExtension(e, t, n, r, i) {
25479
- let a = G_(), o = [
25480
- H_.of(Yt({ dialect: B_ })),
25477
+ let a = W_(), o = [
25478
+ V_.of(Yt({ dialect: z_ })),
25481
25479
  dt.of([{
25482
25480
  key: "Tab",
25483
25481
  run: (e) => Rt(e) || Dt(e),
@@ -25487,9 +25485,9 @@ var W_ = class {
25487
25485
  defaultKeymap: !1,
25488
25486
  activateOnTyping: !0,
25489
25487
  override: [
25490
- P_(),
25488
+ N_(),
25491
25489
  sp,
25492
- F_(),
25490
+ P_(),
25493
25491
  a.cteCompletionSource,
25494
25492
  a.aliasCompletionSource,
25495
25493
  a.columnCompletionSource
@@ -25497,9 +25495,9 @@ var W_ = class {
25497
25495
  })
25498
25496
  ];
25499
25497
  if (i?.diagnostics?.sql_linter ?? !1) {
25500
- let e = j.get(ze), t = new Y_({ getParserOptions: (e) => ({ database: rv(e) ?? V_ }) });
25501
- o.push(C_({
25502
- schema: tv,
25498
+ let e = j.get(ze), t = new J_({ getParserOptions: (e) => ({ database: nv(e) ?? B_ }) });
25499
+ o.push(S_({
25500
+ schema: ev,
25503
25501
  enableLinting: !0,
25504
25502
  linterConfig: {
25505
25503
  delay: 250,
@@ -25530,7 +25528,7 @@ var W_ = class {
25530
25528
  enableColumns: !0,
25531
25529
  parser: a.parser,
25532
25530
  contextAnalyzer: a.contextAnalyzer,
25533
- theme: Dg(e)
25531
+ theme: Eg(e)
25534
25532
  },
25535
25533
  enableNavigation: !0,
25536
25534
  navigationConfig: {
@@ -25543,36 +25541,36 @@ var W_ = class {
25543
25541
  e.focusChanged && t.setFocusState(e.view.hasFocus);
25544
25542
  }));
25545
25543
  }
25546
- return this.sqlModeEnabled && o.push(ov()), o;
25544
+ return this.sqlModeEnabled && o.push(av()), o;
25547
25545
  }
25548
25546
  };
25549
- function G_() {
25550
- let e = new sh({ getParserOptions: (e) => ({ database: K_(e) }) }), t = new q_(e), n = new J_(e);
25547
+ function W_() {
25548
+ let e = new oh({ getParserOptions: (e) => ({ database: G_(e) }) }), t = new K_(e), n = new q_(e);
25551
25549
  return {
25552
25550
  parser: e,
25553
25551
  contextAnalyzer: t,
25554
25552
  structureAnalyzer: n,
25555
- cteCompletionSource: ug({
25553
+ cteCompletionSource: lg({
25556
25554
  parser: e,
25557
25555
  contextAnalyzer: t,
25558
25556
  structureAnalyzer: n
25559
25557
  }),
25560
- aliasCompletionSource: Fh({
25561
- schema: tv,
25558
+ aliasCompletionSource: Ph({
25559
+ schema: ev,
25562
25560
  parser: e,
25563
25561
  contextAnalyzer: t
25564
25562
  }),
25565
- columnCompletionSource: zh({
25566
- schema: tv,
25563
+ columnCompletionSource: Rh({
25564
+ schema: ev,
25567
25565
  parser: e,
25568
25566
  contextAnalyzer: t
25569
25567
  })
25570
25568
  };
25571
25569
  }
25572
- function K_(e) {
25573
- return rv(e) ?? V_;
25570
+ function G_(e) {
25571
+ return nv(e) ?? B_;
25574
25572
  }
25575
- var q_ = class extends Nh {
25573
+ var K_ = class extends Mh {
25576
25574
  analyzers = /* @__PURE__ */ new Map();
25577
25575
  analysisParser;
25578
25576
  constructor(e) {
@@ -25585,10 +25583,10 @@ var q_ = class extends Nh {
25585
25583
  for (let e of this.analyzers.values()) e.clearCache();
25586
25584
  }
25587
25585
  getAnalyzer(e) {
25588
- let t = K_(e), n = this.analyzers.get(t);
25589
- return n || (n = new Nh(this.analysisParser), this.analyzers.set(t, n)), n;
25586
+ let t = G_(e), n = this.analyzers.get(t);
25587
+ return n || (n = new Mh(this.analysisParser), this.analyzers.set(t, n)), n;
25590
25588
  }
25591
- }, J_ = class extends Ph {
25589
+ }, q_ = class extends Nh {
25592
25590
  analyzers = /* @__PURE__ */ new Map();
25593
25591
  analysisParser;
25594
25592
  constructor(e) {
@@ -25607,10 +25605,10 @@ var q_ = class extends Nh {
25607
25605
  for (let e of this.analyzers.values()) e.clearCache();
25608
25606
  }
25609
25607
  getAnalyzer(e) {
25610
- let t = K_(e), n = this.analyzers.get(t);
25611
- return n || (n = new Ph(this.analysisParser), this.analyzers.set(t, n)), n;
25608
+ let t = G_(e), n = this.analyzers.get(t);
25609
+ return n || (n = new Nh(this.analysisParser), this.analyzers.set(t, n)), n;
25612
25610
  }
25613
- }, Y_ = class extends sh {
25611
+ }, J_ = class extends oh {
25614
25612
  validationTimeout = null;
25615
25613
  pendingValidationResolve = null;
25616
25614
  VALIDATION_DELAY_MS = 300;
@@ -25629,7 +25627,7 @@ var q_ = class extends Nh {
25629
25627
  return;
25630
25628
  }
25631
25629
  try {
25632
- let r = await sv(e, t, n, hl.has(t) ? z_() : "default");
25630
+ let r = await ov(e, t, n, hl.has(t) ? R_() : "default");
25633
25631
  if (r.error) {
25634
25632
  a.error("Failed to validate SQL", { error: r.error }), this.resolvePendingValidation([]);
25635
25633
  return;
@@ -25642,55 +25640,55 @@ var q_ = class extends Nh {
25642
25640
  });
25643
25641
  }
25644
25642
  async validateSql(e, t) {
25645
- let n = ev(t.state), r = iv(n.engine);
25646
- return this.isFocused ? X_(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? V_) : super.validateSql(e, t) : [];
25643
+ let n = $_(t.state), r = rv(n.engine);
25644
+ return this.isFocused ? Y_(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? B_) : super.validateSql(e, t) : [];
25647
25645
  }
25648
25646
  async parse(e, t) {
25649
- let n = ev(t.state).engine;
25650
- return X_(n, iv(n)) ? {
25647
+ let n = $_(t.state).engine;
25648
+ return Y_(n, rv(n)) ? {
25651
25649
  success: !0,
25652
25650
  errors: []
25653
25651
  } : super.parse(e, t);
25654
25652
  }
25655
25653
  };
25656
- function X_(e, t) {
25654
+ function Y_(e, t) {
25657
25655
  return e === "__marimo_duckdb" || t === "DuckDB";
25658
25656
  }
25657
+ function X_(e, t) {
25658
+ e.dispatch({ effects: V_.reconfigure(Yt({ dialect: t })) });
25659
+ }
25659
25660
  function Z_(e, t) {
25660
- e.dispatch({ effects: H_.reconfigure(Yt({ dialect: t })) });
25661
+ X_(e, Tu.getDialect(t));
25661
25662
  }
25662
- function Q_(e, t) {
25663
- Z_(e, Tu.getDialect(t));
25663
+ function Q_(e) {
25664
+ let t = $_(e.state).engine;
25665
+ X_(e, Tu.getDialect(t));
25664
25666
  }
25665
25667
  function $_(e) {
25666
- let t = ev(e.state).engine;
25667
- Z_(e, Tu.getDialect(t));
25668
- }
25669
- function ev(e) {
25670
25668
  return e.field(vp);
25671
25669
  }
25672
- function tv(e) {
25673
- let t = ev(e.state).engine, n = Tu.getCompletionSource(t);
25670
+ function ev(e) {
25671
+ let t = $_(e.state).engine, n = Tu.getCompletionSource(t);
25674
25672
  if (!n?.schema) return {};
25675
25673
  let r = n.schema;
25676
- if (!nv(r)) return r;
25674
+ if (!tv(r)) return r;
25677
25675
  let i = n.defaultSchema, a = i ? r[i] : void 0;
25678
- return a && !Array.isArray(a) && typeof a == "object" && "children" in a && nv(a.children) ? {
25676
+ return a && !Array.isArray(a) && typeof a == "object" && "children" in a && tv(a.children) ? {
25679
25677
  ...r,
25680
25678
  ...Object.fromEntries(Object.entries(a.children).filter(([e]) => !Object.hasOwn(r, e)))
25681
25679
  } : r;
25682
25680
  }
25683
- function nv(e) {
25681
+ function tv(e) {
25684
25682
  if (Array.isArray(e)) return !1;
25685
25683
  if (!("self" in e) || !("children" in e)) return !0;
25686
25684
  let t = e.self;
25687
25685
  return !(typeof t == "object" && t && !Array.isArray(t) && "label" in t && typeof t.label == "string");
25688
25686
  }
25689
- function rv(e) {
25690
- let t = ev(e).engine;
25691
- return iv(t);
25687
+ function nv(e) {
25688
+ let t = $_(e).engine;
25689
+ return rv(t);
25692
25690
  }
25693
- function iv(e) {
25691
+ function rv(e) {
25694
25692
  let t = Tu.getInternalDialect(e)?.toLowerCase();
25695
25693
  if (!t || !ul(t)) return null;
25696
25694
  switch (t) {
@@ -25729,45 +25727,45 @@ function iv(e) {
25729
25727
  default: return T(t), null;
25730
25728
  }
25731
25729
  }
25732
- var av = 300;
25733
- function ov() {
25730
+ var iv = 300;
25731
+ function av() {
25734
25732
  return ht.define((e) => {
25735
25733
  let t, n = null, r = e.state.facet(il);
25736
25734
  return {
25737
25735
  update(e) {
25738
25736
  if (!e.docChanged) return;
25739
- let i = z_();
25737
+ let i = R_();
25740
25738
  if (i === "default") return;
25741
- let o = ev(e.state).engine;
25739
+ let o = $_(e.state).engine;
25742
25740
  if (!hl.has(o)) return;
25743
25741
  let s = e.state.doc.toString();
25744
25742
  t && window.clearTimeout(t), t = window.setTimeout(async () => {
25745
25743
  if (n !== s) {
25746
25744
  if (n = s, s === "") {
25747
- O_(r);
25745
+ D_(r);
25748
25746
  return;
25749
25747
  }
25750
25748
  try {
25751
- let e = iv(o), t = (await sv(s, o, e, i)).validate_result;
25752
- t?.error_message ? A_({
25749
+ let e = rv(o), t = (await ov(s, o, e, i)).validate_result;
25750
+ t?.error_message ? k_({
25753
25751
  cellId: r,
25754
25752
  errorMessage: t.error_message,
25755
25753
  dialect: e
25756
- }) : O_(r);
25754
+ }) : D_(r);
25757
25755
  } catch (e) {
25758
25756
  a.error("Failed to validate SQL", { error: e });
25759
25757
  }
25760
25758
  }
25761
- }, av);
25759
+ }, iv);
25762
25760
  },
25763
25761
  destroy() {
25764
- t && window.clearTimeout(t), O_(r);
25762
+ t && window.clearTimeout(t), D_(r);
25765
25763
  }
25766
25764
  };
25767
25765
  });
25768
25766
  }
25769
- async function sv(e, t, n, r) {
25770
- let i = await E_.request({
25767
+ async function ov(e, t, n, r) {
25768
+ let i = await T_.request({
25771
25769
  onlyParse: r === "default",
25772
25770
  engine: t,
25773
25771
  dialect: n,
@@ -25778,17 +25776,17 @@ async function sv(e, t, n, r) {
25778
25776
  }
25779
25777
  //#endregion
25780
25778
  //#region src/core/codemirror/language/LanguageAdapters.ts
25781
- var cv = Ft(() => new zm()), lv = Ft(() => new yp()), uv = Ft(() => new W_()), dv = {
25779
+ var sv = Ft(() => new Rm()), cv = Ft(() => new yp()), lv = Ft(() => new U_()), uv = {
25782
25780
  get python() {
25783
- return cv();
25781
+ return sv();
25784
25782
  },
25785
25783
  get markdown() {
25786
- return lv();
25784
+ return cv();
25787
25785
  },
25788
25786
  get sql() {
25789
- return uv();
25787
+ return lv();
25790
25788
  }
25791
- }, fv = F.forwardRef((e, t) => {
25789
+ }, dv = F.forwardRef((e, t) => {
25792
25790
  let n = (0, Tr.c)(13), r, i;
25793
25791
  n[0] === e ? (r = n[1], i = n[2]) : ({className: r, ...i} = e, n[0] = e, n[1] = r, n[2] = i);
25794
25792
  let a;
@@ -25808,27 +25806,27 @@ var cv = Ft(() => new zm()), lv = Ft(() => new yp()), uv = Ft(() => new W_()), d
25808
25806
  children: c
25809
25807
  }), n[8] = i, n[9] = t, n[10] = a, n[11] = c, n[12] = l) : l = n[12], l;
25810
25808
  });
25811
- fv.displayName = $n.displayName;
25812
- var pv = /* @__PURE__ */ new Set(/* @__PURE__ */ "__*.marimo.app.False.None.True.__peg_parser__.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield.None.setup".split("."));
25813
- function mv(e, t = !0) {
25809
+ dv.displayName = $n.displayName;
25810
+ var fv = /* @__PURE__ */ new Set(/* @__PURE__ */ "__*.marimo.app.False.None.True.__peg_parser__.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield.None.setup".split("."));
25811
+ function pv(e, t = !0) {
25814
25812
  return e = e.trim(), e ? (/^\d/.test(e) && (e = `_${e}`), e = e.replaceAll(/\W/g, "_"), t ? e.toLowerCase() : e) : "_";
25815
25813
  }
25816
- function hv(e, t) {
25817
- let n = new Set(t), r = e, i = (e) => !n.has(e) && !pv.has(e);
25814
+ function mv(e, t) {
25815
+ let n = new Set(t), r = e, i = (e) => !n.has(e) && !fv.has(e);
25818
25816
  if (i(e)) return e;
25819
25817
  let a = 1;
25820
25818
  for (; !i(r);) r = `${e}_${a}`, a++;
25821
25819
  return r;
25822
25820
  }
25823
- function gv(e, t) {
25824
- return _v(e) ? `cell-${t}` : e;
25821
+ function hv(e, t) {
25822
+ return gv(e) ? `cell-${t}` : e;
25825
25823
  }
25826
- function _v(e) {
25824
+ function gv(e) {
25827
25825
  return !e || e === "_" || e === "__";
25828
25826
  }
25829
25827
  //#endregion
25830
25828
  //#region src/hooks/useAutoGrowInputProps.ts
25831
- function vv(e) {
25829
+ function _v(e) {
25832
25830
  let t = (0, Tr.c)(15), { minWidth: n, padding: r } = e, i = n === void 0 ? 70 : n, a = r === void 0 ? 15 : r, [o, s] = (0, F.useState)(50), c = (0, F.useRef)(null), l = (0, F.useRef)(null), u;
25833
25831
  t[0] === a ? u = t[1] : (u = (e) => {
25834
25832
  if (l.current && c.current) {
@@ -25875,11 +25873,11 @@ function vv(e) {
25875
25873
  }
25876
25874
  //#endregion
25877
25875
  //#region src/core/codemirror/language/panel/markdown.tsx
25878
- function yv({ currentQuotePrefix: e, checked: t, prefix: n }) {
25876
+ function vv({ currentQuotePrefix: e, checked: t, prefix: n }) {
25879
25877
  let r = e;
25880
25878
  return t ? e === "" ? r = n : e !== "rf" && n !== e && (r = "rf") : e === n ? r = "" : e === "rf" && (r = n === "r" ? "f" : "r"), r;
25881
25879
  }
25882
- var bv = () => {
25880
+ var yv = () => {
25883
25881
  let e = (0, Tr.c)(2), t;
25884
25882
  e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, I.jsxs)("section", {
25885
25883
  className: "flex flex-col gap-0.5",
@@ -25935,36 +25933,36 @@ var bv = () => {
25935
25933
  ]
25936
25934
  })]
25937
25935
  }), e[1] = n) : n = e[1], n;
25938
- }, xv = "data-cell-id";
25939
- function Sv(e) {
25940
- return { [xv]: e };
25936
+ }, bv = "data-cell-id";
25937
+ function xv(e) {
25938
+ return { [bv]: e };
25941
25939
  }
25942
- var Cv = "data-for-cell-id";
25943
- function wv(e) {
25944
- return { [Cv]: e };
25940
+ var Sv = "data-for-cell-id";
25941
+ function Cv(e) {
25942
+ return { [Sv]: e };
25945
25943
  }
25946
25944
  //#endregion
25947
25945
  //#region src/components/databases/icons/clickhouse.svg
25948
- var Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Ev = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Dv = "data:image/png;base64,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", Ov = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", kv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", Av = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAARGpJREFUeNrs3duPlNeZ7/FV56ahD7h7+wD2uHAmGy7GNlFkaaKZyGW0L2augv+AkZu/IOaWG5sbbm1r/wFuS3OzcxOskZJ9EeGynCiKvCNjomQgCbgwBkNz6MZNN/R5v89b72sK6EMd1nrfdfh+pFJj4mB6VXX1r5/1rGcpBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhKLAEAEz6v5fnG4/91uHoMb7Jv/q6xv/s2ehxd5Pfbz7+7/3biyNzPEsACFgA8g5M40lIEml4Guv4vc7/3SWt5JH++nJHWJMQ1orCWItXAAACFoB+AlQ9+tD5eDUJTek/h24uCV3i045/nosC2FmWBwABCwg3RKVVpjQ0va7crTzZppU8JGxdTj5S/QIIWAA8C1MN9bASdVht3QMF85pJ+PoyCV70gAEELACOhCl5vNgRpmC3VhK2OkNXi2UBCFgA8glTh5Mw9SphyuvQ1YwCV5MlAQhYAPSHqfEkTEmIel09PL2HcEjganaErhZLAhCwAPQXqF7vCFZAp1YSuD4lcAEELAAEKhC4AAIWAGOhKu2h+pliyw/6pVuKn0Zh6zTLARCwAF8D1XhHoDqqGJWAbEnIkurWaapbAAELcD1U1ZMwRZUKNkmrWx8xfR4gYAGuhKrDHaGKXirYrpWErY/ZSgQIWICNoeqtJFjVWRE4SqbKnyZsAQQsgFAFELYAAhbgeKiqJ4FKghXbfwgpbE0rerYAAhagMVSNd4SqBiuCwLWixweK04gAAQvoM1g11MMtQEYqAE9qqnZVa5qlAAhYwHahqh59mEqCVZ0VAbqS9mt9wBYiQMACOoNVugV4lNUABiIBK91CnGM5QMACwgtVsu33tqJaBZhAVQsELCCwYNVIQtUUqwFkoqno1QIBC/A2WEmg+rlivAKQl5YErejxPtuHIGABbocqtgEBO01Hj5OMegABC3ArWEmYekcxYgGwXTMJWk2WAgQswN5g1VD0VwGuBi36tEDAAiwMVlKxarAagNNaql3RImiBgAUQrAAQtAACFghWANwgpw1lcCknD0HAAghWAAhaIGABBCsAbmgptg5BwAIIVgAIWiBgAbYEK5m2/h7BCkAXQet4FLROsxQgYAFbB6u6alesplgNAD1oKgaWgoAFPBGs0itt3mE1AAxAKlnHuYIHBCwQri7Pp8GKK20A6PK+ale0OHEIAhaCC1aN6MOHikuYAZgxl4Ss91kKELAQQrCqJ8GqwWoAyEArehyjPwsELPgarOizApAn+rNAwIJ34eqoao9dqLMaAHJ2UjERHgQsOB6sJFCxHQjANi3FtiEIWHAwWLEdCMAFbBuCgAVnwlVDcToQgDs4bQgCFqwOVlK1kj6rKVYDgIPOqva24VmWAoMqsgTQFK6kif0rwhUAh8kdqF9E72fvshQYFBUsDBqspGol24FHWQ0AHmkpmuBBwEJO4YorbgD4jit3QMBCZsGKqhWAkLQU1Sz0iB4s9Bqu0l4rwhWAUNSjxyf0ZqEXVLDQbbCiagUAnDQEAQsaw1Uj+vBLRa8VAKSOMzcLBCwMEq5krtXbrAQAPKGp2tWsFksBAha6DVYyD0a2BA+zGgCwpbkkZJ1mKUDAwk7hivELANAbxjmAgIUtgxWN7ADQPxrgQcDCE+FKtgKlkb3OagBA36SCJQ3w0ywFAQuEK9kSfI+VAABtppOgxZYhAQsBBiu2BAHAHLYMCVgIMFxxShAAzOOUYaC4KifMcDUVffiEcAUAxslOwS+TmYIICBWs8MIVg0MBIB/N6PEmfVkELPgVrOKfoqJHg9UAgNy0kpBFX5bn2CIMI1zJVuAXhCsAyF09enyStGqAgAWHw5V8EX+imG8FALaIT3DTl+U3tgj9DlfvqvaVNwAAO8npwmP0ZRGw4Eawkp+O5CejKVYDAKwn/VjSl9ViKQhYsDtcMYIBANwiFaw3aH73Bz1YfoWrtJmdcAUAbpEfjr+g+Z2ABfvCVUPRzA4ArvswuR8WjmOL0I9wJT/xfMhKAIA3pv/txZFjLAMBC/mFq3cVJwUBwEecMCRgIadwJVWrKVYCALwlTe9vELIIWMgmWDGGAQDCClnHOGFIwIL5cMUYBgAIC2McCFggXAEACFlhY0yDO+GqTrgCgKDFP2RH3w+OshT2o4LlRrg6nISrcVYDAKDaPVnTLAMBC4QrAAAhi4AFwhUAgJAFAhbhCgBAyAIBC4QrAAAhi4AFwhUAgJAFAhbhCgBAyAIBi3BFuAIAELIIWCBcAQAIWSBgEa4AAIQsELAIVwAAELIIWCBcAQAIWQQsEK4AAIQsELBcDVfjSbg6zGoAADL0RhSymiwDAYtwBas9M1xW+3dX1J5KkcUANLi6sKIuz6+o1fUNFsOMuSRknWUpCFiEK1hlqFRQ+/dU1DO7yqpc5MsH0E3C1YW5JXX7wRqLQcgiYKGrgPXL6MNRVsJNE0Ml9exwJf4IwLy7y2vqwuySerBGNctQyDoQhaw5loKA5Xq4+jD6MMVKuEUqVFKpkoqVVK4AZEuqWVcXVtXl+WUWQz+pYL1ByCJguRyu3os+vM1KuEN6qqS3SqpVbAMC+bu3sq7+OrcUfwQhi4AFCVdT0YcPWQk3SNP6s9FjrMo2IGAjmuCNmI4C1jGWgYDlUriSfqtfshJ2k62/Z4Yrav9umtYBF0hP1sW7NMETsghYoYYrBolabrxW+n4bEIB7JGBJ0KIJXhsGkRKwrA9XEqq+IlzZh6Z1wC+yVShbhrJ1CC3ejELWaZaBgGVruGLWlWVoWgf8RhO8NszIImBZG7CYdWURmtaBsNAEr0UrevyIk4UELJvCFeMYLEDTOhA2muC1YHwDAcuacDWlGMeQK5rWAXSiCX5gnCwkYOUerqTf6gtWIntSoZJA9eJIlaZ1AE+gCX5gx6OQ9T7LQMDKI1xxYjAHEqYkVNG0DqAbcq/hxbvLNMH3h5OFBKxcApZUrjgxmBGa1gEMIq1m0QTfE04WErAyD1dc4JyBtGldwhXbgAAGJT1ZMtJhbokm+B7Q9E7AyixcSbCiqd0gaVqXoaASrABAN2mCvxAFLapZXTsdBaw3WQYClslwRVO7ITStA8gSTfA9o+mdgGUsXI0n4arOauhD0zqAPNEE3xPZKmyyDAQs3QFLrsFpsBJ60LQOwCY0wXdF+rAO0I+1Mxpcug9X7xKu9HhWJq13XLjMHEDAPw9W3asGTQ6V4rtLpQl+hZC1FdnJkWvh3mAptkcFq7twJcHqE1ZicNUoVP3TxDALAXju0uySs3/35ShcLa5xynAHJ//txZF3WYatFVmCHcNVmtahwXO7qywCAKtVigWqDzt7Jyk+gIDVNwlXTGrXQKpXE0PsSgOwm4SrapFvj918f0yKECBg9Ya+K72oXgFwRY2A1Q12eAhYfYUrmXf1DiuhB9UrAE59cywoVS6wUdiFRlKMAAGrq3BFKteM6hUA534wpIrVrXeSogQIWDuSa3DqLIMeu8pFqlcAHAxYNLv3gH4sAtb2ohfI0ejDUVZCnxdGqF4BcFOtxLfJLtWjx3ssAwFrq3AlLxAucdZopCqD+5jUDsBN1QLfJnswlRQpQMB6goQrSpwaPbe7wiIAcPebZKE9Fwvdfx9lq5CA9YjoBfG2YiSDVlSvAPiAKlZPOCRGwHokXDGSwQCqVwB8IBWsIiMbetFIihYELLA1qBvVKwA+qbFN2Kt3kr5mAlaokgFpzO/QjOoVAJ8wE6tnUrQI+tBY0K8YtgbNoHoFwDfcT9iXoLcKQ3+1MJLBgOf3MPcKgH+qbBP2I9itwmADVpKq2RrUTCa2y+R2APCN3E1Is3vPgt0qDPI7YZKm2Ro0gDsHAfhsiG3CfshW4RQBKwycGjRAqlfVEj/dAfBXhfsJ+/VeaANIgwtYSYpu8FrXj+oVAN8V4pBFFasPwW0VBvUqSdIzl1EaQPUKQCiYidW3o9H34QYBy0/vKbYGjaB6BSAUpUIhfqAvwdxVWA7lGT144kzjf//X+Sle2/r98B/2qtl/epaFsFQl+kbw3JAf3wyW1jbUrSWeUxd89ruW15/fvZVVNXN/mSe6d/U788tyiv9d3z/RYCJ4FLC+kieW17Z+/3H0ZTVCBcs6w6WCmqgWoo/+fE63Hqyr393gm5oLrv7hkvef49/mFtX6xgZPdn8OXDh1xOsUHsQWYRSu3iVcmXHopQnClWXGKgVVHy6qF3b5Fa7E5BDNxbDoa61aZhH6533Du/fvVlG4kmD1c17L5gIWLPhCLrSD1Uu7i+rZWkHVyCGAcXuHuHN1AI3o+/NRApbbaGw3ZP8zI2pf9EC+wWqyWlA/GG4Hqwp9t0BmZCbWcJl7Vwf5/hyFLG+/P3sdsKSxPfpwlNewGa8ceppFyO2NXalnh9rBSvqsODUO5IMq1kDq0cPby6B9r2Ax88oQ6bs68DyFwazVkmD1UhSsxsoEKyBveyqluJKFvr2TtPIQsFwRPWFc5mzQa6/sYxEyJCcCX9hVjJvXJVgBsMdYjSrWgLwshngZsJI9XS5zNkSqVzS3Z/TGnTSu+3giEPDFKKcJB3U0aekhYDlAwhX7V4Yc+sEki2Dyi7Kg1N6OE4E0rgN2ky1C2SrEQLyrYnkXsJK93Ld5rZpRq5bUKwdpbjcVrNITgU8TrACn0Ow+sMPR9+8pAhYpOFivHHomDlnQ+dNvu3H9h7s5EQi4SsY10Ow++Pdvn8Y2eBWwGMtgHr1XGt+QS4VHTgQCcBtVrIFJuPJmB8q3ChaN7YbDFdfiDG5PuX0iUBrXCVaAP7g6R4uf+1LF8iZgJSP3G7w2zWE0w4Bvvknj+v4hTgQCPioWCoSswUm48qLVx6cKFr1XBsm1OFSv+nnDbTeucyIQCAPbhFpM+TB81IuAlZw8qPOaNOe1l59jEXogjevpiUBpXCdYAWGolYrxAwNzvuWnyBOBnXCpc2/BKm1c50QgECaqWFpIFcvp21icD1jJlTh1XosG15iTgzuSE4H7ORGYzVqzvrDcSKUU92NhYE63/jgdsLgSJ4M3Cq7F2ZY0rqcnAvfwjZ+ABah2s/sIk911aLh8hY7rFSypXnEljkGcHNw6WKWN65wIBPC4iV0cCtLE2SKKswErqV79nNeeOTKxnepV50+l7cb1H3IiEMAOZKq7THfHwJytYrlcwaJ6ZZhci4N247rcDfgDGtcB9GC0xkwsTZysYjkZsKhemcelzo+eCNxbIVgB6I0MHaXZXQsnq1iuVrCoXpkOsS9NBHups5wIlMZ1TgQC0BGyoIVzVSznAhbVq2y8GuD2oDSu14fbJwJpXAegAzOxtHGuiuViBUvuHKR6ZVBIlzrLtl/nicAaA5gBaCTN7nsY2aCLU1WsIguMx71yyP/eq/REoDSucyIQgEljNapYmjRcuqPQqYDFnYPmybU4k3uHPf5pst24zolAAFmRClaFNxtdnCmyFFlYdPL1Uudax4lAaVznvQ5AlqhiaTPlShXLmYAVLaj0XtV5bZkjlSvfLnVOTwTWOREIIEd7mYmlkxPFFpcqWJwcNMyn3qu0cZ0TgQCs+GZbKDCyQZ+jyUQBAtagkqOZDV5T5vhwqbNs++3tOBFI4zoAmzDZXRsJV28TsPR4i9eTWS5f6tx5IvBpghUAS8ndhDS7a2P9rpb1AStpZpvitWSOTGw/8Lx7o8XSE4Fy+TInAgG4gMGj2ownkwUIWD6nVNfJpc4uXYsjjeudJwIRlskhpsHCXdxPGE4+sPqdKmlim+I1ZDhgOXKp855y+0SgNK4TrAC4SMLVCJPddTls8/U5tv8oyLU4hh1y4FLn9ETg/iFOBAJwH9uEWllbxbI9YDFY1DBbm9vTxnVOBALwTa1UjB/Q4qitg0etfYaTsl+d1445Nl7qLI3r6YlAaVwnWAHwEVUsraYIWL2huT2DgGVTsEob1zkRCMB3NLv7nxesDFhJue8orxlz5FJnG67FkROB+zkRCCDQkAUtrBzZYGsFa4rXi1l5X+osjevpicA9BCsAAWKbUCvrBpIXWajwSN9VXtWrsY6rbDgRCCBkMtVdprtDi4Ztze7WBaxogWRrsM5rxZysTw6mJwJ/yIlAAHgE9xNqZVUvlo0VLKpXBmV5qbM0rsvdgD+gcR0ANiV9WNxPqM0UAWsLNLebd+gHk5kEq/RE4N4KwQoAtg1ZNXqxNLGq2d22ChbhyiCZ2G7yWhw5ESiN65wIBIDujXKaUCdrdsFsC1jMvjLI1KXO0rheH26fCKRxHQB6I1uEe7ifUBdrmt2tCVjRghxWNLcbpbP3Srb9Ok8E1rj1AQD6/0GVbUKdpghYj6J6ZThc6bgWJz0RKI3rnAgEAD2kgkWzuzZWbBPaFLDovzJo0NEMaeM6JwKRtzLXi8BTDB7Vpp7sihGwkq7/cV4TZhx4frzv6lWt40SgNK4TrJC3sSovQvj62qbZXaPcd8VsqWD9jNeCOa8e6v3kYHoisM6JQADI5htyoUDI0if3XbHcA9bBE2fGFduDxvR6qXPauM6JQADIHpPdtRlPboYJN2ARrgwH2C5ODsq2396OE4E0rgNAPuRuwlqJY9ma5Lo7Vgx9AXy207U4nScCnyZYAYAVaHbXZirZJQsvYHE1jllbnRxMTwTK5cucCAQAe6ytr6ullRUWQp/cMkY51E/cdzKx/fHqlTSuj0Y/GNG0DgB2WVldVTe/m1V3799XxV1PKcU4El1kl2w6j/9w3luEb/HcmyHX4qT2lNsnAqVxnXAFAHYFq2t3bqq/f/s14cqMo3ltE+ZWwUq2Bw/z3OuXXuosJwJlC5DeKgCwy+LSA3Xz7mz08X77N6JQVRwaI1wZClkqhypWnluEDZ5zM6qVkhodKqk9JUW4AgCLzN9fUHfmv3sYrNJwJZWrIiMaDMllm7Cc8ycME1/AC8vq/Ndz8QT3SnEjrmKNlGhmB4C83F2Yj3usZEvwcYXaCOHKrFz6vXPpwWK4qHnnzs/EH1fWlbr+YENdXFxXt5c31MoGawMAWZATgXfm78b9VdJntWm4GhpVhfIuFst87sg8c+QVmQlXhl29MR9XstI7CNejYHUrCljykN4sGSxaY5YdABgJVrP37sbhSn69lUJlF+EqO7JrdjrL/2Axx08Uhn1+7tqmv393ZUO1FtfVlfsb6t4qJS0A0CE9EXjx26/jBvYdw1VtlEXLTuaFnbwCVoPn2rzzl26rpeW1Lf/3xbUNdfXBhroUha27UdBaJ2sBQN/BKh61sDC/bbBqf+ctq0J1hIXLltxNmGn2yDxgJfug4zzX2Th3YWbnN4eOPq2ZJfq0AKAbMmrhm1s3vg9W3X3XLTPrKj+Z7p7lUcF6nec4w4B1/kbX/65UsGajdHVpYV1dj4LW4hrrB/uMVWkeRP7B6vLMt9HjWjx2oWvMuspbptuERd8/wdDJFqFsFfZK+rSu3G/3ad2lTwsWqZCvkBOpUkm1SoLVI3Osug1XzLrKWz0Zcu5fwIo+MZncXuc5zlY6sqGvn9TWNuLtQ+nTkuoWfVoAQiL9VGmw2mrUQlf5illXtsisyJP1z4INntvs3ZpdVNduzA/0Z0iflvRn0acFIJRgdeu72fhE4CDBKg5XzLqySWZtSmVfPzE86svzM2rfM4OfWkn7tOQhl0jLPK3hEusLwA8SpO7cu9vdacBuwhWzrmzjbQWL/qucfPXNXDx4VCeZoSV9Wq1kzAMAuBys0lELOw0I7SlcMevKOllNdS/69glha1sNHh3UUjLm4VJyHQ99WgBcIScCO2dY6fvuyqwri2Wym1b27RPC1qSKJacKa1Uze3rSpyVX8dxZ2VAj5UJ8yXSF08gALA1WMm2959OAXYYrZl1ZrZHFf6To2yeErUm4utDHyIZeSQXrbjJPSybFM08LgC2kSvXV9W/6G7XQDWZdueDwwRNnjA88zyRgJZ/IYZ7T/H3Zw+BRHejTAmBLsEpHLTxYWTbzH2HWlUuMty1lVcFq8FzaQRrdz2dQxXpc2qf1twX6tABkIx218NerrYFHLXSVr5h15RLjbUtlXz4RdE+2CQ+9NJHLf1uClfRpyWOsQp8WADPBavbeXW2nAbsKV8y6ck3D9H+AClaArt6YH3jwqA5pn5Zcx0OfFoBBpaMWpGIlDeyZhStmXbnI+LU5xgMW/Vd2ymObcCtyHY/0aV2iTwtAH6SnysiohW7DFbOuXNUw+YeXXf8E0H/Aeu2VfWpkd9Wenz6TPq2ZwoZ6qtKeEl9k+xDAVj+cmRy10A1mXbnuVdcDFv1XNoesl5+z7u/1eJ+WBK1akecLQJtUqeYW7uUXrJJwxawr5zWMvkRc/wTQv3Pnb8Szsax+I13ZiEc8SJ/WPbYPkahQ2gw2WKWjFnINV8y68oXReVhZBCz6rywl4Uqmu7tA+rSuJtfxSJ8WYx7CNlblG1so0lELabAyPWqhq3DFrCufNJwMWFEybPDc2c3U/YSmpH1aF5N7D1cIWoDXwepiFKykzyr3YJXmK2Zd+cZYEcj0q4SAZTkZPCpVrAPPjzv196ZPC/CTBKmbUbC6d38hszELXYcrZl35yFifuOmA9SrPnf3OnZ9xLmB1kj4teQyXCmq0otRYme0jwNVglfWYha7DFbOufNUw9QcXXf2LQx8ZPHprdtH5z0P6tK4nfVqzK/RpAU583S49UJdnvs1lhlVP4YpZV946eOKMkW3CosG/cD36MM5T5wapYnnzk/C6UjNL7T4t+UifFmCf+fsLcbC6PHMt3xOBO36XZNZVANwKWIrTg06RmVi2j2zolVSwZpPreK4vcR0PYIN01MI3t27YHayScMWsqyAY6cMy2YNFwHLMuQszVg4e1fKmTp8WkBtpVpdgdefeXWtOA+6IWVchMZJXTAYsJri7FrDO3/A2YKWkT0sqWbeLG/HJQwlazKwEzAWr2ShU3Zm/a92JwB3DFbOuCFgDYosQ35MtQpsugTaps0/rOn1agFYPFh+oG3O3v59h5VS4Usy6CpGJuZ1lQ3/RuqLB3UkyePTQSxPBfL7Sp5VuH+4pt+dpDZd4HQD9BqtLf7mkrrWuOfs5MOsqWHUnApaieuUsGTx67ca82vdMeKdm5K5DecjA0r3VAn1aQJdmb86qr//2tbp57abTnwezroKmfW4nAQtP+PL8TJABK7WUXMcjfVpjSVWLPi1g82AlFSv56DpmXQVPe24xFbCY4O4wuTpHKlkju6tBr4P0aclVPHdWNtRIFLQmqgVVIWgB6tvL38bB6v7CfT8+IWZdwcBgdFNN7lSwHOfaJdAmpX1aMk/ryn3maSHsYPW7X/9O/fnzP3sVrph1BZH0j2tjqoJV56lym1Sx5FRhrUrHd6d4zEMUsirRjyYT9GkhAKsrq3F/lTzk115h1hWezC4tawOWiaOOyJ6EK58Hjw5qJenTmilsqKcq9GllbaxaVLcerLMQBsmJQDkN6GWwSsMVs67wKMkvTWsDlqJ65Y3zF28RsHYg24fSpyWPsQp9WlmpFFkDk8HK9VELXeUrZl3hSS/q/MMIWNiSNLrL4NGQ5mINovM6HglazNOCS+QkoPRY+R6s4nDFrCtkkF9MBCyuyPHIBQJWzx7v0xopsX0Iu4OVL6MWugpXzLrC1ho6/zAThXYmuHvk6o35ePAoepf2acl1PLeXuY4HdpFq1R9+8wf1x0//GFa4YtYVtqHzJKGJChYjGjwj24QhDx4d1ON9WtIQX6OHCDkGK69mWHVdTmDWFboiAatlXcCKkh/hytOA9dor+4IfPKpDZ5/W3oqK7z8ETEtHLUi4Ci5YJeGKWVfokuSYpnUBS7E96K0vz99Q//rjF1gITeI+rTU5DbdBnxaMBytvRy10g1lXyCnH6A5YDZ4bP0mz+2sv72PwqGad87Tiew8Z8wANQhm10FW4YtYVeqPtoB6vOnRFBo/KdHdOFJohfVqzKxvxQ/q0RsuMeUDv5ufm1ZW/XyFYpfmKWVfonbUVLEY0eEzuJyRgmdfZpzVaUVzHgx2FNmqhq3DFrCv0R1svue6zTPRg+fzT8cJyXMVCNqRPS7YPLy2ux5WtdcY84DHStC5jFkIatdBVuGLWFQZw8MQZLVlGdwWLU4SeO3d+Rh14nhydJenTmllKxjzQpwUV8KiFbsMVs64weJZpWhOwdCU+2E0Gj96aXVSTe4dZjIzRpxU2OQUovVXSY0Ww2gKzrqCHdRUsqleBkCrWkZ/UWYgcpX1aMrBUKlr0afkdrIIftdBluGLWFTTmmdM2BSwEQgaP/suPX2BkgwWWkjEPt4vJ9mGFeVq+SEctzFydIVjthFlX0GtMxx+iM2A1eE7Cce7CjHrt5edYCEtIn5b0aN1Z2VAjUdCa8LxPq+zxN1JmWPURrph1Bb207MjxikR/Aev8DQKWhaRPK90+3JNUtHzs0xqr+hewGLXQZ75i1hVs/UFQ45/1KssZDhk8KluFzMWy173VjfhBn5bdbl67GfdXEaz6CFfMuoIZ1lWwOEUYGAaPOhKG6dOyEqMWBgxXzLqCOVryTNG2vxDcIYNHr92YZyEckfZp/W1hXV1f2lArDC7NnDSrS7D63a9/p/78+Z8JV4OEK2ZdwSAdo6cY04CBfHl+Ru17hrkzrum8jkca4pmnZT5YMWpBE2ZdIRsDDxulMxADkatzpJI1srvKYjhIruNZvL+hKkUVBy36tPSSE4ESquREIMFKT7hi1hVcoSVgMcU9bNKLxeBRt60kfVozhQ31VIU+LR3BilELmjHrCtka+JuargoW24MBkyqWnCpk8Kj7ZMyD9GnF9x4mQatWZF26JScBpWIlJwOhOVwx6wqBBiwETMIVg0f909mntbei4rla2DpYMcPKYL5i1hUcpOsVyxZh4M5fvEXA8lTcp7WmVKW4EfdpjZTYPkzJiUCpWM3PcZrWWLhi1hXy8aItAYstwsBJozuDR/32eJ/WaMXv63h2ClbMsMogXDHrCvmp2xKwAHWBgBWEUPu0GLWQQ7hi1hUcRsCCNldvzMeDR5mLFY4Q+rTkRKCcBiRYZYhZVyBgfe9FlhJCtgkJWOHp7NOSipbM03K9T4tRC/mFK2ZdwQIDtz7pClh1ngukAeu1V/YxeDRQ0qc1s5RsH8q9h1X3+rTkJKD0WBGscsCsK9jDqqtygNiX52+of/3xCyxEwKRPa3ZlI35In9Zo2f7reBi1kI9KuawqpUr86welYcYxwBu8kqGdNLu/9vI+Bo8i1tmnNRp9H9VxHc+wxl6vtFpFsNJjqFJVxWL7a3+oWlWlYvsERK0ivy51/PrJkxEXZhdYQBCwgK3I4FEJWa8ceprFwPfSPq3bGvq0dAQsRi10uda1h2MSdg8Nbfr7WwUmgIA1OOZg4RGyTUjAwmY6+7RGoqA0kWGfVjpqQcJViMFKQlCtUvv+11JhEsWC/LrWEZ6GeKEieAdPnGlcOHWkmXfAYpI7HiGDR+WOwgPP89LA5qRPK90+lPEOUtUy1afl6wyrzv4l+XW13H5Lr5Si3y+3f78oQarCoRMga2wRwphz52cIWOjKvdWN+CEDS+Xk4ZimHivXRi1007/UDk+8dQMELARLBo/eml1Uk3uHWQx0ZSm5jkf6tMaSqlY/fVpyN+CVv1/JPVjRvwQQsAAjpIp15Cd1FgI9kT4t6dG6s9Jbn5bJUQtb9S89HpjoXwJAwIJxDB7FILrt07p57WbcX9VLsNqqf6mz4Zv+JQAELNgdsl5+joXAQNI+rUpRxRUt0TlqQYJQWknq7F/qbPimfwkAAQve+PzctbiCdeilCRYDA5Oq1uq6UktffatWri+o+lNReH+KdQFgFzorkYkzv2/FD2AQe6IfCZ+uFeLThrWRYZrDAZjUyDVgHTxxhiGj6IpsFX78m7/Gk96BXsi24GQyviF90ypUSqq0u8biALCSjh//GHSErsnoBglZMr4B6IZcFP10tV21elxppKb6vm8HACwPWEBPJFxJyLoWhS1gKxKonq0V1MgWnaILS6txuCqP72KxABCwACHbhKejkCVzsoBH3pQKSo1VCvGWYGmb4tTCUnuruThUUcUa53UAELCA7/32j1dofsf3hkoq3g7c0+OdhCWqWAAIWMCjpPn9F7/6b5rfQ34jKrRnW01Utq9abaVQKqrSCBPUARCwgEdIX9YvfvUXmt8DJJPZn6kV1NCA70bS8C5BCwB8CVhzLCN0mF9Yjpvfv/qGl1QIpFIlfVbxhc6a/szyXrYKAXgSsC6cOnKWZYQusk34608v0vzuuc6BoToVquW46R0AnA9YgAk0v/tJBoZKsOocGKpbaWyI2VgAdGgSsOAlmt/9kg4MrWjIPitr61v+b+2Gdya8A8gXAQtWo/ndfTsNDO3H7MLqtv+7XKEjV+kAAAEL2ALN746+uXQ5MNSU8hhjGwAQsIBtpc3vn//pWxbDAf0ODNVJGt65DBoAAQvowufnrsXN7/RlWfqGMuDAUN24DBoAAQvokjS/y5YhIcsuugaG6k585VG2CgG4G7BojkGmpOn9Pz/+E83vFjAxMFTrm9xwlcugATgbsBg2isxJBUsqWVLRQj5MDQzVHgK5DBpAjy6cOtK0IWABuYUs6cmi+T1bWQwM1YnLoAFkjYAFL9D8nh2dA0P7NfPdUs//n9LuKpdBAyBgAb2i+d0sEwNDs323K3AZNADnAlaLpYQNaH43kktyHRiqE5dBA+jSwIf3dAWsyzwXsAXN7/rYMDBUNy6DBtCFgQ/vsUUIb0OW9GT99o9XWIx+3hgsGxiqE5dBA8jkfZQlgM/OnZ+Jr9ihL6t7MnrBuoGhmnEZNABXAhZzsGAtuSRatgzl0mhsEzqSgaGujF4YFJdBA9hGy5aAxSR3WE2a3n/xq7/Q/L6FePSCAwNDdeIyaADbGLi3nC1CBEO2CX/xq/+m+b1DOjBURi+49GYwt7ii5c/hMmgApjCmAcGh+b2dKWwYGNqv5dUNbQvBZdAATOQaLQHrwqkjBCw4JeTmd9kGlGA1wv3H7TdBLoMGYGvAAlwUWvO7TwNDdeMyaADa33M1/lmcJIRzQml+l4GhMnphD5MJNsVl0AB0ZxqdAYuThHCSz83vnQNDKVdvj8ugAaQunDpizVU5BCw4T5rf5eGLEAaG6k6jXAYNQFee0fnW+yXPCVwnVSzpy3K5+T20gaE6cRk0AKWp5Yn3X+AxV2/MxyHLxb6sUAaG6pqDtWlA5TJoAJYFrCbLCV9IuJKQdS0KWy5wdWBov5ZX14392VwGDQSPChZgkmwTno5Cls3N764PDLUVl0EDQbtrW8BiTAO8ZGvzOwNDzeIyaCBYdlWwdBxpBGxlU/M7A0OzETe8D1dZCCA81p0i1Jb6ABvZ0PzOwNBsxfcU0vAOhMbKHiyqWPBaXs3vDAzNCZdBA8HRtSOn+736U54a+C5tfpcLo7PAwNCcMxaXQQMh0bYTx1s20Kff/vGK0eZ3BoZubmEp+z64ElUsIBTaduJ0v283eW4QEml+l3sMdTe/y+iFZwMYGOpKwJKRDVwGDQRB204cPVjAgKQv6xe/+ouW5vfOgaGwC5dBA0Gws4J14dQRThEiSPMLy3Hz+1ff9Pe1mY5eYGCoxaInqcRsLMB3VvdgEbIQJNkm/PWnF3tufk8HhjJ6wYGMNVThMmjAby2bAxbbhAhat83vUrXay8BQ53AZNOCvC6eOWB2wGNWA4O3U/J4ODB2mauWc+DLo3VwGDXioqfMPMxGwWjxHwObN7yUGhnqhNMJl0ICHtOYXAhZgUGfzuwwMfZqBoQNbWVu34u/BZdCAdy5bHbAunDrS5DkCHpJtwubvW2p/lKyGS4V4FAMdPP2bXVix4u/BZdCAd7TmF1M/S7d4noCH9k8Oxx/LBTk1WFC7o18MRWGrTNJyGpdBA17Rml1MBSxGNQAdnhp5silawpWELMKWw7gMGvCGzhOEJgPWlzxVwEMTI1ufOisQttzOWFwGDfigqf29wdBflAoW0OEfnxvp6t97PGzJdiI7UPbjMmjAedpzCwELyMBTI703Q0uukob4YcKW9bgMGnDeZd1/oJGAlexjMtEd+D5gDTaYkrBlPy6DBpzmTAXLyF8WcNE/7hvR+ud1hq107ANhywJcBg04y8SIKZMBiytzADV49WqH7+lxNSuksDXz3bK9GYvLoAEXGSkIlV37CwOumRjJ5t66OGwV2ulqfUOplY0NtbbR/jWyI1Ws9eVVFh4IPGCxRQgY1u0JQu1hK6lsDTE9PlNcBg04x8hoKWMBi0Z3oK2fE4Q6PT49nrBlHpdBA05pOhWwElSxQMAasaeasVnYgqG1puEdcMKFU0ec2yIUNLojaLpPEJoMW0yP14vLoAEnNE39wUVX/+KAC2yqXm0ZBBRX9RgLsVwGDdjOWCGILULAoIkRt5qdNwtbJfLBAO+whbgfC4C1jOUUowHrwqkjc4QshCyPE4S6w9Yuy6bHzy2uOLWOcqKQy6ABazWdDFim//KA7fI+QagzbNlyVc/y6rpz68dl0ICVziaFIGcDFo3uCDhg+bc99HjYqnIv4s5rJpdBMxsLsC5gmfzDi65/AoCtbD5BqDNsVbkXsSvxbCwugwZsYrQAZPyrPRk42uJ5RGieCqy5OcR7EXtdIC6DBqzSdDpgZfFJADaaCPj02GZhi6yVXAZNwztgg1ZSAHI+YNGHheC4fILQRNjiqp620vguSntA/prG3/sy+kRO81wiNL6cINSJexG5DBqwhPHCTyYBi3lYCDNg8U20l7DVzfR412ZgbYWG9yfdXV5lEZClphcBK6tPBrBFCCcIdYetbq7qWV7d8Odz3ruLJ74jXF1fWGIhkJWzpvuvsg5Y9GEhGFSv+hPSvYhcBt22tLauZhaXefEjS81Mfojy7RMCbDBBwNIWtspRyJK6lQxwX11f9+pzlMuglx+sKLW+EeRzLOHq6/kH0ae/wQseWcqk4JNZBSvpwyJkIQicINQftqQhfmFlIx514E3/UsCXQROukJcoj2Ry8C7rd6mPeWoRAk4QmnzXKqpCreJN0ArxMmjCFXLUzOytytdPDMg3YLFFmGXQcn2uVEiXQROukLPMCj2ZBqwLp47IqIYWzy98xgnC7INWcagaN42rgptBK5TLoCVUXb1HuEKuMpvLmUd9vcnzC59RvcoppJRLqrjL3aDl+2wsCVVSuVpZJ1whN60sxjPkGbDow4LXOEFI0Orv3djfy6DTcCXbg0COMr1VJvOAlVX3PpAXThDaGLQcyVgeXgZNuIJFMp3HmVc9mpAFb3GC0MKgNVRThYobQcuny6AJV7DIXNYFnrwCFtuE8DhgsUVoX8pqN5K7ELR8ugz66r0lwhVskXlhhwoWoBEnCAlaOvjQ8C53Cy6urvGagy0yv64vl6/gZKr7WZ5v+IbqlYNBq1yy8q/o8mXQEq7kAmfAIsFUsMRHPN/wDScIHQxacumyNMNbFrRcvQyacAUbw1VS2AkmYLFNCO9wgtDVoFWwMmjJZdAuNbwTrmCpXPq+cwtYybAvtgnhFU4QErT0vkO7cxn0zOIy4Qq2yqWgk3cXJduE8CxgsUXoXdDKudnchcugJVjNLq3wuoGV4SqP7UEbAhbbhPAGJwg9DVrJhdJ5Bi2bL4OWcCVbg4ClchsLlWvAYpsQPqF65bFiMdegZetl0IQrOCC3Qo4Ng1bYJoQXOEFI0DIp7sWyqOGdcAUXwlVe24O2BKxpXgPwAScIwwxamV0oHYWr8rgds7EIV3BErrfG5B6wknRJLxacxwnCMIPWwwulzQctGy6Dlqtv5MQgYDm5e3A66IBlQ8oE9AQstghDFV8onVHQKuVYxZJwJZc3yyXOgOVyL9wULVqIOV4PcBUnCJFV0Iovgx7J/lQh4QqOyb2/24qAxTYhXEf1ClsHLf1/ftaXQROu4JhWlCuaBCyL0ibQL04QYsugJRdKV/QHrawugyZcwUFWFGysCVhJ2mzxuoCLOEGIrVNWe46V7qAVT5qXU4wGSai6eo9wBed8QMB6ElUsOIkThMgjaMVjGwzNxpJQJZWrlXXCFZzSTIaYE7AeM81rA24GLLYI0UfQGvRCaUOXQafhSrYHAcdYU6ixKmAlqZNmdziFE4ToO2ilF0oPELTkCh0JbIQrQFl1YK5o4QIxEwtOoXqFwYJWYeCgpWvCO+EKjsv1ahzrA1YyeZWZWHAGJwiRd9DSdRn01XtLhCu47AOb/jJFFgkYDCcIYSRoDVV7mnU16GXQcrfg4uoa6w9Xnb1w6shZAtbOpnmtwBWcIISZd+fC9xdKdxW0BrgMWsKVXOAMOMy6woyVAYtmd7gVsNgihMl36WLXQaufy6AJV/CAlbfBFC1eMGZiwXqcIIRtQauXy6AJV/DEtE3N7dYHrGixJI22eN3AZruqZRYBuQQteWx2oXS3l0HPLC4TruALK/u2iywa0L/nJ4dZBORCgtTDC6UfDVo7XQYtwWp2aYVFhA9O2zK53bWANa0Y2QCL7Z/YxSIg36AlF0pvErS2ugxawpVsDQKesLYQY3XASvZUaXaHtWhwh61Ba7PLoAlX8EwryglNAlb/TvIagq32T7BFCEuDVqWsynuHv5+NRbiCh6zOB9YHLEY2gHAF9BG05ELp4ZqqTOxR362uEa7gG+t3uIqOLCTN7rAO24Ow3d3bs+rq9Rvq2+/usxjwzQc2jmZwLmAle6xneT3BJpwghI2WHyyp661v1J9//4W69KcLanZ2adNxDoDj3rf9L+jSEB+pYn3Iawq24AQhbHLn+k01d3NW3b115/vfK1Si12iJq5zgnWnbq1fClS1CqWJNKwaPwiJsESJvUq365m+X1bnP/p+6/N8XHwlX7ZOE3DQALzlx+K3s4KJSxYIVaHJHHtZW1+IgNXPlurp/b2HLf69QG2NrED6atnWw6OOKLq1qUsVi8CgIVwjOvbnv4iqV9FbJx23DVbkWPwAPOXNPsYsXqUkv1ju8xpAntgeRBalWSW/VzJVv4+3ArsjWoFSvAP80bR4s6kPAkpMDP48e47zWkBdOEMKku7dm1e1vbz7aU9WlQnUPW4PwlVODx4uurW5ycoC5WMgVJwihW9qwno5X6CtclWSCO+EfXnKqeiXKji40VSzk6vOLc2rfvnFVi35EGS4V0ttIgJ7JFqBUq6THaiCyNTg0yoLCV85dm1dycZVvf/bRg8mfviUlhAavOeThxp1FdeO7JTX53Li6s7KhvlvdUEvrSkW/jMJWQZUJXEZcv7cSP1x3/96iunbxa/X1+UtqduZ29/1V2+Wr6h4a2+ErqV45F7DKDi84VSzk6vyl2/HHIz+pq5UoXN1d30j+l/ZHqWwNRz/CUOWC6Ha8Ql+K5Shg7WaR4auTLv6lnX7LP3jizLuKE4XI2aGXJuKQtZNKErQkcNWK7fCF3nzx7WL8cIls/ckWoGwFmlIcnohDFuAhqV694eJf3PWvSKpYyF1nJWs7W1W52hWuKHRFv65Q5fKCbPmlvVU6tv+2/SlZTg0SruCvk67+xZ3+GZpeLNji1ux9Nb+wrA680FvWl56tB1Hwml9Vajbp5VpcU2ptQyJYIa564SHbe7BkvMK1i1fUlb9+FVeuZFvQqGJJFZnYDn852XuV8uHHHqpYsEK3laxtA5c0yq9vqHur8k9UuVwgFSrpq5KK1drqaqb/7WJtlHAFn510+S/vxVfmwRNn3o4+vMdrETbotierX5WOHq7Qerls6cEy2rDe7Zt3ZVgValzmDG8523vlVcBKQtZX0Yc6r0nYErL+5ccvqFo1m/QTSpUr74Al4xXk2hrZCsy6WvXoO3dBFYf/B9Ur+OyAK5c6b8WnzkgpJX7IaxI2kO1C6cv62f/6n5mErMW1du/WbNyetBF0lUu3vu4DNJ2v6LuC36ZdD1fx16lPz8jBE2e+iD4c5rUJW0zuHc4sZO3EhypXlhUsqVLN3bxjdLxCX2/a5ZoqDNFyCq8d8CFg+Xa293j0+ITXJmxxa3ZRffybv1oRsqhy7SzL8Qr9patCu3oF+OukD+Eq/nL17Zk5eOKMBKwGr1HYxKZK1nZsr3KZqmBpuw/Q9Bt2bYTLnOGzOdWuXs358Mn4OJ3uWPT4itcpbGJTJWs7W1W5hqKPu0p+VbmkYT2dsJ5rw3q34apUJVzBdyd9CVfx16yPz9DBE2ek2X2K1yps40olazvp3Yq1UvtjllWuQStYNoxX6O+dutC+DqfAPi681YrC1QGfPiFf71eQXqyjiuGjsIwrlaztLK3LY0OppMoll1hL0LK5ypXFfYBG81VlN+EKvjvm2yfk7TlfLoKGzXyoZG3HVJWrlwqWNKnLSUCbxiv0pVhuV68Afzk/VDSogJWELIaPgpBlQ0bQVOXqJmBJqJJqlWwFerF2Eq64zBl+O+DLycFOvn/VSsmRsQ2wkg/bhd2SHcV7qxvqXvxP7TsWdVa50vsAJVQ5Xa16/Cfg6h7CFXz3vo/hKv769f2ZY2wDbBdSJWs73VS5OitYacO6C+MV+luQkioOT/IFAp95NZbhcSH8aMTYBlhNKln/+fGf4pAlYStU3VS5hDX3AZrOV7VRvjjgu+O+hivh/Y/Mtz/7aG7yp2/JO3OD1zJstba2of5+eVb9w75RNbyrwoKk6xLlrAfrErxkNteGmrn9nfrtJ3+MQ9bG+rq3n7fMu2LmFTwnje3Hff4Ei4E8ke9HjxavZ9hsaXkt7smSihY2t3/fU/5/ksVSu/cK8Ntx77+UQ3gWkxLkMV7PIGTBdoXqSDxYFPCYNLafJWD5E7Ka0YfTvK5ByHJbrervFmqhXIsfgMda0eNkCJ9oMbAnVkqSc7y+Qchy1+Skp83fhYIq1MZ4guH992GfG9uDDVjJrI2TvL5ByIJ1+arG1iC8dzr6PhzMTlJoFSwJWdLw3uR1DkKWmyYnRvwLV6WqKpR38eTCZ1K1Oh7SJ1wM9Ik+zmsdhCw31Wqe9WDJ1uAQM6/gvZO+TmwnYHVITi+wVQhCFvLPVzKSoVBiIeCzZrJ7FJRQK1gSst6NPpzldQ9Cllv2Pzfh0TtwmYGi8F2wY5KKgT/xzMaCkyHr/KXbLIYPb8BDnBqE94LbGiRgKbYK4W7IOvP7VrAha3TEj2bweGuwWOYFDZ8FuTVIwHoYst5VbBXCQaGGrBEfAlZ8Hc5uXsTwWfA3qBR5DcTYKgQhC9m98dY4NQjvBbs1SMDqwFYhCFlumZxwN6DETe2lKi9c+CzorUEC1pMh613FViEIWU5wdhZWvDW4hxcsfBb81iABa3NvKu4qBCHL/oBVdbM5vFDlOhx473joW4MErE1wVyEIWW5w8cLnQrkWPwCPyV2D0ywDAWurkCX7xqdZCRCyoC9dFVShxswreK2l2BokYHVBXiRsFYKQZanRPW6NaojDFVuD8Pz75oVTR/i+ScDaXvIieZOVACHLTiMj7lwvUyhV2RqE72QkQ5NlIGB1G7LkxUI/FpwPWZ//6VsWIrd0VVCFIWZewWtnk1P4IGD1FLLkRcPoBjjt83PX4qDlk/37nnIjX8lIhkKJFyF8xW4PAWsgjG6A82Sr0LeQZX24kq3ByjALAZ8dYyQDAatvyYuHkxEgZFmmVrV72GihNsKLDj57P/r+yIn7bVC77sLtzz46P/nTt8ajX/4zqwGX3Zq9r+YXltWBF8ad/1y+/uaWmp+/b2e4qu5RhfIQLzj4Svqu2BrcARWsLkUvpuOKfix4gO1C0++q5Shg7WYd4Cv6rghYRryh6McCIcsKkxN2bsEV2RqE3+i7ImDpx3wsELLsYeOFz3FTe6nKiwu+OknfFQHLZMhqRh+OsxIgZOHRd9NSeywD4KfTzLsiYGURsuS+wmlWAoSs/Ox/bsKuN9PaKNfhwFfyBsFpegJWZmh6ByELsfgqHLYG4ae4NYZ7BglYmenox+JFB69C1tLymhN/39ERSy58lutw5DJnwE/Ho+93FBMIWJmHrJai6R2ehayPf/NXJ0LWiCUBKw5XbA3CT9LUPs0yELDyCllNxd40PHJrdtGZkJV7uJLrcGR7EPAPTe0ELCtCliR8Uj4IWRmbnBjNMV0VVGFolBcLfHSWwgEBy6aQJS/GJisBQlZ28pyFFY9kKHDbGLxDUzsBy0pvKk4WgpCVXcCqlvMJV7I1KENFAf/C1RtMaidgWSdJ/McUJwtByMrE5GQ+W3QFrsOBnzgxSMCyOmTJi5M7C0HI8lS8NVgs86KAj+FqmmUgYLkQsrhOB4Qsw0b3ZDyqIQpWhepuXgzwzXRyQwkIWE6ELPlJgFMYIGQZNDKSbR9UcYiBovDO6eSQFghYzoWsaVYChCz3xU3tbA3CL4xjIGA5HbKOEbJAyDJj/76nMnqnLLV7rwC/wtUbjGMgYPkQsjiZAe9C1i9+9Zf4o/dvlLVRrsOBT+IT74QrApYv3iBkwTfzC8txJSvPkFWrmh02WqjsUqpU5cmGT+HqDcYxELC8kfykQMiCd2SbMM+QZXQWllyHU2XmFQhXIGC5ELLeVMzIAiHLCYXaGFuD8AmDRAlYXoeslmIQKQhZ2kxOmKkwFcq1+AF44hiDRAlYIYQspr2DkKWJkQufZWuQ63BAuAIBi5AFhByytOcrGclQKPFkgnAFAhYhCwgzZO1/bkJvuCpV20NFAcIVCFiELCDkkKU1YA2N8uTBB9OEKwIWIYvLoUHI6tvoiL4Ln9kahEfhiitwCFhIQpb8pMEXBAhZPRrRFbCK5Shg7eYJA+EKBCxCFuBWyPrqG3t3wotDYzxRIFyBgOV5yGIYKbwMWb/+9KI6f+m29j97cmKwvqm4qb1Y5kkC4QoELM9D1mlF4zs8deb3Le0ha6BZWMVSu/cKcNdxwhUBC92HLE4XgpDVbcCq9l99KtZGuQ4HLpNRDO+zDAQsELIA7SGr3wufC5VdSpWqPBlwOVxNswwELBCyAGMhq/d0VVCFKtfhgHAFAhYhi5AFQtamRvf0PqqhUBtjaxCEKxCwCFlxyDoQPc6yGiBkPWpkpLerbQrlWvwAHCM/ZP+IcEXAgv6QJV9cbxCyQMgagGwN1tgahJPh6o3kh20QsGAwZDVZDRCy2vbve6r7fMV1OHBPi3BFwEJGISt6SMiaZjVAyOpeoVRtDxUF3CGh6keEKwIWsg1aMliO+SfwMmSdOz/T0/+nVt1h2KhsDQ6NsrhwSVO1K1cccHIQR2g8cPDEmanow4esBHxz6KUJdeQn9a7+3V/+1x/U1WtbV75ka5DLnOEQrr5xHBUsD3B/IXwlW4VSzRr8na5MuIJLThKuCFiwJ2RxfyGCDlmTE1ufDCwOjbGQcIXMuHqXZSBgwa6QxawsBBuytrrwOT41WCyziLBdOoZhmqUgYMHOkJWOcTjNaiC0kPXkO1yJU4NwwdkkXDVZCn8wDMZDtz/76EH0+D+TP31rPPrHf2ZF4Itbs/fV/MKyOvDC+Cb/a0Gd/+s3j+aroXGqV7CdhKp/j8JVi6XwCxUsj0VfsMejD9IoSV8WvNFtJSuuXJWqLBhsJicFGcNAwIKjIWta0fyOAELW6EjHhc8y80p6rwB7HeOkIAEL7ocsmt/hfcga6QhYhdpYHLIAC3FhMwELnoUsuV7nR4rrdeBxyIrDVbkWPwALxT/scu1NGGhyD8ztzz76ePKnb12OftmIHkOsCFzX2fh+6fKMerCxm+oVbCT9Vv8uh5BYijDwLhSogyfOHI4+/DJ61FkN+GBy77BS6yvq1t0VFgM2kS3B42wJErAQVsiSs+5yh+FRVgMAtJOtwGNsCRKwEG7Qejv68B4rAQDaTKt25YoT3AQsBB6y2DIEAD0kWL3PMhCwgDRksWUIAP1jSxAELGwbtNgyBIDeTCu2BEHAQhchS7YMpZp1mNUAgC1JoJKq1WmWAp0YNIpNJSVuuWKHPgIA2FxTtaeyE67wBCpY2NHBE2ekJ0uqWeOsBgDETkbB6l2WAQQsDBqyaIAHABrZQcCCoaA1pdoN8FSzAIRGWiZO0sgOAhZMhay6alezGqwGgAC0VLtq1WQpQMBCFkFLxjm8o6hmAfAXVSsQsJBLyKorqlkA/NNSVK1AwIIFQWtK0ZsFwA9UrUDAglUhi5OGAFzGCUEQsGB10GokQavOagBwgFSqPmCuFQhYcCFkSTUrbYIHAFvJFHa5Q7DFUoCABZeCltxlKL1ZDVYDgEVaSbDimhsQsOB00JpSNMEDsMPJ6PE+TewgYMGXkCXhSrYM32Y1AOSgqdpN7C2WAgQs+Bi06orZWQCyI4GK7UAQsBBM0JJxDrJtWGc1ABjA6UAQsBB00OLKHQC6Tat21Yo+KxCwEHTIoj8LgA5NRZ8VCFjAE0GrngStKVYDQI/B6iR3B4KABWwftBpJ0GqwGgC20UqC1TRLAQIWQNACQLACAQuwImjJicPDrAYQtLkkWL3PUoCABegLWlOqXdGqsxpAcMHqA8UEdhCwAIIWAIIVCFiAi0FLhpX+XNGjBfimlQSraYIVCFhAfkFLAhbN8IAfwYrmdRCwAAuDllS0jrIagFPOqva1NgQrELAAi4NWXTGwFHBBUzEgFAQswLmgJVfwyPU7UtXirkPAHtNJsGqxFCBgAW6HrakkaDFLC8iHhKmPFCcCQcACvAxajejDW4rtQyArTQlW9FeBgAWEEbTqSciSsFVnRQCtpEJ1WrUb18+yHCBgAWGGraNJ0OL0ITCY+DSghCu2AUHAApAGrbqiqgX0imoVQMACug5bUs36maJXC9hKU7Wb1qlWAQQsoOegJeMd0i3EBiuCwLWSUDXNiAWAgAXoClv1JGzJuIc6K4JASHVqWrVPArIFCBCwAKNhS+ZppY3xhC34GKqkr+rjKFSdZjkAAhZA2AIIVQABC/A0bDUUU+Nhv5ZqN6sTqgACFuBM2KqrdlXrZ4oGedjjrHo4XZ2eKoCABTgdttLTiK8nH7l8GlmS6tSnqj1SocVyAAQswNfAdbgjcDVYEWiWVqk+ZesPIGABoYat8SRkpWGL3i30qpUGKvlIlQogYAEgcIFABRCwAOQWuA4rthRDlW75fUmgAghYAMyFrsNJ0Ho1CV5UufzRSgLVl0moOstdfwABC0A+gWs8CVkSul4kdDkZps4mYarFsgAELAB2By8JXHX1aKWLERH5aCaBqjNMUZkCCFgAPAldabWrnjxeT0IXFa/BtdTDqtTl5GOLqhRAwAIQdviqdwQvebyahK/0n0M3l4Qm8WnHP88xFR0AAQtAvwGss9LVSD6Odfyeq5WwVvJIf305+fXZJERRhQJAwAJgTSBrPPZbW/WAva7xPyuh6O4mv998/N+jBwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKB//1+AAQD2xEfIPbkIFQAAAABJRU5ErkJggg==", jv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", Mv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Nv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", Pv = {
25946
+ var wv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Ev = "data:image/png;base64,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", Dv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", Ov = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", kv = "data:image/png;base64,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", Av = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", jv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Mv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", Nv = {
25949
25947
  sqlite: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSQLite%3c/title%3e%3cpath%20d='M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71%208.71%200%200%200-.547.535c-2.109%202.237-4.066%206.38-4.674%209.544.237.48.422%201.093.544%201.561a13.044%2013.044%200%200%201%20.164.703s-.019-.071-.096-.296l-.05-.146a1.689%201.689%200%200%200-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376%201.176.484.884.778%202.4.778%202.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304%201.346-.226%201.478.152.256.296.698.422%201.186.286%201.1.485%202.44.485%202.44l.017.224a22.41%2022.41%200%200%200%20.056%202.748c.095%201.146.273%202.13.5%202.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29%201.661-8.304%201.723-4.55%204.113-8.201%206.3-9.945-1.993%201.8-4.692%207.63-5.5%209.788-.904%202.416-1.545%204.684-1.931%206.857.666-2.037%202.821-2.912%202.821-2.912s1.057-1.304%202.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184%203.613-1.72C21.695%207.9%2024.195%202.767%2021.678.521m-18.573.543A1.842%201.842%200%200%200%201.27%202.9v16.608a1.84%201.84%200%200%200%201.835%201.834h9.418a22.953%2022.953%200%200%201-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01%2027.01%200%200%200-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432%200-.12.015-.245.037-.386a9.98%209.98%200%200%201%20.234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8%2032.8%200%200%201%20.382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28%202.587-7.443%204.8-9.791.066-.069.133-.128.198-.194Z'/%3e%3c/svg%3e",
25950
- duckdb: Ov,
25951
- motherduck: jv,
25952
- postgres: Nv,
25953
- postgresql: Nv,
25954
- mysql: Mv,
25948
+ duckdb: Dv,
25949
+ motherduck: Av,
25950
+ postgres: Mv,
25951
+ postgresql: Mv,
25952
+ mysql: jv,
25955
25953
  snowflake: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSnowflake%3c/title%3e%3cpath%20d='M24%203.459c0%20.646-.418%201.18-1.141%201.18-.723%200-1.142-.534-1.142-1.18%200-.647.419-1.18%201.142-1.18.723%200%201.141.533%201.141%201.18zm-.228%200c0-.533-.38-.951-.913-.951s-.913.38-.913.95c0%20.533.38.952.913.952.57%200%20.913-.419.913-.951zm-1.37-.533h.495c.266%200%20.456.152.456.38%200%20.153-.076.229-.19.305l.19.266v.038h-.266l-.19-.266h-.229v.266h-.266zm.495.228h-.229v.267h.229c.114%200%20.152-.038.152-.114.038-.077-.038-.153-.152-.153zM7.602%2012.4c.038-.151.076-.304.076-.456%200-.114-.038-.228-.038-.342-.114-.343-.304-.647-.646-.838l-4.87-2.777c-.685-.38-1.56-.152-1.94.533-.381.685-.153%201.56.532%201.94l2.701%201.56-2.701%201.56c-.685.38-.913%201.256-.533%201.94.38.685%201.256.914%201.94.533l4.832-2.777c.343-.267.571-.533.647-.876zm1.332%202.626c-.266-.038-.57.038-.837.19l-4.832%202.777c-.685.38-.913%201.256-.532%201.94.38.686%201.255.914%201.94.533l2.701-1.56v3.12c0%20.8.647%201.408%201.446%201.408.799%200%201.407-.647%201.407-1.408v-5.592c0-.761-.57-1.37-1.293-1.408zm4.946-6.088c.266.038.57-.038.837-.19l4.832-2.777c.685-.38.913-1.256.532-1.94-.38-.686-1.255-.914-1.94-.533l-2.701%201.56V1.975c0-.799-.647-1.408-1.446-1.408-.799%200-1.446.609-1.446%201.408V7.53c0%20.76.609%201.37%201.332%201.407zM3.265%205.97l4.832%202.777c.266.152.533.19.837.19.723-.038%201.331-.684%201.331-1.407V1.975c0-.799-.646-1.408-1.407-1.408-.799%200-1.446.647-1.446%201.408v3.12l-2.701-1.56c-.685-.38-1.56-.152-1.94.533-.419.646-.19%201.521.494%201.902zm9.093%206.011a.412.412%200%2000-.114-.266l-.57-.571a.346.346%200%2000-.267-.114.412.412%200%2000-.266.114l-.571.57a.411.411%200%2000-.114.267c0%20.076.038.19.114.267l.57.57a.345.345%200%2000.267.114c.076%200%20.19-.038.266-.114l.571-.57a.412.412%200%2000.114-.267zm1.598.533L11.94%2014.53c-.039.038-.153.114-.229.114h-.608a.411.411%200%2001-.267-.114L8.82%2012.514a.408.408%200%2001-.076-.229v-.608c0-.076.038-.19.114-.267l2.016-2.016a.41.41%200%2001.267-.114h.608a.41.41%200%2001.267.114l2.016%202.016a.347.347%200%2001.114.267v.608c-.076.077-.114.19-.19.229zm5.593%205.44l-4.832-2.777c-.266-.152-.57-.19-.837-.152-.723.038-1.332.684-1.332%201.408v5.554c0%20.8.647%201.408%201.408%201.408.799%200%201.446-.647%201.446-1.408v-3.12l2.7%201.56c.686.38%201.561.152%201.941-.533.419-.646.19-1.521-.494-1.94zm2.549-7.533l-2.701%201.56%202.7%201.56c.686.38.914%201.256.533%201.94-.38.685-1.255.913-1.94.533l-4.832-2.778a1.644%201.644%200%2001-.647-.798c-.037-.153-.076-.305-.076-.457%200-.114.039-.228.039-.342.114-.343.342-.647.646-.837l4.832-2.778c.685-.38%201.56-.152%201.94.533.457.609.19%201.484-.494%201.864'/%3e%3c/svg%3e",
25956
- databricks: Ev,
25957
- clickhouse: Tv,
25954
+ databricks: Tv,
25955
+ clickhouse: wv,
25958
25956
  timeplus: "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generated%20by%20Pixelmator%20Pro%203.6.17%20--%3e%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Option2SymbolB'%3e%3cg%20id='Layer1-2'%3e%3cg%20id='Group'%20opacity='0.4'%3e%3cpath%20id='Path'%20fill='%23d53c97'%20stroke='none'%20d='M%2017.016802%2012.188573%20C%2017.016802%209.607646%2015.86018%207.293022%2014.039526%205.731081%20C%2013.942595%205.70038%2013.844628%205.671406%2013.745972%205.645189%20C%2013.131133%205.809095%2012.54265%206.059378%2011.998103%206.388559%20C%2013.964327%207.575191%2015.281006%209.730104%2015.281006%2012.188573%20C%2015.279476%2014.563734%2014.033739%2016.764488%2011.998103%2017.988243%20C%2012.542634%2018.317537%2013.131119%2018.567936%2013.745972%2018.731958%20C%2013.844628%2018.705742%2013.942595%2018.67642%2014.039526%2018.645721%20C%2015.86018%2017.084126%2017.016802%2014.769501%2017.016802%2012.188573%20Z'/%3e%3cpath%20id='path1'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.897406%205.609659%20L%2013.894991%205.60759%20C%2013.844973%205.619663%2013.7953%205.631737%2013.745972%205.645189%20C%2013.79599%205.631737%2013.847043%205.622078%2013.897406%205.609659%20Z'/%3e%3cpath%20id='path2'%20fill='%23d53c97'%20stroke='none'%20d='M%201.735796%2012.188573%20C%201.735796%209.164728%203.728925%206.59622%206.470945%205.729357%20C%207.554634%204.797861%208.856011%204.155121%2010.254373%203.860756%20C%209.680216%203.740549%209.095179%203.679977%208.508574%203.68%20C%203.816888%203.68%20-0%207.496887%20-0%2012.188573%20C%20-0%2016.880259%203.816888%2020.697147%208.508574%2020.697147%20C%209.0952%2020.697229%209.680255%2020.636539%2010.254373%2020.516048%20C%208.855971%2020.221794%207.554568%2019.579041%206.470945%2018.647446%20C%203.728925%2017.780582%201.735796%2015.213453%201.735796%2012.188573%20Z'/%3e%3cpath%20id='path3'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.745972%2018.731958%20C%2013.7953%2018.745068%2013.844973%2018.757484%2013.894991%2018.769558%20C%2013.894991%2018.769558%2013.896715%2018.769558%2013.897406%2018.767488%20C%2013.847043%2018.754379%2013.79599%2018.745411%2013.745972%2018.731958%20Z'/%3e%3c/g%3e%3cpath%20id='path4'%20fill='%23ff3b65'%20stroke='none'%20d='M%2020.508402%2012.188573%20C%2020.508402%209.606611%2019.351088%207.290262%2017.5294%205.729357%20C%2016.301817%205.342468%2014.989366%205.313629%2013.745972%205.646223%20C%2016.636665%206.418224%2018.772606%209.058484%2018.772606%2012.189609%20C%2018.772606%2015.320732%2016.636665%2017.960991%2013.745972%2018.731958%20C%2014.98947%2019.064316%2016.301983%2019.034998%2017.5294%2018.647446%20C%2019.419907%2017.034296%2020.508638%2014.673781%2020.508402%2012.188573%20Z'/%3e%3cpath%20id='path5'%20fill='%23ff3b65'%20stroke='none'%20d='M%209.962543%2018.647446%20C%207.220525%2017.780582%205.227395%2015.213453%205.227395%2012.188573%20C%205.227395%209.163693%207.220525%206.59622%209.962543%205.729357%20C%2011.046233%204.797861%2012.34761%204.155121%2013.745972%203.860756%20C%2013.171818%203.74053%2012.586779%203.679956%2012.000173%203.68%20C%207.308832%203.68%203.491599%207.496887%203.491599%2012.188573%20C%203.491599%2016.880259%207.308487%2020.697147%2012.000173%2020.697147%20C%2012.586799%2020.697247%2013.171857%2020.636557%2013.745972%2020.516048%20C%2012.34757%2020.221794%2011.046167%2019.579041%209.962543%2018.647446%20Z'/%3e%3cpath%20id='path6'%20fill='%23383838'%20stroke='none'%20d='M%2015.491772%203.68%20C%2010.800431%203.68%206.983198%207.496887%206.983198%2012.188573%20C%206.983198%2016.880259%2010.800086%2020.697147%2015.491772%2020.697147%20C%2020.183456%2020.697147%2024%2016.880259%2024%2012.188573%20C%2024%207.496887%2020.183456%203.68%2015.491772%203.68%20Z%20M%2022.264549%2012.188573%20C%2022.264549%2015.923018%2019.226215%2018.961351%2015.491772%2018.961351%20C%2011.757326%2018.961351%208.718994%2015.923018%208.718994%2012.188573%20C%208.718994%208.454128%2011.757326%205.415796%2015.491772%205.415796%20C%2019.226215%205.415796%2022.264549%208.454128%2022.264549%2012.188573%20Z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",
25959
- bigquery: kv,
25957
+ bigquery: Ov,
25960
25958
  trino: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eTrino%3c/title%3e%3cpath%20d='M14.124%2016.8529a.1615.1615%200%201%201%20.1576.1614.1577.1577%200%200%201-.1576-.1614zm-5.607-.1576a.1614.1614%200%201%200%200%20.3228.1614.1614%200%200%200%200-.3228zm10.1341-.6648v1.9869c-.031.5788-.524%201.0237-1.1029.9954h-.3843a5.0596%205.0596%200%200%201-1.1298%201.7178.3192.3192%200%200%200%200%20.465l.2382.2191a.3036.3036%200%200%201%20.0385.4304c-1.126%201.3835-2.9669%202.1521-5.0498%202.1521a6.575%206.575%200%200%201-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302%200%200%201%20.0548-.8896c.137-.1265.1371-.3462%200-.4727a4.944%204.944%200%200%201-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02%201.1068-.9915h.2728a5.7648%205.7648%200%200%201%202.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229%204.4705%206.2189.078%207.8253.001c1.6064-.0768%201.3719%204.0275%201.0991%206.6946a32.732%2032.732%200%200%200-.123%204.4503%206.994%206.994%200%200%201%202.4826-.4304%207.2414%207.2414%200%200%201%201.7371.2075c.2614-1.2682.8762-3.574%202.0292-5.1958%201.6717-2.352%203.4357-4.7808%204.6116-4.1006%201.176.6802-.3074%203.1398-1.3297%204.4272-1.0222%201.2874-2.7862%203.2089-3.3742%204.2274-.2114.3843-.4304.8032-.5956%201.1529a5.7375%205.7375%200%200%201%202.9169%203.6125h.073v-2.3058a.3075.3075%200%200%200-.1806-.2844.9148.9148%200%200%201-.5573-.8148%201.0184%201.0184%200%200%201%20.9045-.9044c.5593-.0598%201.061.3452%201.1208.9044a.9187.9187%200%200%201-.5534.8148.3074.3074%200%200%200-.1691.2844v2.1522a.3113.3113%200%200%200%20.1691.2805.9724.9724%200%200%201%20.5648.857zm-1.0222-3.9737a.4345.4345%200%200%200%20.4612-.4151.4151.4151%200%201%200-.4612.4151zm-.4227%203.4779c.0978.4794.148.9672.1498%201.4565v.3651h.4113a.3228.3228%200%200%200%20.3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046%2036.6046%200%200%201%202.3828-3.8661c1.2874-1.7255%202.3365-3.5817%201.8715-3.8699-.465-.2883-1.6179%201.2297-2.7708%203.109a34.8978%2034.8978%200%200%200-2.0945%204.3887zm-4.0544.6726.0154%201.3335c-.0039.2007.1881.3587.3843.3152a6.4317%206.4317%200%200%201%201.4565-.1653%205.995%205.995%200%200%201%201.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319%200%200%200-.2421-.3113%206.664%206.664%200%200%200-1.6026-.1845%206.7093%206.7093%200%200%200-1.6025.1845.3188.3188%200%200%200-.246.3113zm1.7063%206.8637v.3843a.6878.6878%200%200%201-.4996.269c-.3074%200-.538-.4189-.538-.4189a.073.073%200%200%200-.1-.0307l-.0024.0013a.0693.0693%200%200%200-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144%200%200%200%20.3843-.1268.3267.3267%200%200%201%20.3612%200%20.8332.8332%200%200%200%20.4727.1345.957.957%200%200%200%20.6572-.4803.0692.0692%200%200%200-.0269-.0961.0692.0692%200%200%200-.0999.0269c0%20.0231-.2191.3843-.5419.4074a.8036.8036%200%200%201-.5765-.269v-.3843a.3154.3154%200%200%201%20.1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538%200%200%200-.5764-.4189c-.3766%200-.6533.2498-.6533.4573%200%20.1345.2536.3382.4227.4612a.3226.3226%200%200%201%20.1346.2383zM7.783%2011.6455l.5765-.3074c-.0192-1.126-.0346-3.1436%200-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877%204.2285%206.949%207.007a33.0562%2033.0562%200%200%200%20.834%204.6385zm-3.305%205.3919a.319.319%200%200%200%20.319.319h.3997a3.046%203.046%200%200%201%200-.3651%207.546%207.546%200%200%201%20.1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881%200%200%200-.4781.4979v1.0068zm.9184%201.4718a5.3254%205.3254%200%200%201-.123-.5573.3228.3228%200%200%200-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188%200%200%200%20.5526.4827l.3842-.0076zm10.1265%202.917-.0884-.0807a.3229.3229%200%200%200-.3843-.0269%206.9823%206.9823%200%200%201-3.8046%201.0068%206.995%206.995%200%200%201-3.7932-1.0068.3228.3228%200%200%200-.3843.0269l-.0884.0807a.3154.3154%200%200%200%200%20.4573%206.0305%206.0305%200%200%200%204.2927%201.5988%206.0453%206.0453%200%200%200%204.2889-1.5988.315.315%200%200%200-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269%200%200%200%20.2037.296c1.7332.7109%202.9284%202.1866%202.9284%203.8776%200%202.2712-2.1559%203.8085-5.3419%203.8085-3.1859%200-5.3419-1.5411-5.3419-3.8085%200-1.691%201.1952-3.1667%202.9284-3.8776a.319.319%200%200%200%20.2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399%202.767-3.0399%205.2073%200%202.9899%202.2866%204.996%205.7108%204.996%203.4282.0001%205.6994-2.0098%205.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842%200%201%200%20.0038%200zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842%200%201%200-.584-.5725zm4.5692.6225h-.4996a.3227.3227%200%200%200-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188%200%200%200%20.5366-.5004l.0037-.3306z'/%3e%3c/svg%3e",
25961
- iceberg: Av,
25962
- datafusion: Dv,
25959
+ iceberg: kv,
25960
+ datafusion: Ev,
25963
25961
  pyspark: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eApache%20Spark%3c/title%3e%3cpath%20d='M10.812%200c-.425.013-.845.215-1.196.605a3.593%203.593%200%2000-.493.722c-.355.667-.425%201.415-.556%202.143a551.9%20551.9%200%2000-.726%204.087c-.027.16-.096.227-.244.273C5.83%208.386%204.06%208.94%202.3%209.514c-.387.125-.773.289-1.114.506-1.042.665-1.196%201.753-.415%202.71.346.422.79.715%201.284.936%201.1.49%202.202.976%203.3%201.47.019.01.036.013.053.019h-.004l1.306.535c0%20.023.002.045%200%20.073-.2%202.03-.39%204.063-.58%206.095-.04.419-.012.831.134%201.23.317.87%201.065%201.148%201.881.701.372-.204.666-.497.937-.818%201.372-1.623%202.746-3.244%204.113-4.872.111-.133.205-.15.363-.098.349.117.697.231%201.045.347h.001c.02.012.045.02.073.03l.142.042c1.248.416%202.68.775%203.929%201.19.4.132.622.164%201.045.098.311-.048.592-.062.828-.236.602-.33.995-.957.988-1.682-.005-.427-.154-.813-.35-1.186-.82-1.556-1.637-3.113-2.461-4.666-.078-.148-.076-.243.037-.375%201.381-1.615%202.756-3.236%204.133-4.855.272-.32.513-.658.653-1.058.308-.878-.09-1.57-1-1.741a2.783%202.783%200%2000-1.235.069c-1.974.521-3.947%201.041-5.918%201.57-.175.047-.26.015-.355-.144a353.08%20353.08%200%2000-2.421-4.018%204.61%204.61%200%2000-.652-.849c-.371-.37-.802-.549-1.227-.536zm.172%203.703a.592.592%200%2001.189.211c.87%201.446%201.742%202.89%202.609%204.338.07.118.135.16.277.121%201.525-.41%203.052-.813%204.579-1.217.367-.098.735-.193%201.103-.289a.399.399%200%2001-.1.2c-1.259%201.48-2.516%202.962-3.779%204.438-.11.13-.12.22-.04.37.937%201.803%201.768%203.309%202.498%204.76l-3.696-1.019c-.538-.18-1.077-.358-1.615-.539-.163-.055-.25-.03-.36.1-1.248%201.488-2.504%202.97-3.759%204.454a.398.398%200%2001-.18.132c.035-.378.068-.757.104-1.136.149-1.572.297-3.144.451-4.716-.03-.318.117-.405-.322-.545-1.493-.593-3.346-1.321-4.816-1.905a.595.595%200%2001.24-.134c1.797-.57%203.595-1.14%205.394-1.705.127-.04.199-.092.211-.233.013-.148.05-.294.076-.441.241-1.363.483-2.726.726-4.088.068-.386.14-.771.21-1.157z'/%3e%3c/svg%3e",
25964
25962
  redshift: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eAmazon%20Redshift%3c/title%3e%3cpath%20d='M16.639%209.932a.822.822%200%200%201-.822-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.823.82m-2.086%204.994a.823.823%200%200%201-.822-.822.822.822%200%200%201%201.645%200%20.822.822%200%200%201-.823.822m-5.004-.833a.822.822%200%201%201%20.002-1.644.822.822%200%200%201-.002%201.644m-2.083%204.578a.823.823%200%200%201-.823-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.822.82m9.173-11.236a1.68%201.68%200%200%200-1.68%201.676c0%20.566.285%201.066.718%201.37l-.782%201.982a1.674%201.674%200%200%200-1.923%201.104l-1.753-.398a1.675%201.675%200%200%200-3.348.103c0%20.432.169.823.438%201.12l-.764%201.79c-.028-.001-.053-.008-.08-.008a1.68%201.68%200%200%200-1.68%201.676%201.68%201.68%200%200%200%203.36%200c0-.593-.312-1.112-.778-1.41l.674-1.579c.161.052.33.088.508.088.661%200%201.228-.386%201.502-.94l1.856.42a1.68%201.68%200%200%200%203.327-.325c0-.5-.224-.943-.574-1.25l.822-2.083c.053.005.104.016.157.016a1.68%201.68%200%200%200%201.68-1.676%201.68%201.68%200%200%200-1.68-1.676M12%2023.145c-4.17%200-7.286-1.252-7.286-2.37V4.79C6.14%205.938%209.131%206.547%2012%206.547c2.869%200%205.86-.609%207.286-1.756v15.983c0%201.12-3.116%202.37-7.286%202.37M12%20.856c4.293%200%207.286%201.274%207.286%202.419%200%201.143-2.993%202.418-7.286%202.418-4.293%200-7.286-1.275-7.286-2.418C4.714%202.129%207.707.855%2012%20.855m8.143%202.419C20.143%201.147%2015.947%200%2012%200%208.052%200%203.857%201.147%203.857%203.274l.002.01h-.002v17.49C3.857%2022.87%208.052%2024%2012%2024c3.947%200%208.143-1.13%208.143-3.226V3.284h-.002l.002-.01'/%3e%3c/svg%3e",
25965
25963
  supabase: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSupabase%3c/title%3e%3cpath%20d='M11.9%201.036c-.015-.986-1.26-1.41-1.874-.637L.764%2012.05C-.33%2013.427.65%2015.455%202.409%2015.455h9.579l.113%207.51c.014.985%201.259%201.408%201.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z'/%3e%3c/svg%3e"
25966
- }, Fv = (e) => {
25967
- let t = (0, Tr.c)(11), { name: n, className: r } = e, i = Pv[n.toLowerCase()];
25964
+ }, Pv = (e) => {
25965
+ let t = (0, Tr.c)(11), { name: n, className: r } = e, i = Nv[n.toLowerCase()];
25968
25966
  if (!i) {
25969
25967
  let e;
25970
25968
  t[0] === r ? e = t[1] : (e = o("mt-0.5", r), t[0] = r, t[1] = e);
@@ -25982,15 +25980,15 @@ var Tv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20x
25982
25980
  };
25983
25981
  //#endregion
25984
25982
  //#region src/core/cells/add-missing-import.ts
25985
- function Iv({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
25983
+ function Fv({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
25986
25984
  if (t in r.get(Cd)) return !1;
25987
25985
  let { cellData: i, cellIds: a } = r.get($), o = RegExp(`import[ \t]+${e}[ \t]+as[ \t]+${t}`, "g");
25988
25986
  for (let e of a.inOrderIds) if (o.test(i[e].code)) return !1;
25989
25987
  return n(`import ${e} as ${t}`), !0;
25990
25988
  }
25991
- function Lv({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
25989
+ function Iv({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
25992
25990
  let i = nl(), a = null;
25993
- return Iv({
25991
+ return Fv({
25994
25992
  moduleName: "marimo",
25995
25993
  variableName: "mo",
25996
25994
  onAddImport: (o) => {
@@ -26009,9 +26007,9 @@ function Lv({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r })
26009
26007
  }
26010
26008
  }) ? a : null;
26011
26009
  }
26012
- function Rv({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26010
+ function Lv({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26013
26011
  let r = nl(), i = null;
26014
- return Iv({
26012
+ return Fv({
26015
26013
  moduleName: "altair",
26016
26014
  variableName: "alt",
26017
26015
  onAddImport: (a) => {
@@ -26032,13 +26030,13 @@ function Rv({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26032
26030
  }
26033
26031
  //#endregion
26034
26032
  //#region src/core/cells/focus.ts
26035
- function zv() {
26033
+ function Rv() {
26036
26034
  return {
26037
26035
  focusedCellId: null,
26038
26036
  lastFocusedCellId: null
26039
26037
  };
26040
26038
  }
26041
- var { reducer: Bv, createActions: Vv, valueAtom: Hv, useActions: Uv } = y(zv, {
26039
+ var { reducer: zv, createActions: Bv, valueAtom: Vv, useActions: Hv } = y(Rv, {
26042
26040
  focusCell: (e, t) => ({
26043
26041
  ...e,
26044
26042
  focusedCellId: t.cellId,
@@ -26056,15 +26054,15 @@ var { reducer: Bv, createActions: Vv, valueAtom: Hv, useActions: Uv } = y(zv, {
26056
26054
  ...e,
26057
26055
  focusedCellId: null
26058
26056
  })
26059
- }), Wv = A((e) => e(Hv).lastFocusedCellId);
26060
- function Gv() {
26061
- return Me(Wv);
26057
+ }), Uv = A((e) => e(Vv).lastFocusedCellId);
26058
+ function Wv() {
26059
+ return Me(Uv);
26062
26060
  }
26063
26061
  A((e) => {
26064
- let t = e(Wv);
26065
- return !t || t === "__scratch__" ? null : Kv(t, e($));
26062
+ let t = e(Uv);
26063
+ return !t || t === "__scratch__" ? null : Gv(t, e($));
26066
26064
  });
26067
- function Kv(e, t) {
26065
+ function Gv(e, t) {
26068
26066
  let { cellData: n, cellHandles: r, cellRuntime: i } = t, a = n[e], o = i[e], s = r[e]?.current;
26069
26067
  return !a || !s ? null : {
26070
26068
  cellId: e,
@@ -26078,10 +26076,10 @@ function Kv(e, t) {
26078
26076
  }
26079
26077
  //#endregion
26080
26078
  //#region src/components/editor/connections/components.tsx
26081
- function qv() {
26082
- let e = (0, Tr.c)(4), { createNewCell: t } = Ix(), n = Gv(), r = Me(Fe), i;
26079
+ function Kv() {
26080
+ let e = (0, Tr.c)(4), { createNewCell: t } = Ix(), n = Wv(), r = Me(Fe), i;
26083
26081
  return e[0] !== r || e[1] !== t || e[2] !== n ? (i = (e) => {
26084
- /\bmo\./.test(e) && Lv({
26082
+ /\bmo\./.test(e) && Iv({
26085
26083
  autoInstantiate: r,
26086
26084
  createNewCell: t,
26087
26085
  fromCellId: n
@@ -26093,44 +26091,44 @@ function qv() {
26093
26091
  });
26094
26092
  }, e[0] = r, e[1] = t, e[2] = n, e[3] = i) : i = e[3], i;
26095
26093
  }
26096
- function Jv(e) {
26097
- let t = (0, Tr.c)(3), n = qv(), r;
26094
+ function qv(e) {
26095
+ let t = (0, Tr.c)(3), n = Kv(), r;
26098
26096
  return t[0] !== n || t[1] !== e ? (r = (t) => {
26099
26097
  n(t.code), e?.();
26100
26098
  }, t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
26101
26099
  }
26102
26100
  //#endregion
26103
26101
  //#region src/core/datasets/data-source-discovery.ts
26104
- function Yv(e, t) {
26102
+ function Jv(e, t) {
26105
26103
  return !t || e.category === "object-storage" == (t === "storage");
26106
26104
  }
26107
- function Xv(e, t) {
26105
+ function Yv(e, t) {
26108
26106
  let n = e.hidesWhen;
26109
- return n.kind === "dialect" ? n.substrings.some((e) => t.dialects.some((t) => t.includes(e))) : n.protocols.some((e) => t.storageProtocols.includes(e)) ? !0 : n.backendTypes.some((e) => t.storageBackendTypes.includes(e));
26107
+ return n.kind === "dialect" ? n.substrings.some((e) => t.dialects.some((t) => t.includes(e))) : n.protocols.some((e) => t.storageProtocols.has(e)) ? !0 : n.backendTypes.some((e) => t.storageBackendTypes.has(e));
26110
26108
  }
26111
- var Zv = A(0), Qv, $v = 0;
26112
- function ey() {
26113
- let e = j.get(Zv);
26114
- return (!Qv || $v !== e) && ($v = e, Qv = Em().then(() => T_.request({})).then((e) => e.sources).catch((t) => {
26115
- throw $v === e && (Qv = void 0), t;
26116
- })), Qv;
26109
+ var Xv = A(0), Zv, Qv = 0;
26110
+ function $v() {
26111
+ let e = j.get(Xv);
26112
+ return (!Zv || Qv !== e) && (Qv = e, Zv = Em().then(() => w_.request({})).then((e) => e.sources).catch((t) => {
26113
+ throw Qv === e && (Zv = void 0), t;
26114
+ })), Zv;
26117
26115
  }
26118
- function ty(e, t) {
26116
+ function ey(e, t) {
26119
26117
  return `${e}::${t ?? ""}`;
26120
26118
  }
26121
- function ny(e) {
26119
+ function ty(e) {
26122
26120
  return `${e}::`;
26123
26121
  }
26124
26122
  //#endregion
26125
26123
  //#region src/core/storage/state.ts
26126
- function ry() {
26124
+ function ny() {
26127
26125
  return {
26128
26126
  namespaces: [],
26129
26127
  entriesByPath: /* @__PURE__ */ new Map(),
26130
26128
  pageMetadataByPath: /* @__PURE__ */ new Map()
26131
26129
  };
26132
26130
  }
26133
- var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26131
+ var { reducer: ry, createActions: iy, valueAtom: ay, useActions: oy } = y(ny, {
26134
26132
  setNamespaces: (e, t) => {
26135
26133
  let n = new Map(e.namespaces.map((e) => [e.name, e]));
26136
26134
  for (let e of t.namespaces) n.set(e.name, e);
@@ -26140,7 +26138,7 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26140
26138
  };
26141
26139
  },
26142
26140
  setEntries: (e, t) => {
26143
- let n = ty(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
26141
+ let n = ey(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
26144
26142
  r.set(n, i);
26145
26143
  let a = new Map(e.pageMetadataByPath);
26146
26144
  return a.set(n, { nextPageToken: t.nextPageToken ?? null }), {
@@ -26150,7 +26148,7 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26150
26148
  };
26151
26149
  },
26152
26150
  clearNamespaceCache: (e, t) => {
26153
- let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = ny(t);
26151
+ let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = ty(t);
26154
26152
  for (let e of n.keys()) e.startsWith(i) && n.delete(e);
26155
26153
  for (let e of r.keys()) e.startsWith(i) && r.delete(e);
26156
26154
  return {
@@ -26166,15 +26164,15 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26166
26164
  namespaces: r
26167
26165
  };
26168
26166
  }
26169
- }), cy = A((e) => e(oy).namespaces);
26167
+ }), sy = A((e) => e(ay).namespaces);
26170
26168
  //#endregion
26171
26169
  //#region src/hooks/useDataSourceDiscovery.ts
26172
- function ly() {
26173
- let e = (0, Tr.c)(2), t = Me(Zv), n;
26174
- return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), sn(ey, n);
26170
+ function cy() {
26171
+ let e = (0, Tr.c)(2), t = Me(Xv), n;
26172
+ return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), sn($v, n);
26175
26173
  }
26176
- function uy(e) {
26177
- let t = (0, Tr.c)(6), { data: n } = ly(), r = Me(Ml), i = Me(cy), a;
26174
+ function ly(e) {
26175
+ let t = (0, Tr.c)(6), { data: n } = cy(), r = Me(Ml), i = Me(sy), a;
26178
26176
  bb0: {
26179
26177
  if (!n) {
26180
26178
  let e;
@@ -26184,91 +26182,91 @@ function uy(e) {
26184
26182
  let o;
26185
26183
  if (t[1] !== r || t[2] !== n || t[3] !== e || t[4] !== i) {
26186
26184
  let a = {
26187
- dialects: [...r.values()].map(py),
26188
- storageProtocols: i.map(fy),
26189
- storageBackendTypes: i.map(dy)
26185
+ dialects: [...r.values()].map(fy),
26186
+ storageProtocols: new Set(i.map(dy)),
26187
+ storageBackendTypes: new Set(i.map(uy))
26190
26188
  };
26191
- o = n.filter((t) => Yv(t, e) && !Xv(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
26189
+ o = n.filter((t) => Jv(t, e) && !Yv(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
26192
26190
  } else o = t[5];
26193
26191
  a = o;
26194
26192
  }
26195
26193
  return a;
26196
26194
  }
26197
- function dy(e) {
26195
+ function uy(e) {
26198
26196
  return e.backendType.toLowerCase();
26199
26197
  }
26200
- function fy(e) {
26198
+ function dy(e) {
26201
26199
  return e.protocol.toLowerCase();
26202
26200
  }
26203
- function py(e) {
26201
+ function fy(e) {
26204
26202
  return e.dialect.toLowerCase();
26205
26203
  }
26206
26204
  //#endregion
26207
26205
  //#region src/hooks/useNonce.ts
26208
- function my() {
26206
+ function py() {
26209
26207
  let e = (0, Tr.c)(1), [, t] = (0, F.useState)(0), n;
26210
26208
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (n = () => {
26211
- t(hy);
26209
+ t(my);
26212
26210
  }, e[0] = n) : n = e[0], n;
26213
26211
  }
26214
- function hy(e) {
26212
+ function my(e) {
26215
26213
  return e + 1;
26216
26214
  }
26217
26215
  //#endregion
26218
26216
  //#region src/core/codemirror/language/panel/sql.tsx
26219
- var gy = (e) => {
26220
- let t = (0, Tr.c)(6), n = uy("database");
26217
+ var hy = (e) => {
26218
+ let t = (0, Tr.c)(6), n = ly("database");
26221
26219
  if (n.length === 0) {
26222
26220
  let r;
26223
- return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(vy, {
26221
+ return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(_y, {
26224
26222
  ...e,
26225
26223
  detectedDataSources: n
26226
26224
  }), t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
26227
26225
  }
26228
26226
  let r;
26229
- return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(_y, {
26227
+ return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, I.jsx)(gy, {
26230
26228
  ...e,
26231
26229
  detectedDataSources: n
26232
26230
  }), t[3] = n, t[4] = e, t[5] = r) : r = t[5], r;
26233
- }, _y = (e) => {
26231
+ }, gy = (e) => {
26234
26232
  let t = (0, Tr.c)(7), n, r;
26235
26233
  t[0] === e ? (n = t[1], r = t[2]) : ({detectedDataSources: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
26236
- let i = Jv(), a;
26237
- return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, I.jsx)(vy, {
26234
+ let i = qv(), a;
26235
+ return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, I.jsx)(_y, {
26238
26236
  ...r,
26239
26237
  detectedDataSources: n,
26240
26238
  addDetectedDataSource: i
26241
26239
  }), t[3] = i, t[4] = n, t[5] = r, t[6] = a) : a = t[6], a;
26242
- }, vy = (e) => {
26240
+ }, _y = (e) => {
26243
26241
  let t = (0, Tr.c)(42), { selectedEngine: n, onChange: r, cellId: i, detectedDataSources: a, addDetectedDataSource: o } = e, s = Me(Ml), c = [], l = [];
26244
26242
  for (let [e, t] of s.entries()) hl.has(e) ? c.push(t) : l.push(t);
26245
- let u = my(), d;
26243
+ let u = py(), d;
26246
26244
  t[0] !== s || t[1] !== n ? (d = n && !s.has(n), t[0] = s, t[1] = n, t[2] = d) : d = t[2];
26247
26245
  let f = d, p;
26248
26246
  t[3] !== o || t[4] !== s || t[5] !== a || t[6] !== r || t[7] !== u ? (p = (e) => {
26249
- if (e === yy) {
26250
- window.open(xy, "_blank");
26247
+ if (e === vy) {
26248
+ window.open(by, "_blank");
26251
26249
  return;
26252
26250
  }
26253
- if (e.startsWith(by)) {
26254
- let t = e.slice(by.length), n = a.find((e) => e.id === t);
26251
+ if (e.startsWith(yy)) {
26252
+ let t = e.slice(yy.length), n = a.find((e) => e.id === t);
26255
26253
  n && o && o(n);
26256
26254
  return;
26257
26255
  }
26258
26256
  let t = s.get(e);
26259
26257
  t && (u(), r(t.name), Nl(t.name));
26260
26258
  }, t[3] = o, t[4] = s, t[5] = a, t[6] = r, t[7] = u, t[8] = p) : p = t[8];
26261
- let m = p, h = Ey, g = le, _;
26262
- t[9] === i ? _ = t[10] : (_ = wv(i), t[9] = i, t[10] = _);
26259
+ let m = p, h = Ty, g = le, _;
26260
+ t[9] === i ? _ = t[10] : (_ = Cv(i), t[9] = i, t[10] = _);
26263
26261
  let v;
26264
26262
  t[11] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ (0, I.jsx)(re, { placeholder: "Select an engine" }), t[11] = v) : v = t[11];
26265
26263
  let y;
26266
- t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, I.jsx)(Cy, {
26264
+ t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, I.jsx)(Sy, {
26267
26265
  ..._,
26268
26266
  children: v
26269
26267
  }), t[12] = _, t[13] = y);
26270
26268
  let b = ae, x;
26271
- t[14] === i ? x = t[15] : (x = wv(i), t[14] = i, t[15] = x);
26269
+ t[14] === i ? x = t[15] : (x = Cv(i), t[14] = i, t[15] = x);
26272
26270
  let S = se, C;
26273
26271
  t[16] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ (0, I.jsx)(te, { children: "Database connections" }), t[16] = C) : C = t[16];
26274
26272
  let w;
@@ -26286,17 +26284,17 @@ var gy = (e) => {
26286
26284
  t[20] === a ? ce = t[21] : (ce = a.length > 0 && /* @__PURE__ */ (0, I.jsxs)(I.Fragment, { children: [
26287
26285
  /* @__PURE__ */ (0, I.jsx)(oe, {}),
26288
26286
  /* @__PURE__ */ (0, I.jsx)(te, { children: "Detected in your environment" }),
26289
- a.map(Dy)
26287
+ a.map(Ey)
26290
26288
  ] }), t[20] = a, t[21] = ce);
26291
26289
  let de;
26292
26290
  t[22] === Symbol.for("react.memo_cache_sentinel") ? (de = /* @__PURE__ */ (0, I.jsx)(oe, {}), t[22] = de) : de = t[22];
26293
26291
  let fe;
26294
26292
  t[23] === Symbol.for("react.memo_cache_sentinel") ? (fe = /* @__PURE__ */ (0, I.jsx)(ie, {
26295
26293
  className: "text-muted-foreground",
26296
- value: yy,
26294
+ value: vy,
26297
26295
  children: /* @__PURE__ */ (0, I.jsxs)("a", {
26298
26296
  className: "flex items-center gap-1",
26299
- href: xy,
26297
+ href: by,
26300
26298
  target: "_blank",
26301
26299
  rel: "noreferrer",
26302
26300
  children: [/* @__PURE__ */ (0, I.jsx)(ue, { className: "h-3 w-3" }), /* @__PURE__ */ (0, I.jsx)("span", { children: "How to add a database connection" })]
@@ -26327,13 +26325,13 @@ var gy = (e) => {
26327
26325
  children: [y, me]
26328
26326
  })
26329
26327
  }), t[36] = g, t[37] = m, t[38] = n, t[39] = me, t[40] = y, t[41] = E) : E = t[41], E;
26330
- }, yy = "__help__", by = "__detected_source__:", xy = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", Sy = () => {
26331
- let e = (0, Tr.c)(16), { sqlMode: t, setSQLMode: n } = R_(), r;
26328
+ }, vy = "__help__", yy = "__detected_source__:", by = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", xy = () => {
26329
+ let e = (0, Tr.c)(16), { sqlMode: t, setSQLMode: n } = L_(), r;
26332
26330
  e[0] !== n || e[1] !== t ? (r = () => {
26333
26331
  let e = t === "validate" ? "default" : "validate";
26334
- e === "default" && k_(), n(e);
26332
+ e === "default" && O_(), n(e);
26335
26333
  }, e[0] = n, e[1] = t, e[2] = r) : r = e[2];
26336
- let i = r, a = Oy, o = ky, s;
26334
+ let i = r, a = Dy, o = Oy, s;
26337
26335
  e[3] === t ? s = e[4] : (s = o(t), e[3] = t, e[4] = s);
26338
26336
  let c;
26339
26337
  e[5] === t ? c = e[6] : (c = a(t), e[5] = t, e[6] = c);
@@ -26359,7 +26357,7 @@ var gy = (e) => {
26359
26357
  children: f
26360
26358
  })
26361
26359
  }), e[13] = s, e[14] = f, e[15] = p) : p = e[15], p;
26362
- }, Cy = (e) => {
26360
+ }, Sy = (e) => {
26363
26361
  let t = (0, Tr.c)(6), n, r;
26364
26362
  t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
26365
26363
  let i;
@@ -26369,15 +26367,15 @@ var gy = (e) => {
26369
26367
  children: n
26370
26368
  }), t[3] = n, t[4] = r, t[5] = i) : i = t[5], i;
26371
26369
  };
26372
- function wy(e) {
26370
+ function Cy(e) {
26373
26371
  return e.source !== "iceberg";
26374
26372
  }
26375
- function Ty(e) {
26373
+ function wy(e) {
26376
26374
  return /* @__PURE__ */ (0, I.jsx)(ie, {
26377
26375
  value: e.name,
26378
26376
  children: /* @__PURE__ */ (0, I.jsxs)("div", {
26379
26377
  className: "flex items-center gap-1",
26380
- children: [/* @__PURE__ */ (0, I.jsx)(Fv, {
26378
+ children: [/* @__PURE__ */ (0, I.jsx)(Pv, {
26381
26379
  className: "h-3 w-3",
26382
26380
  name: e.dialect
26383
26381
  }), /* @__PURE__ */ (0, I.jsx)("span", {
@@ -26387,12 +26385,12 @@ function Ty(e) {
26387
26385
  })
26388
26386
  }, e.name);
26389
26387
  }
26390
- function Ey(e) {
26391
- return e = e.filter(wy), e.map(Ty);
26388
+ function Ty(e) {
26389
+ return e = e.filter(Cy), e.map(wy);
26392
26390
  }
26393
- function Dy(e) {
26391
+ function Ey(e) {
26394
26392
  return /* @__PURE__ */ (0, I.jsx)(ie, {
26395
- value: `${by}${e.id}`,
26393
+ value: `${yy}${e.id}`,
26396
26394
  children: /* @__PURE__ */ (0, I.jsxs)("div", {
26397
26395
  className: "flex items-center gap-1",
26398
26396
  children: [/* @__PURE__ */ (0, I.jsx)(Ln, { className: "h-3 w-3 text-(--blue-9)" }), /* @__PURE__ */ (0, I.jsxs)("span", {
@@ -26406,10 +26404,10 @@ function Dy(e) {
26406
26404
  })
26407
26405
  }, e.id);
26408
26406
  }
26409
- function Oy(e) {
26407
+ function Dy(e) {
26410
26408
  return e === "validate" ? /* @__PURE__ */ (0, I.jsx)(In, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, I.jsx)(bn, { className: "h-3 w-3" });
26411
26409
  }
26412
- function ky(e) {
26410
+ function Oy(e) {
26413
26411
  return e === "validate" ? /* @__PURE__ */ (0, I.jsxs)("div", {
26414
26412
  className: "text-xs",
26415
26413
  children: [/* @__PURE__ */ (0, I.jsxs)("div", {
@@ -26426,14 +26424,14 @@ function ky(e) {
26426
26424
  }
26427
26425
  //#endregion
26428
26426
  //#region src/core/codemirror/language/panel/panel.tsx
26429
- var Ay = () => {
26427
+ var ky = () => {
26430
26428
  let e = (0, Tr.c)(1), t;
26431
26429
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, I.jsx)("div", { className: "h-4 border-r border-border" }), e[0] = t) : t = e[0], t;
26432
- }, jy = (e) => {
26430
+ }, Ay = (e) => {
26433
26431
  let t = (0, Tr.c)(102), { view: n } = e, r;
26434
26432
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (r = { minWidth: 50 }, t[0] = r) : r = t[0];
26435
- let { spanProps: i, inputProps: a } = vv(r), o;
26436
- t[1] === n.state ? o = t[2] : (o = n.state.field(Py), t[1] = n.state, t[2] = o);
26433
+ let { spanProps: i, inputProps: a } = _v(r), o;
26434
+ t[1] === n.state ? o = t[2] : (o = n.state.field(Ny), t[1] = n.state, t[2] = o);
26437
26435
  let s = o, c;
26438
26436
  t[3] === n.state ? c = t[4] : (c = n.state.facet(il), t[3] = n.state, t[4] = c);
26439
26437
  let u = c, d;
@@ -26450,19 +26448,19 @@ var Ay = () => {
26450
26448
  });
26451
26449
  }, t[6] = n, t[7] = m);
26452
26450
  let _ = m;
26453
- if (s instanceof W_) {
26451
+ if (s instanceof U_) {
26454
26452
  let e;
26455
26453
  t[8] === n.state ? e = t[9] : (e = n.state.field(vp), t[8] = n.state, t[9] = e);
26456
26454
  let r = e;
26457
26455
  p = !0;
26458
26456
  let o;
26459
26457
  t[10] === _ ? o = t[11] : (o = (e) => {
26460
- let t = mv(e.currentTarget.value, !1);
26458
+ let t = pv(e.currentTarget.value, !1);
26461
26459
  e.currentTarget.value = t, _({ dataframeName: t });
26462
26460
  }, t[10] = _, t[11] = o);
26463
26461
  let s = o, c;
26464
26462
  t[12] !== _ || t[13] !== n ? (c = (e) => {
26465
- _({ engine: e }), Q_(n, e);
26463
+ _({ engine: e }), Z_(n, e);
26466
26464
  }, t[12] = _, t[13] = n, t[14] = c) : c = t[14];
26467
26465
  let d = c, m;
26468
26466
  t[15] === Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ (0, I.jsx)("span", {
@@ -26498,13 +26496,13 @@ var Ay = () => {
26498
26496
  ]
26499
26497
  }), t[28] = y, t[29] = b, t[30] = x) : x = t[30];
26500
26498
  let S;
26501
- t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, I.jsx)(gy, {
26499
+ t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, I.jsx)(hy, {
26502
26500
  selectedEngine: r.engine,
26503
26501
  onChange: d,
26504
26502
  cellId: u
26505
26503
  }), t[31] = u, t[32] = r.engine, t[33] = d, t[34] = S) : S = t[34];
26506
26504
  let C;
26507
- t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, I.jsx)(Sy, {}), t[35] = r.engine, t[36] = C);
26505
+ t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, I.jsx)(xy, {}), t[35] = r.engine, t[36] = C);
26508
26506
  let w;
26509
26507
  t[37] !== r.engine || t[38] !== n ? (w = async () => {
26510
26508
  await Du(n, r.engine);
@@ -26522,7 +26520,7 @@ var Ay = () => {
26522
26520
  })
26523
26521
  }), t[41] = w, t[42] = ee);
26524
26522
  let te;
26525
- t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, I.jsx)(Ay, {}), t[43] = te) : te = t[43];
26523
+ t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, I.jsx)(ky, {}), t[43] = te) : te = t[43];
26526
26524
  let ne;
26527
26525
  t[44] === _ ? ne = t[45] : (ne = (e) => {
26528
26526
  _({ showOutput: !e.target.checked });
@@ -26570,13 +26568,13 @@ var Ay = () => {
26570
26568
  let { quotePrefix: f } = n.state.field(vp);
26571
26569
  r = f, r === void 0 && (r = "r", _({ quotePrefix: r })), d = (e, t) => {
26572
26570
  if (typeof t != "boolean") return;
26573
- let n = yv({
26571
+ let n = vv({
26574
26572
  currentQuotePrefix: r,
26575
26573
  checked: t,
26576
26574
  prefix: e
26577
26575
  });
26578
26576
  _({ quotePrefix: n });
26579
- }, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, I.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = fv, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
26577
+ }, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, I.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = dv, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
26580
26578
  d("r", e);
26581
26579
  }, t[60] = _, t[61] = n.state, t[62] = e, t[63] = r, t[64] = i, t[65] = a, t[66] = o, t[67] = s, t[68] = c, t[69] = l, t[70] = u, t[71] = d;
26582
26580
  } else e = t[62], r = t[63], i = t[64], a = t[65], o = t[66], s = t[67], c = t[68], l = t[69], u = t[70], d = t[71];
@@ -26603,7 +26601,7 @@ var Ay = () => {
26603
26601
  let x;
26604
26602
  t[88] !== y || t[89] !== b ? (x = /* @__PURE__ */ (0, I.jsxs)("div", {
26605
26603
  className: "flex items-center gap-1.5",
26606
- children: [v, /* @__PURE__ */ (0, I.jsx)(fv, {
26604
+ children: [v, /* @__PURE__ */ (0, I.jsx)(dv, {
26607
26605
  "aria-label": "Toggle f-string",
26608
26606
  className: "w-3 h-3",
26609
26607
  checked: y,
@@ -26612,7 +26610,7 @@ var Ay = () => {
26612
26610
  }), t[88] = y, t[89] = b, t[90] = x) : x = t[90];
26613
26611
  let S;
26614
26612
  t[91] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ (0, I.jsx)(g, {
26615
- content: /* @__PURE__ */ (0, I.jsx)(bv, {}),
26613
+ content: /* @__PURE__ */ (0, I.jsx)(yv, {}),
26616
26614
  children: /* @__PURE__ */ (0, I.jsx)(En, { className: "w-3 h-3" })
26617
26615
  }), t[91] = S) : S = t[91];
26618
26616
  let C;
@@ -26626,7 +26624,7 @@ var Ay = () => {
26626
26624
  }), t[92] = a, t[93] = h, t[94] = x, t[95] = C) : C = t[95], f = C;
26627
26625
  }
26628
26626
  let v;
26629
- t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, I.jsx)(Ay, {}), t[96] = p, t[97] = v);
26627
+ t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, I.jsx)(ky, {}), t[96] = p, t[97] = v);
26630
26628
  let y;
26631
26629
  return t[98] !== f || t[99] !== s.type || t[100] !== v ? (y = /* @__PURE__ */ (0, I.jsx)(h, { children: /* @__PURE__ */ (0, I.jsxs)("div", {
26632
26630
  className: "flex justify-between items-center gap-4 pl-2 pt-2",
@@ -26636,18 +26634,18 @@ var Ay = () => {
26636
26634
  s.type
26637
26635
  ]
26638
26636
  }) }), t[98] = f, t[99] = s.type, t[100] = v, t[101] = y) : y = t[101], y;
26639
- }, My = new pt(), Ny = et.define(), Py = xt.define({
26637
+ }, jy = new pt(), My = et.define(), Ny = xt.define({
26640
26638
  create() {
26641
- return dv.python;
26639
+ return uv.python;
26642
26640
  },
26643
26641
  update(e, t) {
26644
- for (let e of t.effects) if (e.is(Ny)) return e.value;
26642
+ for (let e of t.effects) if (e.is(My)) return e.value;
26645
26643
  return e;
26646
26644
  },
26647
- provide: (e) => nt.from(e, (e) => e.type === "python" ? null : (e) => ku(e, jy))
26645
+ provide: (e) => nt.from(e, (e) => e.type === "python" ? null : (e) => ku(e, Ay))
26648
26646
  });
26649
- function Fy({ view: e, nextLanguage: t, opts: n }) {
26650
- let r = e.state.field(Py), i = e.state.doc.toString(), a = e.state.facet(Nc), o = e.state.facet(Pc), s = e.state.facet(Fc), c = e.state.facet(Ic), l = e.state.facet(Lc), u = e.state.field(vp), d = e.state.selection.main.head, f;
26647
+ function Py({ view: e, nextLanguage: t, opts: n }) {
26648
+ let r = e.state.field(Ny), i = e.state.doc.toString(), a = e.state.facet(Nc), o = e.state.facet(Pc), s = e.state.facet(Fc), c = e.state.facet(Ic), l = e.state.facet(Lc), u = e.state.field(vp), d = e.state.selection.main.head, f;
26651
26649
  if (n.keepCodeAsIs) f = i, r.type !== t.type && (u = { ...t.defaultMetadata });
26652
26650
  else {
26653
26651
  let [e, n] = r.transformOut(i, u), [a, o, s] = t.transformIn(e);
@@ -26655,9 +26653,9 @@ function Fy({ view: e, nextLanguage: t, opts: n }) {
26655
26653
  }
26656
26654
  e.dispatch({
26657
26655
  effects: [
26658
- Ny.of(t),
26656
+ My.of(t),
26659
26657
  gp.of(u),
26660
- My.reconfigure(t.getExtension(c, a, o, s, l)),
26658
+ jy.reconfigure(t.getExtension(c, a, o, s, l)),
26661
26659
  Rc.reconfigure([]),
26662
26660
  Eu.of(!0)
26663
26661
  ],
@@ -26667,38 +26665,38 @@ function Fy({ view: e, nextLanguage: t, opts: n }) {
26667
26665
  insert: f
26668
26666
  },
26669
26667
  selection: n.keepCodeAsIs ? void 0 : Ue.cursor(d)
26670
- }), e.dispatch({ effects: [Rc.reconfigure([Ct()])] }), t.type === "sql" && $_(e);
26668
+ }), e.dispatch({ effects: [Rc.reconfigure([Ct()])] }), t.type === "sql" && Q_(e);
26671
26669
  }
26672
- function Iy(e) {
26673
- return e ? dv.markdown.isSupported(e) ? dv.markdown : dv.sql.isSupported(e) ? dv.sql : dv.python : dv.python;
26670
+ function Fy(e) {
26671
+ return e ? uv.markdown.isSupported(e) ? uv.markdown : uv.sql.isSupported(e) ? uv.sql : uv.python : uv.python;
26674
26672
  }
26675
- function Ly(e, t) {
26676
- e.state.field(Py).type !== t.language && Fy({
26673
+ function Iy(e, t) {
26674
+ e.state.field(Ny).type !== t.language && Py({
26677
26675
  view: e,
26678
- nextLanguage: dv[t.language],
26676
+ nextLanguage: uv[t.language],
26679
26677
  opts: { keepCodeAsIs: t.keepCodeAsIs ?? !1 }
26680
26678
  });
26681
26679
  }
26682
26680
  //#endregion
26683
26681
  //#region src/core/codemirror/language/utils.ts
26684
- function Ry(e, t, n) {
26685
- let r = e.state.field(Py), i = e.state.field(vp), a = e.state.doc.toString();
26682
+ function Ly(e, t, n) {
26683
+ let r = e.state.field(Ny), i = e.state.field(vp), a = e.state.doc.toString();
26686
26684
  return t === void 0 ? r.transformOut(a, i)[0] : r.transformOut(a.slice(t, n), i)[0];
26687
26685
  }
26688
- function zy(e, t) {
26689
- let n = e.state.field(Py), r = Iy(t);
26690
- r.type !== n.type && Ly(e, {
26686
+ function Ry(e, t) {
26687
+ let n = e.state.field(Ny), r = Fy(t);
26688
+ r.type !== n.type && Iy(e, {
26691
26689
  language: r.type,
26692
26690
  keepCodeAsIs: !0
26693
26691
  });
26694
- let [i] = e.state.field(Py).transformIn(t);
26692
+ let [i] = e.state.field(Ny).transformIn(t);
26695
26693
  return jc(e, i), i;
26696
26694
  }
26697
- function By(e) {
26695
+ function zy(e) {
26698
26696
  let t = e.state.selection.main.head, n = e.state.doc.toString(), r = n.length > 0 && n[t - 1] === "\n", i = n.length > 0 && n[t] === "\n", a = r ? t - 1 : t, o = i ? t + 1 : t;
26699
26697
  return {
26700
- beforeCursorCode: Ry(e, 0, a),
26701
- afterCursorCode: Ry(e, o)
26698
+ beforeCursorCode: Ly(e, 0, a),
26699
+ afterCursorCode: Ly(e, o)
26702
26700
  };
26703
26701
  }
26704
26702
  //#endregion
@@ -26711,7 +26709,7 @@ if (typeof document < "u") {
26711
26709
  t.tagName === "A" && t.hasAttribute(e) && (t.setAttribute("target", t.getAttribute(e) || ""), t.removeAttribute(e), t.getAttribute("target") === "_blank" && t.setAttribute("rel", "noopener noreferrer"));
26712
26710
  });
26713
26711
  }
26714
- function Vy(e) {
26712
+ function By(e) {
26715
26713
  let t = {
26716
26714
  USE_PROFILES: {
26717
26715
  html: !0,
@@ -26731,52 +26729,52 @@ function Vy(e) {
26731
26729
  }
26732
26730
  //#endregion
26733
26731
  //#region src/core/dom/outline.ts
26734
- var Hy = [
26732
+ var Vy = [
26735
26733
  "marimo-carousel",
26736
26734
  "marimo-tabs",
26737
26735
  "marimo-accordion",
26738
26736
  "marimo-sidebar"
26739
- ], Uy = "h1, h2, h3, h4, h5, h6";
26740
- function Wy(e) {
26737
+ ], Hy = "h1, h2, h3, h4, h5, h6";
26738
+ function Uy(e) {
26741
26739
  if (typeof DOMParser > "u") return null;
26742
- let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(Uy);
26740
+ let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(Hy);
26743
26741
  for (let e of Array.from(n)) {
26744
26742
  let n = e.textContent;
26745
- if (Hy.some((t) => e.closest(t)) || !n) continue;
26743
+ if (Vy.some((t) => e.closest(t)) || !n) continue;
26746
26744
  let r = Number.parseInt(e.tagName[1], 10), i = e.innerHTML, a = {
26747
26745
  name: n,
26748
26746
  level: r,
26749
- by: Ky(e)
26747
+ by: Gy(e)
26750
26748
  };
26751
- i !== n && (a.html = Vy(i)), t.push(a);
26749
+ i !== n && (a.html = By(i)), t.push(a);
26752
26750
  }
26753
26751
  return { items: t };
26754
26752
  }
26755
- function Gy(e) {
26753
+ function Wy(e) {
26756
26754
  if (!e.includes("\"")) return `"${e}"`;
26757
26755
  if (!e.includes("'")) return `'${e}'`;
26758
26756
  let t = e.split("\""), n = [];
26759
26757
  for (let [e, r] of t.entries()) r && n.push(`"${r}"`), e < t.length - 1 && n.push("'\"'");
26760
26758
  return `concat(${n.join(", ")})`;
26761
26759
  }
26762
- function Ky(e) {
26760
+ function Gy(e) {
26763
26761
  let t = e.id;
26764
26762
  if (t) return { id: t };
26765
26763
  let n = e.textContent ?? "";
26766
- return { path: `//${e.tagName}[contains(., ${Gy(n)})]` };
26764
+ return { path: `//${e.tagName}[contains(., ${Wy(n)})]` };
26767
26765
  }
26768
- function qy(e) {
26766
+ function Ky(e) {
26769
26767
  return { items: e.filter(Boolean).flatMap((e) => e.items) };
26770
26768
  }
26771
- function Jy(e) {
26769
+ function qy(e) {
26772
26770
  if (e == null || e.mimetype !== "text/html" && e.mimetype !== "text/markdown" || e.data == null) return null;
26773
26771
  try {
26774
- return N(typeof e.data == "string", "expected string"), Wy(e.data);
26772
+ return N(typeof e.data == "string", "expected string"), Uy(e.data);
26775
26773
  } catch {
26776
26774
  return a.error("Failed to parse outline"), null;
26777
26775
  }
26778
26776
  }
26779
- function Yy(e, t) {
26777
+ function Jy(e, t) {
26780
26778
  let n = (e) => e.items.length === 0 ? 7 : Math.min(...e.items.map((e) => e.level)), r = t[e];
26781
26779
  if (r == null || r.items.length === 0) return a.warn("Failed to find a starting outline"), null;
26782
26780
  let i = n(r), o = e + 1;
@@ -26788,13 +26786,13 @@ function Yy(e, t) {
26788
26786
  return [e, t.length - 1];
26789
26787
  }
26790
26788
  wr("marimo:rtc:username", "", Ed);
26791
- var Xy = Ft(() => vd("rtc_v2"));
26792
- function Zy(e) {
26789
+ var Yy = Ft(() => vd("rtc_v2"));
26790
+ function Xy(e) {
26793
26791
  return e !== Gr;
26794
26792
  }
26795
26793
  //#endregion
26796
26794
  //#region src/components/editor/output/ansi-reduce.ts
26797
- var Qy = class e {
26795
+ var Zy = class e {
26798
26796
  lines = [""];
26799
26797
  cursor = {
26800
26798
  row: 0,
@@ -26883,7 +26881,7 @@ var Qy = class e {
26883
26881
  render() {
26884
26882
  return this.lines.join("\n");
26885
26883
  }
26886
- }, $y = class {
26884
+ }, Qy = class {
26887
26885
  ESC_REGEX = new RegExp(String.raw`\u001B(?:\[[0-9;]*[A-Za-z]|\([0-9A-Za-z])`, "gu");
26888
26886
  parse(e) {
26889
26887
  let t = [], n = 0;
@@ -26902,9 +26900,9 @@ var Qy = class e {
26902
26900
  value: e.slice(n)
26903
26901
  }), t;
26904
26902
  }
26905
- }, eb = class {
26906
- parser = new $y();
26907
- buffer = new Qy();
26903
+ }, $y = class {
26904
+ parser = new Qy();
26905
+ buffer = new Zy();
26908
26906
  reduce(e) {
26909
26907
  return this.reset(), this.append(e), this.render();
26910
26908
  }
@@ -26920,7 +26918,7 @@ var Qy = class e {
26920
26918
  for (let e of t) e.type === "text" ? this.processText(e.value) : this.buffer.handleEscape(e.value);
26921
26919
  }
26922
26920
  reset() {
26923
- this.buffer = new Qy();
26921
+ this.buffer = new Zy();
26924
26922
  }
26925
26923
  render() {
26926
26924
  return this.buffer.render();
@@ -26963,18 +26961,18 @@ var Qy = class e {
26963
26961
  for (let t of e) t >= " " && (n += t);
26964
26962
  return n;
26965
26963
  }
26966
- }, tb = class e {
26964
+ }, eb = class e {
26967
26965
  mimetype;
26968
26966
  channel;
26969
26967
  timestamp;
26970
26968
  code;
26971
- ansiReducer = new eb();
26969
+ ansiReducer = new $y();
26972
26970
  _data;
26973
26971
  get data() {
26974
26972
  return this._data;
26975
26973
  }
26976
26974
  static create(t) {
26977
- let n = new eb();
26975
+ let n = new $y();
26978
26976
  return n.append(t.data), new e(t.mimetype, t.channel, t.timestamp, n, t.code);
26979
26977
  }
26980
26978
  constructor(e, t, n, r, i) {
@@ -26995,28 +26993,28 @@ var Qy = class e {
26995
26993
  };
26996
26994
  //#endregion
26997
26995
  //#region src/core/cells/collapseConsoleOutputs.tsx
26998
- function nb(e, t = 5e3) {
26996
+ function tb(e, t = 5e3) {
26999
26997
  let n = [...e];
27000
- if (n.length < 2) return sb(n.map(ib), t);
26998
+ if (n.length < 2) return ob(n.map(rb), t);
27001
26999
  let r = n[n.length - 1], i = n[n.length - 2];
27002
- return rb(r, i) && (ob(r), ob(i), n[n.length - 2] = ab(i, r), n.pop()), sb(n, t);
27000
+ return nb(r, i) && (ab(r), ab(i), n[n.length - 2] = ib(i, r), n.pop()), ob(n, t);
27003
27001
  }
27004
- function rb(e, t) {
27002
+ function nb(e, t) {
27005
27003
  let n = e.mimetype === "text/plain" && t.mimetype === "text/plain";
27006
27004
  if (!n) return !1;
27007
27005
  let r = e.channel === t.channel, i = e.channel !== "stdin";
27008
27006
  return n && r && i;
27009
27007
  }
27010
- function ib(e) {
27011
- return e instanceof tb ? e : typeof e.data == "string" ? tb.create(e) : e;
27008
+ function rb(e) {
27009
+ return e instanceof eb ? e : typeof e.data == "string" ? eb.create(e) : e;
27012
27010
  }
27013
- function ab(e, t) {
27014
- return e instanceof tb ? e.appendData(t.data) : tb.create(e).appendData(t.data);
27011
+ function ib(e, t) {
27012
+ return e instanceof eb ? e.appendData(t.data) : eb.create(e).appendData(t.data);
27015
27013
  }
27016
- function ob(e) {
27014
+ function ab(e) {
27017
27015
  N(typeof e.data == "string", "expected string output");
27018
27016
  }
27019
- function sb(e, t) {
27017
+ function ob(e, t) {
27020
27018
  let n = 0, r;
27021
27019
  for (r = e.length - 1; r >= 0 && n < t; r--) {
27022
27020
  let t = e[r];
@@ -27046,7 +27044,7 @@ function sb(e, t) {
27046
27044
  }
27047
27045
  //#endregion
27048
27046
  //#region src/core/cells/cell.ts
27049
- function cb(e, t) {
27047
+ function sb(e, t) {
27050
27048
  let n = { ...e };
27051
27049
  switch (t.status) {
27052
27050
  case "queued":
@@ -27075,27 +27073,27 @@ function cb(e, t) {
27075
27073
  response: e.response ?? ""
27076
27074
  } : e));
27077
27075
  let a = t.console;
27078
- a != null && (i = nb(Array.isArray(a) ? a : [...i, a])), n.consoleOutputs = i, n.outline = Jy(n.output);
27076
+ a != null && (i = tb(Array.isArray(a) ? a : [...i, a])), n.consoleOutputs = i, n.outline = qy(n.output);
27079
27077
  let o = [t.console].flat().filter(Boolean).filter((e) => e.channel === "pdb");
27080
27078
  return o.length > 0 && o.some((e) => e.data === "start") && (n.debuggerActive = !0), n;
27081
27079
  }
27082
- function lb(e) {
27080
+ function cb(e) {
27083
27081
  let t = { ...e };
27084
27082
  return e.status !== "disabled-transitively" && (t.status = "queued"), t.interrupted = !1, t.errored = !1, t.runElapsedTimeMs = null, t.debuggerActive = !1, t;
27085
27083
  }
27086
- function ub(e) {
27084
+ function lb(e) {
27087
27085
  return e === "running" || e === "queued";
27088
27086
  }
27089
- function db(e, t) {
27087
+ function ub(e, t) {
27090
27088
  let { status: n, output: r, runStartTimestamp: i, interrupted: a, staleInputs: o } = e;
27091
27089
  if (a) return !1;
27092
27090
  if (t) return !0;
27093
- let s = ub(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
27091
+ let s = lb(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
27094
27092
  return s && !c ? !0 : o;
27095
27093
  }
27096
27094
  //#endregion
27097
27095
  //#region src/core/cells/document-changes.ts
27098
- function fb(e, t) {
27096
+ function db(e, t) {
27099
27097
  if (!e) {
27100
27098
  a.warn("getCell: cellId is undefined");
27101
27099
  return;
@@ -27107,32 +27105,32 @@ function fb(e, t) {
27107
27105
  }
27108
27106
  return n;
27109
27107
  }
27110
- function pb(e, t) {
27108
+ function fb(e, t) {
27111
27109
  let n = t.cellIds.inOrderIds, r = n.indexOf(e);
27112
27110
  if (r > 0) return { after: n[r - 1] };
27113
27111
  if (r === 0 && n.length > 1) return { before: n[1] };
27114
27112
  }
27115
- function mb(e) {
27113
+ function pb(e) {
27116
27114
  let t = /* @__PURE__ */ new Map(), n = e.cellIds.getColumns();
27117
27115
  for (let [e, r] of n.entries()) for (let n of r.inOrderIds) t.set(n, e);
27118
27116
  return t;
27119
27117
  }
27120
- function hb(e, t) {
27118
+ function mb(e, t) {
27121
27119
  let n = new Set(e.cellIds.inOrderIds), r = [];
27122
27120
  for (let e of t.cellIds.inOrderIds) if (!n.has(e)) {
27123
- let n = fb(e, t);
27121
+ let n = db(e, t);
27124
27122
  n && r.push({
27125
27123
  type: "create-cell",
27126
27124
  cellId: n.id,
27127
27125
  code: n.code,
27128
27126
  name: n.name,
27129
27127
  config: n.config,
27130
- ...pb(n.id, t)
27128
+ ...fb(n.id, t)
27131
27129
  });
27132
27130
  }
27133
27131
  return r;
27134
27132
  }
27135
- function gb(e, t) {
27133
+ function hb(e, t) {
27136
27134
  let n = new Set(t.cellIds.inOrderIds), r = [];
27137
27135
  for (let t of e.cellIds.inOrderIds) n.has(t) || r.push({
27138
27136
  type: "delete-cell",
@@ -27140,10 +27138,10 @@ function gb(e, t) {
27140
27138
  });
27141
27139
  return r;
27142
27140
  }
27143
- function _b(e, t) {
27144
- let n = mb(e), r = mb(t), i = [];
27141
+ function gb(e, t) {
27142
+ let n = pb(e), r = pb(t), i = [];
27145
27143
  for (let [e, a] of r) if (n.get(e) !== a) {
27146
- let n = fb(e, t);
27144
+ let n = db(e, t);
27147
27145
  i.push({
27148
27146
  type: "set-config",
27149
27147
  cellId: e,
@@ -27158,9 +27156,9 @@ function _b(e, t) {
27158
27156
  cellIds: t.cellIds.inOrderIds
27159
27157
  }), i;
27160
27158
  }
27161
- function vb(e, t, n) {
27159
+ function _b(e, t, n) {
27162
27160
  switch (n.type) {
27163
- case "createNewCell": return hb(e, t);
27161
+ case "createNewCell": return mb(e, t);
27164
27162
  case "deleteCell": return [{
27165
27163
  type: "delete-cell",
27166
27164
  cellId: n.payload.cellId
@@ -27172,15 +27170,15 @@ function vb(e, t, n) {
27172
27170
  return [{
27173
27171
  type: "move-cell",
27174
27172
  cellId: e,
27175
- ...pb(e, t)
27173
+ ...fb(e, t)
27176
27174
  }];
27177
27175
  }
27178
27176
  case "dropCellOverCell":
27179
27177
  case "dropCellOverColumn":
27180
27178
  case "moveCellToIndex":
27181
- case "moveCellsRelativeTo": return _b(e, t);
27179
+ case "moveCellsRelativeTo": return gb(e, t);
27182
27180
  case "updateCellCode": {
27183
- let e = fb(n.payload.cellId, t);
27181
+ let e = db(n.payload.cellId, t);
27184
27182
  return e ? [{
27185
27183
  type: "set-code",
27186
27184
  cellId: e.id,
@@ -27188,7 +27186,7 @@ function vb(e, t, n) {
27188
27186
  }] : [];
27189
27187
  }
27190
27188
  case "updateCellName": {
27191
- let e = fb(n.payload.cellId, t);
27189
+ let e = db(n.payload.cellId, t);
27192
27190
  return e ? [{
27193
27191
  type: "set-name",
27194
27192
  cellId: e.id,
@@ -27196,7 +27194,7 @@ function vb(e, t, n) {
27196
27194
  }] : [];
27197
27195
  }
27198
27196
  case "updateCellConfig": {
27199
- let { cellId: e } = n.payload, r = fb(e, t);
27197
+ let { cellId: e } = n.payload, r = db(e, t);
27200
27198
  return r ? [{
27201
27199
  type: "set-config",
27202
27200
  cellId: e,
@@ -27211,30 +27209,30 @@ function vb(e, t, n) {
27211
27209
  case "addColumnBreakpoint":
27212
27210
  case "deleteColumn":
27213
27211
  case "mergeAllColumns":
27214
- case "compactColumns": return _b(e, t);
27215
- case "addColumn": return [...hb(e, t), ..._b(e, t)];
27212
+ case "compactColumns": return gb(e, t);
27213
+ case "addColumn": return [...mb(e, t), ...gb(e, t)];
27216
27214
  case "undoDeleteCell": {
27217
- let n = hb(e, t), r = _b(e, t);
27215
+ let n = mb(e, t), r = gb(e, t);
27218
27216
  return n.length === 0 ? r : r.length > 1 ? [...n, ...r] : n;
27219
27217
  }
27220
27218
  case "splitCell": {
27221
- let { cellId: r } = n.payload, i = fb(r, t);
27219
+ let { cellId: r } = n.payload, i = db(r, t);
27222
27220
  return i ? [{
27223
27221
  type: "set-code",
27224
27222
  cellId: r,
27225
27223
  code: i.code
27226
- }, ...hb(e, t)] : [];
27224
+ }, ...mb(e, t)] : [];
27227
27225
  }
27228
27226
  case "undoSplitCell": {
27229
- let { cellId: r } = n.payload, i = fb(r, t);
27227
+ let { cellId: r } = n.payload, i = db(r, t);
27230
27228
  return i ? [{
27231
27229
  type: "set-code",
27232
27230
  cellId: r,
27233
27231
  code: i.code
27234
- }, ...gb(e, t)] : [];
27232
+ }, ...hb(e, t)] : [];
27235
27233
  }
27236
- case "moveToNextCell": return hb(e, t);
27237
- case "addSetupCellIfDoesntExist": return hb(e, t);
27234
+ case "moveToNextCell": return mb(e, t);
27235
+ case "addSetupCellIfDoesntExist": return mb(e, t);
27238
27236
  case "focusCell":
27239
27237
  case "focusTopCell":
27240
27238
  case "focusBottomCell":
@@ -27264,88 +27262,88 @@ function vb(e, t, n) {
27264
27262
  default: ee(n);
27265
27263
  }
27266
27264
  }
27267
- var yb = /* @__PURE__ */ new Set([
27265
+ var vb = /* @__PURE__ */ new Set([
27268
27266
  "set-code",
27269
27267
  "set-name",
27270
27268
  "set-config"
27271
- ]), bb = /* @__PURE__ */ new Set([
27269
+ ]), yb = /* @__PURE__ */ new Set([
27272
27270
  "set-code",
27273
27271
  "set-name",
27274
27272
  "set-config",
27275
27273
  "move-cell"
27276
27274
  ]);
27277
- function xb(e) {
27275
+ function bb(e) {
27278
27276
  let t = /* @__PURE__ */ new Set();
27279
27277
  for (let n of e) n.type === "delete-cell" && t.add(n.cellId);
27280
- let n = e.filter((e) => !(bb.has(e.type) && "cellId" in e && t.has(e.cellId))), r = /* @__PURE__ */ new Map();
27278
+ let n = e.filter((e) => !(yb.has(e.type) && "cellId" in e && t.has(e.cellId))), r = /* @__PURE__ */ new Map();
27281
27279
  return n.forEach((e, t) => {
27282
- yb.has(e.type) && "cellId" in e && r.set(`${e.type}:${e.cellId}`, t);
27283
- }), n.filter((e, t) => yb.has(e.type) && "cellId" in e ? r.get(`${e.type}:${e.cellId}`) === t : !0);
27284
- }
27285
- var Sb = [], Cb = [], wb = Promise.resolve(), Tb = 0, Eb = null, Db = { status: "synchronized" };
27286
- function Ob() {
27287
- if (Db.status === "failed") return;
27288
- let e = xb(Sb);
27289
- Sb = [], e.length > 0 && Cb.push(e);
27290
- }
27291
- async function kb(e) {
27292
- if (e === Tb) {
27293
- if (Db.status === "failed") throw Db.error;
27294
- for (; Cb.length > 0;) {
27295
- let t = Cb[0];
27280
+ vb.has(e.type) && "cellId" in e && r.set(`${e.type}:${e.cellId}`, t);
27281
+ }), n.filter((e, t) => vb.has(e.type) && "cellId" in e ? r.get(`${e.type}:${e.cellId}`) === t : !0);
27282
+ }
27283
+ var xb = [], Sb = [], Cb = Promise.resolve(), wb = 0, Tb = null, Eb = { status: "synchronized" };
27284
+ function Db() {
27285
+ if (Eb.status === "failed") return;
27286
+ let e = bb(xb);
27287
+ xb = [], e.length > 0 && Sb.push(e);
27288
+ }
27289
+ async function Ob(e) {
27290
+ if (e === wb) {
27291
+ if (Eb.status === "failed") throw Eb.error;
27292
+ for (; Sb.length > 0;) {
27293
+ let t = Sb[0];
27296
27294
  try {
27297
27295
  await nl().sendDocumentTransaction({ changes: t });
27298
27296
  } catch (t) {
27299
- if (e !== Tb) return;
27300
- throw Db = {
27297
+ if (e !== wb) return;
27298
+ throw Eb = {
27301
27299
  status: "failed",
27302
27300
  error: t
27303
- }, Cb = Cb.slice(1), t;
27301
+ }, Sb = Sb.slice(1), t;
27304
27302
  }
27305
- if (e !== Tb) return;
27306
- Cb.shift();
27303
+ if (e !== wb) return;
27304
+ Sb.shift();
27307
27305
  }
27308
27306
  }
27309
27307
  }
27310
- function Ab() {
27311
- let e = Tb, t = Eb?.promise ?? Promise.resolve(), n = Promise.all([wb.catch(() => void 0), t]).then(() => kb(e));
27312
- return wb = n, n;
27308
+ function kb() {
27309
+ let e = wb, t = Tb?.promise ?? Promise.resolve(), n = Promise.all([Cb.catch(() => void 0), t]).then(() => Ob(e));
27310
+ return Cb = n, n;
27313
27311
  }
27314
- var jb = je(() => {
27315
- Ob(), Ab().catch(() => void 0);
27312
+ var Ab = je(() => {
27313
+ Db(), kb().catch(() => void 0);
27316
27314
  }, 400);
27317
- async function Mb() {
27318
- if (Db.status === "failed") throw Db.error;
27319
- jb.cancel(), Ob();
27320
- let e = Ab();
27315
+ async function jb() {
27316
+ if (Eb.status === "failed") throw Eb.error;
27317
+ Ab.cancel(), Db();
27318
+ let e = kb();
27321
27319
  for (;;) {
27322
- if (await e, jb.cancel(), Ob(), Sb.length === 0 && Cb.length === 0 && wb === e) return;
27323
- e = wb === e ? Ab() : wb;
27320
+ if (await e, Ab.cancel(), Db(), xb.length === 0 && Sb.length === 0 && Cb === e) return;
27321
+ e = Cb === e ? kb() : Cb;
27324
27322
  }
27325
27323
  }
27326
- function Nb(e) {
27324
+ function Mb(e) {
27327
27325
  return "cellId" in e && e.cellId === "__scratch__";
27328
27326
  }
27329
- function Pb(e) {
27330
- j.get(fe) || Nb(e) || (Sb.push(e), Db.status === "synchronized" && jb());
27327
+ function Nb(e) {
27328
+ j.get(fe) || Mb(e) || (xb.push(e), Eb.status === "synchronized" && Ab());
27331
27329
  }
27332
- function Fb(e, t, n) {
27333
- for (let r of vb(e, t, n)) Pb(r);
27330
+ function Pb(e, t, n) {
27331
+ for (let r of _b(e, t, n)) Nb(r);
27334
27332
  }
27335
27333
  //#endregion
27336
27334
  //#region ../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/fromUnixTime.js
27337
- function Ib(e, t) {
27335
+ function Fb(e, t) {
27338
27336
  return ge(e * 1e3, t?.in);
27339
27337
  }
27340
27338
  //#endregion
27341
27339
  //#region ../node_modules/.pnpm/ansi_up@6.0.6/node_modules/ansi_up/ansi_up.js
27342
- var Lb = function(e, t) {
27340
+ var Ib = function(e, t) {
27343
27341
  return Object.defineProperty ? Object.defineProperty(e, "raw", { value: t }) : e.raw = t, e;
27344
- }, Rb;
27342
+ }, Lb;
27345
27343
  (function(e) {
27346
27344
  e[e.EOS = 0] = "EOS", e[e.Text = 1] = "Text", e[e.Incomplete = 2] = "Incomplete", e[e.ESC = 3] = "ESC", e[e.Unknown = 4] = "Unknown", e[e.SGR = 5] = "SGR", e[e.OSCURL = 6] = "OSCURL";
27347
- })(Rb ||= {});
27348
- var zb = class {
27345
+ })(Lb ||= {});
27346
+ var Rb = class {
27349
27347
  constructor() {
27350
27348
  this.VERSION = "6.0.6", this.setup_palettes(), this._use_classes = !1, this.bold = !1, this.faint = !1, this.italic = !1, this.underline = !1, this.fg = this.bg = null, this._buffer = "", this._url_allowlist = {
27351
27349
  http: 1,
@@ -27577,57 +27575,57 @@ var zb = class {
27577
27575
  }
27578
27576
  get_next_packet() {
27579
27577
  var e = {
27580
- kind: Rb.EOS,
27578
+ kind: Lb.EOS,
27581
27579
  text: "",
27582
27580
  url: ""
27583
27581
  }, t = this._buffer.length;
27584
27582
  if (t == 0) return e;
27585
27583
  var n = this._buffer.indexOf("\x1B");
27586
- if (n == -1) return e.kind = Rb.Text, e.text = this._buffer, this._buffer = "", e;
27587
- if (n > 0) return e.kind = Rb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
27584
+ if (n == -1) return e.kind = Lb.Text, e.text = this._buffer, this._buffer = "", e;
27585
+ if (n > 0) return e.kind = Lb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
27588
27586
  if (n == 0) {
27589
- if (t < 3) return e.kind = Rb.Incomplete, e;
27587
+ if (t < 3) return e.kind = Lb.Incomplete, e;
27590
27588
  var r = this._buffer.charAt(1);
27591
- if (r != "[" && r != "]" && r != "(") return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27589
+ if (r != "[" && r != "]" && r != "(") return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27592
27590
  if (r == "[") {
27593
- this._csi_regex ||= Bb(Hb ||= Lb(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1B[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1B[ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "], ["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]));
27591
+ this._csi_regex ||= zb(Vb ||= Ib(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1B[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1B[ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "], ["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]));
27594
27592
  let t = this._buffer.match(this._csi_regex);
27595
- if (t === null) return e.kind = Rb.Incomplete, e;
27596
- if (t[4]) return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27597
- e.kind = t[1] != "" || t[3] != "m" ? Rb.Unknown : Rb.SGR, e.text = t[2];
27593
+ if (t === null) return e.kind = Lb.Incomplete, e;
27594
+ if (t[4]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27595
+ e.kind = t[1] != "" || t[3] != "m" ? Lb.Unknown : Lb.SGR, e.text = t[2];
27598
27596
  var i = t[0].length;
27599
27597
  return this._buffer = this._buffer.slice(i), e;
27600
27598
  }
27601
27599
  if (r == "]") {
27602
- if (t < 4) return e.kind = Rb.Incomplete, e;
27603
- if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27604
- this._osc_st ||= Vb(Ub ||= Lb(["\n (?: # legal sequence\n (\x1B\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "], ["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "])), this._osc_st.lastIndex = 0;
27600
+ if (t < 4) return e.kind = Lb.Incomplete, e;
27601
+ if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27602
+ this._osc_st ||= Bb(Hb ||= Ib(["\n (?: # legal sequence\n (\x1B\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "], ["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "])), this._osc_st.lastIndex = 0;
27605
27603
  {
27606
27604
  let t = this._osc_st.exec(this._buffer);
27607
- if (t === null) return e.kind = Rb.Incomplete, e;
27608
- if (t[3]) return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27605
+ if (t === null) return e.kind = Lb.Incomplete, e;
27606
+ if (t[3]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27609
27607
  }
27610
27608
  {
27611
27609
  let t = this._osc_st.exec(this._buffer);
27612
- if (t === null) return e.kind = Rb.Incomplete, e;
27613
- if (t[3]) return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27610
+ if (t === null) return e.kind = Lb.Incomplete, e;
27611
+ if (t[3]) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27614
27612
  }
27615
- this._osc_regex ||= Bb(Wb ||= Lb(["\n ^ # beginning of line\n #\n \x1B]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1B]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "], ["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]));
27613
+ this._osc_regex ||= zb(Ub ||= Ib(["\n ^ # beginning of line\n #\n \x1B]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1B]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "], ["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]));
27616
27614
  let n = this._buffer.match(this._osc_regex);
27617
- if (n === null) return e.kind = Rb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27618
- e.kind = Rb.OSCURL, e.url = n[1], e.text = n[2];
27615
+ if (n === null) return e.kind = Lb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27616
+ e.kind = Lb.OSCURL, e.url = n[1], e.text = n[2];
27619
27617
  var i = n[0].length;
27620
27618
  return this._buffer = this._buffer.slice(i), e;
27621
27619
  }
27622
- if (r == "(") return e.kind = Rb.Unknown, this._buffer = this._buffer.slice(3), e;
27620
+ if (r == "(") return e.kind = Lb.Unknown, this._buffer = this._buffer.slice(3), e;
27623
27621
  }
27624
27622
  }
27625
27623
  ansi_to_html(e) {
27626
27624
  this.append_buffer(e);
27627
27625
  for (var t = [];;) {
27628
27626
  var n = this.get_next_packet();
27629
- if (n.kind == Rb.EOS || n.kind == Rb.Incomplete) break;
27630
- n.kind != Rb.ESC && n.kind != Rb.Unknown && (n.kind == Rb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Rb.SGR ? this.process_ansi(n) : n.kind == Rb.OSCURL && t.push(this.process_hyperlink(n)));
27627
+ if (n.kind == Lb.EOS || n.kind == Lb.Incomplete) break;
27628
+ n.kind != Lb.ESC && n.kind != Lb.Unknown && (n.kind == Lb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Lb.SGR ? this.process_ansi(n) : n.kind == Lb.OSCURL && t.push(this.process_hyperlink(n)));
27631
27629
  }
27632
27630
  return t.join("");
27633
27631
  }
@@ -27697,16 +27695,16 @@ var zb = class {
27697
27695
  return t.length < 1 || !this._url_allowlist[t[0]] ? "" : `<a href="${this.escape_txt_for_html(e.url)}">${this.escape_txt_for_html(e.text)}</a>`;
27698
27696
  }
27699
27697
  };
27700
- function Bb(e, ...t) {
27698
+ function zb(e, ...t) {
27701
27699
  let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
27702
27700
  return new RegExp(n);
27703
27701
  }
27704
- function Vb(e, ...t) {
27702
+ function Bb(e, ...t) {
27705
27703
  let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
27706
27704
  return new RegExp(n, "g");
27707
27705
  }
27708
- var Hb, Ub, Wb, Gb = new zb();
27709
- function Kb(e) {
27706
+ var Vb, Hb, Ub, Wb = new Rb();
27707
+ function Gb(e) {
27710
27708
  try {
27711
27709
  let t = document.createElement("div");
27712
27710
  return t.innerHTML = e, (t.textContent || t.innerText || "").split("\n").map((e) => e.trimEnd()).join("\n");
@@ -27714,24 +27712,24 @@ function Kb(e) {
27714
27712
  return a.error("Error parsing HTML content:", t), e;
27715
27713
  }
27716
27714
  }
27717
- function qb(e) {
27715
+ function Kb(e) {
27718
27716
  if (!e) return "";
27719
27717
  try {
27720
- return Kb(Gb.ansi_to_html(e));
27718
+ return Gb(Wb.ansi_to_html(e));
27721
27719
  } catch (t) {
27722
27720
  return a.error("Error converting ANSI to plain text:", t), e;
27723
27721
  }
27724
27722
  }
27725
27723
  //#endregion
27726
27724
  //#region src/core/errors/traceback-atom.ts
27727
- var Jb = A(null);
27725
+ var qb = A(null);
27728
27726
  //#endregion
27729
27727
  //#region src/core/cells/logs.ts
27730
- function Yb(e) {
27728
+ function Jb(e) {
27731
27729
  return e.type === "cell" ? e.cellId : `lsp:${e.name}`;
27732
27730
  }
27733
- var Xb = !1;
27734
- function Zb(e) {
27731
+ var Yb = !1;
27732
+ function Xb(e) {
27735
27733
  let t = [], n = [e.console].filter(Boolean).flat();
27736
27734
  for (let r of n) {
27737
27735
  let n = r.mimetype === "text/plain", i = r.mimetype === "text/html" || r.mimetype === "application/vnd.marimo+traceback";
@@ -27741,7 +27739,7 @@ function Zb(e) {
27741
27739
  case "stdout":
27742
27740
  case "stderr":
27743
27741
  case "marimo-error": {
27744
- let a = ne.asString(r.data), o = i ? Kb(a) : a;
27742
+ let a = ne.asString(r.data), o = i ? Gb(a) : a;
27745
27743
  t.push({
27746
27744
  timestamp: r.timestamp || Date.now(),
27747
27745
  level: n ? "stderr" : "stdout",
@@ -27756,9 +27754,9 @@ function Zb(e) {
27756
27754
  }
27757
27755
  }
27758
27756
  }
27759
- if (t.forEach(Qb.log), n.length === 0 && Vc(e.output?.mimetype) && Array.isArray(e.output.data)) {
27757
+ if (t.forEach(Zb.log), n.length === 0 && Vc(e.output?.mimetype) && Array.isArray(e.output.data)) {
27760
27758
  e.output.data.forEach((t) => {
27761
- Qb.log({
27759
+ Zb.log({
27762
27760
  level: "stderr",
27763
27761
  source: {
27764
27762
  type: "cell",
@@ -27769,8 +27767,8 @@ function Zb(e) {
27769
27767
  });
27770
27768
  });
27771
27769
  let t = e.output.data.filter((e) => "type" in e && e.type === "exception" || e.type === "internal"), n = j.get(E) === "read";
27772
- if (t.length > 0 && !Xb && n) {
27773
- Xb = !0;
27770
+ if (t.length > 0 && !Yb && n) {
27771
+ Yb = !0;
27774
27772
  let e = t.find((e) => e.traceback);
27775
27773
  f(e ? {
27776
27774
  title: "An internal error occurred",
@@ -27779,7 +27777,7 @@ function Zb(e) {
27779
27777
  action: F.createElement(Ae, {
27780
27778
  altText: "View traceback",
27781
27779
  onClick: () => {
27782
- j.set(Jb, {
27780
+ j.set(qb, {
27783
27781
  traceback: e.traceback,
27784
27782
  errorMessage: e.msg || "An internal error occurred"
27785
27783
  });
@@ -27794,13 +27792,13 @@ function Zb(e) {
27794
27792
  }
27795
27793
  return t;
27796
27794
  }
27797
- var Qb = { log: (e) => {
27795
+ var Zb = { log: (e) => {
27798
27796
  let t = e.level === "stdout" ? "gray" : e.level === "stderr" ? "red" : "orange", n = e.level.toUpperCase();
27799
- console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${$b(e.timestamp)}]`, `(${Yb(e.source)}) ${e.message}`);
27797
+ console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${Qb(e.timestamp)}]`, `(${Jb(e.source)}) ${e.message}`);
27800
27798
  } };
27801
- function $b(e) {
27799
+ function Qb(e) {
27802
27800
  try {
27803
- return Ib(e).toLocaleTimeString(void 0, {
27801
+ return Fb(e).toLocaleTimeString(void 0, {
27804
27802
  hour12: !0,
27805
27803
  hour: "numeric",
27806
27804
  minute: "numeric",
@@ -27812,10 +27810,10 @@ function $b(e) {
27812
27810
  }
27813
27811
  //#endregion
27814
27812
  //#region src/components/editor/navigation/focus-utils.ts
27815
- function ex() {
27813
+ function $b() {
27816
27814
  return document.activeElement instanceof HTMLElement && document.activeElement.classList.contains("marimo-cell");
27817
27815
  }
27818
- function tx(e) {
27816
+ function ex(e) {
27819
27817
  try {
27820
27818
  e.focus();
27821
27819
  } catch {
@@ -27824,7 +27822,7 @@ function tx(e) {
27824
27822
  }
27825
27823
  //#endregion
27826
27824
  //#region src/utils/timeout.ts
27827
- function nx(e, t) {
27825
+ function tx(e, t) {
27828
27826
  let { retries: n, delay: r, initialDelay: i = 0 } = t, o = 0, s = () => {
27829
27827
  if (o < n) {
27830
27828
  try {
@@ -27839,18 +27837,18 @@ function nx(e, t) {
27839
27837
  }
27840
27838
  //#endregion
27841
27839
  //#region src/core/cells/scrollCellIntoView.ts
27842
- function rx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
27840
+ function nx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
27843
27841
  if (!t) return;
27844
27842
  let o = document.getElementById(Jr.create(e));
27845
27843
  if (!o) {
27846
27844
  a.warn("scrollCellIntoView: element not found");
27847
27845
  return;
27848
27846
  }
27849
- if (ex()) {
27850
- tx(o);
27847
+ if ($b()) {
27848
+ ex(o);
27851
27849
  return;
27852
27850
  }
27853
- if (n) tx(o);
27851
+ if (n) ex(o);
27854
27852
  else {
27855
27853
  Ei.promote(e);
27856
27854
  let n = t.current?.editorView;
@@ -27859,7 +27857,7 @@ function rx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
27859
27857
  return;
27860
27858
  }
27861
27859
  if (n.hasFocus || !document.hasFocus()) return;
27862
- if (nx(() => (n.focus(), n.hasFocus), {
27860
+ if (tx(() => (n.focus(), n.hasFocus), {
27863
27861
  retries: 5,
27864
27862
  delay: 20
27865
27863
  }), r === "top") n.dispatch({ selection: {
@@ -27879,14 +27877,14 @@ function rx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
27879
27877
  block: "nearest"
27880
27878
  });
27881
27879
  }
27882
- function ix() {
27880
+ function rx() {
27883
27881
  let e = document.getElementById("App");
27884
27882
  e?.scrollTo({
27885
27883
  top: e.scrollHeight,
27886
27884
  behavior: "smooth"
27887
27885
  });
27888
27886
  }
27889
- function ax() {
27887
+ function ix() {
27890
27888
  document.getElementById("App")?.scrollTo({
27891
27889
  top: 0,
27892
27890
  behavior: "smooth"
@@ -27894,7 +27892,7 @@ function ax() {
27894
27892
  }
27895
27893
  //#endregion
27896
27894
  //#region src/core/cells/types.ts
27897
- function ox({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
27895
+ function ax({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
27898
27896
  return {
27899
27897
  id: e,
27900
27898
  config: o || {
@@ -27911,7 +27909,7 @@ function ox({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExe
27911
27909
  serializedEditorState: s
27912
27910
  };
27913
27911
  }
27914
- function sx(e) {
27912
+ function ox(e) {
27915
27913
  return {
27916
27914
  hide_code: !1,
27917
27915
  disabled: !1,
@@ -27920,7 +27918,7 @@ function sx(e) {
27920
27918
  ...e
27921
27919
  };
27922
27920
  }
27923
- function cx(e) {
27921
+ function sx(e) {
27924
27922
  return {
27925
27923
  outline: null,
27926
27924
  output: null,
@@ -27939,7 +27937,7 @@ function cx(e) {
27939
27937
  }
27940
27938
  //#endregion
27941
27939
  //#region src/core/cells/cells.ts
27942
- function lx(e) {
27940
+ function cx(e) {
27943
27941
  let t = {
27944
27942
  column: 0,
27945
27943
  hide_code: !1,
@@ -27949,14 +27947,14 @@ function lx(e) {
27949
27947
  return {
27950
27948
  ...e,
27951
27949
  cellData: {
27952
- [Gr]: ox({
27950
+ [Gr]: ax({
27953
27951
  id: Gr,
27954
27952
  config: t
27955
27953
  }),
27956
27954
  ...e.cellData
27957
27955
  },
27958
27956
  cellRuntime: {
27959
- [Gr]: cx(),
27957
+ [Gr]: sx(),
27960
27958
  ...e.cellRuntime
27961
27959
  },
27962
27960
  cellHandles: {
@@ -27965,8 +27963,8 @@ function lx(e) {
27965
27963
  }
27966
27964
  };
27967
27965
  }
27968
- function ux() {
27969
- return lx({
27966
+ function lx() {
27967
+ return cx({
27970
27968
  cellIds: yi.from([]),
27971
27969
  cellData: {},
27972
27970
  cellRuntime: {},
@@ -27977,7 +27975,7 @@ function ux() {
27977
27975
  untouchedNewCells: /* @__PURE__ */ new Set()
27978
27976
  });
27979
27977
  }
27980
- var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAtom: $ } = y(ux, {
27978
+ var { reducer: ux, addMiddleware: dx, createActions: fx, useActions: px, valueAtom: $ } = y(lx, {
27981
27979
  createNewCell: (e, t) => {
27982
27980
  let { cellId: n, before: r, code: i, name: a, config: o, lastCodeRun: s = null, lastExecutionTime: c = null, autoFocus: l = !0, skipIfCodeExists: u = !1, hideCode: d = void 0 } = t, f, p;
27983
27981
  if (u) {
@@ -27999,12 +27997,12 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
27999
27997
  cellIds: e.cellIds.insertId(m, f, h),
28000
27998
  cellData: {
28001
27999
  ...e.cellData,
28002
- [m]: ox({
28000
+ [m]: ax({
28003
28001
  id: m,
28004
28002
  code: i,
28005
28003
  name: a,
28006
28004
  lastCodeRun: s,
28007
- config: sx({
28005
+ config: ox({
28008
28006
  ...o,
28009
28007
  ...d != null && { hide_code: d }
28010
28008
  }),
@@ -28014,7 +28012,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28014
28012
  },
28015
28013
  cellRuntime: {
28016
28014
  ...e.cellRuntime,
28017
- [m]: cx()
28015
+ [m]: sx()
28018
28016
  },
28019
28017
  cellHandles: {
28020
28018
  ...e.cellHandles,
@@ -28116,10 +28114,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28116
28114
  let { cellId: r, where: i } = t, a = n.indexOfOrThrow(r), o;
28117
28115
  o = i === "before" ? Nt(a - 1, 0, n.length - 1) : i === "after" ? Nt(a + 1, 0, n.length - 1) : a;
28118
28116
  let s = n.atOrThrow(o);
28119
- return rx({
28117
+ return nx({
28120
28118
  cellId: s,
28121
28119
  cell: e.cellHandles[s],
28122
- isCodeHidden: hx(e, s),
28120
+ isCodeHidden: mx(e, s),
28123
28121
  codeFocus: i === "after" ? "top" : "bottom",
28124
28122
  variableName: void 0
28125
28123
  }), e;
@@ -28128,25 +28126,25 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28128
28126
  let t = e.cellIds.getColumns().at(0);
28129
28127
  if (t === void 0 || t.length === 0) return e;
28130
28128
  let n = t.first();
28131
- return rx({
28129
+ return nx({
28132
28130
  cellId: n,
28133
28131
  cell: e.cellHandles[n],
28134
- isCodeHidden: hx(e, n),
28132
+ isCodeHidden: mx(e, n),
28135
28133
  codeFocus: void 0,
28136
28134
  variableName: void 0
28137
- }), ax(), e;
28135
+ }), ix(), e;
28138
28136
  },
28139
28137
  focusBottomCell: (e) => {
28140
28138
  let t = e.cellIds.getColumns().at(-1);
28141
28139
  if (t === void 0 || t.length === 0) return e;
28142
28140
  let n = t.last();
28143
- return rx({
28141
+ return nx({
28144
28142
  cellId: n,
28145
28143
  cell: e.cellHandles[n],
28146
- isCodeHidden: hx(e, n),
28144
+ isCodeHidden: mx(e, n),
28147
28145
  codeFocus: void 0,
28148
28146
  variableName: void 0
28149
- }), ix(), e;
28147
+ }), rx(), e;
28150
28148
  },
28151
28149
  sendToTop: (e, t) => {
28152
28150
  let n = e.cellIds.findWithId(t.cellId);
@@ -28175,11 +28173,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28175
28173
  cellIds: e.cellIds.addColumn(t.columnId, [n]),
28176
28174
  cellData: {
28177
28175
  ...e.cellData,
28178
- [n]: ox({ id: n })
28176
+ [n]: ax({ id: n })
28179
28177
  },
28180
28178
  cellRuntime: {
28181
28179
  ...e.cellRuntime,
28182
- [n]: cx()
28180
+ [n]: sx()
28183
28181
  },
28184
28182
  cellHandles: {
28185
28183
  ...e.cellHandles,
@@ -28263,7 +28261,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28263
28261
  scrollKey: n[0] ?? null
28264
28262
  };
28265
28263
  }
28266
- let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Kr : qr.create(), l = ox({
28264
+ let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Kr : qr.create(), l = ax({
28267
28265
  id: c,
28268
28266
  name: n,
28269
28267
  code: r.doc,
@@ -28280,7 +28278,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28280
28278
  },
28281
28279
  cellRuntime: {
28282
28280
  ...e.cellRuntime,
28283
- [c]: cx()
28281
+ [c]: sx()
28284
28282
  },
28285
28283
  cellHandles: {
28286
28284
  ...e.cellHandles,
@@ -28292,7 +28290,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28292
28290
  },
28293
28291
  clearSerializedEditorState: (e, t) => {
28294
28292
  let { cellId: n } = t;
28295
- return _x({
28293
+ return gx({
28296
28294
  state: e,
28297
28295
  cellId: n,
28298
28296
  cellReducer: (e) => ({
@@ -28303,7 +28301,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28303
28301
  },
28304
28302
  updateCellCode: (e, t) => {
28305
28303
  let { cellId: n, code: r, formattingChange: i } = t;
28306
- return e.cellData[n] ? _x({
28304
+ return e.cellData[n] ? gx({
28307
28305
  state: e,
28308
28306
  cellId: n,
28309
28307
  cellReducer: (e) => i ? {
@@ -28319,7 +28317,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28319
28317
  },
28320
28318
  updateCellName: (e, t) => {
28321
28319
  let { cellId: n, name: r } = t;
28322
- return _x({
28320
+ return gx({
28323
28321
  state: e,
28324
28322
  cellId: n,
28325
28323
  cellReducer: (e) => ({
@@ -28330,23 +28328,23 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28330
28328
  },
28331
28329
  updateCellConfig: (e, t) => {
28332
28330
  let { cellId: n, config: r } = t;
28333
- return _x({
28331
+ return gx({
28334
28332
  state: e,
28335
28333
  cellId: n,
28336
28334
  cellReducer: (e) => ({
28337
28335
  ...e,
28338
- config: sx({
28336
+ config: ox({
28339
28337
  ...e.config,
28340
28338
  ...r
28341
28339
  })
28342
28340
  })
28343
28341
  });
28344
28342
  },
28345
- prepareForRun: (e, t) => _x({
28346
- state: gx({
28343
+ prepareForRun: (e, t) => gx({
28344
+ state: hx({
28347
28345
  state: e,
28348
28346
  cellId: t.cellId,
28349
- cellReducer: (e) => lb(e)
28347
+ cellReducer: (e) => cb(e)
28350
28348
  }),
28351
28349
  cellId: t.cellId,
28352
28350
  cellReducer: (e) => ({
@@ -28356,12 +28354,12 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28356
28354
  })
28357
28355
  }),
28358
28356
  handleCellMessage: (e, t) => {
28359
- let n = t.cell_id, r = gx({
28357
+ let n = t.cell_id, r = hx({
28360
28358
  state: e,
28361
28359
  cellId: n,
28362
- cellReducer: (e) => cb(e, t)
28360
+ cellReducer: (e) => sb(e, t)
28363
28361
  });
28364
- return t.status === "queued" && (r = _x({
28362
+ return t.status === "queued" && (r = gx({
28365
28363
  state: r,
28366
28364
  cellId: n,
28367
28365
  cellReducer: (e) => ({
@@ -28371,7 +28369,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28371
28369
  })
28372
28370
  })), {
28373
28371
  ...r,
28374
- cellLogs: [...r.cellLogs, ...Zb(t)]
28372
+ cellLogs: [...r.cellLogs, ...Xb(t)]
28375
28373
  };
28376
28374
  },
28377
28375
  addLogs: (e, t) => ({
@@ -28381,7 +28379,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28381
28379
  setCellIds: (e, t) => {
28382
28380
  if (Le(e.cellIds.inOrderIds, t.cellIds)) return e;
28383
28381
  let n = { ...e.cellData }, r = { ...e.cellRuntime }, i = { ...e.cellHandles };
28384
- for (let a of t.cellIds) a in e.cellData || (n[a] = ox({ id: a })), a in e.cellRuntime || (r[a] = cx()), a in e.cellHandles || (i[a] = (0, F.createRef)());
28382
+ for (let a of t.cellIds) a in e.cellData || (n[a] = ax({ id: a })), a in e.cellRuntime || (r[a] = sx()), a in e.cellHandles || (i[a] = (0, F.createRef)());
28385
28383
  return {
28386
28384
  ...e,
28387
28385
  cellIds: yi.fromWithPreviousShape(t.cellIds, e.cellIds),
@@ -28400,7 +28398,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28400
28398
  setCellCodes: (e, t) => {
28401
28399
  N(t.codes.length === t.ids.length, "Expected codes and ids to have the same length");
28402
28400
  let n = { ...e }, r = ({ cell: e, code: r, cellId: i, name: a, config: o }) => {
28403
- if (!e) return ox({
28401
+ if (!e) return ax({
28404
28402
  id: i,
28405
28403
  code: r,
28406
28404
  name: a,
@@ -28417,9 +28415,9 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28417
28415
  ...a !== void 0 && { name: a },
28418
28416
  ...o !== void 0 && { config: o }
28419
28417
  };
28420
- if (!Xy() || !Zy(i)) {
28418
+ if (!Yy() || !Xy(i)) {
28421
28419
  let e = n.cellHandles[i].current;
28422
- e?.editorViewOrNull && zy(e.editorViewOrNull, r);
28420
+ e?.editorViewOrNull && Ry(e.editorViewOrNull, r);
28423
28421
  }
28424
28422
  return {
28425
28423
  ...e,
@@ -28452,7 +28450,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28452
28450
  },
28453
28451
  setStdinResponse: (e, t) => {
28454
28452
  let { cellId: n, response: r, outputIndex: i } = t;
28455
- return gx({
28453
+ return hx({
28456
28454
  state: e,
28457
28455
  cellId: n,
28458
28456
  cellReducer: (e) => {
@@ -28473,11 +28471,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28473
28471
  },
28474
28472
  setCells: (e, t) => {
28475
28473
  let n = Object.fromEntries(t.map((e) => [e.id, e])), r = _e(), i = (t) => {
28476
- if (!r) return cx();
28474
+ if (!r) return sx();
28477
28475
  let n = e.cellRuntime[t];
28478
- return n && (n.output != null || n.consoleOutputs.length > 0) ? n : cx();
28476
+ return n && (n.output != null || n.consoleOutputs.length > 0) ? n : sx();
28479
28477
  }, a = Object.fromEntries(t.map((e) => [e.id, i(e.id)]));
28480
- return lx({
28478
+ return cx({
28481
28479
  ...e,
28482
28480
  cellIds: yi.fromIdsAndColumns(t.map((e) => [e.id, e.config.column])),
28483
28481
  cellData: n,
@@ -28496,11 +28494,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28496
28494
  cellIds: e.cellIds.insertId(t, a.id, s),
28497
28495
  cellData: {
28498
28496
  ...e.cellData,
28499
- [t]: ox({ id: t })
28497
+ [t]: ax({ id: t })
28500
28498
  },
28501
28499
  cellRuntime: {
28502
28500
  ...e.cellRuntime,
28503
- [t]: cx()
28501
+ [t]: sx()
28504
28502
  },
28505
28503
  cellHandles: {
28506
28504
  ...e.cellHandles,
@@ -28516,11 +28514,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28516
28514
  cellIds: e.cellIds.insertId(t, a.id, 0),
28517
28515
  cellData: {
28518
28516
  ...e.cellData,
28519
- [t]: ox({ id: t })
28517
+ [t]: ax({ id: t })
28520
28518
  },
28521
28519
  cellRuntime: {
28522
28520
  ...e.cellRuntime,
28523
- [t]: cx()
28521
+ [t]: sx()
28524
28522
  },
28525
28523
  cellHandles: {
28526
28524
  ...e.cellHandles,
@@ -28532,10 +28530,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28532
28530
  if ((c || l) && i) return e;
28533
28531
  if (s >= 0 && s < a.length) {
28534
28532
  let t = a.atOrThrow(s);
28535
- rx({
28533
+ nx({
28536
28534
  cellId: t,
28537
28535
  cell: e.cellHandles[t],
28538
- isCodeHidden: hx(e, t),
28536
+ isCodeHidden: mx(e, t),
28539
28537
  codeFocus: r ? "bottom" : "top",
28540
28538
  variableName: void 0
28541
28539
  });
@@ -28568,10 +28566,10 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28568
28566
  let t = e.scrollKey;
28569
28567
  if (t === null) return e;
28570
28568
  let n = e.cellIds.findWithId(t), r = n.indexOfOrThrow(t), i = r === n.length - 1 ? n.last() : n.atOrThrow(r);
28571
- return rx({
28569
+ return nx({
28572
28570
  cellId: i,
28573
28571
  cell: e.cellHandles[i],
28574
- isCodeHidden: hx(e, i),
28572
+ isCodeHidden: mx(e, i),
28575
28573
  codeFocus: void 0,
28576
28574
  variableName: void 0
28577
28575
  }), {
@@ -28586,7 +28584,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28586
28584
  cellLogs: []
28587
28585
  }),
28588
28586
  collapseCell: (e, t) => {
28589
- let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = Yy(r.indexOfOrThrow(n), i);
28587
+ let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = Jy(r.indexOfOrThrow(n), i);
28590
28588
  if (!a) return e;
28591
28589
  let o = r.atOrThrow(a[1]);
28592
28590
  return {
@@ -28608,7 +28606,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28608
28606
  cellIds: e.cellIds.transformAll((t) => {
28609
28607
  let n = t.topLevelIds.map((t) => e.cellRuntime[t].outline), r = [...t.nodes], i = /* @__PURE__ */ new Map(), a = [], o = r.length - 1;
28610
28608
  for (; o >= 0;) {
28611
- let e = Yy(o, n);
28609
+ let e = Jy(o, n);
28612
28610
  if (e) {
28613
28611
  let n = o, r = e[1], s = i.get(r) ?? r;
28614
28612
  i.set(r, n);
@@ -28638,8 +28636,8 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28638
28636
  splitCell: (e, t) => {
28639
28637
  let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.indexOfOrThrow(n), a = e.cellData[n], o = e.cellHandles[n].current;
28640
28638
  if (o?.editorView == null) return e;
28641
- let { beforeCursorCode: s, afterCursorCode: c } = By(o.editorView);
28642
- zy(o.editorView, s);
28639
+ let { beforeCursorCode: s, afterCursorCode: c } = zy(o.editorView);
28640
+ Ry(o.editorView, s);
28643
28641
  let l = qr.create();
28644
28642
  return {
28645
28643
  ...e,
@@ -28651,7 +28649,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28651
28649
  code: s,
28652
28650
  edited: !!s && s.trim() !== a.lastCodeRun?.trim()
28653
28651
  },
28654
- [l]: ox({
28652
+ [l]: ax({
28655
28653
  id: l,
28656
28654
  code: c,
28657
28655
  edited: !!c
@@ -28664,7 +28662,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28664
28662
  output: null,
28665
28663
  consoleOutputs: []
28666
28664
  },
28667
- [l]: cx()
28665
+ [l]: sx()
28668
28666
  },
28669
28667
  cellHandles: {
28670
28668
  ...e.cellHandles,
@@ -28675,7 +28673,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28675
28673
  },
28676
28674
  undoSplitCell: (e, t) => {
28677
28675
  let { cellId: n, snapshot: r } = t, i = e.cellData[n], a = e.cellHandles[n].current;
28678
- return a?.editorView == null ? e : (zy(a.editorView, r), {
28676
+ return a?.editorView == null ? e : (Ry(a.editorView, r), {
28679
28677
  ...e,
28680
28678
  cellIds: e.cellIds.transformWithCellId(n, (e) => {
28681
28679
  let t = e.indexOfOrThrow(n) + 1;
@@ -28702,7 +28700,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28702
28700
  },
28703
28701
  clearCellOutput: (e, t) => {
28704
28702
  let { cellId: n } = t;
28705
- return gx({
28703
+ return hx({
28706
28704
  state: e,
28707
28705
  cellId: n,
28708
28706
  cellReducer: (e) => ({
@@ -28714,7 +28712,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28714
28712
  },
28715
28713
  clearCellConsoleOutput: (e, t) => {
28716
28714
  let { cellId: n } = t;
28717
- return gx({
28715
+ return hx({
28718
28716
  state: e,
28719
28717
  cellId: n,
28720
28718
  cellReducer: (e) => ({
@@ -28745,7 +28743,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28745
28743
  cellIds: e.cellIds.insertId(Kr, e.cellIds.atOrThrow(0).id, 0),
28746
28744
  cellData: {
28747
28745
  ...e.cellData,
28748
- [Kr]: ox({
28746
+ [Kr]: ax({
28749
28747
  id: Kr,
28750
28748
  name: Kr,
28751
28749
  code: n,
@@ -28754,7 +28752,7 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28754
28752
  },
28755
28753
  cellRuntime: {
28756
28754
  ...e.cellRuntime,
28757
- [Kr]: cx()
28755
+ [Kr]: sx()
28758
28756
  },
28759
28757
  cellHandles: {
28760
28758
  ...e.cellHandles,
@@ -28764,11 +28762,11 @@ var { reducer: dx, addMiddleware: fx, createActions: px, useActions: mx, valueAt
28764
28762
  };
28765
28763
  }
28766
28764
  });
28767
- fx(Fb);
28768
- function hx(e, t) {
28765
+ dx(Pb);
28766
+ function mx(e, t) {
28769
28767
  return !!e.cellData[t].config.hide_code && !e.untouchedNewCells.has(t);
28770
28768
  }
28771
- function gx({ state: e, cellId: t, cellReducer: n }) {
28769
+ function hx({ state: e, cellId: t, cellReducer: n }) {
28772
28770
  return t in e.cellRuntime ? {
28773
28771
  ...e,
28774
28772
  cellRuntime: {
@@ -28777,7 +28775,7 @@ function gx({ state: e, cellId: t, cellReducer: n }) {
28777
28775
  }
28778
28776
  } : (a.warn(`Cell ${t} not found in state`), e);
28779
28777
  }
28780
- function _x({ state: e, cellId: t, cellReducer: n }) {
28778
+ function gx({ state: e, cellId: t, cellReducer: n }) {
28781
28779
  return t in e.cellData ? {
28782
28780
  ...e,
28783
28781
  cellData: {
@@ -28786,11 +28784,11 @@ function _x({ state: e, cellId: t, cellReducer: n }) {
28786
28784
  }
28787
28785
  } : (a.warn(`Cell ${t} not found in state`), e);
28788
28786
  }
28789
- var vx = px((e) => {
28790
- j.set($, (t) => dx(t, e));
28791
- }).addLogs, yx = A((e) => e($).cellIds), bx = A((e) => e(yx).hasOnlyOneId());
28787
+ var _x = fx((e) => {
28788
+ j.set($, (t) => ux(t, e));
28789
+ }).addLogs, vx = A((e) => e($).cellIds), yx = A((e) => e(vx).hasOnlyOneId());
28792
28790
  A((e) => Kc(e($)).length > 0), A((e) => qc(e($)).length > 0), A((e) => Jc(e($))), A((e) => Yc(e($))), A((e) => Wc(e($)));
28793
- var xx = A((e) => {
28791
+ var bx = A((e) => {
28794
28792
  let { cellIds: t, cellRuntime: n, cellData: r } = e($);
28795
28793
  return t.inOrderIds.map((e) => {
28796
28794
  let t = n[e], { name: i } = r[e];
@@ -28808,21 +28806,23 @@ var xx = A((e) => {
28808
28806
  }
28809
28807
  return null;
28810
28808
  }).filter(Boolean);
28811
- }), Sx = A((e) => {
28812
- let { cellIds: t, cellRuntime: n } = e($);
28813
- return qy(t.inOrderIds.map((e) => n[e].outline));
28809
+ }), xx = A((e) => {
28810
+ let t = e(vx), n = e(Ox);
28811
+ return Ky(t.inOrderIds.map((e) => n[e].outline));
28814
28812
  });
28815
- A((e) => e(xx).length);
28816
- var Cx = Ie(A((e) => {
28813
+ A((e) => e(bx).length);
28814
+ var Sx = Ie(A((e) => {
28817
28815
  let { cellIds: t, cellData: n } = e($);
28818
28816
  return Pt.fromEntries(t.inOrderIds.map((e) => [e, n[e]?.name]));
28819
28817
  }));
28820
28818
  A((e) => e($).scrollKey);
28821
- var wx = () => Me(yx), Tx = () => Me(Cx), Ex = () => j.get($), Dx = () => j.get($).cellIds, Ox = () => {
28819
+ var Cx = () => Me(vx), wx = () => Me(Sx), Tx = () => j.get($), Ex = () => j.get($).cellIds, Dx = () => {
28822
28820
  let { cellIds: e, cellData: t } = j.get($);
28823
28821
  return e.inOrderIds.map((e) => t[e]?.name).filter(Boolean);
28824
28822
  };
28825
- br(pr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t]))), A((e) => e($).cellRuntime), A((e) => Hc(e($))), A((e) => {
28823
+ br(pr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t])));
28824
+ var Ox = A((e) => e($).cellRuntime);
28825
+ A((e) => Hc(e($))), A((e) => {
28826
28826
  let { cellRuntime: t } = e($);
28827
28827
  return Object.entries(t).every(([e, t]) => t.status !== "running" || e === "__scratch__");
28828
28828
  }), A((e) => Uc(e($)));
@@ -28838,7 +28838,7 @@ var Px = (e) => {
28838
28838
  }, Fx = (e) => (Ei.promote(e), Px(e));
28839
28839
  function Ix(e) {
28840
28840
  let t = (0, Tr.c)(2), n;
28841
- return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), mx(n);
28841
+ return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), px(n);
28842
28842
  }
28843
28843
  //#endregion
28844
28844
  //#region src/core/errors/error-entries.ts
@@ -28871,7 +28871,7 @@ function Vx(e) {
28871
28871
  if (!o || !Vc(o.mimetype)) continue;
28872
28872
  let s = Lx(o);
28873
28873
  if (!s) continue;
28874
- let c = gv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
28874
+ let c = hv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
28875
28875
  i.push({
28876
28876
  cellId: a,
28877
28877
  cellName: c,
@@ -28887,11 +28887,11 @@ function Hx(e) {
28887
28887
  }
28888
28888
  function Ux(e) {
28889
28889
  let t = Hx(e);
28890
- return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${Kb(e.traceback)}`), t;
28890
+ return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${Gb(e.traceback)}`), t;
28891
28891
  }
28892
28892
  function Wx(e) {
28893
28893
  let t = [e.cellName];
28894
- return e.tracebackHtml && t.push(Kb(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(Ux).join("\n\n")), t.join("\n\n");
28894
+ return e.tracebackHtml && t.push(Gb(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(Ux).join("\n\n")), t.join("\n\n");
28895
28895
  }
28896
28896
  //#endregion
28897
- export { Vf as $, Er as $t, Vy as A, Zc as At, mv as B, $r as Bt, qb as C, Al as Ct, ub as D, nl as Dt, Mb as E, hl as Et, xv as F, hi as Ft, wm as G, Gr as Gt, dv as H, ti as Ht, Sv as I, ui as It, Pp as J, Br as Jt, Dm as K, Xr as Kt, gv as L, ci as Lt, Gv as M, Qc as Mt, Rv as N, $c as Nt, db as O, el as Ot, Lv as P, Mc as Pt, Hf as Q, Nr as Qt, hv as R, li as Rt, ox as S, Pl as St, zb as T, _l as Tt, W_ as U, Zr as Ut, fv as V, ei as Vt, Hm as W, Jr as Wt, yp as X, Fr as Xt, Np as Y, Vr as Yt, np as Z, Ir as Zt, kx as _, pn as _n, Wl as _t, Ax as a, Pn as an, Hd as at, wx as b, Hl as bt, Fx as c, kn as cn, Ed as ct, Dx as d, Cn as dn, gd as dt, cr as en, bf as et, Ex as f, Sn as fn, dd as ft, Sx as g, hn as gn, Jl as gt, $ as h, gn as hn, ql as ht, Vx as i, Ln as in, Jd as it, Uv as j, Gc as jt, Ky as k, tl as kt, Px as l, En as ln, Cd as lt, ux as m, yn as mn, hu as mt, Wx as n, pr as nn, Qd as nt, yx as o, Nn as on, zd as ot, bx as p, xn as pn, cd as pt, Cm as q, Yr as qt, Ux as r, Bn as rn, Xd as rt, px as s, jn as sn, Td as st, Hx as t, wr as tn, sf as tt, Ox as u, wn as un, vd as ut, dx as v, Kl as vt, Kb as w, Fl as wt, Tx as x, Bl as xt, Ix as y, Gl as yt, _v as z, ri as zt };
28897
+ export { bf as $, cr as $t, By as A, Gc as At, pv as B, ei as Bt, Kb as C, Fl as Ct, lb as D, el as Dt, jb as E, nl as Et, bv as F, ui as Ft, wm as G, Xr as Gt, uv as H, Zr as Ht, xv as I, ci as It, Np as J, Vr as Jt, Cm as K, Yr as Kt, hv as L, li as Lt, Wv as M, $c as Mt, Lv as N, Mc as Nt, ub as O, tl as Ot, Iv as P, hi as Pt, Vf as Q, Er as Qt, mv as R, ri as Rt, ax as S, Al as St, Rb as T, hl as Tt, U_ as U, Jr as Ut, dv as V, ti as Vt, Vm as W, Gr as Wt, np as X, Ir as Xt, yp as Y, Fr as Yt, Hf as Z, Nr as Zt, kx as _, Kl as _t, Ax as a, Nn as an, zd as at, Cx as b, Bl as bt, Fx as c, En as cn, Cd as ct, Ex as d, Sn as dn, dd as dt, wr as en, sf as et, Tx as f, xn as fn, cd as ft, xx as g, pn as gn, Wl as gt, $ as h, hn, Jl as ht, Vx as i, Pn as in, Hd as it, Hv as j, Qc as jt, Gy as k, Zc as kt, Px as l, wn as ln, vd as lt, lx as m, gn as mn, ql as mt, Wx as n, Bn as nn, Xd as nt, vx as o, jn as on, Td as ot, yx as p, yn as pn, hu as pt, Pp as q, Br as qt, Ux as r, Ln as rn, Jd as rt, fx as s, kn as sn, Ed as st, Hx as t, pr as tn, Qd as tt, Dx as u, Cn as un, gd as ut, ux as v, Gl as vt, Gb as w, _l as wt, wx as x, Pl as xt, Ix as y, Hl as yt, gv as z, $r as zt };