@scriptc/compiler 0.3.4 → 0.3.5

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 (219) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +131 -10
  2. package/dist/backend/llvm/array-search.js +1 -1
  3. package/dist/backend/llvm/array-search.js.map +1 -1
  4. package/dist/backend/llvm/call-lifetimes.d.ts +6 -0
  5. package/dist/backend/llvm/call-lifetimes.js +19 -0
  6. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  7. package/dist/backend/llvm/constant-callbacks.d.ts +2 -21
  8. package/dist/backend/llvm/constant-callbacks.js +36 -219
  9. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  10. package/dist/backend/llvm/constant-callbacks.test.js +22 -0
  11. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  12. package/dist/backend/llvm/dense-array-access.d.ts +9 -0
  13. package/dist/backend/llvm/dense-array-access.js +27 -1
  14. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  15. package/dist/backend/llvm/dyn.d.ts +6 -0
  16. package/dist/backend/llvm/dyn.js +40 -6
  17. package/dist/backend/llvm/dyn.js.map +1 -1
  18. package/dist/backend/llvm/emitter.d.ts +75 -1
  19. package/dist/backend/llvm/emitter.js +408 -38
  20. package/dist/backend/llvm/emitter.js.map +1 -1
  21. package/dist/backend/llvm/expr-async.js +17 -7
  22. package/dist/backend/llvm/expr-async.js.map +1 -1
  23. package/dist/backend/llvm/expr-bytes.js +1 -1
  24. package/dist/backend/llvm/expr-callbacks.d.ts +11 -0
  25. package/dist/backend/llvm/expr-callbacks.js +53 -0
  26. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  27. package/dist/backend/llvm/expr-calls.js +88 -2
  28. package/dist/backend/llvm/expr-calls.js.map +1 -1
  29. package/dist/backend/llvm/expr-containers.js +50 -27
  30. package/dist/backend/llvm/expr-containers.js.map +1 -1
  31. package/dist/backend/llvm/expr-primitives.js +9 -1
  32. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  33. package/dist/backend/llvm/expr-stream-bridges.js +4 -0
  34. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  35. package/dist/backend/llvm/integer-clones.d.ts +103 -0
  36. package/dist/backend/llvm/integer-clones.js +1336 -0
  37. package/dist/backend/llvm/integer-clones.js.map +1 -0
  38. package/dist/backend/llvm/integer-clones.test.d.ts +1 -0
  39. package/dist/backend/llvm/integer-clones.test.js +219 -0
  40. package/dist/backend/llvm/integer-clones.test.js.map +1 -0
  41. package/dist/backend/llvm/lib-datagram.js +14 -0
  42. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  43. package/dist/backend/llvm/lib-dispatch.js +4 -0
  44. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  45. package/dist/backend/llvm/lib-process.js +24 -0
  46. package/dist/backend/llvm/lib-process.js.map +1 -1
  47. package/dist/backend/llvm/lib-shared.js +34 -2
  48. package/dist/backend/llvm/lib-shared.js.map +1 -1
  49. package/dist/backend/llvm/lib-tls.js +6 -0
  50. package/dist/backend/llvm/lib-tls.js.map +1 -1
  51. package/dist/backend/llvm/local-array-reads.js +1 -1
  52. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  53. package/dist/backend/llvm/map-entry-fusion.d.ts +28 -0
  54. package/dist/backend/llvm/map-entry-fusion.js +233 -0
  55. package/dist/backend/llvm/map-entry-fusion.js.map +1 -0
  56. package/dist/backend/llvm/map-entry-fusion.test.d.ts +1 -0
  57. package/dist/backend/llvm/map-entry-fusion.test.js +183 -0
  58. package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -0
  59. package/dist/backend/llvm/map-number-lookup.d.ts +2 -0
  60. package/dist/backend/llvm/map-number-lookup.js +1 -1
  61. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  62. package/dist/backend/llvm/map-number-lookup.test.js +10 -11
  63. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  64. package/dist/backend/llvm/map-read-lifetimes.d.ts +2 -0
  65. package/dist/backend/llvm/map-read-lifetimes.js +3 -0
  66. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  67. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  68. package/dist/backend/llvm/publish.d.ts +16 -0
  69. package/dist/backend/llvm/publish.js +81 -10
  70. package/dist/backend/llvm/publish.js.map +1 -1
  71. package/dist/backend/llvm/publish.test.d.ts +1 -0
  72. package/dist/backend/llvm/publish.test.js +94 -0
  73. package/dist/backend/llvm/publish.test.js.map +1 -0
  74. package/dist/backend/llvm/record-results.js +76 -2
  75. package/dist/backend/llvm/record-results.js.map +1 -1
  76. package/dist/backend/llvm/record-sources.d.ts +7 -0
  77. package/dist/backend/llvm/record-sources.js +14 -0
  78. package/dist/backend/llvm/record-sources.js.map +1 -0
  79. package/dist/backend/llvm/shapes.d.ts +9 -3
  80. package/dist/backend/llvm/shapes.js +18 -14
  81. package/dist/backend/llvm/shapes.js.map +1 -1
  82. package/dist/backend/llvm/shapes.test.js +5 -3
  83. package/dist/backend/llvm/shapes.test.js.map +1 -1
  84. package/dist/backend/llvm/string-lifetimes.test.js +75 -1
  85. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  86. package/dist/backend/llvm/walkers.d.ts +17 -0
  87. package/dist/backend/llvm/walkers.js +123 -0
  88. package/dist/backend/llvm/walkers.js.map +1 -1
  89. package/dist/backend/native/contracts.d.ts +2 -1
  90. package/dist/backend/native/executable.js +3 -1
  91. package/dist/backend/native/executable.js.map +1 -1
  92. package/dist/backend/runtime-abi.d.ts +2 -2
  93. package/dist/backend/runtime-abi.js +2 -2
  94. package/dist/backend/runtime-pack-targets.test.js +1 -1
  95. package/dist/backend/runtime-pack.test.js +1 -1
  96. package/dist/frontend/lowering/builtin-calls.js +3 -0
  97. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  98. package/dist/frontend/lowering/builtins/callable-aliases.js +54 -8
  99. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  100. package/dist/frontend/lowering/builtins/child-process-async.d.ts +8 -6
  101. package/dist/frontend/lowering/builtins/child-process-async.js +45 -29
  102. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  103. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +2 -0
  104. package/dist/frontend/lowering/builtins/filesystem-calls.js +5 -0
  105. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  106. package/dist/frontend/lowering/builtins/filesystem.js +60 -0
  107. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  108. package/dist/frontend/lowering/builtins/fs-streams.d.ts +26 -0
  109. package/dist/frontend/lowering/builtins/fs-streams.js +131 -0
  110. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -0
  111. package/dist/frontend/lowering/builtins/module-calls.js +5 -1
  112. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  113. package/dist/frontend/lowering/class-dynamic-dispatch.js +150 -8
  114. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  115. package/dist/frontend/lowering/containers/bytes.js +33 -12
  116. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  117. package/dist/frontend/lowering/devirtualize.js +20 -7
  118. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  119. package/dist/frontend/lowering/lower-calls.js +58 -3
  120. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  121. package/dist/frontend/lowering/lower-classes.js +7 -0
  122. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  123. package/dist/frontend/lowering/lower-dgram.js +55 -15
  124. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  125. package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -1
  126. package/dist/frontend/lowering/lower-event-emitter.js +78 -0
  127. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  128. package/dist/frontend/lowering/lower-exprs.d.ts +4 -0
  129. package/dist/frontend/lowering/lower-exprs.js +132 -58
  130. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  131. package/dist/frontend/lowering/lower-inspect.js +26 -0
  132. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  133. package/dist/frontend/lowering/lower-server.d.ts +2 -1
  134. package/dist/frontend/lowering/lower-server.js +73 -5
  135. package/dist/frontend/lowering/lower-server.js.map +1 -1
  136. package/dist/frontend/lowering/lower-stmts.js +12 -6
  137. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  138. package/dist/frontend/lowering/lower-stream.js +8 -0
  139. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  140. package/dist/frontend/lowering/lowerer.d.ts +3 -1
  141. package/dist/frontend/lowering/lowerer.js +2 -2
  142. package/dist/frontend/lowering/lowerer.js.map +1 -1
  143. package/dist/frontend/lowering/record-sources.d.ts +15 -0
  144. package/dist/frontend/lowering/record-sources.js +46 -0
  145. package/dist/frontend/lowering/record-sources.js.map +1 -0
  146. package/dist/frontend/lowering/surfaces.js +33 -1
  147. package/dist/frontend/lowering/surfaces.js.map +1 -1
  148. package/dist/frontend/type-mapper.d.ts +3 -0
  149. package/dist/frontend/type-mapper.js +53 -0
  150. package/dist/frontend/type-mapper.js.map +1 -1
  151. package/dist/ir/analysis.d.ts +10 -0
  152. package/dist/ir/analysis.js +35 -0
  153. package/dist/ir/analysis.js.map +1 -1
  154. package/dist/ir/analysis.test.js +69 -1
  155. package/dist/ir/analysis.test.js.map +1 -1
  156. package/dist/ir/builtin-effects.js +36 -0
  157. package/dist/ir/builtin-effects.js.map +1 -1
  158. package/dist/ir/builtin-signatures.d.ts +1 -1
  159. package/dist/ir/builtin-signatures.js +91 -7
  160. package/dist/ir/builtin-signatures.js.map +1 -1
  161. package/dist/ir/capture-values.d.ts +107 -0
  162. package/dist/ir/capture-values.js +850 -0
  163. package/dist/ir/capture-values.js.map +1 -0
  164. package/dist/ir/capture-values.test.d.ts +1 -0
  165. package/dist/ir/capture-values.test.js +268 -0
  166. package/dist/ir/capture-values.test.js.map +1 -0
  167. package/dist/ir/field-values.d.ts +16 -0
  168. package/dist/ir/field-values.js +128 -0
  169. package/dist/ir/field-values.js.map +1 -0
  170. package/dist/ir/field-values.test.d.ts +1 -0
  171. package/dist/ir/field-values.test.js +160 -0
  172. package/dist/ir/field-values.test.js.map +1 -0
  173. package/dist/ir/final-fields.d.ts +4 -1
  174. package/dist/ir/final-fields.js +11 -3
  175. package/dist/ir/final-fields.js.map +1 -1
  176. package/dist/ir/function-references.test.js +1 -1
  177. package/dist/ir/function-references.test.js.map +1 -1
  178. package/dist/ir/init-only-globals.d.ts +16 -0
  179. package/dist/ir/init-only-globals.js +121 -0
  180. package/dist/ir/init-only-globals.js.map +1 -0
  181. package/dist/ir/init-only-globals.test.d.ts +1 -0
  182. package/dist/ir/init-only-globals.test.js +115 -0
  183. package/dist/ir/init-only-globals.test.js.map +1 -0
  184. package/dist/ir/initializer-bindings.d.ts +18 -1
  185. package/dist/ir/initializer-bindings.js +91 -1
  186. package/dist/ir/initializer-bindings.js.map +1 -1
  187. package/dist/ir/initializer-bindings.test.js +57 -2
  188. package/dist/ir/initializer-bindings.test.js.map +1 -1
  189. package/dist/ir/int32-slots.d.ts +22 -0
  190. package/dist/ir/int32-slots.js +376 -13
  191. package/dist/ir/int32-slots.js.map +1 -1
  192. package/dist/ir/int32-slots.test.js +91 -8
  193. package/dist/ir/int32-slots.test.js.map +1 -1
  194. package/dist/ir/integer-loop-facts.d.ts +19 -1
  195. package/dist/ir/integer-loop-facts.js +155 -7
  196. package/dist/ir/integer-loop-facts.js.map +1 -1
  197. package/dist/ir/integer-ranges.d.ts +8 -5
  198. package/dist/ir/integer-ranges.js +147 -55
  199. package/dist/ir/integer-ranges.js.map +1 -1
  200. package/dist/ir/integer-ranges.test.js +225 -7
  201. package/dist/ir/integer-ranges.test.js.map +1 -1
  202. package/dist/ir/ir.d.ts +9 -1
  203. package/dist/ir/ir.js.map +1 -1
  204. package/dist/ir/property-bags.d.ts +14 -0
  205. package/dist/ir/property-bags.js +121 -0
  206. package/dist/ir/property-bags.js.map +1 -0
  207. package/dist/ir/receiver-readers.d.ts +21 -0
  208. package/dist/ir/receiver-readers.js +217 -0
  209. package/dist/ir/receiver-readers.js.map +1 -0
  210. package/dist/ir/runtime-features.js +6 -1
  211. package/dist/ir/runtime-features.js.map +1 -1
  212. package/dist/ir/validate.js +26 -0
  213. package/dist/ir/validate.js.map +1 -1
  214. package/dist/ir/validate.test.js +21 -0
  215. package/dist/ir/validate.test.js.map +1 -1
  216. package/dist/library/int-infer.js +3 -0
  217. package/dist/library/int-infer.js.map +1 -1
  218. package/package.json +20 -20
  219. package/surface-manifest.json +28 -2
@@ -1 +1 @@
1
- {"version":3,"file":"expr-stream-bridges.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-stream-bridges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expr-stream-bridges.js","sourceRoot":"","sources":["../../../src/backend/llvm/expr-stream-bridges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,iEAAiE;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAGL,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EACrB,6BAA6B,EAC7B,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAoB,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,QAAQ,EACR,SAAS,GAEV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;qDAEqD;AACrD,SAAS,kBAAkB,CACzB,IAAwB,EACxB,CAAe,EACf,CAAS,EACT,QAA0B;IAE1B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EACpB,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACb,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,eAAe,EAAE,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC,IAAI,CACJ,GAAG,GAAG,sCAAsC,QAAQ,CAAC,MAAM,SAAS,QAAQ,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CACpK,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,IAAI,CACJ,GAAG,GAAG,gBAAgB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,CAClH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB,EAAE,KAAa;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,qBAAqB,CAC7B,mEAAmE,OAAO,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gDAAgD,CAAC,CAAC;IAC/D,CAAC,CAAC,IAAI,CACJ,KAAK,CAAC,IAAI,KAAK,MAAM;QACnB,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CACrG,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC1D,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC1D,CAAC;SAAM,IACL,KAAK,CAAC,IAAI,KAAK,KAAK;QACpB,KAAK,CAAC,IAAI,KAAK,MAAM;QACrB,KAAK,CAAC,IAAI,KAAK,YAAY;QAC3B,KAAK,CAAC,IAAI,KAAK,MAAM,EACrB,CAAC;QACD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC1F,IAAI,CAAC,OAAO,CACV,iBAAiB,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAC5F,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,cAAc,EAAE,cAAc,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,GAAG,CACvG,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,oDAAoD,KAAK,GAAG,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC;QAC/E,CAAC,CAAC,IAAI,CACJ,oDAAoD,KAAK,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAC1I,CAAC;IACJ,CAAC;IACD,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,yBAAyB,GAAG,wBAAwB,QAAQ,qCAAqC,GAAG,EAAE,EACtG,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAwB,EACxB,CAAS,EACT,QAAgB;IAEhB,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3F,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,QAAQ,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,yBAAyB,MAAM,yBAAyB,QAAQ,mCAAmC,OAAO,CAAC,CAAC,CAAC,EAAE,EAC/G,QAAQ,EACR,uBAAuB,KAAK,oBAAoB,EAChD,sCAAsC,EACtC,4CAA4C,EAC5C,OAAO,EACP,8DAA8D,EAC9D,2CAA2C,EAC3C,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,EACH,EAAE,CACH,CAAC;QACF,OAAO,IAAI,MAAM,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,QAAQ,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG;YACZ,yBAAyB,MAAM,yBAAyB,QAAQ,mCAAmC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC/G,QAAQ;YACR,uBAAuB,KAAK,oBAAoB;YAChD,sCAAsC;YACtC,4CAA4C;YAC5C,OAAO;YACP,iEAAiE;YACjE,2CAA2C;YAC3C,yCAAyC;SAC1C,CAAC;QACF,MAAM,cAAc,GAAG;YACrB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;YACxD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;YAC9D,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5D,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;SACvD,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CACR,aAAa,MAAM,CAAC,IAAI,kEAAkE,MAAM,CAAC,KAAK,EAAE,EACxG,WAAW,MAAM,CAAC,IAAI,gEAAgE,MAAM,CAAC,KAAK,EAAE,EACpG,aAAa,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,IAAI,MAAM,EAChF,WAAW,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,IAAI,MAAM,EAC5E,WAAW,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,IAAI,MAAM,EAC7E,WAAW,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,IAAI,MAAM,CAC9E,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,yCAAyC,EACzC,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,EACH,EAAE,CACH,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,MAAM,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAqB,CAC7B,uDAAuD,CAAC,CAAC,SAAS,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,QAAQ,SAAS,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,0CAA0C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG;YACZ,yBAAyB,MAAM,yBAAyB,QAAQ,6BAA6B,OAAO,CAAC,CAAC,CAAC,EAAE;YACzG,QAAQ;SACT,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CACR,gDAAgD,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,EACxG,gDAAgD,EAChD,oFAAoF,EACpF,yBAAyB,IAAI,CAAC,QAAQ,yBAAyB,CAChE,CAAC;YACF,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAmB,EAAE,CAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,IAAI,CAAC;iBACd,OAAO,EAAE;iBACT,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtF,KAAK,CAAC,IAAI,CACR,aAAa,KAAK,cAAc,IAAI,CAAC,QAAQ,kBAAkB,KAAK,CAAC,GAAG,EAAE,EAC1E,mBAAmB,KAAK,mBAAmB,KAAK,0BAA0B,KAAK,OAAO,EACtF,UAAU,KAAK,UAAU,EACzB,eAAe,OAAO,CAAC,MAAM,uBAAuB,EACpD,YAAY,EACZ,UAAU,KAAK,QAAQ,CACxB,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAC/E,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAC5F,CAAC;QACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC;YAChC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;gBACrD,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,4BAA4B,YAAY,CAAC,YAAY,CAAC,EAAE,EACpE,OAAO,KAAK,oBAAoB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CACxF,CAAC;gBACF,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,yDAAyD;oBACzD,6DAA6D;oBAC7D,6DAA6D;oBAC7D,IAAI,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;oBACvE,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,sEAAsE,KAAK,OAAO,EAC9F,OAAO,KAAK,uCAAuC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,UAAU,EAAE,EACvH,OAAO,KAAK,4BAA4B,KAAK,WAAW,EACxD,OAAO,KAAK,gCAAgC,KAAK,cAAc,EAC/D,OAAO,KAAK,mBAAmB,KAAK,eAAe,KAAK,cAAc,EACtE,aAAa,KAAK,kBAAkB,KAAK,yBAAyB,KAAK,gBAAgB,EACvF,IAAI,KAAK,iBAAiB,EAC1B,wCAAwC,KAAK,OAAO,EACpD,eAAe,KAAK,EAAE,EACtB,IAAI,KAAK,eAAe,CACzB,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,MAAM,GAAG,qDAAqD,KAAK,yBAAyB,EAC5F,wCAAwC,KAAK,OAAO,CACrD,CAAC;YACJ,CAAC;;gBACC,KAAK,CAAC,IAAI,CACR,MAAM,GAAG,4CAA4C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CACzI,CAAC;YACJ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,YAAY;gBAC3C,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,2BAA2B,GAAG,QAAQ,EAClD,aAAa,KAAK,qBAAqB,KAAK,iBAAiB,KAAK,EAAE,EACpE,IAAI,KAAK,QAAQ,CAClB,CAAC;YACJ,KAAK,CAAC,IAAI,CACR,MAAM,OAAO,mBAAmB,GAAG,QAAQ,EAC3C,MAAM,KAAK,kCAAkC,EAC7C,MAAM,KAAK,iBAAiB,OAAO,UAAU,KAAK,UAAU,GAAG,EAAE,EACjE,MAAM,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,EAC9I,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,uCAAuC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACxE,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,OAAO,EAAE,CAAC,EACvC,YAAY,OAAO,yBAAyB,KAAK,EAAE,EACnD,GAAG,KAAK,GAAG,EACX,OAAO,KAAK,kCAAkC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,UAAU,EAAE,EAClH,OAAO,KAAK,eAAe,OAAO,WAAW,KAAK,MAAM,CACzD,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,mEAAmE;gBACnE,mEAAmE;gBACnE,+DAA+D;gBAC/D,wCAAwC;gBACxC,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;gBAC7D,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,oDAAoD,IAAI,GAAG,EACvE,OAAO,KAAK,wBAAwB,KAAK,gBAAgB,EACzD,OAAO,KAAK,2BAA2B,IAAI,SAAS,EACpD,OAAO,KAAK,gCAAgC,KAAK,cAAc,EAC/D,OAAO,KAAK,0BAA0B,KAAK,YAAY,KAAK,WAAW,EACvE,aAAa,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,WAAW,EACjF,IAAI,KAAK,YAAY,EACrB,0BAA0B,EAC1B,eAAe,EACf,IAAI,KAAK,aAAa,EACtB,iBAAiB,KAAK,eAAe,KAAK,MAAM,EAChD,eAAe,KAAK,EAAE,EACtB,GAAG,KAAK,GAAG,CACZ,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,QAAQ,EAAE,CAAC;gBACb,+DAA+D;gBAC/D,4CAA4C;gBAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;gBACrD,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,kDAAkD,IAAI,gBAAgB,EAClF,OAAO,KAAK,0BAA0B,KAAK,OAAO,EAClD,OAAO,KAAK,0BAA0B,KAAK,SAAS,QAAQ,CAAC,MAAM,EAAE,EACrE,OAAO,KAAK,kDAAkD,IAAI,gBAAgB,EAClF,OAAO,KAAK,0BAA0B,KAAK,OAAO,EAClD,OAAO,KAAK,sBAAsB,KAAK,iBAAiB,KAAK,gBAAgB,EAC7E,OAAO,KAAK,mBAAmB,EAAE,CAAC,MAAM,UAAU,KAAK,OAAO,EAC9D,iBAAiB,KAAK,eAAe,KAAK,MAAM,EAChD,uCAAuC,IAAI,GAAG,EAC9C,eAAe,EAAE,CAAC,OAAO,UAAU,KAAK,OAAO,EAC/C,eAAe,KAAK,EAAE,EACtB,GAAG,KAAK,GAAG,CACZ,CAAC;gBACF,SAAS;YACX,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,wEAAwE;gBACxE,KAAK,CAAC,IAAI,CACR,GAAG,oBAAoB,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,EACtE,eAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,EACrE,eAAe,KAAK,EAAE,EACtB,GAAG,KAAK,GAAG,CACZ,CAAC;gBACF,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,sBAAsB,IAAI,QAAQ,EAC9C,gBAAgB,KAAK,kBAAkB,KAAK,MAAM,CACnD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,KAAK,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;YAC1F,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,iCAAiC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,2CAA2C,IAAI,CAAC,QAAQ,QAAQ,CAAC,CAAC;YACjF,CAAC;YACD,KAAK,CAAC,IAAI,CACR,sCAAsC,EACtC,6EAA6E,EAC7E,+CAA+C,EAC/C,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EACxC,wDAAwD,EACxD,WAAW,EACX,0CAA0C,EAC1C,kBAAkB,EAClB,WAAW,CACZ,CAAC;YACF,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;gBAC7D,KAAK,CAAC,IAAI,CACR,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB;oBAClC,CAAC,CAAC;wBACE,oCAAoC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,eAAe;wBACtF,4BAA4B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,2BAA2B;qBACxG;oBACH,CAAC,CAAC,CAAC,4BAA4B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAoB,CAAC,IAAI,CAAC,CAAC,EACpF,+EAA+E,EAC/E,gDAAgD,EAChD,qDAAqD,CACtD,CAAC;YACJ,CAAC;YACD,MAAM;iBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC3C,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe;oBAC1B,KAAK,CAAC,IAAI,CACR,eAAe,KAAK,8CAA8C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EACrJ,iBAAiB,KAAK,4BAA4B,KAAK,QAAQ,EAC/D,uBAAuB,KAAK,qBAAqB,KAAK,6BAA6B,KAAK,QAAQ,EAChG,YAAY,KAAK,WAAW,EAC5B,mBAAmB,KAAK,kCAAkC,EAC1D,qBAAqB,KAAK,mDAAmD,KAAK,GAAG,EACrF,8CAA8C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,yBAAyB,KAAK,GAAG,EAC/J,wBAAwB,KAAK,QAAQ,EACrC,YAAY,KAAK,SAAS,CAC3B,CAAC;;oBAEF,KAAK,CAAC,IAAI,CACR,aAAa,KAAK,gCAAgC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EACrI,yDAAyD,KAAK,qBAAqB,EACnF,4CAA4C,KAAK,GAAG,CACrD,CAAC;YACN,CAAC,CAAC,CAAC;YACL,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;gBAClB,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,GAAG,CAAC,eAAe;oBACtB,CAAC,CAAC,wDAAwD;oBAC1D,CAAC,CAAC,iEAAiE,CACtE,CAAC;YACJ,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAChD,KAAK,CAAC,IAAI,CACR,gBAAgB,KAAK,qBAAqB,YAAY,CAAC,QAAQ,CAAC,EAAE,EAClE,aAAa,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,KAAK,GAAG,EAC3F,IAAI,CAAC,GAAG,CAAC,eAAe;gBACtB,CAAC,CAAC,qEAAqE,KAAK,GAAG;gBAC/E,CAAC,CAAC,kEAAkE,KAAK,qBAAqB,EAChG,8CAA8C,KAAK,GAAG,CACvD,CACF,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CACR,wCAAwC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,KAAK,EAAE,EACvG,qCAAqC,EACrC,gCAAgC,EAChC,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,MAAM,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAC7B,8DAA8D,CAAC,CAAC,OAAO,EAAE,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,QAAQ,SAAS,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG;QACZ,yBAAyB,MAAM,yBAAyB,QAAQ,mCAAmC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC/G,QAAQ;QACR,uBAAuB,KAAK,oBAAoB;QAChD,sCAAsC;QACtC,4CAA4C;QAC5C,OAAO;KACR,CAAC;IACF,MAAM,OAAO,GAAG;QACd,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC;gBACE;oBACE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAC9B,IAAI,EAAE,KAAc;oBACpB,IAAI,EAAE,wBAAwB;iBAC/B;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,KAAK,CAAC,IAAI,CACR,QAAQ,KAAK,8BAA8B,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,MAAM,CAAC,KAAK,EAAE,EACnH,QAAQ,KAAK,8BAA8B,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,KAAK,EAAE,EACjH,SAAS,KAAK,WAAW,MAAM,CAAC,IAAI,YAAY,KAAK,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EACzF,SAAS,KAAK,WAAW,MAAM,CAAC,IAAI,YAAY,KAAK,EAAE,EACvD,WAAW,MAAM,CAAC,IAAI,QAAQ,KAAK,YAAY,KAAK,EAAE,EACtD,WAAW,MAAM,CAAC,IAAI,QAAQ,KAAK,YAAY,KAAK,EAAE,CACvD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CACR,eAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,EACzD,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,GAAG,EACH,EAAE,CACH,CAAC;IACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,MAAM,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,CAA6B;IAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI;SAC3B,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;SACjC,MAAM,CACL,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAC7F,CAAC;IACJ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,qBAAqB,CAAC,qDAAqD,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC5D,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI;SACzB,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;SACjC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,SAAS,CACT,cAAc,QAAQ,YAAY,QAAQ,MAAM;QAC9C,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,YAAY,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,YAAY,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;KACjF,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAChB,CAAC;IACF,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACnC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC,CAAC,IAAI,CACJ,GAAG,KAAK,eAAe,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,OAAO,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,MAAM,GAAG,CACzP,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;QACnC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,qCAAqC,KAAK,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,2CAA2C,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;YAC7E,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gDAAgD,CAAC,CAAC;YACjE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oCAAoC,KAAK,GAAG,CAAC,CAAC;YAC7D,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,CAAC;YAC5E,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,GAAG,YAAY,QAAQ,qCAAqC,GAAG,EAAE,EACzF,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,CAAe,EACf,CAAS,EACT,KAAa;IAEb,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,IACE,CAAC,CAAC,IAAI,KAAK,OAAO;QAClB,CAAC,IAAI,CAAC,UAAU;aACb,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YACf,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC3E,KAAK,CAAC,EACR,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvB,CAAC,CAAC,IAAI,CACJ,GAAG,KAAK,eAAe,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,MAAM,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,GAAG,CAC7O,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAwB,EACxB,CAAS;IAET,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC;IACtE,MAAM,OAAO,GAA4B,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;QAC3D,IACE,MAAM;YACN,CAAC,qBAAqB,CACpB,MAAM,EACN,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAChC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAChC,EACD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,gCAAgC,CAAC;YACpD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,sEAAsE;IACtE,OAAO,CAAC,MAAM,GAAG,IAAI,QAAQ,SAAS,CAAC;IACvC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAE7B,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAqB,CAC7B,4DAA4D,CAAC,CAAC,SAAS,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,IAAI,QAAQ,OAAO,CAAC;YACvC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EACpB,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EACZ,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC,CAAC,IAAI,CACJ,GAAG,MAAM,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAC3F,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,yCAAyC,EAAE,gBAAgB,CAAC,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAmB,EAAE,CAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3F,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EACnB,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,YAAY,CAAC,QAAQ,UAAU,CAAC,CAAC;gBACjE,CAAC,CAAC,SAAS,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,2CAA2C,IAAI,CAAC,QAAQ,QAAQ,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,2CAA2C,CAAC,CAAC;QAC5D,CAAC;aAAM,IACL,IAAI,CAAC,GAAG,CAAC,OAAO;YAChB,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACvC,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB;YACjC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAC7B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,0CAA0C,CAAC,CAAC;QAC3D,CAAC;;YAAM,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACrD,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACb,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,CACJ,GAAG,IAAI,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,KAAK,EAAE,CAChG,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,sDAAsD,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;YAC1F,CAAC,CAAC,IAAI,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,EACvB,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,eAAe,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC;gBAChF,CAAC,CAAC,IAAI,CACJ,GAAG,SAAS,gBAAgB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,QAAQ,QAAQ,GAAG,CAChG,CAAC;YACJ,CAAC;;gBAAM,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,gBAAgB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7F,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,0CAA0C,GAAG,SAAS,SAAS,GAAG,CAAC,CAAC;YACtF,CAAC,CAAC,IAAI,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,oCAAoC,QAAQ,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CACpF,EAAE,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,0CAA0C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACzE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EACnB,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACpC,CAAC,CAAC,IAAI,CACJ,GAAG,KAAK,oCAAoC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAC5I,CAAC;gBACF,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC;gBAClD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACnC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,IAAI,CACJ,GAAG,QAAQ,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,KAAK,EAAE,CACpG,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,iBAAiB,GAAG,YAAY,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;gBAC9D,UAAU,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;gBACxE,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,WAAW,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvF,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,UAAU,QAAQ,CAAC,CAAC;gBACtD,UAAU,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,QAAQ;gBAAE,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACrE,CAAC,CAAC,IAAI,CACJ,kCAAkC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,CAChJ,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,oCAAoC,UAAU,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBACjB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAE,CAAC;YAC5E,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,EACtB,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,IAAI,CACJ,GAAG,QAAQ,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,KAAK,EAAE,CACpG,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,iBAAiB,GAAG,YAAY,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,MAAM;gBAAE,UAAU,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;gBACzF,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,WAAW,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvF,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,WAAW,GACf,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,EACzB,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;oBACvE,CAAC,CAAC,IAAI,CACJ,GAAG,WAAW,oDAAoD,GAAG,SAAS,GAAG,GAAG,CACrF,CAAC;gBACJ,CAAC;;oBAAM,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,kBAAkB,UAAU,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC5C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,UAAU,QAAQ,CAAC,CAAC;gBACtD,UAAU,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,cAAc;gBAAE,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,oCAAoC,UAAU,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC,yCAAyC,GAAG,SAAS,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;YAClF,CAAC,CAAC,IAAI,CAAC,oCAAoC,KAAK,GAAG,CAAC,CAAC;YACrD,IAAI,WAAW,EAAE,CAAC;gBAChB,CAAC,CAAC,SAAS,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;gBACxC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;YACD,CAAC,CAAC,IAAI,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,IACE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe;YACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,EACpE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACrD,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAClB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EACb,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,CACJ,GAAG,IAAI,8BAA8B,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,KAAK,EAAE,CAChG,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,sDAAsD,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;YAC1F,CAAC,CAAC,IAAI,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,qBAAqB,CAC7B,mEAAmE,CAAC,CAAC,OAAO,EAAE,CAC/E,CAAC;QACJ,CAAC;QACD;;6EAEqE;QACrE,MAAM,QAAQ,GACZ,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3F,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CACJ,GAAG,QAAQ,8BAA8B,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,KAAK,EAAE,CACtG,CAAC;gBACF,MAAM,UAAU,GAAG,eAAe,CAChC,CAAC,EACD,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACrE,CAAC,CAAC,IAAI,CAAC,mCAAmC,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;YAClE,CAAC;YACD,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,2CAA2C,IAAI,CAAC,QAAQ,QAAQ,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG;gBACb,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC/E,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5D,CAAC;YACF,qEAAqE;YACrE,kEAAkE;YAClE,8BAA8B;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,SAAS,GAAG,IAAI,QAAQ,OAAO,CAAC;gBACxC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CACJ,GAAG,QAAQ,8BAA8B,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,KAAK,EAAE,CACtG,CAAC;gBACF,MAAM,UAAU,GAAG,eAAe,CAChC,CAAC,EACD,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;gBACF,+CAA+C;gBAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,IAAI,GAAkB,IAAI,CAAC;gBAC/B,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;oBACxC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAC1C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC5B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACrE,CAAC,CAAC,IAAI,CACJ,kCAAkC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,CAChJ,CAAC;gBACF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAC;YACzD,CAAC;YACD,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACpB,oEAAoE;QACpE,mEAAmE;QACnE,OAAO,CAAC,QAAQ,GAAG,IAAI,QAAQ,MAAM,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,qCAAqC,CAAC,CAAC;QACpD,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gDAAgD,KAAK,GAAG,CAAC,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,sBAAsB,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB;YACtE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC3C,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,sBAAsB,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe;YAClE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC1C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAC;YACvD,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,kCAAkC,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,qCAAqC,cAAc,GAAG,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC,mCAAmC,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;YACnE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzB,IAAI,KAAa,CAAC;YAClB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtD,IAAI,CAAC,OAAO,CACV,WAAW,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,iBAAiB,IAAI,CAAC,IAAI,eAAe,CAClG,CAAC;gBACF,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,OAAO,iBAAiB,IAAI,CAAC,IAAI,mBAAmB,KAAK,GAAG,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,+CAA+C,KAAK,QAAQ,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,mCAAmC,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;YAChE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,CAAC,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;YACxE,CAAC;YACD,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC,gDAAgD,GAAG,GAAG,CAAC,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAC9B,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,QAAQ,YAAY,QAAQ,sCAAsC,GAAG,EAAE,EAC/F,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;8EAM8E;AAC9E,SAAS,YAAY,CACnB,IAAwB,EACxB,CAA6B,EAC7B,QAAgB;IAEhB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAE9B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,OAAO,CACV,WAAW,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,iBAAiB,GAAG,eAAe,CACtF,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,GAAG,KAAK,WAAW,OAAO,iBAAiB,GAAG,sBAAsB,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnG,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1D,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;IAC9F,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IAEhC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC,CAAC,IAAI,CACJ,GAAG,IAAI,WAAW,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CACnH,CAAC;IACF,oEAAoE;IACpE,0DAA0D;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,CAAC,OAAO,CACV,6BAA6B,GAAG,iBAAiB,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,GAAG,CAC5F,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAG,uBAAuB,OAAO,IAAI,IAAI,qBAAqB,CAAC,CAAC;IACjG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,GAAG,uBAAuB,QAAQ,wBAAwB,OAAO,CAAC,CAAC,CAAC,EAAE,EAC9F,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,EACF,+BAA+B,GAAG,+BAA+B,QAAQ,gCAAgC,OAAO,CAAC,CAAC,CAAC,EAAE,EACrH,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,EACF,IAAI,GAAG,4CAA4C,GAAG,UAAU,GAAG,IAAI,EACvE,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;yDAEyD;AACzD,SAAS,qBAAqB,CAAC,MAAmC;IAChE,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CACjF,CAAC;AACJ,CAAC;AAED;;;;;;0DAM0D;AAC1D,SAAS,aAAa,CACpB,IAAwB,EACxB,CAA8B,EAC9B,QAAgB,EAChB,MAAkD;IAElD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,QAAQ,QAAQ,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,QAAQ,OAAO,CAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,KAAsC,EAAU,EAAE;QACpF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,8BAA8B,MAAM,wBAAwB,KAAK,EAAE,CAAC,CAAC;QACvF,OAAO,eAAe,CACpB,CAAC,EACD,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC/C,MAAM,CACL,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CACnF,CAAC;IACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC,CAAC,SAAS,CACT,UAAU,IAAI,CAAC,QAAQ,eAAe,MAAM,MAAM,QAAQ;SACvD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,YAAY,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAChF,IAAI,CAAC,GAAG,CAAC,IAAI,CACjB,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QAChC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CACnC,CAAC,EACD,KAAK,EACJ,KAAK,CAAC,IAAmC,CAAC,OAAO,CACnD,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,aAAa,MAAM,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC,CAAC,SAAS,CACT,UAAU,IAAI,CAAC,QAAQ,eAAe,GAAG,MAAM,MAAM;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,YAAY,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;SACnF,IAAI,CAAC,GAAG,CAAC,IAAI,CACjB,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAE,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,+BAA+B,GAAG,YAAY,IAAI,CAAC,QAAQ,QAAQ,QAAQ,+BAA+B,OAAO,CAAC,CAAC,CAAC,EAAE,EACtH,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,EACF,wBAAwB,GAAG,YAAY,IAAI,CAAC,QAAQ,QAAQ,QAAQ,sBAAsB,OAAO,CAAC,CAAC,CAAC,EAAE,EACtG,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,EACF,IAAI,KAAK,yBAAyB,MAAM,CAAC,MAAM,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IACjF,uEAAuE;IACvE,IAAI,GAAG,wBAAwB,IAAI,CAAC,QAAQ,gCAAgC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,UAAU,KAAK,UAAU,GAAG,UAAU,GAAG,QAAQ,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EACtM,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;gBAEgB;AAChB,SAAS,oBAAoB,CAAC,IAAiB;IAC7C,OAAO,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;QACjB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;QACtB,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB;QAC7B,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAClC,CAAC;AACJ,CAAC;AAED;;;;+CAI+C;AAC/C,SAAS,YAAY,CAAC,IAAwB,EAAE,QAAgB,EAAE,IAAiB;IACjF,MAAM,GAAG,GAAG,GAAG,QAAQ,OAAO,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,QAAQ,SAAS,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,GAAuB,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAiB,EAAE,CAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,IAAI,QAAQ,SAAS,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,EACpB,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EACZ,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,EACjB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CACJ,GAAG,MAAM,8BAA8B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAC7F,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,yCAAyC,EAAE,gBAAgB,CAAC,CAAC;QAC9E,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,CAAC;QACzD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EACnB,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACrC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,SAAS,CAAC,WAAW,YAAY,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,uBAAuB,KAAK,YAAY,QAAQ,+BAA+B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAC9F,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,CACH,CAAC;IACJ,CAAC;IACD,oEAAoE;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,IAAI,KAAK,yBAAyB,OAAO,CAAC,MAAM,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAClF,IAAI,GAAG,+BAA+B,IAAI,CAAC,QAAQ,sBAAsB,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,UAAU,KAAK,SAAS,SAAS,IAAI,EACvJ,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;2CAE2C;AAC3C,MAAM,UAAU,WAAW,CACzB,OAAgC;IAEhC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAChC,OAAO,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QACjC,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACpF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAChC,OAAO,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,IAAe,EACf,OAAgC,EAChC,OAAe;IAEf,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;IACrD,OAAO,CAAC,cAAc,IAAI,CAAC,IAAI,QAAQ,OAAO,SAAS,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,CAA6B;IAE7B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,qBAAqB,CAC7B,iDAAiD,IAAI,CAAC,OAAO,EAAE,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAChB,QAAQ,EAAE,IAAI;SACX,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;SACjC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjG,MAAM,QAAQ,GACZ,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IAC/F,IAAI,QAAQ,GAAG,GAAG,GAAG,cAAc,CAAC;IACpC,IAAI,KAAa,CAAC;IAClB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC7D,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oDAAoD,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;QAClE,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,iDAAiD,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC1D,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,sDAAsD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,KAAa,CAAC;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,SAAS,CACT,cAAc,QAAQ,YAAY,QAAQ,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CACrI,CAAC;YACF,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACrE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CACJ,GAAG,QAAQ,eAAe,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,OAAO,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,WAAW,SAAS,SAAS,GAAG,CAClP,CAAC;gBACF,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,SAAS,SAAS,EAAE,CAAC,CAAC;gBAClD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACX,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,WAAW,YAAY,QAAQ,qCAAqC,MAAM,EAAE,EACpG,QAAQ,EACR,oBAAoB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EACvD,cAAc,EACd,GAAG,EACH,EAAE,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC,aAAa,QAAQ,SAAS,SAAS,EAAE,CAAC,CAAC;YAClD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACX,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAc,CAAC;QACnB,IAAI,IAAyC,CAAC;QAC9C,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACpC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,QAAQ,YAAY,QAAQ,mCAAmC,GAAG,EAAE,EAC5F,QAAQ,EACR,oBAAoB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EACxD,cAAc,EACd,GAAG,EACH,EAAE,CACH,CAAC;QACJ,CAAC;QAED,CAAC,CAAC,IAAI,CACJ,GAAG,KAAK,eAAe,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC,MAAM,SAAS,EAAE,CAAC,OAAO,SAAS,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,QAAQ,SAAS,MAAM,GAAG,CAC1N,CAAC;QACF,IAAI,IAAI;YAAE,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,wBAAwB,GAAG,uBAAuB,QAAQ,kCAAkC,GAAG,GAAG,EAClG,CAAC,CAAC,MAAM,EAAE,EACV,GAAG,EACH,EAAE,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { type IntegerRanges } from "../../ir/integer-ranges.js";
2
+ import type { IrFunction, IrModule } from "../../ir/ir.js";
3
+ /** Speculative integer clones of pure number-valued functions.
4
+ *
5
+ * A function qualifies when its parameters, locals and result are numbers
6
+ * or booleans (parameters may also be number arrays it borrows) and its
7
+ * body only reads and writes its own locals, reads `length` and elements of
8
+ * those arrays, branches, computes with numbers and booleans, and directly
9
+ * calls other qualifying functions. Such a body has no observable effect besides its result, a
10
+ * stack-overflow RangeError, or not terminating.
11
+ *
12
+ * Its clone (`<symbol>.int`) takes its number parameters as i32 and keeps
13
+ * every number in the int32 range: literals are int32, `+ - * % -x` are
14
+ * overflow checked (a result that leaves the int32 range or is -0 bails
15
+ * out), and bitwise operators are exact. While nothing bails, every value
16
+ * equals the double the ordinary body computes, so the clone's result is
17
+ * the ordinary result. The clone returns CLONE_RESULT: the int32 (a
18
+ * boolean zero-extended) and a bail flag, in two registers, so a caller
19
+ * tests one flag and no out-of-band constant occupies a register. A caller
20
+ * inside a clone tests a call result before its first use and forwards
21
+ * BAIL to its own caller; a call result it returns as is passes through
22
+ * untested.
23
+ *
24
+ * Recursive members also get a dispatcher (`<entry>.spec`, with the ABI
25
+ * of the entry direct calls use) for callers outside their recursion: it
26
+ * runs the clone when every number argument is exactly an int32 (bit-equal,
27
+ * so never -0, NaN, a fraction or out of range) and otherwise, or after a
28
+ * bail, the ordinary body from the start. Rerunning is sound because the
29
+ * clone had no effect. Calls inside the recursion's ordinary bodies keep
30
+ * the ordinary entries, so one bail costs at most one more full run.
31
+ *
32
+ * The clone checks the stack guard like the ordinary body. On overflow it
33
+ * leaves Node's RangeError pending and bails; the dispatcher
34
+ * forwards a pending exception instead of rerunning. No other exception
35
+ * can arise, so calls between clones need no pending test.
36
+ *
37
+ * Self tail calls (`return f(...)`) and accumulating self calls (`return
38
+ * x + f(...)`, also `f(...) + x` when `x` calls nothing) become a loop, and
39
+ * tail calls between members of a component return the callee's result as
40
+ * is, so LLVM inlines them into one loop.
41
+ *
42
+ * A clone overflows the stack where the ordinary body would. LLVM already
43
+ * turns the ordinary body's plain tail calls into loops, so the clone's
44
+ * plain tail calls run unchecked too (endless tail recursion runs forever
45
+ * on either path, like before clones). An accumulating call is real
46
+ * recursion in the ordinary body (a double sum is not associative), so its
47
+ * loop carries a virtual stack pointer, starting at the real one, that
48
+ * every accumulating iteration lowers by one VIRTUAL_FRAME; passing the
49
+ * stack guard throws Node's RangeError like the real overflow would. The
50
+ * int32 accumulator is overflow checked.
51
+ * That is exact: with every partial sum and the final result in the int32
52
+ * range, every value the ordinary body adds is the final result minus a
53
+ * partial sum, within 2^32, so each double addition is exact. */
54
+ export interface IntegerClones {
55
+ /** Functions with an integer clone: the recursive members and the
56
+ * members they call. */
57
+ readonly members: ReadonlySet<string>;
58
+ /** Members with a dispatcher: those in a recursive call cycle. */
59
+ readonly dispatched: ReadonlySet<string>;
60
+ /** The recursive component of each dispatched member. */
61
+ readonly component: ReadonlyMap<string, number>;
62
+ /** Members of components with tail calls between different members,
63
+ * which return the callee's result as is. */
64
+ readonly tailLinked: ReadonlySet<string>;
65
+ }
66
+ export declare const NO_INTEGER_CLONES: IntegerClones;
67
+ /** A clone's result: the value and whether the clone bailed. */
68
+ export declare const CLONE_RESULT = "{ i32, i1 }";
69
+ /** The single-threaded stack guard, declared as the emitter's ordinary
70
+ * stack checks declare it (clones only exist without workers). */
71
+ export declare const STACK_GUARD_DECL = "@scr_stack_guard = external global ptr";
72
+ export declare const INTEGER_CLONE_SUFFIX = ".int";
73
+ export declare const INTEGER_DISPATCH_SUFFIX = ".spec";
74
+ /** Whether the function borrows its parameter at `index` (callers keep the
75
+ * array alive and unchanged for the call); absent, clones take no arrays. */
76
+ export type BorrowedParameter = (fnName: string, index: number) => boolean;
77
+ export declare function findIntegerClones(mod: IrModule, borrowed?: BorrowedParameter): IntegerClones;
78
+ /** Whether a direct call from `caller` to `callee` enters the callee's
79
+ * dispatcher: callers inside the callee's recursion run its ordinary body
80
+ * (they are the fallback). */
81
+ export declare function dispatchesCall(clones: IntegerClones, caller: string, callee: string): boolean;
82
+ export interface IntegerCloneHost {
83
+ readonly integerClones: IntegerClones;
84
+ /** The range every caller passes to a number parameter (int32-slots
85
+ * facts, proven over every call site, recursive ones included), if any. */
86
+ integerParamRange(fnName: string, localId: string): {
87
+ min: number;
88
+ max: number;
89
+ } | null;
90
+ /** The static integer ranges of the function being cloned
91
+ * (ir/integer-ranges.ts, under the same parameter facts). */
92
+ readonly integerRanges: IntegerRanges;
93
+ declare(decl: string): void;
94
+ /** Lines setting the i1 `dest` to "an exception is pending". */
95
+ pendingTestLines(dest: string): string[];
96
+ }
97
+ /** The dispatcher of member `fn` for the direct-call entry `entry` (the
98
+ * ordinary symbol, or its i32 entry: `int32Params`/`int32Result` give that
99
+ * entry's i32 positions). It has the entry's signature, so a call site
100
+ * only switches its target. */
101
+ export declare function emitIntegerDispatcher(fn: IrFunction, host: IntegerCloneHost, entry: string, int32Params: readonly boolean[], int32Result: boolean): string;
102
+ /** The integer clone of member `fn`. */
103
+ export declare function emitIntegerClone(fn: IrFunction, host: IntegerCloneHost, stackCheck: boolean): string;