@scriptc/compiler 0.1.1 → 0.1.3

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 (279) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +104 -31
  2. package/ambient/scriptc.d.ts +2 -1
  3. package/dist/backend/build-cache.js.map +1 -1
  4. package/dist/backend/c/async.d.ts +5 -0
  5. package/dist/backend/c/async.js +81 -2
  6. package/dist/backend/c/async.js.map +1 -1
  7. package/dist/backend/c/c-emitter.d.ts +25 -10
  8. package/dist/backend/c/c-emitter.js +74 -22
  9. package/dist/backend/c/c-emitter.js.map +1 -1
  10. package/dist/backend/c/exprs.d.ts +8 -1
  11. package/dist/backend/c/exprs.js +371 -18
  12. package/dist/backend/c/exprs.js.map +1 -1
  13. package/dist/backend/c/island.js.map +1 -1
  14. package/dist/backend/c/may-throw.js.map +1 -1
  15. package/dist/backend/c/shapes.js +15 -13
  16. package/dist/backend/c/shapes.js.map +1 -1
  17. package/dist/backend/c/stmts.d.ts +3 -5
  18. package/dist/backend/c/stmts.js +58 -17
  19. package/dist/backend/c/stmts.js.map +1 -1
  20. package/dist/backend/c/types.d.ts +4 -0
  21. package/dist/backend/c/types.js +18 -1
  22. package/dist/backend/c/types.js.map +1 -1
  23. package/dist/backend/c/types.test.js +8 -1
  24. package/dist/backend/c/types.test.js.map +1 -1
  25. package/dist/backend/c/walkers.js +63 -16
  26. package/dist/backend/c/walkers.js.map +1 -1
  27. package/dist/backend/external-c.js.map +1 -1
  28. package/dist/backend/json-literal.d.ts +7 -0
  29. package/dist/backend/json-literal.js +17 -0
  30. package/dist/backend/json-literal.js.map +1 -0
  31. package/dist/backend/json-literal.test.d.ts +1 -0
  32. package/dist/backend/json-literal.test.js +17 -0
  33. package/dist/backend/json-literal.test.js.map +1 -0
  34. package/dist/backend/link-plan.d.ts +1 -1
  35. package/dist/backend/link-plan.js +5 -1
  36. package/dist/backend/link-plan.js.map +1 -1
  37. package/dist/backend/linker.js.map +1 -1
  38. package/dist/backend/llvm/blocks.js.map +1 -1
  39. package/dist/backend/llvm/classes.js +8 -7
  40. package/dist/backend/llvm/classes.js.map +1 -1
  41. package/dist/backend/llvm/common.d.ts +4 -0
  42. package/dist/backend/llvm/common.js +6 -0
  43. package/dist/backend/llvm/common.js.map +1 -1
  44. package/dist/backend/llvm/common.test.d.ts +1 -0
  45. package/dist/backend/llvm/common.test.js +9 -0
  46. package/dist/backend/llvm/common.test.js.map +1 -0
  47. package/dist/backend/llvm/dyn.d.ts +4 -0
  48. package/dist/backend/llvm/dyn.js +80 -16
  49. package/dist/backend/llvm/dyn.js.map +1 -1
  50. package/dist/backend/llvm/emitter.js +132 -25
  51. package/dist/backend/llvm/emitter.js.map +1 -1
  52. package/dist/backend/llvm/expr-async.js +85 -3
  53. package/dist/backend/llvm/expr-async.js.map +1 -1
  54. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  55. package/dist/backend/llvm/expr-calls.js.map +1 -1
  56. package/dist/backend/llvm/expr-containers.js.map +1 -1
  57. package/dist/backend/llvm/expr-context.d.ts +5 -0
  58. package/dist/backend/llvm/expr-control.js.map +1 -1
  59. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  60. package/dist/backend/llvm/expr-dynamic.js +15 -3
  61. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  62. package/dist/backend/llvm/expr-island.js.map +1 -1
  63. package/dist/backend/llvm/expr-primitives.js +8 -0
  64. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  65. package/dist/backend/llvm/expr-records.js +3 -3
  66. package/dist/backend/llvm/expr-records.js.map +1 -1
  67. package/dist/backend/llvm/expr-stream-bridges.js +222 -10
  68. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  69. package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
  70. package/dist/backend/llvm/expr-stream-callbacks.js +53 -0
  71. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  72. package/dist/backend/llvm/lib-dispatch.js +24 -0
  73. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  74. package/dist/backend/llvm/lib-process.js +50 -5
  75. package/dist/backend/llvm/lib-process.js.map +1 -1
  76. package/dist/backend/llvm/lib-shared.js +64 -0
  77. package/dist/backend/llvm/lib-shared.js.map +1 -1
  78. package/dist/backend/llvm/lib-stream.js +6 -3
  79. package/dist/backend/llvm/lib-stream.js.map +1 -1
  80. package/dist/backend/llvm/shapes.js +10 -8
  81. package/dist/backend/llvm/shapes.js.map +1 -1
  82. package/dist/backend/llvm/split.js.map +1 -1
  83. package/dist/backend/llvm/unsupported.js.map +1 -1
  84. package/dist/backend/llvm/walkers.js +7 -5
  85. package/dist/backend/llvm/walkers.js.map +1 -1
  86. package/dist/backend/native-codegen.js.map +1 -1
  87. package/dist/backend/native-codegen.test.js +2 -0
  88. package/dist/backend/native-codegen.test.js.map +1 -1
  89. package/dist/backend/native-link-info.d.ts +2 -1
  90. package/dist/backend/native-link-info.js +4 -0
  91. package/dist/backend/native-link-info.js.map +1 -1
  92. package/dist/backend/native-link-info.test.js +24 -1
  93. package/dist/backend/native-link-info.test.js.map +1 -1
  94. package/dist/backend/native-toolchain.d.ts +8 -6
  95. package/dist/backend/native-toolchain.js +28 -13
  96. package/dist/backend/native-toolchain.js.map +1 -1
  97. package/dist/backend/native-toolchain.test.js +36 -1
  98. package/dist/backend/native-toolchain.test.js.map +1 -1
  99. package/dist/backend/runtime-pack-targets.test.js +1 -1
  100. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  101. package/dist/backend/runtime-pack.js.map +1 -1
  102. package/dist/backend/runtime-pack.test.js +1 -0
  103. package/dist/backend/runtime-pack.test.js.map +1 -1
  104. package/dist/backend/targets.d.ts +5 -0
  105. package/dist/backend/targets.js +9 -0
  106. package/dist/backend/targets.js.map +1 -1
  107. package/dist/backend/targets.test.js +6 -1
  108. package/dist/backend/targets.test.js.map +1 -1
  109. package/dist/backend/vendor-archives.js.map +1 -1
  110. package/dist/compat/fetch-profile.js +4 -2
  111. package/dist/compat/fetch-profile.js.map +1 -1
  112. package/dist/coverage/report.js.map +1 -1
  113. package/dist/coverage/surface-manifest.js +13 -0
  114. package/dist/coverage/surface-manifest.js.map +1 -1
  115. package/dist/diagnostics/diagnostic.d.ts +6 -5
  116. package/dist/diagnostics/diagnostic.js +10 -9
  117. package/dist/diagnostics/diagnostic.js.map +1 -1
  118. package/dist/diagnostics/render.js.map +1 -1
  119. package/dist/executable/executable-cache.d.ts +1 -0
  120. package/dist/executable/executable-cache.js +1 -0
  121. package/dist/executable/executable-cache.js.map +1 -1
  122. package/dist/executable/executable-cache.test.js +1 -0
  123. package/dist/executable/executable-cache.test.js.map +1 -1
  124. package/dist/ffi/ffi-manifest.js.map +1 -1
  125. package/dist/frontend/cjs-lexer.js.map +1 -1
  126. package/dist/frontend/dts-paths.js.map +1 -1
  127. package/dist/frontend/input-tracker.d.ts +10 -0
  128. package/dist/frontend/input-tracker.js +26 -3
  129. package/dist/frontend/input-tracker.js.map +1 -1
  130. package/dist/frontend/input-tracker.test.js +8 -1
  131. package/dist/frontend/input-tracker.test.js.map +1 -1
  132. package/dist/frontend/lib-contract.js.map +1 -1
  133. package/dist/frontend/lowering/array-values.d.ts +4 -0
  134. package/dist/frontend/lowering/array-values.js +18 -2
  135. package/dist/frontend/lowering/array-values.js.map +1 -1
  136. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  137. package/dist/frontend/lowering/containers/bytes.d.ts +31 -0
  138. package/dist/frontend/lowering/containers/bytes.js +1105 -0
  139. package/dist/frontend/lowering/containers/bytes.js.map +1 -0
  140. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +17 -0
  141. package/dist/frontend/lowering/containers/string-and-regexp.js +345 -0
  142. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -0
  143. package/dist/frontend/lowering/expressions/evaluation-safety.d.ts +13 -0
  144. package/dist/frontend/lowering/expressions/evaluation-safety.js +76 -0
  145. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -0
  146. package/dist/frontend/lowering/expressions/object-literals.d.ts +44 -0
  147. package/dist/frontend/lowering/expressions/object-literals.js +1815 -0
  148. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -0
  149. package/dist/frontend/lowering/expressions/optional-chains.d.ts +31 -0
  150. package/dist/frontend/lowering/expressions/optional-chains.js +382 -0
  151. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -0
  152. package/dist/frontend/lowering/expressions/try-lower-expression.d.ts +7 -0
  153. package/dist/frontend/lowering/expressions/try-lower-expression.js +26 -0
  154. package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -0
  155. package/dist/frontend/lowering/lib-boundary.js +7 -2
  156. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  157. package/dist/frontend/lowering/lower-assert.js +16 -10
  158. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  159. package/dist/frontend/lowering/lower-async-iteration.d.ts +7 -0
  160. package/dist/frontend/lowering/lower-async-iteration.js +657 -0
  161. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -0
  162. package/dist/frontend/lowering/lower-builtins.d.ts +40 -21
  163. package/dist/frontend/lowering/lower-builtins.js +611 -115
  164. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  165. package/dist/frontend/lowering/lower-calls.d.ts +21 -10
  166. package/dist/frontend/lowering/lower-calls.js +516 -75
  167. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  168. package/dist/frontend/lowering/lower-classes.d.ts +7 -13
  169. package/dist/frontend/lowering/lower-classes.js +128 -35
  170. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  171. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  172. package/dist/frontend/lowering/lower-containers.d.ts +1 -47
  173. package/dist/frontend/lowering/lower-containers.js +147 -1475
  174. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  175. package/dist/frontend/lowering/lower-event-emitter.js +51 -5
  176. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  177. package/dist/frontend/lowering/lower-exprs.d.ts +0 -78
  178. package/dist/frontend/lowering/lower-exprs.js +503 -2353
  179. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  180. package/dist/frontend/lowering/lower-generators.d.ts +18 -3
  181. package/dist/frontend/lowering/lower-generators.js +145 -9
  182. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  183. package/dist/frontend/lowering/lower-inspect.js +10 -3
  184. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  185. package/dist/frontend/lowering/lower-island.d.ts +6 -0
  186. package/dist/frontend/lowering/lower-island.js +37 -5
  187. package/dist/frontend/lowering/lower-island.js.map +1 -1
  188. package/dist/frontend/lowering/lower-modules.js +60 -15
  189. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  190. package/dist/frontend/lowering/lower-node-module.d.ts +18 -0
  191. package/dist/frontend/lowering/lower-node-module.js +302 -0
  192. package/dist/frontend/lowering/lower-node-module.js.map +1 -0
  193. package/dist/frontend/lowering/lower-server.js +1 -1
  194. package/dist/frontend/lowering/lower-server.js.map +1 -1
  195. package/dist/frontend/lowering/lower-stmts.d.ts +10 -28
  196. package/dist/frontend/lowering/lower-stmts.js +542 -259
  197. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  198. package/dist/frontend/lowering/lower-stream.js +4 -4
  199. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  200. package/dist/frontend/lowering/lowerer.d.ts +41 -38
  201. package/dist/frontend/lowering/lowerer.js +148 -62
  202. package/dist/frontend/lowering/lowerer.js.map +1 -1
  203. package/dist/frontend/lowering/optional-arguments.d.ts +9 -0
  204. package/dist/frontend/lowering/optional-arguments.js +57 -0
  205. package/dist/frontend/lowering/optional-arguments.js.map +1 -0
  206. package/dist/frontend/lowering/surfaces.d.ts +5 -3
  207. package/dist/frontend/lowering/surfaces.js +33 -13
  208. package/dist/frontend/lowering/surfaces.js.map +1 -1
  209. package/dist/frontend/npm-static-declarations.d.ts +35 -0
  210. package/dist/frontend/npm-static-declarations.js +519 -0
  211. package/dist/frontend/npm-static-declarations.js.map +1 -0
  212. package/dist/frontend/npm-static-declarations.test.d.ts +1 -0
  213. package/dist/frontend/npm-static-declarations.test.js +132 -0
  214. package/dist/frontend/npm-static-declarations.test.js.map +1 -0
  215. package/dist/frontend/npm-static.d.ts +2 -0
  216. package/dist/frontend/npm-static.js +26 -10
  217. package/dist/frontend/npm-static.js.map +1 -1
  218. package/dist/frontend/npm.d.ts +60 -0
  219. package/dist/frontend/npm.js +38 -4
  220. package/dist/frontend/npm.js.map +1 -1
  221. package/dist/frontend/npm.test.d.ts +1 -0
  222. package/dist/frontend/npm.test.js +50 -0
  223. package/dist/frontend/npm.test.js.map +1 -0
  224. package/dist/frontend/program.d.ts +3 -2
  225. package/dist/frontend/program.js +513 -70
  226. package/dist/frontend/program.js.map +1 -1
  227. package/dist/frontend/resolve.d.ts +26 -3
  228. package/dist/frontend/resolve.js +166 -29
  229. package/dist/frontend/resolve.js.map +1 -1
  230. package/dist/frontend/resolve.test.js +24 -1
  231. package/dist/frontend/resolve.test.js.map +1 -1
  232. package/dist/frontend/runtime-resolve.d.ts +22 -0
  233. package/dist/frontend/runtime-resolve.js +101 -0
  234. package/dist/frontend/runtime-resolve.js.map +1 -0
  235. package/dist/frontend/runtime-resolve.test.d.ts +1 -0
  236. package/dist/frontend/runtime-resolve.test.js +18 -0
  237. package/dist/frontend/runtime-resolve.test.js.map +1 -0
  238. package/dist/frontend/ts7/adapter.js +12 -13
  239. package/dist/frontend/ts7/adapter.js.map +1 -1
  240. package/dist/frontend/ts7/ast.js.map +1 -1
  241. package/dist/frontend/ts7/census-check.js +3 -3
  242. package/dist/frontend/ts7/census-check.js.map +1 -1
  243. package/dist/frontend/ts7/checker.d.ts +3 -0
  244. package/dist/frontend/ts7/checker.js +12 -3
  245. package/dist/frontend/ts7/checker.js.map +1 -1
  246. package/dist/frontend/ts7/enums.js.map +1 -1
  247. package/dist/frontend/ts7/program-adapter.js +42 -3
  248. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  249. package/dist/frontend/type-mapper.js +171 -16
  250. package/dist/frontend/type-mapper.js.map +1 -1
  251. package/dist/index.js +11 -5
  252. package/dist/index.js.map +1 -1
  253. package/dist/ir/analysis.js +1 -0
  254. package/dist/ir/analysis.js.map +1 -1
  255. package/dist/ir/ir.d.ts +125 -52
  256. package/dist/ir/ir.js +136 -7
  257. package/dist/ir/ir.js.map +1 -1
  258. package/dist/ir/serialize.d.ts +1 -1
  259. package/dist/ir/serialize.js +1 -1
  260. package/dist/ir/validate.js +120 -63
  261. package/dist/ir/validate.js.map +1 -1
  262. package/dist/library/cache-primitives.js.map +1 -1
  263. package/dist/library/cache-reset.test.js.map +1 -1
  264. package/dist/library/compiler-self-identity.js.map +1 -1
  265. package/dist/library/int-infer.js.map +1 -1
  266. package/dist/library/int-infer.test.js +4 -4
  267. package/dist/library/int-infer.test.js.map +1 -1
  268. package/dist/library/library-cache.d.ts +1 -0
  269. package/dist/library/library-cache.js +1 -0
  270. package/dist/library/library-cache.js.map +1 -1
  271. package/dist/library/library-cache.test.js +18 -5
  272. package/dist/library/library-cache.test.js.map +1 -1
  273. package/dist/library/library-profile.js.map +1 -1
  274. package/dist/library/sidecar-validate.js.map +1 -1
  275. package/dist/library/sidecar.js.map +1 -1
  276. package/dist/startup-cache.js.map +1 -1
  277. package/dist/wasi-paths.js.map +1 -1
  278. package/package.json +18 -18
  279. package/surface-manifest.json +91 -20
@@ -1 +1 @@
1
- {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/backend/c/async.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/backend/c/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzmB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAsB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAanG;;6BAE6B;AAC7B,SAAS,gCAAgC,CACvC,EAAc;IAEd,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,CAAC,CAA+B,EAAE,EAAE,CAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,iBAAiB,MAAM,IAAI,GAAG,CAAC,CAAC;IAEjG,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC;IAC1B,MAAM,QAAQ,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC;IAC3D,MAAM,KAAK,GAAa;QACtB,eAAe,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,qCAAqC;QAC7E,KAAK,IAAI,aAAa,IAAI,YAAY;QACtC,iBAAiB;KAClB,CAAC;IACF,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG;QAClB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACjD,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,KAAK,IAAI,kCAAkC;QAC3C,0DAA0D;QAC1D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;KAC/D,CAAC;IACF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrF,CAAC;AAED;;;yEAGyE;AACvE,MAAM,UAAU,oBAAoB,CAAC,OAAiB,EAAE,GAAa;IACnE,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QACtD,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,GAC1D,gCAAgC,CAAC,EAAE,CAAC,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAC7E,MAAM;YACR,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;gBAC9E,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAC7E,MAAM;YACR,SAAS,CAAC;gBACR,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzB,KAAK,CAAC,IAAI,CACR,iEAAiE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CACvH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,+DAA+D;YAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAEnB,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,MAAM,UAAU,GACd,EAAE,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,GAAG,CAAC,IAAI,CACN,sBAAsB,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,KAAK,EACxF,GAAG,CAAC,KAAK,KAAK,IAAI;YAChB,CAAC,CAAC,CAAC,SAAS,KAAK,+BAA+B,KAAK,IAAI,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC,EACP,GAAG,YAAY,EACf,yCAAyC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAC7E,GAAG,CAAC,KAAK,KAAK,IAAI;YAChB,CAAC,CAAC;gBACE,uDAAuD;gBACvD,wDAAwD;gBACxD,2DAA2D;gBAC3D,mCAAmC;gBACnC,mCAAmC;aACpC;YACH,CAAC,CAAC,EAAE,CAAC,EACP,GAAG,CAAC,KAAK,KAAK,IAAI;YAChB,CAAC,CAAC;gBACE,yDAAyD;gBACzD,0DAA0D;gBAC1D,uDAAuD;gBACvD,2DAA2D;gBAC3D,uDAAuD;gBACvD,WAAW;gBACX,0DAA0D;gBAC1D,yBAAyB,KAAK,IAAI;gBAClC,KAAK,KAAK,oBAAoB;aAC/B;YACH,CAAC,CAAC,EAAE,CAAC,EACP,GAAG,CAAC,UAAU,KAAK,IAAI;YACrB,CAAC,CAAC;gBACE,2DAA2D;gBAC3D,2DAA2D;gBAC3D,2DAA2D;gBAC3D,gEAAgE;gBAChE,yBAAyB,UAAU,IAAI;gBACvC,KAAK,UAAU,0BAA0B;aAC1C;YACH,CAAC,CAAC,EAAE,CAAC,EACP,gBAAgB,EAChB,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAEH;;;;;4EAK4E;AAC1E,SAAS,kBAAkB,CAAC,OAAiB,EAAE,GAAa;IAC1D,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,SAAS;YAAE,SAAS;QAC5B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,GAC/E,gCAAgC,CAAC,EAAE,CAAC,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC1D,oEAAoE;QACpE,kEAAkE;QAClE,iEAAiE;QACjE,oEAAoE;QACpE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;YAClB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACT,OAAO,8BAA8B,CAAC;gBACxC,KAAK,MAAM;oBACT,OAAO,+BAA+B,CAAC;gBACzC,SAAS,CAAC;oBACR,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBACzB,OAAO,+BAA+B,CAAC,CAAC,OAAO,IAAI,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CACR,6BAA6B,EAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,EAC3F,YAAY,EACZ,kFAAkF,EAClF,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,uCAAuC,CAAC;YAC3E,CAAC,CAAC,EAAE,CAAC,EACP,KAAK,EACL,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAEnB,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,GAAmC;gBAC3C,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM;gBAC3B,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK;aAC1B,CAAC;YACF,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;YACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxD,WAAW,GAAG,GAAG,KAAK,QAAQ,CAAC;YAC/B,MAAM,SAAS,GAAG,SAAS,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC,eAAe,WAAW,mCAAmC,CAAC,CAAC;gBACxE,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,WAAW,oCAAoC,EAC9D,KAAK,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,EAClE,yCAAyC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAChH,GAAG,EACH,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CACN,eAAe,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,EACvD,KAAK,IAAI,aAAa,IAAI,YAAY,EACtC,iBAAiB,EACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1D,GAAG,EAAE,CAAC,MAAM;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAC/D,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrF,GAAG,EACH,kBAAkB,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,KAAK,EAClF,GAAG,YAAY,EACf,WAAW,KAAK,IAAI;YAClB,CAAC,CAAC,yBAAyB,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;YAC3F,CAAC,CAAC,+BAA+B,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,WAAW,IAAI,EACpH,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAEH;;;;;;iCAMiC;AAC/B,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,KAAa;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,8CAA8C,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAAC,iDAAiD,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,uEAAuE,CAC1F,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,wEAAwE,EAC1F,iBAAiB,EACjB,iDAAiD,MAAM,YAAY,EACnE,gCAAgC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAClF,iEAAiE,EACjE,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;yDAGyD;AACvD,MAAM,UAAU,uBAAuB,CAAC,OAAiB,EAAE,SAAiB,EAAE,QAAgB;IAC5F,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5D,MAAM,IAAI,qBAAqB,CAAC,8CAA8C,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;IACvD,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,uEAAuE,CAC1F,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,wEAAwE,EAC1F,iDAAiD,MAAM,YAAY,EACnE,gCAAgC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAC1F,2BAA2B,EAC3B,6BAA6B,MAAM,qFAAqF,EACxH,WAAW,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EACnE,mFAAmF,EACnF,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;qCAKqC;AACnC,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,KAAa;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,CAAC,CAAC;IACnH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,0CAA0C,CAC7D,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,2CAA2C,EAC7D,wCAAwC,QAAQ,iFAAiF,EACjI,iEAAiE,EACjE,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;;2DAO2D;AACzD,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,OAAe,EAAE,SAAkB;IACtF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,CAAC,CAAC;IACrH,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/D,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAE,GAAI,CAAC,IAAI,CAAC,OAAO,CAA+B,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,4DAA4D,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7C,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,4DAA4D,CAAC,CAAC;QAChH,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC;QACzB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,UAAU,wBAAwB,CAAC,CAAC;QAC7E,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,UAAU,4DAA4D,EACrF,oFAAoF,EACpF,kEAAkE,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EACzH,kCAAkC,EAClC,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,yCAAyC,CAAC,CAAC;IAChH,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,UAAU,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,mEAAmE,EAC9G,sFAAsF,EACtF,8BAA8B,EAC9B,uBAAuB,OAAO,KAAK,EACnC,GAAG,CAAC,QAAQ;QACV,CAAC,CAAC;YACE,yCAAyC,UAAU,OAAO;YAC1D,kDAAkD;YAClD,gGAAgG;SACjG;QACH,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,EAC9E,KAAK,EACL,gEAAgE,EAChE,mEAAmE,EACnE,GAAG,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,6CAA6C,CAAC;QACjD,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,EAC1C,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;4EAI4E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,OAAiB,EAAE,OAAe,EAAE,SAAkB;IACzF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,wDAAwD,CAAC,CAAC;IACxH,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/D,IAAI,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,oEAAoE,CAAC,CAAC;IACxH,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC,CAAC;IACtE,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,sDAAsD,EACxE,oFAAoF,EACpF,GAAG,CAAC,SAAS;QACX,CAAC,CAAC;YACE,gGAAgG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtJ,8EAA8E;SAC/E;QACH,CAAC,CAAC;YACE,kEAAkE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI;SACzH,CAAC,EACN,kCAAkC,EAClC,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;+BAM+B;AAC7B,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,KAAa;IAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,kDAAkD,CAAC,CAAC;IACjH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,4GAA4G,CAC/H,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,6GAA6G,EAC/H,KAAK,MAAM,aAAa,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAC3D,YAAY,WAAW,CAAC,SAAS,CAAC,6BAA6B,EAC/D,YAAY,WAAW,CAAC,QAAQ,CAAC,+BAA+B,EAChE,YAAY,WAAW,CAAC,MAAM,CAAC,aAAa,EAC5C,YAAY,WAAW,CAAC,MAAM,CAAC,aAAa,EAC5C,0CAA0C,MAAM,yDAAyD,EACzG,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;qCAKqC;AACnC,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,GAAW;IAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,6CAA6C,CAAC,CAAC;IACxG,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,+CAA+C,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IACzC,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,qBAAqB,CAAC,kDAAkD,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtI,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5I,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,yEAAyE,CAC5F,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,0EAA0E,EAC5F,mCAAmC,EACnC,2BAA2B,EAC3B,6BAA6B,MAAM,8EAA8E,EACjH,WAAW,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAC5D,gBAAgB,OAAO,gBAAgB,QAAQ,IAAI,EACnD,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;oEAEoE;AAClE,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,GAAW;IAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;IACvG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,CAAC;IAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,wCAAwC,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,yCAAyC,EAC3D,8EAA8E,EAC9E,iEAAiE,EACjE,GAAG,CACJ,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,gDAAgD,CAAC,CAAC;IAC9G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC;IACpH,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,yCAAyC,EAC3D,2BAA2B,EAC3B,6BAA6B,MAAM,8EAA8E,EACjH,WAAW,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAC7D,iEAAiE,EACjE,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;kEAGkE;AAChE,MAAM,UAAU,mBAAmB,CAAC,OAAiB,EAAE,GAAW;IAChE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,kBAAkB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,0CAA0C,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,CAAC,eAAe,GAAG,2CAA2C,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACvD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,CAAC,CAAC;YACxG,KAAK,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACzF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,CAAC,CAAC;QAC9E,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,yDAAyD,EAAE,gCAAgC,CAAC,CAAC;QACxG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,CAAC,IAAI,CACR,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAC3E,GAAG,CACJ,CAAC;IACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;uEAKuE;AACrE,MAAM,UAAU,mBAAmB,CAAC,OAAiB,EAAE,GAAW;IAChE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3D,MAAM,IAAI,qBAAqB,CAAC,iEAAiE,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,0DAA0D,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,oFAAoF,CACvG,CAAC;IACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,qFAAqF,EACvG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,EACnD,wCAAwC,GAAG,oEAAoE,EAC/G,KAAK;QACH,CAAC,CAAC,4GAA4G;QAC9G,CAAC,CAAC,uFAAuF,EAC3F,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,GAAW;IAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,EAAE,EAAE,IAAI,KAAK,OAAO,IAAI,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,4DAA4D,CAAC,CAAC;IACnI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,8DAA8D,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,KAAK,OAAO;QACjC,CAAC,CAAC,sCAAsC,GAAG,mEAAmE;QAC9G,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,GAAG,GAAG,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrD,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,+DAA+D,EACjF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAClC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC,iCAAiC,EAAE,iCAAiC,EAAE,+CAA+C,CAAC;QACzH,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC,iCAAiC,EAAE,qEAAqE,CAAC;YAC5G,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,iCAAiC,GAAG,IAAI,CAAC,CAAC,EAC7I,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;;qDAOqD;AACnD,MAAM,UAAU,uBAAuB,CAAC,OAAiB,EAAE,GAAW;IACpE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,qBAAqB,CAAC,2DAA2D,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,kDAAkD,CAAC,CAAC;IAC/G,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,OAAO,GAAG,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,yDAAyD,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,IAAI,qBAAqB,CAAC,+DAA+D,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,4DAA4D,CAAC,CAAC;IAC1G,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,6DAA6D,EAC/E,sCAAsC,OAAO,GAAG,EAChD,0BAA0B,EAC1B,2FAA2F,EAC3F,0BAA0B,EAC1B,sBAAsB,EACtB,0CAA0C,EAC1C,uDAAuD,EACvD,kDAAkD,EAClD,SAAS,SAAS,aAAa,SAAS,qCAAqC,EAC7E,uDAAuD,SAAS,KAAK,EACrE,SAAS,UAAU,SAAS,EAC5B,OAAO,EACP,KAAK,EACL,+DAA+D,EAC/D,4BAA4B,EAC5B,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;;sEAOsE;AACpE,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,GAAW;IAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,uCAAuC,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACvC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,qBAAqB,CAAC,+CAA+C,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,sDAAsD,CAAC,CAAC;QACzG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,MAAM,GAAG,kBAAkB,OAAO,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,GAAG,GAAG,MAAM,CAAC;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,qBAAqB,CAAC,+CAA+C,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,+DAA+D,CAAC,CAAC;QACjH,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CACP,yCAAyC,MAAM,0EAA0E,EACzH,8BAA8B,CAC/B,CAAC;QACF,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,uBAAuB,MAAM,GAAG,CAAC,CAAC;IAC5C,IAAI,OAAO,IAAI,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,6CAA6C,GAAG,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;;iBAOiB;AACf,MAAM,UAAU,cAAc,CAAC,OAAiB,EAAE,IAAY,EAAE,EAAU;IACxE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAAE,OAAO,wBAAwB,CAAC;IAC1D,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/C,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,qBAAqB,CAAC,+CAA+C,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,6DAA6D,CAAC,CAAC;QAC5G,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CACxC,mCAAmC,KAAK,KAAK,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;IACtG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,2CAA2C,CAAC,CAAC;IACzF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,oDAAoD;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,KAAa,CAAC;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,KAAK,GAAG,qBAAqB,GAAG,oCAAoC,CAAC;gBACrE,MAAM;YACR,KAAK,MAAM;gBACT,KAAK,GAAG,sBAAsB,GAAG,qCAAqC,CAAC;gBACvE,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,GAAG,qBAAqB,GAAG,+EAA+E,CAAC;gBAChH,MAAM;YACR,SAAS,CAAC;gBACR,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3B,KAAK,GAAG,qBAAqB,GAAG,sCAAsC,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAChI,CAAC;QACH,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,4CAA4C,EAC9D,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,EACrB,GAAG,CACJ,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,iDAAiD,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,KAAK,GAAG,qBAAqB,GAAG,4BAA4B,CAAC;QAC/D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,KAAK,GAAG,sBAAsB,GAAG,6BAA6B,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,GAAG,qBAAqB,GAAG,KAAK,EAAE,CAAC,MAAM,2BAA2B,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAClI,CAAC;QACD,OAAO,UAAU,CAAC,YAAY,KAAK,UAAU,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,4CAA4C,EAC9D,iEAAiE,EACjE,0BAA0B,EAC1B,wBAAwB,EACxB,GAAG,KAAK,EACR,mBAAmB,EACnB,KAAK,EACL,4BAA4B,EAC5B,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,EACtB,GAAG,CACJ,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;;;;gDAQgD;AAC9C,MAAM,UAAU,iBAAiB,CAC/B,OAAiB,EACjB,IAAoC,EACpC,IAAiC;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC;IACnE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,CAAC,CAAC;IACpG,MAAM,KAAK,GAAa;QACtB,UAAU,MAAM,KAAK,GAAG,kBAAkB;QAC1C,KAAK,MAAM,YAAY,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;QACzD,mCAAmC;QACnC,WAAW,WAAW,CAAC,MAAM,CAAC,UAAU;KACzC,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,qEAAqE;QACrE,KAAK,CAAC,IAAI,CACR,WAAW,WAAW,CAAC,OAAO,CAAC,0BAA0B,EACzD,8CAA8C,EAC9C,8CAA8C,CAC/C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,GAAG,GAAG,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,iDAAiD,CAAC,CAAC;YAChG,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACpE,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;QACxG,sEAAsE;QACtE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAY,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,gCAAgC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACvF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,iCAAiC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO;oBACL,gCAAgC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;iBACnI,CAAC;YACJ,CAAC;YACD,+DAA+D;YAC/D,kEAAkE;YAClE,+DAA+D;YAC/D,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,oDAAoD,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,qBAAqB,CAAC,8CAA8C,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,KAAa,CAAC;gBAClB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC9B,KAAK,GAAG,qBAAqB,GAAG,4BAA4B,CAAC;gBAC/D,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,KAAK,GAAG,sBAAsB,GAAG,6BAA6B,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC1B,KAAK,GAAG,qBAAqB,GAAG,KAAK,EAAE,CAAC,MAAM,2BAA2B,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAClI,CAAC;gBACD,OAAO,YAAY,CAAC,YAAY,KAAK,UAAU,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,gEAAgE;gBAChE,0BAA0B;gBAC1B,GAAG,KAAK;gBACR,uBAAuB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU;gBAClF,OAAO;gBACP,gCAAgC;aACjC,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,cAAc,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,qEAAqE;QACrE,oEAAoE;QACpE,WAAW;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC;IACrE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACb,CAAC;AAEH,sEAAsE;AACpE,MAAM,UAAU,eAAe,CAAC,OAAiB,EAAE,KAAa;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,YAAY,CAAC,IAAI,CACvB,eAAe,GAAG,yBAAyB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CACpE,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,yBAAyB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EACpE,yCAAyC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAChG,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEH;;;;;4EAK4E;AAC5E,MAAM,UAAU,qBAAqB,CAAC,OAAiB,EAAE,GAAW;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,mEAAmE,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,wBAAwB,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,2BAA2B,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,gDAAgD;YAChD,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,8BAA8B,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzF,kEAAkE;IAClE,gEAAgE;IAChE,0BAA0B;IAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,IAAI,QAAQ,SAAS,gBAAgB,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5F,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,qCAAqC,CAAC,CAAC;IACnF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,sCAAsC,EACxD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACzD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QACzB,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM,GAAG,EAAE,eAAe,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAClF,CAAC,CAAC,CAAC,WAAW,MAAM,GAAG,CAAC,CAAC,EAC7B,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;2EAO2E;AAC3E,SAAS,eAAe,CAAC,OAAiB,EAAE,IAAiC,EAAE,KAAa;IAC1F,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,qBAAqB,CAAC,oEAAoE,CAAC,CAAC;IACxG,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,MAAM,GAAa,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAa;QACrB,8EAA8E;QAC9E,4BAA4B;KAC7B,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,qBAAqB,CAAC,gDAAgD,CAAC,CAAC;QAC7G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,wDAAwD,CAAC,CAAC;QAC1G,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CACP,8BAA8B,MAAM,gEAAgE,CACrG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAa,CAAC,6BAA6B,EAAE,8BAA8B,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,qBAAqB,CAAC,iDAAiD,CAAC,CAAC;YAC/G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CACP,GAAG,CAAC,QAAQ,IAAI,CAAC;gBACf,CAAC,CAAC,CAAC,8BAA8B,QAAQ,iEAAiE,CAAC;gBAC3G,CAAC,CAAC,EAAE,CAAC,EACP,GAAG,CAAC,MAAM,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC,8BAA8B,MAAM,gEAAgE,CAAC;gBACxG,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GACT,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACvE,MAAM,IAAI,GACR,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAC1B,CAAC,CAAC,GAAG,KAAK,sCAAsC;QAChD,CAAC,CAAC,GAAG,KAAK,iBAAiB,CAAC;IAChC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAC5C,GAAG,IAAI,EACP,KAAK,IAAI,2CAA2C,EACpD,6BAA6B,EAC7B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACvE,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1G,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;2DAQ2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,GAAW;IAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,oEAAoE,CAAC,CAAC;IACxG,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,IAAI,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,wBAAwB,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,qBAAqB,CAAC,qEAAqE,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,IAAI,GAAa;QACrB,+CAA+C;QAC/C,2CAA2C;KAC5C,CAAC;IACF,MAAM,MAAM,GAAa,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CACP,gBAAgB,EAChB,iIAAiI,EACjI,+DAA+D,EAC/D,aAAa,EACb,KAAK,CACN,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CACP,gBAAgB,EAChB,qJAAqJ,EACrJ,+DAA+D,EAC/D,aAAa,EACb,KAAK,CACN,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,IAAI,QAAQ,SAAS,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9E,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,qCAAqC,CAAC,CAAC;IACnF,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,sCAAsC,EACxD,GAAG,IAAI,EACP,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QACzB,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM,GAAG,EAAE,eAAe,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAClF,CAAC,CAAC,CAAC,WAAW,MAAM,GAAG,CAAC,CAAC,EAC7B,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;8BAU8B;AAC9B,MAAM,UAAU,gBAAgB,CAAC,OAAiB,EAAE,IAA6C,EAAE,GAAW;IAC5G,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,sEAAsE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,6CAA6C;IAC7C,MAAM,aAAa,GACjB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAC1E,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBACxE,CAAC,iBAAiB,CAAC,CAAC;IACtB,wEAAwE;IACxE,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,qBAAqB,CAAC,0EAA0E,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,MAAM,GAAa,OAAO;QAC9B,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,EAAE,0BAA0B,CAAC;QACrE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACd,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAChG,uEAAuE;IACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,IAAI,uBAAuB,QAAQ,CAAC,MAAM,+BAA+B,CAAC,CAAC;IACrI,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,kCAAkC;QACvD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,mEAAmE;YACnE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC7D,MAAM,SAAS,GACb,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK;YACpB,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACxG,oEAAoE;QACpE,kEAAkE;QAClE,+DAA+D;QAC/D,kEAAkE;QAClE,kEAAkE;QAClE,8BAA8B;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CACP,+CAA+C,EAC/C,+CAA+C,EAC/C,6BAA6B,CAC9B,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,+DAA+D;gBAC/D,oDAAoD;gBACpD,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG;oBACtB,CAAC,CAAC,2EAA2E;oBAC7E,CAAC,CAAC,0DAA0D,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,uBAAuB,IAAI,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CACP,oDAAoD,IAAI,OAAO,EAC/D,uGAAuG,EACvG,+DAA+D,EAC/D,kDAAkD,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAC9L,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;YAC1G,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,2DAA2D;YAC3D,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC;YAC7G,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,MAAM,OAAO,GAAG,GAAG;gBACjB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC,CAAC,CAAC;YACP,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,sDAAsD,CAAC,CAAC;YACvH,IAAI,CAAC,IAAI,CACP,kDAAkD,MAAM,oHAAoH,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAC5N,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAmC,CAAC,CAAC,2BAA2B;YACjF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CACP,oDAAoD,MAAM,OAAO,EACjE,uGAAuG,EACvG,+DAA+D,CAChE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,IAAI,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C;IACzF,kEAAkE;IAClE,uEAAuE;IACvE,oDAAoD;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,IAAI,QAAQ,SAAS,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9E,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,eAAe,GAAG,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EACtE,GAAG,MAAM,EACT,GAAG,IAAI,EACP,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QACzB,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC;QAClB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM,GAAG,EAAE,eAAe,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAClF,CAAC,CAAC,CAAC,WAAW,MAAM,GAAG,CAAC,CAAC,EAC7B,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { IrBytesElem, IrGlobal, IrRecordShape, IrExpr, IrFfiImport, IrFunction, IrLocal, IrModule, IrStmt, IrType, IrUnionDef, SrcLoc } from "../../ir/ir.js";
2
2
  import { type FfiCallbackAdapter } from "../ffi-callbacks.js";
3
3
  import { VtSlot, ClassMeta } from "./shapes.js";
4
+ import { type StreamTypedRefAdapter } from "./exprs.js";
4
5
  export interface CEmitOptions {
5
6
  /** Library archive assembly may move the volatile identity getters into a
6
7
  * separate translation unit. Public/direct emission keeps them by default. */
@@ -29,7 +30,7 @@ export declare class CEmitter {
29
30
  /** Kind-specialized typed-array access helpers actually used by this
30
31
  * program. Keeping these in the generated TU means unrelated binaries do
31
32
  * not pay even debug/link metadata for byte-loop fast paths. */
32
- readonly bytesElementHelpers: Set<"set:u8:f64" | "set:u8:u64" | "set:u32:f64" | "set:u32:u64" | "set:i32:f64" | "set:i32:u64" | "set:f32:f64" | "set:f32:u64" | "get:u8:f64" | "get:u8:u64" | "get:u32:f64" | "get:u32:u64" | "get:i32:f64" | "get:i32:u64" | "get:f32:f64" | "get:f32:u64">;
33
+ readonly bytesElementHelpers: Set<"get:f32:f64" | "get:f32:u64" | "get:i32:f64" | "get:i32:u64" | "get:u32:f64" | "get:u32:u64" | "get:u8:f64" | "get:u8:u64" | "set:f32:f64" | "set:f32:u64" | "set:i32:f64" | "set:i32:u64" | "set:u32:f64" | "set:u32:u64" | "set:u8:f64" | "set:u8:u64">;
33
34
  /** Interned unit-armed union instances: "unionId:tag" → static symbol.
34
35
  * A unit arm (undefined/null) has no payload, so every instance of one
35
36
  * (union, tag) pair is identical — ONE immortal (rc == SIZE_MAX) static
@@ -176,8 +177,8 @@ export declare class CEmitter {
176
177
  * for each pull, preserving iterator-time reads without teaching the
177
178
  * runtime the compiler's program-specific record/union layouts. */
178
179
  readonly streamFromArrayAdapters: Map<string, string>;
179
- /** Identity-preserving static→dyn capsules used by Web APIs whose values
180
- * remain directly observable (stream chunks and AbortSignal reasons). */
180
+ /** Identity-preserving static→dyn capsules for program classes and Web
181
+ * APIs whose values remain directly observable. */
181
182
  readonly liveDynRefAdapters: Map<string, {
182
183
  snapshot: string;
183
184
  commit: string;
@@ -244,6 +245,7 @@ export declare class CEmitter {
244
245
  labels?: string[];
245
246
  scopeDepth: number;
246
247
  frameDepth: number;
248
+ finallyDepth: number;
247
249
  } | {
248
250
  kind: "switch";
249
251
  endLabel: string;
@@ -251,6 +253,7 @@ export declare class CEmitter {
251
253
  labels?: string[];
252
254
  scopeDepth: number;
253
255
  frameDepth: number;
256
+ finallyDepth: number;
254
257
  } | {
255
258
  kind: "block";
256
259
  endLabel: string;
@@ -258,6 +261,7 @@ export declare class CEmitter {
258
261
  labels: string[];
259
262
  scopeDepth: number;
260
263
  frameDepth: number;
264
+ finallyDepth: number;
261
265
  })[];
262
266
  labelCounter: number;
263
267
  readonly returnTypeByFn: Map<string, IrType>;
@@ -277,19 +281,22 @@ export declare class CEmitter {
277
281
  frameDepth: number;
278
282
  scopeDepth: number;
279
283
  }[];
280
- /** Enclosing try-with-FINALLY regions, innermost last — the pending-
281
- * return analogue of tryStack: a `return` inside one snapshots its value
282
- * into the function's pending-return slot (sc_pret), releases down to
283
- * the region's depths, and jumps to `label` (the region's pending-return
284
- * finally copy), whose tail dispatches to the next region out or emits
285
- * the actual return. Spans tryBody and catchBody; the finally body
286
- * itself is outside (the frontend fences jumps there). */
284
+ /** Enclosing try-with-finally regions, innermost last. Returns use the
285
+ * central pending-return copies; break/continue inline the crossed bodies
286
+ * with the same truncated ownership and exception context as LLVM. */
287
287
  finallyStack: {
288
288
  label: string;
289
289
  used: boolean;
290
290
  frameDepth: number;
291
291
  scopeDepth: number;
292
+ tryDepth: number;
293
+ body: IrStmt[];
292
294
  }[];
295
+ /** Scope entry protecting sc_pret while a pending-return finally copy
296
+ * runs. A return in that copy replaces the old completion: it evaluates
297
+ * first, releases the old slot, then removes this protection from its
298
+ * own unwind path before dispatching. */
299
+ pendingReturnScopeIndex: number | null;
293
300
  /** Return type of the function being emitted — the unwind path returns a
294
301
  * dummy of this type (never read: callers check the pending flag first). */
295
302
  currentReturnType: IrType;
@@ -361,6 +368,7 @@ export declare class CEmitter {
361
368
  dynMatchHelper(t: IrType): string;
362
369
  dynCheckHelper(t: IrType): string;
363
370
  toDynHelper(t: IrType): string;
371
+ liveDynRefAdapter(t: IrType): StreamTypedRefAdapter;
364
372
  dynFuncBoxHelper(t: IrType & {
365
373
  kind: "func";
366
374
  }): string;
@@ -402,6 +410,12 @@ export declare class CEmitter {
402
410
  * label are still on the jump's path (return passes 0/0 — it leaves the
403
411
  * whole function). */
404
412
  releaseForJump(frameDepth: number, scopeDepth: number): void;
413
+ /** Run the finally regions a break/continue exits, then release to its
414
+ * resolved target. Every body sees compile-time frame/scope/finally/try
415
+ * stacks truncated to the region boundary: a throw propagates outside
416
+ * the completing try, and a jump inside the finally replaces the pending
417
+ * jump without re-entering the same cleanup. */
418
+ emitFinallysForJump(finallyDepth: number, frameDepth: number, scopeDepth: number): void;
405
419
  /** THE unwind path at a point where an exception is pending: release
406
420
  * everything between here and the innermost try handler — or the whole
407
421
  * function — via releaseForJump, then jump to the handler / return a
@@ -490,6 +504,7 @@ export declare class CEmitter {
490
504
  dgramMsgThunkFor(param: IrType): string;
491
505
  dnsLookupThunkFor(cbT: IrType): string;
492
506
  fsRenameThunkFor(cbT: IrType): string;
507
+ cryptoBytesThunkFor(cbT: IrType): string;
493
508
  sniAnswerThunkFor(cbT: IrType): string;
494
509
  netLookupAnswerThunkFor(cbT: IrType): string;
495
510
  emitterInvokeThunkFor(cbT: IrType): string;
@@ -1,16 +1,16 @@
1
1
  import { InternalCompilerError } from "../../errors.js";
2
- import { ffiCallbackType, funcOf, isFfiCallbackParam, isFfiContextParam, isFfiReleaseParam, isRefCounted, isUnitType, mapOf, moduleEmbedsCompressedNpm, moduleUsesDgram, moduleUsesDynInvoke, moduleEmbedsBuiltin, moduleUsesFetch, moduleUsesFsWatch, moduleUsesHttp2, moduleUsesHttpServer, moduleUsesNet, moduleUsesNodeTest, moduleUsesProcessEvents, moduleUsesStream, moduleUsesTls, moduleUsesTlsCa, POINTER_KINDS, RUNTIME_EMITTER_CLASS, STRING, VOID } from "../../ir/ir.js";
2
+ import { ffiCallbackType, funcOf, isFfiCallbackParam, isFfiContextParam, isFfiReleaseParam, isRefCounted, isUnitType, mapOf, moduleEmbedsCompressedNpm, moduleUsesChildProcess, moduleUsesDgram, moduleUsesDynInvoke, moduleEmbedsBuiltin, moduleUsesFetch, moduleUsesFsWatch, moduleUsesHttp2, moduleUsesHttpServer, moduleUsesNet, moduleUsesNodeTest, moduleUsesProcessEvents, moduleUsesStream, moduleUsesTls, moduleUsesTlsCa, POINTER_KINDS, RUNTIME_EMITTER_CLASS, STRING, VOID } from "../../ir/ir.js";
3
3
  import { undefinedArmTag } from "../../ir/analysis.js";
4
4
  import { allocateFfiCallbackAdapters, hasForeignFfiCallback, hasRetainedFfiCallback } from "../ffi-callbacks.js";
5
5
  import { mangleAsyncSpawn, mangleGenSpawn, mangleClassObj, mangleField, mangleGlobal, mangleFnClosure, mangleFunction, mangleLocal, mangleRawParam, mangleVtSlot, mangleWrapper, } from "../mangle.js";
6
- import { cFnPtrCast, cType, releaseCallC, cStringLiteral, cDecl } from "./types.js";
6
+ import { cCommentText, cFnPtrCast, cType, releaseCallC, cStringLiteral, cDecl } from "./types.js";
7
7
  import { computeMayThrow } from "./may-throw.js";
8
8
  import { unionTruthyHelper, unionEqHelper, unionToStrHelper, unionJoinHelper, jsonWriteHelper, jsonIndentHelper, dynMatchHelper, dynCheckHelper, dynFuncBoxHelper, dynToStrHelper, caughtToDynHelper, toDynHelper, recordKeyGetHelper, recordKeySetHelper } from "./walkers.js";
9
9
  import { emitStructDefs, vtEntriesFor, vtSlotParams, emitVtableDecls, emitVtableInstances, emitVtAdapterDefs, emitHierarchyClassHelpers, emitClassObjs, emitCtorThunkDefs, errorVtStampLines, emitterVtStampLines, streamVtStampLines, traceAdapterC, traceArgC, boxNewC, arrNewC } from "./shapes.js";
10
- import { emitAsyncScaffolding, childDataThunkFor, childExitThunkFor, childExitSignalThunkFor, closeBindThunkFor, connectResThunkFor, connectSockThunkFor, closeOverrideWrapFor, dgramMsgThunkFor, dnsLookupThunkFor, fsRenameThunkFor, netLookupAnswerThunkFor, emitterInvokeThunkFor, streamCbThunkFor, streamDataThunkFor, raceAdapterFor, resolveThunkFor, sniAnswerThunkFor } from "./async.js";
10
+ import { emitAsyncScaffolding, childDataThunkFor, childExitThunkFor, childExitSignalThunkFor, closeBindThunkFor, connectResThunkFor, connectSockThunkFor, closeOverrideWrapFor, cryptoBytesThunkFor, dgramMsgThunkFor, dnsLookupThunkFor, fsRenameThunkFor, genResultThunkFor, netLookupAnswerThunkFor, emitterInvokeThunkFor, streamCbThunkFor, streamDataThunkFor, raceAdapterFor, resolveThunkFor, sniAnswerThunkFor } from "./async.js";
11
11
  import { emitNpmEmbedding, islandAdapter, islandTypedAdapter } from "./island.js";
12
12
  import { emitFunction, emitBlock, emitStmts, emitStmt, emitTryCatch, emitSwitch, mergeBrace, emitBranchInto, emitCondition } from "./stmts.js";
13
- import { emitExpr } from "./exprs.js";
13
+ import { emitExpr, liveDynRefAdapter as buildLiveDynRefAdapter } from "./exprs.js";
14
14
  import { emitLibraryIdentityLines } from "../library-identity-markers.js";
15
15
  export function emitCModule(mod, sourceText, options = {}) {
16
16
  return new CEmitter(mod, sourceText, options).emit();
@@ -211,8 +211,8 @@ export class CEmitter {
211
211
  * for each pull, preserving iterator-time reads without teaching the
212
212
  * runtime the compiler's program-specific record/union layouts. */
213
213
  streamFromArrayAdapters = new Map();
214
- /** Identity-preserving static→dyn capsules used by Web APIs whose values
215
- * remain directly observable (stream chunks and AbortSignal reasons). */
214
+ /** Identity-preserving static→dyn capsules for program classes and Web
215
+ * APIs whose values remain directly observable. */
216
216
  liveDynRefAdapters = new Map();
217
217
  /** Runtime-arm dispatchers for live references whose static type is a
218
218
  * union. Mutable arms become typed capsules; scalar/unit arms retain the
@@ -281,14 +281,15 @@ export class CEmitter {
281
281
  * `label` (the catch, or the exception-path finally) instead of returning
282
282
  * out of the function. Purely compile-time: entering a try emits no code. */
283
283
  tryStack = [];
284
- /** Enclosing try-with-FINALLY regions, innermost last — the pending-
285
- * return analogue of tryStack: a `return` inside one snapshots its value
286
- * into the function's pending-return slot (sc_pret), releases down to
287
- * the region's depths, and jumps to `label` (the region's pending-return
288
- * finally copy), whose tail dispatches to the next region out or emits
289
- * the actual return. Spans tryBody and catchBody; the finally body
290
- * itself is outside (the frontend fences jumps there). */
284
+ /** Enclosing try-with-finally regions, innermost last. Returns use the
285
+ * central pending-return copies; break/continue inline the crossed bodies
286
+ * with the same truncated ownership and exception context as LLVM. */
291
287
  finallyStack = [];
288
+ /** Scope entry protecting sc_pret while a pending-return finally copy
289
+ * runs. A return in that copy replaces the old completion: it evaluates
290
+ * first, releases the old slot, then removes this protection from its
291
+ * own unwind path before dispatching. */
292
+ pendingReturnScopeIndex = null;
292
293
  /** Return type of the function being emitted — the unwind path returns a
293
294
  * dummy of this type (never read: callers check the pending flag first). */
294
295
  currentReturnType = VOID;
@@ -547,6 +548,20 @@ export class CEmitter {
547
548
  }
548
549
  emit() {
549
550
  const body = [];
551
+ // Async-generator spawn wrappers need their type-directed result
552
+ // builders even when user code only creates and drops the iterator.
553
+ // Register them before the unit-instance table flushes below.
554
+ for (const fn of this.mod.functions) {
555
+ if (!fn.async || fn.generator === undefined)
556
+ continue;
557
+ genResultThunkFor(this, {
558
+ kind: "generator",
559
+ async: true,
560
+ yieldT: fn.generator.yieldT,
561
+ retT: fn.returnType,
562
+ nextT: fn.generator.nextT,
563
+ }, fn.generator.resultType);
564
+ }
550
565
  // Function bodies are emitted first (into this.lines) so the literal
551
566
  // table is complete; the file is then assembled around them.
552
567
  for (const fn of this.mod.functions) {
@@ -598,8 +613,7 @@ export class CEmitter {
598
613
  const pattern = key.slice(sep + 1);
599
614
  const src = this.internLiteral(pattern);
600
615
  const fl = this.internLiteral(flags);
601
- // "*/" inside the pattern would close the trailing comment.
602
- const safe = `/${pattern}/${flags}`.split("*/").join("* /");
616
+ const safe = cCommentText(`/${pattern}/${flags}`);
603
617
  out.push(`static ${this.mod.lib?.threadInstances === true ? "_Thread_local " : ""}ScrRegex ${sym} = { .rc = SIZE_MAX, .source = (ScrStr *)&${src}, ` +
604
618
  `.flags = (ScrStr *)&${fl}, .bc = NULL }; /* ${safe} */`);
605
619
  }
@@ -691,7 +705,7 @@ export class CEmitter {
691
705
  const fn = this.fnByName.get(name);
692
706
  const params = ["ScrClosure *sc_env", ...fn.params.map((p) => cDecl(p.type, mangleLocal(p.localId)))];
693
707
  const call = `${this.callTargetC(name)}(${fn.params.map((p) => mangleLocal(p.localId)).join(", ")})`;
694
- const retType = fn.async ? "ScrPromise *" : fn.generator ? "ScrGen *" : cType(fn.returnType);
708
+ const retType = fn.generator ? "ScrGen *" : fn.async ? "ScrPromise *" : cType(fn.returnType);
695
709
  out.push(``, `static ${retType}${retType.endsWith("*") ? "" : " "}${mangleWrapper(name)}(${params.join(", ")}) {`, ` (void)sc_env;`, fn.returnType.kind === "void" && !fn.async && !fn.generator ? ` ${call};` : ` return ${call};`, `}`, `static struct { size_t rc; void *fn; size_t ncaps; ScrBox *props; } ${mangleFnClosure(name)} =`, ` { SIZE_MAX, (void *)&${mangleWrapper(name)}, 0, NULL };`);
696
710
  }
697
711
  // Construct-thunk definitions (prototyped with the class objects
@@ -840,7 +854,7 @@ export class CEmitter {
840
854
  // the loop's nullable event hooks before %main — the events unit
841
855
  // (scr_events.c) links only when this line is emitted (native-toolchain.ts gates
842
856
  // on the same predicate, like fetch).
843
- ...(moduleUsesProcessEvents(this.mod) ? [` scr_events_install();`] : []),
857
+ ...(moduleUsesProcessEvents(this.mod) ? [` scr_events_install();`] : []), ...(moduleUsesChildProcess(this.mod) ? [` scr_child_dyn_install();`] : []),
844
858
  // Net-surface programs fill the loop's net hooks before %main — the
845
859
  // net unit (scr_net.c) links only when this line is emitted (native-toolchain.ts
846
860
  // gates on the same predicate, like events). The dyn-install twin
@@ -1199,6 +1213,9 @@ export class CEmitter {
1199
1213
  toDynHelper(t) {
1200
1214
  return toDynHelper(this, t);
1201
1215
  }
1216
+ liveDynRefAdapter(t) {
1217
+ return buildLiveDynRefAdapter(this, t);
1218
+ }
1202
1219
  dynFuncBoxHelper(t) {
1203
1220
  return dynFuncBoxHelper(this, t);
1204
1221
  }
@@ -1373,6 +1390,35 @@ export class CEmitter {
1373
1390
  for (let i = this.scopes.length - 1; i >= scopeDepth; i--)
1374
1391
  this.releaseFrame(this.scopes[i]);
1375
1392
  }
1393
+ /** Run the finally regions a break/continue exits, then release to its
1394
+ * resolved target. Every body sees compile-time frame/scope/finally/try
1395
+ * stacks truncated to the region boundary: a throw propagates outside
1396
+ * the completing try, and a jump inside the finally replaces the pending
1397
+ * jump without re-entering the same cleanup. */
1398
+ emitFinallysForJump(finallyDepth, frameDepth, scopeDepth) {
1399
+ if (this.finallyStack.length <= finallyDepth) {
1400
+ this.releaseForJump(frameDepth, scopeDepth);
1401
+ return;
1402
+ }
1403
+ const savedFrames = this.frames;
1404
+ const savedScopes = this.scopes;
1405
+ const savedFinally = this.finallyStack;
1406
+ const savedTry = this.tryStack;
1407
+ for (let i = savedFinally.length - 1; i >= finallyDepth; i--) {
1408
+ const fin = savedFinally[i];
1409
+ this.releaseForJump(fin.frameDepth, fin.scopeDepth);
1410
+ this.frames = this.frames.slice(0, fin.frameDepth);
1411
+ this.scopes = this.scopes.slice(0, fin.scopeDepth);
1412
+ this.finallyStack = savedFinally.slice(0, i);
1413
+ this.tryStack = savedTry.slice(0, fin.tryDepth);
1414
+ this.emitBlock(fin.body);
1415
+ }
1416
+ this.releaseForJump(frameDepth, scopeDepth);
1417
+ this.frames = savedFrames;
1418
+ this.scopes = savedScopes;
1419
+ this.finallyStack = savedFinally;
1420
+ this.tryStack = savedTry;
1421
+ }
1376
1422
  /** THE unwind path at a point where an exception is pending: release
1377
1423
  * everything between here and the innermost try handler — or the whole
1378
1424
  * function — via releaseForJump, then jump to the handler / return a
@@ -1408,10 +1454,10 @@ export class CEmitter {
1408
1454
  * fiber and returns the generator object). */
1409
1455
  callTargetC(fnName) {
1410
1456
  const fn = this.fnByName.get(fnName);
1411
- if (fn?.async === true)
1412
- return mangleAsyncSpawn(fnName);
1413
1457
  if (fn?.generator !== undefined)
1414
1458
  return mangleGenSpawn(fnName);
1459
+ if (fn?.async === true)
1460
+ return mangleAsyncSpawn(fnName);
1415
1461
  return mangleFunction(fnName);
1416
1462
  }
1417
1463
  /** The emitter contract for exceptions: after EVERY call that can throw
@@ -1484,12 +1530,12 @@ export class CEmitter {
1484
1530
  * record shapes' construction paths, which write every field. */
1485
1531
  undefFieldInitLineC(name, t) {
1486
1532
  if (t.kind === "jsval") {
1487
- return [` o->${mangleField(name)} = scr_jsval_undefined(); /* ${name} starts undefined */`];
1533
+ return [` o->${mangleField(name)} = scr_jsval_undefined(); /* ${cCommentText(name)} starts undefined */`];
1488
1534
  }
1489
1535
  const tag = undefinedArmTag(t, this.unionsById);
1490
1536
  if (tag < 0 || t.kind !== "union")
1491
1537
  return [];
1492
- return [` o->${mangleField(name)} = ${this.unitInstanceRef(t.unionId, tag)}; /* ${name} starts undefined */`];
1538
+ return [` o->${mangleField(name)} = ${this.unitInstanceRef(t.unionId, tag)}; /* ${cCommentText(name)} starts undefined */`];
1493
1539
  }
1494
1540
  /* ── functions ────────────────────────────────────────────────────── */
1495
1541
  ffiCallbackAdapter(binding, id) {
@@ -1708,6 +1754,7 @@ export class CEmitter {
1708
1754
  ...(labels !== undefined && { labels }),
1709
1755
  scopeDepth: this.scopes.length,
1710
1756
  frameDepth: this.frames.length,
1757
+ finallyDepth: this.finallyStack.length,
1711
1758
  };
1712
1759
  }
1713
1760
  emitTryCatch(s) {
@@ -1730,7 +1777,7 @@ export class CEmitter {
1730
1777
  * their length — no runtime call, no ownership change. */
1731
1778
  truthyC(t) {
1732
1779
  if (POINTER_KINDS.has(t.type.kind) &&
1733
- t.type.kind !== "string" && t.type.kind !== "union" &&
1780
+ t.type.kind !== "string" && t.type.kind !== "bigint" && t.type.kind !== "union" &&
1734
1781
  t.type.kind !== "dyn" && t.type.kind !== "jsval" &&
1735
1782
  t.type.kind !== "caught") {
1736
1783
  // JS objects are ALWAYS truthy ([] and {} included). These are
@@ -1745,6 +1792,8 @@ export class CEmitter {
1745
1792
  return `${t.name} == ${t.name} && ${t.name} != 0`;
1746
1793
  case "string":
1747
1794
  return `${t.name}->len != 0`;
1795
+ case "bigint":
1796
+ return `scr_bigint_truthy(${t.name})`;
1748
1797
  case "date":
1749
1798
  // The scalar payload may be 0 or NaN, but the source Date object
1750
1799
  // is always truthy.
@@ -1809,6 +1858,9 @@ export class CEmitter {
1809
1858
  fsRenameThunkFor(cbT) {
1810
1859
  return fsRenameThunkFor(this, cbT);
1811
1860
  }
1861
+ cryptoBytesThunkFor(cbT) {
1862
+ return cryptoBytesThunkFor(this, cbT);
1863
+ }
1812
1864
  sniAnswerThunkFor(cbT) {
1813
1865
  return sniAnswerThunkFor(this, cbT);
1814
1866
  }