@elaraai/east 0.0.1-beta.0

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 (251) hide show
  1. package/LICENSE.md +682 -0
  2. package/README.md +276 -0
  3. package/dist/src/analyze.d.ts +95 -0
  4. package/dist/src/analyze.d.ts.map +1 -0
  5. package/dist/src/analyze.js +1110 -0
  6. package/dist/src/analyze.js.map +1 -0
  7. package/dist/src/ast.d.ts +263 -0
  8. package/dist/src/ast.d.ts.map +1 -0
  9. package/dist/src/ast.js +151 -0
  10. package/dist/src/ast.js.map +1 -0
  11. package/dist/src/ast_to_ir.d.ts +24 -0
  12. package/dist/src/ast_to_ir.d.ts.map +1 -0
  13. package/dist/src/ast_to_ir.js +834 -0
  14. package/dist/src/ast_to_ir.js.map +1 -0
  15. package/dist/src/builtins.d.ts +18 -0
  16. package/dist/src/builtins.d.ts.map +1 -0
  17. package/dist/src/builtins.js +1105 -0
  18. package/dist/src/builtins.js.map +1 -0
  19. package/dist/src/comparison.d.ts +28 -0
  20. package/dist/src/comparison.d.ts.map +1 -0
  21. package/dist/src/comparison.js +1017 -0
  22. package/dist/src/comparison.js.map +1 -0
  23. package/dist/src/compile.d.ts +22 -0
  24. package/dist/src/compile.d.ts.map +1 -0
  25. package/dist/src/compile.js +3260 -0
  26. package/dist/src/compile.js.map +1 -0
  27. package/dist/src/containers/ref.d.ts +106 -0
  28. package/dist/src/containers/ref.d.ts.map +1 -0
  29. package/dist/src/containers/ref.js +100 -0
  30. package/dist/src/containers/ref.js.map +1 -0
  31. package/dist/src/containers/sortedmap.d.ts +165 -0
  32. package/dist/src/containers/sortedmap.d.ts.map +1 -0
  33. package/dist/src/containers/sortedmap.js +237 -0
  34. package/dist/src/containers/sortedmap.js.map +1 -0
  35. package/dist/src/containers/sortedset.d.ts +185 -0
  36. package/dist/src/containers/sortedset.d.ts.map +1 -0
  37. package/dist/src/containers/sortedset.js +312 -0
  38. package/dist/src/containers/sortedset.js.map +1 -0
  39. package/dist/src/containers/variant.d.ts +131 -0
  40. package/dist/src/containers/variant.d.ts.map +1 -0
  41. package/dist/src/containers/variant.js +68 -0
  42. package/dist/src/containers/variant.js.map +1 -0
  43. package/dist/src/datetime_format/parse.d.ts +50 -0
  44. package/dist/src/datetime_format/parse.d.ts.map +1 -0
  45. package/dist/src/datetime_format/parse.js +908 -0
  46. package/dist/src/datetime_format/parse.js.map +1 -0
  47. package/dist/src/datetime_format/print.d.ts +35 -0
  48. package/dist/src/datetime_format/print.d.ts.map +1 -0
  49. package/dist/src/datetime_format/print.js +157 -0
  50. package/dist/src/datetime_format/print.js.map +1 -0
  51. package/dist/src/datetime_format/tokenize.d.ts +76 -0
  52. package/dist/src/datetime_format/tokenize.d.ts.map +1 -0
  53. package/dist/src/datetime_format/tokenize.js +271 -0
  54. package/dist/src/datetime_format/tokenize.js.map +1 -0
  55. package/dist/src/datetime_format/types.d.ts +99 -0
  56. package/dist/src/datetime_format/types.d.ts.map +1 -0
  57. package/dist/src/datetime_format/types.js +103 -0
  58. package/dist/src/datetime_format/types.js.map +1 -0
  59. package/dist/src/datetime_format/validate.d.ts +51 -0
  60. package/dist/src/datetime_format/validate.d.ts.map +1 -0
  61. package/dist/src/datetime_format/validate.js +208 -0
  62. package/dist/src/datetime_format/validate.js.map +1 -0
  63. package/dist/src/default.d.ts +21 -0
  64. package/dist/src/default.d.ts.map +1 -0
  65. package/dist/src/default.js +82 -0
  66. package/dist/src/default.js.map +1 -0
  67. package/dist/src/eastir.d.ts +33 -0
  68. package/dist/src/eastir.d.ts.map +1 -0
  69. package/dist/src/eastir.js +92 -0
  70. package/dist/src/eastir.js.map +1 -0
  71. package/dist/src/error.d.ts +13 -0
  72. package/dist/src/error.d.ts.map +1 -0
  73. package/dist/src/error.js +8 -0
  74. package/dist/src/error.js.map +1 -0
  75. package/dist/src/expr/array.d.ts +1711 -0
  76. package/dist/src/expr/array.d.ts.map +1 -0
  77. package/dist/src/expr/array.js +1805 -0
  78. package/dist/src/expr/array.js.map +1 -0
  79. package/dist/src/expr/ast.d.ts +17 -0
  80. package/dist/src/expr/ast.d.ts.map +1 -0
  81. package/dist/src/expr/ast.js +302 -0
  82. package/dist/src/expr/ast.js.map +1 -0
  83. package/dist/src/expr/blob.d.ts +141 -0
  84. package/dist/src/expr/blob.d.ts.map +1 -0
  85. package/dist/src/expr/blob.js +198 -0
  86. package/dist/src/expr/blob.js.map +1 -0
  87. package/dist/src/expr/block.d.ts +201 -0
  88. package/dist/src/expr/block.d.ts.map +1 -0
  89. package/dist/src/expr/block.js +1505 -0
  90. package/dist/src/expr/block.js.map +1 -0
  91. package/dist/src/expr/boolean.d.ts +207 -0
  92. package/dist/src/expr/boolean.d.ts.map +1 -0
  93. package/dist/src/expr/boolean.js +261 -0
  94. package/dist/src/expr/boolean.js.map +1 -0
  95. package/dist/src/expr/datetime.d.ts +544 -0
  96. package/dist/src/expr/datetime.d.ts.map +1 -0
  97. package/dist/src/expr/datetime.js +980 -0
  98. package/dist/src/expr/datetime.js.map +1 -0
  99. package/dist/src/expr/dict.d.ts +1242 -0
  100. package/dist/src/expr/dict.d.ts.map +1 -0
  101. package/dist/src/expr/dict.js +1492 -0
  102. package/dist/src/expr/dict.js.map +1 -0
  103. package/dist/src/expr/expr.d.ts +95 -0
  104. package/dist/src/expr/expr.d.ts.map +1 -0
  105. package/dist/src/expr/expr.js +171 -0
  106. package/dist/src/expr/expr.js.map +1 -0
  107. package/dist/src/expr/float.d.ts +357 -0
  108. package/dist/src/expr/float.d.ts.map +1 -0
  109. package/dist/src/expr/float.js +637 -0
  110. package/dist/src/expr/float.js.map +1 -0
  111. package/dist/src/expr/function.d.ts +46 -0
  112. package/dist/src/expr/function.d.ts.map +1 -0
  113. package/dist/src/expr/function.js +58 -0
  114. package/dist/src/expr/function.js.map +1 -0
  115. package/dist/src/expr/index.d.ts +450 -0
  116. package/dist/src/expr/index.d.ts.map +1 -0
  117. package/dist/src/expr/index.js +423 -0
  118. package/dist/src/expr/index.js.map +1 -0
  119. package/dist/src/expr/integer.d.ts +256 -0
  120. package/dist/src/expr/integer.d.ts.map +1 -0
  121. package/dist/src/expr/integer.js +311 -0
  122. package/dist/src/expr/integer.js.map +1 -0
  123. package/dist/src/expr/libs/array.d.ts +106 -0
  124. package/dist/src/expr/libs/array.d.ts.map +1 -0
  125. package/dist/src/expr/libs/array.js +140 -0
  126. package/dist/src/expr/libs/array.js.map +1 -0
  127. package/dist/src/expr/libs/blob.d.ts +42 -0
  128. package/dist/src/expr/libs/blob.d.ts.map +1 -0
  129. package/dist/src/expr/libs/blob.js +70 -0
  130. package/dist/src/expr/libs/blob.js.map +1 -0
  131. package/dist/src/expr/libs/datetime.d.ts +479 -0
  132. package/dist/src/expr/libs/datetime.d.ts.map +1 -0
  133. package/dist/src/expr/libs/datetime.js +624 -0
  134. package/dist/src/expr/libs/datetime.js.map +1 -0
  135. package/dist/src/expr/libs/dict.d.ts +66 -0
  136. package/dist/src/expr/libs/dict.d.ts.map +1 -0
  137. package/dist/src/expr/libs/dict.js +77 -0
  138. package/dist/src/expr/libs/dict.js.map +1 -0
  139. package/dist/src/expr/libs/float.d.ts +299 -0
  140. package/dist/src/expr/libs/float.d.ts.map +1 -0
  141. package/dist/src/expr/libs/float.js +564 -0
  142. package/dist/src/expr/libs/float.js.map +1 -0
  143. package/dist/src/expr/libs/integer.d.ts +228 -0
  144. package/dist/src/expr/libs/integer.d.ts.map +1 -0
  145. package/dist/src/expr/libs/integer.js +398 -0
  146. package/dist/src/expr/libs/integer.js.map +1 -0
  147. package/dist/src/expr/libs/set.d.ts +59 -0
  148. package/dist/src/expr/libs/set.d.ts.map +1 -0
  149. package/dist/src/expr/libs/set.js +69 -0
  150. package/dist/src/expr/libs/set.js.map +1 -0
  151. package/dist/src/expr/libs/string.d.ts +71 -0
  152. package/dist/src/expr/libs/string.d.ts.map +1 -0
  153. package/dist/src/expr/libs/string.js +75 -0
  154. package/dist/src/expr/libs/string.js.map +1 -0
  155. package/dist/src/expr/never.d.ts +15 -0
  156. package/dist/src/expr/never.d.ts.map +1 -0
  157. package/dist/src/expr/never.js +12 -0
  158. package/dist/src/expr/never.js.map +1 -0
  159. package/dist/src/expr/null.d.ts +15 -0
  160. package/dist/src/expr/null.d.ts.map +1 -0
  161. package/dist/src/expr/null.js +12 -0
  162. package/dist/src/expr/null.js.map +1 -0
  163. package/dist/src/expr/ref.d.ts +103 -0
  164. package/dist/src/expr/ref.d.ts.map +1 -0
  165. package/dist/src/expr/ref.js +131 -0
  166. package/dist/src/expr/ref.js.map +1 -0
  167. package/dist/src/expr/regex_validation.d.ts +25 -0
  168. package/dist/src/expr/regex_validation.d.ts.map +1 -0
  169. package/dist/src/expr/regex_validation.js +130 -0
  170. package/dist/src/expr/regex_validation.js.map +1 -0
  171. package/dist/src/expr/set.d.ts +1071 -0
  172. package/dist/src/expr/set.d.ts.map +1 -0
  173. package/dist/src/expr/set.js +1137 -0
  174. package/dist/src/expr/set.js.map +1 -0
  175. package/dist/src/expr/string.d.ts +414 -0
  176. package/dist/src/expr/string.d.ts.map +1 -0
  177. package/dist/src/expr/string.js +683 -0
  178. package/dist/src/expr/string.js.map +1 -0
  179. package/dist/src/expr/struct.d.ts +48 -0
  180. package/dist/src/expr/struct.d.ts.map +1 -0
  181. package/dist/src/expr/struct.js +65 -0
  182. package/dist/src/expr/struct.js.map +1 -0
  183. package/dist/src/expr/types.d.ts +68 -0
  184. package/dist/src/expr/types.d.ts.map +1 -0
  185. package/dist/src/expr/types.js +6 -0
  186. package/dist/src/expr/types.js.map +1 -0
  187. package/dist/src/expr/variant.d.ts +137 -0
  188. package/dist/src/expr/variant.d.ts.map +1 -0
  189. package/dist/src/expr/variant.js +105 -0
  190. package/dist/src/expr/variant.js.map +1 -0
  191. package/dist/src/fuzz.d.ts +80 -0
  192. package/dist/src/fuzz.d.ts.map +1 -0
  193. package/dist/src/fuzz.js +300 -0
  194. package/dist/src/fuzz.js.map +1 -0
  195. package/dist/src/index.d.ts +21 -0
  196. package/dist/src/index.d.ts.map +1 -0
  197. package/dist/src/index.js +21 -0
  198. package/dist/src/index.js.map +1 -0
  199. package/dist/src/internal.d.ts +36 -0
  200. package/dist/src/internal.d.ts.map +1 -0
  201. package/dist/src/internal.js +11 -0
  202. package/dist/src/internal.js.map +1 -0
  203. package/dist/src/ir.d.ts +1571 -0
  204. package/dist/src/ir.d.ts.map +1 -0
  205. package/dist/src/ir.js +56 -0
  206. package/dist/src/ir.js.map +1 -0
  207. package/dist/src/location.d.ts +48 -0
  208. package/dist/src/location.d.ts.map +1 -0
  209. package/dist/src/location.js +62 -0
  210. package/dist/src/location.js.map +1 -0
  211. package/dist/src/platform.d.ts +21 -0
  212. package/dist/src/platform.d.ts.map +1 -0
  213. package/dist/src/platform.js +8 -0
  214. package/dist/src/platform.js.map +1 -0
  215. package/dist/src/serialization/beast.d.ts +39 -0
  216. package/dist/src/serialization/beast.d.ts.map +1 -0
  217. package/dist/src/serialization/beast.js +555 -0
  218. package/dist/src/serialization/beast.js.map +1 -0
  219. package/dist/src/serialization/beast2-stream.d.ts +38 -0
  220. package/dist/src/serialization/beast2-stream.d.ts.map +1 -0
  221. package/dist/src/serialization/beast2-stream.js +665 -0
  222. package/dist/src/serialization/beast2-stream.js.map +1 -0
  223. package/dist/src/serialization/beast2.d.ts +41 -0
  224. package/dist/src/serialization/beast2.d.ts.map +1 -0
  225. package/dist/src/serialization/beast2.js +489 -0
  226. package/dist/src/serialization/beast2.js.map +1 -0
  227. package/dist/src/serialization/binary-utils.d.ts +151 -0
  228. package/dist/src/serialization/binary-utils.d.ts.map +1 -0
  229. package/dist/src/serialization/binary-utils.js +929 -0
  230. package/dist/src/serialization/binary-utils.js.map +1 -0
  231. package/dist/src/serialization/east.d.ts +84 -0
  232. package/dist/src/serialization/east.d.ts.map +1 -0
  233. package/dist/src/serialization/east.js +1802 -0
  234. package/dist/src/serialization/east.js.map +1 -0
  235. package/dist/src/serialization/index.d.ts +11 -0
  236. package/dist/src/serialization/index.d.ts.map +1 -0
  237. package/dist/src/serialization/index.js +12 -0
  238. package/dist/src/serialization/index.js.map +1 -0
  239. package/dist/src/serialization/json.d.ts +36 -0
  240. package/dist/src/serialization/json.d.ts.map +1 -0
  241. package/dist/src/serialization/json.js +849 -0
  242. package/dist/src/serialization/json.js.map +1 -0
  243. package/dist/src/type_of_type.d.ts +115 -0
  244. package/dist/src/type_of_type.d.ts.map +1 -0
  245. package/dist/src/type_of_type.js +362 -0
  246. package/dist/src/type_of_type.js.map +1 -0
  247. package/dist/src/types.d.ts +648 -0
  248. package/dist/src/types.d.ts.map +1 -0
  249. package/dist/src/types.js +1631 -0
  250. package/dist/src/types.js.map +1 -0
  251. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beast2-stream.js","sourceRoot":"","sources":["../../../src/serialization/beast2-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { type EastTypeValue } from "../type_of_type.js";
6
+ import type { EastType, ValueTypeOf } from "../types.js";
7
+ import { BufferWriter } from "./binary-utils.js";
8
+ /** Stack of encoders for recursive types */
9
+ export type Beast2EncodeTypeContext = ((value: any, writer: BufferWriter, ctx?: Beast2EncodeContext) => void)[];
10
+ /**
11
+ * Value-level context for tracking mutable aliases during encoding.
12
+ *
13
+ * - refs: Map from mutable containers (Array/Set/Dict) to their byte offset (where inline content begins, after varint(0))
14
+ */
15
+ export type Beast2EncodeContext = {
16
+ refs: Map<any, number>;
17
+ };
18
+ /** Stack of decoders for recursive types */
19
+ export type Beast2DecodeTypeContext = ((buffer: Uint8Array, offset: number, ctx?: Beast2DecodeContext) => [any, number])[];
20
+ /**
21
+ * Value-level context for tracking mutable aliases during decoding.
22
+ *
23
+ * - refs: Map from byte offset to deserialized mutable container (Array/Set/Dict)
24
+ */
25
+ export type Beast2DecodeContext = {
26
+ refs: Map<number, any>;
27
+ };
28
+ export declare function encodeBeast2ValueToBufferFor(type: EastTypeValue, typeCtx?: Beast2EncodeTypeContext): (value: any, writer: BufferWriter, ctx?: Beast2EncodeContext) => void;
29
+ export declare function decodeBeast2ValueFor(type: EastTypeValue | EastType, typeCtx?: Beast2DecodeTypeContext): (buffer: Uint8Array, offset: number, ctx?: Beast2DecodeContext) => [any, number];
30
+ export declare function encodeBeast2ValueFor(type: EastTypeValue): (value: any) => Uint8Array;
31
+ export declare function encodeBeast2ValueFor<T extends EastType>(type: T): (value: ValueTypeOf<T>) => Uint8Array;
32
+ export declare const MAGIC_BYTES: Uint8Array<ArrayBuffer>;
33
+ export declare function encodeBeast2For(type: EastTypeValue): (value: any) => Uint8Array;
34
+ export declare function encodeBeast2For<T extends EastType>(type: T): (value: ValueTypeOf<T>) => Uint8Array;
35
+ export declare function decodeBeast2(data: Uint8Array): {
36
+ type: EastTypeValue;
37
+ value: any;
38
+ };
39
+ export declare function decodeBeast2For(type: EastTypeValue): (data: Uint8Array) => any;
40
+ export declare function decodeBeast2For<T extends EastType>(type: T): (data: Uint8Array) => ValueTypeOf<T>;
41
+ //# sourceMappingURL=beast2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beast2.d.ts","sourceRoot":"","sources":["../../../src/serialization/beast2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACL,YAAY,EAKb,MAAM,mBAAmB,CAAC;AAW3B,4CAA4C;AAC5C,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC,EAAE,CAAC;AAEhH;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;CACxB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,mBAAmB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAE3H;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxB,CAAC;AAMF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,uBAA4B,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAgJ9K;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,EAAE,OAAO,GAAE,uBAA4B,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,mBAAmB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAoM5L;AAMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAA;AACrF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAA;AAyBxG,eAAO,MAAM,WAAW,yBAAmE,CAAC;AAI5F,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAA;AAChF,wBAAgB,eAAe,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAA;AA0BnG,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CA4BlF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,GAAG,CAAA;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,489 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { equalFor } from "../comparison.js";
6
+ import { EastTypeValueType, toEastTypeValue } from "../type_of_type.js";
7
+ import { isVariant, variant } from "../containers/variant.js";
8
+ import { BufferWriter, readVarint, readZigzag, readFloat64LE, readStringUtf8Varint, } from "./binary-utils.js";
9
+ import { printFor } from "./east.js";
10
+ import { ref } from "../containers/ref.js";
11
+ const printTypeValue = printFor(EastTypeValueType);
12
+ const isTypeValueEqual = equalFor(EastTypeValueType);
13
+ // =============================================================================
14
+ // Value encoding/decoding factories (closure-compiler pattern)
15
+ // =============================================================================
16
+ export function encodeBeast2ValueToBufferFor(type, typeCtx = []) {
17
+ if (type.type === "Never") {
18
+ return (_, _writer, _ctx) => { throw new Error(`Attempted to encode value of type .Never`); };
19
+ }
20
+ else if (type.type === "Null") {
21
+ return (_, _writer, _ctx) => { };
22
+ }
23
+ else if (type.type === "Boolean") {
24
+ return (x, writer, _ctx) => writer.writeUint8(x ? 1 : 0);
25
+ }
26
+ else if (type.type === "Integer") {
27
+ return (x, writer, _ctx) => writer.writeZigzag(x);
28
+ }
29
+ else if (type.type === "Float") {
30
+ return (x, writer, _ctx) => writer.writeFloat64LE(x);
31
+ }
32
+ else if (type.type === "String") {
33
+ return (x, writer, _ctx) => writer.writeStringUtf8Varint(x);
34
+ }
35
+ else if (type.type === "DateTime") {
36
+ return (x, writer, _ctx) => writer.writeZigzag(BigInt(x.valueOf()));
37
+ }
38
+ else if (type.type === "Blob") {
39
+ return (x, writer, _ctx) => {
40
+ writer.writeVarint(x.length);
41
+ writer.writeBytes(x);
42
+ };
43
+ }
44
+ else if (type.type === "Ref") {
45
+ let valueEncoder;
46
+ const ret = (x, writer, ctx = { refs: new Map() }) => {
47
+ // Check for backreference
48
+ if (ctx.refs.has(x)) {
49
+ const offset = ctx.refs.get(x);
50
+ writer.writeVarint(writer.currentOffset - offset);
51
+ return;
52
+ }
53
+ // Write inline marker and register
54
+ writer.writeVarint(0);
55
+ ctx.refs.set(x, writer.currentOffset);
56
+ // Encode contents
57
+ valueEncoder(x.value, writer, ctx);
58
+ };
59
+ typeCtx.push(ret);
60
+ valueEncoder = encodeBeast2ValueToBufferFor(type.value, typeCtx);
61
+ typeCtx.pop();
62
+ return ret;
63
+ }
64
+ else if (type.type === "Array") {
65
+ let valueEncoder;
66
+ const ret = (x, writer, ctx = { refs: new Map() }) => {
67
+ // Check for backreference
68
+ if (ctx.refs.has(x)) {
69
+ const offset = ctx.refs.get(x);
70
+ writer.writeVarint(writer.currentOffset - offset);
71
+ return;
72
+ }
73
+ // Write inline marker and register
74
+ writer.writeVarint(0);
75
+ ctx.refs.set(x, writer.currentOffset);
76
+ // Encode contents
77
+ writer.writeVarint(x.length);
78
+ for (const item of x) {
79
+ valueEncoder(item, writer, ctx);
80
+ }
81
+ };
82
+ typeCtx.push(ret);
83
+ valueEncoder = encodeBeast2ValueToBufferFor(type.value, typeCtx);
84
+ typeCtx.pop();
85
+ return ret;
86
+ }
87
+ else if (type.type === "Set") {
88
+ const keyEncoder = encodeBeast2ValueToBufferFor(type.value, typeCtx);
89
+ return (x, writer, ctx = { refs: new Map() }) => {
90
+ // Check for backreference
91
+ if (ctx.refs.has(x)) {
92
+ const offset = ctx.refs.get(x);
93
+ writer.writeVarint(writer.currentOffset - offset);
94
+ return;
95
+ }
96
+ // Write inline marker and register
97
+ writer.writeVarint(0);
98
+ ctx.refs.set(x, writer.currentOffset);
99
+ // Encode contents
100
+ writer.writeVarint(x.size);
101
+ for (const key of x) {
102
+ keyEncoder(key, writer, ctx);
103
+ }
104
+ };
105
+ }
106
+ else if (type.type === "Dict") {
107
+ const keyEncoder = encodeBeast2ValueToBufferFor(type.value.key, typeCtx);
108
+ let valueEncoder;
109
+ const ret = (x, writer, ctx = { refs: new Map() }) => {
110
+ // Check for backreference
111
+ if (ctx.refs.has(x)) {
112
+ const offset = ctx.refs.get(x);
113
+ writer.writeVarint(writer.currentOffset - offset);
114
+ return;
115
+ }
116
+ // Write inline marker and register
117
+ writer.writeVarint(0);
118
+ ctx.refs.set(x, writer.currentOffset);
119
+ // Encode contents
120
+ writer.writeVarint(x.size);
121
+ for (const [k, v] of x) {
122
+ keyEncoder(k, writer, ctx);
123
+ valueEncoder(v, writer, ctx);
124
+ }
125
+ };
126
+ typeCtx.push(ret);
127
+ valueEncoder = encodeBeast2ValueToBufferFor(type.value.value, typeCtx);
128
+ typeCtx.pop();
129
+ return ret;
130
+ }
131
+ else if (type.type === "Struct") {
132
+ const fieldEncoders = [];
133
+ const ret = (x, writer, ctx = { refs: new Map() }) => {
134
+ // Encode fields
135
+ for (const [k, encoder] of fieldEncoders) {
136
+ encoder(x[k], writer, ctx);
137
+ }
138
+ };
139
+ typeCtx.push(ret);
140
+ for (const { name, type: fieldType } of type.value) {
141
+ fieldEncoders.push([name, encodeBeast2ValueToBufferFor(fieldType, typeCtx)]);
142
+ }
143
+ typeCtx.pop();
144
+ return ret;
145
+ }
146
+ else if (type.type === "Variant") {
147
+ const caseEncoders = {};
148
+ const caseTags = Object.fromEntries(type.value.map(({ name }, i) => [name, i]));
149
+ const ret = (x, writer, ctx = { refs: new Map() }) => {
150
+ // Encode tag and value
151
+ const tag = x.type;
152
+ const tagIndex = caseTags[tag]; // Assume valid input
153
+ writer.writeVarint(tagIndex);
154
+ caseEncoders[tag](x.value, writer, ctx);
155
+ };
156
+ typeCtx.push(ret);
157
+ for (const { name, type: caseType } of type.value) {
158
+ caseEncoders[name] = encodeBeast2ValueToBufferFor(caseType, typeCtx);
159
+ }
160
+ typeCtx.pop();
161
+ return ret;
162
+ }
163
+ else if (type.type === "Recursive") {
164
+ const ret = typeCtx[typeCtx.length - Number(type.value)];
165
+ if (ret === undefined) {
166
+ throw new Error(`Internal error: Recursive type context not found`);
167
+ }
168
+ return ret;
169
+ }
170
+ else if (type.type === "Function") {
171
+ throw new Error(`Functions cannot be serialized`);
172
+ }
173
+ else {
174
+ throw new Error(`Unhandled type ${type.type}`);
175
+ }
176
+ }
177
+ export function decodeBeast2ValueFor(type, typeCtx = []) {
178
+ // Convert EastType to EastTypeValue if necessary
179
+ if (!isVariant(type)) {
180
+ type = toEastTypeValue(type);
181
+ }
182
+ if (type.type === "Never") {
183
+ return (_buffer, _offset, _ctx) => { throw new Error(`Attempted to decode value of type .Never`); };
184
+ }
185
+ else if (type.type === "Null") {
186
+ return (_buffer, offset, _ctx) => [null, offset];
187
+ }
188
+ else if (type.type === "Boolean") {
189
+ return (buffer, offset, _ctx) => {
190
+ if (offset >= buffer.length) {
191
+ throw new Error(`Buffer underflow reading boolean at offset ${offset}`);
192
+ }
193
+ return [buffer[offset] !== 0, offset + 1];
194
+ };
195
+ }
196
+ else if (type.type === "Integer") {
197
+ return (buffer, offset, _ctx) => readZigzag(buffer, offset);
198
+ }
199
+ else if (type.type === "Float") {
200
+ return (buffer, offset, _ctx) => {
201
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
202
+ const value = readFloat64LE(view, offset);
203
+ return [value, offset + 8];
204
+ };
205
+ }
206
+ else if (type.type === "String") {
207
+ return (buffer, offset, _ctx) => readStringUtf8Varint(buffer, offset);
208
+ }
209
+ else if (type.type === "DateTime") {
210
+ return (buffer, offset, _ctx) => {
211
+ const [millis, newOffset] = readZigzag(buffer, offset);
212
+ return [new Date(Number(millis)), newOffset];
213
+ };
214
+ }
215
+ else if (type.type === "Blob") {
216
+ return (buffer, offset, _ctx) => {
217
+ const [length, newOffset] = readVarint(buffer, offset);
218
+ if (newOffset + length > buffer.length) {
219
+ throw new Error(`Buffer underflow reading blob at offset ${offset}, length ${length}`);
220
+ }
221
+ const blob = buffer.slice(newOffset, newOffset + length);
222
+ return [blob, newOffset + length];
223
+ };
224
+ }
225
+ else if (type.type === "Ref") {
226
+ let valueDecoder;
227
+ const ret = (buffer, offset, ctx = { refs: new Map() }) => {
228
+ const [refOrLength, newOffset] = readVarint(buffer, offset);
229
+ // Check if this is a backreference
230
+ if (refOrLength > 0) {
231
+ const targetOffset = offset - refOrLength;
232
+ if (!ctx.refs.has(targetOffset)) {
233
+ throw new Error(`Undefined backreference at offset ${offset}, target ${targetOffset}`);
234
+ }
235
+ return [ctx.refs.get(targetOffset), newOffset];
236
+ }
237
+ // Inline ref
238
+ const result = ref(undefined);
239
+ ctx.refs.set(offset, result);
240
+ const [value, nextOffset] = valueDecoder(buffer, newOffset, ctx);
241
+ result.value = value;
242
+ return [result, nextOffset];
243
+ };
244
+ typeCtx.push(ret);
245
+ valueDecoder = decodeBeast2ValueFor(type.value, typeCtx);
246
+ typeCtx.pop();
247
+ return ret;
248
+ }
249
+ else if (type.type === "Array") {
250
+ let valueDecoder;
251
+ const ret = (buffer, offset, ctx = { refs: new Map() }) => {
252
+ const [refOrLength, newOffset] = readVarint(buffer, offset);
253
+ // Check if this is a backreference
254
+ if (refOrLength > 0) {
255
+ const targetOffset = offset - refOrLength;
256
+ if (!ctx.refs.has(targetOffset)) {
257
+ throw new Error(`Undefined backreference at offset ${offset}, target ${targetOffset}`);
258
+ }
259
+ return [ctx.refs.get(targetOffset), newOffset];
260
+ }
261
+ // Inline array
262
+ const result = [];
263
+ ctx.refs.set(offset, result);
264
+ const [length, lengthOffset] = readVarint(buffer, newOffset);
265
+ let currentOffset = lengthOffset;
266
+ for (let i = 0; i < length; i++) {
267
+ const [value, nextOffset] = valueDecoder(buffer, currentOffset, ctx);
268
+ result.push(value);
269
+ currentOffset = nextOffset;
270
+ }
271
+ return [result, currentOffset];
272
+ };
273
+ typeCtx.push(ret);
274
+ valueDecoder = decodeBeast2ValueFor(type.value, typeCtx);
275
+ typeCtx.pop();
276
+ return ret;
277
+ }
278
+ else if (type.type === "Set") {
279
+ const keyDecoder = decodeBeast2ValueFor(type.value, typeCtx);
280
+ return (buffer, offset, ctx = { refs: new Map() }) => {
281
+ const [refOrLength, newOffset] = readVarint(buffer, offset);
282
+ // Check if this is a backreference
283
+ if (refOrLength > 0) {
284
+ const targetOffset = offset - refOrLength;
285
+ if (!ctx.refs.has(targetOffset)) {
286
+ throw new Error(`Undefined backreference at offset ${offset}, target ${targetOffset}`);
287
+ }
288
+ return [ctx.refs.get(targetOffset), newOffset];
289
+ }
290
+ // Inline set
291
+ const result = new Set();
292
+ ctx.refs.set(offset, result);
293
+ const [length, lengthOffset] = readVarint(buffer, newOffset);
294
+ let currentOffset = lengthOffset;
295
+ for (let i = 0; i < length; i++) {
296
+ const [key, nextOffset] = keyDecoder(buffer, currentOffset, ctx);
297
+ result.add(key);
298
+ currentOffset = nextOffset;
299
+ }
300
+ return [result, currentOffset];
301
+ };
302
+ }
303
+ else if (type.type === "Dict") {
304
+ const keyDecoder = decodeBeast2ValueFor(type.value.key, typeCtx);
305
+ let valueDecoder;
306
+ const ret = (buffer, offset, ctx = { refs: new Map() }) => {
307
+ const [refOrLength, newOffset] = readVarint(buffer, offset);
308
+ // Check if this is a backreference
309
+ if (refOrLength > 0) {
310
+ const targetOffset = offset - refOrLength;
311
+ if (!ctx.refs.has(targetOffset)) {
312
+ throw new Error(`Undefined backreference at offset ${offset}, target ${targetOffset}`);
313
+ }
314
+ return [ctx.refs.get(targetOffset), newOffset];
315
+ }
316
+ // Inline dict
317
+ const result = new Map();
318
+ ctx.refs.set(offset, result);
319
+ const [length, lengthOffset] = readVarint(buffer, newOffset);
320
+ let currentOffset = lengthOffset;
321
+ for (let i = 0; i < length; i++) {
322
+ const [key, keyOffset] = keyDecoder(buffer, currentOffset, ctx);
323
+ const [value, valueOffset] = valueDecoder(buffer, keyOffset, ctx);
324
+ result.set(key, value);
325
+ currentOffset = valueOffset;
326
+ }
327
+ return [result, currentOffset];
328
+ };
329
+ typeCtx.push(ret);
330
+ valueDecoder = decodeBeast2ValueFor(type.value.value, typeCtx);
331
+ typeCtx.pop();
332
+ return ret;
333
+ }
334
+ else if (type.type === "Struct") {
335
+ const fieldDecoders = [];
336
+ const ret = (buffer, offset, ctx = { refs: new Map() }) => {
337
+ // Decode struct fields
338
+ const result = {};
339
+ let currentOffset = offset;
340
+ for (const [k, decoder] of fieldDecoders) {
341
+ const [value, nextOffset] = decoder(buffer, currentOffset, ctx);
342
+ result[k] = value;
343
+ currentOffset = nextOffset;
344
+ }
345
+ return [result, currentOffset];
346
+ };
347
+ typeCtx.push(ret);
348
+ for (const { name, type: fieldType } of type.value) {
349
+ fieldDecoders.push([name, decodeBeast2ValueFor(fieldType, typeCtx)]);
350
+ }
351
+ typeCtx.pop();
352
+ return ret;
353
+ }
354
+ else if (type.type === "Variant") {
355
+ const caseDecoders = [];
356
+ const ret = (buffer, offset, ctx = { refs: new Map() }) => {
357
+ // Decode variant
358
+ const [tagIndex, tagOffset] = readVarint(buffer, offset);
359
+ if (tagIndex >= caseDecoders.length) {
360
+ throw new Error(`Invalid variant tag ${tagIndex} at offset ${offset}`);
361
+ }
362
+ const [caseName, caseDecoder] = caseDecoders[tagIndex];
363
+ const v = variant(caseName, undefined);
364
+ const [value, finalOffset] = caseDecoder(buffer, tagOffset, ctx);
365
+ v.value = value;
366
+ return [v, finalOffset];
367
+ };
368
+ typeCtx.push(ret);
369
+ for (const { name, type: caseType } of type.value) {
370
+ caseDecoders.push([name, decodeBeast2ValueFor(caseType, typeCtx)]);
371
+ }
372
+ typeCtx.pop();
373
+ return ret;
374
+ }
375
+ else if (type.type === "Recursive") {
376
+ const ret = typeCtx[typeCtx.length - Number(type.value)];
377
+ if (ret === undefined) {
378
+ throw new Error(`Internal error: Recursive type context not found`);
379
+ }
380
+ return ret;
381
+ }
382
+ else if (type.type === "Function") {
383
+ throw new Error(`Functions cannot be deserialized`);
384
+ }
385
+ else {
386
+ throw new Error(`Unhandled type ${type.type}`);
387
+ }
388
+ }
389
+ export function encodeBeast2ValueFor(type) {
390
+ // Convert EastType to EastTypeValue if necessary
391
+ if (!isVariant(type)) {
392
+ type = toEastTypeValue(type);
393
+ }
394
+ const encoder = encodeBeast2ValueToBufferFor(type);
395
+ return (value) => {
396
+ const writer = new BufferWriter();
397
+ const ctx = { refs: new Map() };
398
+ encoder(value, writer, ctx);
399
+ return writer.toUint8Array();
400
+ };
401
+ }
402
+ // =============================================================================
403
+ // Beast format (Minimal header with self-describing type)
404
+ // =============================================================================
405
+ // Magic bytes for Beast format
406
+ // 0x89 - Invalid UTF-8 marker (like PNG)
407
+ // 0x45 0x61 0x73 0x74 - "East" (human-readable in hex dumps)
408
+ // 0x0D 0x0A - CRLF (detects line-ending corruption)
409
+ // 0x01 - Version byte (currently 1)
410
+ export const MAGIC_BYTES = new Uint8Array([0x89, 0x45, 0x61, 0x73, 0x74, 0x0D, 0x0A, 0x01]);
411
+ const typeEncoder = encodeBeast2ValueToBufferFor(EastTypeValueType);
412
+ const typeDecoder = decodeBeast2ValueFor(EastTypeValueType);
413
+ export function encodeBeast2For(type) {
414
+ // Convert EastType to EastTypeValue if necessary
415
+ if (!isVariant(type)) {
416
+ type = toEastTypeValue(type);
417
+ }
418
+ const valueEncoder = encodeBeast2ValueToBufferFor(type);
419
+ return (value) => {
420
+ const writer = new BufferWriter();
421
+ // Write magic bytes (8 bytes)
422
+ writer.writeBytes(MAGIC_BYTES);
423
+ // Write type schema
424
+ typeEncoder(type, writer, { refs: new Map() });
425
+ // Write value
426
+ const ctx = { refs: new Map() };
427
+ valueEncoder(value, writer, ctx);
428
+ return writer.toUint8Array();
429
+ };
430
+ }
431
+ export function decodeBeast2(data) {
432
+ // Verify magic bytes
433
+ if (data.length < MAGIC_BYTES.length) {
434
+ throw new Error(`Data too short for Beast format: ${data.length} bytes`);
435
+ }
436
+ for (let i = 0; i < MAGIC_BYTES.length; i++) {
437
+ if (data[i] !== MAGIC_BYTES[i]) {
438
+ throw new Error(`Invalid Beast magic bytes at offset ${i}: expected 0x${MAGIC_BYTES[i].toString(16)}, got 0x${data[i].toString(16)}`);
439
+ }
440
+ }
441
+ // Decode type schema
442
+ let offset = MAGIC_BYTES.length;
443
+ const [type, typeEndOffset] = typeDecoder(data, offset);
444
+ if (type.type === "Set")
445
+ console.log(type);
446
+ // Decode value
447
+ const valueDecoder = decodeBeast2ValueFor(type);
448
+ const ctx = { refs: new Map() };
449
+ const [value, valueEndOffset] = valueDecoder(data, typeEndOffset, ctx);
450
+ // Verify we consumed all data
451
+ if (valueEndOffset !== data.length) {
452
+ throw new Error(`Unexpected data after Beast value at offset ${valueEndOffset} (${data.length - valueEndOffset} bytes remaining)`);
453
+ }
454
+ return { type, value };
455
+ }
456
+ export function decodeBeast2For(type) {
457
+ // Convert EastType to EastTypeValue if necessary
458
+ if (!isVariant(type)) {
459
+ type = toEastTypeValue(type);
460
+ }
461
+ const valueDecoder = decodeBeast2ValueFor(type);
462
+ return (data) => {
463
+ // Verify magic bytes
464
+ if (data.length < MAGIC_BYTES.length) {
465
+ throw new Error(`Data too short for Beast format: ${data.length} bytes`);
466
+ }
467
+ for (let i = 0; i < MAGIC_BYTES.length; i++) {
468
+ if (data[i] !== MAGIC_BYTES[i]) {
469
+ throw new Error(`Invalid Beast magic bytes at offset ${i}: expected 0x${MAGIC_BYTES[i].toString(16)}, got 0x${data[i].toString(16)}`);
470
+ }
471
+ }
472
+ // Decode type schema
473
+ let offset = MAGIC_BYTES.length;
474
+ const [decodedType, typeEndOffset] = typeDecoder(data, offset);
475
+ // Verify type matches expected type
476
+ if (!isTypeValueEqual(decodedType, type)) {
477
+ throw new Error(`Type mismatch: expected ${printTypeValue(type)}, got ${printTypeValue(decodedType)}`);
478
+ }
479
+ // Decode value
480
+ const ctx = { refs: new Map() };
481
+ const [value, valueEndOffset] = valueDecoder(data, typeEndOffset, ctx);
482
+ // Verify we consumed all data
483
+ if (valueEndOffset !== data.length) {
484
+ throw new Error(`Unexpected data after Beast value at offset ${valueEndOffset} (${data.length - valueEndOffset} bytes remaining)`);
485
+ }
486
+ return value;
487
+ };
488
+ }
489
+ //# sourceMappingURL=beast2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beast2.js","sourceRoot":"","sources":["../../../src/serialization/beast2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAoC,CAAC;AACtF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,iBAAiB,CAAsD,CAAC;AA8B1G,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAEhF,MAAM,UAAU,4BAA4B,CAAC,IAAmB,EAAE,UAAmC,EAAE;IACrG,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAU,EAAE,OAAqB,EAAE,IAA0B,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA,CAAA,CAAC,CAAC;IAC3I,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAO,EAAE,OAAqB,EAAE,IAA0B,EAAE,EAAE,GAAiC,CAAC,CAAC;IAC3G,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,CAAU,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,CAAS,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,CAAS,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,CAAS,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,CAAO,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAa,EAAE,MAAoB,EAAE,IAA0B,EAAE,EAAE;YACzE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC/B,IAAI,YAAmF,CAAC;QACxF,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAChG,0BAA0B;YAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACtC,kBAAkB;YAClB,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,YAAmF,CAAC;QACxF,MAAM,GAAG,GAAG,CAAC,CAAQ,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAC7F,0BAA0B;YAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACtC,kBAAkB;YAClB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,CAAW,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAC3F,0BAA0B;YAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACtC,kBAAkB;YAClB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,YAAmF,CAAC;QACxF,MAAM,GAAG,GAAG,CAAC,CAAgB,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YACrG,0BAA0B;YAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACtC,kBAAkB;YAClB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC3B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,aAAa,GAAsF,EAAE,CAAC;QAC5G,MAAM,GAAG,GAAG,CAAC,CAAsB,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAC3G,gBAAgB;YAChB,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;gBACzC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnD,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAA0F,EAAE,CAAC;QAC/G,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,MAAoB,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAC3F,uBAAuB;YACvB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAc,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAE,CAAC,CAAC,qBAAqB;YACtD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kBAAmB,IAAsC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA8B,EAAE,UAAmC,EAAE;IACxG,iDAAiD;IACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAmB,EAAE,OAAe,EAAE,IAA0B,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA,CAAA,CAAC,CAAC;IAC9I,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,OAAmB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7F,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE;YACxE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxG,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClH,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE;YACxE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,IAA0B,EAAE,EAAE;YACxE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,YAAY,MAAM,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC/B,IAAI,YAA8F,CAAC;QACnG,MAAM,GAAG,GAAG,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAiB,EAAE;YAChH,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,mCAAmC;YACnC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,YAAY,YAAY,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,aAAa;YACb,MAAM,MAAM,GAAa,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,YAA8F,CAAC;QACnG,MAAM,GAAG,GAAG,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAiB,EAAE;YAChH,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,mCAAmC;YACnC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,YAAY,YAAY,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,eAAe;YACf,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,aAAa,GAAG,YAAY,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,aAAa,GAAG,UAAU,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE;YAC5F,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,mCAAmC;YACnC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,YAAY,YAAY,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,aAAa;YACb,MAAM,MAAM,GAAG,IAAI,GAAG,EAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,aAAa,GAAG,YAAY,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBACjE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChB,aAAa,GAAG,UAAU,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,YAA8F,CAAC;QACnG,MAAM,GAAG,GAAG,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAiB,EAAE;YAChH,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,mCAAmC;YACnC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,YAAY,YAAY,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,cAAc;YACd,MAAM,MAAM,GAAG,IAAI,GAAG,EAAY,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,aAAa,GAAG,YAAY,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBAChE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBAClE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvB,aAAa,GAAG,WAAW,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,aAAa,GAAiG,EAAE,CAAC;QACvH,MAAM,GAAG,GAAG,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAiB,EAAE;YAChH,uBAAuB;YACvB,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,IAAI,aAAa,GAAG,MAAM,CAAC;YAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;gBACzC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;gBAChE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,aAAa,GAAG,UAAU,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnD,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAAiG,EAAE,CAAC;QACtH,MAAM,GAAG,GAAG,CAAC,MAAkB,EAAE,MAAc,EAAE,MAA2B,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,EAAiB,EAAE;YAChH,iBAAiB;YACjB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,cAAc,MAAM,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAE,CAAC;YACxD,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAgB,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAChE,CAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kBAAmB,IAAsC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IACjE,iDAAiD;IACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAqB,CAAC,CAAC;IACpE,OAAO,CAAC,KAAU,EAAc,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,0DAA0D;AAC1D,gFAAgF;AAEhF,+BAA+B;AAC/B,+CAA+C;AAC/C,6DAA6D;AAC7D,qDAAqD;AACrD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5F,MAAM,WAAW,GAAG,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;AACpE,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAI5D,MAAM,UAAU,eAAe,CAAC,IAA8B;IAC5D,iDAAiD;IACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAqB,CAAC,CAAC;IAEzE,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAElC,8BAA8B;QAC9B,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE/B,oBAAoB;QACpB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAE/C,cAAc;QACd,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACrD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,qBAAqB;IACrB,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,gBAAgB,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1I,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE3C,eAAe;IACf,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAEvE,8BAA8B;IAC9B,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,cAAc,KAAK,IAAI,CAAC,MAAM,GAAG,cAAc,mBAAmB,CAAC,CAAC;IACrI,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAID,MAAM,UAAU,eAAe,CAAC,IAA8B;IAC5D,iDAAiD;IACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAqB,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAgB,EAAE,EAAE;QAC1B,qBAAqB;QACrB,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,gBAAgB,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1I,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAChC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/D,oCAAoC;QACpC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAqB,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,CAAC,IAAqB,CAAC,SAAS,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC;QAED,eAAe;QACf,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAEvE,8BAA8B;QAC9B,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,cAAc,KAAK,IAAI,CAAC,MAAM,GAAG,cAAc,mBAAmB,CAAC,CAAC;QACrI,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}