@scriptc/compiler 0.2.7 → 0.2.9

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 (474) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +3 -0
  2. package/dist/backend/cycle-analysis.js +50 -17
  3. package/dist/backend/cycle-analysis.js.map +1 -1
  4. package/dist/backend/cycle-analysis.test.js +138 -14
  5. package/dist/backend/cycle-analysis.test.js.map +1 -1
  6. package/dist/backend/cycle-mutability.d.ts +31 -6
  7. package/dist/backend/cycle-mutability.js +120 -18
  8. package/dist/backend/cycle-mutability.js.map +1 -1
  9. package/dist/backend/llvm/alloc.d.ts +16 -3
  10. package/dist/backend/llvm/alloc.js +78 -23
  11. package/dist/backend/llvm/alloc.js.map +1 -1
  12. package/dist/backend/llvm/alloc.test.js +5 -5
  13. package/dist/backend/llvm/alloc.test.js.map +1 -1
  14. package/dist/backend/llvm/blocks.d.ts +9 -0
  15. package/dist/backend/llvm/blocks.js +9 -0
  16. package/dist/backend/llvm/blocks.js.map +1 -1
  17. package/dist/backend/llvm/borrowed-receivers.d.ts +7 -0
  18. package/dist/backend/llvm/borrowed-receivers.js +39 -0
  19. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  20. package/dist/backend/llvm/byte-numbers.js +2 -3
  21. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  22. package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
  23. package/dist/backend/llvm/call-lifetimes.js +14 -3
  24. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  25. package/dist/backend/llvm/call-lifetimes.test.js +8 -3
  26. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  27. package/dist/backend/llvm/checked-narrows.d.ts +24 -0
  28. package/dist/backend/llvm/checked-narrows.js +108 -0
  29. package/dist/backend/llvm/checked-narrows.js.map +1 -0
  30. package/dist/backend/llvm/checked-narrows.test.d.ts +1 -0
  31. package/dist/backend/llvm/checked-narrows.test.js +208 -0
  32. package/dist/backend/llvm/checked-narrows.test.js.map +1 -0
  33. package/dist/backend/llvm/classes.d.ts +13 -1
  34. package/dist/backend/llvm/classes.js +32 -23
  35. package/dist/backend/llvm/classes.js.map +1 -1
  36. package/dist/backend/llvm/classes.test.js +32 -3
  37. package/dist/backend/llvm/classes.test.js.map +1 -1
  38. package/dist/backend/llvm/common.d.ts +17 -0
  39. package/dist/backend/llvm/common.js +28 -0
  40. package/dist/backend/llvm/common.js.map +1 -1
  41. package/dist/backend/llvm/debug-info.d.ts +6 -2
  42. package/dist/backend/llvm/debug-info.js +11 -1
  43. package/dist/backend/llvm/debug-info.js.map +1 -1
  44. package/dist/backend/llvm/dense-array-access.js +1 -1
  45. package/dist/backend/llvm/dense-array-access.test.js +89 -0
  46. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  47. package/dist/backend/llvm/dyn.d.ts +8 -4
  48. package/dist/backend/llvm/dyn.js +58 -31
  49. package/dist/backend/llvm/dyn.js.map +1 -1
  50. package/dist/backend/llvm/emitter.d.ts +227 -12
  51. package/dist/backend/llvm/emitter.js +1492 -169
  52. package/dist/backend/llvm/emitter.js.map +1 -1
  53. package/dist/backend/llvm/emitter.test.js +54 -1
  54. package/dist/backend/llvm/emitter.test.js.map +1 -1
  55. package/dist/backend/llvm/expr-async.js +4 -4
  56. package/dist/backend/llvm/expr-async.js.map +1 -1
  57. package/dist/backend/llvm/expr-bytes.d.ts +1 -1
  58. package/dist/backend/llvm/expr-bytes.js +116 -32
  59. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  60. package/dist/backend/llvm/expr-callbacks.js +29 -21
  61. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  62. package/dist/backend/llvm/expr-calls.d.ts +5 -0
  63. package/dist/backend/llvm/expr-calls.js +55 -10
  64. package/dist/backend/llvm/expr-calls.js.map +1 -1
  65. package/dist/backend/llvm/expr-containers.d.ts +7 -1
  66. package/dist/backend/llvm/expr-containers.js +231 -28
  67. package/dist/backend/llvm/expr-containers.js.map +1 -1
  68. package/dist/backend/llvm/expr-context.d.ts +2 -0
  69. package/dist/backend/llvm/expr-control.js +70 -14
  70. package/dist/backend/llvm/expr-control.js.map +1 -1
  71. package/dist/backend/llvm/expr-dynamic.js +75 -21
  72. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  73. package/dist/backend/llvm/expr-island.js +3 -8
  74. package/dist/backend/llvm/expr-island.js.map +1 -1
  75. package/dist/backend/llvm/expr-primitives.js +41 -12
  76. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  77. package/dist/backend/llvm/expr-primitives.test.js +50 -2
  78. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  79. package/dist/backend/llvm/expr-records.js +28 -14
  80. package/dist/backend/llvm/expr-records.js.map +1 -1
  81. package/dist/backend/llvm/expr-stream-bridges.d.ts +3 -0
  82. package/dist/backend/llvm/expr-stream-bridges.js +114 -42
  83. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  84. package/dist/backend/llvm/expr-stream-callbacks.js +6 -3
  85. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  86. package/dist/backend/llvm/layouts.d.ts +2 -1
  87. package/dist/backend/llvm/layouts.js +2 -2
  88. package/dist/backend/llvm/layouts.js.map +1 -1
  89. package/dist/backend/llvm/lib-abi.js +10 -0
  90. package/dist/backend/llvm/lib-abi.js.map +1 -1
  91. package/dist/backend/llvm/lib-filesystem.js +25 -13
  92. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  93. package/dist/backend/llvm/lib-process.js +8 -8
  94. package/dist/backend/llvm/lib-process.js.map +1 -1
  95. package/dist/backend/llvm/lib-shared.js +2 -0
  96. package/dist/backend/llvm/lib-shared.js.map +1 -1
  97. package/dist/backend/llvm/local-array-reads.d.ts +17 -6
  98. package/dist/backend/llvm/local-array-reads.js +223 -51
  99. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  100. package/dist/backend/llvm/local-array-reads.test.js +7 -3
  101. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  102. package/dist/backend/llvm/local-union-storage.js +10 -6
  103. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  104. package/dist/backend/llvm/local-union-storage.test.js +3 -2
  105. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  106. package/dist/backend/llvm/map-number-lookup.d.ts +18 -0
  107. package/dist/backend/llvm/map-number-lookup.js +62 -0
  108. package/dist/backend/llvm/map-number-lookup.js.map +1 -0
  109. package/dist/backend/llvm/map-read-lifetimes.d.ts +6 -0
  110. package/dist/backend/llvm/map-read-lifetimes.js +24 -3
  111. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  112. package/dist/backend/llvm/map-read-lifetimes.test.js +38 -19
  113. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  114. package/dist/backend/llvm/nullable-unions.d.ts +68 -0
  115. package/dist/backend/llvm/nullable-unions.js +132 -0
  116. package/dist/backend/llvm/nullable-unions.js.map +1 -0
  117. package/dist/backend/llvm/publish.d.ts +58 -0
  118. package/dist/backend/llvm/publish.js +286 -0
  119. package/dist/backend/llvm/publish.js.map +1 -0
  120. package/dist/backend/llvm/rebound-parameters.d.ts +12 -0
  121. package/dist/backend/llvm/rebound-parameters.js +72 -0
  122. package/dist/backend/llvm/rebound-parameters.js.map +1 -0
  123. package/dist/backend/llvm/rebound-parameters.test.d.ts +1 -0
  124. package/dist/backend/llvm/rebound-parameters.test.js +67 -0
  125. package/dist/backend/llvm/rebound-parameters.test.js.map +1 -0
  126. package/dist/backend/llvm/reference-effects.d.ts +18 -2
  127. package/dist/backend/llvm/reference-effects.js +140 -17
  128. package/dist/backend/llvm/reference-effects.js.map +1 -1
  129. package/dist/backend/llvm/reference-effects.test.js +52 -1
  130. package/dist/backend/llvm/reference-effects.test.js.map +1 -1
  131. package/dist/backend/llvm/shapes.d.ts +58 -19
  132. package/dist/backend/llvm/shapes.js +171 -62
  133. package/dist/backend/llvm/shapes.js.map +1 -1
  134. package/dist/backend/llvm/shapes.test.js +36 -11
  135. package/dist/backend/llvm/shapes.test.js.map +1 -1
  136. package/dist/backend/llvm/stack-unions.test.js +5 -2
  137. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  138. package/dist/backend/llvm/string-construction.d.ts +10 -0
  139. package/dist/backend/llvm/string-construction.js +42 -0
  140. package/dist/backend/llvm/string-construction.js.map +1 -1
  141. package/dist/backend/llvm/string-key-hash.d.ts +9 -2
  142. package/dist/backend/llvm/string-key-hash.js +20 -3
  143. package/dist/backend/llvm/string-key-hash.js.map +1 -1
  144. package/dist/backend/llvm/string-key-hash.test.js +14 -3
  145. package/dist/backend/llvm/string-key-hash.test.js.map +1 -1
  146. package/dist/backend/llvm/string-lifetimes.test.js +24 -11
  147. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  148. package/dist/backend/llvm/string-reads.d.ts +7 -0
  149. package/dist/backend/llvm/string-reads.js +79 -0
  150. package/dist/backend/llvm/string-reads.js.map +1 -0
  151. package/dist/backend/llvm/string-slices.js +1 -1
  152. package/dist/backend/llvm/switch-dispatch.test.js +1 -1
  153. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -1
  154. package/dist/backend/llvm/test-boxed-unions.d.ts +5 -0
  155. package/dist/backend/llvm/test-boxed-unions.js +13 -0
  156. package/dist/backend/llvm/test-boxed-unions.js.map +1 -0
  157. package/dist/backend/llvm/trunc.d.ts +8 -0
  158. package/dist/backend/llvm/trunc.js +28 -0
  159. package/dist/backend/llvm/trunc.js.map +1 -0
  160. package/dist/backend/llvm/union-repr.d.ts +15 -0
  161. package/dist/backend/llvm/union-repr.js +89 -0
  162. package/dist/backend/llvm/union-repr.js.map +1 -0
  163. package/dist/backend/llvm/virtual-borrows.d.ts +31 -0
  164. package/dist/backend/llvm/virtual-borrows.js +82 -0
  165. package/dist/backend/llvm/virtual-borrows.js.map +1 -0
  166. package/dist/backend/llvm/walk-borrows.d.ts +43 -0
  167. package/dist/backend/llvm/walk-borrows.js +150 -0
  168. package/dist/backend/llvm/walk-borrows.js.map +1 -0
  169. package/dist/backend/llvm/walk-borrows.test.d.ts +1 -0
  170. package/dist/backend/llvm/walk-borrows.test.js +119 -0
  171. package/dist/backend/llvm/walk-borrows.test.js.map +1 -0
  172. package/dist/backend/llvm/walkers.d.ts +5 -1
  173. package/dist/backend/llvm/walkers.js +24 -21
  174. package/dist/backend/llvm/walkers.js.map +1 -1
  175. package/dist/backend/loop-polls.d.ts +14 -0
  176. package/dist/backend/loop-polls.js +100 -0
  177. package/dist/backend/loop-polls.js.map +1 -0
  178. package/dist/backend/loop-polls.test.d.ts +1 -0
  179. package/dist/backend/loop-polls.test.js +86 -0
  180. package/dist/backend/loop-polls.test.js.map +1 -0
  181. package/dist/backend/may-throw.d.ts +29 -1
  182. package/dist/backend/may-throw.js +365 -3
  183. package/dist/backend/may-throw.js.map +1 -1
  184. package/dist/backend/may-throw.test.js +136 -1
  185. package/dist/backend/may-throw.test.js.map +1 -1
  186. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  187. package/dist/backend/native/runtime-inputs.js +1 -0
  188. package/dist/backend/native/runtime-inputs.js.map +1 -1
  189. package/dist/backend/native-codegen-core.d.ts +7 -5
  190. package/dist/backend/native-codegen-core.js +14 -9
  191. package/dist/backend/native-codegen-core.js.map +1 -1
  192. package/dist/backend/native-codegen.d.ts +2 -0
  193. package/dist/backend/native-codegen.js +21 -2
  194. package/dist/backend/native-codegen.js.map +1 -1
  195. package/dist/backend/native-codegen.test.js +41 -10
  196. package/dist/backend/native-codegen.test.js.map +1 -1
  197. package/dist/backend/native-tools.d.ts +2 -0
  198. package/dist/backend/native-tools.js +3 -0
  199. package/dist/backend/native-tools.js.map +1 -1
  200. package/dist/backend/publication.d.ts +28 -0
  201. package/dist/backend/publication.js +155 -0
  202. package/dist/backend/publication.js.map +1 -0
  203. package/dist/backend/publication.test.d.ts +1 -0
  204. package/dist/backend/publication.test.js +72 -0
  205. package/dist/backend/publication.test.js.map +1 -0
  206. package/dist/backend/runtime-abi.d.ts +2 -2
  207. package/dist/backend/runtime-abi.js +2 -2
  208. package/dist/backend/runtime-abi.js.map +1 -1
  209. package/dist/backend/runtime-pack-targets.test.js +1 -1
  210. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  211. package/dist/backend/runtime-pack.test.js +1 -1
  212. package/dist/backend/runtime-pack.test.js.map +1 -1
  213. package/dist/cli/command.js +78 -8
  214. package/dist/cli/command.js.map +1 -1
  215. package/dist/cli/output-options.d.ts +1 -0
  216. package/dist/cli/output-options.js +3 -0
  217. package/dist/cli/output-options.js.map +1 -1
  218. package/dist/cli/usage.d.ts +8 -1
  219. package/dist/cli/usage.js +14 -1
  220. package/dist/cli/usage.js.map +1 -1
  221. package/dist/compile-types.d.ts +17 -3
  222. package/dist/coverage/report.d.ts +25 -2
  223. package/dist/coverage/report.js +161 -33
  224. package/dist/coverage/report.js.map +1 -1
  225. package/dist/coverage/verdict-cache.d.ts +63 -0
  226. package/dist/coverage/verdict-cache.js +193 -0
  227. package/dist/coverage/verdict-cache.js.map +1 -0
  228. package/dist/coverage/verdict-cache.test.d.ts +1 -0
  229. package/dist/coverage/verdict-cache.test.js +52 -0
  230. package/dist/coverage/verdict-cache.test.js.map +1 -0
  231. package/dist/coverage/verdict-semantic.d.ts +2 -0
  232. package/dist/coverage/verdict-semantic.js +24 -0
  233. package/dist/coverage/verdict-semantic.js.map +1 -0
  234. package/dist/coverage/verdict-startup.d.ts +15 -0
  235. package/dist/coverage/verdict-startup.js +66 -0
  236. package/dist/coverage/verdict-startup.js.map +1 -0
  237. package/dist/diagnostics/diagnostic.d.ts +29 -1
  238. package/dist/diagnostics/diagnostic.js +74 -4
  239. package/dist/diagnostics/diagnostic.js.map +1 -1
  240. package/dist/diagnostics/envelope.d.ts +130 -0
  241. package/dist/diagnostics/envelope.js +257 -0
  242. package/dist/diagnostics/envelope.js.map +1 -0
  243. package/dist/diagnostics/envelope.test.d.ts +1 -0
  244. package/dist/diagnostics/envelope.test.js +91 -0
  245. package/dist/diagnostics/envelope.test.js.map +1 -0
  246. package/dist/diagnostics/render.d.ts +3 -0
  247. package/dist/diagnostics/render.js +13 -2
  248. package/dist/diagnostics/render.js.map +1 -1
  249. package/dist/executable/executable-cache.d.ts +2 -0
  250. package/dist/executable/executable-cache.js +3 -0
  251. package/dist/executable/executable-cache.js.map +1 -1
  252. package/dist/executable/executable-cache.test.js +1 -0
  253. package/dist/executable/executable-cache.test.js.map +1 -1
  254. package/dist/executable/prepare.d.ts +4 -0
  255. package/dist/executable/prepare.js +7 -1
  256. package/dist/executable/prepare.js.map +1 -1
  257. package/dist/frontend/analysis.js +1 -0
  258. package/dist/frontend/analysis.js.map +1 -1
  259. package/dist/frontend/lowering/array-values.d.ts +7 -0
  260. package/dist/frontend/lowering/array-values.js +157 -5
  261. package/dist/frontend/lowering/array-values.js.map +1 -1
  262. package/dist/frontend/lowering/builtins/numbers.js +29 -1
  263. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/process.d.ts +4 -0
  265. package/dist/frontend/lowering/builtins/process.js +10 -0
  266. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/strings.js +4 -1
  268. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/workers.js +4 -2
  270. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  271. package/dist/frontend/lowering/call-arguments.js +96 -4
  272. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  273. package/dist/frontend/lowering/class-assertions.d.ts +8 -0
  274. package/dist/frontend/lowering/class-assertions.js +217 -1
  275. package/dist/frontend/lowering/class-assertions.js.map +1 -1
  276. package/dist/frontend/lowering/class-dynamic-dispatch.js +8 -5
  277. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  278. package/dist/frontend/lowering/class-method-mutations.js +88 -0
  279. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  280. package/dist/frontend/lowering/coercions/state.d.ts +6 -0
  281. package/dist/frontend/lowering/coercions/state.js +2 -0
  282. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  283. package/dist/frontend/lowering/coercions/unions.d.ts +8 -0
  284. package/dist/frontend/lowering/coercions/unions.js +67 -2
  285. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  286. package/dist/frontend/lowering/collation-repertoire.d.ts +1 -0
  287. package/dist/frontend/lowering/collation-repertoire.js +19 -0
  288. package/dist/frontend/lowering/collation-repertoire.js.map +1 -0
  289. package/dist/frontend/lowering/construction-escapes.d.ts +38 -0
  290. package/dist/frontend/lowering/construction-escapes.js +146 -0
  291. package/dist/frontend/lowering/construction-escapes.js.map +1 -0
  292. package/dist/frontend/lowering/construction-escapes.test.d.ts +1 -0
  293. package/dist/frontend/lowering/construction-escapes.test.js +150 -0
  294. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -0
  295. package/dist/frontend/lowering/containers/array-callbacks.js +81 -44
  296. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  297. package/dist/frontend/lowering/containers/array-construction.js +15 -2
  298. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  299. package/dist/frontend/lowering/containers/array-methods.js +231 -12
  300. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  301. package/dist/frontend/lowering/containers/bytes.js +15 -4
  302. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  303. package/dist/frontend/lowering/containers/callback-arguments.js +43 -1
  304. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  305. package/dist/frontend/lowering/containers/string-and-regexp.js +7 -63
  306. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  307. package/dist/frontend/lowering/cycle-initialization.d.ts +6 -1
  308. package/dist/frontend/lowering/cycle-initialization.js +59 -33
  309. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  310. package/dist/frontend/lowering/divergences.d.ts +9 -0
  311. package/dist/frontend/lowering/divergences.js +630 -0
  312. package/dist/frontend/lowering/divergences.js.map +1 -0
  313. package/dist/frontend/lowering/expressions/object-literals.js +40 -2
  314. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  315. package/dist/frontend/lowering/expressions/union-fields.d.ts +19 -0
  316. package/dist/frontend/lowering/expressions/union-fields.js +236 -0
  317. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -0
  318. package/dist/frontend/lowering/lower-calls.d.ts +5 -0
  319. package/dist/frontend/lowering/lower-calls.js +237 -158
  320. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  321. package/dist/frontend/lowering/lower-classes.d.ts +4 -0
  322. package/dist/frontend/lowering/lower-classes.js +72 -22
  323. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  324. package/dist/frontend/lowering/lower-exprs.d.ts +19 -0
  325. package/dist/frontend/lowering/lower-exprs.js +592 -109
  326. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  327. package/dist/frontend/lowering/lower-generators.d.ts +19 -13
  328. package/dist/frontend/lowering/lower-generators.js +67 -44
  329. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  330. package/dist/frontend/lowering/lower-inspect.js +3 -2
  331. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  332. package/dist/frontend/lowering/lower-island.d.ts +1 -1
  333. package/dist/frontend/lowering/lower-island.js +10 -7
  334. package/dist/frontend/lowering/lower-island.js.map +1 -1
  335. package/dist/frontend/lowering/lower-modules.js +90 -1
  336. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  337. package/dist/frontend/lowering/lower-stmts.js +47 -7
  338. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  339. package/dist/frontend/lowering/lowerer.d.ts +83 -2
  340. package/dist/frontend/lowering/lowerer.js +1158 -79
  341. package/dist/frontend/lowering/lowerer.js.map +1 -1
  342. package/dist/frontend/lowering/nan-coded-reads.d.ts +161 -0
  343. package/dist/frontend/lowering/nan-coded-reads.js +1342 -0
  344. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -0
  345. package/dist/frontend/lowering/runtime-optional-bounds.d.ts +31 -0
  346. package/dist/frontend/lowering/runtime-optional-bounds.js +360 -0
  347. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -0
  348. package/dist/frontend/lowering/runtime-optional-bounds.test.d.ts +1 -0
  349. package/dist/frontend/lowering/runtime-optional-bounds.test.js +94 -0
  350. package/dist/frontend/lowering/runtime-optional-bounds.test.js.map +1 -0
  351. package/dist/frontend/lowering/runtime-optional-elements.d.ts +117 -0
  352. package/dist/frontend/lowering/runtime-optional-elements.js +738 -0
  353. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -0
  354. package/dist/frontend/lowering/runtime-optional-guards.d.ts +36 -0
  355. package/dist/frontend/lowering/runtime-optional-guards.js +375 -0
  356. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -0
  357. package/dist/frontend/lowering/runtime-optional-guards.test.d.ts +1 -0
  358. package/dist/frontend/lowering/runtime-optional-guards.test.js +92 -0
  359. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -0
  360. package/dist/frontend/lowering/runtime-optional-ownership.d.ts +63 -0
  361. package/dist/frontend/lowering/runtime-optional-ownership.js +382 -0
  362. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -0
  363. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +2 -1
  364. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -1
  365. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  366. package/dist/frontend/lowering/string-index-bounds.d.ts +36 -0
  367. package/dist/frontend/lowering/string-index-bounds.js +537 -0
  368. package/dist/frontend/lowering/string-index-bounds.js.map +1 -0
  369. package/dist/frontend/lowering/string-index-bounds.test.d.ts +1 -0
  370. package/dist/frontend/lowering/string-index-bounds.test.js +223 -0
  371. package/dist/frontend/lowering/string-index-bounds.test.js.map +1 -0
  372. package/dist/frontend/lowering/surfaces.js +8 -0
  373. package/dist/frontend/lowering/surfaces.js.map +1 -1
  374. package/dist/frontend/lowering/union-narrow.d.ts +2 -0
  375. package/dist/frontend/lowering/union-narrow.js +10 -6
  376. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  377. package/dist/frontend/program-analysis.d.ts +10 -0
  378. package/dist/frontend/program-analysis.js +7 -0
  379. package/dist/frontend/program-analysis.js.map +1 -1
  380. package/dist/frontend/program.d.ts +25 -0
  381. package/dist/frontend/program.js +613 -17
  382. package/dist/frontend/program.js.map +1 -1
  383. package/dist/frontend/program.test.js +64 -1
  384. package/dist/frontend/program.test.js.map +1 -1
  385. package/dist/frontend/resolve.d.ts +6 -0
  386. package/dist/frontend/resolve.js +14 -0
  387. package/dist/frontend/resolve.js.map +1 -1
  388. package/dist/frontend/threads-import.d.ts +5 -0
  389. package/dist/frontend/threads-import.js +21 -0
  390. package/dist/frontend/threads-import.js.map +1 -0
  391. package/dist/frontend/type-mapper.d.ts +3 -0
  392. package/dist/frontend/type-mapper.js +72 -6
  393. package/dist/frontend/type-mapper.js.map +1 -1
  394. package/dist/frontend/worker-target.d.ts +4 -0
  395. package/dist/frontend/worker-target.js +8 -1
  396. package/dist/frontend/worker-target.js.map +1 -1
  397. package/dist/index.d.ts +7 -2
  398. package/dist/index.js +67 -17
  399. package/dist/index.js.map +1 -1
  400. package/dist/ir/build.d.ts +5 -0
  401. package/dist/ir/build.js +7 -0
  402. package/dist/ir/build.js.map +1 -1
  403. package/dist/ir/builtin-signatures.d.ts +1 -1
  404. package/dist/ir/builtin-signatures.js +5 -0
  405. package/dist/ir/builtin-signatures.js.map +1 -1
  406. package/dist/ir/constant-globals.d.ts +14 -0
  407. package/dist/ir/constant-globals.js +81 -0
  408. package/dist/ir/constant-globals.js.map +1 -0
  409. package/dist/ir/constant-globals.test.d.ts +1 -0
  410. package/dist/ir/constant-globals.test.js +97 -0
  411. package/dist/ir/constant-globals.test.js.map +1 -0
  412. package/dist/ir/final-fields.d.ts +35 -0
  413. package/dist/ir/final-fields.js +187 -0
  414. package/dist/ir/final-fields.js.map +1 -0
  415. package/dist/ir/final-fields.test.d.ts +1 -0
  416. package/dist/ir/final-fields.test.js +106 -0
  417. package/dist/ir/final-fields.test.js.map +1 -0
  418. package/dist/ir/int32-slots.d.ts +81 -0
  419. package/dist/ir/int32-slots.js +850 -0
  420. package/dist/ir/int32-slots.js.map +1 -0
  421. package/dist/ir/int32-slots.test.d.ts +1 -0
  422. package/dist/ir/int32-slots.test.js +249 -0
  423. package/dist/ir/int32-slots.test.js.map +1 -0
  424. package/dist/ir/integer-loops.d.ts +5 -0
  425. package/dist/ir/integer-loops.js +20 -4
  426. package/dist/ir/integer-loops.js.map +1 -1
  427. package/dist/ir/integer-loops.test.js +17 -0
  428. package/dist/ir/integer-loops.test.js.map +1 -1
  429. package/dist/ir/integer-ranges.d.ts +19 -3
  430. package/dist/ir/integer-ranges.js +168 -23
  431. package/dist/ir/integer-ranges.js.map +1 -1
  432. package/dist/ir/integer-ranges.test.js +74 -2
  433. package/dist/ir/integer-ranges.test.js.map +1 -1
  434. package/dist/ir/ir.d.ts +30 -7
  435. package/dist/ir/ir.js +4 -0
  436. package/dist/ir/ir.js.map +1 -1
  437. package/dist/ir/serialize.d.ts +12 -2
  438. package/dist/ir/serialize.js +190 -39
  439. package/dist/ir/serialize.js.map +1 -1
  440. package/dist/ir/serialize.test.js +65 -1
  441. package/dist/ir/serialize.test.js.map +1 -1
  442. package/dist/ir/validate.js +21 -2
  443. package/dist/ir/validate.js.map +1 -1
  444. package/dist/ir/validate.test.js +39 -0
  445. package/dist/ir/validate.test.js.map +1 -1
  446. package/dist/native/cache.d.ts +11 -1
  447. package/dist/native/cache.js +87 -2
  448. package/dist/native/cache.js.map +1 -1
  449. package/dist/native/cache.test.js +32 -1
  450. package/dist/native/cache.test.js.map +1 -1
  451. package/dist/native/cli.js +1 -1
  452. package/dist/native/cli.js.map +1 -1
  453. package/dist/native/compiler.d.ts +5 -0
  454. package/dist/native/compiler.js +55 -7
  455. package/dist/native/compiler.js.map +1 -1
  456. package/dist/native/prepare.d.ts +7 -1
  457. package/dist/native/prepare.js +65 -29
  458. package/dist/native/prepare.js.map +1 -1
  459. package/dist/native/prepare.test.js +23 -1
  460. package/dist/native/prepare.test.js.map +1 -1
  461. package/dist/native/text-file.d.ts +10 -0
  462. package/dist/native/text-file.js +41 -0
  463. package/dist/native/text-file.js.map +1 -0
  464. package/dist/startup-cache.d.ts +2 -0
  465. package/dist/startup-cache.js +2 -0
  466. package/dist/startup-cache.js.map +1 -1
  467. package/dist/text-parts.d.ts +5 -0
  468. package/dist/text-parts.js +36 -0
  469. package/dist/text-parts.js.map +1 -0
  470. package/package.json +20 -20
  471. package/surface-manifest.json +7 -1
  472. package/dist/frontend/lowering/expressions/union-field-write.d.ts +0 -8
  473. package/dist/frontend/lowering/expressions/union-field-write.js +0 -108
  474. package/dist/frontend/lowering/expressions/union-field-write.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lib-shared.js","sourceRoot":"","sources":["../../../src/backend/llvm/lib-shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;sEACsE;AACtE,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,CAAc,EACd,GAAW;IAEX,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,kBAAkB;IAClC,yBAAyB,EAAE,iCAAiC;IAC5D,mBAAmB,EAAE,wBAAwB;IAC7C,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;IACjC,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,uBAAuB;IAC5C,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,yBAAyB,EAAE,8BAA8B;IACzD,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,4BAA4B;IACpD,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,8BAA8B,EAAE,qCAAqC;IACrE,kCAAkC,EAAE,yCAAyC;IAC7E,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAEhD,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,yBAAyB,EAAE,4BAA4B;IACvD,4BAA4B,EAAE,+BAA+B;IAC7D,yBAAyB,EAAE,+BAA+B;IAC1D,+BAA+B,EAAE,mBAAmB;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,wBAAwB,EAAE,+BAA+B;IACzD,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,sBAAsB;IACrC,gBAAgB,EAAE,yBAAyB;IAC3C,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,eAAe;IAC/B,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,sBAAsB;IACxC,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,cAAc;IAC1B,uEAAuE;IACvE,sDAAsD;IACtD,wBAAwB,EAAE,8BAA8B;IACxD,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,qBAAqB;IACvC,mEAAmE;IACnE,qEAAqE;IACrE,cAAc,EAAE,eAAe;IAC/B,eAAe,EAAE,gBAAgB;IACjC,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,iBAAiB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,cAAc,EAAE,mBAAmB;IACnC,aAAa,EAAE,kBAAkB;IACjC,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,2BAA2B;IACjD,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,wBAAwB,EAAE,4BAA4B;IACtD,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,sBAAsB;IACzC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,qBAAqB,EAAE,0BAA0B;IACjD,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,yBAAyB;IAC/C,4BAA4B,EAAE,mCAAmC;IACjE,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,qBAAqB;IACvC,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,kBAAkB,EAAE,sBAAsB;IAC1C,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,oBAAoB;IACtC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,4BAA4B;IACrD,4BAA4B,EAAE,iCAAiC;IAC/D,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,yBAAyB,EAAE,8BAA8B;IACzD,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,oBAAoB;IACtC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,iBAAiB,EAAE,qBAAqB;IACxC,WAAW,EAAE,eAAe;IAC5B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,qBAAqB;IACxC,eAAe,EAAE,mBAAmB;IACpC,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,UAAU,EAAE,cAAc;IAC1B,yBAAyB,EAAE,sBAAsB;IACjD,2BAA2B,EAAE,wBAAwB;IACrD,iBAAiB,EAAE,cAAc;IACjC,mBAAmB,EAAE,gBAAgB;IACrC,qBAAqB,EAAE,mBAAmB;IAC1C,uBAAuB,EAAE,qBAAqB;IAC9C,uBAAuB,EAAE,qBAAqB;IAC9C,yBAAyB,EAAE,uBAAuB;IAClD,2BAA2B,EAAE,0BAA0B;IACvD,6BAA6B,EAAE,4BAA4B;IAC3D,gBAAgB,EAAE,oBAAoB;IACtC,yBAAyB,EAAE,sBAAsB;IACjD,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,kBAAkB;IAClC,qBAAqB,EAAE,2BAA2B;IAClD,yBAAyB,EAAE,+BAA+B;IAC1D,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,eAAe;IACnC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,mBAAmB;IACpC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,cAAc;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,yBAAyB;IAC3C,YAAY,EAAE,yBAAyB;IACvC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,yBAAyB;IAC9C,UAAU,EAAE,cAAc;IAC1B,kBAAkB,EAAE,8BAA8B;IAClD,qBAAqB,EAAE,4BAA4B;IACnD,eAAe,EAAE,0BAA0B;IAC3C,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE,yBAAyB;IACzC,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,wBAAwB;IACvC,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,0BAA0B;IAC3C,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,0BAA0B;IAChD,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,2BAA2B;IACtD,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,eAAe;IAChC,sEAAsE;IACtE,mEAAmE;IACnE,yBAAyB,EAAE,uBAAuB;IAClD,kBAAkB,EAAE,iBAAiB;IACrC,uBAAuB,EAAE,iBAAiB;IAC1C,eAAe,EAAE,mBAAmB;IACpC,qBAAqB,EAAE,2BAA2B;IAClD,kBAAkB,EAAE,mBAAmB;IACvC,mBAAmB,EAAE,oBAAoB;IACzC,cAAc,EAAE,cAAc;IAC9B,uBAAuB,EAAE,wBAAwB;IACjD,gBAAgB,EAAE,gBAAgB;IAClC,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,iBAAiB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,eAAe,EAAE,eAAe;IAChC,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,eAAe;IAChC,oEAAoE;IACpE,mEAAmE;IACnE,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,mBAAmB;IACnC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,mBAAmB,EAAE,wBAAwB;IAC7C,uBAAuB,EAAE,4BAA4B;IACrD,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,0EAA0E;IAC1E,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,0BAA0B,EAAE,+BAA+B;IAC3D,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,+BAA+B;IAC1D,qBAAqB,EAAE,2BAA2B;IAClD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;IAChD,+DAA+D;IAC/D,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,gBAAgB,EAAE,oBAAoB;IACtC,uBAAuB,EAAE,4BAA4B;IACrD,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,4BAA4B;IACjD,mBAAmB,EAAE,2BAA2B;IAChD,mBAAmB,EAAE,uBAAuB;IAC5C,kEAAkE;IAClE,+DAA+D;IAC/D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,4BAA4B;IACrD,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,4BAA4B;IACrD,uBAAuB,EAAE,4BAA4B;IACrD,oBAAoB,EAAE,uBAAuB;IAC7C,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,oBAAoB;IACtC,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,0BAA0B;IAChD,cAAc,EAAE,qBAAqB;IACrC,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,wBAAwB;IAC5C,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB,EAAE,yBAAyB;IAClD,wBAAwB,EAAE,0BAA0B;IACpD,oBAAoB,EAAE,sBAAsB;IAC5C,uEAAuE;IACvE,6CAA6C;IAC7C,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,uBAAuB;IACxC,gBAAgB,EAAE,wBAAwB;IAC1C,gBAAgB,EAAE,wBAAwB;IAC1C,cAAc,EAAE,cAAc;IAC9B,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,qBAAqB;IACpC,gBAAgB,EAAE,wBAAwB;IAC1C,iBAAiB,EAAE,qBAAqB;IACxC,eAAe,EAAE,uBAAuB;IACxC,oBAAoB,EAAE,qBAAqB;IAC3C,uBAAuB,EAAE,wBAAwB;IACjD,aAAa,EAAE,aAAa;IAC5B,oBAAoB,EAAE,qBAAqB;IAC3C,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,iBAAiB,EAAE,uBAAuB;IAC1C,cAAc,EAAE,cAAc;IAC9B,sEAAsE;IACtE,wBAAwB;IACxB,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,kBAAkB;IACvC,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yBAAyB;IAC/C,yBAAyB,EAAE,+BAA+B;IAC1D,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,0BAA0B,EAAE,gCAAgC;IAC5D,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,YAAY,EAAE,gBAAgB;IAC9B,4DAA4D;IAC5D,mEAAmE;IACnE,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,wBAAwB;IACrC,oBAAoB,EAAE,yBAAyB;IAC/C,4BAA4B,EAAE,0BAA0B;IACxD,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,wBAAwB,EAAE,8BAA8B;IACxD,mBAAmB,EAAE,wBAAwB;IAC7C,uBAAuB,EAAE,6BAA6B;IACtD,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,0BAA0B,EAAE,gCAAgC;IAC5D,0BAA0B,EAAE,gCAAgC;IAC5D,aAAa,EAAE,iBAAiB;IAChC,sEAAsE;IACtE,mEAAmE;IACnE,wCAAwC;IACxC,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,gBAAgB,EAAE,qBAAqB;IACvC,UAAU,EAAE,cAAc;IAC1B,4DAA4D;IAC5D,qEAAqE;IACrE,0BAA0B;IAC1B,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,mBAAmB;IACpC,+DAA+D;IAC/D,+DAA+D;IAC/D,sEAAsE;IACtE,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,kBAAkB;IAClC,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,iBAAiB;IACzC,0BAA0B,EAAE,yBAAyB;IACrD,0BAA0B,EAAE,iCAAiC;IAC7D,yBAAyB,EAAE,gCAAgC;IAC3D,0BAA0B,EAAE,2BAA2B;IACvD,sBAAsB,EAAE,qBAAqB;IAC7C,mBAAmB,EAAE,mBAAmB;IACxC,2BAA2B,EAAE,4BAA4B;IACzD,wBAAwB,EAAE,mBAAmB;IAC7C,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,cAAc,EAAE,mBAAmB;IACnC,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,eAAe;IAC5B,gBAAgB,EAAE,qBAAqB;IACvC,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,eAAe;IAC3B,oEAAoE;IACpE,sEAAsE;IACtE,wEAAwE;IACxE,oEAAoE;IACpE,0CAA0C;IAC1C,WAAW,EAAE,8BAA8B;IAC3C,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,oEAAoE;IACpE,2CAA2C;IAC3C,eAAe,EAAE,mBAAmB;IACpC,wBAAwB,EAAE,uBAAuB;IACjD,uBAAuB,EAAE,qBAAqB;IAC9C,oEAAoE;IACpE,oEAAoE;IACpE,mBAAmB,EAAE,gBAAgB;IACrC,iBAAiB,EAAE,sBAAsB;IACzC,oEAAoE;IACpE,qEAAqE;IACrE,qEAAqE;IACrE,iEAAiE;IACjE,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,0BAA0B;IAClD,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,WAAW,EAAE,eAAe;IAC5B,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,kBAAkB;IACrC,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,yBAAyB;IAC9C,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,yBAAyB;IAC/C,wBAAwB,EAAE,8BAA8B;IACxD,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,sBAAsB;IACtC,YAAY,EAAE,gBAAgB;IAC9B,iBAAiB,EAAE,sBAAsB;IACzC,oBAAoB,EAAE,yBAAyB;IAC/C,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;IAC1B,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,+BAA+B;IACnD,iBAAiB,EAAE,8BAA8B;IACjD,qBAAqB,EAAE,kCAAkC;IACzD,qBAAqB,EAAE,kCAAkC;IACzD,kBAAkB,EAAE,+BAA+B;IACnD,mBAAmB,EAAE,gCAAgC;IACrD,qBAAqB,EAAE,mCAAmC;IAC1D,0BAA0B,EAAE,yCAAyC;IACrE,sBAAsB,EAAE,oCAAoC;IAC5D,2BAA2B,EAAE,0CAA0C;IACvE,iBAAiB,EAAE,8BAA8B;IACjD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,iBAAiB,EAAE,sBAAsB;IACzC,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,qBAAqB;IACtC,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,iBAAiB;IAChC,qBAAqB,EAAE,qBAAqB;IAC5C,qBAAqB,EAAE,qBAAqB;IAC5C,YAAY,EAAE,mBAAmB;IACjC,gEAAgE;IAChE,gEAAgE;IAChE,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,aAAa,EAAE,kBAAkB;IACjC,mBAAmB,EAAE,wBAAwB;IAC7C,aAAa,EAAE,iBAAiB;IAChC,qBAAqB,EAAE,gCAAgC;IACvD,eAAe,EAAE,yBAAyB;IAC1C,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,2BAA2B,EAAE,iCAAiC;IAC9D,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,0BAA0B;IACjD,0BAA0B,EAAE,gCAAgC;IAC5D,oBAAoB,EAAE,yBAAyB;IAC/C,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,YAAY,EAAE,gBAAgB;IAC9B,mBAAmB,EAAE,wBAAwB;IAC7C,wBAAwB,EAAE,6BAA6B;IACvD,qBAAqB,EAAE,0BAA0B;IACjD,YAAY,EAAE,iBAAiB;IAC/B,oBAAoB,EAAE,0BAA0B;IAChD,eAAe,EAAE,oBAAoB;IACrC,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,0BAA0B;IAChD,oBAAoB,EAAE,0BAA0B;IAChD,kCAAkC,EAAE,yCAAyC;IAC7E,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,wBAAwB,EAAE,8BAA8B;IACxD,gBAAgB,EAAE,0BAA0B;IAC5C,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,kBAAkB;IAClC,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,2BAA2B;IAClD,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,iBAAiB,EAAE,sBAAsB;IACzC,oBAAoB,EAAE,yBAAyB;IAC/C,8BAA8B,EAAE,qCAAqC;IACrE,oBAAoB,EAAE,0BAA0B;IAChD,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,oBAAoB;IACrC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,yBAAyB;IAC3C,mBAAmB,EAAE,2BAA2B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,4BAA4B;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,mBAAmB;IACpC,UAAU,EAAE,kBAAkB;IAC9B,mBAAmB,EAAE,kBAAkB;IACvC,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,gBAAgB;IAC7B,oBAAoB,EAAE,2BAA2B;IACjD,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,oBAAoB;IACpB,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,iCAAiC;IAC9D,sBAAsB,EAAE,4BAA4B;IACpD,yBAAyB,EAAE,gCAAgC;IAC3D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,8BAA8B;IACvD,sBAAsB,EAAE,wBAAwB;IAChD,cAAc,EAAE,cAAc;IAC9B,kBAAkB,EAAE,mBAAmB;IACvC,2BAA2B,EAAE,6BAA6B;IAC1D,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,qBAAqB,EAAE,qBAAqB;IAC5C,iBAAiB,EAAE,2BAA2B;IAC9C,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,gCAAgC;IAC3D,uEAAuE;IACvE,oEAAoE;IACpE,gEAAgE;IAChE,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,eAAe;IACf,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,uBAAuB,EAAE,4BAA4B;IACrD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,eAAe,EAAE,4BAA4B;IAC7C,iBAAiB,EAAE,+BAA+B;IAClD,kBAAkB,EAAE,gCAAgC;IACpD,eAAe,EAAE,yBAAyB;IAC1C,mBAAmB,EAAE,uBAAuB;IAC5C,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,0BAA0B,EAAE,iCAAiC;IAC7D,gBAAgB,EAAE,qBAAqB;IACvC,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,mEAAmE;IACnE,8DAA8D;IAC9D,qEAAqE;IACrE,kEAAkE;IAClE,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,qBAAqB;IACzC,qBAAqB,EAAE,yBAAyB;IAChD,uBAAuB,EAAE,8BAA8B;IACvD,mBAAmB,EAAE,sBAAsB;IAC3C,kBAAkB,EAAE,qBAAqB;IACzC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,wBAAwB;IAC/C,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,sBAAsB;IAC3C,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,uBAAuB,EAAE,2BAA2B;IACpD,kBAAkB,EAAE,qBAAqB;IACzC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,oBAAoB;IACzC,sBAAsB,EAAE,2BAA2B;IACnD,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,qBAAqB;IACzC,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,2BAA2B;IAC5C,kBAAkB,EAAE,8BAA8B;IAClD,oBAAoB,EAAE,gCAAgC;IACtD,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,yBAAyB;IAC7C,gBAAgB,EAAE,uBAAuB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,kBAAkB,EAAE,uBAAuB;IAC3C,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,0BAA0B,EAAE,gCAAgC;IAC5D,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,aAAa,EAAE,kBAAkB;IACjC,yBAAyB,EAAE,+BAA+B;IAC1D,0BAA0B,EAAE,gCAAgC;IAC5D,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,2BAA2B;IAClD,0BAA0B,EAAE,iCAAiC;IAC7D,0BAA0B,EAAE,iCAAiC;IAC7D,iBAAiB,EAAE,2BAA2B;IAC9C,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,mBAAmB,EAAE,yBAAyB;IAC9C,wBAAwB,EAAE,+BAA+B;IACzD,2BAA2B,EAAE,mCAAmC;IAChE,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,2BAA2B;IACjD,uBAAuB,EAAE,6BAA6B;IACtD,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,gCAAgC;IAC3D,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,yBAAyB;IAC7C,gBAAgB,EAAE,uBAAuB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,4BAA4B;IACpD,qBAAqB,EAAE,2BAA2B;IAClD,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,qBAAqB;IACvC,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,yBAAyB;IAC9C,mBAAmB,EAAE,yBAAyB;IAC9C,sBAAsB,EAAE,6BAA6B;IACrD,sBAAsB,EAAE,6BAA6B;IACrD,iBAAiB,EAAE,sBAAsB;IACzC,0BAA0B,EAAE,gCAAgC;IAC5D,qBAAqB,EAAE,wBAAwB;IAC/C,qBAAqB,EAAE,4BAA4B;IACnD,gCAAgC,EAAE,oCAAoC;IACtE,gCAAgC,EAAE,wCAAwC;IAC1E,oBAAoB,EAAE,gCAAgC;IACtD,mBAAmB,EAAE,+BAA+B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,+BAA+B;IACzD,sBAAsB,EAAE,6BAA6B;IACrD,2BAA2B,EAAE,wCAAwC;IACrE,mCAAmC,EAAE,2CAA2C;IAChF,uBAAuB,EAAE,4BAA4B;IACrD,uBAAuB,EAAE,kCAAkC;IAC3D,gCAAgC,EAAE,sCAAsC;IACxE,iCAAiC,EAAE,uCAAuC;IAC1E,uBAAuB,EAAE,4BAA4B;IACrD,6BAA6B,EAAE,mCAAmC;IAClE,kBAAkB,EAAE,2BAA2B;IAC/C,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,kCAAkC;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,2BAA2B,EAAE,kCAAkC;IAC/D,8BAA8B,EAAE,sCAAsC;IACtE,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,4BAA4B;IACnD,mBAAmB,EAAE,0BAA0B;IAC/C,yBAAyB,EAAE,+BAA+B;IAC1D,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,wBAAwB;IAC7C,2BAA2B,EAAE,iCAAiC;IAC9D,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,wBAAwB,EAAE,8BAA8B;IACxD,0BAA0B,EAAE,gCAAgC;IAC5D,6BAA6B,EAAE,mCAAmC;IAClE,mBAAmB,EAAE,wBAAwB;IAC7C,yBAAyB,EAAE,+BAA+B;IAC1D,uBAAuB,EAAE,6BAA6B;IACtD,+BAA+B,EAAE,sCAAsC;IACvE,uBAAuB,EAAE,6BAA6B;IACtD,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,oBAAoB,EAAE,gCAAgC;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,yBAAyB;IAC/C,sBAAsB,EAAE,2BAA2B;IACnD,uBAAuB,EAAE,6BAA6B;IACtD,eAAe,EAAE,oBAAoB;IACrC,oEAAoE;IACpE,uEAAuE;IACvE,iEAAiE;IACjE,yCAAyC;IACzC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,sEAAsE;IACtE,kEAAkE;IAClE,+DAA+D;IAC/D,eAAe,EAAE,oBAAoB;IACrC,iBAAiB,EAAE,sBAAsB;IACzC,uEAAuE;IACvE,sEAAsE;IACtE,aAAa,EAAE,iBAAiB;IAChC,sEAAsE;IACtE,0DAA0D;IAC1D,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,mBAAmB,EAAE,wBAAwB;IAC7C,YAAY,EAAE,gBAAgB;IAC9B,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,yBAAyB;IAC/C,uBAAuB,EAAE,6BAA6B;IACtD,aAAa,EAAE,kBAAkB;IACjC,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,oBAAoB;IACrC,qEAAqE;IACrE,8DAA8D;IAC9D,gEAAgE;IAChE,8CAA8C;IAC9C,mBAAmB,EAAE,wBAAwB;IAC7C,qBAAqB,EAAE,2BAA2B;IAClD,cAAc,EAAE,mBAAmB;IACnC,qBAAqB,EAAE,2BAA2B;IAClD,gBAAgB,EAAE,qBAAqB;IACvC,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,qEAAqE;IACrE,kFAAkF;IAClF,kDAAkD;IAClD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,wBAAwB;IAC5C,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,kEAAkE;IAClE,6DAA6D;IAC7D,kEAAkE;IAClE,6BAA6B;IAC7B,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,0BAA0B;IACjD,6BAA6B,EAAE,mCAAmC;IAClE,8BAA8B,EAAE,oCAAoC;IACpE,8BAA8B,EAAE,oCAAoC;IACpE,+BAA+B,EAAE,qCAAqC;IACtE,4BAA4B,EAAE,kCAAkC;IAChE,6BAA6B,EAAE,mCAAmC;IAClE,iEAAiE;IACjE,4DAA4D;IAC5D,WAAW,EAAE,eAAe;IAC5B,gBAAgB,EAAE,qBAAqB;IACvC,8DAA8D;IAC9D,oEAAoE;IACpE,qDAAqD;IACrD,eAAe,EAAE,gBAAgB;IACjC,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,mBAAmB;IACpC,qEAAqE;IACrE,kEAAkE;IAClE,kFAAkF;IAClF,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,qBAAqB;IACtC,YAAY,EAAE,iBAAiB;IAC/B,0BAA0B,EAAE,gCAAgC;IAC5D,YAAY,EAAE,gBAAgB;IAC9B,wBAAwB,EAAE,8BAA8B;IACxD,gBAAgB,EAAE,qBAAqB;IACvC,kEAAkE;IAClE,mEAAmE;IACnE,+DAA+D;IAC/D,cAAc,EAAE,mBAAmB;IACnC,oBAAoB,EAAE,0BAA0B;IAChD,wBAAwB,EAAE,+BAA+B;IACzD,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,wBAAwB,EAAE,4BAA4B;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,sBAAsB,EAAE,2BAA2B;IACnD,qBAAqB,EAAE,0BAA0B;IACjD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,wBAAwB,EAAE,8BAA8B;IACxD,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,0BAA0B,EAAE,gCAAgC;IAC5D,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,eAAe,EAAE,oBAAoB;IACrC,6BAA6B,EAAE,oCAAoC;IACnE,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,yBAAyB,EAAE,gCAAgC;IAC3D,aAAa,EAAE,kBAAkB;IACjC,2BAA2B,EAAE,kCAAkC;IAC/D,+BAA+B,EAAE,sCAAsC;IACvE,uBAAuB,EAAE,4BAA4B;IACrD,kBAAkB,EAAE,uBAAuB;IAC3C,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,sBAAsB;IAC7C,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,WAAW,EAAE,eAAe;IAC5B,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,sEAAsE;IACtE,gEAAgE;IAChE,sDAAsD;IACtD,0BAA0B,EAAE,yBAAyB;IACrD,4BAA4B,EAAE,6BAA6B;IAC3D,yBAAyB,EAAE,uBAAuB;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS;IACjD,YAAY;IACZ,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;IACjB,yBAAyB;IACzB,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,2BAA2B;IAC3B,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,8DAA8D;IAC9D,qEAAqE;IACrE,6CAA6C;IAC7C,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,6BAA6B;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,yBAAyB;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"lib-shared.js","sourceRoot":"","sources":["../../../src/backend/llvm/lib-shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;sEACsE;AACtE,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,CAAc,EACd,GAAW;IAEX,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,sBAAsB,EAAE,4BAA4B;IACpD,cAAc,EAAE,kBAAkB;IAClC,yBAAyB,EAAE,iCAAiC;IAC5D,mBAAmB,EAAE,wBAAwB;IAC7C,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;IACjC,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,uBAAuB;IAC5C,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,yBAAyB,EAAE,8BAA8B;IACzD,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,4BAA4B;IACpD,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,8BAA8B,EAAE,qCAAqC;IACrE,kCAAkC,EAAE,yCAAyC;IAC7E,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAEhD,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,yBAAyB,EAAE,4BAA4B;IACvD,4BAA4B,EAAE,+BAA+B;IAC7D,yBAAyB,EAAE,+BAA+B;IAC1D,+BAA+B,EAAE,mBAAmB;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,wBAAwB,EAAE,+BAA+B;IACzD,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,sBAAsB;IACrC,gBAAgB,EAAE,yBAAyB;IAC3C,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,eAAe;IAC/B,gBAAgB,EAAE,iBAAiB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,sBAAsB;IACxC,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,cAAc;IAC1B,uEAAuE;IACvE,sDAAsD;IACtD,wBAAwB,EAAE,8BAA8B;IACxD,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,qBAAqB;IACvC,mEAAmE;IACnE,qEAAqE;IACrE,cAAc,EAAE,eAAe;IAC/B,eAAe,EAAE,gBAAgB;IACjC,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,iBAAiB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,cAAc,EAAE,mBAAmB;IACnC,aAAa,EAAE,kBAAkB;IACjC,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,2BAA2B;IACjD,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,wBAAwB,EAAE,4BAA4B;IACtD,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,sBAAsB;IACzC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,qBAAqB,EAAE,0BAA0B;IACjD,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,yBAAyB;IAC/C,4BAA4B,EAAE,mCAAmC;IACjE,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,iBAAiB;IAChC,yBAAyB,EAAE,8BAA8B;IACzD,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,qBAAqB;IACvC,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,kBAAkB,EAAE,sBAAsB;IAC1C,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,oBAAoB;IACtC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,4BAA4B;IACrD,4BAA4B,EAAE,iCAAiC;IAC/D,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,yBAAyB,EAAE,8BAA8B;IACzD,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,oBAAoB;IACtC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,iBAAiB,EAAE,qBAAqB;IACxC,WAAW,EAAE,eAAe;IAC5B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,qBAAqB;IACxC,eAAe,EAAE,mBAAmB;IACpC,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,UAAU,EAAE,cAAc;IAC1B,yBAAyB,EAAE,sBAAsB;IACjD,2BAA2B,EAAE,wBAAwB;IACrD,iBAAiB,EAAE,cAAc;IACjC,mBAAmB,EAAE,gBAAgB;IACrC,qBAAqB,EAAE,mBAAmB;IAC1C,uBAAuB,EAAE,qBAAqB;IAC9C,uBAAuB,EAAE,qBAAqB;IAC9C,yBAAyB,EAAE,uBAAuB;IAClD,2BAA2B,EAAE,0BAA0B;IACvD,6BAA6B,EAAE,4BAA4B;IAC3D,gBAAgB,EAAE,oBAAoB;IACtC,yBAAyB,EAAE,sBAAsB;IACjD,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,kBAAkB;IAClC,qBAAqB,EAAE,2BAA2B;IAClD,yBAAyB,EAAE,+BAA+B;IAC1D,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,eAAe;IACnC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,mBAAmB;IACpC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,cAAc;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,yBAAyB;IAC3C,YAAY,EAAE,yBAAyB;IACvC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,yBAAyB;IAC9C,UAAU,EAAE,cAAc;IAC1B,kBAAkB,EAAE,8BAA8B;IAClD,qBAAqB,EAAE,4BAA4B;IACnD,eAAe,EAAE,0BAA0B;IAC3C,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE,yBAAyB;IACzC,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,wBAAwB;IACvC,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,0BAA0B;IAC3C,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,0BAA0B;IAChD,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,2BAA2B;IACtD,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,eAAe;IAChC,sEAAsE;IACtE,mEAAmE;IACnE,yBAAyB,EAAE,uBAAuB;IAClD,kBAAkB,EAAE,iBAAiB;IACrC,uBAAuB,EAAE,iBAAiB;IAC1C,eAAe,EAAE,mBAAmB;IACpC,qBAAqB,EAAE,2BAA2B;IAClD,kBAAkB,EAAE,mBAAmB;IACvC,mBAAmB,EAAE,oBAAoB;IACzC,cAAc,EAAE,cAAc;IAC9B,uBAAuB,EAAE,wBAAwB;IACjD,gBAAgB,EAAE,gBAAgB;IAClC,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,iBAAiB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,eAAe,EAAE,eAAe;IAChC,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,eAAe;IAChC,oEAAoE;IACpE,mEAAmE;IACnE,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,mBAAmB;IACnC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,mBAAmB,EAAE,wBAAwB;IAC7C,uBAAuB,EAAE,4BAA4B;IACrD,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,0EAA0E;IAC1E,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,0BAA0B,EAAE,+BAA+B;IAC3D,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,+BAA+B;IAC1D,qBAAqB,EAAE,2BAA2B;IAClD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;IAChD,+DAA+D;IAC/D,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,gBAAgB,EAAE,oBAAoB;IACtC,uBAAuB,EAAE,4BAA4B;IACrD,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,4BAA4B;IACjD,mBAAmB,EAAE,2BAA2B;IAChD,mBAAmB,EAAE,uBAAuB;IAC5C,kEAAkE;IAClE,+DAA+D;IAC/D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,4BAA4B;IACrD,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,mBAAmB;IACpC,uBAAuB,EAAE,4BAA4B;IACrD,uBAAuB,EAAE,4BAA4B;IACrD,oBAAoB,EAAE,uBAAuB;IAC7C,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,oBAAoB;IACtC,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,0BAA0B;IAChD,cAAc,EAAE,qBAAqB;IACrC,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,wBAAwB;IAC5C,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB,EAAE,yBAAyB;IAClD,wBAAwB,EAAE,0BAA0B;IACpD,oBAAoB,EAAE,sBAAsB;IAC5C,uEAAuE;IACvE,6CAA6C;IAC7C,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,uBAAuB;IACxC,gBAAgB,EAAE,wBAAwB;IAC1C,gBAAgB,EAAE,wBAAwB;IAC1C,cAAc,EAAE,cAAc;IAC9B,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,qBAAqB;IACpC,gBAAgB,EAAE,wBAAwB;IAC1C,iBAAiB,EAAE,qBAAqB;IACxC,eAAe,EAAE,uBAAuB;IACxC,oBAAoB,EAAE,qBAAqB;IAC3C,uBAAuB,EAAE,wBAAwB;IACjD,aAAa,EAAE,aAAa;IAC5B,oBAAoB,EAAE,qBAAqB;IAC3C,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,iBAAiB,EAAE,uBAAuB;IAC1C,cAAc,EAAE,cAAc;IAC9B,sEAAsE;IACtE,wBAAwB;IACxB,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,kBAAkB;IACvC,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yBAAyB;IAC/C,yBAAyB,EAAE,+BAA+B;IAC1D,oBAAoB,EAAE,yBAAyB;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,0BAA0B,EAAE,gCAAgC;IAC5D,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,2BAA2B;IACnD,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,kBAAkB;IACtC,kBAAkB,EAAE,kBAAkB;IACtC,YAAY,EAAE,gBAAgB;IAC9B,4DAA4D;IAC5D,mEAAmE;IACnE,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,wBAAwB;IACrC,oBAAoB,EAAE,yBAAyB;IAC/C,4BAA4B,EAAE,0BAA0B;IACxD,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,wBAAwB,EAAE,8BAA8B;IACxD,mBAAmB,EAAE,wBAAwB;IAC7C,uBAAuB,EAAE,6BAA6B;IACtD,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,mBAAmB;IACpC,0BAA0B,EAAE,gCAAgC;IAC5D,0BAA0B,EAAE,gCAAgC;IAC5D,aAAa,EAAE,iBAAiB;IAChC,sEAAsE;IACtE,mEAAmE;IACnE,wCAAwC;IACxC,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,gBAAgB,EAAE,qBAAqB;IACvC,UAAU,EAAE,cAAc;IAC1B,4DAA4D;IAC5D,qEAAqE;IACrE,0BAA0B;IAC1B,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,mBAAmB;IACpC,+DAA+D;IAC/D,+DAA+D;IAC/D,sEAAsE;IACtE,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,kBAAkB;IAClC,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,iBAAiB;IACzC,0BAA0B,EAAE,yBAAyB;IACrD,0BAA0B,EAAE,iCAAiC;IAC7D,yBAAyB,EAAE,gCAAgC;IAC3D,0BAA0B,EAAE,2BAA2B;IACvD,sBAAsB,EAAE,qBAAqB;IAC7C,mBAAmB,EAAE,mBAAmB;IACxC,2BAA2B,EAAE,4BAA4B;IACzD,wBAAwB,EAAE,mBAAmB;IAC7C,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,oBAAoB;IACrC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,cAAc,EAAE,mBAAmB;IACnC,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,eAAe;IAC5B,gBAAgB,EAAE,qBAAqB;IACvC,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,eAAe;IAC3B,oEAAoE;IACpE,sEAAsE;IACtE,wEAAwE;IACxE,oEAAoE;IACpE,0CAA0C;IAC1C,WAAW,EAAE,8BAA8B;IAC3C,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,oEAAoE;IACpE,2CAA2C;IAC3C,eAAe,EAAE,mBAAmB;IACpC,wBAAwB,EAAE,uBAAuB;IACjD,uBAAuB,EAAE,qBAAqB;IAC9C,oEAAoE;IACpE,oEAAoE;IACpE,mBAAmB,EAAE,gBAAgB;IACrC,iBAAiB,EAAE,sBAAsB;IACzC,oEAAoE;IACpE,qEAAqE;IACrE,qEAAqE;IACrE,iEAAiE;IACjE,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,0BAA0B;IAClD,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,WAAW,EAAE,eAAe;IAC5B,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,kBAAkB;IACrC,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,oBAAoB;IACrC,mBAAmB,EAAE,yBAAyB;IAC9C,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,oBAAoB;IACrC,oBAAoB,EAAE,yBAAyB;IAC/C,wBAAwB,EAAE,8BAA8B;IACxD,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,sBAAsB;IACtC,YAAY,EAAE,gBAAgB;IAC9B,iBAAiB,EAAE,sBAAsB;IACzC,oBAAoB,EAAE,yBAAyB;IAC/C,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;IAC1B,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,+BAA+B;IACnD,iBAAiB,EAAE,8BAA8B;IACjD,qBAAqB,EAAE,kCAAkC;IACzD,qBAAqB,EAAE,kCAAkC;IACzD,kBAAkB,EAAE,+BAA+B;IACnD,mBAAmB,EAAE,gCAAgC;IACrD,qBAAqB,EAAE,mCAAmC;IAC1D,0BAA0B,EAAE,yCAAyC;IACrE,sBAAsB,EAAE,oCAAoC;IAC5D,2BAA2B,EAAE,0CAA0C;IACvE,iBAAiB,EAAE,8BAA8B;IACjD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,WAAW,EAAE,eAAe;IAC5B,iBAAiB,EAAE,sBAAsB;IACzC,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,uBAAuB;IAC3C,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,qBAAqB;IACtC,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,iBAAiB;IAChC,qBAAqB,EAAE,qBAAqB;IAC5C,qBAAqB,EAAE,qBAAqB;IAC5C,YAAY,EAAE,mBAAmB;IACjC,gEAAgE;IAChE,gEAAgE;IAChE,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,aAAa,EAAE,kBAAkB;IACjC,mBAAmB,EAAE,wBAAwB;IAC7C,aAAa,EAAE,iBAAiB;IAChC,qBAAqB,EAAE,gCAAgC;IACvD,eAAe,EAAE,yBAAyB;IAC1C,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,2BAA2B,EAAE,iCAAiC;IAC9D,oBAAoB,EAAE,yBAAyB;IAC/C,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,0BAA0B;IACjD,0BAA0B,EAAE,gCAAgC;IAC5D,oBAAoB,EAAE,yBAAyB;IAC/C,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,YAAY,EAAE,gBAAgB;IAC9B,mBAAmB,EAAE,wBAAwB;IAC7C,wBAAwB,EAAE,6BAA6B;IACvD,qBAAqB,EAAE,0BAA0B;IACjD,YAAY,EAAE,iBAAiB;IAC/B,oBAAoB,EAAE,0BAA0B;IAChD,eAAe,EAAE,oBAAoB;IACrC,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,0BAA0B;IAChD,oBAAoB,EAAE,0BAA0B;IAChD,kCAAkC,EAAE,yCAAyC;IAC7E,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,wBAAwB,EAAE,8BAA8B;IACxD,gBAAgB,EAAE,0BAA0B;IAC5C,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,kBAAkB;IAClC,uBAAuB,EAAE,6BAA6B;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,2BAA2B;IAClD,kBAAkB,EAAE,uBAAuB;IAC3C,sBAAsB,EAAE,4BAA4B;IACpD,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,iBAAiB,EAAE,sBAAsB;IACzC,oBAAoB,EAAE,yBAAyB;IAC/C,8BAA8B,EAAE,qCAAqC;IACrE,oBAAoB,EAAE,0BAA0B;IAChD,gBAAgB,EAAE,qBAAqB;IACvC,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,oBAAoB;IACrC,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,yBAAyB;IAC3C,mBAAmB,EAAE,2BAA2B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,4BAA4B;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,mBAAmB;IACpC,UAAU,EAAE,kBAAkB;IAC9B,mBAAmB,EAAE,kBAAkB;IACvC,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,gBAAgB;IAC7B,oBAAoB,EAAE,2BAA2B;IACjD,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,oBAAoB;IACpB,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,iCAAiC;IAC9D,sBAAsB,EAAE,4BAA4B;IACpD,yBAAyB,EAAE,gCAAgC;IAC3D,oBAAoB,EAAE,0BAA0B;IAChD,uBAAuB,EAAE,8BAA8B;IACvD,sBAAsB,EAAE,wBAAwB;IAChD,cAAc,EAAE,cAAc;IAC9B,kBAAkB,EAAE,mBAAmB;IACvC,2BAA2B,EAAE,6BAA6B;IAC1D,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,qBAAqB,EAAE,qBAAqB;IAC5C,iBAAiB,EAAE,2BAA2B;IAC9C,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,iBAAiB;IAChC,mBAAmB,EAAE,wBAAwB;IAC7C,sBAAsB,EAAE,2BAA2B;IACnD,yBAAyB,EAAE,gCAAgC;IAC3D,uEAAuE;IACvE,oEAAoE;IACpE,gEAAgE;IAChE,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,eAAe;IACf,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,kBAAkB;IAClC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,uBAAuB,EAAE,4BAA4B;IACrD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,eAAe,EAAE,4BAA4B;IAC7C,iBAAiB,EAAE,+BAA+B;IAClD,kBAAkB,EAAE,gCAAgC;IACpD,eAAe,EAAE,yBAAyB;IAC1C,mBAAmB,EAAE,uBAAuB;IAC5C,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,0BAA0B,EAAE,iCAAiC;IAC7D,gBAAgB,EAAE,qBAAqB;IACvC,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,mEAAmE;IACnE,8DAA8D;IAC9D,qEAAqE;IACrE,kEAAkE;IAClE,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,qBAAqB;IACzC,qBAAqB,EAAE,yBAAyB;IAChD,uBAAuB,EAAE,8BAA8B;IACvD,mBAAmB,EAAE,sBAAsB;IAC3C,kBAAkB,EAAE,qBAAqB;IACzC,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,wBAAwB;IAC/C,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,sBAAsB;IAC3C,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,uBAAuB,EAAE,2BAA2B;IACpD,kBAAkB,EAAE,qBAAqB;IACzC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,oBAAoB;IACzC,sBAAsB,EAAE,2BAA2B;IACnD,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,qBAAqB;IACzC,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,2BAA2B;IAC5C,kBAAkB,EAAE,8BAA8B;IAClD,oBAAoB,EAAE,gCAAgC;IACtD,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,yBAAyB;IAC7C,gBAAgB,EAAE,uBAAuB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,cAAc,EAAE,mBAAmB;IACnC,mBAAmB,EAAE,wBAAwB;IAC7C,kBAAkB,EAAE,uBAAuB;IAC3C,qBAAqB,EAAE,2BAA2B;IAClD,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,4BAA4B;IAC/C,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,0BAA0B,EAAE,gCAAgC;IAC5D,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,aAAa,EAAE,kBAAkB;IACjC,yBAAyB,EAAE,+BAA+B;IAC1D,0BAA0B,EAAE,gCAAgC;IAC5D,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,2BAA2B;IAClD,0BAA0B,EAAE,iCAAiC;IAC7D,0BAA0B,EAAE,iCAAiC;IAC7D,iBAAiB,EAAE,2BAA2B;IAC9C,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,oBAAoB,EAAE,0BAA0B;IAChD,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,2BAA2B;IAClD,sBAAsB,EAAE,4BAA4B;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,mBAAmB,EAAE,yBAAyB;IAC9C,wBAAwB,EAAE,+BAA+B;IACzD,2BAA2B,EAAE,mCAAmC;IAChE,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,2BAA2B;IACjD,uBAAuB,EAAE,6BAA6B;IACtD,yBAAyB,EAAE,+BAA+B;IAC1D,yBAAyB,EAAE,gCAAgC;IAC3D,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,kBAAkB;IACjC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,yBAAyB;IAC7C,gBAAgB,EAAE,uBAAuB;IACzC,qBAAqB,EAAE,2BAA2B;IAClD,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,4BAA4B;IACpD,qBAAqB,EAAE,2BAA2B;IAClD,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,qBAAqB;IACvC,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,yBAAyB;IAC9C,mBAAmB,EAAE,yBAAyB;IAC9C,sBAAsB,EAAE,6BAA6B;IACrD,sBAAsB,EAAE,6BAA6B;IACrD,iBAAiB,EAAE,sBAAsB;IACzC,0BAA0B,EAAE,gCAAgC;IAC5D,qBAAqB,EAAE,wBAAwB;IAC/C,qBAAqB,EAAE,4BAA4B;IACnD,gCAAgC,EAAE,oCAAoC;IACtE,gCAAgC,EAAE,wCAAwC;IAC1E,oBAAoB,EAAE,gCAAgC;IACtD,mBAAmB,EAAE,+BAA+B;IACpD,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,+BAA+B;IACzD,sBAAsB,EAAE,6BAA6B;IACrD,2BAA2B,EAAE,wCAAwC;IACrE,mCAAmC,EAAE,2CAA2C;IAChF,uBAAuB,EAAE,4BAA4B;IACrD,uBAAuB,EAAE,kCAAkC;IAC3D,gCAAgC,EAAE,sCAAsC;IACxE,iCAAiC,EAAE,uCAAuC;IAC1E,uBAAuB,EAAE,4BAA4B;IACrD,6BAA6B,EAAE,mCAAmC;IAClE,kBAAkB,EAAE,2BAA2B;IAC/C,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,kCAAkC;IAC1D,yBAAyB,EAAE,+BAA+B;IAC1D,2BAA2B,EAAE,kCAAkC;IAC/D,8BAA8B,EAAE,sCAAsC;IACtE,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,yBAAyB;IAC9C,qBAAqB,EAAE,2BAA2B;IAClD,qBAAqB,EAAE,4BAA4B;IACnD,mBAAmB,EAAE,0BAA0B;IAC/C,yBAAyB,EAAE,+BAA+B;IAC1D,wBAAwB,EAAE,8BAA8B;IACxD,iBAAiB,EAAE,sBAAsB;IACzC,mBAAmB,EAAE,wBAAwB;IAC7C,2BAA2B,EAAE,iCAAiC;IAC9D,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,wBAAwB,EAAE,8BAA8B;IACxD,0BAA0B,EAAE,gCAAgC;IAC5D,6BAA6B,EAAE,mCAAmC;IAClE,mBAAmB,EAAE,wBAAwB;IAC7C,yBAAyB,EAAE,+BAA+B;IAC1D,uBAAuB,EAAE,6BAA6B;IACtD,+BAA+B,EAAE,sCAAsC;IACvE,uBAAuB,EAAE,6BAA6B;IACtD,kBAAkB,EAAE,uBAAuB;IAC3C,cAAc,EAAE,kBAAkB;IAClC,oBAAoB,EAAE,gCAAgC;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,yBAAyB;IAC/C,sBAAsB,EAAE,2BAA2B;IACnD,uBAAuB,EAAE,6BAA6B;IACtD,eAAe,EAAE,oBAAoB;IACrC,oEAAoE;IACpE,uEAAuE;IACvE,iEAAiE;IACjE,yCAAyC;IACzC,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,sEAAsE;IACtE,kEAAkE;IAClE,+DAA+D;IAC/D,eAAe,EAAE,oBAAoB;IACrC,iBAAiB,EAAE,sBAAsB;IACzC,uEAAuE;IACvE,sEAAsE;IACtE,aAAa,EAAE,iBAAiB;IAChC,sEAAsE;IACtE,0DAA0D;IAC1D,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,oBAAoB;IACtC,mBAAmB,EAAE,wBAAwB;IAC7C,YAAY,EAAE,gBAAgB;IAC9B,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,yBAAyB;IAC/C,uBAAuB,EAAE,6BAA6B;IACtD,aAAa,EAAE,kBAAkB;IACjC,wBAAwB,EAAE,8BAA8B;IACxD,eAAe,EAAE,oBAAoB;IACrC,qEAAqE;IACrE,8DAA8D;IAC9D,gEAAgE;IAChE,8CAA8C;IAC9C,mBAAmB,EAAE,wBAAwB;IAC7C,qBAAqB,EAAE,2BAA2B;IAClD,cAAc,EAAE,mBAAmB;IACnC,qBAAqB,EAAE,2BAA2B;IAClD,gBAAgB,EAAE,qBAAqB;IACvC,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,mBAAmB,EAAE,yBAAyB;IAC9C,qEAAqE;IACrE,kFAAkF;IAClF,kDAAkD;IAClD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,wBAAwB;IAC5C,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,wBAAwB;IAC5C,kEAAkE;IAClE,6DAA6D;IAC7D,kEAAkE;IAClE,6BAA6B;IAC7B,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,qBAAqB,EAAE,0BAA0B;IACjD,6BAA6B,EAAE,mCAAmC;IAClE,8BAA8B,EAAE,oCAAoC;IACpE,8BAA8B,EAAE,oCAAoC;IACpE,+BAA+B,EAAE,qCAAqC;IACtE,4BAA4B,EAAE,kCAAkC;IAChE,6BAA6B,EAAE,mCAAmC;IAClE,iEAAiE;IACjE,4DAA4D;IAC5D,WAAW,EAAE,eAAe;IAC5B,gBAAgB,EAAE,qBAAqB;IACvC,8DAA8D;IAC9D,oEAAoE;IACpE,qDAAqD;IACrD,eAAe,EAAE,gBAAgB;IACjC,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,mBAAmB;IACpC,qEAAqE;IACrE,kEAAkE;IAClE,kFAAkF;IAClF,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,qBAAqB;IACtC,YAAY,EAAE,iBAAiB;IAC/B,0BAA0B,EAAE,gCAAgC;IAC5D,YAAY,EAAE,gBAAgB;IAC9B,wBAAwB,EAAE,8BAA8B;IACxD,gBAAgB,EAAE,qBAAqB;IACvC,kEAAkE;IAClE,mEAAmE;IACnE,+DAA+D;IAC/D,cAAc,EAAE,mBAAmB;IACnC,oBAAoB,EAAE,0BAA0B;IAChD,wBAAwB,EAAE,+BAA+B;IACzD,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,oBAAoB;IACrC,wBAAwB,EAAE,4BAA4B;IACtD,oBAAoB,EAAE,yBAAyB;IAC/C,sBAAsB,EAAE,2BAA2B;IACnD,qBAAqB,EAAE,0BAA0B;IACjD,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,wBAAwB;IAC7C,oBAAoB,EAAE,yBAAyB;IAC/C,wBAAwB,EAAE,8BAA8B;IACxD,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,0BAA0B,EAAE,gCAAgC;IAC5D,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,eAAe,EAAE,oBAAoB;IACrC,6BAA6B,EAAE,oCAAoC;IACnE,kBAAkB,EAAE,uBAAuB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,yBAAyB,EAAE,gCAAgC;IAC3D,aAAa,EAAE,kBAAkB;IACjC,2BAA2B,EAAE,kCAAkC;IAC/D,+BAA+B,EAAE,sCAAsC;IACvE,uBAAuB,EAAE,4BAA4B;IACrD,kBAAkB,EAAE,uBAAuB;IAC3C,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,mBAAmB;IACnC,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,sBAAsB;IAC7C,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,WAAW,EAAE,eAAe;IAC5B,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,sEAAsE;IACtE,gEAAgE;IAChE,sDAAsD;IACtD,0BAA0B,EAAE,yBAAyB;IACrD,4BAA4B,EAAE,6BAA6B;IAC3D,yBAAyB,EAAE,uBAAuB;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS;IACjD,YAAY;IACZ,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;IACjB,yBAAyB;IACzB,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,2BAA2B;IAC3B,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,8DAA8D;IAC9D,qEAAqE;IACrE,6CAA6C;IAC7C,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,6BAA6B;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,yBAAyB;CAC1B,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type IrExpr, type IrFunction, type IrStmt, type IrType, type IrUnionDef } from "../../ir/ir.js";
2
2
  import { type CallLifetimes } from "./call-lifetimes.js";
3
3
  import type { LlValue, LlvmEmitterContext } from "./expr-context.js";
4
+ import { ReferenceEffects } from "./reference-effects.js";
4
5
  export interface LocalArrayRead {
5
6
  type: IrType;
6
7
  array: IrExpr;
@@ -9,7 +10,15 @@ export interface LocalArrayRead {
9
10
  presentTag: number;
10
11
  missingTag: number;
11
12
  borrow?: boolean;
13
+ /** The array's elements are themselves the read's `T | undefined`
14
+ * nullable-pointer union, so a present slot may hold NULL (undefined):
15
+ * owned copies retain and release through the union's NULL-tolerant
16
+ * entry points. */
17
+ nullableElement?: boolean;
12
18
  }
19
+ /** Whether a union is held as its reference arm's plain pointer
20
+ * (nullable-unions.ts). Without it, only reference elements are matched. */
21
+ export type NullablePointerUnion = (unionId: string) => boolean;
13
22
  /** Kept as the array-analysis entry point; the same edge-preservation
14
23
  * proof also governs projections passed to borrowing consumers. */
15
24
  export declare function findArrayPreservingFunctions(functions: ReadonlyMap<string, IrFunction>, unions: ReadonlyMap<string, IrUnionDef>, reads?: OptionalArrayReads): Set<string>;
@@ -18,17 +27,19 @@ export declare function findArrayPreservingFunctions(functions: ReadonlyMap<stri
18
27
  * Only operands vary between uses; payload ownership is proved separately. */
19
28
  export declare class OptionalArrayReads {
20
29
  private readonly unions;
30
+ private readonly nullable?;
21
31
  private readonly shapes;
22
- constructor(functions: ReadonlyMap<string, IrFunction>, unions: ReadonlyMap<string, IrUnionDef>);
32
+ constructor(functions: ReadonlyMap<string, IrFunction>, unions: ReadonlyMap<string, IrUnionDef>, nullable?: NullablePointerUnion | undefined);
23
33
  get(call: IrExpr): LocalArrayRead | null;
24
34
  }
25
- export declare function findLocalArrayReads(fn: IrFunction, functions: ReadonlyMap<string, IrFunction>, unions: ReadonlyMap<string, IrUnionDef>, arrayPreservingFunctions: ReadonlySet<string>, lifetimes?: CallLifetimes, reads?: OptionalArrayReads, loopBorrows?: ReadonlySet<IrStmt>): Map<string, LocalArrayRead>;
35
+ export declare function findLocalArrayReads(fn: IrFunction, functions: ReadonlyMap<string, IrFunction>, unions: ReadonlyMap<string, IrUnionDef>, arrayPreservingFunctions: ReadonlySet<string>, lifetimes?: CallLifetimes, reads?: OptionalArrayReads, loopBorrows?: ReadonlySet<IrStmt>, effects?: ReferenceEffects): Map<string, LocalArrayRead>;
26
36
  /** An immediate argument needs no heap union when its parameter only
27
37
  * projects the box. The payload owns a snapshot through all later arguments
28
- * and the call, unless the enclosing function preserves its parameter's
29
- * array edges. The latter proof includes every later argument and callee,
30
- * so a mutation anywhere keeps the independent payload owner. */
31
- export declare function findCallArrayReads(fn: IrFunction, reads: OptionalArrayReads, arrayPreservingFunctions: ReadonlySet<string>, lifetimes: CallLifetimes): Map<IrExpr, LocalArrayRead>;
38
+ * and the call, unless the enclosing function, or the call itself with all
39
+ * of its arguments, preserves its parameter's array edges. That proof
40
+ * includes every later argument and callee, so a mutation anywhere keeps
41
+ * the independent payload owner. */
42
+ export declare function findCallArrayReads(fn: IrFunction, reads: OptionalArrayReads, arrayPreservingFunctions: ReadonlySet<string>, lifetimes: CallLifetimes, effects?: ReferenceEffects): Map<IrExpr, LocalArrayRead>;
32
43
  /** Call-scoped owners are released by the existing argument frame on both
33
44
  * normal and exceptional exits. Each use gets a distinct stack box: nested
34
45
  * calls and repeated operands must never overwrite an earlier snapshot. */
@@ -2,6 +2,7 @@ import { isRefCounted, typeEquals, } from "../../ir/ir.js";
2
2
  import { everyStmtList } from "../../ir/traverse.js";
3
3
  import { analyzeCallLifetimes } from "./call-lifetimes.js";
4
4
  import { ReferenceEffects } from "./reference-effects.js";
5
+ import { exactIndexLines } from "./common.js";
5
6
  /** Kept as the array-analysis entry point; the same edge-preservation
6
7
  * proof also governs projections passed to borrowing consumers. */
7
8
  export function findArrayPreservingFunctions(functions, unions, reads = new OptionalArrayReads(functions, unions)) {
@@ -15,7 +16,7 @@ function isScalarElement(element) {
15
16
  /** Recognize the state-test/read pair shared by helpers and lowered loops.
16
17
  * Repeated operands must be plain bindings or numeric literals: folding an
17
18
  * effectful index or receiver would change evaluation count and ordering. */
18
- function inlineArrayRead(value, unions) {
19
+ function inlineArrayRead(value, unions, nullable) {
19
20
  if (value.kind !== "ternary" || value.type.kind !== "union")
20
21
  return null;
21
22
  const { cond, then, else_: missing } = value;
@@ -24,38 +25,63 @@ function inlineArrayRead(value, unions) {
24
25
  cond.left.kind !== "arrayState" ||
25
26
  cond.right.kind !== "numLit" ||
26
27
  cond.right.value !== 1 ||
27
- then.kind !== "unionWrap" ||
28
- then.unionId !== value.type.unionId ||
29
- then.value.kind !== "arrayGet" ||
30
28
  missing.kind !== "unionWrap" ||
31
29
  missing.unionId !== value.type.unionId ||
32
30
  missing.value.kind !== "unitLit" ||
33
31
  missing.value.unit !== "undefined")
34
32
  return null;
33
+ // A `T | undefined` element is read as it is (arrayValueRead adds no wrap).
34
+ const elementRead = then.kind === "unionWrap" && then.unionId === value.type.unionId
35
+ ? then.value
36
+ : then.kind === "arrayGet" && typeEquals(then.type, value.type)
37
+ ? then
38
+ : null;
39
+ if (elementRead?.kind !== "arrayGet")
40
+ return null;
35
41
  const sameOperand = (left, right) => (left.kind === "varRef" && right.kind === "varRef" && left.localId === right.localId) ||
36
42
  (left.kind === "numLit" && right.kind === "numLit" && Object.is(left.value, right.value));
37
43
  const array = cond.left.arr, index = cond.left.index;
38
44
  if (array.kind !== "varRef" ||
39
45
  array.type.kind !== "array" ||
40
46
  index.type.kind !== "f64" ||
41
- !sameOperand(array, then.value.arr) ||
42
- !sameOperand(index, then.value.index))
47
+ !sameOperand(array, elementRead.arr) ||
48
+ !sameOperand(index, elementRead.index))
43
49
  return null;
44
- const element = array.type.elem;
45
50
  const arms = unions.get(value.type.unionId)?.arms;
46
- if ((!isRefCounted(element) && !isScalarElement(element)) ||
47
- element.kind === "union" ||
48
- !arms ||
49
- arms.length !== 2)
51
+ if (!arms || arms.length !== 2)
50
52
  return null;
51
- const presentTag = arms.findIndex((arm) => typeEquals(arm, element));
52
53
  const missingTag = arms.findIndex((arm) => arm.kind === "undefinedT");
53
- if (presentTag < 0 || missingTag < 0 || then.tag !== presentTag || missing.tag !== missingTag)
54
+ if (missingTag < 0 || missing.tag !== missingTag)
55
+ return null;
56
+ if (then === elementRead) {
57
+ // The slots hold the union itself: only its plain-pointer form (NULL is
58
+ // undefined) shares the element encoding of the reference-arm reads.
59
+ const presentTag = 1 - missingTag;
60
+ const element = arms[presentTag];
61
+ if (!typeEquals(array.type.elem, value.type) ||
62
+ !isRefCounted(element) ||
63
+ nullable?.(value.type.unionId) !== true)
64
+ return null;
65
+ return {
66
+ type: value.type,
67
+ element,
68
+ presentTag,
69
+ missingTag,
70
+ array,
71
+ index,
72
+ nullableElement: true,
73
+ };
74
+ }
75
+ const element = array.type.elem;
76
+ if ((!isRefCounted(element) && !isScalarElement(element)) || element.kind === "union")
77
+ return null;
78
+ const presentTag = arms.findIndex((arm) => typeEquals(arm, element));
79
+ if (presentTag < 0 || then.kind !== "unionWrap" || then.tag !== presentTag)
54
80
  return null;
55
81
  return { type: value.type, element, presentTag, missingTag, array, index };
56
82
  }
57
83
  /** Recognize the complete optional-array-read body, not the helper's name. */
58
- function arrayReadShape(fn, unions) {
84
+ function arrayReadShape(fn, unions, nullable) {
59
85
  if (fn.async ||
60
86
  fn.generator ||
61
87
  fn.captures ||
@@ -68,7 +94,7 @@ function arrayReadShape(fn, unions) {
68
94
  const ret = fn.body[0];
69
95
  if (ret.kind !== "return" || !ret.value)
70
96
  return null;
71
- const read = inlineArrayRead(ret.value, unions);
97
+ const read = inlineArrayRead(ret.value, unions, nullable);
72
98
  if (!read ||
73
99
  !typeEquals(read.type, fn.returnType) ||
74
100
  read.array.kind !== "varRef" ||
@@ -81,6 +107,7 @@ function arrayReadShape(fn, unions) {
81
107
  element: read.element,
82
108
  presentTag: read.presentTag,
83
109
  missingTag: read.missingTag,
110
+ ...(read.nullableElement ? { nullableElement: true } : {}),
84
111
  };
85
112
  }
86
113
  /** One index for finalized IR, shared by effect and lifetime consumers.
@@ -88,18 +115,20 @@ function arrayReadShape(fn, unions) {
88
115
  * Only operands vary between uses; payload ownership is proved separately. */
89
116
  export class OptionalArrayReads {
90
117
  unions;
118
+ nullable;
91
119
  shapes = new Map();
92
- constructor(functions, unions) {
120
+ constructor(functions, unions, nullable) {
93
121
  this.unions = unions;
122
+ this.nullable = nullable;
94
123
  for (const fn of functions.values()) {
95
- const shape = arrayReadShape(fn, unions);
124
+ const shape = arrayReadShape(fn, unions, nullable);
96
125
  if (shape)
97
126
  this.shapes.set(fn.name, shape);
98
127
  }
99
128
  }
100
129
  get(call) {
101
130
  if (call.kind === "ternary")
102
- return inlineArrayRead(call, this.unions);
131
+ return inlineArrayRead(call, this.unions, this.nullable);
103
132
  if (call.kind !== "call" || call.args.length !== 2)
104
133
  return null;
105
134
  const shape = this.shapes.get(call.callee);
@@ -113,9 +142,112 @@ export class OptionalArrayReads {
113
142
  * that the parameter holding the array is never replaced or captured. */
114
143
  function stableArrayParameters(fn, lifetimes) {
115
144
  const borrowed = lifetimes.borrowed.get(fn.name);
116
- return new Set(fn.params.filter((_, index) => borrowed?.has(index)).map((param) => param.localId));
145
+ // Borrowed walk parameters may be rebound by statements (walk-borrows.ts).
146
+ const rebound = new Set();
147
+ everyStmtList(fn.body, {
148
+ stmt: (stmt) => {
149
+ if (stmt.kind === "assign")
150
+ rebound.add(stmt.localId);
151
+ return true;
152
+ },
153
+ expr: () => true,
154
+ });
155
+ return new Set(fn.params
156
+ .filter((param, index) => borrowed?.has(index) && !rebound.has(param.localId))
157
+ .map((param) => param.localId));
158
+ }
159
+ /** The array operand of a borrowed read: a stable parameter, or a pure
160
+ * projection chain (fields, narrowing, casts) rooted at one. In a function
161
+ * that preserves every heap edge, the caller-owned parameter keeps each
162
+ * projected field, the array, and its elements alive for the whole frame. */
163
+ function stableArrayOperand(array, stableParams, locals) {
164
+ switch (array.kind) {
165
+ case "varRef":
166
+ return stableParams.has(array.localId) && !locals.get(array.localId)?.boxed;
167
+ case "fieldGet":
168
+ case "recordGet":
169
+ return stableArrayOperand(array.obj, stableParams, locals);
170
+ case "unionNarrow":
171
+ case "downcast":
172
+ case "upcast":
173
+ return stableArrayOperand(array.value, stableParams, locals);
174
+ default:
175
+ return false;
176
+ }
117
177
  }
118
- export function findLocalArrayReads(fn, functions, unions, arrayPreservingFunctions, lifetimes = analyzeCallLifetimes(functions), reads = new OptionalArrayReads(functions, unions), loopBorrows = new Set()) {
178
+ /** The statement list and index of every statement of a body. Statements
179
+ * nested in expressions (sequence statements) and `for` initializers are
180
+ * absent: their declarations keep the frame-wide proof alone. */
181
+ function statementPositions(body) {
182
+ const positions = new Map();
183
+ const visit = (list) => {
184
+ list.forEach((stmt, index) => {
185
+ positions.set(stmt, { list, index });
186
+ switch (stmt.kind) {
187
+ case "if":
188
+ visit(stmt.then);
189
+ if (stmt.else_)
190
+ visit(stmt.else_);
191
+ break;
192
+ case "while":
193
+ case "doWhile":
194
+ case "for":
195
+ case "forOf":
196
+ case "block":
197
+ visit(stmt.body);
198
+ break;
199
+ case "switch":
200
+ for (const c of stmt.cases)
201
+ visit(c.body);
202
+ break;
203
+ case "tryCatch":
204
+ visit(stmt.tryBody);
205
+ if (stmt.catchBody)
206
+ visit(stmt.catchBody);
207
+ if (stmt.finallyBody)
208
+ visit(stmt.finallyBody);
209
+ break;
210
+ }
211
+ });
212
+ };
213
+ visit(body);
214
+ return positions;
215
+ }
216
+ function countReferences(body, localId) {
217
+ let count = 0;
218
+ everyStmtList(body, {
219
+ stmt: () => true,
220
+ expr: (e) => {
221
+ if (e.kind === "varRef" && e.localId === localId)
222
+ count++;
223
+ return true;
224
+ },
225
+ });
226
+ return count;
227
+ }
228
+ /** A declaration whose whole live range preserves heap edges: every use
229
+ * of the local follows it in its own statement list, and neither its
230
+ * initializer nor any statement up to the last use can remove a reference
231
+ * (effects as in ReferenceEffects). The array operand, rooted at a stable
232
+ * parameter, then keeps the element alive until the local is dead, though
233
+ * other code of the function may mutate. */
234
+ function preservingLiveRange(decl, positions, body, effects) {
235
+ const position = positions.get(decl);
236
+ if (!position || !decl.init || !effects.preserves(decl.init))
237
+ return false;
238
+ const { list, index } = position;
239
+ let last = index, seen = 0;
240
+ for (let i = index + 1; i < list.length; i++) {
241
+ const count = countReferences([list[i]], decl.localId);
242
+ if (count === 0)
243
+ continue;
244
+ last = i;
245
+ seen += count;
246
+ }
247
+ return (seen === countReferences(body, decl.localId) &&
248
+ effects.preservesScope(list.slice(index + 1, last + 1)));
249
+ }
250
+ export function findLocalArrayReads(fn, functions, unions, arrayPreservingFunctions, lifetimes = analyzeCallLifetimes(functions), reads = new OptionalArrayReads(functions, unions), loopBorrows = new Set(), effects) {
119
251
  const result = new Map();
120
252
  if (fn.async || fn.generator)
121
253
  return result;
@@ -124,6 +256,7 @@ export function findLocalArrayReads(fn, functions, unions, arrayPreservingFuncti
124
256
  const params = new Set(fn.params.map((p) => p.localId));
125
257
  const stableParams = stableArrayParameters(fn, lifetimes);
126
258
  const borrow = arrayPreservingFunctions.has(fn.name);
259
+ let positions;
127
260
  everyStmtList(fn.body, {
128
261
  expr: () => true,
129
262
  stmt: (node) => {
@@ -134,9 +267,14 @@ export function findLocalArrayReads(fn, functions, unions, arrayPreservingFuncti
134
267
  return true;
135
268
  const read = reads.get(node.init);
136
269
  if (read && lifetimes.locals.get(fn.name)?.has(local.id)) {
137
- if (read.array.kind === "varRef" &&
138
- ((borrow && stableParams.has(read.array.localId)) || loopBorrows.has(node)) &&
139
- !locals.get(read.array.localId)?.boxed)
270
+ const stable = stableArrayOperand(read.array, stableParams, locals);
271
+ if ((borrow && stable) ||
272
+ (read.array.kind === "varRef" &&
273
+ loopBorrows.has(node) &&
274
+ !locals.get(read.array.localId)?.boxed) ||
275
+ (stable &&
276
+ effects !== undefined &&
277
+ preservingLiveRange(node, (positions ??= statementPositions(fn.body)), fn.body, effects)))
140
278
  read.borrow = true;
141
279
  result.set(local.id, read);
142
280
  }
@@ -147,10 +285,11 @@ export function findLocalArrayReads(fn, functions, unions, arrayPreservingFuncti
147
285
  }
148
286
  /** An immediate argument needs no heap union when its parameter only
149
287
  * projects the box. The payload owns a snapshot through all later arguments
150
- * and the call, unless the enclosing function preserves its parameter's
151
- * array edges. The latter proof includes every later argument and callee,
152
- * so a mutation anywhere keeps the independent payload owner. */
153
- export function findCallArrayReads(fn, reads, arrayPreservingFunctions, lifetimes) {
288
+ * and the call, unless the enclosing function, or the call itself with all
289
+ * of its arguments, preserves its parameter's array edges. That proof
290
+ * includes every later argument and callee, so a mutation anywhere keeps
291
+ * the independent payload owner. */
292
+ export function findCallArrayReads(fn, reads, arrayPreservingFunctions, lifetimes, effects) {
154
293
  const result = new Map();
155
294
  if (fn.async || fn.generator)
156
295
  return result;
@@ -171,10 +310,8 @@ export function findCallArrayReads(fn, reads, arrayPreservingFunctions, lifetime
171
310
  const read = reads.get(arg);
172
311
  if (!read)
173
312
  return;
174
- if (borrow &&
175
- read.array.kind === "varRef" &&
176
- stableParams.has(read.array.localId) &&
177
- !locals.get(read.array.localId)?.boxed)
313
+ if ((borrow || effects?.preserves(node) === true) &&
314
+ stableArrayOperand(read.array, stableParams, locals))
178
315
  read.borrow = true;
179
316
  result.set(arg, read);
180
317
  });
@@ -186,14 +323,16 @@ export function findCallArrayReads(fn, reads, arrayPreservingFunctions, lifetime
186
323
  /** Call-scoped owners are released by the existing argument frame on both
187
324
  * normal and exceptional exits. Each use gets a distinct stack box: nested
188
325
  * calls and repeated operands must never overwrite an earlier snapshot. */
189
- export function emitCallArrayRead(host, read, inline = read.borrow === true) {
326
+ export function emitCallArrayRead(host, read, inline) {
190
327
  const slot = host.B.slot();
191
328
  host.B.entryAllocas.push(`${slot} = alloca ptr`);
192
329
  // Snapshot arguments already cross a runtime ownership boundary. Keep
193
- // their lookup compact instead of duplicating the dense fast path at
194
- // every call site; proven borrowed reads and immediate projections
195
- // (tests, narrowing, comparisons) still expose that path to LLVM.
196
- const owner = emitLocalArrayRead(host, read, slot, inline);
330
+ // boxed lookups compact instead of duplicating the dense fast path at
331
+ // every call site; proven borrowed reads, immediate projections (tests,
332
+ // narrowing, comparisons), and nullable references (the element pointer
333
+ // itself, so the dense path is a few loads) still expose it to LLVM.
334
+ const nullable = read.type.kind === "union" && host.nullableUnions.has(read.type.unionId);
335
+ const owner = emitLocalArrayRead(host, read, slot, inline ?? (read.borrow === true || nullable));
197
336
  if (owner)
198
337
  host.ownSlot(owner.slot, owner.type);
199
338
  const value = host.B.tmp();
@@ -221,29 +360,31 @@ function emitDenseReferenceArrayRead(host, array, index, integerIndex, present,
221
360
  const range = B.newLabel("local.array.range"), dense = B.newLabel("local.array.dense");
222
361
  // The dense path uses the existing ScrArr ABI. Sparse indices and
223
362
  // noncanonical numeric properties retain the runtime lookup semantics.
224
- const capPtr = B.tmp(), cap = B.tmp(), capNumber = B.tmp(), nonnegative = B.tmp(), belowCap = B.tmp(), inRange = B.tmp();
363
+ const capPtr = B.tmp(), cap = B.tmp();
225
364
  B.line(`${capPtr} = getelementptr inbounds %ScrArr, ptr ${array.name}, i32 0, i32 2`);
226
365
  host.markMemoryPointer(capPtr, "array:header");
227
366
  B.line(`${cap} = load ${host.sizeType}, ptr ${capPtr}${host.fieldAliasAttachment(capPtr)}`);
228
- if (integerIndex)
367
+ let offset, inRange;
368
+ if (integerIndex) {
369
+ offset = integerIndex;
370
+ inRange = B.tmp();
229
371
  B.line(`${inRange} = icmp ult ${host.sizeType} ${integerIndex}, ${cap}`);
372
+ }
230
373
  else {
231
- B.line(`${capNumber} = uitofp ${host.sizeType} ${cap} to double`);
232
- B.line(`${nonnegative} = fcmp oge double ${index.name}, 0.0`);
233
- B.line(`${belowCap} = fcmp olt double ${index.name}, ${capNumber}`);
234
- B.line(`${inRange} = and i1 ${nonnegative}, ${belowCap}`);
374
+ // Capacity bounds the dense slots; the length check below still decides presence.
375
+ const exact = exactIndexLines(index.name, cap, host.sizeType, () => B.tmp());
376
+ for (const line of exact.lines)
377
+ B.line(line);
378
+ inRange = exact.ok;
379
+ offset = exact.wide;
380
+ if (host.sizeType !== "i64") {
381
+ offset = B.tmp();
382
+ B.line(`${offset} = trunc i64 ${exact.wide} to ${host.sizeType}`);
383
+ }
235
384
  }
236
385
  B.condBr(inRange, range, slow);
237
386
  B.startBlock(range);
238
- const offset = integerIndex ?? B.tmp(), roundTrip = B.tmp(), integral = B.tmp();
239
- if (integerIndex)
240
- B.br(dense);
241
- else {
242
- B.line(`${offset} = fptoui double ${index.name} to ${host.sizeType}`);
243
- B.line(`${roundTrip} = uitofp ${host.sizeType} ${offset} to double`);
244
- B.line(`${integral} = fcmp oeq double ${index.name}, ${roundTrip}`);
245
- B.condBr(integral, dense, slow);
246
- }
387
+ B.br(dense);
247
388
  B.startBlock(dense);
248
389
  const lenPtr = B.tmp(), len = B.tmp(), belowLen = B.tmp();
249
390
  B.line(`${lenPtr} = getelementptr inbounds %ScrArr, ptr ${array.name}, i32 0, i32 1`);
@@ -300,6 +441,37 @@ export function emitLocalArrayRead(host, read, localSlot, inline = true) {
300
441
  const array = host.emitStableReceiver(read.array, [read.index]);
301
442
  const integerIndex = inline ? host.emitIntegerLoopIndex(read.index) : null;
302
443
  const index = host.emitExpr(read.index);
444
+ const nullable = read.type.kind === "union" ? host.nullableUnions.get(read.type.unionId) : null;
445
+ if (nullable) {
446
+ // A nullable union is the element pointer itself: borrowed from an
447
+ // array proven to keep it alive, or one owned reference the caller
448
+ // releases from this slot. The missing arm is its unit encoding.
449
+ const slow = B.newLabel("local.array.slow"), no = B.newLabel("local.array.missing"), join = B.newLabel("local.array.join");
450
+ // A slot of a nullable-union array may hold NULL even when present.
451
+ const owned = read.nullableElement ? read.type : read.element;
452
+ const store = (value) => {
453
+ B.line(`store ptr ${read.borrow ? value : host.retainValue(value, owned)}, ptr ${localSlot}`);
454
+ };
455
+ if (inline)
456
+ emitDenseReferenceArrayRead(host, array, index, integerIndex, store, no, slow, join, "ptr");
457
+ else
458
+ B.br(slow);
459
+ B.startBlock(slow);
460
+ const present = B.newLabel("local.array.slow.value");
461
+ host.declare("declare ptr @scr_arr_peek_ref(ptr, double) memory(read)");
462
+ const value = B.tmp(), found = B.tmp();
463
+ B.line(`${value} = call ptr @scr_arr_peek_ref(ptr ${array.name}, double ${index.name})`);
464
+ B.line(`${found} = icmp ne ptr ${value}, null`);
465
+ B.condBr(found, present, no);
466
+ B.startBlock(present);
467
+ store(value);
468
+ B.br(join);
469
+ B.startBlock(no);
470
+ B.line(`store ptr ${host.unitInstanceRef(nullable.unionId, read.missingTag)}, ptr ${localSlot}`);
471
+ B.br(join);
472
+ B.startBlock(join);
473
+ return read.borrow ? null : { slot: localSlot, type: owned };
474
+ }
303
475
  const box = B.slot(), payload = B.slot(), tag = B.slot();
304
476
  B.entryAllocas.push(`${box} = alloca %ScrUnion`);
305
477
  B.entryAllocas.push(`${payload} = getelementptr inbounds %ScrUnion, ptr ${box}, i32 0, i32 5`);