@elaraai/east 1.0.78 → 1.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +1 -1
  2. package/dist/src/comparison.d.ts.map +1 -1
  3. package/dist/src/comparison.js +4 -5
  4. package/dist/src/comparison.js.map +1 -1
  5. package/dist/src/compile/builtins/array.d.ts +59 -0
  6. package/dist/src/compile/builtins/array.d.ts.map +1 -0
  7. package/dist/src/compile/builtins/array.js +656 -0
  8. package/dist/src/compile/builtins/array.js.map +1 -0
  9. package/dist/src/compile/builtins/blob.d.ts +18 -0
  10. package/dist/src/compile/builtins/blob.d.ts.map +1 -0
  11. package/dist/src/compile/builtins/blob.js +150 -0
  12. package/dist/src/compile/builtins/blob.js.map +1 -0
  13. package/dist/src/compile/builtins/compare.d.ts +18 -0
  14. package/dist/src/compile/builtins/compare.d.ts.map +1 -0
  15. package/dist/src/compile/builtins/compare.js +52 -0
  16. package/dist/src/compile/builtins/compare.js.map +1 -0
  17. package/dist/src/compile/builtins/datetime.d.ts +21 -0
  18. package/dist/src/compile/builtins/datetime.d.ts.map +1 -0
  19. package/dist/src/compile/builtins/datetime.js +46 -0
  20. package/dist/src/compile/builtins/datetime.js.map +1 -0
  21. package/dist/src/compile/builtins/dict.d.ts +46 -0
  22. package/dist/src/compile/builtins/dict.d.ts.map +1 -0
  23. package/dist/src/compile/builtins/dict.js +551 -0
  24. package/dist/src/compile/builtins/dict.js.map +1 -0
  25. package/dist/src/compile/builtins/index.d.ts +9 -0
  26. package/dist/src/compile/builtins/index.d.ts.map +1 -0
  27. package/dist/src/compile/builtins/index.js +28 -0
  28. package/dist/src/compile/builtins/index.js.map +1 -0
  29. package/dist/src/compile/builtins/matrix.d.ts +31 -0
  30. package/dist/src/compile/builtins/matrix.d.ts.map +1 -0
  31. package/dist/src/compile/builtins/matrix.js +310 -0
  32. package/dist/src/compile/builtins/matrix.js.map +1 -0
  33. package/dist/src/compile/builtins/primitives.d.ts +36 -0
  34. package/dist/src/compile/builtins/primitives.d.ts.map +1 -0
  35. package/dist/src/compile/builtins/primitives.js +67 -0
  36. package/dist/src/compile/builtins/primitives.js.map +1 -0
  37. package/dist/src/compile/builtins/ref.d.ts +11 -0
  38. package/dist/src/compile/builtins/ref.d.ts.map +1 -0
  39. package/dist/src/compile/builtins/ref.js +30 -0
  40. package/dist/src/compile/builtins/ref.js.map +1 -0
  41. package/dist/src/compile/builtins/set.d.ts +41 -0
  42. package/dist/src/compile/builtins/set.d.ts.map +1 -0
  43. package/dist/src/compile/builtins/set.js +385 -0
  44. package/dist/src/compile/builtins/set.js.map +1 -0
  45. package/dist/src/compile/builtins/sparse.d.ts +19 -0
  46. package/dist/src/compile/builtins/sparse.d.ts.map +1 -0
  47. package/dist/src/compile/builtins/sparse.js +143 -0
  48. package/dist/src/compile/builtins/sparse.js.map +1 -0
  49. package/dist/src/compile/builtins/string.d.ts +34 -0
  50. package/dist/src/compile/builtins/string.d.ts.map +1 -0
  51. package/dist/src/compile/builtins/string.js +238 -0
  52. package/dist/src/compile/builtins/string.js.map +1 -0
  53. package/dist/src/compile/builtins/vector.d.ts +44 -0
  54. package/dist/src/compile/builtins/vector.d.ts.map +1 -0
  55. package/dist/src/compile/builtins/vector.js +463 -0
  56. package/dist/src/compile/builtins/vector.js.map +1 -0
  57. package/dist/src/compile/constructors.d.ts +13 -0
  58. package/dist/src/compile/constructors.d.ts.map +1 -0
  59. package/dist/src/compile/constructors.js +179 -0
  60. package/dist/src/compile/constructors.js.map +1 -0
  61. package/dist/src/compile/control.d.ts +13 -0
  62. package/dist/src/compile/control.d.ts.map +1 -0
  63. package/dist/src/compile/control.js +513 -0
  64. package/dist/src/compile/control.js.map +1 -0
  65. package/dist/src/compile/functions.d.ts +13 -0
  66. package/dist/src/compile/functions.d.ts.map +1 -0
  67. package/dist/src/compile/functions.js +492 -0
  68. package/dist/src/compile/functions.js.map +1 -0
  69. package/dist/src/compile/ir.d.ts +19 -0
  70. package/dist/src/compile/ir.d.ts.map +1 -0
  71. package/dist/src/compile/ir.js +193 -0
  72. package/dist/src/compile/ir.js.map +1 -0
  73. package/dist/src/compile/runtime.d.ts +78 -0
  74. package/dist/src/compile/runtime.d.ts.map +1 -0
  75. package/dist/src/compile/runtime.js +111 -0
  76. package/dist/src/compile/runtime.js.map +1 -0
  77. package/dist/src/compile/type_parameters.d.ts +4 -0
  78. package/dist/src/compile/type_parameters.d.ts.map +1 -0
  79. package/dist/src/compile/type_parameters.js +55 -0
  80. package/dist/src/compile/type_parameters.js.map +1 -0
  81. package/dist/src/compile/typed_arrays.d.ts +28 -0
  82. package/dist/src/compile/typed_arrays.d.ts.map +1 -0
  83. package/dist/src/compile/typed_arrays.js +77 -0
  84. package/dist/src/compile/typed_arrays.js.map +1 -0
  85. package/dist/src/compile.d.ts +6 -41
  86. package/dist/src/compile.d.ts.map +1 -1
  87. package/dist/src/compile.js +8 -4415
  88. package/dist/src/compile.js.map +1 -1
  89. package/dist/src/compile.open_beast.spec.js +5 -4
  90. package/dist/src/compile.open_beast.spec.js.map +1 -1
  91. package/dist/src/containers/sortedmap.d.ts +2 -1
  92. package/dist/src/containers/sortedmap.d.ts.map +1 -1
  93. package/dist/src/containers/sortedmap.js +4 -2
  94. package/dist/src/containers/sortedmap.js.map +1 -1
  95. package/dist/src/containers/sortedset.d.ts +2 -1
  96. package/dist/src/containers/sortedset.d.ts.map +1 -1
  97. package/dist/src/containers/sortedset.js +4 -2
  98. package/dist/src/containers/sortedset.js.map +1 -1
  99. package/dist/src/error.d.ts +15 -0
  100. package/dist/src/error.d.ts.map +1 -1
  101. package/dist/src/error.js +16 -0
  102. package/dist/src/error.js.map +1 -1
  103. package/dist/src/index.d.ts +1 -0
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/index.js +1 -0
  106. package/dist/src/index.js.map +1 -1
  107. package/dist/src/patch/index.d.ts +1 -1
  108. package/dist/src/patch/index.d.ts.map +1 -1
  109. package/dist/src/patch/index.js +1 -1
  110. package/dist/src/patch/index.js.map +1 -1
  111. package/dist/src/patch/type_of_patch.d.ts +25 -1
  112. package/dist/src/patch/type_of_patch.d.ts.map +1 -1
  113. package/dist/src/patch/type_of_patch.js +33 -10
  114. package/dist/src/patch/type_of_patch.js.map +1 -1
  115. package/dist/src/platform.spec.js +19 -1
  116. package/dist/src/platform.spec.js.map +1 -1
  117. package/dist/src/runner_protocol.d.ts +316 -0
  118. package/dist/src/runner_protocol.d.ts.map +1 -0
  119. package/dist/src/runner_protocol.js +135 -0
  120. package/dist/src/runner_protocol.js.map +1 -0
  121. package/dist/src/serialization/beast2/index.d.ts +21 -5
  122. package/dist/src/serialization/beast2/index.d.ts.map +1 -1
  123. package/dist/src/serialization/beast2/index.js +12 -2
  124. package/dist/src/serialization/beast2/index.js.map +1 -1
  125. package/dist/src/serialization/beast2/index.spec.js +84 -3
  126. package/dist/src/serialization/beast2/index.spec.js.map +1 -1
  127. package/dist/src/serialization/beast2/shared.d.ts +32 -3
  128. package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
  129. package/dist/src/serialization/beast2/shared.js +135 -10
  130. package/dist/src/serialization/beast2/shared.js.map +1 -1
  131. package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
  132. package/dist/src/serialization/beast2/v4/container.js +5 -3
  133. package/dist/src/serialization/beast2/v4/container.js.map +1 -1
  134. package/dist/src/serialization/beast2/v5/aliasing.spec.d.ts +6 -0
  135. package/dist/src/serialization/beast2/v5/aliasing.spec.d.ts.map +1 -0
  136. package/dist/src/serialization/beast2/v5/aliasing.spec.js +75 -0
  137. package/dist/src/serialization/beast2/v5/aliasing.spec.js.map +1 -0
  138. package/dist/src/serialization/beast2/v5/boundary.d.ts +176 -0
  139. package/dist/src/serialization/beast2/v5/boundary.d.ts.map +1 -0
  140. package/dist/src/serialization/beast2/v5/boundary.js +297 -0
  141. package/dist/src/serialization/beast2/v5/boundary.js.map +1 -0
  142. package/dist/src/serialization/beast2/v5/boundary.spec.d.ts +6 -0
  143. package/dist/src/serialization/beast2/v5/boundary.spec.d.ts.map +1 -0
  144. package/dist/src/serialization/beast2/v5/boundary.spec.js +479 -0
  145. package/dist/src/serialization/beast2/v5/boundary.spec.js.map +1 -0
  146. package/dist/src/serialization/beast2/v5/codec.d.ts +6 -5
  147. package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
  148. package/dist/src/serialization/beast2/v5/codec.js +18 -3
  149. package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
  150. package/dist/src/serialization/beast2/v5/deflate.d.ts +24 -2
  151. package/dist/src/serialization/beast2/v5/deflate.d.ts.map +1 -1
  152. package/dist/src/serialization/beast2/v5/deflate.js +47 -12
  153. package/dist/src/serialization/beast2/v5/deflate.js.map +1 -1
  154. package/dist/src/serialization/beast2/v5/deflate.spec.js +15 -1
  155. package/dist/src/serialization/beast2/v5/deflate.spec.js.map +1 -1
  156. package/dist/src/serialization/beast2/v5/elements.d.ts +64 -0
  157. package/dist/src/serialization/beast2/v5/elements.d.ts.map +1 -0
  158. package/dist/src/serialization/beast2/v5/elements.js +320 -0
  159. package/dist/src/serialization/beast2/v5/elements.js.map +1 -0
  160. package/dist/src/serialization/beast2/v5/elements.spec.d.ts +6 -0
  161. package/dist/src/serialization/beast2/v5/elements.spec.d.ts.map +1 -0
  162. package/dist/src/serialization/beast2/v5/elements.spec.js +161 -0
  163. package/dist/src/serialization/beast2/v5/elements.spec.js.map +1 -0
  164. package/dist/src/serialization/beast2/v5/frame-pool.d.ts +62 -21
  165. package/dist/src/serialization/beast2/v5/frame-pool.d.ts.map +1 -1
  166. package/dist/src/serialization/beast2/v5/frame-pool.js +138 -27
  167. package/dist/src/serialization/beast2/v5/frame-pool.js.map +1 -1
  168. package/dist/src/serialization/beast2/v5/frame-pool.spec.js +198 -71
  169. package/dist/src/serialization/beast2/v5/frame-pool.spec.js.map +1 -1
  170. package/dist/src/serialization/beast2/v5/frame-worker.js +25 -15
  171. package/dist/src/serialization/beast2/v5/frame-worker.js.map +1 -1
  172. package/dist/src/serialization/beast2/v5/frames.d.ts +22 -12
  173. package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -1
  174. package/dist/src/serialization/beast2/v5/frames.js +52 -27
  175. package/dist/src/serialization/beast2/v5/frames.js.map +1 -1
  176. package/dist/src/serialization/beast2/v5/geometry.d.ts +38 -1
  177. package/dist/src/serialization/beast2/v5/geometry.d.ts.map +1 -1
  178. package/dist/src/serialization/beast2/v5/geometry.js +73 -1
  179. package/dist/src/serialization/beast2/v5/geometry.js.map +1 -1
  180. package/dist/src/serialization/beast2/v5/geometry.spec.js +34 -23
  181. package/dist/src/serialization/beast2/v5/geometry.spec.js.map +1 -1
  182. package/dist/src/serialization/beast2/v5/index.spec.js +32 -28
  183. package/dist/src/serialization/beast2/v5/index.spec.js.map +1 -1
  184. package/dist/src/serialization/beast2/v5/lazy.d.ts +42 -1
  185. package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
  186. package/dist/src/serialization/beast2/v5/lazy.js +143 -28
  187. package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
  188. package/dist/src/serialization/beast2/v5/lazy.spec.js +102 -24
  189. package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
  190. package/dist/src/serialization/beast2/v5/manifest-writer.d.ts +110 -0
  191. package/dist/src/serialization/beast2/v5/manifest-writer.d.ts.map +1 -0
  192. package/dist/src/serialization/beast2/v5/manifest-writer.js +118 -0
  193. package/dist/src/serialization/beast2/v5/manifest-writer.js.map +1 -0
  194. package/dist/src/serialization/beast2/v5/manifest-writer.spec.d.ts +6 -0
  195. package/dist/src/serialization/beast2/v5/manifest-writer.spec.d.ts.map +1 -0
  196. package/dist/src/serialization/beast2/v5/manifest-writer.spec.js +207 -0
  197. package/dist/src/serialization/beast2/v5/manifest-writer.spec.js.map +1 -0
  198. package/dist/src/serialization/beast2/v5/manifest.d.ts +241 -0
  199. package/dist/src/serialization/beast2/v5/manifest.d.ts.map +1 -0
  200. package/dist/src/serialization/beast2/v5/manifest.js +233 -0
  201. package/dist/src/serialization/beast2/v5/manifest.js.map +1 -0
  202. package/dist/src/serialization/beast2/v5/merge.d.ts +93 -0
  203. package/dist/src/serialization/beast2/v5/merge.d.ts.map +1 -0
  204. package/dist/src/serialization/beast2/v5/merge.js +202 -0
  205. package/dist/src/serialization/beast2/v5/merge.js.map +1 -0
  206. package/dist/src/serialization/beast2/v5/merge.spec.d.ts +6 -0
  207. package/dist/src/serialization/beast2/v5/merge.spec.d.ts.map +1 -0
  208. package/dist/src/serialization/beast2/v5/merge.spec.js +118 -0
  209. package/dist/src/serialization/beast2/v5/merge.spec.js.map +1 -0
  210. package/dist/src/serialization/beast2/v5/recut.d.ts +143 -0
  211. package/dist/src/serialization/beast2/v5/recut.d.ts.map +1 -0
  212. package/dist/src/serialization/beast2/v5/recut.js +365 -0
  213. package/dist/src/serialization/beast2/v5/recut.js.map +1 -0
  214. package/dist/src/serialization/beast2/v5/recut.spec.d.ts +6 -0
  215. package/dist/src/serialization/beast2/v5/recut.spec.d.ts.map +1 -0
  216. package/dist/src/serialization/beast2/v5/recut.spec.js +215 -0
  217. package/dist/src/serialization/beast2/v5/recut.spec.js.map +1 -0
  218. package/dist/src/serialization/beast2/v5/runs.d.ts +148 -0
  219. package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -0
  220. package/dist/src/serialization/beast2/v5/runs.js +260 -0
  221. package/dist/src/serialization/beast2/v5/runs.js.map +1 -0
  222. package/dist/src/serialization/beast2/v5/runs.spec.d.ts +6 -0
  223. package/dist/src/serialization/beast2/v5/runs.spec.d.ts.map +1 -0
  224. package/dist/src/serialization/beast2/v5/runs.spec.js +182 -0
  225. package/dist/src/serialization/beast2/v5/runs.spec.js.map +1 -0
  226. package/dist/src/serialization/beast2/v5/sha256.d.ts +19 -0
  227. package/dist/src/serialization/beast2/v5/sha256.d.ts.map +1 -0
  228. package/dist/src/serialization/beast2/v5/sha256.js +103 -0
  229. package/dist/src/serialization/beast2/v5/sha256.js.map +1 -0
  230. package/dist/src/serialization/beast2/v5/sha256.spec.d.ts +6 -0
  231. package/dist/src/serialization/beast2/v5/sha256.spec.d.ts.map +1 -0
  232. package/dist/src/serialization/beast2/v5/sha256.spec.js +42 -0
  233. package/dist/src/serialization/beast2/v5/sha256.spec.js.map +1 -0
  234. package/dist/src/serialization/beast2/v5/stream.d.ts +273 -86
  235. package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
  236. package/dist/src/serialization/beast2/v5/stream.js +576 -244
  237. package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
  238. package/dist/src/serialization/beast2/v5/sync-reader.spec.js +24 -10
  239. package/dist/src/serialization/beast2/v5/sync-reader.spec.js.map +1 -1
  240. package/dist/src/serialization/index.d.ts +1 -1
  241. package/dist/src/serialization/index.d.ts.map +1 -1
  242. package/dist/src/serialization/index.js +1 -1
  243. package/dist/src/serialization/index.js.map +1 -1
  244. package/dist/src/serialization/json.d.ts +28 -0
  245. package/dist/src/serialization/json.d.ts.map +1 -1
  246. package/dist/src/serialization/json.js +141 -30
  247. package/dist/src/serialization/json.js.map +1 -1
  248. package/dist/src/serialization/json.spec.js +47 -2
  249. package/dist/src/serialization/json.spec.js.map +1 -1
  250. package/dist/src/serialization/json_schema.d.ts +15 -11
  251. package/dist/src/serialization/json_schema.d.ts.map +1 -1
  252. package/dist/src/serialization/json_schema.js +21 -36
  253. package/dist/src/serialization/json_schema.js.map +1 -1
  254. package/dist/src/serialization/json_schema.spec.js +26 -32
  255. package/dist/src/serialization/json_schema.spec.js.map +1 -1
  256. package/dist/src/serialization/json_schema_to_type.d.ts +10 -5
  257. package/dist/src/serialization/json_schema_to_type.d.ts.map +1 -1
  258. package/dist/src/serialization/json_schema_to_type.js +13 -6
  259. package/dist/src/serialization/json_schema_to_type.js.map +1 -1
  260. package/dist/src/serialization/json_schema_to_type.spec.js +19 -0
  261. package/dist/src/serialization/json_schema_to_type.spec.js.map +1 -1
  262. package/dist/src/string_order.d.ts +36 -0
  263. package/dist/src/string_order.d.ts.map +1 -0
  264. package/dist/src/string_order.js +64 -0
  265. package/dist/src/string_order.js.map +1 -0
  266. package/dist/src/string_order.spec.d.ts +6 -0
  267. package/dist/src/string_order.spec.d.ts.map +1 -0
  268. package/dist/src/string_order.spec.js +79 -0
  269. package/dist/src/string_order.spec.js.map +1 -0
  270. package/dist/src/type_of_type.d.ts +17 -0
  271. package/dist/src/type_of_type.d.ts.map +1 -1
  272. package/dist/src/type_of_type.js +66 -0
  273. package/dist/src/type_of_type.js.map +1 -1
  274. package/dist/src/type_of_type.to_etv.spec.js +69 -1
  275. package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
  276. package/package.json +1 -1
@@ -0,0 +1,463 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { equalFor, greaterFor, lessFor } from "../../comparison.js";
6
+ import { call_function } from "../runtime.js";
7
+ import { allocateTypedArray, createTypedArray, requireNumericElem, requireSameLength, wrapI64 } from "../typed_arrays.js";
8
+ import { matrix } from "../../containers/matrix.js";
9
+ import { EastError } from "../../error.js";
10
+ /** The builtins for Vectors. @internal */
11
+ export const vector_builtins = {
12
+ // Vector builtins
13
+ VectorLength: (_loc_id, _source_map, _platformDef, _T) => (vec) => BigInt(vec.length),
14
+ VectorGet: (loc_id, source_map, _platformDef, _T) => (vec, idx) => {
15
+ const i = Number(idx);
16
+ if (i < 0 || i >= vec.length) {
17
+ throw new EastError(`Vector index ${idx} out of bounds (length ${vec.length})`, { location: (source_map?.resolve(loc_id) ?? []) });
18
+ }
19
+ if (vec instanceof Uint8ClampedArray)
20
+ return vec[i] !== 0;
21
+ return vec[i];
22
+ },
23
+ VectorSet: (loc_id, source_map, _platformDef, _T) => (vec, idx, value) => {
24
+ const i = Number(idx);
25
+ if (i < 0 || i >= vec.length) {
26
+ throw new EastError(`Vector index ${idx} out of bounds (length ${vec.length})`, { location: (source_map?.resolve(loc_id) ?? []) });
27
+ }
28
+ const result = vec.slice();
29
+ if (result instanceof Uint8ClampedArray) {
30
+ result[i] = value ? 1 : 0;
31
+ }
32
+ else {
33
+ result[i] = value;
34
+ }
35
+ return result;
36
+ },
37
+ VectorSlice: (loc_id, source_map, _platformDef, _T) => (vec, start, end) => {
38
+ const s = Number(start);
39
+ const e = Number(end);
40
+ if (s < 0 || e > vec.length || s > e) {
41
+ throw new EastError(`Vector slice [${start}, ${end}) out of bounds (length ${vec.length})`, { location: (source_map?.resolve(loc_id) ?? []) });
42
+ }
43
+ return vec.slice(s, e);
44
+ },
45
+ VectorConcat: (loc_id, source_map, _platformDef, T) => (a, b) => {
46
+ const result = allocateTypedArray(T, a.length + b.length);
47
+ result.set(a);
48
+ result.set(b, a.length);
49
+ return result;
50
+ },
51
+ VectorFromArray: (loc_id, source_map, _platformDef, T) => (arr) => {
52
+ return createTypedArray(T, arr);
53
+ },
54
+ VectorToArray: (_loc_id, _source_map, _platformDef, _T) => (vec) => {
55
+ if (vec instanceof Uint8ClampedArray) {
56
+ return Array.from(vec, v => v !== 0);
57
+ }
58
+ if (vec instanceof BigInt64Array) {
59
+ const result = [];
60
+ for (let i = 0; i < vec.length; i++)
61
+ result.push(vec[i]);
62
+ return result;
63
+ }
64
+ return Array.from(vec);
65
+ },
66
+ VectorToMatrix: (loc_id, source_map, _platformDef, _T) => (vec, rows, cols) => {
67
+ const r = Number(rows);
68
+ const c = Number(cols);
69
+ if (r * c !== vec.length) {
70
+ throw new EastError(`Cannot reshape vector of length ${vec.length} to matrix ${r}×${c}`, { location: (source_map?.resolve(loc_id) ?? []) });
71
+ }
72
+ return matrix(vec.slice(), r, c);
73
+ },
74
+ VectorZeros: (_loc_id, _source_map, _platformDef, T) => (len) => {
75
+ return allocateTypedArray(T, Number(len));
76
+ },
77
+ VectorOnes: (_loc_id, _source_map, _platformDef, T) => (len) => {
78
+ const arr = allocateTypedArray(T, Number(len));
79
+ arr.fill((arr instanceof BigInt64Array ? 1n : 1));
80
+ return arr;
81
+ },
82
+ VectorFill: (loc_id, source_map, _platformDef, T) => (len, value) => {
83
+ const n = Number(len);
84
+ if (T.type === "Float") {
85
+ const arr = new Float64Array(n);
86
+ arr.fill(value);
87
+ return arr;
88
+ }
89
+ else if (T.type === "Integer") {
90
+ const arr = new BigInt64Array(n);
91
+ arr.fill(value);
92
+ return arr;
93
+ }
94
+ else {
95
+ const arr = new Uint8ClampedArray(n);
96
+ arr.fill(value ? 1 : 0);
97
+ return arr;
98
+ }
99
+ },
100
+ VectorMap: (loc_id, source_map, _platformDef, _T, U) => (vec, f) => {
101
+ const len = vec.length;
102
+ const results = [];
103
+ for (let i = 0; i < len; i++) {
104
+ const elem = vec instanceof Uint8ClampedArray ? (vec[i] !== 0) : vec[i];
105
+ results.push(call_function(loc_id, source_map, f, elem, BigInt(i)));
106
+ }
107
+ return createTypedArray(U, results);
108
+ },
109
+ VectorFold: (loc_id, source_map, _platformDef, _T, _U) => (vec, init, f) => {
110
+ let acc = init;
111
+ for (let i = 0; i < vec.length; i++) {
112
+ const elem = vec instanceof Uint8ClampedArray ? (vec[i] !== 0) : vec[i];
113
+ acc = call_function(loc_id, source_map, f, acc, elem, BigInt(i));
114
+ }
115
+ return acc;
116
+ },
117
+ // Vector elementwise arithmetic + reductions. Reductions fold in index
118
+ // order, left to right — part of the cross-runtime contract, since a
119
+ // reassociated float sum gives a different last bit.
120
+ VectorScale: (loc_id, source_map, _platformDef, T) => {
121
+ const elem = requireNumericElem("VectorScale", T, loc_id, source_map);
122
+ return (v, alpha) => {
123
+ if (elem === "Float") {
124
+ const result = new Float64Array(v.length);
125
+ for (let i = 0; i < v.length; i++)
126
+ result[i] = v[i] * alpha;
127
+ return result;
128
+ }
129
+ const result = new BigInt64Array(v.length);
130
+ for (let i = 0; i < v.length; i++)
131
+ result[i] = wrapI64(v[i] * alpha);
132
+ return result;
133
+ };
134
+ },
135
+ VectorSum: (loc_id, source_map, _platformDef, T) => {
136
+ const elem = requireNumericElem("VectorSum", T, loc_id, source_map);
137
+ return (v) => {
138
+ if (elem === "Float") {
139
+ let acc = 0;
140
+ for (let i = 0; i < v.length; i++)
141
+ acc += v[i];
142
+ return acc;
143
+ }
144
+ let acc = 0n;
145
+ for (let i = 0; i < v.length; i++)
146
+ acc = wrapI64(acc + v[i]);
147
+ return acc;
148
+ };
149
+ },
150
+ VectorAddScaled: (loc_id, source_map, _platformDef, T) => {
151
+ const elem = requireNumericElem("VectorAddScaled", T, loc_id, source_map);
152
+ return (a, b, alpha) => {
153
+ requireSameLength(a, b, loc_id, source_map);
154
+ if (elem === "Float") {
155
+ const result = new Float64Array(a.length);
156
+ for (let i = 0; i < a.length; i++)
157
+ result[i] = a[i] + alpha * b[i];
158
+ return result;
159
+ }
160
+ const result = new BigInt64Array(a.length);
161
+ for (let i = 0; i < a.length; i++)
162
+ result[i] = wrapI64(a[i] + wrapI64(alpha * b[i]));
163
+ return result;
164
+ };
165
+ },
166
+ VectorMul: (loc_id, source_map, _platformDef, T) => {
167
+ const elem = requireNumericElem("VectorMul", T, loc_id, source_map);
168
+ return (a, b) => {
169
+ requireSameLength(a, b, loc_id, source_map);
170
+ if (elem === "Float") {
171
+ const result = new Float64Array(a.length);
172
+ for (let i = 0; i < a.length; i++)
173
+ result[i] = a[i] * b[i];
174
+ return result;
175
+ }
176
+ const result = new BigInt64Array(a.length);
177
+ for (let i = 0; i < a.length; i++)
178
+ result[i] = wrapI64(a[i] * b[i]);
179
+ return result;
180
+ };
181
+ },
182
+ VectorAddScalar: (loc_id, source_map, _platformDef, T) => {
183
+ const elem = requireNumericElem("VectorAddScalar", T, loc_id, source_map);
184
+ return (v, c) => {
185
+ if (elem === "Float") {
186
+ const result = new Float64Array(v.length);
187
+ for (let i = 0; i < v.length; i++)
188
+ result[i] = v[i] + c;
189
+ return result;
190
+ }
191
+ const result = new BigInt64Array(v.length);
192
+ for (let i = 0; i < v.length; i++)
193
+ result[i] = wrapI64(v[i] + c);
194
+ return result;
195
+ };
196
+ },
197
+ VectorDot: (loc_id, source_map, _platformDef, T) => {
198
+ const elem = requireNumericElem("VectorDot", T, loc_id, source_map);
199
+ return (a, b) => {
200
+ requireSameLength(a, b, loc_id, source_map);
201
+ if (elem === "Float") {
202
+ let acc = 0;
203
+ for (let i = 0; i < a.length; i++)
204
+ acc += a[i] * b[i];
205
+ return acc;
206
+ }
207
+ let acc = 0n;
208
+ for (let i = 0; i < a.length; i++)
209
+ acc = wrapI64(acc + wrapI64(a[i] * b[i]));
210
+ return acc;
211
+ };
212
+ },
213
+ VectorMax: (loc_id, source_map, _platformDef, T) => {
214
+ requireNumericElem("VectorMax", T, loc_id, source_map);
215
+ const less = lessFor(T);
216
+ return (v) => {
217
+ if (v.length === 0) {
218
+ throw new EastError("Cannot reduce empty Vector", { location: (source_map?.resolve(loc_id) ?? []) });
219
+ }
220
+ let best = v[0];
221
+ for (let i = 1; i < v.length; i++) {
222
+ if (less(best, v[i]))
223
+ best = v[i];
224
+ }
225
+ return best;
226
+ };
227
+ },
228
+ VectorMin: (loc_id, source_map, _platformDef, T) => {
229
+ requireNumericElem("VectorMin", T, loc_id, source_map);
230
+ const less = lessFor(T);
231
+ return (v) => {
232
+ if (v.length === 0) {
233
+ throw new EastError("Cannot reduce empty Vector", { location: (source_map?.resolve(loc_id) ?? []) });
234
+ }
235
+ let best = v[0];
236
+ for (let i = 1; i < v.length; i++) {
237
+ if (less(v[i], best))
238
+ best = v[i];
239
+ }
240
+ return best;
241
+ };
242
+ },
243
+ VectorArgMax: (loc_id, source_map, _platformDef, T) => {
244
+ requireNumericElem("VectorArgMax", T, loc_id, source_map);
245
+ const less = lessFor(T);
246
+ return (v) => {
247
+ if (v.length === 0) {
248
+ throw new EastError("Cannot reduce empty Vector", { location: (source_map?.resolve(loc_id) ?? []) });
249
+ }
250
+ let bestIdx = 0;
251
+ for (let i = 1; i < v.length; i++) {
252
+ if (less(v[bestIdx], v[i]))
253
+ bestIdx = i;
254
+ }
255
+ return BigInt(bestIdx);
256
+ };
257
+ },
258
+ VectorArgMin: (loc_id, source_map, _platformDef, T) => {
259
+ requireNumericElem("VectorArgMin", T, loc_id, source_map);
260
+ const less = lessFor(T);
261
+ return (v) => {
262
+ if (v.length === 0) {
263
+ throw new EastError("Cannot reduce empty Vector", { location: (source_map?.resolve(loc_id) ?? []) });
264
+ }
265
+ let bestIdx = 0;
266
+ for (let i = 1; i < v.length; i++) {
267
+ if (less(v[i], v[bestIdx]))
268
+ bestIdx = i;
269
+ }
270
+ return BigInt(bestIdx);
271
+ };
272
+ },
273
+ VectorMean: (loc_id, source_map, _platformDef, T) => {
274
+ requireNumericElem("VectorMean", T, loc_id, source_map);
275
+ return (v) => {
276
+ let acc = 0;
277
+ for (let i = 0; i < v.length; i++)
278
+ acc += Number(v[i]);
279
+ return acc / v.length;
280
+ };
281
+ },
282
+ VectorCumSum: (loc_id, source_map, _platformDef, T) => {
283
+ const elem = requireNumericElem("VectorCumSum", T, loc_id, source_map);
284
+ return (v) => {
285
+ if (elem === "Float") {
286
+ const result = new Float64Array(v.length);
287
+ let acc = 0;
288
+ for (let i = 0; i < v.length; i++) {
289
+ acc += v[i];
290
+ result[i] = acc;
291
+ }
292
+ return result;
293
+ }
294
+ const result = new BigInt64Array(v.length);
295
+ let acc = 0n;
296
+ for (let i = 0; i < v.length; i++) {
297
+ acc = wrapI64(acc + v[i]);
298
+ result[i] = acc;
299
+ }
300
+ return result;
301
+ };
302
+ },
303
+ VectorAbs: (loc_id, source_map, _platformDef, T) => {
304
+ const elem = requireNumericElem("VectorAbs", T, loc_id, source_map);
305
+ return (v) => {
306
+ if (elem === "Float") {
307
+ const result = new Float64Array(v.length);
308
+ for (let i = 0; i < v.length; i++) {
309
+ const x = v[i];
310
+ result[i] = x < 0 ? -x : x;
311
+ }
312
+ return result;
313
+ }
314
+ const result = new BigInt64Array(v.length);
315
+ for (let i = 0; i < v.length; i++) {
316
+ const x = v[i];
317
+ result[i] = wrapI64(x < 0n ? -x : x);
318
+ }
319
+ return result;
320
+ };
321
+ },
322
+ VectorClamp: (loc_id, source_map, _platformDef, T) => {
323
+ const elem = requireNumericElem("VectorClamp", T, loc_id, source_map);
324
+ const less = lessFor(T);
325
+ return (v, lo, hi) => {
326
+ const result = elem === "Float" ? new Float64Array(v.length) : new BigInt64Array(v.length);
327
+ for (let i = 0; i < v.length; i++) {
328
+ const x = v[i];
329
+ result[i] = less(x, lo) ? lo : less(hi, x) ? hi : x;
330
+ }
331
+ return result;
332
+ };
333
+ },
334
+ // Vector gather/scatter and sorted search
335
+ VectorGather: (loc_id, source_map, _platformDef, T) => (v, idx) => {
336
+ const result = allocateTypedArray(T, idx.length);
337
+ for (let j = 0; j < idx.length; j++) {
338
+ const i = Number(idx[j]);
339
+ if (i < 0 || i >= v.length) {
340
+ throw new EastError(`Vector index ${idx[j]} out of bounds (length ${v.length})`, { location: (source_map?.resolve(loc_id) ?? []) });
341
+ }
342
+ result[j] = v[i];
343
+ }
344
+ return result;
345
+ },
346
+ VectorScatterAdd: (loc_id, source_map, _platformDef, T) => {
347
+ const elem = requireNumericElem("VectorScatterAdd", T, loc_id, source_map);
348
+ return (dst, idx, src) => {
349
+ requireSameLength(idx, src, loc_id, source_map);
350
+ const result = dst.slice();
351
+ for (let j = 0; j < idx.length; j++) {
352
+ const i = Number(idx[j]);
353
+ if (i < 0 || i >= dst.length) {
354
+ throw new EastError(`Vector index ${idx[j]} out of bounds (length ${dst.length})`, { location: (source_map?.resolve(loc_id) ?? []) });
355
+ }
356
+ if (elem === "Float") {
357
+ result[i] = (result[i]) + src[j];
358
+ }
359
+ else {
360
+ result[i] = wrapI64((result[i]) + src[j]);
361
+ }
362
+ }
363
+ return result;
364
+ };
365
+ },
366
+ VectorSearchSorted: (loc_id, source_map, _platformDef, T) => {
367
+ const less = lessFor(T);
368
+ const readElem = T.type === "Boolean"
369
+ ? (v, i) => v[i] !== 0
370
+ : (v, i) => v[i];
371
+ return (haystack, needles) => {
372
+ const result = new BigInt64Array(needles.length);
373
+ for (let j = 0; j < needles.length; j++) {
374
+ const needle = readElem(needles, j);
375
+ let lo = 0;
376
+ let hi = haystack.length;
377
+ while (lo < hi) {
378
+ const mid = (lo + hi) >>> 1;
379
+ if (less(readElem(haystack, mid), needle)) {
380
+ lo = mid + 1;
381
+ }
382
+ else {
383
+ hi = mid;
384
+ }
385
+ }
386
+ result[j] = BigInt(lo);
387
+ }
388
+ return result;
389
+ };
390
+ },
391
+ // Vector masks and selection (comparisons use East's total order)
392
+ VectorEq: (loc_id, source_map, _platformDef, T) => {
393
+ const equal = equalFor(T);
394
+ const readElem = T.type === "Boolean"
395
+ ? (v, i) => v[i] !== 0
396
+ : (v, i) => v[i];
397
+ return (a, b) => {
398
+ requireSameLength(a, b, loc_id, source_map);
399
+ const result = new Uint8ClampedArray(a.length);
400
+ for (let i = 0; i < a.length; i++)
401
+ result[i] = equal(readElem(a, i), readElem(b, i)) ? 1 : 0;
402
+ return result;
403
+ };
404
+ },
405
+ VectorLt: (loc_id, source_map, _platformDef, T) => {
406
+ const less = lessFor(T);
407
+ const readElem = T.type === "Boolean"
408
+ ? (v, i) => v[i] !== 0
409
+ : (v, i) => v[i];
410
+ return (a, b) => {
411
+ requireSameLength(a, b, loc_id, source_map);
412
+ const result = new Uint8ClampedArray(a.length);
413
+ for (let i = 0; i < a.length; i++)
414
+ result[i] = less(readElem(a, i), readElem(b, i)) ? 1 : 0;
415
+ return result;
416
+ };
417
+ },
418
+ VectorGt: (loc_id, source_map, _platformDef, T) => {
419
+ const greater = greaterFor(T);
420
+ const readElem = T.type === "Boolean"
421
+ ? (v, i) => v[i] !== 0
422
+ : (v, i) => v[i];
423
+ return (a, b) => {
424
+ requireSameLength(a, b, loc_id, source_map);
425
+ const result = new Uint8ClampedArray(a.length);
426
+ for (let i = 0; i < a.length; i++)
427
+ result[i] = greater(readElem(a, i), readElem(b, i)) ? 1 : 0;
428
+ return result;
429
+ };
430
+ },
431
+ VectorSelect: (loc_id, source_map, _platformDef, T) => (mask, a, b) => {
432
+ requireSameLength(mask, a, loc_id, source_map);
433
+ requireSameLength(a, b, loc_id, source_map);
434
+ const result = allocateTypedArray(T, mask.length);
435
+ for (let i = 0; i < mask.length; i++)
436
+ result[i] = (mask[i] !== 0 ? a[i] : b[i]);
437
+ return result;
438
+ },
439
+ VectorCompress: (loc_id, source_map, _platformDef, T) => (mask, v) => {
440
+ requireSameLength(mask, v, loc_id, source_map);
441
+ let count = 0;
442
+ for (let i = 0; i < mask.length; i++) {
443
+ if (mask[i] !== 0)
444
+ count++;
445
+ }
446
+ const result = allocateTypedArray(T, count);
447
+ let j = 0;
448
+ for (let i = 0; i < mask.length; i++) {
449
+ if (mask[i] !== 0)
450
+ result[j++] = v[i];
451
+ }
452
+ return result;
453
+ },
454
+ VectorCountTrue: (_loc_id, _source_map, _platformDef) => (mask) => {
455
+ let count = 0n;
456
+ for (let i = 0; i < mask.length; i++) {
457
+ if (mask[i] !== 0)
458
+ count += 1n;
459
+ }
460
+ return count;
461
+ },
462
+ };
463
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../src/compile/builtins/vector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAA0B,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC1H,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kBAAkB;IAClB,YAAY,EAAE,CAAC,OAAe,EAAE,WAA6B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IAEpM,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,GAAW,EAAE,EAAE;QACvL,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,0BAA0B,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;QACnJ,CAAC;QACD,IAAI,GAAG,YAAY,iBAAiB;YAAE,OAAO,GAAG,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC;IACjB,CAAC;IAED,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,GAAW,EAAE,KAAU,EAAE,EAAE;QACnM,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,0BAA0B,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;QACnJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAgB,CAAC;QACzC,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACxC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACL,MAAc,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE;QACxM,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,iBAAiB,KAAK,KAAK,GAAG,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;QAC/J,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAmD,EAAE,CAAmD,EAAE,EAAE;QAC/N,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAQ,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,GAAU,EAAE,EAAE;QACpI,OAAO,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,EAAE,CAAC,OAAe,EAAE,WAA6B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,EAAE;QAChL,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,cAAc,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;QAC3M,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC,mCAAmC,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;QAC5J,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,EAAE,CAAC,OAAe,EAAE,WAA6B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE;QACnI,OAAO,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,EAAE,CAAC,OAAe,EAAE,WAA6B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE;QAClI,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QAC5I,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,CAAkC,EAAE,EAAE;QAChO,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,GAAG,YAAY,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,EAAiB,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAqD,EAAE,IAAS,EAAE,CAA4C,EAAE,EAAE;QACvP,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,YAAY,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAC1E,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,qDAAqD;IACrD,WAAW,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAChH,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACtE,OAAO,CAAC,CAA+B,EAAE,KAAU,EAAE,EAAE;YACrD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAAY,GAAG,KAAK,CAAC;gBACxE,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAY,GAAG,KAAK,CAAC,CAAC;YACjF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAW,CAAC;gBACzD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,GAAG,OAAO,CAAC,GAAG,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC;YACzE,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;IACD,eAAe,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACpH,MAAM,IAAI,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1E,OAAO,CAAC,CAA+B,EAAE,CAA+B,EAAE,KAAU,EAAE,EAAE;YACtF,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAAY,GAAG,KAAK,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC;gBAC3F,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAY,GAAG,OAAO,CAAC,KAAK,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC;YAC7G,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,CAAC,CAA+B,EAAE,CAA+B,EAAE,EAAE;YAC1E,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC;gBACnF,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,eAAe,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACpH,MAAM,IAAI,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1E,OAAO,CAAC,CAA+B,EAAE,CAAM,EAAE,EAAE;YACjD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC;gBACpE,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,CAAC,CAA+B,EAAE,CAA+B,EAAE,EAAE;YAC1E,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,IAAK,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC;gBAC9E,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAE,CAAC,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC;YACrG,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;oBAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACtC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC;oBAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACtC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACjH,kBAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;oBAAE,OAAO,GAAG,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACjH,kBAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,OAAO,CAAE,CAAC;oBAAE,OAAO,GAAG,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IACD,UAAU,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC/G,kBAAkB,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACxD,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YACxD,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACjH,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACvE,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAW,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAClB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC;gBACtC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC9G,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,CAAC,CAA+B,EAAE,EAAE;YACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;oBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,WAAW,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAChH,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAA+B,EAAE,EAAO,EAAE,EAAO,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;gBACf,MAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAmD,EAAE,GAAkB,EAAE,EAAE;QAC9L,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;YACpJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACrH,MAAM,IAAI,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAiC,EAAE,GAAkB,EAAE,GAAiC,EAAE,EAAE;YAClG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAkC,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC7B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,0BAA0B,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAe,EAAE,CAAC,CAAC;gBACtJ,CAAC;gBACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpB,MAAuB,CAAC,CAAC,CAAC,GAAG,CAAE,MAAuB,CAAC,CAAC,CAAE,CAAC,GAAI,GAAG,CAAC,CAAC,CAAY,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACL,MAAwB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAE,MAAwB,CAAC,CAAC,CAAE,CAAC,GAAI,GAAG,CAAC,CAAC,CAAY,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,kBAAkB,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QACvH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,QAA0D,EAAE,OAAyD,EAAE,EAAE;YAC/H,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACzB,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;wBAC1C,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,EAAE,GAAG,GAAG,CAAC;oBACX,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC7G,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAmD,EAAE,CAAmD,EAAE,EAAE;YAClH,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC7G,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAmD,EAAE,CAAmD,EAAE,EAAE;YAClH,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE;QAC7G,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAmD,EAAE,CAAmD,EAAE,EAAE;YAClH,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,YAAY,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,IAAuB,EAAE,CAAmD,EAAE,CAAmD,EAAE,EAAE;QACxP,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/C,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAU,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,cAAc,EAAE,CAAC,MAAc,EAAE,UAA4B,EAAE,YAAgC,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,IAAuB,EAAE,CAAmD,EAAE,EAAE;QACrM,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,EAAE,CAAC,OAAe,EAAE,WAA6B,EAAE,YAAgC,EAAE,EAAE,CAAC,CAAC,IAAuB,EAAE,EAAE;QACjI,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAC0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import type { AnalyzedIR } from "../analyze.js";
6
+ import { type RuntimeContext } from "./runtime.js";
7
+ import type { IR, NewArrayIR, NewDictIR, NewMatrixIR, NewRefIR, NewSetIR, NewVectorIR, StructIR, VariantIR } from "../ir.js";
8
+ import type { SourceMap } from "../location.js";
9
+ import type { PlatformFunction } from "../platform.js";
10
+ import type { EastTypeValue } from "../type_of_type.js";
11
+ /** Compiles the structs, variants, refs, and the collection literals. */
12
+ export declare function compile_constructors(ir: AnalyzedIR<StructIR | VariantIR | NewRefIR | NewArrayIR | NewSetIR | NewDictIR | NewVectorIR | NewMatrixIR>, ctx: Record<string, EastTypeValue>, platform: Record<string, (...args: any[]) => any>, asyncPlatformFns: Set<string>, platformDef: PlatformFunction[], compilingNodes: Set<IR>, source_map: SourceMap | null): (ctx: RuntimeContext) => any;
13
+ //# sourceMappingURL=constructors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructors.d.ts","sourceRoot":"","sources":["../../../src/compile/constructors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpE,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyBxD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,CA8HhY"}