Flowfile 0.3.3.1__py3-none-any.whl → 0.3.4__py3-none-any.whl

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.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (77) hide show
  1. flowfile/__init__.py +2 -2
  2. flowfile/__main__.py +0 -2
  3. flowfile/api.py +94 -46
  4. flowfile/web/__init__.py +4 -1
  5. flowfile/web/static/assets/{AirbyteReader-2b1cf2d8.js → AirbyteReader-e08044e5.js} +8 -8
  6. flowfile/web/static/assets/{CrossJoin-cc3ab73c.js → CrossJoin-dfcf7351.js} +8 -8
  7. flowfile/web/static/assets/{DatabaseConnectionSettings-307c4652.js → DatabaseConnectionSettings-b2afb1d7.js} +2 -2
  8. flowfile/web/static/assets/{DatabaseManager-69faa6e1.js → DatabaseManager-824a49b2.js} +2 -2
  9. flowfile/web/static/assets/{DatabaseReader-e4134cd0.js → DatabaseReader-a48124d8.js} +9 -9
  10. flowfile/web/static/assets/{DatabaseWriter-d32d75b1.js → DatabaseWriter-b47cbae2.js} +9 -9
  11. flowfile/web/static/assets/{ExploreData-5eb48389.js → ExploreData-fdfc45a4.js} +5 -5
  12. flowfile/web/static/assets/{ExternalSource-29489051.js → ExternalSource-861b0e71.js} +6 -6
  13. flowfile/web/static/assets/{Filter-031332bb.js → Filter-f87bb897.js} +8 -9
  14. flowfile/web/static/assets/{Formula-3b900540.js → Formula-1e2ed720.js} +9 -10
  15. flowfile/web/static/assets/{FuzzyMatch-dee31153.js → FuzzyMatch-b6cc4fdd.js} +9 -9
  16. flowfile/web/static/assets/{GraphSolver-ca74eb47.js → GraphSolver-6a371f4c.js} +5 -5
  17. flowfile/web/static/assets/{GroupBy-081b6591.js → GroupBy-f7b7f472.js} +6 -6
  18. flowfile/web/static/assets/{Join-b467376f.js → Join-eec38203.js} +9 -9
  19. flowfile/web/static/assets/{ManualInput-ffffb80a.js → ManualInput-9aaa46fb.js} +5 -5
  20. flowfile/web/static/assets/{Output-9a87d4ba.js → Output-3b2ca045.js} +4 -4
  21. flowfile/web/static/assets/{Pivot-ee3e6093.js → Pivot-a4f5d88f.js} +6 -6
  22. flowfile/web/static/assets/PolarsCode-49ce444f.js +306 -0
  23. flowfile/web/static/assets/{Read-67fee3a0.js → Read-07acdc9a.js} +6 -6
  24. flowfile/web/static/assets/{RecordCount-a2acd02d.js → RecordCount-6a21da56.js} +5 -5
  25. flowfile/web/static/assets/{RecordId-0c8bcd77.js → RecordId-949bdc17.js} +6 -6
  26. flowfile/web/static/assets/{Sample-60594a3a.js → Sample-7afca6e1.js} +5 -5
  27. flowfile/web/static/assets/{SecretManager-bbcec2ac.js → SecretManager-b41c029d.js} +2 -2
  28. flowfile/web/static/assets/{Select-9540e6ca.js → Select-32b28406.js} +8 -8
  29. flowfile/web/static/assets/{SettingsSection-48f28104.js → SettingsSection-a0f15a05.js} +1 -1
  30. flowfile/web/static/assets/{Sort-6dbe3633.js → Sort-fc6ba0e2.js} +6 -6
  31. flowfile/web/static/assets/{TextToRows-27aab4a8.js → TextToRows-23127596.js} +8 -8
  32. flowfile/web/static/assets/{UnavailableFields-8143044b.js → UnavailableFields-c42880a3.js} +2 -2
  33. flowfile/web/static/assets/{Union-52460248.js → Union-39eecc6c.js} +5 -5
  34. flowfile/web/static/assets/{Unique-f6962644.js → Unique-a0e8fe61.js} +8 -8
  35. flowfile/web/static/assets/{Unpivot-1ff1e938.js → Unpivot-1e2d43f0.js} +5 -5
  36. flowfile/web/static/assets/{api-3b345d92.js → api-44ca9e9c.js} +1 -1
  37. flowfile/web/static/assets/{designer-2394122a.css → designer-186f2e71.css} +64 -9
  38. flowfile/web/static/assets/{designer-4736134f.js → designer-267d44f1.js} +2835 -105
  39. flowfile/web/static/assets/{documentation-b9545eba.js → documentation-6c0810a2.js} +1 -1
  40. flowfile/web/static/assets/{dropDown-d5a4014c.js → dropDown-52790b15.js} +1 -1
  41. flowfile/web/static/assets/{dropDownGeneric-1f4e32ec.js → dropDownGeneric-60f56a8a.js} +2 -2
  42. flowfile/web/static/assets/{fullEditor-f4791c23.js → fullEditor-e272b506.js} +2 -3
  43. flowfile/web/static/assets/{genericNodeSettings-1d456350.js → genericNodeSettings-4bdcf98e.js} +3 -3
  44. flowfile/web/static/assets/{index-f25c9283.js → index-e235a8bc.js} +12 -12
  45. flowfile/web/static/assets/{nodeTitle-cad6fd9d.js → nodeTitle-fc3fc4b7.js} +3 -3
  46. flowfile/web/static/assets/{secretApi-01f07e2c.js → secretApi-cdc2a3fd.js} +1 -1
  47. flowfile/web/static/assets/{selectDynamic-f46a4e3f.js → selectDynamic-96aa82cd.js} +3 -3
  48. flowfile/web/static/assets/{vue-codemirror.esm-eb98fc8b.js → vue-codemirror.esm-25e75a08.js} +610 -29
  49. flowfile/web/static/assets/{vue-content-loader.es-860c0380.js → vue-content-loader.es-6c4b1c24.js} +1 -1
  50. flowfile/web/static/index.html +1 -1
  51. {flowfile-0.3.3.1.dist-info → flowfile-0.3.4.dist-info}/METADATA +16 -3
  52. {flowfile-0.3.3.1.dist-info → flowfile-0.3.4.dist-info}/RECORD +74 -74
  53. flowfile_core/flowfile/code_generator/__init__.py +0 -0
  54. flowfile_core/flowfile/code_generator/code_generator.py +723 -0
  55. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +1 -1
  56. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +1 -1
  57. flowfile_core/flowfile/{FlowfileFlow.py → flow_graph.py} +3 -3
  58. flowfile_core/flowfile/flow_graph_utils.py +1 -1
  59. flowfile_core/flowfile/handler.py +1 -1
  60. flowfile_core/flowfile/manage/open_flowfile.py +1 -1
  61. flowfile_core/flowfile/util/calculate_layout.py +1 -1
  62. flowfile_core/routes/routes.py +11 -1
  63. flowfile_core/schemas/input_schema.py +2 -1
  64. flowfile_frame/adapters.py +1 -1
  65. flowfile_frame/expr.py +19 -0
  66. flowfile_frame/flow_frame.py +1 -4
  67. flowfile_frame/flow_frame.pyi +1 -1
  68. flowfile_frame/flow_frame_methods.py +1 -1
  69. flowfile_frame/lazy.py +1 -1
  70. flowfile_frame/utils.py +1 -1
  71. flowfile/readme.md +0 -127
  72. flowfile/web/static/assets/PolarsCode-03921254.js +0 -2865
  73. flowfile/web/static/assets/PopOver-3bdf8951.js +0 -577
  74. /flowfile/web/static/assets/{PopOver-bccfde04.css → vue-codemirror-bccfde04.css} +0 -0
  75. {flowfile-0.3.3.1.dist-info → flowfile-0.3.4.dist-info}/LICENSE +0 -0
  76. {flowfile-0.3.3.1.dist-info → flowfile-0.3.4.dist-info}/WHEEL +0 -0
  77. {flowfile-0.3.3.1.dist-info → flowfile-0.3.4.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,5 @@
1
- import { a as axios, d as defineComponent, r as ref, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, u as unref, h as createBlock, i as createCommentVNode, E as ElNotification, _ as _export_sfc, j as defineStore, k as getDefaultExportFromCjs, l as computed$1, m as watch$1, n as onMounted, p as createBaseVNode, t as toDisplayString, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, x as withKeys, y as _imports_1, z as ElMessage, A as ElMessageBox, B as inject, C as effectScope, D as provide, G as getCurrentInstance, H as getCurrentScope, I as onScopeDispose, J as createPropsRestProxy, K as toRef, L as renderSlot, M as reactive, N as useSlots, O as isRef, P as toRefs$1, Q as customRef, R as nextTick, S as onBeforeMount, T as normalizeStyle, U as onBeforeUnmount, V as isMemoSame, W as toValue$1, X as shallowRef, Y as h, Z as markRaw$1, $ as readonly, a0 as useAttrs, a1 as mergeProps, a2 as resolveDynamicComponent, a3 as watchEffect, a4 as normalizeProps, a5 as withDirectives, a6 as vModelText, a7 as Teleport, a8 as guardReactiveProps, a9 as __vitePreload, aa as render, ab as vShow, ac as authService, ad as flowfileCorebaseURL } from "./index-f25c9283.js";
2
- import { u as useNodeStore, P as PopOver } from "./PopOver-3bdf8951.js";
1
+ import { a as axios, d as defineComponent, r as ref, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, w as withCtx, g as createTextVNode, u as unref, h as createBlock, i as createCommentVNode, E as ElNotification, _ as _export_sfc, j as defineStore, k as getDefaultExportFromCjs, l as computed$1, m as watch$1, n as onMounted, p as createBaseVNode, t as toDisplayString, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, x as withKeys, y as _imports_1, z as ElMessage, A as ElMessageBox, B as inject, C as effectScope, D as provide, G as getCurrentInstance, H as getCurrentScope, I as onScopeDispose, J as createPropsRestProxy, K as toRef, L as renderSlot, M as reactive, N as useSlots, O as isRef, P as toRefs$1, Q as customRef, R as nextTick, S as onBeforeMount, T as normalizeStyle, U as onBeforeUnmount, V as isMemoSame, W as toValue$1, X as shallowRef, Y as h, Z as markRaw$1, $ as readonly, a0 as useAttrs, a1 as mergeProps, a2 as resolveDynamicComponent, a3 as watchEffect, a4 as normalizeProps, a5 as withDirectives, a6 as vModelText, a7 as Teleport, a8 as guardReactiveProps, a9 as __vitePreload, aa as render, ab as vShow, ac as authService, ad as flowfileCorebaseURL } from "./index-e235a8bc.js";
2
+ import { u as useNodeStore, P as PopOver, a as Parser, N as NodeSet, b as NodeType, D as DefaultBufferLength, c as NodeProp, T as Tree, I as IterMode, s as styleTags, t as tags, L as LanguageSupport, d as syntaxTree, i as ifNotIn, e as LRLanguage, f as indentNodeProp, g as delimitedIndent, h as foldNodeProp, j as foldInside, k as completeFromList, l as NodeWeakMap, m as snippetCompletion, H as HighlightStyle, n as syntaxHighlighting, E as EditorView, o as T } from "./vue-codemirror.esm-25e75a08.js";
3
3
  const saveFlow = async (flowId, flowPath) => {
4
4
  try {
5
5
  await axios.get("/save_flow", {
@@ -72,7 +72,7 @@ const updateRunStatus = async (flowId, nodeStore, showRunResults = true) => {
72
72
  }
73
73
  return response;
74
74
  };
75
- const _hoisted_1$g = { class: "button-group" };
75
+ const _hoisted_1$h = { class: "button-group" };
76
76
  const _sfc_main$k = /* @__PURE__ */ defineComponent({
77
77
  __name: "run",
78
78
  props: {
@@ -203,7 +203,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
203
203
  });
204
204
  return (_ctx, _cache) => {
205
205
  const _component_el_button = resolveComponent("el-button");
206
- return openBlock(), createElementBlock("div", _hoisted_1$g, [
206
+ return openBlock(), createElementBlock("div", _hoisted_1$h, [
207
207
  createVNode(_component_el_button, {
208
208
  size: "small",
209
209
  disabled: unref(nodeStore).isRunning,
@@ -730,12 +730,12 @@ var posix = {
730
730
  posix.posix = posix;
731
731
  var pathBrowserify = posix;
732
732
  const path = /* @__PURE__ */ getDefaultExportFromCjs(pathBrowserify);
733
- const _hoisted_1$f = { class: "file-browser" };
734
- const _hoisted_2$c = { class: "browser-content" };
735
- const _hoisted_3$b = { class: "browser-toolbar" };
736
- const _hoisted_4$8 = { class: "path-navigation" };
737
- const _hoisted_5$6 = ["disabled"];
738
- const _hoisted_6$4 = { class: "current-path" };
733
+ const _hoisted_1$g = { class: "file-browser" };
734
+ const _hoisted_2$d = { class: "browser-content" };
735
+ const _hoisted_3$c = { class: "browser-toolbar" };
736
+ const _hoisted_4$9 = { class: "path-navigation" };
737
+ const _hoisted_5$7 = ["disabled"];
738
+ const _hoisted_6$5 = { class: "current-path" };
739
739
  const _hoisted_7$3 = { class: "controls-row" };
740
740
  const _hoisted_8$1 = { class: "search-container" };
741
741
  const _hoisted_9 = { class: "sort-controls" };
@@ -1050,16 +1050,16 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1050
1050
  const _component_el_form_item = resolveComponent("el-form-item");
1051
1051
  const _component_el_form = resolveComponent("el-form");
1052
1052
  const _component_el_dialog = resolveComponent("el-dialog");
1053
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
1053
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
1054
1054
  _cache[17] || (_cache[17] = createBaseVNode("div", { class: "browser-header" }, [
1055
1055
  createBaseVNode("div", { class: "browser-title" }, [
1056
1056
  createBaseVNode("span", { class: "material-icons" }, "folder"),
1057
1057
  createBaseVNode("span", null, "File Browser")
1058
1058
  ])
1059
1059
  ], -1)),
1060
- createBaseVNode("div", _hoisted_2$c, [
1061
- createBaseVNode("div", _hoisted_3$b, [
1062
- createBaseVNode("div", _hoisted_4$8, [
1060
+ createBaseVNode("div", _hoisted_2$d, [
1061
+ createBaseVNode("div", _hoisted_3$c, [
1062
+ createBaseVNode("div", _hoisted_4$9, [
1063
1063
  createBaseVNode("button", {
1064
1064
  class: "nav-button",
1065
1065
  disabled: loading.value,
@@ -1067,8 +1067,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1067
1067
  }, _cache[7] || (_cache[7] = [
1068
1068
  createBaseVNode("span", { class: "material-icons" }, "arrow_upward", -1),
1069
1069
  createBaseVNode("span", null, "Up", -1)
1070
- ]), 8, _hoisted_5$6),
1071
- createBaseVNode("div", _hoisted_6$4, toDisplayString(currentPath.value), 1)
1070
+ ]), 8, _hoisted_5$7),
1071
+ createBaseVNode("div", _hoisted_6$5, toDisplayString(currentPath.value), 1)
1072
1072
  ]),
1073
1073
  createBaseVNode("div", _hoisted_7$3, [
1074
1074
  createBaseVNode("div", _hoisted_8$1, [
@@ -1317,11 +1317,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1317
1317
  });
1318
1318
  const fileBrowser_vue_vue_type_style_index_0_scoped_d5bb1173_lang = "";
1319
1319
  const FileBrowser = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-d5bb1173"]]);
1320
- const _hoisted_1$e = { class: "action-buttons" };
1321
- const _hoisted_2$b = { key: 0 };
1322
- const _hoisted_3$a = { class: "settings-modal-content" };
1323
- const _hoisted_4$7 = { class: "form-group" };
1324
- const _hoisted_5$5 = { class: "form-group" };
1320
+ const _hoisted_1$f = { class: "action-buttons" };
1321
+ const _hoisted_2$c = { key: 0 };
1322
+ const _hoisted_3$b = { class: "settings-modal-content" };
1323
+ const _hoisted_4$8 = { class: "form-group" };
1324
+ const _hoisted_5$6 = { class: "form-group" };
1325
1325
  const _sfc_main$i = /* @__PURE__ */ defineComponent({
1326
1326
  __name: "HeaderButtons",
1327
1327
  emits: ["openFlow", "refreshFlow", "logs-start", "logs-stop"],
@@ -1391,6 +1391,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1391
1391
  (_a = runButton.value) == null ? void 0 : _a.runFlow();
1392
1392
  }
1393
1393
  };
1394
+ const toggleCodeGenerator = () => {
1395
+ nodeStore.toggleCodeGenerator();
1396
+ };
1394
1397
  const handleCreateAction = async (flowPath, _1, _2) => {
1395
1398
  const pathWithoutExtension = flowPath.replace(/\.[^/.]+$/, "");
1396
1399
  const normalizedPath = `${pathWithoutExtension}.flowfile`;
@@ -1429,7 +1432,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1429
1432
  const _component_el_select = resolveComponent("el-select");
1430
1433
  const _component_el_checkbox = resolveComponent("el-checkbox");
1431
1434
  return openBlock(), createElementBlock(Fragment, null, [
1432
- createBaseVNode("div", _hoisted_1$e, [
1435
+ createBaseVNode("div", _hoisted_1$f, [
1433
1436
  createBaseVNode("button", {
1434
1437
  class: "action-btn",
1435
1438
  onClick: openSaveModal
@@ -1462,7 +1465,15 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1462
1465
  ref_key: "runButton",
1463
1466
  ref: runButton,
1464
1467
  "flow-id": unref(nodeStore).flow_id
1465
- }, null, 8, ["flow-id"])
1468
+ }, null, 8, ["flow-id"]),
1469
+ createBaseVNode("button", {
1470
+ class: normalizeClass(["action-btn", { active: unref(nodeStore).showCodeGenerator }]),
1471
+ title: "Generate Python Code (Ctrl+G)",
1472
+ onClick: toggleCodeGenerator
1473
+ }, _cache[12] || (_cache[12] = [
1474
+ createBaseVNode("span", { class: "material-icons btn-icon" }, "code", -1),
1475
+ createBaseVNode("span", { class: "btn-text" }, "Generate code", -1)
1476
+ ]), 2)
1466
1477
  ]),
1467
1478
  createVNode(_component_el_dialog, {
1468
1479
  modelValue: modalVisibleForOpen.value,
@@ -1521,10 +1532,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1521
1532
  width: "30%"
1522
1533
  }, {
1523
1534
  default: withCtx(() => [
1524
- flowSettings.value ? (openBlock(), createElementBlock("div", _hoisted_2$b, [
1525
- createBaseVNode("div", _hoisted_3$a, [
1526
- createBaseVNode("div", _hoisted_4$7, [
1527
- _cache[12] || (_cache[12] = createBaseVNode("label", null, "Execution Mode:", -1)),
1535
+ flowSettings.value ? (openBlock(), createElementBlock("div", _hoisted_2$c, [
1536
+ createBaseVNode("div", _hoisted_3$b, [
1537
+ createBaseVNode("div", _hoisted_4$8, [
1538
+ _cache[13] || (_cache[13] = createBaseVNode("label", null, "Execution Mode:", -1)),
1528
1539
  createVNode(_component_el_select, {
1529
1540
  modelValue: flowSettings.value.execution_mode,
1530
1541
  "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => flowSettings.value.execution_mode = $event),
@@ -1545,7 +1556,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1545
1556
  _: 1
1546
1557
  }, 8, ["modelValue"])
1547
1558
  ]),
1548
- createBaseVNode("div", _hoisted_5$5, [
1559
+ createBaseVNode("div", _hoisted_5$6, [
1549
1560
  createVNode(_component_el_checkbox, {
1550
1561
  modelValue: flowSettings.value.show_detailed_progress,
1551
1562
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => flowSettings.value.show_detailed_progress = $event),
@@ -1563,8 +1574,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1563
1574
  };
1564
1575
  }
1565
1576
  });
1566
- const HeaderButtons_vue_vue_type_style_index_0_scoped_a5a42d67_lang = "";
1567
- const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-a5a42d67"]]);
1577
+ const HeaderButtons_vue_vue_type_style_index_0_scoped_7b6ecb3e_lang = "";
1578
+ const HeaderButtons = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-7b6ecb3e"]]);
1568
1579
  /*! Element Plus Icons Vue v2.3.1 */
1569
1580
  var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1570
1581
  name: "ArrowDown",
@@ -1662,9 +1673,9 @@ var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
1662
1673
  }
1663
1674
  });
1664
1675
  var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
1665
- const _hoisted_1$d = { class: "status-wrapper" };
1666
- const _hoisted_2$a = { class: "flow-card" };
1667
- const _hoisted_3$9 = ["title"];
1676
+ const _hoisted_1$e = { class: "status-wrapper" };
1677
+ const _hoisted_2$b = { class: "flow-card" };
1678
+ const _hoisted_3$a = ["title"];
1668
1679
  const _sfc_main$h = /* @__PURE__ */ defineComponent({
1669
1680
  __name: "status",
1670
1681
  setup(__props) {
@@ -1707,14 +1718,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1707
1718
  };
1708
1719
  return (_ctx, _cache) => {
1709
1720
  const _component_el_icon = resolveComponent("el-icon");
1710
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
1721
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
1711
1722
  createVNode(PopOver, {
1712
1723
  content: tooltipContent.value,
1713
1724
  title: isRunning.value ? "Processing Flow" : "Flow Idle",
1714
1725
  placement: "left"
1715
1726
  }, {
1716
1727
  default: withCtx(() => [
1717
- createBaseVNode("div", _hoisted_2$a, [
1728
+ createBaseVNode("div", _hoisted_2$b, [
1718
1729
  (openBlock(), createElementBlock("svg", {
1719
1730
  viewBox: "0 0 100 100",
1720
1731
  class: normalizeClass(["flow-animation", { "is-flowing": isRunning.value }])
@@ -1803,7 +1814,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1803
1814
  ]),
1804
1815
  _: 1
1805
1816
  })) : createCommentVNode("", true)
1806
- ], 10, _hoisted_3$9)
1817
+ ], 10, _hoisted_3$a)
1807
1818
  ]),
1808
1819
  _: 1
1809
1820
  })
@@ -2231,17 +2242,17 @@ function parseTypenames$1$1(typenames, types) {
2231
2242
  Dispatch$1.prototype = dispatch$1.prototype = {
2232
2243
  constructor: Dispatch$1,
2233
2244
  on: function(typename, callback) {
2234
- var _2 = this._, T2 = parseTypenames$1$1(typename + "", _2), t2, i2 = -1, n = T2.length;
2245
+ var _2 = this._, T3 = parseTypenames$1$1(typename + "", _2), t2, i2 = -1, n = T3.length;
2235
2246
  if (arguments.length < 2) {
2236
2247
  while (++i2 < n)
2237
- if ((t2 = (typename = T2[i2]).type) && (t2 = get$1$1(_2[t2], typename.name)))
2248
+ if ((t2 = (typename = T3[i2]).type) && (t2 = get$1$1(_2[t2], typename.name)))
2238
2249
  return t2;
2239
2250
  return;
2240
2251
  }
2241
2252
  if (callback != null && typeof callback !== "function")
2242
2253
  throw new Error("invalid callback: " + callback);
2243
2254
  while (++i2 < n) {
2244
- if (t2 = (typename = T2[i2]).type)
2255
+ if (t2 = (typename = T3[i2]).type)
2245
2256
  _2[t2] = set$1$1(_2[t2], typename.name, callback);
2246
2257
  else if (callback == null)
2247
2258
  for (t2 in _2)
@@ -2983,13 +2994,13 @@ function Selection$1$1(groups, parents) {
2983
2994
  this._groups = groups;
2984
2995
  this._parents = parents;
2985
2996
  }
2986
- function selection$1() {
2997
+ function selection$2() {
2987
2998
  return new Selection$1$1([[document.documentElement]], root$1);
2988
2999
  }
2989
3000
  function selection_selection$1() {
2990
3001
  return this;
2991
3002
  }
2992
- Selection$1$1.prototype = selection$1.prototype = {
3003
+ Selection$1$1.prototype = selection$2.prototype = {
2993
3004
  constructor: Selection$1$1,
2994
3005
  select: selection_select$1,
2995
3006
  selectAll: selection_selectAll$1,
@@ -4404,7 +4415,7 @@ function transition_selectAll$1(select2) {
4404
4415
  }
4405
4416
  return new Transition$1(subgroups, parents, name, id2);
4406
4417
  }
4407
- var Selection$2 = selection$1.prototype.constructor;
4418
+ var Selection$2 = selection$2.prototype.constructor;
4408
4419
  function transition_selection$1() {
4409
4420
  return new Selection$2(this._groups, this._parents);
4410
4421
  }
@@ -4553,7 +4564,7 @@ function transition_end$1() {
4553
4564
  resolve2();
4554
4565
  });
4555
4566
  }
4556
- var id$2 = 0;
4567
+ var id$3 = 0;
4557
4568
  function Transition$1(groups, parents, name, id2) {
4558
4569
  this._groups = groups;
4559
4570
  this._parents = parents;
@@ -4561,9 +4572,9 @@ function Transition$1(groups, parents, name, id2) {
4561
4572
  this._id = id2;
4562
4573
  }
4563
4574
  function newId$1() {
4564
- return ++id$2;
4575
+ return ++id$3;
4565
4576
  }
4566
- var selection_prototype$1 = selection$1.prototype;
4577
+ var selection_prototype$1 = selection$2.prototype;
4567
4578
  Transition$1.prototype = {
4568
4579
  constructor: Transition$1,
4569
4580
  select: transition_select$1,
@@ -4631,8 +4642,8 @@ function selection_transition$1(name) {
4631
4642
  }
4632
4643
  return new Transition$1(groups, this._parents, name, id2);
4633
4644
  }
4634
- selection$1.prototype.interrupt = selection_interrupt$1;
4635
- selection$1.prototype.transition = selection_transition$1;
4645
+ selection$2.prototype.interrupt = selection_interrupt$1;
4646
+ selection$2.prototype.transition = selection_transition$1;
4636
4647
  const constant$4 = (x2) => () => x2;
4637
4648
  function ZoomEvent$1(type, {
4638
4649
  sourceEvent: sourceEvent2,
@@ -8697,7 +8708,7 @@ const __default__$d = {
8697
8708
  inheritAttrs: false,
8698
8709
  compatConfig: { MODE: 3 }
8699
8710
  };
8700
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
8711
+ const _sfc_main$d$1 = /* @__PURE__ */ defineComponent({
8701
8712
  ...__default__$d,
8702
8713
  props: {
8703
8714
  id: {},
@@ -9113,7 +9124,7 @@ const StraightEdge = defineComponent({
9113
9124
  setup(props2, { attrs }) {
9114
9125
  return () => {
9115
9126
  const [path2, labelX, labelY] = getStraightPath(props2);
9116
- return h(_sfc_main$d, {
9127
+ return h(_sfc_main$d$1, {
9117
9128
  path: path2,
9118
9129
  labelX,
9119
9130
  labelY,
@@ -9153,7 +9164,7 @@ const SmoothStepEdge = defineComponent({
9153
9164
  sourcePosition: props2.sourcePosition ?? Position.Bottom,
9154
9165
  targetPosition: props2.targetPosition ?? Position.Top
9155
9166
  });
9156
- return h(_sfc_main$d, {
9167
+ return h(_sfc_main$d$1, {
9157
9168
  path: path2,
9158
9169
  labelX,
9159
9170
  labelY,
@@ -9216,7 +9227,7 @@ const BezierEdge = defineComponent({
9216
9227
  sourcePosition: props2.sourcePosition ?? Position.Bottom,
9217
9228
  targetPosition: props2.targetPosition ?? Position.Top
9218
9229
  });
9219
- return h(_sfc_main$d, {
9230
+ return h(_sfc_main$d$1, {
9220
9231
  path: path2,
9221
9232
  labelX,
9222
9233
  labelY,
@@ -9254,7 +9265,7 @@ const SimpleBezierEdge = defineComponent({
9254
9265
  sourcePosition: props2.sourcePosition ?? Position.Bottom,
9255
9266
  targetPosition: props2.targetPosition ?? Position.Top
9256
9267
  });
9257
- return h(_sfc_main$d, {
9268
+ return h(_sfc_main$d$1, {
9258
9269
  path: path2,
9259
9270
  labelX,
9260
9271
  labelY,
@@ -10191,8 +10202,8 @@ const _sfc_main$8$1 = /* @__PURE__ */ defineComponent({
10191
10202
  }
10192
10203
  });
10193
10204
  const _hoisted_1$5$1 = ["id"];
10194
- const _hoisted_2$9 = ["id"];
10195
- const _hoisted_3$8 = ["id"];
10205
+ const _hoisted_2$a = ["id"];
10206
+ const _hoisted_3$9 = ["id"];
10196
10207
  const __default__$7 = {
10197
10208
  name: "A11yDescriptions",
10198
10209
  compatConfig: { MODE: 3 }
@@ -10210,14 +10221,14 @@ const _sfc_main$7$1 = /* @__PURE__ */ defineComponent({
10210
10221
  createBaseVNode("div", {
10211
10222
  id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,
10212
10223
  style: { "display": "none" }
10213
- }, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$9),
10224
+ }, " Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ", 8, _hoisted_2$a),
10214
10225
  !unref(disableKeyboardA11y) ? (openBlock(), createElementBlock("div", {
10215
10226
  key: 0,
10216
10227
  id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,
10217
10228
  "aria-live": "assertive",
10218
10229
  "aria-atomic": "true",
10219
10230
  style: { "position": "absolute", "width": "1px", "height": "1px", "margin": "-1px", "border": "0", "padding": "0", "overflow": "hidden", "clip": "rect(0px, 0px, 0px, 0px)", "clip-path": "inset(100%)" }
10220
- }, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$8)) : createCommentVNode("", true)
10231
+ }, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3$9)) : createCommentVNode("", true)
10221
10232
  ], 64);
10222
10233
  };
10223
10234
  }
@@ -11264,7 +11275,7 @@ function useStylesLoadedWarning() {
11264
11275
  }
11265
11276
  });
11266
11277
  }
11267
- const _hoisted_1$c = /* @__PURE__ */ createBaseVNode("div", { class: "vue-flow__edge-labels" }, null, -1);
11278
+ const _hoisted_1$d = /* @__PURE__ */ createBaseVNode("div", { class: "vue-flow__edge-labels" }, null, -1);
11268
11279
  const __default__$1$1 = {
11269
11280
  name: "VueFlow",
11270
11281
  compatConfig: { MODE: 3 }
@@ -11357,7 +11368,7 @@ const _sfc_main$1$2 = /* @__PURE__ */ defineComponent({
11357
11368
  createVNode(_sfc_main$8$1, null, {
11358
11369
  default: withCtx(() => [
11359
11370
  createVNode(_sfc_main$4$1),
11360
- _hoisted_1$c,
11371
+ _hoisted_1$d,
11361
11372
  createVNode(_sfc_main$2$1),
11362
11373
  renderSlot(_ctx.$slots, "zoom-pane")
11363
11374
  ]),
@@ -11418,17 +11429,17 @@ function parseTypenames$1(typenames, types) {
11418
11429
  Dispatch.prototype = dispatch.prototype = {
11419
11430
  constructor: Dispatch,
11420
11431
  on: function(typename, callback) {
11421
- var _2 = this._, T2 = parseTypenames$1(typename + "", _2), t2, i2 = -1, n = T2.length;
11432
+ var _2 = this._, T3 = parseTypenames$1(typename + "", _2), t2, i2 = -1, n = T3.length;
11422
11433
  if (arguments.length < 2) {
11423
11434
  while (++i2 < n)
11424
- if ((t2 = (typename = T2[i2]).type) && (t2 = get$1(_2[t2], typename.name)))
11435
+ if ((t2 = (typename = T3[i2]).type) && (t2 = get$1(_2[t2], typename.name)))
11425
11436
  return t2;
11426
11437
  return;
11427
11438
  }
11428
11439
  if (callback != null && typeof callback !== "function")
11429
11440
  throw new Error("invalid callback: " + callback);
11430
11441
  while (++i2 < n) {
11431
- if (t2 = (typename = T2[i2]).type)
11442
+ if (t2 = (typename = T3[i2]).type)
11432
11443
  _2[t2] = set$1(_2[t2], typename.name, callback);
11433
11444
  else if (callback == null)
11434
11445
  for (t2 in _2)
@@ -12170,13 +12181,13 @@ function Selection$1(groups, parents) {
12170
12181
  this._groups = groups;
12171
12182
  this._parents = parents;
12172
12183
  }
12173
- function selection() {
12184
+ function selection$1() {
12174
12185
  return new Selection$1([[document.documentElement]], root);
12175
12186
  }
12176
12187
  function selection_selection() {
12177
12188
  return this;
12178
12189
  }
12179
- Selection$1.prototype = selection.prototype = {
12190
+ Selection$1.prototype = selection$1.prototype = {
12180
12191
  constructor: Selection$1,
12181
12192
  select: selection_select,
12182
12193
  selectAll: selection_selectAll,
@@ -13409,7 +13420,7 @@ function transition_selectAll(select2) {
13409
13420
  }
13410
13421
  return new Transition(subgroups, parents, name, id2);
13411
13422
  }
13412
- var Selection = selection.prototype.constructor;
13423
+ var Selection = selection$1.prototype.constructor;
13413
13424
  function transition_selection() {
13414
13425
  return new Selection(this._groups, this._parents);
13415
13426
  }
@@ -13558,7 +13569,7 @@ function transition_end() {
13558
13569
  resolve2();
13559
13570
  });
13560
13571
  }
13561
- var id$1 = 0;
13572
+ var id$2 = 0;
13562
13573
  function Transition(groups, parents, name, id2) {
13563
13574
  this._groups = groups;
13564
13575
  this._parents = parents;
@@ -13566,9 +13577,9 @@ function Transition(groups, parents, name, id2) {
13566
13577
  this._id = id2;
13567
13578
  }
13568
13579
  function newId() {
13569
- return ++id$1;
13580
+ return ++id$2;
13570
13581
  }
13571
- var selection_prototype = selection.prototype;
13582
+ var selection_prototype = selection$1.prototype;
13572
13583
  Transition.prototype = {
13573
13584
  constructor: Transition,
13574
13585
  select: transition_select,
@@ -13636,8 +13647,8 @@ function selection_transition(name) {
13636
13647
  }
13637
13648
  return new Transition(groups, this._parents, name, id2);
13638
13649
  }
13639
- selection.prototype.interrupt = selection_interrupt;
13640
- selection.prototype.transition = selection_transition;
13650
+ selection$1.prototype.interrupt = selection_interrupt;
13651
+ selection$1.prototype.transition = selection_transition;
13641
13652
  const constant = (x2) => () => x2;
13642
13653
  function ZoomEvent(type, {
13643
13654
  sourceEvent: sourceEvent2,
@@ -14115,14 +14126,14 @@ const _sfc_main$1$1 = /* @__PURE__ */ defineComponent({
14115
14126
  };
14116
14127
  }
14117
14128
  });
14118
- const _hoisted_1$b = ["width", "height", "viewBox", "aria-labelledby"];
14119
- const _hoisted_2$8 = ["id"];
14120
- const _hoisted_3$7 = ["d", "fill", "stroke", "stroke-width"];
14129
+ const _hoisted_1$c = ["width", "height", "viewBox", "aria-labelledby"];
14130
+ const _hoisted_2$9 = ["id"];
14131
+ const _hoisted_3$8 = ["d", "fill", "stroke", "stroke-width"];
14121
14132
  const __default__ = {
14122
14133
  name: "MiniMap",
14123
14134
  compatConfig: { MODE: 3 }
14124
14135
  };
14125
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
14136
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
14126
14137
  ...__default__,
14127
14138
  props: {
14128
14139
  nodeColor: { type: [String, Function], default: "#e2e2e2" },
@@ -14303,7 +14314,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
14303
14314
  _ctx.ariaLabel ? (openBlock(), createElementBlock("title", {
14304
14315
  key: 0,
14305
14316
  id: `vue-flow__minimap-${unref(id2)}`
14306
- }, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$8)) : createCommentVNode("", true),
14317
+ }, toDisplayString(_ctx.ariaLabel), 9, _hoisted_2$9)) : createCommentVNode("", true),
14307
14318
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getNodesInitialized), (node) => {
14308
14319
  return openBlock(), createBlock(_sfc_main$1$1, {
14309
14320
  id: node.id,
@@ -14335,8 +14346,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
14335
14346
  stroke: _ctx.maskStrokeColor,
14336
14347
  "stroke-width": _ctx.maskStrokeWidth,
14337
14348
  "fill-rule": "evenodd"
14338
- }, null, 8, _hoisted_3$7)
14339
- ], 8, _hoisted_1$b))
14349
+ }, null, 8, _hoisted_3$8)
14350
+ ], 8, _hoisted_1$c))
14340
14351
  ]),
14341
14352
  _: 1
14342
14353
  }, 8, ["position", "class"]);
@@ -14351,16 +14362,16 @@ function toSnakeCase(str) {
14351
14362
  return str;
14352
14363
  return str.replace(/([A-Z])/g, "_$1").replace(/^_/, "").toLowerCase();
14353
14364
  }
14354
- const _hoisted_1$a = { class: "description-text" };
14355
- const _hoisted_2$7 = {
14365
+ const _hoisted_1$b = { class: "description-text" };
14366
+ const _hoisted_2$8 = {
14356
14367
  key: 0,
14357
14368
  class: "truncated-indicator",
14358
14369
  title: "Click to see full description"
14359
14370
  };
14360
- const _hoisted_3$6 = ["id"];
14361
- const _hoisted_4$6 = ["id"];
14371
+ const _hoisted_3$7 = ["id"];
14372
+ const _hoisted_4$7 = ["id"];
14362
14373
  const CHAR_LIMIT = 100;
14363
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
14374
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
14364
14375
  __name: "CustomNode",
14365
14376
  props: {
14366
14377
  data: {
@@ -14615,8 +14626,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
14615
14626
  createBaseVNode("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
14616
14627
  ], -1)
14617
14628
  ])),
14618
- createBaseVNode("pre", _hoisted_1$a, toDisplayString(descriptionSummary.value), 1),
14619
- isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$7, "...")) : createCommentVNode("", true)
14629
+ createBaseVNode("pre", _hoisted_1$b, toDisplayString(descriptionSummary.value), 1),
14630
+ isTruncated.value ? (openBlock(), createElementBlock("span", _hoisted_2$8, "...")) : createCommentVNode("", true)
14620
14631
  ], 4)) : (openBlock(), createElementBlock("div", {
14621
14632
  key: 1,
14622
14633
  id: props2.data.id.toLocaleString(),
@@ -14630,10 +14641,10 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
14630
14641
  class: "description-input",
14631
14642
  data: "description_input",
14632
14643
  onBlur: _cache[2] || (_cache[2] = ($event) => toggleEditMode(false))
14633
- }, null, 40, _hoisted_4$6), [
14644
+ }, null, 40, _hoisted_4$7), [
14634
14645
  [vModelText, description.value]
14635
14646
  ])
14636
- ], 12, _hoisted_3$6))
14647
+ ], 12, _hoisted_3$7))
14637
14648
  ])
14638
14649
  ], 32),
14639
14650
  createBaseVNode("div", {
@@ -14741,7 +14752,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
14741
14752
  }
14742
14753
  });
14743
14754
  const CustomNode_vue_vue_type_style_index_0_scoped_74411a9e_lang = "";
14744
- const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-74411a9e"]]);
14755
+ const CustomNode = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-74411a9e"]]);
14745
14756
  const __variableDynamicImportRuntimeHelper = (glob, path2) => {
14746
14757
  const v = glob[path2];
14747
14758
  if (v) {
@@ -14754,7 +14765,7 @@ const __variableDynamicImportRuntimeHelper = (glob, path2) => {
14754
14765
  const componentCache = {};
14755
14766
  function getComponent(name) {
14756
14767
  if (!componentCache[name]) {
14757
- componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/AirbyteReader.vue": () => __vitePreload(() => import("./AirbyteReader-2b1cf2d8.js"), true ? ["assets/AirbyteReader-2b1cf2d8.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/dropDownGeneric-1f4e32ec.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-content-loader.es-860c0380.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/AirbyteReader-1ac35765.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-cc3ab73c.js"), true ? ["assets/CrossJoin-cc3ab73c.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-e4134cd0.js"), true ? ["assets/DatabaseReader-e4134cd0.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/api-3b345d92.js","assets/DatabaseConnectionSettings-307c4652.js","assets/secretApi-01f07e2c.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-d32d75b1.js"), true ? ["assets/DatabaseWriter-d32d75b1.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/api-3b345d92.js","assets/DatabaseConnectionSettings-307c4652.js","assets/secretApi-01f07e2c.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-5eb48389.js"), true ? ["assets/ExploreData-5eb48389.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-29489051.js"), true ? ["assets/ExternalSource-29489051.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-031332bb.js"), true ? ["assets/Filter-031332bb.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/fullEditor-f4791c23.js","assets/vue-codemirror.esm-eb98fc8b.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3b900540.js"), true ? ["assets/Formula-3b900540.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/fullEditor-f4791c23.js","assets/vue-codemirror.esm-eb98fc8b.js","assets/fullEditor-178376bb.css","assets/dropDownGeneric-1f4e32ec.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-b8cefc31.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-dee31153.js"), true ? ["assets/FuzzyMatch-dee31153.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-860c0380.js","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-ca74eb47.js"), true ? ["assets/GraphSolver-ca74eb47.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-081b6591.js"), true ? ["assets/GroupBy-081b6591.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-b467376f.js"), true ? ["assets/Join-b467376f.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Join-41c0f331.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-ffffb80a.js"), true ? ["assets/ManualInput-ffffb80a.js","assets/nodeTitle-cad6fd9d.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-ac7b9972.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-9a87d4ba.js"), true ? ["assets/Output-9a87d4ba.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-ee3e6093.js"), true ? ["assets/Pivot-ee3e6093.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/SettingsSection-48f28104.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-03921254.js"), true ? ["assets/PolarsCode-03921254.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-codemirror.esm-eb98fc8b.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-67fee3a0.js"), true ? ["assets/Read-67fee3a0.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-a2acd02d.js"), true ? ["assets/RecordCount-a2acd02d.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-0c8bcd77.js"), true ? ["assets/RecordId-0c8bcd77.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/SettingsSection-48f28104.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-60594a3a.js"), true ? ["assets/Sample-60594a3a.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-9540e6ca.js"), true ? ["assets/Select-9540e6ca.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-6dbe3633.js"), true ? ["assets/Sort-6dbe3633.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-content-loader.es-860c0380.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-27aab4a8.js"), true ? ["assets/TextToRows-27aab4a8.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-860c0380.js","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-52460248.js"), true ? ["assets/Union-52460248.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-f6962644.js"), true ? ["assets/Unique-f6962644.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-1ff1e938.js"), true ? ["assets/Unpivot-1ff1e938.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${toTitleCase(name)}.vue`).then((module) => {
14768
+ componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/AirbyteReader.vue": () => __vitePreload(() => import("./AirbyteReader-e08044e5.js"), true ? ["assets/AirbyteReader-e08044e5.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/dropDownGeneric-60f56a8a.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-6c4b1c24.js","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/AirbyteReader-1ac35765.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-dfcf7351.js"), true ? ["assets/CrossJoin-dfcf7351.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-a48124d8.js"), true ? ["assets/DatabaseReader-a48124d8.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/api-44ca9e9c.js","assets/DatabaseConnectionSettings-b2afb1d7.js","assets/secretApi-cdc2a3fd.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-b47cbae2.js"), true ? ["assets/DatabaseWriter-b47cbae2.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/api-44ca9e9c.js","assets/DatabaseConnectionSettings-b2afb1d7.js","assets/secretApi-cdc2a3fd.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-fdfc45a4.js"), true ? ["assets/ExploreData-fdfc45a4.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-861b0e71.js"), true ? ["assets/ExternalSource-861b0e71.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-f87bb897.js"), true ? ["assets/Filter-f87bb897.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-e272b506.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-1e2ed720.js"), true ? ["assets/Formula-1e2ed720.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-e272b506.js","assets/fullEditor-178376bb.css","assets/dropDownGeneric-60f56a8a.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-b8cefc31.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-b6cc4fdd.js"), true ? ["assets/FuzzyMatch-b6cc4fdd.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-6c4b1c24.js","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-6a371f4c.js"), true ? ["assets/GraphSolver-6a371f4c.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-f7b7f472.js"), true ? ["assets/GroupBy-f7b7f472.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-eec38203.js"), true ? ["assets/Join-eec38203.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Join-41c0f331.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-9aaa46fb.js"), true ? ["assets/ManualInput-9aaa46fb.js","assets/nodeTitle-fc3fc4b7.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-ac7b9972.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-3b2ca045.js"), true ? ["assets/Output-3b2ca045.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-a4f5d88f.js"), true ? ["assets/Pivot-a4f5d88f.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-a0f15a05.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-49ce444f.js"), true ? ["assets/PolarsCode-49ce444f.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-07acdc9a.js"), true ? ["assets/Read-07acdc9a.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-6a21da56.js"), true ? ["assets/RecordCount-6a21da56.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-949bdc17.js"), true ? ["assets/RecordId-949bdc17.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-a0f15a05.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-7afca6e1.js"), true ? ["assets/Sample-7afca6e1.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-32b28406.js"), true ? ["assets/Select-32b28406.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-fc6ba0e2.js"), true ? ["assets/Sort-fc6ba0e2.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-6c4b1c24.js","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-23127596.js"), true ? ["assets/TextToRows-23127596.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-6c4b1c24.js","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-39eecc6c.js"), true ? ["assets/Union-39eecc6c.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-a0e8fe61.js"), true ? ["assets/Unique-a0e8fe61.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-1e2d43f0.js"), true ? ["assets/Unpivot-1e2d43f0.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${toTitleCase(name)}.vue`).then((module) => {
14758
14769
  const component = markRaw$1(module.default);
14759
14770
  return component;
14760
14771
  });
@@ -14763,7 +14774,7 @@ function getComponent(name) {
14763
14774
  }
14764
14775
  function getComponentRaw(name) {
14765
14776
  if (!componentCache[name]) {
14766
- componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/AirbyteReader.vue": () => __vitePreload(() => import("./AirbyteReader-2b1cf2d8.js"), true ? ["assets/AirbyteReader-2b1cf2d8.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/dropDownGeneric-1f4e32ec.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-content-loader.es-860c0380.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/AirbyteReader-1ac35765.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-cc3ab73c.js"), true ? ["assets/CrossJoin-cc3ab73c.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-e4134cd0.js"), true ? ["assets/DatabaseReader-e4134cd0.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/api-3b345d92.js","assets/DatabaseConnectionSettings-307c4652.js","assets/secretApi-01f07e2c.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-d32d75b1.js"), true ? ["assets/DatabaseWriter-d32d75b1.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/api-3b345d92.js","assets/DatabaseConnectionSettings-307c4652.js","assets/secretApi-01f07e2c.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-5eb48389.js"), true ? ["assets/ExploreData-5eb48389.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-29489051.js"), true ? ["assets/ExternalSource-29489051.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-031332bb.js"), true ? ["assets/Filter-031332bb.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/fullEditor-f4791c23.js","assets/vue-codemirror.esm-eb98fc8b.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-3b900540.js"), true ? ["assets/Formula-3b900540.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/fullEditor-f4791c23.js","assets/vue-codemirror.esm-eb98fc8b.js","assets/fullEditor-178376bb.css","assets/dropDownGeneric-1f4e32ec.js","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-b8cefc31.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-dee31153.js"), true ? ["assets/FuzzyMatch-dee31153.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-860c0380.js","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-ca74eb47.js"), true ? ["assets/GraphSolver-ca74eb47.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-081b6591.js"), true ? ["assets/GroupBy-081b6591.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-b467376f.js"), true ? ["assets/Join-b467376f.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Join-41c0f331.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-ffffb80a.js"), true ? ["assets/ManualInput-ffffb80a.js","assets/nodeTitle-cad6fd9d.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-ac7b9972.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-9a87d4ba.js"), true ? ["assets/Output-9a87d4ba.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-ee3e6093.js"), true ? ["assets/Pivot-ee3e6093.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/SettingsSection-48f28104.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-03921254.js"), true ? ["assets/PolarsCode-03921254.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-codemirror.esm-eb98fc8b.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-67fee3a0.js"), true ? ["assets/Read-67fee3a0.js","assets/vue-content-loader.es-860c0380.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-a2acd02d.js"), true ? ["assets/RecordCount-a2acd02d.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-0c8bcd77.js"), true ? ["assets/RecordId-0c8bcd77.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/SettingsSection-48f28104.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-60594a3a.js"), true ? ["assets/Sample-60594a3a.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-9540e6ca.js"), true ? ["assets/Select-9540e6ca.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-6dbe3633.js"), true ? ["assets/Sort-6dbe3633.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/vue-content-loader.es-860c0380.js","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-27aab4a8.js"), true ? ["assets/TextToRows-27aab4a8.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/dropDown-d5a4014c.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-860c0380.js","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-52460248.js"), true ? ["assets/Union-52460248.js","assets/PopOver-3bdf8951.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-f6962644.js"), true ? ["assets/Unique-f6962644.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-860c0380.js","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/selectDynamic-f46a4e3f.js","assets/UnavailableFields-8143044b.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-1ff1e938.js"), true ? ["assets/Unpivot-1ff1e938.js","assets/index-f25c9283.js","assets/index-681a3ed0.css","assets/PopOver-3bdf8951.js","assets/PopOver-bccfde04.css","assets/genericNodeSettings-1d456350.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-cad6fd9d.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${name}.vue`).then((module) => {
14777
+ componentCache[name] = __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../../nodes/AirbyteReader.vue": () => __vitePreload(() => import("./AirbyteReader-e08044e5.js"), true ? ["assets/AirbyteReader-e08044e5.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/dropDownGeneric-60f56a8a.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-6c4b1c24.js","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/AirbyteReader-1ac35765.css"] : void 0), "../../nodes/CrossJoin.vue": () => __vitePreload(() => import("./CrossJoin-dfcf7351.js"), true ? ["assets/CrossJoin-dfcf7351.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/CrossJoin-41efa4cb.css"] : void 0), "../../nodes/DatabaseReader.vue": () => __vitePreload(() => import("./DatabaseReader-a48124d8.js"), true ? ["assets/DatabaseReader-a48124d8.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/api-44ca9e9c.js","assets/DatabaseConnectionSettings-b2afb1d7.js","assets/secretApi-cdc2a3fd.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseReader-f50c6558.css"] : void 0), "../../nodes/DatabaseWriter.vue": () => __vitePreload(() => import("./DatabaseWriter-b47cbae2.js"), true ? ["assets/DatabaseWriter-b47cbae2.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/api-44ca9e9c.js","assets/DatabaseConnectionSettings-b2afb1d7.js","assets/secretApi-cdc2a3fd.js","assets/DatabaseConnectionSettings-0c04b2e5.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/DatabaseWriter-2f570e53.css"] : void 0), "../../nodes/ExploreData.vue": () => __vitePreload(() => import("./ExploreData-fdfc45a4.js"), true ? ["assets/ExploreData-fdfc45a4.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/ExploreData-5bdae813.css"] : void 0), "../../nodes/ExternalSource.vue": () => __vitePreload(() => import("./ExternalSource-861b0e71.js"), true ? ["assets/ExternalSource-861b0e71.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/ExternalSource-e37b6275.css"] : void 0), "../../nodes/Filter.vue": () => __vitePreload(() => import("./Filter-f87bb897.js"), true ? ["assets/Filter-f87bb897.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-e272b506.js","assets/fullEditor-178376bb.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Filter-a9d08ba1.css"] : void 0), "../../nodes/Formula.vue": () => __vitePreload(() => import("./Formula-1e2ed720.js"), true ? ["assets/Formula-1e2ed720.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/fullEditor-e272b506.js","assets/fullEditor-178376bb.css","assets/dropDownGeneric-60f56a8a.js","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/dropDownGeneric-895680d6.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Formula-b8cefc31.css"] : void 0), "../../nodes/FuzzyMatch.vue": () => __vitePreload(() => import("./FuzzyMatch-b6cc4fdd.js"), true ? ["assets/FuzzyMatch-b6cc4fdd.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-6c4b1c24.js","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/FuzzyMatch-6857de82.css"] : void 0), "../../nodes/GraphSolver.vue": () => __vitePreload(() => import("./GraphSolver-6a371f4c.js"), true ? ["assets/GraphSolver-6a371f4c.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/GraphSolver-17fd26db.css"] : void 0), "../../nodes/GroupBy.vue": () => __vitePreload(() => import("./GroupBy-f7b7f472.js"), true ? ["assets/GroupBy-f7b7f472.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/GroupBy-ab1ea74b.css"] : void 0), "../../nodes/Join.vue": () => __vitePreload(() => import("./Join-eec38203.js"), true ? ["assets/Join-eec38203.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Join-41c0f331.css"] : void 0), "../../nodes/ManualInput.vue": () => __vitePreload(() => import("./ManualInput-9aaa46fb.js"), true ? ["assets/ManualInput-9aaa46fb.js","assets/nodeTitle-fc3fc4b7.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-f4b12bcb.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/ManualInput-ac7b9972.css"] : void 0), "../../nodes/Output.vue": () => __vitePreload(() => import("./Output-3b2ca045.js"), true ? ["assets/Output-3b2ca045.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Output-48f81019.css"] : void 0), "../../nodes/Pivot.vue": () => __vitePreload(() => import("./Pivot-a4f5d88f.js"), true ? ["assets/Pivot-a4f5d88f.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-a0f15a05.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Pivot-f415e85f.css"] : void 0), "../../nodes/PolarsCode.vue": () => __vitePreload(() => import("./PolarsCode-49ce444f.js"), true ? ["assets/PolarsCode-49ce444f.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/PolarsCode-650322d1.css"] : void 0), "../../nodes/Read.vue": () => __vitePreload(() => import("./Read-07acdc9a.js"), true ? ["assets/Read-07acdc9a.js","assets/vue-content-loader.es-6c4b1c24.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Read-80dc1675.css"] : void 0), "../../nodes/RecordCount.vue": () => __vitePreload(() => import("./RecordCount-6a21da56.js"), true ? ["assets/RecordCount-6a21da56.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/RecordId.vue": () => __vitePreload(() => import("./RecordId-949bdc17.js"), true ? ["assets/RecordId-949bdc17.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/SettingsSection-a0f15a05.js","assets/SettingsSection-9c836ecc.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sample.vue": () => __vitePreload(() => import("./Sample-7afca6e1.js"), true ? ["assets/Sample-7afca6e1.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Select.vue": () => __vitePreload(() => import("./Select-32b28406.js"), true ? ["assets/Select-32b28406.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css"] : void 0), "../../nodes/Sort.vue": () => __vitePreload(() => import("./Sort-fc6ba0e2.js"), true ? ["assets/Sort-fc6ba0e2.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/vue-content-loader.es-6c4b1c24.js","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Sort-7ccfa0fe.css"] : void 0), "../../nodes/TextToRows.vue": () => __vitePreload(() => import("./TextToRows-23127596.js"), true ? ["assets/TextToRows-23127596.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/dropDown-52790b15.js","assets/dropDown-35135ba8.css","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/vue-content-loader.es-6c4b1c24.js","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/TextToRows-c92d1ec2.css"] : void 0), "../../nodes/Union.vue": () => __vitePreload(() => import("./Union-39eecc6c.js"), true ? ["assets/Union-39eecc6c.js","assets/vue-codemirror.esm-25e75a08.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Union-8d9ac7f9.css"] : void 0), "../../nodes/Unique.vue": () => __vitePreload(() => import("./Unique-a0e8fe61.js"), true ? ["assets/Unique-a0e8fe61.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-content-loader.es-6c4b1c24.js","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/selectDynamic-96aa82cd.js","assets/UnavailableFields-c42880a3.js","assets/UnavailableFields-5edd5322.css","assets/selectDynamic-b062bc9b.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Unique-b5615727.css"] : void 0), "../../nodes/Unpivot.vue": () => __vitePreload(() => import("./Unpivot-1e2d43f0.js"), true ? ["assets/Unpivot-1e2d43f0.js","assets/index-e235a8bc.js","assets/index-681a3ed0.css","assets/vue-codemirror.esm-25e75a08.js","assets/vue-codemirror-bccfde04.css","assets/genericNodeSettings-4bdcf98e.js","assets/genericNodeSettings-924759c7.css","assets/nodeTitle-fc3fc4b7.js","assets/nodeTitle-f4b12bcb.css","assets/Unpivot-246e9bbd.css"] : void 0) }), `../../nodes/${name}.vue`).then((module) => {
14767
14778
  const component = markRaw$1(module.default);
14768
14779
  return component;
14769
14780
  });
@@ -14915,9 +14926,9 @@ const importSavedFlow = async (flowPath) => {
14915
14926
  console.error("There was an error fetching the flow:", error);
14916
14927
  }
14917
14928
  };
14918
- let id = 0;
14929
+ let id$1 = 0;
14919
14930
  function getId() {
14920
- return ++id;
14931
+ return ++id$1;
14921
14932
  }
14922
14933
  const state = {
14923
14934
  draggedType: ref(null),
@@ -15039,7 +15050,7 @@ function useDragAndDrop() {
15039
15050
  await createEmptyFlow();
15040
15051
  const allNodes = await Promise.all(flowData.node_inputs.map((node) => getNodeToAdd(node)));
15041
15052
  addNodes(allNodes);
15042
- id = getMaxDataId(flowData.node_inputs);
15053
+ id$1 = getMaxDataId(flowData.node_inputs);
15043
15054
  addEdges(flowData.node_edges);
15044
15055
  }
15045
15056
  function onDrop(event, flowId) {
@@ -15108,6 +15119,2702 @@ function useDragAndDrop() {
15108
15119
  importFlow
15109
15120
  };
15110
15121
  }
15122
+ class Stack {
15123
+ /**
15124
+ @internal
15125
+ */
15126
+ constructor(p, stack, state2, reducePos, pos, score, buffer, bufferBase, curContext, lookAhead = 0, parent) {
15127
+ this.p = p;
15128
+ this.stack = stack;
15129
+ this.state = state2;
15130
+ this.reducePos = reducePos;
15131
+ this.pos = pos;
15132
+ this.score = score;
15133
+ this.buffer = buffer;
15134
+ this.bufferBase = bufferBase;
15135
+ this.curContext = curContext;
15136
+ this.lookAhead = lookAhead;
15137
+ this.parent = parent;
15138
+ }
15139
+ /**
15140
+ @internal
15141
+ */
15142
+ toString() {
15143
+ return `[${this.stack.filter((_2, i2) => i2 % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? "!" + this.score : ""}`;
15144
+ }
15145
+ // Start an empty stack
15146
+ /**
15147
+ @internal
15148
+ */
15149
+ static start(p, state2, pos = 0) {
15150
+ let cx = p.parser.context;
15151
+ return new Stack(p, [], state2, pos, pos, 0, [], 0, cx ? new StackContext(cx, cx.start) : null, 0, null);
15152
+ }
15153
+ /**
15154
+ The stack's current [context](#lr.ContextTracker) value, if
15155
+ any. Its type will depend on the context tracker's type
15156
+ parameter, or it will be `null` if there is no context
15157
+ tracker.
15158
+ */
15159
+ get context() {
15160
+ return this.curContext ? this.curContext.context : null;
15161
+ }
15162
+ // Push a state onto the stack, tracking its start position as well
15163
+ // as the buffer base at that point.
15164
+ /**
15165
+ @internal
15166
+ */
15167
+ pushState(state2, start2) {
15168
+ this.stack.push(this.state, start2, this.bufferBase + this.buffer.length);
15169
+ this.state = state2;
15170
+ }
15171
+ // Apply a reduce action
15172
+ /**
15173
+ @internal
15174
+ */
15175
+ reduce(action) {
15176
+ var _a;
15177
+ let depth = action >> 19, type = action & 65535;
15178
+ let { parser: parser2 } = this.p;
15179
+ let lookaheadRecord = this.reducePos < this.pos - 25;
15180
+ if (lookaheadRecord)
15181
+ this.setLookAhead(this.pos);
15182
+ let dPrec = parser2.dynamicPrecedence(type);
15183
+ if (dPrec)
15184
+ this.score += dPrec;
15185
+ if (depth == 0) {
15186
+ this.pushState(parser2.getGoto(this.state, type, true), this.reducePos);
15187
+ if (type < parser2.minRepeatTerm)
15188
+ this.storeNode(type, this.reducePos, this.reducePos, lookaheadRecord ? 8 : 4, true);
15189
+ this.reduceContext(type, this.reducePos);
15190
+ return;
15191
+ }
15192
+ let base = this.stack.length - (depth - 1) * 3 - (action & 262144 ? 6 : 0);
15193
+ let start2 = base ? this.stack[base - 2] : this.p.ranges[0].from, size = this.reducePos - start2;
15194
+ if (size >= 2e3 && !((_a = this.p.parser.nodeSet.types[type]) === null || _a === void 0 ? void 0 : _a.isAnonymous)) {
15195
+ if (start2 == this.p.lastBigReductionStart) {
15196
+ this.p.bigReductionCount++;
15197
+ this.p.lastBigReductionSize = size;
15198
+ } else if (this.p.lastBigReductionSize < size) {
15199
+ this.p.bigReductionCount = 1;
15200
+ this.p.lastBigReductionStart = start2;
15201
+ this.p.lastBigReductionSize = size;
15202
+ }
15203
+ }
15204
+ let bufferBase = base ? this.stack[base - 1] : 0, count = this.bufferBase + this.buffer.length - bufferBase;
15205
+ if (type < parser2.minRepeatTerm || action & 131072) {
15206
+ let pos = parser2.stateFlag(
15207
+ this.state,
15208
+ 1
15209
+ /* StateFlag.Skipped */
15210
+ ) ? this.pos : this.reducePos;
15211
+ this.storeNode(type, start2, pos, count + 4, true);
15212
+ }
15213
+ if (action & 262144) {
15214
+ this.state = this.stack[base];
15215
+ } else {
15216
+ let baseStateID = this.stack[base - 3];
15217
+ this.state = parser2.getGoto(baseStateID, type, true);
15218
+ }
15219
+ while (this.stack.length > base)
15220
+ this.stack.pop();
15221
+ this.reduceContext(type, start2);
15222
+ }
15223
+ // Shift a value into the buffer
15224
+ /**
15225
+ @internal
15226
+ */
15227
+ storeNode(term, start2, end, size = 4, mustSink = false) {
15228
+ if (term == 0 && (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {
15229
+ let cur = this, top = this.buffer.length;
15230
+ if (top == 0 && cur.parent) {
15231
+ top = cur.bufferBase - cur.parent.bufferBase;
15232
+ cur = cur.parent;
15233
+ }
15234
+ if (top > 0 && cur.buffer[top - 4] == 0 && cur.buffer[top - 1] > -1) {
15235
+ if (start2 == end)
15236
+ return;
15237
+ if (cur.buffer[top - 2] >= start2) {
15238
+ cur.buffer[top - 2] = end;
15239
+ return;
15240
+ }
15241
+ }
15242
+ }
15243
+ if (!mustSink || this.pos == end) {
15244
+ this.buffer.push(term, start2, end, size);
15245
+ } else {
15246
+ let index = this.buffer.length;
15247
+ if (index > 0 && this.buffer[index - 4] != 0) {
15248
+ let mustMove = false;
15249
+ for (let scan = index; scan > 0 && this.buffer[scan - 2] > end; scan -= 4) {
15250
+ if (this.buffer[scan - 1] >= 0) {
15251
+ mustMove = true;
15252
+ break;
15253
+ }
15254
+ }
15255
+ if (mustMove)
15256
+ while (index > 0 && this.buffer[index - 2] > end) {
15257
+ this.buffer[index] = this.buffer[index - 4];
15258
+ this.buffer[index + 1] = this.buffer[index - 3];
15259
+ this.buffer[index + 2] = this.buffer[index - 2];
15260
+ this.buffer[index + 3] = this.buffer[index - 1];
15261
+ index -= 4;
15262
+ if (size > 4)
15263
+ size -= 4;
15264
+ }
15265
+ }
15266
+ this.buffer[index] = term;
15267
+ this.buffer[index + 1] = start2;
15268
+ this.buffer[index + 2] = end;
15269
+ this.buffer[index + 3] = size;
15270
+ }
15271
+ }
15272
+ // Apply a shift action
15273
+ /**
15274
+ @internal
15275
+ */
15276
+ shift(action, type, start2, end) {
15277
+ if (action & 131072) {
15278
+ this.pushState(action & 65535, this.pos);
15279
+ } else if ((action & 262144) == 0) {
15280
+ let nextState = action, { parser: parser2 } = this.p;
15281
+ if (end > this.pos || type <= parser2.maxNode) {
15282
+ this.pos = end;
15283
+ if (!parser2.stateFlag(
15284
+ nextState,
15285
+ 1
15286
+ /* StateFlag.Skipped */
15287
+ ))
15288
+ this.reducePos = end;
15289
+ }
15290
+ this.pushState(nextState, start2);
15291
+ this.shiftContext(type, start2);
15292
+ if (type <= parser2.maxNode)
15293
+ this.buffer.push(type, start2, end, 4);
15294
+ } else {
15295
+ this.pos = end;
15296
+ this.shiftContext(type, start2);
15297
+ if (type <= this.p.parser.maxNode)
15298
+ this.buffer.push(type, start2, end, 4);
15299
+ }
15300
+ }
15301
+ // Apply an action
15302
+ /**
15303
+ @internal
15304
+ */
15305
+ apply(action, next, nextStart, nextEnd) {
15306
+ if (action & 65536)
15307
+ this.reduce(action);
15308
+ else
15309
+ this.shift(action, next, nextStart, nextEnd);
15310
+ }
15311
+ // Add a prebuilt (reused) node into the buffer.
15312
+ /**
15313
+ @internal
15314
+ */
15315
+ useNode(value, next) {
15316
+ let index = this.p.reused.length - 1;
15317
+ if (index < 0 || this.p.reused[index] != value) {
15318
+ this.p.reused.push(value);
15319
+ index++;
15320
+ }
15321
+ let start2 = this.pos;
15322
+ this.reducePos = this.pos = start2 + value.length;
15323
+ this.pushState(next, start2);
15324
+ this.buffer.push(
15325
+ index,
15326
+ start2,
15327
+ this.reducePos,
15328
+ -1
15329
+ /* size == -1 means this is a reused value */
15330
+ );
15331
+ if (this.curContext)
15332
+ this.updateContext(this.curContext.tracker.reuse(this.curContext.context, value, this, this.p.stream.reset(this.pos - value.length)));
15333
+ }
15334
+ // Split the stack. Due to the buffer sharing and the fact
15335
+ // that `this.stack` tends to stay quite shallow, this isn't very
15336
+ // expensive.
15337
+ /**
15338
+ @internal
15339
+ */
15340
+ split() {
15341
+ let parent = this;
15342
+ let off = parent.buffer.length;
15343
+ while (off > 0 && parent.buffer[off - 2] > parent.reducePos)
15344
+ off -= 4;
15345
+ let buffer = parent.buffer.slice(off), base = parent.bufferBase + off;
15346
+ while (parent && base == parent.bufferBase)
15347
+ parent = parent.parent;
15348
+ return new Stack(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, buffer, base, this.curContext, this.lookAhead, parent);
15349
+ }
15350
+ // Try to recover from an error by 'deleting' (ignoring) one token.
15351
+ /**
15352
+ @internal
15353
+ */
15354
+ recoverByDelete(next, nextEnd) {
15355
+ let isNode2 = next <= this.p.parser.maxNode;
15356
+ if (isNode2)
15357
+ this.storeNode(next, this.pos, nextEnd, 4);
15358
+ this.storeNode(0, this.pos, nextEnd, isNode2 ? 8 : 4);
15359
+ this.pos = this.reducePos = nextEnd;
15360
+ this.score -= 190;
15361
+ }
15362
+ /**
15363
+ Check if the given term would be able to be shifted (optionally
15364
+ after some reductions) on this stack. This can be useful for
15365
+ external tokenizers that want to make sure they only provide a
15366
+ given token when it applies.
15367
+ */
15368
+ canShift(term) {
15369
+ for (let sim = new SimulatedStack(this); ; ) {
15370
+ let action = this.p.parser.stateSlot(
15371
+ sim.state,
15372
+ 4
15373
+ /* ParseState.DefaultReduce */
15374
+ ) || this.p.parser.hasAction(sim.state, term);
15375
+ if (action == 0)
15376
+ return false;
15377
+ if ((action & 65536) == 0)
15378
+ return true;
15379
+ sim.reduce(action);
15380
+ }
15381
+ }
15382
+ // Apply up to Recover.MaxNext recovery actions that conceptually
15383
+ // inserts some missing token or rule.
15384
+ /**
15385
+ @internal
15386
+ */
15387
+ recoverByInsert(next) {
15388
+ if (this.stack.length >= 300)
15389
+ return [];
15390
+ let nextStates = this.p.parser.nextStates(this.state);
15391
+ if (nextStates.length > 4 << 1 || this.stack.length >= 120) {
15392
+ let best = [];
15393
+ for (let i2 = 0, s3; i2 < nextStates.length; i2 += 2) {
15394
+ if ((s3 = nextStates[i2 + 1]) != this.state && this.p.parser.hasAction(s3, next))
15395
+ best.push(nextStates[i2], s3);
15396
+ }
15397
+ if (this.stack.length < 120)
15398
+ for (let i2 = 0; best.length < 4 << 1 && i2 < nextStates.length; i2 += 2) {
15399
+ let s3 = nextStates[i2 + 1];
15400
+ if (!best.some((v, i3) => i3 & 1 && v == s3))
15401
+ best.push(nextStates[i2], s3);
15402
+ }
15403
+ nextStates = best;
15404
+ }
15405
+ let result = [];
15406
+ for (let i2 = 0; i2 < nextStates.length && result.length < 4; i2 += 2) {
15407
+ let s3 = nextStates[i2 + 1];
15408
+ if (s3 == this.state)
15409
+ continue;
15410
+ let stack = this.split();
15411
+ stack.pushState(s3, this.pos);
15412
+ stack.storeNode(0, stack.pos, stack.pos, 4, true);
15413
+ stack.shiftContext(nextStates[i2], this.pos);
15414
+ stack.reducePos = this.pos;
15415
+ stack.score -= 200;
15416
+ result.push(stack);
15417
+ }
15418
+ return result;
15419
+ }
15420
+ // Force a reduce, if possible. Return false if that can't
15421
+ // be done.
15422
+ /**
15423
+ @internal
15424
+ */
15425
+ forceReduce() {
15426
+ let { parser: parser2 } = this.p;
15427
+ let reduce = parser2.stateSlot(
15428
+ this.state,
15429
+ 5
15430
+ /* ParseState.ForcedReduce */
15431
+ );
15432
+ if ((reduce & 65536) == 0)
15433
+ return false;
15434
+ if (!parser2.validAction(this.state, reduce)) {
15435
+ let depth = reduce >> 19, term = reduce & 65535;
15436
+ let target = this.stack.length - depth * 3;
15437
+ if (target < 0 || parser2.getGoto(this.stack[target], term, false) < 0) {
15438
+ let backup = this.findForcedReduction();
15439
+ if (backup == null)
15440
+ return false;
15441
+ reduce = backup;
15442
+ }
15443
+ this.storeNode(0, this.pos, this.pos, 4, true);
15444
+ this.score -= 100;
15445
+ }
15446
+ this.reducePos = this.pos;
15447
+ this.reduce(reduce);
15448
+ return true;
15449
+ }
15450
+ /**
15451
+ Try to scan through the automaton to find some kind of reduction
15452
+ that can be applied. Used when the regular ForcedReduce field
15453
+ isn't a valid action. @internal
15454
+ */
15455
+ findForcedReduction() {
15456
+ let { parser: parser2 } = this.p, seen = [];
15457
+ let explore = (state2, depth) => {
15458
+ if (seen.includes(state2))
15459
+ return;
15460
+ seen.push(state2);
15461
+ return parser2.allActions(state2, (action) => {
15462
+ if (action & (262144 | 131072))
15463
+ ;
15464
+ else if (action & 65536) {
15465
+ let rDepth = (action >> 19) - depth;
15466
+ if (rDepth > 1) {
15467
+ let term = action & 65535, target = this.stack.length - rDepth * 3;
15468
+ if (target >= 0 && parser2.getGoto(this.stack[target], term, false) >= 0)
15469
+ return rDepth << 19 | 65536 | term;
15470
+ }
15471
+ } else {
15472
+ let found = explore(action, depth + 1);
15473
+ if (found != null)
15474
+ return found;
15475
+ }
15476
+ });
15477
+ };
15478
+ return explore(this.state, 0);
15479
+ }
15480
+ /**
15481
+ @internal
15482
+ */
15483
+ forceAll() {
15484
+ while (!this.p.parser.stateFlag(
15485
+ this.state,
15486
+ 2
15487
+ /* StateFlag.Accepting */
15488
+ )) {
15489
+ if (!this.forceReduce()) {
15490
+ this.storeNode(0, this.pos, this.pos, 4, true);
15491
+ break;
15492
+ }
15493
+ }
15494
+ return this;
15495
+ }
15496
+ /**
15497
+ Check whether this state has no further actions (assumed to be a direct descendant of the
15498
+ top state, since any other states must be able to continue
15499
+ somehow). @internal
15500
+ */
15501
+ get deadEnd() {
15502
+ if (this.stack.length != 3)
15503
+ return false;
15504
+ let { parser: parser2 } = this.p;
15505
+ return parser2.data[parser2.stateSlot(
15506
+ this.state,
15507
+ 1
15508
+ /* ParseState.Actions */
15509
+ )] == 65535 && !parser2.stateSlot(
15510
+ this.state,
15511
+ 4
15512
+ /* ParseState.DefaultReduce */
15513
+ );
15514
+ }
15515
+ /**
15516
+ Restart the stack (put it back in its start state). Only safe
15517
+ when this.stack.length == 3 (state is directly below the top
15518
+ state). @internal
15519
+ */
15520
+ restart() {
15521
+ this.storeNode(0, this.pos, this.pos, 4, true);
15522
+ this.state = this.stack[0];
15523
+ this.stack.length = 0;
15524
+ }
15525
+ /**
15526
+ @internal
15527
+ */
15528
+ sameState(other) {
15529
+ if (this.state != other.state || this.stack.length != other.stack.length)
15530
+ return false;
15531
+ for (let i2 = 0; i2 < this.stack.length; i2 += 3)
15532
+ if (this.stack[i2] != other.stack[i2])
15533
+ return false;
15534
+ return true;
15535
+ }
15536
+ /**
15537
+ Get the parser used by this stack.
15538
+ */
15539
+ get parser() {
15540
+ return this.p.parser;
15541
+ }
15542
+ /**
15543
+ Test whether a given dialect (by numeric ID, as exported from
15544
+ the terms file) is enabled.
15545
+ */
15546
+ dialectEnabled(dialectID) {
15547
+ return this.p.parser.dialect.flags[dialectID];
15548
+ }
15549
+ shiftContext(term, start2) {
15550
+ if (this.curContext)
15551
+ this.updateContext(this.curContext.tracker.shift(this.curContext.context, term, this, this.p.stream.reset(start2)));
15552
+ }
15553
+ reduceContext(term, start2) {
15554
+ if (this.curContext)
15555
+ this.updateContext(this.curContext.tracker.reduce(this.curContext.context, term, this, this.p.stream.reset(start2)));
15556
+ }
15557
+ /**
15558
+ @internal
15559
+ */
15560
+ emitContext() {
15561
+ let last2 = this.buffer.length - 1;
15562
+ if (last2 < 0 || this.buffer[last2] != -3)
15563
+ this.buffer.push(this.curContext.hash, this.pos, this.pos, -3);
15564
+ }
15565
+ /**
15566
+ @internal
15567
+ */
15568
+ emitLookAhead() {
15569
+ let last2 = this.buffer.length - 1;
15570
+ if (last2 < 0 || this.buffer[last2] != -4)
15571
+ this.buffer.push(this.lookAhead, this.pos, this.pos, -4);
15572
+ }
15573
+ updateContext(context) {
15574
+ if (context != this.curContext.context) {
15575
+ let newCx = new StackContext(this.curContext.tracker, context);
15576
+ if (newCx.hash != this.curContext.hash)
15577
+ this.emitContext();
15578
+ this.curContext = newCx;
15579
+ }
15580
+ }
15581
+ /**
15582
+ @internal
15583
+ */
15584
+ setLookAhead(lookAhead) {
15585
+ if (lookAhead > this.lookAhead) {
15586
+ this.emitLookAhead();
15587
+ this.lookAhead = lookAhead;
15588
+ }
15589
+ }
15590
+ /**
15591
+ @internal
15592
+ */
15593
+ close() {
15594
+ if (this.curContext && this.curContext.tracker.strict)
15595
+ this.emitContext();
15596
+ if (this.lookAhead > 0)
15597
+ this.emitLookAhead();
15598
+ }
15599
+ }
15600
+ class StackContext {
15601
+ constructor(tracker, context) {
15602
+ this.tracker = tracker;
15603
+ this.context = context;
15604
+ this.hash = tracker.strict ? tracker.hash(context) : 0;
15605
+ }
15606
+ }
15607
+ class SimulatedStack {
15608
+ constructor(start2) {
15609
+ this.start = start2;
15610
+ this.state = start2.state;
15611
+ this.stack = start2.stack;
15612
+ this.base = this.stack.length;
15613
+ }
15614
+ reduce(action) {
15615
+ let term = action & 65535, depth = action >> 19;
15616
+ if (depth == 0) {
15617
+ if (this.stack == this.start.stack)
15618
+ this.stack = this.stack.slice();
15619
+ this.stack.push(this.state, 0, 0);
15620
+ this.base += 3;
15621
+ } else {
15622
+ this.base -= (depth - 1) * 3;
15623
+ }
15624
+ let goto = this.start.p.parser.getGoto(this.stack[this.base - 3], term, true);
15625
+ this.state = goto;
15626
+ }
15627
+ }
15628
+ class StackBufferCursor {
15629
+ constructor(stack, pos, index) {
15630
+ this.stack = stack;
15631
+ this.pos = pos;
15632
+ this.index = index;
15633
+ this.buffer = stack.buffer;
15634
+ if (this.index == 0)
15635
+ this.maybeNext();
15636
+ }
15637
+ static create(stack, pos = stack.bufferBase + stack.buffer.length) {
15638
+ return new StackBufferCursor(stack, pos, pos - stack.bufferBase);
15639
+ }
15640
+ maybeNext() {
15641
+ let next = this.stack.parent;
15642
+ if (next != null) {
15643
+ this.index = this.stack.bufferBase - next.bufferBase;
15644
+ this.stack = next;
15645
+ this.buffer = next.buffer;
15646
+ }
15647
+ }
15648
+ get id() {
15649
+ return this.buffer[this.index - 4];
15650
+ }
15651
+ get start() {
15652
+ return this.buffer[this.index - 3];
15653
+ }
15654
+ get end() {
15655
+ return this.buffer[this.index - 2];
15656
+ }
15657
+ get size() {
15658
+ return this.buffer[this.index - 1];
15659
+ }
15660
+ next() {
15661
+ this.index -= 4;
15662
+ this.pos -= 4;
15663
+ if (this.index == 0)
15664
+ this.maybeNext();
15665
+ }
15666
+ fork() {
15667
+ return new StackBufferCursor(this.stack, this.pos, this.index);
15668
+ }
15669
+ }
15670
+ function decodeArray(input, Type = Uint16Array) {
15671
+ if (typeof input != "string")
15672
+ return input;
15673
+ let array2 = null;
15674
+ for (let pos = 0, out = 0; pos < input.length; ) {
15675
+ let value = 0;
15676
+ for (; ; ) {
15677
+ let next = input.charCodeAt(pos++), stop = false;
15678
+ if (next == 126) {
15679
+ value = 65535;
15680
+ break;
15681
+ }
15682
+ if (next >= 92)
15683
+ next--;
15684
+ if (next >= 34)
15685
+ next--;
15686
+ let digit = next - 32;
15687
+ if (digit >= 46) {
15688
+ digit -= 46;
15689
+ stop = true;
15690
+ }
15691
+ value += digit;
15692
+ if (stop)
15693
+ break;
15694
+ value *= 46;
15695
+ }
15696
+ if (array2)
15697
+ array2[out++] = value;
15698
+ else
15699
+ array2 = new Type(value);
15700
+ }
15701
+ return array2;
15702
+ }
15703
+ class CachedToken {
15704
+ constructor() {
15705
+ this.start = -1;
15706
+ this.value = -1;
15707
+ this.end = -1;
15708
+ this.extended = -1;
15709
+ this.lookAhead = 0;
15710
+ this.mask = 0;
15711
+ this.context = 0;
15712
+ }
15713
+ }
15714
+ const nullToken = new CachedToken();
15715
+ class InputStream {
15716
+ /**
15717
+ @internal
15718
+ */
15719
+ constructor(input, ranges) {
15720
+ this.input = input;
15721
+ this.ranges = ranges;
15722
+ this.chunk = "";
15723
+ this.chunkOff = 0;
15724
+ this.chunk2 = "";
15725
+ this.chunk2Pos = 0;
15726
+ this.next = -1;
15727
+ this.token = nullToken;
15728
+ this.rangeIndex = 0;
15729
+ this.pos = this.chunkPos = ranges[0].from;
15730
+ this.range = ranges[0];
15731
+ this.end = ranges[ranges.length - 1].to;
15732
+ this.readNext();
15733
+ }
15734
+ /**
15735
+ @internal
15736
+ */
15737
+ resolveOffset(offset, assoc) {
15738
+ let range = this.range, index = this.rangeIndex;
15739
+ let pos = this.pos + offset;
15740
+ while (pos < range.from) {
15741
+ if (!index)
15742
+ return null;
15743
+ let next = this.ranges[--index];
15744
+ pos -= range.from - next.to;
15745
+ range = next;
15746
+ }
15747
+ while (assoc < 0 ? pos > range.to : pos >= range.to) {
15748
+ if (index == this.ranges.length - 1)
15749
+ return null;
15750
+ let next = this.ranges[++index];
15751
+ pos += next.from - range.to;
15752
+ range = next;
15753
+ }
15754
+ return pos;
15755
+ }
15756
+ /**
15757
+ @internal
15758
+ */
15759
+ clipPos(pos) {
15760
+ if (pos >= this.range.from && pos < this.range.to)
15761
+ return pos;
15762
+ for (let range of this.ranges)
15763
+ if (range.to > pos)
15764
+ return Math.max(pos, range.from);
15765
+ return this.end;
15766
+ }
15767
+ /**
15768
+ Look at a code unit near the stream position. `.peek(0)` equals
15769
+ `.next`, `.peek(-1)` gives you the previous character, and so
15770
+ on.
15771
+
15772
+ Note that looking around during tokenizing creates dependencies
15773
+ on potentially far-away content, which may reduce the
15774
+ effectiveness incremental parsing—when looking forward—or even
15775
+ cause invalid reparses when looking backward more than 25 code
15776
+ units, since the library does not track lookbehind.
15777
+ */
15778
+ peek(offset) {
15779
+ let idx = this.chunkOff + offset, pos, result;
15780
+ if (idx >= 0 && idx < this.chunk.length) {
15781
+ pos = this.pos + offset;
15782
+ result = this.chunk.charCodeAt(idx);
15783
+ } else {
15784
+ let resolved = this.resolveOffset(offset, 1);
15785
+ if (resolved == null)
15786
+ return -1;
15787
+ pos = resolved;
15788
+ if (pos >= this.chunk2Pos && pos < this.chunk2Pos + this.chunk2.length) {
15789
+ result = this.chunk2.charCodeAt(pos - this.chunk2Pos);
15790
+ } else {
15791
+ let i2 = this.rangeIndex, range = this.range;
15792
+ while (range.to <= pos)
15793
+ range = this.ranges[++i2];
15794
+ this.chunk2 = this.input.chunk(this.chunk2Pos = pos);
15795
+ if (pos + this.chunk2.length > range.to)
15796
+ this.chunk2 = this.chunk2.slice(0, range.to - pos);
15797
+ result = this.chunk2.charCodeAt(0);
15798
+ }
15799
+ }
15800
+ if (pos >= this.token.lookAhead)
15801
+ this.token.lookAhead = pos + 1;
15802
+ return result;
15803
+ }
15804
+ /**
15805
+ Accept a token. By default, the end of the token is set to the
15806
+ current stream position, but you can pass an offset (relative to
15807
+ the stream position) to change that.
15808
+ */
15809
+ acceptToken(token, endOffset = 0) {
15810
+ let end = endOffset ? this.resolveOffset(endOffset, -1) : this.pos;
15811
+ if (end == null || end < this.token.start)
15812
+ throw new RangeError("Token end out of bounds");
15813
+ this.token.value = token;
15814
+ this.token.end = end;
15815
+ }
15816
+ /**
15817
+ Accept a token ending at a specific given position.
15818
+ */
15819
+ acceptTokenTo(token, endPos) {
15820
+ this.token.value = token;
15821
+ this.token.end = endPos;
15822
+ }
15823
+ getChunk() {
15824
+ if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {
15825
+ let { chunk, chunkPos } = this;
15826
+ this.chunk = this.chunk2;
15827
+ this.chunkPos = this.chunk2Pos;
15828
+ this.chunk2 = chunk;
15829
+ this.chunk2Pos = chunkPos;
15830
+ this.chunkOff = this.pos - this.chunkPos;
15831
+ } else {
15832
+ this.chunk2 = this.chunk;
15833
+ this.chunk2Pos = this.chunkPos;
15834
+ let nextChunk = this.input.chunk(this.pos);
15835
+ let end = this.pos + nextChunk.length;
15836
+ this.chunk = end > this.range.to ? nextChunk.slice(0, this.range.to - this.pos) : nextChunk;
15837
+ this.chunkPos = this.pos;
15838
+ this.chunkOff = 0;
15839
+ }
15840
+ }
15841
+ readNext() {
15842
+ if (this.chunkOff >= this.chunk.length) {
15843
+ this.getChunk();
15844
+ if (this.chunkOff == this.chunk.length)
15845
+ return this.next = -1;
15846
+ }
15847
+ return this.next = this.chunk.charCodeAt(this.chunkOff);
15848
+ }
15849
+ /**
15850
+ Move the stream forward N (defaults to 1) code units. Returns
15851
+ the new value of [`next`](#lr.InputStream.next).
15852
+ */
15853
+ advance(n = 1) {
15854
+ this.chunkOff += n;
15855
+ while (this.pos + n >= this.range.to) {
15856
+ if (this.rangeIndex == this.ranges.length - 1)
15857
+ return this.setDone();
15858
+ n -= this.range.to - this.pos;
15859
+ this.range = this.ranges[++this.rangeIndex];
15860
+ this.pos = this.range.from;
15861
+ }
15862
+ this.pos += n;
15863
+ if (this.pos >= this.token.lookAhead)
15864
+ this.token.lookAhead = this.pos + 1;
15865
+ return this.readNext();
15866
+ }
15867
+ setDone() {
15868
+ this.pos = this.chunkPos = this.end;
15869
+ this.range = this.ranges[this.rangeIndex = this.ranges.length - 1];
15870
+ this.chunk = "";
15871
+ return this.next = -1;
15872
+ }
15873
+ /**
15874
+ @internal
15875
+ */
15876
+ reset(pos, token) {
15877
+ if (token) {
15878
+ this.token = token;
15879
+ token.start = pos;
15880
+ token.lookAhead = pos + 1;
15881
+ token.value = token.extended = -1;
15882
+ } else {
15883
+ this.token = nullToken;
15884
+ }
15885
+ if (this.pos != pos) {
15886
+ this.pos = pos;
15887
+ if (pos == this.end) {
15888
+ this.setDone();
15889
+ return this;
15890
+ }
15891
+ while (pos < this.range.from)
15892
+ this.range = this.ranges[--this.rangeIndex];
15893
+ while (pos >= this.range.to)
15894
+ this.range = this.ranges[++this.rangeIndex];
15895
+ if (pos >= this.chunkPos && pos < this.chunkPos + this.chunk.length) {
15896
+ this.chunkOff = pos - this.chunkPos;
15897
+ } else {
15898
+ this.chunk = "";
15899
+ this.chunkOff = 0;
15900
+ }
15901
+ this.readNext();
15902
+ }
15903
+ return this;
15904
+ }
15905
+ /**
15906
+ @internal
15907
+ */
15908
+ read(from, to) {
15909
+ if (from >= this.chunkPos && to <= this.chunkPos + this.chunk.length)
15910
+ return this.chunk.slice(from - this.chunkPos, to - this.chunkPos);
15911
+ if (from >= this.chunk2Pos && to <= this.chunk2Pos + this.chunk2.length)
15912
+ return this.chunk2.slice(from - this.chunk2Pos, to - this.chunk2Pos);
15913
+ if (from >= this.range.from && to <= this.range.to)
15914
+ return this.input.read(from, to);
15915
+ let result = "";
15916
+ for (let r of this.ranges) {
15917
+ if (r.from >= to)
15918
+ break;
15919
+ if (r.to > from)
15920
+ result += this.input.read(Math.max(r.from, from), Math.min(r.to, to));
15921
+ }
15922
+ return result;
15923
+ }
15924
+ }
15925
+ class TokenGroup {
15926
+ constructor(data, id2) {
15927
+ this.data = data;
15928
+ this.id = id2;
15929
+ }
15930
+ token(input, stack) {
15931
+ let { parser: parser2 } = stack.p;
15932
+ readToken(this.data, input, stack, this.id, parser2.data, parser2.tokenPrecTable);
15933
+ }
15934
+ }
15935
+ TokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;
15936
+ TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;
15937
+ class ExternalTokenizer {
15938
+ /**
15939
+ Create a tokenizer. The first argument is the function that,
15940
+ given an input stream, scans for the types of tokens it
15941
+ recognizes at the stream's position, and calls
15942
+ [`acceptToken`](#lr.InputStream.acceptToken) when it finds
15943
+ one.
15944
+ */
15945
+ constructor(token, options = {}) {
15946
+ this.token = token;
15947
+ this.contextual = !!options.contextual;
15948
+ this.fallback = !!options.fallback;
15949
+ this.extend = !!options.extend;
15950
+ }
15951
+ }
15952
+ function readToken(data, input, stack, group, precTable, precOffset) {
15953
+ let state2 = 0, groupMask = 1 << group, { dialect } = stack.p.parser;
15954
+ scan:
15955
+ for (; ; ) {
15956
+ if ((groupMask & data[state2]) == 0)
15957
+ break;
15958
+ let accEnd = data[state2 + 1];
15959
+ for (let i2 = state2 + 3; i2 < accEnd; i2 += 2)
15960
+ if ((data[i2 + 1] & groupMask) > 0) {
15961
+ let term = data[i2];
15962
+ if (dialect.allows(term) && (input.token.value == -1 || input.token.value == term || overrides(term, input.token.value, precTable, precOffset))) {
15963
+ input.acceptToken(term);
15964
+ break;
15965
+ }
15966
+ }
15967
+ let next = input.next, low = 0, high = data[state2 + 2];
15968
+ if (input.next < 0 && high > low && data[accEnd + high * 3 - 3] == 65535) {
15969
+ state2 = data[accEnd + high * 3 - 1];
15970
+ continue scan;
15971
+ }
15972
+ for (; low < high; ) {
15973
+ let mid = low + high >> 1;
15974
+ let index = accEnd + mid + (mid << 1);
15975
+ let from = data[index], to = data[index + 1] || 65536;
15976
+ if (next < from)
15977
+ high = mid;
15978
+ else if (next >= to)
15979
+ low = mid + 1;
15980
+ else {
15981
+ state2 = data[index + 2];
15982
+ input.advance();
15983
+ continue scan;
15984
+ }
15985
+ }
15986
+ break;
15987
+ }
15988
+ }
15989
+ function findOffset(data, start2, term) {
15990
+ for (let i2 = start2, next; (next = data[i2]) != 65535; i2++)
15991
+ if (next == term)
15992
+ return i2 - start2;
15993
+ return -1;
15994
+ }
15995
+ function overrides(token, prev, tableData, tableOffset) {
15996
+ let iPrev = findOffset(tableData, tableOffset, prev);
15997
+ return iPrev < 0 || findOffset(tableData, tableOffset, token) < iPrev;
15998
+ }
15999
+ const verbose = typeof process != "undefined" && process.env && /\bparse\b/.test({}.LOG);
16000
+ let stackIDs = null;
16001
+ function cutAt(tree, pos, side) {
16002
+ let cursor2 = tree.cursor(IterMode.IncludeAnonymous);
16003
+ cursor2.moveTo(pos);
16004
+ for (; ; ) {
16005
+ if (!(side < 0 ? cursor2.childBefore(pos) : cursor2.childAfter(pos)))
16006
+ for (; ; ) {
16007
+ if ((side < 0 ? cursor2.to < pos : cursor2.from > pos) && !cursor2.type.isError)
16008
+ return side < 0 ? Math.max(0, Math.min(
16009
+ cursor2.to - 1,
16010
+ pos - 25
16011
+ /* Lookahead.Margin */
16012
+ )) : Math.min(tree.length, Math.max(
16013
+ cursor2.from + 1,
16014
+ pos + 25
16015
+ /* Lookahead.Margin */
16016
+ ));
16017
+ if (side < 0 ? cursor2.prevSibling() : cursor2.nextSibling())
16018
+ break;
16019
+ if (!cursor2.parent())
16020
+ return side < 0 ? 0 : tree.length;
16021
+ }
16022
+ }
16023
+ }
16024
+ class FragmentCursor {
16025
+ constructor(fragments, nodeSet) {
16026
+ this.fragments = fragments;
16027
+ this.nodeSet = nodeSet;
16028
+ this.i = 0;
16029
+ this.fragment = null;
16030
+ this.safeFrom = -1;
16031
+ this.safeTo = -1;
16032
+ this.trees = [];
16033
+ this.start = [];
16034
+ this.index = [];
16035
+ this.nextFragment();
16036
+ }
16037
+ nextFragment() {
16038
+ let fr = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];
16039
+ if (fr) {
16040
+ this.safeFrom = fr.openStart ? cutAt(fr.tree, fr.from + fr.offset, 1) - fr.offset : fr.from;
16041
+ this.safeTo = fr.openEnd ? cutAt(fr.tree, fr.to + fr.offset, -1) - fr.offset : fr.to;
16042
+ while (this.trees.length) {
16043
+ this.trees.pop();
16044
+ this.start.pop();
16045
+ this.index.pop();
16046
+ }
16047
+ this.trees.push(fr.tree);
16048
+ this.start.push(-fr.offset);
16049
+ this.index.push(0);
16050
+ this.nextStart = this.safeFrom;
16051
+ } else {
16052
+ this.nextStart = 1e9;
16053
+ }
16054
+ }
16055
+ // `pos` must be >= any previously given `pos` for this cursor
16056
+ nodeAt(pos) {
16057
+ if (pos < this.nextStart)
16058
+ return null;
16059
+ while (this.fragment && this.safeTo <= pos)
16060
+ this.nextFragment();
16061
+ if (!this.fragment)
16062
+ return null;
16063
+ for (; ; ) {
16064
+ let last2 = this.trees.length - 1;
16065
+ if (last2 < 0) {
16066
+ this.nextFragment();
16067
+ return null;
16068
+ }
16069
+ let top = this.trees[last2], index = this.index[last2];
16070
+ if (index == top.children.length) {
16071
+ this.trees.pop();
16072
+ this.start.pop();
16073
+ this.index.pop();
16074
+ continue;
16075
+ }
16076
+ let next = top.children[index];
16077
+ let start2 = this.start[last2] + top.positions[index];
16078
+ if (start2 > pos) {
16079
+ this.nextStart = start2;
16080
+ return null;
16081
+ }
16082
+ if (next instanceof Tree) {
16083
+ if (start2 == pos) {
16084
+ if (start2 < this.safeFrom)
16085
+ return null;
16086
+ let end = start2 + next.length;
16087
+ if (end <= this.safeTo) {
16088
+ let lookAhead = next.prop(NodeProp.lookAhead);
16089
+ if (!lookAhead || end + lookAhead < this.fragment.to)
16090
+ return next;
16091
+ }
16092
+ }
16093
+ this.index[last2]++;
16094
+ if (start2 + next.length >= Math.max(this.safeFrom, pos)) {
16095
+ this.trees.push(next);
16096
+ this.start.push(start2);
16097
+ this.index.push(0);
16098
+ }
16099
+ } else {
16100
+ this.index[last2]++;
16101
+ this.nextStart = start2 + next.length;
16102
+ }
16103
+ }
16104
+ }
16105
+ }
16106
+ class TokenCache {
16107
+ constructor(parser2, stream) {
16108
+ this.stream = stream;
16109
+ this.tokens = [];
16110
+ this.mainToken = null;
16111
+ this.actions = [];
16112
+ this.tokens = parser2.tokenizers.map((_2) => new CachedToken());
16113
+ }
16114
+ getActions(stack) {
16115
+ let actionIndex = 0;
16116
+ let main = null;
16117
+ let { parser: parser2 } = stack.p, { tokenizers } = parser2;
16118
+ let mask = parser2.stateSlot(
16119
+ stack.state,
16120
+ 3
16121
+ /* ParseState.TokenizerMask */
16122
+ );
16123
+ let context = stack.curContext ? stack.curContext.hash : 0;
16124
+ let lookAhead = 0;
16125
+ for (let i2 = 0; i2 < tokenizers.length; i2++) {
16126
+ if ((1 << i2 & mask) == 0)
16127
+ continue;
16128
+ let tokenizer = tokenizers[i2], token = this.tokens[i2];
16129
+ if (main && !tokenizer.fallback)
16130
+ continue;
16131
+ if (tokenizer.contextual || token.start != stack.pos || token.mask != mask || token.context != context) {
16132
+ this.updateCachedToken(token, tokenizer, stack);
16133
+ token.mask = mask;
16134
+ token.context = context;
16135
+ }
16136
+ if (token.lookAhead > token.end + 25)
16137
+ lookAhead = Math.max(token.lookAhead, lookAhead);
16138
+ if (token.value != 0) {
16139
+ let startIndex = actionIndex;
16140
+ if (token.extended > -1)
16141
+ actionIndex = this.addActions(stack, token.extended, token.end, actionIndex);
16142
+ actionIndex = this.addActions(stack, token.value, token.end, actionIndex);
16143
+ if (!tokenizer.extend) {
16144
+ main = token;
16145
+ if (actionIndex > startIndex)
16146
+ break;
16147
+ }
16148
+ }
16149
+ }
16150
+ while (this.actions.length > actionIndex)
16151
+ this.actions.pop();
16152
+ if (lookAhead)
16153
+ stack.setLookAhead(lookAhead);
16154
+ if (!main && stack.pos == this.stream.end) {
16155
+ main = new CachedToken();
16156
+ main.value = stack.p.parser.eofTerm;
16157
+ main.start = main.end = stack.pos;
16158
+ actionIndex = this.addActions(stack, main.value, main.end, actionIndex);
16159
+ }
16160
+ this.mainToken = main;
16161
+ return this.actions;
16162
+ }
16163
+ getMainToken(stack) {
16164
+ if (this.mainToken)
16165
+ return this.mainToken;
16166
+ let main = new CachedToken(), { pos, p } = stack;
16167
+ main.start = pos;
16168
+ main.end = Math.min(pos + 1, p.stream.end);
16169
+ main.value = pos == p.stream.end ? p.parser.eofTerm : 0;
16170
+ return main;
16171
+ }
16172
+ updateCachedToken(token, tokenizer, stack) {
16173
+ let start2 = this.stream.clipPos(stack.pos);
16174
+ tokenizer.token(this.stream.reset(start2, token), stack);
16175
+ if (token.value > -1) {
16176
+ let { parser: parser2 } = stack.p;
16177
+ for (let i2 = 0; i2 < parser2.specialized.length; i2++)
16178
+ if (parser2.specialized[i2] == token.value) {
16179
+ let result = parser2.specializers[i2](this.stream.read(token.start, token.end), stack);
16180
+ if (result >= 0 && stack.p.parser.dialect.allows(result >> 1)) {
16181
+ if ((result & 1) == 0)
16182
+ token.value = result >> 1;
16183
+ else
16184
+ token.extended = result >> 1;
16185
+ break;
16186
+ }
16187
+ }
16188
+ } else {
16189
+ token.value = 0;
16190
+ token.end = this.stream.clipPos(start2 + 1);
16191
+ }
16192
+ }
16193
+ putAction(action, token, end, index) {
16194
+ for (let i2 = 0; i2 < index; i2 += 3)
16195
+ if (this.actions[i2] == action)
16196
+ return index;
16197
+ this.actions[index++] = action;
16198
+ this.actions[index++] = token;
16199
+ this.actions[index++] = end;
16200
+ return index;
16201
+ }
16202
+ addActions(stack, token, end, index) {
16203
+ let { state: state2 } = stack, { parser: parser2 } = stack.p, { data } = parser2;
16204
+ for (let set2 = 0; set2 < 2; set2++) {
16205
+ for (let i2 = parser2.stateSlot(
16206
+ state2,
16207
+ set2 ? 2 : 1
16208
+ /* ParseState.Actions */
16209
+ ); ; i2 += 3) {
16210
+ if (data[i2] == 65535) {
16211
+ if (data[i2 + 1] == 1) {
16212
+ i2 = pair(data, i2 + 2);
16213
+ } else {
16214
+ if (index == 0 && data[i2 + 1] == 2)
16215
+ index = this.putAction(pair(data, i2 + 2), token, end, index);
16216
+ break;
16217
+ }
16218
+ }
16219
+ if (data[i2] == token)
16220
+ index = this.putAction(pair(data, i2 + 1), token, end, index);
16221
+ }
16222
+ }
16223
+ return index;
16224
+ }
16225
+ }
16226
+ class Parse {
16227
+ constructor(parser2, input, fragments, ranges) {
16228
+ this.parser = parser2;
16229
+ this.input = input;
16230
+ this.ranges = ranges;
16231
+ this.recovering = 0;
16232
+ this.nextStackID = 9812;
16233
+ this.minStackPos = 0;
16234
+ this.reused = [];
16235
+ this.stoppedAt = null;
16236
+ this.lastBigReductionStart = -1;
16237
+ this.lastBigReductionSize = 0;
16238
+ this.bigReductionCount = 0;
16239
+ this.stream = new InputStream(input, ranges);
16240
+ this.tokens = new TokenCache(parser2, this.stream);
16241
+ this.topTerm = parser2.top[1];
16242
+ let { from } = ranges[0];
16243
+ this.stacks = [Stack.start(this, parser2.top[0], from)];
16244
+ this.fragments = fragments.length && this.stream.end - from > parser2.bufferLength * 4 ? new FragmentCursor(fragments, parser2.nodeSet) : null;
16245
+ }
16246
+ get parsedPos() {
16247
+ return this.minStackPos;
16248
+ }
16249
+ // Move the parser forward. This will process all parse stacks at
16250
+ // `this.pos` and try to advance them to a further position. If no
16251
+ // stack for such a position is found, it'll start error-recovery.
16252
+ //
16253
+ // When the parse is finished, this will return a syntax tree. When
16254
+ // not, it returns `null`.
16255
+ advance() {
16256
+ let stacks = this.stacks, pos = this.minStackPos;
16257
+ let newStacks = this.stacks = [];
16258
+ let stopped, stoppedTokens;
16259
+ if (this.bigReductionCount > 300 && stacks.length == 1) {
16260
+ let [s3] = stacks;
16261
+ while (s3.forceReduce() && s3.stack.length && s3.stack[s3.stack.length - 2] >= this.lastBigReductionStart) {
16262
+ }
16263
+ this.bigReductionCount = this.lastBigReductionSize = 0;
16264
+ }
16265
+ for (let i2 = 0; i2 < stacks.length; i2++) {
16266
+ let stack = stacks[i2];
16267
+ for (; ; ) {
16268
+ this.tokens.mainToken = null;
16269
+ if (stack.pos > pos) {
16270
+ newStacks.push(stack);
16271
+ } else if (this.advanceStack(stack, newStacks, stacks)) {
16272
+ continue;
16273
+ } else {
16274
+ if (!stopped) {
16275
+ stopped = [];
16276
+ stoppedTokens = [];
16277
+ }
16278
+ stopped.push(stack);
16279
+ let tok = this.tokens.getMainToken(stack);
16280
+ stoppedTokens.push(tok.value, tok.end);
16281
+ }
16282
+ break;
16283
+ }
16284
+ }
16285
+ if (!newStacks.length) {
16286
+ let finished = stopped && findFinished(stopped);
16287
+ if (finished) {
16288
+ if (verbose)
16289
+ console.log("Finish with " + this.stackID(finished));
16290
+ return this.stackToTree(finished);
16291
+ }
16292
+ if (this.parser.strict) {
16293
+ if (verbose && stopped)
16294
+ console.log("Stuck with token " + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : "none"));
16295
+ throw new SyntaxError("No parse at " + pos);
16296
+ }
16297
+ if (!this.recovering)
16298
+ this.recovering = 5;
16299
+ }
16300
+ if (this.recovering && stopped) {
16301
+ let finished = this.stoppedAt != null && stopped[0].pos > this.stoppedAt ? stopped[0] : this.runRecovery(stopped, stoppedTokens, newStacks);
16302
+ if (finished) {
16303
+ if (verbose)
16304
+ console.log("Force-finish " + this.stackID(finished));
16305
+ return this.stackToTree(finished.forceAll());
16306
+ }
16307
+ }
16308
+ if (this.recovering) {
16309
+ let maxRemaining = this.recovering == 1 ? 1 : this.recovering * 3;
16310
+ if (newStacks.length > maxRemaining) {
16311
+ newStacks.sort((a3, b2) => b2.score - a3.score);
16312
+ while (newStacks.length > maxRemaining)
16313
+ newStacks.pop();
16314
+ }
16315
+ if (newStacks.some((s3) => s3.reducePos > pos))
16316
+ this.recovering--;
16317
+ } else if (newStacks.length > 1) {
16318
+ outer:
16319
+ for (let i2 = 0; i2 < newStacks.length - 1; i2++) {
16320
+ let stack = newStacks[i2];
16321
+ for (let j = i2 + 1; j < newStacks.length; j++) {
16322
+ let other = newStacks[j];
16323
+ if (stack.sameState(other) || stack.buffer.length > 500 && other.buffer.length > 500) {
16324
+ if ((stack.score - other.score || stack.buffer.length - other.buffer.length) > 0) {
16325
+ newStacks.splice(j--, 1);
16326
+ } else {
16327
+ newStacks.splice(i2--, 1);
16328
+ continue outer;
16329
+ }
16330
+ }
16331
+ }
16332
+ }
16333
+ if (newStacks.length > 12)
16334
+ newStacks.splice(
16335
+ 12,
16336
+ newStacks.length - 12
16337
+ /* Rec.MaxStackCount */
16338
+ );
16339
+ }
16340
+ this.minStackPos = newStacks[0].pos;
16341
+ for (let i2 = 1; i2 < newStacks.length; i2++)
16342
+ if (newStacks[i2].pos < this.minStackPos)
16343
+ this.minStackPos = newStacks[i2].pos;
16344
+ return null;
16345
+ }
16346
+ stopAt(pos) {
16347
+ if (this.stoppedAt != null && this.stoppedAt < pos)
16348
+ throw new RangeError("Can't move stoppedAt forward");
16349
+ this.stoppedAt = pos;
16350
+ }
16351
+ // Returns an updated version of the given stack, or null if the
16352
+ // stack can't advance normally. When `split` and `stacks` are
16353
+ // given, stacks split off by ambiguous operations will be pushed to
16354
+ // `split`, or added to `stacks` if they move `pos` forward.
16355
+ advanceStack(stack, stacks, split) {
16356
+ let start2 = stack.pos, { parser: parser2 } = this;
16357
+ let base = verbose ? this.stackID(stack) + " -> " : "";
16358
+ if (this.stoppedAt != null && start2 > this.stoppedAt)
16359
+ return stack.forceReduce() ? stack : null;
16360
+ if (this.fragments) {
16361
+ let strictCx = stack.curContext && stack.curContext.tracker.strict, cxHash = strictCx ? stack.curContext.hash : 0;
16362
+ for (let cached = this.fragments.nodeAt(start2); cached; ) {
16363
+ let match2 = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser2.getGoto(stack.state, cached.type.id) : -1;
16364
+ if (match2 > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {
16365
+ stack.useNode(cached, match2);
16366
+ if (verbose)
16367
+ console.log(base + this.stackID(stack) + ` (via reuse of ${parser2.getName(cached.type.id)})`);
16368
+ return true;
16369
+ }
16370
+ if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)
16371
+ break;
16372
+ let inner = cached.children[0];
16373
+ if (inner instanceof Tree && cached.positions[0] == 0)
16374
+ cached = inner;
16375
+ else
16376
+ break;
16377
+ }
16378
+ }
16379
+ let defaultReduce = parser2.stateSlot(
16380
+ stack.state,
16381
+ 4
16382
+ /* ParseState.DefaultReduce */
16383
+ );
16384
+ if (defaultReduce > 0) {
16385
+ stack.reduce(defaultReduce);
16386
+ if (verbose)
16387
+ console.log(base + this.stackID(stack) + ` (via always-reduce ${parser2.getName(
16388
+ defaultReduce & 65535
16389
+ /* Action.ValueMask */
16390
+ )})`);
16391
+ return true;
16392
+ }
16393
+ if (stack.stack.length >= 8400) {
16394
+ while (stack.stack.length > 6e3 && stack.forceReduce()) {
16395
+ }
16396
+ }
16397
+ let actions = this.tokens.getActions(stack);
16398
+ for (let i2 = 0; i2 < actions.length; ) {
16399
+ let action = actions[i2++], term = actions[i2++], end = actions[i2++];
16400
+ let last2 = i2 == actions.length || !split;
16401
+ let localStack = last2 ? stack : stack.split();
16402
+ let main = this.tokens.mainToken;
16403
+ localStack.apply(action, term, main ? main.start : localStack.pos, end);
16404
+ if (verbose)
16405
+ console.log(base + this.stackID(localStack) + ` (via ${(action & 65536) == 0 ? "shift" : `reduce of ${parser2.getName(
16406
+ action & 65535
16407
+ /* Action.ValueMask */
16408
+ )}`} for ${parser2.getName(term)} @ ${start2}${localStack == stack ? "" : ", split"})`);
16409
+ if (last2)
16410
+ return true;
16411
+ else if (localStack.pos > start2)
16412
+ stacks.push(localStack);
16413
+ else
16414
+ split.push(localStack);
16415
+ }
16416
+ return false;
16417
+ }
16418
+ // Advance a given stack forward as far as it will go. Returns the
16419
+ // (possibly updated) stack if it got stuck, or null if it moved
16420
+ // forward and was given to `pushStackDedup`.
16421
+ advanceFully(stack, newStacks) {
16422
+ let pos = stack.pos;
16423
+ for (; ; ) {
16424
+ if (!this.advanceStack(stack, null, null))
16425
+ return false;
16426
+ if (stack.pos > pos) {
16427
+ pushStackDedup(stack, newStacks);
16428
+ return true;
16429
+ }
16430
+ }
16431
+ }
16432
+ runRecovery(stacks, tokens, newStacks) {
16433
+ let finished = null, restarted = false;
16434
+ for (let i2 = 0; i2 < stacks.length; i2++) {
16435
+ let stack = stacks[i2], token = tokens[i2 << 1], tokenEnd = tokens[(i2 << 1) + 1];
16436
+ let base = verbose ? this.stackID(stack) + " -> " : "";
16437
+ if (stack.deadEnd) {
16438
+ if (restarted)
16439
+ continue;
16440
+ restarted = true;
16441
+ stack.restart();
16442
+ if (verbose)
16443
+ console.log(base + this.stackID(stack) + " (restarted)");
16444
+ let done = this.advanceFully(stack, newStacks);
16445
+ if (done)
16446
+ continue;
16447
+ }
16448
+ let force = stack.split(), forceBase = base;
16449
+ for (let j = 0; force.forceReduce() && j < 10; j++) {
16450
+ if (verbose)
16451
+ console.log(forceBase + this.stackID(force) + " (via force-reduce)");
16452
+ let done = this.advanceFully(force, newStacks);
16453
+ if (done)
16454
+ break;
16455
+ if (verbose)
16456
+ forceBase = this.stackID(force) + " -> ";
16457
+ }
16458
+ for (let insert of stack.recoverByInsert(token)) {
16459
+ if (verbose)
16460
+ console.log(base + this.stackID(insert) + " (via recover-insert)");
16461
+ this.advanceFully(insert, newStacks);
16462
+ }
16463
+ if (this.stream.end > stack.pos) {
16464
+ if (tokenEnd == stack.pos) {
16465
+ tokenEnd++;
16466
+ token = 0;
16467
+ }
16468
+ stack.recoverByDelete(token, tokenEnd);
16469
+ if (verbose)
16470
+ console.log(base + this.stackID(stack) + ` (via recover-delete ${this.parser.getName(token)})`);
16471
+ pushStackDedup(stack, newStacks);
16472
+ } else if (!finished || finished.score < stack.score) {
16473
+ finished = stack;
16474
+ }
16475
+ }
16476
+ return finished;
16477
+ }
16478
+ // Convert the stack's buffer to a syntax tree.
16479
+ stackToTree(stack) {
16480
+ stack.close();
16481
+ return Tree.build({
16482
+ buffer: StackBufferCursor.create(stack),
16483
+ nodeSet: this.parser.nodeSet,
16484
+ topID: this.topTerm,
16485
+ maxBufferLength: this.parser.bufferLength,
16486
+ reused: this.reused,
16487
+ start: this.ranges[0].from,
16488
+ length: stack.pos - this.ranges[0].from,
16489
+ minRepeatType: this.parser.minRepeatTerm
16490
+ });
16491
+ }
16492
+ stackID(stack) {
16493
+ let id2 = (stackIDs || (stackIDs = /* @__PURE__ */ new WeakMap())).get(stack);
16494
+ if (!id2)
16495
+ stackIDs.set(stack, id2 = String.fromCodePoint(this.nextStackID++));
16496
+ return id2 + stack;
16497
+ }
16498
+ }
16499
+ function pushStackDedup(stack, newStacks) {
16500
+ for (let i2 = 0; i2 < newStacks.length; i2++) {
16501
+ let other = newStacks[i2];
16502
+ if (other.pos == stack.pos && other.sameState(stack)) {
16503
+ if (newStacks[i2].score < stack.score)
16504
+ newStacks[i2] = stack;
16505
+ return;
16506
+ }
16507
+ }
16508
+ newStacks.push(stack);
16509
+ }
16510
+ class Dialect {
16511
+ constructor(source, flags, disabled) {
16512
+ this.source = source;
16513
+ this.flags = flags;
16514
+ this.disabled = disabled;
16515
+ }
16516
+ allows(term) {
16517
+ return !this.disabled || this.disabled[term] == 0;
16518
+ }
16519
+ }
16520
+ const id = (x2) => x2;
16521
+ class ContextTracker {
16522
+ /**
16523
+ Define a context tracker.
16524
+ */
16525
+ constructor(spec) {
16526
+ this.start = spec.start;
16527
+ this.shift = spec.shift || id;
16528
+ this.reduce = spec.reduce || id;
16529
+ this.reuse = spec.reuse || id;
16530
+ this.hash = spec.hash || (() => 0);
16531
+ this.strict = spec.strict !== false;
16532
+ }
16533
+ }
16534
+ class LRParser extends Parser {
16535
+ /**
16536
+ @internal
16537
+ */
16538
+ constructor(spec) {
16539
+ super();
16540
+ this.wrappers = [];
16541
+ if (spec.version != 14)
16542
+ throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14})`);
16543
+ let nodeNames = spec.nodeNames.split(" ");
16544
+ this.minRepeatTerm = nodeNames.length;
16545
+ for (let i2 = 0; i2 < spec.repeatNodeCount; i2++)
16546
+ nodeNames.push("");
16547
+ let topTerms = Object.keys(spec.topRules).map((r) => spec.topRules[r][1]);
16548
+ let nodeProps = [];
16549
+ for (let i2 = 0; i2 < nodeNames.length; i2++)
16550
+ nodeProps.push([]);
16551
+ function setProp(nodeID, prop, value) {
16552
+ nodeProps[nodeID].push([prop, prop.deserialize(String(value))]);
16553
+ }
16554
+ if (spec.nodeProps)
16555
+ for (let propSpec of spec.nodeProps) {
16556
+ let prop = propSpec[0];
16557
+ if (typeof prop == "string")
16558
+ prop = NodeProp[prop];
16559
+ for (let i2 = 1; i2 < propSpec.length; ) {
16560
+ let next = propSpec[i2++];
16561
+ if (next >= 0) {
16562
+ setProp(next, prop, propSpec[i2++]);
16563
+ } else {
16564
+ let value = propSpec[i2 + -next];
16565
+ for (let j = -next; j > 0; j--)
16566
+ setProp(propSpec[i2++], prop, value);
16567
+ i2++;
16568
+ }
16569
+ }
16570
+ }
16571
+ this.nodeSet = new NodeSet(nodeNames.map((name, i2) => NodeType.define({
16572
+ name: i2 >= this.minRepeatTerm ? void 0 : name,
16573
+ id: i2,
16574
+ props: nodeProps[i2],
16575
+ top: topTerms.indexOf(i2) > -1,
16576
+ error: i2 == 0,
16577
+ skipped: spec.skippedNodes && spec.skippedNodes.indexOf(i2) > -1
16578
+ })));
16579
+ if (spec.propSources)
16580
+ this.nodeSet = this.nodeSet.extend(...spec.propSources);
16581
+ this.strict = false;
16582
+ this.bufferLength = DefaultBufferLength;
16583
+ let tokenArray = decodeArray(spec.tokenData);
16584
+ this.context = spec.context;
16585
+ this.specializerSpecs = spec.specialized || [];
16586
+ this.specialized = new Uint16Array(this.specializerSpecs.length);
16587
+ for (let i2 = 0; i2 < this.specializerSpecs.length; i2++)
16588
+ this.specialized[i2] = this.specializerSpecs[i2].term;
16589
+ this.specializers = this.specializerSpecs.map(getSpecializer);
16590
+ this.states = decodeArray(spec.states, Uint32Array);
16591
+ this.data = decodeArray(spec.stateData);
16592
+ this.goto = decodeArray(spec.goto);
16593
+ this.maxTerm = spec.maxTerm;
16594
+ this.tokenizers = spec.tokenizers.map((value) => typeof value == "number" ? new TokenGroup(tokenArray, value) : value);
16595
+ this.topRules = spec.topRules;
16596
+ this.dialects = spec.dialects || {};
16597
+ this.dynamicPrecedences = spec.dynamicPrecedences || null;
16598
+ this.tokenPrecTable = spec.tokenPrec;
16599
+ this.termNames = spec.termNames || null;
16600
+ this.maxNode = this.nodeSet.types.length - 1;
16601
+ this.dialect = this.parseDialect();
16602
+ this.top = this.topRules[Object.keys(this.topRules)[0]];
16603
+ }
16604
+ createParse(input, fragments, ranges) {
16605
+ let parse2 = new Parse(this, input, fragments, ranges);
16606
+ for (let w2 of this.wrappers)
16607
+ parse2 = w2(parse2, input, fragments, ranges);
16608
+ return parse2;
16609
+ }
16610
+ /**
16611
+ Get a goto table entry @internal
16612
+ */
16613
+ getGoto(state2, term, loose = false) {
16614
+ let table = this.goto;
16615
+ if (term >= table[0])
16616
+ return -1;
16617
+ for (let pos = table[term + 1]; ; ) {
16618
+ let groupTag = table[pos++], last2 = groupTag & 1;
16619
+ let target = table[pos++];
16620
+ if (last2 && loose)
16621
+ return target;
16622
+ for (let end = pos + (groupTag >> 1); pos < end; pos++)
16623
+ if (table[pos] == state2)
16624
+ return target;
16625
+ if (last2)
16626
+ return -1;
16627
+ }
16628
+ }
16629
+ /**
16630
+ Check if this state has an action for a given terminal @internal
16631
+ */
16632
+ hasAction(state2, terminal) {
16633
+ let data = this.data;
16634
+ for (let set2 = 0; set2 < 2; set2++) {
16635
+ for (let i2 = this.stateSlot(
16636
+ state2,
16637
+ set2 ? 2 : 1
16638
+ /* ParseState.Actions */
16639
+ ), next; ; i2 += 3) {
16640
+ if ((next = data[i2]) == 65535) {
16641
+ if (data[i2 + 1] == 1)
16642
+ next = data[i2 = pair(data, i2 + 2)];
16643
+ else if (data[i2 + 1] == 2)
16644
+ return pair(data, i2 + 2);
16645
+ else
16646
+ break;
16647
+ }
16648
+ if (next == terminal || next == 0)
16649
+ return pair(data, i2 + 1);
16650
+ }
16651
+ }
16652
+ return 0;
16653
+ }
16654
+ /**
16655
+ @internal
16656
+ */
16657
+ stateSlot(state2, slot) {
16658
+ return this.states[state2 * 6 + slot];
16659
+ }
16660
+ /**
16661
+ @internal
16662
+ */
16663
+ stateFlag(state2, flag) {
16664
+ return (this.stateSlot(
16665
+ state2,
16666
+ 0
16667
+ /* ParseState.Flags */
16668
+ ) & flag) > 0;
16669
+ }
16670
+ /**
16671
+ @internal
16672
+ */
16673
+ validAction(state2, action) {
16674
+ return !!this.allActions(state2, (a3) => a3 == action ? true : null);
16675
+ }
16676
+ /**
16677
+ @internal
16678
+ */
16679
+ allActions(state2, action) {
16680
+ let deflt = this.stateSlot(
16681
+ state2,
16682
+ 4
16683
+ /* ParseState.DefaultReduce */
16684
+ );
16685
+ let result = deflt ? action(deflt) : void 0;
16686
+ for (let i2 = this.stateSlot(
16687
+ state2,
16688
+ 1
16689
+ /* ParseState.Actions */
16690
+ ); result == null; i2 += 3) {
16691
+ if (this.data[i2] == 65535) {
16692
+ if (this.data[i2 + 1] == 1)
16693
+ i2 = pair(this.data, i2 + 2);
16694
+ else
16695
+ break;
16696
+ }
16697
+ result = action(pair(this.data, i2 + 1));
16698
+ }
16699
+ return result;
16700
+ }
16701
+ /**
16702
+ Get the states that can follow this one through shift actions or
16703
+ goto jumps. @internal
16704
+ */
16705
+ nextStates(state2) {
16706
+ let result = [];
16707
+ for (let i2 = this.stateSlot(
16708
+ state2,
16709
+ 1
16710
+ /* ParseState.Actions */
16711
+ ); ; i2 += 3) {
16712
+ if (this.data[i2] == 65535) {
16713
+ if (this.data[i2 + 1] == 1)
16714
+ i2 = pair(this.data, i2 + 2);
16715
+ else
16716
+ break;
16717
+ }
16718
+ if ((this.data[i2 + 2] & 65536 >> 16) == 0) {
16719
+ let value = this.data[i2 + 1];
16720
+ if (!result.some((v, i3) => i3 & 1 && v == value))
16721
+ result.push(this.data[i2], value);
16722
+ }
16723
+ }
16724
+ return result;
16725
+ }
16726
+ /**
16727
+ Configure the parser. Returns a new parser instance that has the
16728
+ given settings modified. Settings not provided in `config` are
16729
+ kept from the original parser.
16730
+ */
16731
+ configure(config) {
16732
+ let copy = Object.assign(Object.create(LRParser.prototype), this);
16733
+ if (config.props)
16734
+ copy.nodeSet = this.nodeSet.extend(...config.props);
16735
+ if (config.top) {
16736
+ let info = this.topRules[config.top];
16737
+ if (!info)
16738
+ throw new RangeError(`Invalid top rule name ${config.top}`);
16739
+ copy.top = info;
16740
+ }
16741
+ if (config.tokenizers)
16742
+ copy.tokenizers = this.tokenizers.map((t2) => {
16743
+ let found = config.tokenizers.find((r) => r.from == t2);
16744
+ return found ? found.to : t2;
16745
+ });
16746
+ if (config.specializers) {
16747
+ copy.specializers = this.specializers.slice();
16748
+ copy.specializerSpecs = this.specializerSpecs.map((s3, i2) => {
16749
+ let found = config.specializers.find((r) => r.from == s3.external);
16750
+ if (!found)
16751
+ return s3;
16752
+ let spec = Object.assign(Object.assign({}, s3), { external: found.to });
16753
+ copy.specializers[i2] = getSpecializer(spec);
16754
+ return spec;
16755
+ });
16756
+ }
16757
+ if (config.contextTracker)
16758
+ copy.context = config.contextTracker;
16759
+ if (config.dialect)
16760
+ copy.dialect = this.parseDialect(config.dialect);
16761
+ if (config.strict != null)
16762
+ copy.strict = config.strict;
16763
+ if (config.wrap)
16764
+ copy.wrappers = copy.wrappers.concat(config.wrap);
16765
+ if (config.bufferLength != null)
16766
+ copy.bufferLength = config.bufferLength;
16767
+ return copy;
16768
+ }
16769
+ /**
16770
+ Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)
16771
+ are registered for this parser.
16772
+ */
16773
+ hasWrappers() {
16774
+ return this.wrappers.length > 0;
16775
+ }
16776
+ /**
16777
+ Returns the name associated with a given term. This will only
16778
+ work for all terms when the parser was generated with the
16779
+ `--names` option. By default, only the names of tagged terms are
16780
+ stored.
16781
+ */
16782
+ getName(term) {
16783
+ return this.termNames ? this.termNames[term] : String(term <= this.maxNode && this.nodeSet.types[term].name || term);
16784
+ }
16785
+ /**
16786
+ The eof term id is always allocated directly after the node
16787
+ types. @internal
16788
+ */
16789
+ get eofTerm() {
16790
+ return this.maxNode + 1;
16791
+ }
16792
+ /**
16793
+ The type of top node produced by the parser.
16794
+ */
16795
+ get topNode() {
16796
+ return this.nodeSet.types[this.top[1]];
16797
+ }
16798
+ /**
16799
+ @internal
16800
+ */
16801
+ dynamicPrecedence(term) {
16802
+ let prec = this.dynamicPrecedences;
16803
+ return prec == null ? 0 : prec[term] || 0;
16804
+ }
16805
+ /**
16806
+ @internal
16807
+ */
16808
+ parseDialect(dialect) {
16809
+ let values2 = Object.keys(this.dialects), flags = values2.map(() => false);
16810
+ if (dialect)
16811
+ for (let part of dialect.split(" ")) {
16812
+ let id2 = values2.indexOf(part);
16813
+ if (id2 >= 0)
16814
+ flags[id2] = true;
16815
+ }
16816
+ let disabled = null;
16817
+ for (let i2 = 0; i2 < values2.length; i2++)
16818
+ if (!flags[i2]) {
16819
+ for (let j = this.dialects[values2[i2]], id2; (id2 = this.data[j++]) != 65535; )
16820
+ (disabled || (disabled = new Uint8Array(this.maxTerm + 1)))[id2] = 1;
16821
+ }
16822
+ return new Dialect(dialect, flags, disabled);
16823
+ }
16824
+ /**
16825
+ Used by the output of the parser generator. Not available to
16826
+ user code. @hide
16827
+ */
16828
+ static deserialize(spec) {
16829
+ return new LRParser(spec);
16830
+ }
16831
+ }
16832
+ function pair(data, off) {
16833
+ return data[off] | data[off + 1] << 16;
16834
+ }
16835
+ function findFinished(stacks) {
16836
+ let best = null;
16837
+ for (let stack of stacks) {
16838
+ let stopped = stack.p.stoppedAt;
16839
+ if ((stack.pos == stack.p.stream.end || stopped != null && stack.pos > stopped) && stack.p.parser.stateFlag(
16840
+ stack.state,
16841
+ 2
16842
+ /* StateFlag.Accepting */
16843
+ ) && (!best || best.score < stack.score))
16844
+ best = stack;
16845
+ }
16846
+ return best;
16847
+ }
16848
+ function getSpecializer(spec) {
16849
+ if (spec.external) {
16850
+ let mask = spec.extend ? 1 : 0;
16851
+ return (value, stack) => spec.external(value, stack) << 1 | mask;
16852
+ }
16853
+ return spec.get;
16854
+ }
16855
+ const printKeyword = 1, indent = 194, dedent = 195, newline$1 = 196, blankLineStart = 197, newlineBracketed = 198, eof = 199, stringContent = 200, Escape = 2, replacementStart = 3, stringEnd = 201, ParenL = 24, ParenthesizedExpression = 25, TupleExpression = 49, ComprehensionExpression = 50, BracketL = 55, ArrayExpression = 56, ArrayComprehensionExpression = 57, BraceL = 59, DictionaryExpression = 60, DictionaryComprehensionExpression = 61, SetExpression = 62, SetComprehensionExpression = 63, ArgList = 65, subscript = 238, String$1 = 71, stringStart = 241, stringStartD = 242, stringStartL = 243, stringStartLD = 244, stringStartR = 245, stringStartRD = 246, stringStartRL = 247, stringStartRLD = 248, FormatString = 72, stringStartF = 249, stringStartFD = 250, stringStartFL = 251, stringStartFLD = 252, stringStartFR = 253, stringStartFRD = 254, stringStartFRL = 255, stringStartFRLD = 256, FormatReplacement = 73, nestedFormatReplacement = 77, importList = 263, TypeParamList = 112, ParamList = 130, SequencePattern = 151, MappingPattern = 152, PatternArgList = 155;
16856
+ const newline = 10, carriageReturn = 13, space = 32, tab = 9, hash = 35, parenOpen = 40, dot = 46, braceOpen = 123, braceClose = 125, singleQuote = 39, doubleQuote = 34, backslash = 92, letter_o = 111, letter_x = 120, letter_N = 78, letter_u = 117, letter_U = 85;
16857
+ const bracketed = /* @__PURE__ */ new Set([
16858
+ ParenthesizedExpression,
16859
+ TupleExpression,
16860
+ ComprehensionExpression,
16861
+ importList,
16862
+ ArgList,
16863
+ ParamList,
16864
+ ArrayExpression,
16865
+ ArrayComprehensionExpression,
16866
+ subscript,
16867
+ SetExpression,
16868
+ SetComprehensionExpression,
16869
+ FormatString,
16870
+ FormatReplacement,
16871
+ nestedFormatReplacement,
16872
+ DictionaryExpression,
16873
+ DictionaryComprehensionExpression,
16874
+ SequencePattern,
16875
+ MappingPattern,
16876
+ PatternArgList,
16877
+ TypeParamList
16878
+ ]);
16879
+ function isLineBreak(ch) {
16880
+ return ch == newline || ch == carriageReturn;
16881
+ }
16882
+ function isHex(ch) {
16883
+ return ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102;
16884
+ }
16885
+ const newlines = new ExternalTokenizer((input, stack) => {
16886
+ let prev;
16887
+ if (input.next < 0) {
16888
+ input.acceptToken(eof);
16889
+ } else if (stack.context.flags & cx_Bracketed) {
16890
+ if (isLineBreak(input.next))
16891
+ input.acceptToken(newlineBracketed, 1);
16892
+ } else if (((prev = input.peek(-1)) < 0 || isLineBreak(prev)) && stack.canShift(blankLineStart)) {
16893
+ let spaces = 0;
16894
+ while (input.next == space || input.next == tab) {
16895
+ input.advance();
16896
+ spaces++;
16897
+ }
16898
+ if (input.next == newline || input.next == carriageReturn || input.next == hash)
16899
+ input.acceptToken(blankLineStart, -spaces);
16900
+ } else if (isLineBreak(input.next)) {
16901
+ input.acceptToken(newline$1, 1);
16902
+ }
16903
+ }, { contextual: true });
16904
+ const indentation = new ExternalTokenizer((input, stack) => {
16905
+ let context = stack.context;
16906
+ if (context.flags)
16907
+ return;
16908
+ let prev = input.peek(-1);
16909
+ if (prev == newline || prev == carriageReturn) {
16910
+ let depth = 0, chars = 0;
16911
+ for (; ; ) {
16912
+ if (input.next == space)
16913
+ depth++;
16914
+ else if (input.next == tab)
16915
+ depth += 8 - depth % 8;
16916
+ else
16917
+ break;
16918
+ input.advance();
16919
+ chars++;
16920
+ }
16921
+ if (depth != context.indent && input.next != newline && input.next != carriageReturn && input.next != hash) {
16922
+ if (depth < context.indent)
16923
+ input.acceptToken(dedent, -chars);
16924
+ else
16925
+ input.acceptToken(indent);
16926
+ }
16927
+ }
16928
+ });
16929
+ const cx_Bracketed = 1, cx_String = 2, cx_DoubleQuote = 4, cx_Long = 8, cx_Raw = 16, cx_Format = 32;
16930
+ function Context$1(parent, indent2, flags) {
16931
+ this.parent = parent;
16932
+ this.indent = indent2;
16933
+ this.flags = flags;
16934
+ this.hash = (parent ? parent.hash + parent.hash << 8 : 0) + indent2 + (indent2 << 4) + flags + (flags << 6);
16935
+ }
16936
+ const topIndent = new Context$1(null, 0, 0);
16937
+ function countIndent(space2) {
16938
+ let depth = 0;
16939
+ for (let i2 = 0; i2 < space2.length; i2++)
16940
+ depth += space2.charCodeAt(i2) == tab ? 8 - depth % 8 : 1;
16941
+ return depth;
16942
+ }
16943
+ const stringFlags = new Map([
16944
+ [stringStart, 0],
16945
+ [stringStartD, cx_DoubleQuote],
16946
+ [stringStartL, cx_Long],
16947
+ [stringStartLD, cx_Long | cx_DoubleQuote],
16948
+ [stringStartR, cx_Raw],
16949
+ [stringStartRD, cx_Raw | cx_DoubleQuote],
16950
+ [stringStartRL, cx_Raw | cx_Long],
16951
+ [stringStartRLD, cx_Raw | cx_Long | cx_DoubleQuote],
16952
+ [stringStartF, cx_Format],
16953
+ [stringStartFD, cx_Format | cx_DoubleQuote],
16954
+ [stringStartFL, cx_Format | cx_Long],
16955
+ [stringStartFLD, cx_Format | cx_Long | cx_DoubleQuote],
16956
+ [stringStartFR, cx_Format | cx_Raw],
16957
+ [stringStartFRD, cx_Format | cx_Raw | cx_DoubleQuote],
16958
+ [stringStartFRL, cx_Format | cx_Raw | cx_Long],
16959
+ [stringStartFRLD, cx_Format | cx_Raw | cx_Long | cx_DoubleQuote]
16960
+ ].map(([term, flags]) => [term, flags | cx_String]));
16961
+ const trackIndent = new ContextTracker({
16962
+ start: topIndent,
16963
+ reduce(context, term, _2, input) {
16964
+ if (context.flags & cx_Bracketed && bracketed.has(term) || (term == String$1 || term == FormatString) && context.flags & cx_String)
16965
+ return context.parent;
16966
+ return context;
16967
+ },
16968
+ shift(context, term, stack, input) {
16969
+ if (term == indent)
16970
+ return new Context$1(context, countIndent(input.read(input.pos, stack.pos)), 0);
16971
+ if (term == dedent)
16972
+ return context.parent;
16973
+ if (term == ParenL || term == BracketL || term == BraceL || term == replacementStart)
16974
+ return new Context$1(context, 0, cx_Bracketed);
16975
+ if (stringFlags.has(term))
16976
+ return new Context$1(context, 0, stringFlags.get(term) | context.flags & cx_Bracketed);
16977
+ return context;
16978
+ },
16979
+ hash(context) {
16980
+ return context.hash;
16981
+ }
16982
+ });
16983
+ const legacyPrint = new ExternalTokenizer((input) => {
16984
+ for (let i2 = 0; i2 < 5; i2++) {
16985
+ if (input.next != "print".charCodeAt(i2))
16986
+ return;
16987
+ input.advance();
16988
+ }
16989
+ if (/\w/.test(String.fromCharCode(input.next)))
16990
+ return;
16991
+ for (let off = 0; ; off++) {
16992
+ let next = input.peek(off);
16993
+ if (next == space || next == tab)
16994
+ continue;
16995
+ if (next != parenOpen && next != dot && next != newline && next != carriageReturn && next != hash)
16996
+ input.acceptToken(printKeyword);
16997
+ return;
16998
+ }
16999
+ });
17000
+ const strings = new ExternalTokenizer((input, stack) => {
17001
+ let { flags } = stack.context;
17002
+ let quote = flags & cx_DoubleQuote ? doubleQuote : singleQuote;
17003
+ let long = (flags & cx_Long) > 0;
17004
+ let escapes = !(flags & cx_Raw);
17005
+ let format3 = (flags & cx_Format) > 0;
17006
+ let start2 = input.pos;
17007
+ for (; ; ) {
17008
+ if (input.next < 0) {
17009
+ break;
17010
+ } else if (format3 && input.next == braceOpen) {
17011
+ if (input.peek(1) == braceOpen) {
17012
+ input.advance(2);
17013
+ } else {
17014
+ if (input.pos == start2) {
17015
+ input.acceptToken(replacementStart, 1);
17016
+ return;
17017
+ }
17018
+ break;
17019
+ }
17020
+ } else if (escapes && input.next == backslash) {
17021
+ if (input.pos == start2) {
17022
+ input.advance();
17023
+ let escaped = input.next;
17024
+ if (escaped >= 0) {
17025
+ input.advance();
17026
+ skipEscape(input, escaped);
17027
+ }
17028
+ input.acceptToken(Escape);
17029
+ return;
17030
+ }
17031
+ break;
17032
+ } else if (input.next == backslash && !escapes && input.peek(1) > -1) {
17033
+ input.advance(2);
17034
+ } else if (input.next == quote && (!long || input.peek(1) == quote && input.peek(2) == quote)) {
17035
+ if (input.pos == start2) {
17036
+ input.acceptToken(stringEnd, long ? 3 : 1);
17037
+ return;
17038
+ }
17039
+ break;
17040
+ } else if (input.next == newline) {
17041
+ if (long) {
17042
+ input.advance();
17043
+ } else if (input.pos == start2) {
17044
+ input.acceptToken(stringEnd);
17045
+ return;
17046
+ }
17047
+ break;
17048
+ } else {
17049
+ input.advance();
17050
+ }
17051
+ }
17052
+ if (input.pos > start2)
17053
+ input.acceptToken(stringContent);
17054
+ });
17055
+ function skipEscape(input, ch) {
17056
+ if (ch == letter_o) {
17057
+ for (let i2 = 0; i2 < 2 && input.next >= 48 && input.next <= 55; i2++)
17058
+ input.advance();
17059
+ } else if (ch == letter_x) {
17060
+ for (let i2 = 0; i2 < 2 && isHex(input.next); i2++)
17061
+ input.advance();
17062
+ } else if (ch == letter_u) {
17063
+ for (let i2 = 0; i2 < 4 && isHex(input.next); i2++)
17064
+ input.advance();
17065
+ } else if (ch == letter_U) {
17066
+ for (let i2 = 0; i2 < 8 && isHex(input.next); i2++)
17067
+ input.advance();
17068
+ } else if (ch == letter_N) {
17069
+ if (input.next == braceOpen) {
17070
+ input.advance();
17071
+ while (input.next >= 0 && input.next != braceClose && input.next != singleQuote && input.next != doubleQuote && input.next != newline)
17072
+ input.advance();
17073
+ if (input.next == braceClose)
17074
+ input.advance();
17075
+ }
17076
+ }
17077
+ }
17078
+ const pythonHighlighting = styleTags({
17079
+ 'async "*" "**" FormatConversion FormatSpec': tags.modifier,
17080
+ "for while if elif else try except finally return raise break continue with pass assert await yield match case": tags.controlKeyword,
17081
+ "in not and or is del": tags.operatorKeyword,
17082
+ "from def class global nonlocal lambda": tags.definitionKeyword,
17083
+ import: tags.moduleKeyword,
17084
+ "with as print": tags.keyword,
17085
+ Boolean: tags.bool,
17086
+ None: tags.null,
17087
+ VariableName: tags.variableName,
17088
+ "CallExpression/VariableName": tags.function(tags.variableName),
17089
+ "FunctionDefinition/VariableName": tags.function(tags.definition(tags.variableName)),
17090
+ "ClassDefinition/VariableName": tags.definition(tags.className),
17091
+ PropertyName: tags.propertyName,
17092
+ "CallExpression/MemberExpression/PropertyName": tags.function(tags.propertyName),
17093
+ Comment: tags.lineComment,
17094
+ Number: tags.number,
17095
+ String: tags.string,
17096
+ FormatString: tags.special(tags.string),
17097
+ Escape: tags.escape,
17098
+ UpdateOp: tags.updateOperator,
17099
+ "ArithOp!": tags.arithmeticOperator,
17100
+ BitOp: tags.bitwiseOperator,
17101
+ CompareOp: tags.compareOperator,
17102
+ AssignOp: tags.definitionOperator,
17103
+ Ellipsis: tags.punctuation,
17104
+ At: tags.meta,
17105
+ "( )": tags.paren,
17106
+ "[ ]": tags.squareBracket,
17107
+ "{ }": tags.brace,
17108
+ ".": tags.derefOperator,
17109
+ ", ;": tags.separator
17110
+ });
17111
+ const spec_identifier = { __proto__: null, await: 44, or: 54, and: 56, in: 60, not: 62, is: 64, if: 70, else: 72, lambda: 76, yield: 94, from: 96, async: 102, for: 104, None: 162, True: 164, False: 164, del: 178, pass: 182, break: 186, continue: 190, return: 194, raise: 202, import: 206, as: 208, global: 212, nonlocal: 214, assert: 218, type: 223, elif: 236, while: 240, try: 246, except: 248, finally: 250, with: 254, def: 258, class: 268, match: 279, case: 285 };
17112
+ const parser = LRParser.deserialize({
17113
+ version: 14,
17114
+ states: "##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",
17115
+ stateData: "$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",
17116
+ goto: "!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",
17117
+ nodeNames: "⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",
17118
+ maxTerm: 277,
17119
+ context: trackIndent,
17120
+ nodeProps: [
17121
+ ["isolate", -5, 4, 71, 72, 73, 77, ""],
17122
+ ["group", -15, 6, 85, 87, 88, 90, 92, 94, 96, 98, 99, 100, 102, 105, 108, 110, "Statement Statement", -22, 8, 18, 21, 25, 40, 49, 50, 56, 57, 60, 61, 62, 63, 64, 67, 70, 71, 72, 79, 80, 81, 82, "Expression", -10, 114, 116, 119, 121, 122, 126, 128, 133, 135, 138, "Statement", -9, 143, 144, 147, 148, 150, 151, 152, 153, 154, "Pattern"],
17123
+ ["openedBy", 23, "(", 54, "[", 58, "{"],
17124
+ ["closedBy", 24, ")", 55, "]", 59, "}"]
17125
+ ],
17126
+ propSources: [pythonHighlighting],
17127
+ skippedNodes: [0, 4],
17128
+ repeatNodeCount: 34,
17129
+ tokenData: "!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",
17130
+ tokenizers: [legacyPrint, indentation, newlines, strings, 0, 1, 2, 3, 4],
17131
+ topRules: { "Script": [0, 5] },
17132
+ specialized: [{ term: 221, get: (value) => spec_identifier[value] || -1 }],
17133
+ tokenPrec: 7668
17134
+ });
17135
+ const cache = /* @__PURE__ */ new NodeWeakMap();
17136
+ const ScopeNodes = /* @__PURE__ */ new Set([
17137
+ "Script",
17138
+ "Body",
17139
+ "FunctionDefinition",
17140
+ "ClassDefinition",
17141
+ "LambdaExpression",
17142
+ "ForStatement",
17143
+ "MatchClause"
17144
+ ]);
17145
+ function defID(type) {
17146
+ return (node, def2, outer) => {
17147
+ if (outer)
17148
+ return false;
17149
+ let id2 = node.node.getChild("VariableName");
17150
+ if (id2)
17151
+ def2(id2, type);
17152
+ return true;
17153
+ };
17154
+ }
17155
+ const gatherCompletions = {
17156
+ FunctionDefinition: /* @__PURE__ */ defID("function"),
17157
+ ClassDefinition: /* @__PURE__ */ defID("class"),
17158
+ ForStatement(node, def2, outer) {
17159
+ if (outer)
17160
+ for (let child = node.node.firstChild; child; child = child.nextSibling) {
17161
+ if (child.name == "VariableName")
17162
+ def2(child, "variable");
17163
+ else if (child.name == "in")
17164
+ break;
17165
+ }
17166
+ },
17167
+ ImportStatement(_node, def2) {
17168
+ var _a, _b;
17169
+ let { node } = _node;
17170
+ let isFrom = ((_a = node.firstChild) === null || _a === void 0 ? void 0 : _a.name) == "from";
17171
+ for (let ch = node.getChild("import"); ch; ch = ch.nextSibling) {
17172
+ if (ch.name == "VariableName" && ((_b = ch.nextSibling) === null || _b === void 0 ? void 0 : _b.name) != "as")
17173
+ def2(ch, isFrom ? "variable" : "namespace");
17174
+ }
17175
+ },
17176
+ AssignStatement(node, def2) {
17177
+ for (let child = node.node.firstChild; child; child = child.nextSibling) {
17178
+ if (child.name == "VariableName")
17179
+ def2(child, "variable");
17180
+ else if (child.name == ":" || child.name == "AssignOp")
17181
+ break;
17182
+ }
17183
+ },
17184
+ ParamList(node, def2) {
17185
+ for (let prev = null, child = node.node.firstChild; child; child = child.nextSibling) {
17186
+ if (child.name == "VariableName" && (!prev || !/\*|AssignOp/.test(prev.name)))
17187
+ def2(child, "variable");
17188
+ prev = child;
17189
+ }
17190
+ },
17191
+ CapturePattern: /* @__PURE__ */ defID("variable"),
17192
+ AsPattern: /* @__PURE__ */ defID("variable"),
17193
+ __proto__: null
17194
+ };
17195
+ function getScope(doc, node) {
17196
+ let cached = cache.get(node);
17197
+ if (cached)
17198
+ return cached;
17199
+ let completions = [], top = true;
17200
+ function def2(node2, type) {
17201
+ let name = doc.sliceString(node2.from, node2.to);
17202
+ completions.push({ label: name, type });
17203
+ }
17204
+ node.cursor(IterMode.IncludeAnonymous).iterate((node2) => {
17205
+ if (node2.name) {
17206
+ let gather = gatherCompletions[node2.name];
17207
+ if (gather && gather(node2, def2, top) || !top && ScopeNodes.has(node2.name))
17208
+ return false;
17209
+ top = false;
17210
+ } else if (node2.to - node2.from > 8192) {
17211
+ for (let c2 of getScope(doc, node2.node))
17212
+ completions.push(c2);
17213
+ return false;
17214
+ }
17215
+ });
17216
+ cache.set(node, completions);
17217
+ return completions;
17218
+ }
17219
+ const Identifier = /^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/;
17220
+ const dontComplete = ["String", "FormatString", "Comment", "PropertyName"];
17221
+ function localCompletionSource(context) {
17222
+ let inner = syntaxTree(context.state).resolveInner(context.pos, -1);
17223
+ if (dontComplete.indexOf(inner.name) > -1)
17224
+ return null;
17225
+ let isWord = inner.name == "VariableName" || inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));
17226
+ if (!isWord && !context.explicit)
17227
+ return null;
17228
+ let options = [];
17229
+ for (let pos = inner; pos; pos = pos.parent) {
17230
+ if (ScopeNodes.has(pos.name))
17231
+ options = options.concat(getScope(context.state.doc, pos));
17232
+ }
17233
+ return {
17234
+ options,
17235
+ from: isWord ? inner.from : context.pos,
17236
+ validFor: Identifier
17237
+ };
17238
+ }
17239
+ const globals = /* @__PURE__ */ [
17240
+ "__annotations__",
17241
+ "__builtins__",
17242
+ "__debug__",
17243
+ "__doc__",
17244
+ "__import__",
17245
+ "__name__",
17246
+ "__loader__",
17247
+ "__package__",
17248
+ "__spec__",
17249
+ "False",
17250
+ "None",
17251
+ "True"
17252
+ ].map((n) => ({ label: n, type: "constant" })).concat(/* @__PURE__ */ [
17253
+ "ArithmeticError",
17254
+ "AssertionError",
17255
+ "AttributeError",
17256
+ "BaseException",
17257
+ "BlockingIOError",
17258
+ "BrokenPipeError",
17259
+ "BufferError",
17260
+ "BytesWarning",
17261
+ "ChildProcessError",
17262
+ "ConnectionAbortedError",
17263
+ "ConnectionError",
17264
+ "ConnectionRefusedError",
17265
+ "ConnectionResetError",
17266
+ "DeprecationWarning",
17267
+ "EOFError",
17268
+ "Ellipsis",
17269
+ "EncodingWarning",
17270
+ "EnvironmentError",
17271
+ "Exception",
17272
+ "FileExistsError",
17273
+ "FileNotFoundError",
17274
+ "FloatingPointError",
17275
+ "FutureWarning",
17276
+ "GeneratorExit",
17277
+ "IOError",
17278
+ "ImportError",
17279
+ "ImportWarning",
17280
+ "IndentationError",
17281
+ "IndexError",
17282
+ "InterruptedError",
17283
+ "IsADirectoryError",
17284
+ "KeyError",
17285
+ "KeyboardInterrupt",
17286
+ "LookupError",
17287
+ "MemoryError",
17288
+ "ModuleNotFoundError",
17289
+ "NameError",
17290
+ "NotADirectoryError",
17291
+ "NotImplemented",
17292
+ "NotImplementedError",
17293
+ "OSError",
17294
+ "OverflowError",
17295
+ "PendingDeprecationWarning",
17296
+ "PermissionError",
17297
+ "ProcessLookupError",
17298
+ "RecursionError",
17299
+ "ReferenceError",
17300
+ "ResourceWarning",
17301
+ "RuntimeError",
17302
+ "RuntimeWarning",
17303
+ "StopAsyncIteration",
17304
+ "StopIteration",
17305
+ "SyntaxError",
17306
+ "SyntaxWarning",
17307
+ "SystemError",
17308
+ "SystemExit",
17309
+ "TabError",
17310
+ "TimeoutError",
17311
+ "TypeError",
17312
+ "UnboundLocalError",
17313
+ "UnicodeDecodeError",
17314
+ "UnicodeEncodeError",
17315
+ "UnicodeError",
17316
+ "UnicodeTranslateError",
17317
+ "UnicodeWarning",
17318
+ "UserWarning",
17319
+ "ValueError",
17320
+ "Warning",
17321
+ "ZeroDivisionError"
17322
+ ].map((n) => ({ label: n, type: "type" }))).concat(/* @__PURE__ */ [
17323
+ "bool",
17324
+ "bytearray",
17325
+ "bytes",
17326
+ "classmethod",
17327
+ "complex",
17328
+ "float",
17329
+ "frozenset",
17330
+ "int",
17331
+ "list",
17332
+ "map",
17333
+ "memoryview",
17334
+ "object",
17335
+ "range",
17336
+ "set",
17337
+ "staticmethod",
17338
+ "str",
17339
+ "super",
17340
+ "tuple",
17341
+ "type"
17342
+ ].map((n) => ({ label: n, type: "class" }))).concat(/* @__PURE__ */ [
17343
+ "abs",
17344
+ "aiter",
17345
+ "all",
17346
+ "anext",
17347
+ "any",
17348
+ "ascii",
17349
+ "bin",
17350
+ "breakpoint",
17351
+ "callable",
17352
+ "chr",
17353
+ "compile",
17354
+ "delattr",
17355
+ "dict",
17356
+ "dir",
17357
+ "divmod",
17358
+ "enumerate",
17359
+ "eval",
17360
+ "exec",
17361
+ "exit",
17362
+ "filter",
17363
+ "format",
17364
+ "getattr",
17365
+ "globals",
17366
+ "hasattr",
17367
+ "hash",
17368
+ "help",
17369
+ "hex",
17370
+ "id",
17371
+ "input",
17372
+ "isinstance",
17373
+ "issubclass",
17374
+ "iter",
17375
+ "len",
17376
+ "license",
17377
+ "locals",
17378
+ "max",
17379
+ "min",
17380
+ "next",
17381
+ "oct",
17382
+ "open",
17383
+ "ord",
17384
+ "pow",
17385
+ "print",
17386
+ "property",
17387
+ "quit",
17388
+ "repr",
17389
+ "reversed",
17390
+ "round",
17391
+ "setattr",
17392
+ "slice",
17393
+ "sorted",
17394
+ "sum",
17395
+ "vars",
17396
+ "zip"
17397
+ ].map((n) => ({ label: n, type: "function" })));
17398
+ const snippets = [
17399
+ /* @__PURE__ */ snippetCompletion("def ${name}(${params}):\n ${}", {
17400
+ label: "def",
17401
+ detail: "function",
17402
+ type: "keyword"
17403
+ }),
17404
+ /* @__PURE__ */ snippetCompletion("for ${name} in ${collection}:\n ${}", {
17405
+ label: "for",
17406
+ detail: "loop",
17407
+ type: "keyword"
17408
+ }),
17409
+ /* @__PURE__ */ snippetCompletion("while ${}:\n ${}", {
17410
+ label: "while",
17411
+ detail: "loop",
17412
+ type: "keyword"
17413
+ }),
17414
+ /* @__PURE__ */ snippetCompletion("try:\n ${}\nexcept ${error}:\n ${}", {
17415
+ label: "try",
17416
+ detail: "/ except block",
17417
+ type: "keyword"
17418
+ }),
17419
+ /* @__PURE__ */ snippetCompletion("if ${}:\n \n", {
17420
+ label: "if",
17421
+ detail: "block",
17422
+ type: "keyword"
17423
+ }),
17424
+ /* @__PURE__ */ snippetCompletion("if ${}:\n ${}\nelse:\n ${}", {
17425
+ label: "if",
17426
+ detail: "/ else block",
17427
+ type: "keyword"
17428
+ }),
17429
+ /* @__PURE__ */ snippetCompletion("class ${name}:\n def __init__(self, ${params}):\n ${}", {
17430
+ label: "class",
17431
+ detail: "definition",
17432
+ type: "keyword"
17433
+ }),
17434
+ /* @__PURE__ */ snippetCompletion("import ${module}", {
17435
+ label: "import",
17436
+ detail: "statement",
17437
+ type: "keyword"
17438
+ }),
17439
+ /* @__PURE__ */ snippetCompletion("from ${module} import ${names}", {
17440
+ label: "from",
17441
+ detail: "import",
17442
+ type: "keyword"
17443
+ })
17444
+ ];
17445
+ const globalCompletion = /* @__PURE__ */ ifNotIn(dontComplete, /* @__PURE__ */ completeFromList(/* @__PURE__ */ globals.concat(snippets)));
17446
+ function innerBody(context) {
17447
+ let { node, pos } = context;
17448
+ let lineIndent = context.lineIndent(pos, -1);
17449
+ let found = null;
17450
+ for (; ; ) {
17451
+ let before = node.childBefore(pos);
17452
+ if (!before) {
17453
+ break;
17454
+ } else if (before.name == "Comment") {
17455
+ pos = before.from;
17456
+ } else if (before.name == "Body" || before.name == "MatchBody") {
17457
+ if (context.baseIndentFor(before) + context.unit <= lineIndent)
17458
+ found = before;
17459
+ node = before;
17460
+ } else if (before.name == "MatchClause") {
17461
+ node = before;
17462
+ } else if (before.type.is("Statement")) {
17463
+ node = before;
17464
+ } else {
17465
+ break;
17466
+ }
17467
+ }
17468
+ return found;
17469
+ }
17470
+ function indentBody(context, node) {
17471
+ let base = context.baseIndentFor(node);
17472
+ let line = context.lineAt(context.pos, -1), to = line.from + line.text.length;
17473
+ if (/^\s*($|#)/.test(line.text) && context.node.to < to + 100 && !/\S/.test(context.state.sliceDoc(to, context.node.to)) && context.lineIndent(context.pos, -1) <= base)
17474
+ return null;
17475
+ if (/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(context.textAfter) && context.lineIndent(context.pos, -1) > base)
17476
+ return null;
17477
+ return base + context.unit;
17478
+ }
17479
+ const pythonLanguage = /* @__PURE__ */ LRLanguage.define({
17480
+ name: "python",
17481
+ parser: /* @__PURE__ */ parser.configure({
17482
+ props: [
17483
+ /* @__PURE__ */ indentNodeProp.add({
17484
+ Body: (context) => {
17485
+ var _a;
17486
+ let body = /^\s*(#|$)/.test(context.textAfter) && innerBody(context) || context.node;
17487
+ return (_a = indentBody(context, body)) !== null && _a !== void 0 ? _a : context.continue();
17488
+ },
17489
+ MatchBody: (context) => {
17490
+ var _a;
17491
+ let inner = innerBody(context);
17492
+ return (_a = indentBody(context, inner || context.node)) !== null && _a !== void 0 ? _a : context.continue();
17493
+ },
17494
+ IfStatement: (cx) => /^\s*(else:|elif )/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
17495
+ "ForStatement WhileStatement": (cx) => /^\s*else:/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
17496
+ TryStatement: (cx) => /^\s*(except[ :]|finally:|else:)/.test(cx.textAfter) ? cx.baseIndent : cx.continue(),
17497
+ MatchStatement: (cx) => {
17498
+ if (/^\s*case /.test(cx.textAfter))
17499
+ return cx.baseIndent + cx.unit;
17500
+ return cx.continue();
17501
+ },
17502
+ "TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression": /* @__PURE__ */ delimitedIndent({ closing: ")" }),
17503
+ "DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression": /* @__PURE__ */ delimitedIndent({ closing: "}" }),
17504
+ "ArrayExpression ArrayComprehensionExpression": /* @__PURE__ */ delimitedIndent({ closing: "]" }),
17505
+ MemberExpression: (cx) => cx.baseIndent + cx.unit,
17506
+ "String FormatString": () => null,
17507
+ Script: (context) => {
17508
+ var _a;
17509
+ let inner = innerBody(context);
17510
+ return (_a = inner && indentBody(context, inner)) !== null && _a !== void 0 ? _a : context.continue();
17511
+ }
17512
+ }),
17513
+ /* @__PURE__ */ foldNodeProp.add({
17514
+ "ArrayExpression DictionaryExpression SetExpression TupleExpression": foldInside,
17515
+ Body: (node, state2) => ({ from: node.from + 1, to: node.to - (node.to == state2.doc.length ? 0 : 1) }),
17516
+ "String FormatString": (node, state2) => ({ from: state2.doc.lineAt(node.from).to, to: node.to })
17517
+ })
17518
+ ]
17519
+ }),
17520
+ languageData: {
17521
+ closeBrackets: {
17522
+ brackets: ["(", "[", "{", "'", '"', "'''", '"""'],
17523
+ stringPrefixes: [
17524
+ "f",
17525
+ "fr",
17526
+ "rf",
17527
+ "r",
17528
+ "u",
17529
+ "b",
17530
+ "br",
17531
+ "rb",
17532
+ "F",
17533
+ "FR",
17534
+ "RF",
17535
+ "R",
17536
+ "U",
17537
+ "B",
17538
+ "BR",
17539
+ "RB"
17540
+ ]
17541
+ },
17542
+ commentTokens: { line: "#" },
17543
+ // Indent logic logic are triggered upon below input patterns
17544
+ indentOnInput: /^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/
17545
+ }
17546
+ });
17547
+ function python() {
17548
+ return new LanguageSupport(pythonLanguage, [
17549
+ pythonLanguage.data.of({ autocomplete: localCompletionSource }),
17550
+ pythonLanguage.data.of({ autocomplete: globalCompletion })
17551
+ ]);
17552
+ }
17553
+ const chalky = "#e5c07b", coral = "#e06c75", cyan = "#56b6c2", invalid = "#ffffff", ivory = "#abb2bf", stone = "#7d8799", malibu = "#61afef", sage = "#98c379", whiskey = "#d19a66", violet = "#c678dd", darkBackground = "#21252b", highlightBackground = "#2c313a", background = "#282c34", tooltipBackground = "#353a42", selection = "#3E4451", cursor = "#528bff";
17554
+ const oneDarkTheme = /* @__PURE__ */ EditorView.theme({
17555
+ "&": {
17556
+ color: ivory,
17557
+ backgroundColor: background
17558
+ },
17559
+ ".cm-content": {
17560
+ caretColor: cursor
17561
+ },
17562
+ ".cm-cursor, .cm-dropCursor": { borderLeftColor: cursor },
17563
+ "&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection": { backgroundColor: selection },
17564
+ ".cm-panels": { backgroundColor: darkBackground, color: ivory },
17565
+ ".cm-panels.cm-panels-top": { borderBottom: "2px solid black" },
17566
+ ".cm-panels.cm-panels-bottom": { borderTop: "2px solid black" },
17567
+ ".cm-searchMatch": {
17568
+ backgroundColor: "#72a1ff59",
17569
+ outline: "1px solid #457dff"
17570
+ },
17571
+ ".cm-searchMatch.cm-searchMatch-selected": {
17572
+ backgroundColor: "#6199ff2f"
17573
+ },
17574
+ ".cm-activeLine": { backgroundColor: "#6699ff0b" },
17575
+ ".cm-selectionMatch": { backgroundColor: "#aafe661a" },
17576
+ "&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket": {
17577
+ backgroundColor: "#bad0f847"
17578
+ },
17579
+ ".cm-gutters": {
17580
+ backgroundColor: background,
17581
+ color: stone,
17582
+ border: "none"
17583
+ },
17584
+ ".cm-activeLineGutter": {
17585
+ backgroundColor: highlightBackground
17586
+ },
17587
+ ".cm-foldPlaceholder": {
17588
+ backgroundColor: "transparent",
17589
+ border: "none",
17590
+ color: "#ddd"
17591
+ },
17592
+ ".cm-tooltip": {
17593
+ border: "none",
17594
+ backgroundColor: tooltipBackground
17595
+ },
17596
+ ".cm-tooltip .cm-tooltip-arrow:before": {
17597
+ borderTopColor: "transparent",
17598
+ borderBottomColor: "transparent"
17599
+ },
17600
+ ".cm-tooltip .cm-tooltip-arrow:after": {
17601
+ borderTopColor: tooltipBackground,
17602
+ borderBottomColor: tooltipBackground
17603
+ },
17604
+ ".cm-tooltip-autocomplete": {
17605
+ "& > ul > li[aria-selected]": {
17606
+ backgroundColor: highlightBackground,
17607
+ color: ivory
17608
+ }
17609
+ }
17610
+ }, { dark: true });
17611
+ const oneDarkHighlightStyle = /* @__PURE__ */ HighlightStyle.define([
17612
+ {
17613
+ tag: tags.keyword,
17614
+ color: violet
17615
+ },
17616
+ {
17617
+ tag: [tags.name, tags.deleted, tags.character, tags.propertyName, tags.macroName],
17618
+ color: coral
17619
+ },
17620
+ {
17621
+ tag: [/* @__PURE__ */ tags.function(tags.variableName), tags.labelName],
17622
+ color: malibu
17623
+ },
17624
+ {
17625
+ tag: [tags.color, /* @__PURE__ */ tags.constant(tags.name), /* @__PURE__ */ tags.standard(tags.name)],
17626
+ color: whiskey
17627
+ },
17628
+ {
17629
+ tag: [/* @__PURE__ */ tags.definition(tags.name), tags.separator],
17630
+ color: ivory
17631
+ },
17632
+ {
17633
+ tag: [tags.typeName, tags.className, tags.number, tags.changed, tags.annotation, tags.modifier, tags.self, tags.namespace],
17634
+ color: chalky
17635
+ },
17636
+ {
17637
+ tag: [tags.operator, tags.operatorKeyword, tags.url, tags.escape, tags.regexp, tags.link, /* @__PURE__ */ tags.special(tags.string)],
17638
+ color: cyan
17639
+ },
17640
+ {
17641
+ tag: [tags.meta, tags.comment],
17642
+ color: stone
17643
+ },
17644
+ {
17645
+ tag: tags.strong,
17646
+ fontWeight: "bold"
17647
+ },
17648
+ {
17649
+ tag: tags.emphasis,
17650
+ fontStyle: "italic"
17651
+ },
17652
+ {
17653
+ tag: tags.strikethrough,
17654
+ textDecoration: "line-through"
17655
+ },
17656
+ {
17657
+ tag: tags.link,
17658
+ color: stone,
17659
+ textDecoration: "underline"
17660
+ },
17661
+ {
17662
+ tag: tags.heading,
17663
+ fontWeight: "bold",
17664
+ color: coral
17665
+ },
17666
+ {
17667
+ tag: [tags.atom, tags.bool, /* @__PURE__ */ tags.special(tags.variableName)],
17668
+ color: whiskey
17669
+ },
17670
+ {
17671
+ tag: [tags.processingInstruction, tags.string, tags.inserted],
17672
+ color: sage
17673
+ },
17674
+ {
17675
+ tag: tags.invalid,
17676
+ color: invalid
17677
+ }
17678
+ ]);
17679
+ const oneDark = [oneDarkTheme, /* @__PURE__ */ syntaxHighlighting(oneDarkHighlightStyle)];
17680
+ const _hoisted_1$a = { class: "code-container" };
17681
+ const _hoisted_2$7 = { class: "code-header" };
17682
+ const _hoisted_3$6 = { class: "header-actions" };
17683
+ const _hoisted_4$6 = ["disabled"];
17684
+ const _hoisted_5$5 = {
17685
+ key: 0,
17686
+ width: "16",
17687
+ height: "16",
17688
+ viewBox: "0 0 24 24",
17689
+ fill: "none",
17690
+ stroke: "currentColor",
17691
+ "stroke-width": "2"
17692
+ };
17693
+ const _hoisted_6$4 = {
17694
+ key: 1,
17695
+ class: "spinner"
17696
+ };
17697
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
17698
+ __name: "CodeGenerator",
17699
+ setup(__props) {
17700
+ const code = ref("");
17701
+ const loading = ref(false);
17702
+ const nodeStore = useNodeStore();
17703
+ const lastLoadedFlowId = ref(null);
17704
+ const extensions = [
17705
+ python(),
17706
+ oneDark,
17707
+ EditorView.theme({
17708
+ "&": { fontSize: "11px" },
17709
+ ".cm-content": { padding: "20px" },
17710
+ ".cm-focused": { outline: "none" }
17711
+ })
17712
+ ];
17713
+ const fetchCode = async () => {
17714
+ loading.value = true;
17715
+ try {
17716
+ const response = await axios.get(`/editor/code_to_polars?flow_id=${nodeStore.flow_id}`);
17717
+ code.value = response.data;
17718
+ lastLoadedFlowId.value = nodeStore.flow_id;
17719
+ } catch (error) {
17720
+ console.error("Failed to fetch code:", error);
17721
+ code.value = "# Failed to generate code. Please check your flow configuration.";
17722
+ } finally {
17723
+ loading.value = false;
17724
+ }
17725
+ };
17726
+ watch$1(
17727
+ () => nodeStore.showCodeGenerator,
17728
+ (isShowing) => {
17729
+ if (isShowing && nodeStore.flow_id > 0) {
17730
+ fetchCode();
17731
+ }
17732
+ }
17733
+ );
17734
+ watch$1(
17735
+ () => nodeStore.flow_id,
17736
+ (newFlowId) => {
17737
+ if (nodeStore.showCodeGenerator && newFlowId !== lastLoadedFlowId.value && newFlowId > 0) {
17738
+ fetchCode();
17739
+ }
17740
+ }
17741
+ );
17742
+ onMounted(() => {
17743
+ if (nodeStore.showCodeGenerator && nodeStore.flow_id > 0) {
17744
+ fetchCode();
17745
+ }
17746
+ });
17747
+ const refreshCode = () => {
17748
+ if (nodeStore.flow_id > 0) {
17749
+ fetchCode();
17750
+ }
17751
+ };
17752
+ const exportCode = () => {
17753
+ const blob = new Blob([code.value], { type: "text/plain" });
17754
+ const url = URL.createObjectURL(blob);
17755
+ const a3 = document.createElement("a");
17756
+ a3.href = url;
17757
+ a3.download = "pipeline_code.py";
17758
+ document.body.appendChild(a3);
17759
+ a3.click();
17760
+ document.body.removeChild(a3);
17761
+ URL.revokeObjectURL(url);
17762
+ };
17763
+ return (_ctx, _cache) => {
17764
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
17765
+ createBaseVNode("div", _hoisted_2$7, [
17766
+ _cache[3] || (_cache[3] = createBaseVNode("h4", null, "Generated code", -1)),
17767
+ createBaseVNode("div", _hoisted_3$6, [
17768
+ createBaseVNode("button", {
17769
+ class: "refresh-button",
17770
+ disabled: loading.value,
17771
+ onClick: refreshCode
17772
+ }, [
17773
+ !loading.value ? (openBlock(), createElementBlock("svg", _hoisted_5$5, _cache[1] || (_cache[1] = [
17774
+ createBaseVNode("path", { d: "M23 4v6h-6" }, null, -1),
17775
+ createBaseVNode("path", { d: "M1 20v-6h6" }, null, -1),
17776
+ createBaseVNode("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }, null, -1)
17777
+ ]))) : createCommentVNode("", true),
17778
+ loading.value ? (openBlock(), createElementBlock("span", _hoisted_6$4)) : createCommentVNode("", true),
17779
+ createTextVNode(" " + toDisplayString(loading.value ? "Loading..." : "Refresh"), 1)
17780
+ ], 8, _hoisted_4$6),
17781
+ createBaseVNode("button", {
17782
+ class: "export-button",
17783
+ onClick: exportCode
17784
+ }, _cache[2] || (_cache[2] = [
17785
+ createBaseVNode("svg", {
17786
+ width: "16",
17787
+ height: "16",
17788
+ viewBox: "0 0 24 24",
17789
+ fill: "none",
17790
+ stroke: "currentColor",
17791
+ "stroke-width": "2"
17792
+ }, [
17793
+ createBaseVNode("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
17794
+ createBaseVNode("polyline", { points: "7 10 12 15 17 10" }),
17795
+ createBaseVNode("line", {
17796
+ x1: "12",
17797
+ y1: "15",
17798
+ x2: "12",
17799
+ y2: "3"
17800
+ })
17801
+ ], -1),
17802
+ createTextVNode(" Export Code ")
17803
+ ]))
17804
+ ])
17805
+ ]),
17806
+ createVNode(unref(T), {
17807
+ modelValue: code.value,
17808
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => code.value = $event),
17809
+ extensions,
17810
+ disabled: true
17811
+ }, null, 8, ["modelValue"])
17812
+ ]);
17813
+ };
17814
+ }
17815
+ });
17816
+ const CodeGenerator_vue_vue_type_style_index_0_scoped_8bafe064_lang = "";
17817
+ const CodeGenerator = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-8bafe064"]]);
15111
17818
  const __vite_glob_0_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAACO0lEQVR4nN2Yz0vbYBjHv29NbZUy0B43QUG9zNPEHUT05NCTiu6o0NbDLk5a/RMERaonkSrO8zw4alFQtBsMBG96kJ5EUTcRh78QRGvsu4O8MSk1fdMmaeLnlL7p++ST53kfkjeADSCKX5GI4Ci+XQCl3uwzKXUkyYD4ZWjXKDnpUuxA+BbeBEij9hD0SgwMl+kplY5McoLmHEVMNYi06E/eNs4iEQf/zjEyonDRR9IAxMCQ5OYopIgawlz4gR1bVhKECJgPvwOsLAlAoIgAFpdMgXgAQFD704M/ZI4NAOf85IvnLJ1Jhi0kVcvNUCtFvvAsKVtk0haSXOU2s8sz8XoyqWfjsKpMJ3bQUVmNt6WerHNMzSQT/ByPYXDrJyq/z+Li/i7rPK5M6gET7NqIYvloXxovd7mzzjW1cdrXFrHx91BzXNPKnS6Y1HDjhjYOy1TnelQp6Aum7QDVMSyTTLAnHsPK8fMaTPqCIESLokGScsGlwz1pPBdBgLPciR4fd8CaN0+72871qDKD/pCmEsvhkmQX5qVtdRHxE2WT5CoI6Ng4/to6zDR9wlRiWymosUkyoduaHG1oBgAEt35JY7muwXR0eeJ4BCfKXW78Pn36iDH+sQXBuno9QgPglIy1dqme97pLAAA752eGvNZxSbZXVHEF+/r+Q14yL2GL90lbSKqW28hdohYsnUkCeglYXPKx2NkHyCQpJT8Kp5MJmkTv4A0gk3zsD3WnQMYKJyWHXouBYVehLV4f/wHit6c8llKODwAAAABJRU5ErkJggg==";
15112
17819
  const __vite_glob_0_1 = "/assets/airbyte-292aa232.png";
15113
17820
  const __vite_glob_0_2 = "/assets/cross_join-d30c0290.png";
@@ -18004,7 +20711,7 @@ function isStopPropagationForAgGrid(event) {
18004
20711
  return event[AG_GRID_STOP_PROPAGATION] === true;
18005
20712
  }
18006
20713
  var isEventSupported = /* @__PURE__ */ (() => {
18007
- const tags = {
20714
+ const tags2 = {
18008
20715
  select: "input",
18009
20716
  change: "input",
18010
20717
  submit: "form",
@@ -18017,7 +20724,7 @@ var isEventSupported = /* @__PURE__ */ (() => {
18017
20724
  if (typeof supports[eventName] === "boolean") {
18018
20725
  return supports[eventName];
18019
20726
  }
18020
- const el = document.createElement(tags[eventName] || "div");
20727
+ const el = document.createElement(tags2[eventName] || "div");
18021
20728
  eventName = "on" + eventName;
18022
20729
  return supports[eventName] = eventName in el;
18023
20730
  };
@@ -19215,7 +21922,7 @@ __export(map_exports, {
19215
21922
  });
19216
21923
  function convertToMap(arr) {
19217
21924
  const map = /* @__PURE__ */ new Map();
19218
- arr.forEach((pair) => map.set(pair[0], pair[1]));
21925
+ arr.forEach((pair2) => map.set(pair2[0], pair2[1]));
19219
21926
  return map;
19220
21927
  }
19221
21928
  function mapById(arr, callback) {
@@ -25991,8 +28698,8 @@ var PositionableFeature = class extends BeanStub {
25991
28698
  if (!eGui) {
25992
28699
  return;
25993
28700
  }
25994
- const parser = new DOMParser();
25995
- const resizers = parser.parseFromString(RESIZE_TEMPLATE, "text/html").body;
28701
+ const parser2 = new DOMParser();
28702
+ const resizers = parser2.parseFromString(RESIZE_TEMPLATE, "text/html").body;
25996
28703
  eGui.appendChild(resizers.firstChild);
25997
28704
  this.createResizeMap();
25998
28705
  this.resizersAdded = true;
@@ -36948,9 +39655,9 @@ var QuickFilterService = class extends BeanStub {
36948
39655
  this.rowModel.forEachNode((node) => node.quickFilterAggregateText = null);
36949
39656
  }
36950
39657
  setQuickFilterParts() {
36951
- const { quickFilter, parser } = this;
39658
+ const { quickFilter, parser: parser2 } = this;
36952
39659
  if (quickFilter) {
36953
- this.quickFilterParts = parser ? parser(quickFilter) : quickFilter.split(" ");
39660
+ this.quickFilterParts = parser2 ? parser2(quickFilter) : quickFilter.split(" ");
36954
39661
  } else {
36955
39662
  this.quickFilterParts = null;
36956
39663
  }
@@ -36978,10 +39685,10 @@ var QuickFilterService = class extends BeanStub {
36978
39685
  }
36979
39686
  }
36980
39687
  setQuickFilterParserAndMatcher() {
36981
- const parser = this.gos.get("quickFilterParser");
39688
+ const parser2 = this.gos.get("quickFilterParser");
36982
39689
  const matcher2 = this.gos.get("quickFilterMatcher");
36983
- const hasChanged = parser !== this.parser || matcher2 !== this.matcher;
36984
- this.parser = parser;
39690
+ const hasChanged = parser2 !== this.parser || matcher2 !== this.matcher;
39691
+ this.parser = parser2;
36985
39692
  this.matcher = matcher2;
36986
39693
  if (hasChanged) {
36987
39694
  this.setQuickFilterParts();
@@ -61213,7 +63920,7 @@ var COLUMN_DEFINITION_VALIDATIONS = {
61213
63920
  menuTabs: (options) => {
61214
63921
  var _a;
61215
63922
  const enterpriseMenuTabs = ["columnsMenuTab", "generalMenuTab"];
61216
- if ((_a = options.menuTabs) == null ? void 0 : _a.some((tab) => enterpriseMenuTabs.includes(tab))) {
63923
+ if ((_a = options.menuTabs) == null ? void 0 : _a.some((tab2) => enterpriseMenuTabs.includes(tab2))) {
61217
63924
  return {
61218
63925
  module: "@ag-grid-enterprise/menu"
61219
63926
  /* MenuModule */
@@ -67634,7 +70341,7 @@ var formatters = {
67634
70341
  return addLeadingZeros(timestamp, token.length);
67635
70342
  },
67636
70343
  // Milliseconds timestamp
67637
- T: function T(date, token, _localize, options) {
70344
+ T: function T2(date, token, _localize, options) {
67638
70345
  var originalDate = options._originalDate || date;
67639
70346
  var timestamp = originalDate.getTime();
67640
70347
  return addLeadingZeros(timestamp, token.length);
@@ -68961,6 +71668,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
68961
71668
  event.preventDefault();
68962
71669
  emit("run", nodeStore.flow_id);
68963
71670
  }
71671
+ } else if (eventKeyClicked && event.key == "g") {
71672
+ if (nodeStore.flow_id) {
71673
+ event.preventDefault();
71674
+ nodeStore.toggleCodeGenerator();
71675
+ }
68964
71676
  }
68965
71677
  };
68966
71678
  const handleContextMenu = (event) => {
@@ -68974,6 +71686,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
68974
71686
  };
68975
71687
  const closeContextMenu = () => {
68976
71688
  showContextMenu.value = false;
71689
+ nodeStore.setCodeGeneratorVisibility(false);
68977
71690
  };
68978
71691
  onMounted(async () => {
68979
71692
  availableHeight.value = window.innerHeight - 50;
@@ -69017,7 +71730,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
69017
71730
  onClick: closeContextMenu
69018
71731
  }, {
69019
71732
  default: withCtx(() => [
69020
- createVNode(unref(_sfc_main$c))
71733
+ createVNode(unref(_sfc_main$d))
69021
71734
  ]),
69022
71735
  _: 1
69023
71736
  }, 8, ["nodes", "edges", "connection-mode"]),
@@ -69116,7 +71829,22 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
69116
71829
  ])),
69117
71830
  _: 1,
69118
71831
  __: [2]
69119
- }, 8, ["initial-height", "on-minize"])) : createCommentVNode("", true)
71832
+ }, 8, ["initial-height", "on-minize"])) : createCommentVNode("", true),
71833
+ unref(nodeStore).showCodeGenerator ? (openBlock(), createBlock(DraggableItem, {
71834
+ key: 4,
71835
+ id: "generatedCode",
71836
+ "show-left": true,
71837
+ "initial-width": 800,
71838
+ "initial-position": "right",
71839
+ "allow-free-move": true,
71840
+ "allow-full-screen": true,
71841
+ "on-minize": () => unref(nodeStore).setCodeGeneratorVisibility(false)
71842
+ }, {
71843
+ default: withCtx(() => [
71844
+ createVNode(CodeGenerator)
71845
+ ]),
71846
+ _: 1
71847
+ }, 8, ["on-minize"])) : createCommentVNode("", true)
69120
71848
  ]);
69121
71849
  };
69122
71850
  }
@@ -69737,6 +72465,8 @@ export {
69737
72465
  designer$1 as d,
69738
72466
  getImageUrl as g,
69739
72467
  info_filled_default as i,
72468
+ oneDark as o,
72469
+ python as p,
69740
72470
  useItemStore as u,
69741
72471
  warning_filled_default as w
69742
72472
  };