@warlock.js/cascade 4.0.92 → 4.0.93

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 (269) hide show
  1. package/cjs/contracts/database-driver.contract.d.ts +118 -0
  2. package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
  3. package/cjs/contracts/migration-driver.contract.d.ts +14 -0
  4. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -1
  5. package/cjs/contracts/query-builder.contract.d.ts +410 -1
  6. package/cjs/contracts/query-builder.contract.d.ts.map +1 -1
  7. package/cjs/data-source/data-source-registry.d.ts +4 -0
  8. package/cjs/data-source/data-source-registry.d.ts.map +1 -1
  9. package/cjs/data-source/data-source-registry.js +7 -0
  10. package/cjs/data-source/data-source-registry.js.map +1 -1
  11. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  12. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  13. package/{esm/drivers/mongo → cjs/drivers/mongodb}/mongodb-driver.d.ts +49 -0
  14. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  15. package/cjs/drivers/{mongo → mongodb}/mongodb-driver.js +125 -8
  16. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  17. package/cjs/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
  18. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  19. package/cjs/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
  20. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  21. package/cjs/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
  22. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  23. package/cjs/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
  24. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  25. package/cjs/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
  26. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  27. package/cjs/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +220 -14
  28. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  29. package/{esm/drivers/mongo/mongo-query-operations.d.ts → cjs/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
  30. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  31. package/cjs/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
  32. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  33. package/cjs/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
  34. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  35. package/cjs/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
  36. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  37. package/cjs/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
  38. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  39. package/cjs/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
  40. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  41. package/{esm/drivers/mongo → cjs/drivers/mongodb}/types.d.ts +2 -2
  42. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  43. package/cjs/drivers/postgres/index.d.ts +16 -0
  44. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  45. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  46. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  47. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  48. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  49. package/cjs/drivers/postgres/postgres-dialect.d.ts +135 -0
  50. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  51. package/cjs/drivers/postgres/postgres-dialect.js +245 -0
  52. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  53. package/cjs/drivers/postgres/postgres-driver.d.ts +360 -0
  54. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  55. package/cjs/drivers/postgres/postgres-driver.js +763 -0
  56. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  57. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +297 -0
  58. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  59. package/cjs/drivers/postgres/postgres-migration-driver.js +578 -0
  60. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  61. package/cjs/drivers/postgres/postgres-query-builder.d.ts +824 -0
  62. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  63. package/cjs/drivers/postgres/postgres-query-builder.js +1800 -0
  64. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  65. package/cjs/drivers/postgres/postgres-query-parser.d.ts +308 -0
  66. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/postgres/postgres-query-parser.js +706 -0
  68. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  69. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  70. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  72. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/postgres/types.d.ts +142 -0
  74. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  75. package/cjs/drivers/sql/index.d.ts +10 -0
  76. package/cjs/drivers/sql/index.d.ts.map +1 -0
  77. package/cjs/drivers/sql/sql-dialect.contract.d.ts +203 -0
  78. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  79. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  80. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  81. package/cjs/index.d.ts +9 -6
  82. package/cjs/index.d.ts.map +1 -1
  83. package/cjs/index.js +1 -1
  84. package/cjs/migration/migration-runner.d.ts.map +1 -1
  85. package/cjs/migration/migration-runner.js +3 -0
  86. package/cjs/migration/migration-runner.js.map +1 -1
  87. package/cjs/model/model.d.ts +236 -1
  88. package/cjs/model/model.d.ts.map +1 -1
  89. package/cjs/model/model.js +203 -4
  90. package/cjs/model/model.js.map +1 -1
  91. package/cjs/relations/helpers.d.ts +156 -0
  92. package/cjs/relations/helpers.d.ts.map +1 -0
  93. package/cjs/relations/helpers.js +197 -0
  94. package/cjs/relations/helpers.js.map +1 -0
  95. package/cjs/relations/index.d.ts +33 -0
  96. package/cjs/relations/index.d.ts.map +1 -0
  97. package/cjs/relations/pivot-operations.d.ts +160 -0
  98. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  99. package/cjs/relations/pivot-operations.js +293 -0
  100. package/cjs/relations/pivot-operations.js.map +1 -0
  101. package/cjs/relations/relation-loader.d.ts +194 -0
  102. package/cjs/relations/relation-loader.d.ts.map +1 -0
  103. package/cjs/relations/relation-loader.js +466 -0
  104. package/cjs/relations/relation-loader.js.map +1 -0
  105. package/cjs/relations/types.d.ts +280 -0
  106. package/cjs/relations/types.d.ts.map +1 -0
  107. package/cjs/sync/model-sync-operation.js +1 -1
  108. package/cjs/sync/model-sync-operation.js.map +1 -1
  109. package/cjs/utils/connect-to-database.d.ts.map +1 -1
  110. package/cjs/utils/connect-to-database.js +15 -3
  111. package/cjs/utils/connect-to-database.js.map +1 -1
  112. package/cjs/utils/define-model.d.ts +51 -29
  113. package/cjs/utils/define-model.d.ts.map +1 -1
  114. package/cjs/validation/rules/database-model-rule.js +1 -1
  115. package/cjs/validation/rules/database-model-rule.js.map +1 -1
  116. package/esm/contracts/database-driver.contract.d.ts +118 -0
  117. package/esm/contracts/database-driver.contract.d.ts.map +1 -1
  118. package/esm/contracts/migration-driver.contract.d.ts +14 -0
  119. package/esm/contracts/migration-driver.contract.d.ts.map +1 -1
  120. package/esm/contracts/query-builder.contract.d.ts +410 -1
  121. package/esm/contracts/query-builder.contract.d.ts.map +1 -1
  122. package/esm/data-source/data-source-registry.d.ts +4 -0
  123. package/esm/data-source/data-source-registry.d.ts.map +1 -1
  124. package/esm/data-source/data-source-registry.js +7 -0
  125. package/esm/data-source/data-source-registry.js.map +1 -1
  126. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  127. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  128. package/{cjs/drivers/mongo → esm/drivers/mongodb}/mongodb-driver.d.ts +49 -0
  129. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  130. package/esm/drivers/{mongo → mongodb}/mongodb-driver.js +121 -4
  131. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  132. package/esm/drivers/{mongo/mongo-id-generator.d.ts → mongodb/mongodb-id-generator.d.ts} +1 -1
  133. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  134. package/esm/drivers/{mongo/mongo-id-generator.js → mongodb/mongodb-id-generator.js} +1 -1
  135. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  136. package/esm/drivers/{mongo/mongo-migration-driver.d.ts → mongodb/mongodb-migration-driver.d.ts} +10 -1
  137. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  138. package/esm/drivers/{mongo/mongo-migration-driver.js → mongodb/mongodb-migration-driver.js} +18 -1
  139. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  140. package/esm/drivers/{mongo/mongo-query-builder.d.ts → mongodb/mongodb-query-builder.d.ts} +172 -4
  141. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  142. package/esm/drivers/{mongo/mongo-query-builder.js → mongodb/mongodb-query-builder.js} +218 -12
  143. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  144. package/{cjs/drivers/mongo/mongo-query-operations.d.ts → esm/drivers/mongodb/mongodb-query-operations.d.ts} +16 -16
  145. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  146. package/esm/drivers/{mongo/mongo-query-operations.js → mongodb/mongodb-query-operations.js} +22 -22
  147. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  148. package/esm/drivers/{mongo/mongo-query-parser.d.ts → mongodb/mongodb-query-parser.d.ts} +2 -2
  149. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  150. package/esm/drivers/{mongo/mongo-query-parser.js → mongodb/mongodb-query-parser.js} +87 -87
  151. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  152. package/esm/drivers/{mongo/mongo-sync-adapter.d.ts → mongodb/mongodb-sync-adapter.d.ts} +2 -2
  153. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  154. package/esm/drivers/{mongo/mongo-sync-adapter.js → mongodb/mongodb-sync-adapter.js} +2 -2
  155. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  156. package/{cjs/drivers/mongo → esm/drivers/mongodb}/types.d.ts +2 -2
  157. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  158. package/esm/drivers/postgres/index.d.ts +16 -0
  159. package/esm/drivers/postgres/index.d.ts.map +1 -0
  160. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  161. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  162. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  163. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  164. package/esm/drivers/postgres/postgres-dialect.d.ts +135 -0
  165. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  166. package/esm/drivers/postgres/postgres-dialect.js +245 -0
  167. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  168. package/esm/drivers/postgres/postgres-driver.d.ts +360 -0
  169. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  170. package/esm/drivers/postgres/postgres-driver.js +763 -0
  171. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  172. package/esm/drivers/postgres/postgres-migration-driver.d.ts +297 -0
  173. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  174. package/esm/drivers/postgres/postgres-migration-driver.js +578 -0
  175. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  176. package/esm/drivers/postgres/postgres-query-builder.d.ts +824 -0
  177. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  178. package/esm/drivers/postgres/postgres-query-builder.js +1800 -0
  179. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  180. package/esm/drivers/postgres/postgres-query-parser.d.ts +308 -0
  181. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  182. package/esm/drivers/postgres/postgres-query-parser.js +706 -0
  183. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  184. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  185. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  186. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  187. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  188. package/esm/drivers/postgres/types.d.ts +142 -0
  189. package/esm/drivers/postgres/types.d.ts.map +1 -0
  190. package/esm/drivers/sql/index.d.ts +10 -0
  191. package/esm/drivers/sql/index.d.ts.map +1 -0
  192. package/esm/drivers/sql/sql-dialect.contract.d.ts +203 -0
  193. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  194. package/esm/drivers/sql/sql-types.d.ts +202 -0
  195. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  196. package/esm/index.d.ts +9 -6
  197. package/esm/index.d.ts.map +1 -1
  198. package/esm/index.js +1 -1
  199. package/esm/migration/migration-runner.d.ts.map +1 -1
  200. package/esm/migration/migration-runner.js +3 -0
  201. package/esm/migration/migration-runner.js.map +1 -1
  202. package/esm/model/model.d.ts +236 -1
  203. package/esm/model/model.d.ts.map +1 -1
  204. package/esm/model/model.js +203 -4
  205. package/esm/model/model.js.map +1 -1
  206. package/esm/relations/helpers.d.ts +156 -0
  207. package/esm/relations/helpers.d.ts.map +1 -0
  208. package/esm/relations/helpers.js +197 -0
  209. package/esm/relations/helpers.js.map +1 -0
  210. package/esm/relations/index.d.ts +33 -0
  211. package/esm/relations/index.d.ts.map +1 -0
  212. package/esm/relations/pivot-operations.d.ts +160 -0
  213. package/esm/relations/pivot-operations.d.ts.map +1 -0
  214. package/esm/relations/pivot-operations.js +293 -0
  215. package/esm/relations/pivot-operations.js.map +1 -0
  216. package/esm/relations/relation-loader.d.ts +194 -0
  217. package/esm/relations/relation-loader.d.ts.map +1 -0
  218. package/esm/relations/relation-loader.js +466 -0
  219. package/esm/relations/relation-loader.js.map +1 -0
  220. package/esm/relations/types.d.ts +280 -0
  221. package/esm/relations/types.d.ts.map +1 -0
  222. package/esm/sync/model-sync-operation.js +1 -1
  223. package/esm/sync/model-sync-operation.js.map +1 -1
  224. package/esm/utils/connect-to-database.d.ts.map +1 -1
  225. package/esm/utils/connect-to-database.js +15 -3
  226. package/esm/utils/connect-to-database.js.map +1 -1
  227. package/esm/utils/define-model.d.ts +51 -29
  228. package/esm/utils/define-model.d.ts.map +1 -1
  229. package/esm/validation/rules/database-model-rule.js +1 -1
  230. package/esm/validation/rules/database-model-rule.js.map +1 -1
  231. package/package.json +4 -4
  232. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
  233. package/cjs/drivers/mongo/mongo-id-generator.js.map +0 -1
  234. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
  235. package/cjs/drivers/mongo/mongo-migration-driver.js.map +0 -1
  236. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
  237. package/cjs/drivers/mongo/mongo-query-builder.js.map +0 -1
  238. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
  239. package/cjs/drivers/mongo/mongo-query-operations.js.map +0 -1
  240. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
  241. package/cjs/drivers/mongo/mongo-query-parser.js.map +0 -1
  242. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
  243. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +0 -1
  244. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
  245. package/cjs/drivers/mongo/mongodb-blueprint.js.map +0 -1
  246. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +0 -1
  247. package/cjs/drivers/mongo/mongodb-driver.js.map +0 -1
  248. package/cjs/drivers/mongo/types.d.ts.map +0 -1
  249. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +0 -1
  250. package/esm/drivers/mongo/mongo-id-generator.js.map +0 -1
  251. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +0 -1
  252. package/esm/drivers/mongo/mongo-migration-driver.js.map +0 -1
  253. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +0 -1
  254. package/esm/drivers/mongo/mongo-query-builder.js.map +0 -1
  255. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +0 -1
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +0 -1
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +0 -1
  258. package/esm/drivers/mongo/mongo-query-parser.js.map +0 -1
  259. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +0 -1
  260. package/esm/drivers/mongo/mongo-sync-adapter.js.map +0 -1
  261. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +0 -1
  262. package/esm/drivers/mongo/mongodb-blueprint.js.map +0 -1
  263. package/esm/drivers/mongo/mongodb-driver.d.ts.map +0 -1
  264. package/esm/drivers/mongo/mongodb-driver.js.map +0 -1
  265. package/esm/drivers/mongo/types.d.ts.map +0 -1
  266. /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
  267. /package/cjs/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
  268. /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.d.ts +0 -0
  269. /package/esm/drivers/{mongo → mongodb}/mongodb-blueprint.js +0 -0
@@ -2,8 +2,8 @@ import { GenericObject } from "@mongez/reinforcements";
2
2
  import type { Collection } from "mongodb";
3
3
  import type { CursorPaginationOptions, CursorPaginationResult, GroupByInput, HavingInput, JoinOptions, OrderDirection, PaginationOptions, PaginationResult, QueryBuilderContract, RawExpression, WhereCallback, WhereObject, WhereOperator } from "../../contracts";
4
4
  import { type DataSource } from "../../data-source/data-source";
5
- import { MongoQueryOperations } from "./mongo-query-operations";
6
- import { MongoQueryParser } from "./mongo-query-parser";
5
+ import { MongoQueryOperations } from "./mongodb-query-operations";
6
+ import { MongoQueryParser } from "./mongodb-query-parser";
7
7
  import type { Operation } from "./types";
8
8
  /**
9
9
  * MongoDB-specific query builder implementation using aggregation pipeline.
@@ -696,10 +696,104 @@ export declare class MongoQueryBuilder<T = unknown> implements QueryBuilderContr
696
696
  */
697
697
  havingRaw(expression: RawExpression, bindings?: unknown[]): this;
698
698
  /**
699
- * Performs a left outer join with another collection.
699
+ * Performs a join with another collection using MongoDB's $lookup.
700
+ *
701
+ * @param table - Target collection name
702
+ * @param localField - Field from the input documents
703
+ * @param foreignField - Field from the documents of the "from" collection
704
+ */
705
+ join(table: string, localField: string, foreignField: string): this;
706
+ /**
707
+ * Performs a join with another collection using MongoDB's $lookup.
708
+ *
700
709
  * @param options - Join configuration including table, fields, and optional pipeline
701
710
  */
702
711
  join(options: JoinOptions): this;
712
+ /**
713
+ * Performs a left outer join with another collection.
714
+ * In MongoDB, this is the standard $lookup behavior.
715
+ *
716
+ * @param table - Target collection name
717
+ * @param localField - Field from the input documents
718
+ * @param foreignField - Field from the documents of the "from" collection
719
+ */
720
+ leftJoin(table: string, localField: string, foreignField: string): this;
721
+ /**
722
+ * Performs a left outer join with another collection.
723
+ *
724
+ * @param options - Join configuration
725
+ */
726
+ leftJoin(options: JoinOptions): this;
727
+ /**
728
+ * Performs a right outer join with another collection.
729
+ *
730
+ * Note: MongoDB doesn't natively support right joins. This is implemented
731
+ * as a regular left join with a warning. For true right join semantics,
732
+ * consider reversing the collections in your query.
733
+ *
734
+ * @param table - Target collection name
735
+ * @param localField - Field from the input documents
736
+ * @param foreignField - Field from the documents of the "from" collection
737
+ */
738
+ rightJoin(table: string, localField: string, foreignField: string): this;
739
+ /**
740
+ * Performs a right outer join with another collection.
741
+ *
742
+ * @param options - Join configuration
743
+ */
744
+ rightJoin(options: JoinOptions): this;
745
+ /**
746
+ * Performs an inner join with another collection.
747
+ *
748
+ * This adds a $lookup followed by a $match to filter out documents
749
+ * where the joined array is empty.
750
+ *
751
+ * @param table - Target collection name
752
+ * @param localField - Field from the input documents
753
+ * @param foreignField - Field from the documents of the "from" collection
754
+ */
755
+ innerJoin(table: string, localField: string, foreignField: string): this;
756
+ /**
757
+ * Performs an inner join with another collection.
758
+ *
759
+ * @param options - Join configuration
760
+ */
761
+ innerJoin(options: JoinOptions): this;
762
+ /**
763
+ * Performs a full outer join with another collection.
764
+ *
765
+ * Note: MongoDB doesn't natively support full outer joins. This is implemented
766
+ * as a regular left join. For true full outer join semantics, you would need
767
+ * to use $unionWith and additional aggregation logic.
768
+ *
769
+ * @param table - Target collection name
770
+ * @param localField - Field from the input documents
771
+ * @param foreignField - Field from the documents of the "from" collection
772
+ */
773
+ fullJoin(table: string, localField: string, foreignField: string): this;
774
+ /**
775
+ * Performs a full outer join with another collection.
776
+ *
777
+ * @param options - Join configuration
778
+ */
779
+ fullJoin(options: JoinOptions): this;
780
+ /**
781
+ * Performs a cross join with another collection.
782
+ *
783
+ * This creates a cartesian product by using $lookup with empty matching criteria.
784
+ *
785
+ * @param table - Target collection name
786
+ */
787
+ crossJoin(table: string): this;
788
+ /**
789
+ * Performs a raw join using a custom aggregation pipeline.
790
+ *
791
+ * This allows full control over the $lookup stage for complex join scenarios.
792
+ *
793
+ * @param expression - Raw expression (typically a $lookup stage or pipeline)
794
+ * @param _bindings - Optional bindings (not used in MongoDB but kept for API consistency)
795
+ */
796
+ joinRaw(expression: RawExpression, _bindings?: unknown[]): this;
703
797
  /**
704
798
  * Allows direct manipulation of the native MongoDB query.
705
799
  * @param builder - Function that receives and modifies the native query
@@ -918,5 +1012,79 @@ export declare class MongoQueryBuilder<T = unknown> implements QueryBuilderContr
918
1012
  * Execute the aggregate command
919
1013
  */
920
1014
  protected execute<T extends any = any>(pipeline?: any[]): Promise<T[]>;
1015
+ /**
1016
+ * Relations to eagerly load.
1017
+ */
1018
+ eagerLoadRelations: Map<string, boolean | ((query: QueryBuilderContract) => void)>;
1019
+ /**
1020
+ * Relations to count.
1021
+ */
1022
+ countRelations: string[];
1023
+ /**
1024
+ * Relations to load via $lookup (single query).
1025
+ */
1026
+ joinRelations: Map<string, {
1027
+ alias: string;
1028
+ type: "belongsTo" | "hasOne" | "hasMany";
1029
+ }>;
1030
+ /**
1031
+ * Relation definitions from the model.
1032
+ */
1033
+ relationDefinitions?: Record<string, any>;
1034
+ /**
1035
+ * Model class reference.
1036
+ */
1037
+ modelClass?: any;
1038
+ /**
1039
+ * Load relations using MongoDB $lookup in a single aggregation query.
1040
+ *
1041
+ * Unlike `with()` which uses separate queries, `joinWith()` uses
1042
+ * $lookup to fetch related data in a single aggregation pipeline.
1043
+ *
1044
+ * @param relations - Relation names to load via $lookup
1045
+ * @returns This builder for chaining
1046
+ */
1047
+ joinWith(...relations: string[]): this;
1048
+ /**
1049
+ * Eagerly load one or more relations.
1050
+ *
1051
+ * Supported patterns:
1052
+ * - `with("posts")` - Load relation
1053
+ * - `with("posts", "comments")` - Load multiple relations
1054
+ * - `with("posts", callback)` - Load relation with constraint
1055
+ * - `with({ posts: true, comments: callback })` - Object configuration
1056
+ *
1057
+ * @param args - Relation name(s), callbacks, or configuration object
1058
+ */
1059
+ with(...args: (string | Record<string, boolean | ((query: QueryBuilderContract) => void)> | ((query: QueryBuilderContract) => void))[]): this;
1060
+ /**
1061
+ * Add a count of related models as a virtual field.
1062
+ * @param relations - Relation name(s) to count
1063
+ */
1064
+ withCount(...relations: string[]): this;
1065
+ /**
1066
+ * Filter results to only those that have related models.
1067
+ * @param relation - Relation name
1068
+ * @param operator - Optional comparison operator
1069
+ * @param count - Optional count to compare against
1070
+ */
1071
+ has(relation: string, operator?: string, count?: number): this;
1072
+ /**
1073
+ * Filter results that have related models matching specific conditions.
1074
+ * @param relation - Relation name
1075
+ * @param callback - Callback to define conditions
1076
+ */
1077
+ whereHas(relation: string, callback: (query: QueryBuilderContract) => void): this;
1078
+ /**
1079
+ * Filter results that don't have any related models.
1080
+ * @param relation - Relation name
1081
+ */
1082
+ doesntHave(relation: string): this;
1083
+ /**
1084
+ * Filter results that don't have related models matching specific conditions.
1085
+ * @param relation - Relation name
1086
+ * @param callback - Callback to define conditions
1087
+ */
1088
+ whereDoesntHave(relation: string, callback: (query: QueryBuilderContract) => void): this;
921
1089
  }
922
- //# sourceMappingURL=mongo-query-builder.d.ts.map
1090
+ //# sourceMappingURL=mongodb-query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-query-builder.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import {get}from'@mongez/reinforcements';import {databaseTransactionContext}from'../../context/database-transaction-context.js';import {dataSourceRegistry}from'../../data-source/data-source-registry.js';import {MongoQueryOperations}from'./mongo-query-operations.js';import {MongoQueryParser}from'./mongo-query-parser.js';/* eslint-disable no-case-declarations */
1
+ import {get}from'@mongez/reinforcements';import {databaseTransactionContext}from'../../context/database-transaction-context.js';import {dataSourceRegistry}from'../../data-source/data-source-registry.js';import {MongoQueryOperations}from'./mongodb-query-operations.js';import {MongoQueryParser}from'./mongodb-query-parser.js';/* eslint-disable no-case-declarations */
2
2
  /**
3
3
  * MongoDB-specific query builder implementation using aggregation pipeline.
4
4
  */
@@ -1172,20 +1172,100 @@ class MongoQueryBuilder {
1172
1172
  this.operationsHelper.addMatchOperation("havingRaw", { expression, bindings }, false);
1173
1173
  return this;
1174
1174
  }
1175
- // ============================================================================
1176
- // JOINS
1177
- // ============================================================================
1175
+ join(tableOrOptions, localField, foreignField) {
1176
+ const options = typeof tableOrOptions === "string"
1177
+ ? {
1178
+ table: tableOrOptions,
1179
+ localField: localField,
1180
+ foreignField: foreignField,
1181
+ type: "left", // MongoDB $lookup is inherently a left outer join
1182
+ }
1183
+ : tableOrOptions;
1184
+ this.operationsHelper.addLookupOperation("join", options);
1185
+ return this;
1186
+ }
1187
+ leftJoin(tableOrOptions, localField, foreignField) {
1188
+ const options = typeof tableOrOptions === "string"
1189
+ ? {
1190
+ table: tableOrOptions,
1191
+ localField: localField,
1192
+ foreignField: foreignField,
1193
+ type: "left",
1194
+ }
1195
+ : { ...tableOrOptions, type: "left" };
1196
+ this.operationsHelper.addLookupOperation("join", options);
1197
+ return this;
1198
+ }
1199
+ rightJoin(tableOrOptions, localField, foreignField) {
1200
+ // MongoDB $lookup is always a left join from the perspective of the input collection
1201
+ // Right join semantics would require reversing the query direction
1202
+ const options = typeof tableOrOptions === "string"
1203
+ ? {
1204
+ table: tableOrOptions,
1205
+ localField: localField,
1206
+ foreignField: foreignField,
1207
+ type: "right",
1208
+ }
1209
+ : { ...tableOrOptions, type: "right" };
1210
+ this.operationsHelper.addLookupOperation("join", options);
1211
+ return this;
1212
+ }
1213
+ innerJoin(tableOrOptions, localField, foreignField) {
1214
+ const options = typeof tableOrOptions === "string"
1215
+ ? {
1216
+ table: tableOrOptions,
1217
+ localField: localField,
1218
+ foreignField: foreignField,
1219
+ type: "inner",
1220
+ }
1221
+ : { ...tableOrOptions, type: "inner" };
1222
+ this.operationsHelper.addLookupOperation("join", options);
1223
+ return this;
1224
+ }
1225
+ fullJoin(tableOrOptions, localField, foreignField) {
1226
+ const options = typeof tableOrOptions === "string"
1227
+ ? {
1228
+ table: tableOrOptions,
1229
+ localField: localField,
1230
+ foreignField: foreignField,
1231
+ type: "full",
1232
+ }
1233
+ : { ...tableOrOptions, type: "full" };
1234
+ this.operationsHelper.addLookupOperation("join", options);
1235
+ return this;
1236
+ }
1178
1237
  /**
1179
- * Performs a left outer join with another collection.
1180
- * @param options - Join configuration including table, fields, and optional pipeline
1238
+ * Performs a cross join with another collection.
1239
+ *
1240
+ * This creates a cartesian product by using $lookup with empty matching criteria.
1241
+ *
1242
+ * @param table - Target collection name
1243
+ */
1244
+ crossJoin(table) {
1245
+ // Cross join: match every document in the foreign collection
1246
+ this.operationsHelper.addLookupOperation("join", {
1247
+ table,
1248
+ localField: "_crossJoinDummy",
1249
+ foreignField: "_crossJoinDummy",
1250
+ type: "cross",
1251
+ pipeline: [{ $match: {} }], // Match all documents
1252
+ });
1253
+ return this;
1254
+ }
1255
+ /**
1256
+ * Performs a raw join using a custom aggregation pipeline.
1257
+ *
1258
+ * This allows full control over the $lookup stage for complex join scenarios.
1259
+ *
1260
+ * @param expression - Raw expression (typically a $lookup stage or pipeline)
1261
+ * @param _bindings - Optional bindings (not used in MongoDB but kept for API consistency)
1181
1262
  */
1182
- join(options) {
1183
- this.operationsHelper.addLookupOperation("join", options);
1263
+ joinRaw(expression, _bindings) {
1264
+ // For MongoDB, expression should be a $lookup stage object or a simple string
1265
+ // describing the join. We add it as a raw operation.
1266
+ this.operationsHelper.addMatchOperation("raw", { builder: () => expression }, false);
1184
1267
  return this;
1185
1268
  }
1186
- // ============================================================================
1187
- // UTILITY / EXTENSIONS
1188
- // ============================================================================
1189
1269
  /**
1190
1270
  * Allows direct manipulation of the native MongoDB query.
1191
1271
  * @param builder - Function that receives and modifies the native query
@@ -1737,4 +1817,130 @@ class MongoQueryBuilder {
1737
1817
  this.operationsHelper.setOperations(this.operations);
1738
1818
  return results;
1739
1819
  }
1740
- }export{MongoQueryBuilder};//# sourceMappingURL=mongo-query-builder.js.map
1820
+ // ============================================================================
1821
+ // RELATIONS / EAGER LOADING (Stubs)
1822
+ // ============================================================================
1823
+ /**
1824
+ * Relations to eagerly load.
1825
+ */
1826
+ eagerLoadRelations = new Map();
1827
+ /**
1828
+ * Relations to count.
1829
+ */
1830
+ countRelations = [];
1831
+ /**
1832
+ * Relations to load via $lookup (single query).
1833
+ */
1834
+ joinRelations = new Map();
1835
+ /**
1836
+ * Relation definitions from the model.
1837
+ */
1838
+ relationDefinitions;
1839
+ /**
1840
+ * Model class reference.
1841
+ */
1842
+ modelClass;
1843
+ /**
1844
+ * Load relations using MongoDB $lookup in a single aggregation query.
1845
+ *
1846
+ * Unlike `with()` which uses separate queries, `joinWith()` uses
1847
+ * $lookup to fetch related data in a single aggregation pipeline.
1848
+ *
1849
+ * @param relations - Relation names to load via $lookup
1850
+ * @returns This builder for chaining
1851
+ */
1852
+ joinWith(...relations) {
1853
+ for (const relation of relations) {
1854
+ const def = this.relationDefinitions?.[relation];
1855
+ if (def) {
1856
+ this.joinRelations.set(relation, {
1857
+ alias: `_rel_${relation}`,
1858
+ type: def.type,
1859
+ });
1860
+ }
1861
+ }
1862
+ return this;
1863
+ }
1864
+ /**
1865
+ * Eagerly load one or more relations.
1866
+ *
1867
+ * Supported patterns:
1868
+ * - `with("posts")` - Load relation
1869
+ * - `with("posts", "comments")` - Load multiple relations
1870
+ * - `with("posts", callback)` - Load relation with constraint
1871
+ * - `with({ posts: true, comments: callback })` - Object configuration
1872
+ *
1873
+ * @param args - Relation name(s), callbacks, or configuration object
1874
+ */
1875
+ with(...args) {
1876
+ for (let i = 0; i < args.length; i++) {
1877
+ const arg = args[i];
1878
+ if (typeof arg === "string") {
1879
+ // Check if next argument is a callback for this relation
1880
+ const nextArg = args[i + 1];
1881
+ if (typeof nextArg === "function") {
1882
+ this.eagerLoadRelations.set(arg, nextArg);
1883
+ i++; // Skip the callback in next iteration
1884
+ }
1885
+ else {
1886
+ this.eagerLoadRelations.set(arg, true);
1887
+ }
1888
+ }
1889
+ else if (typeof arg === "object" && arg !== null) {
1890
+ for (const [key, value] of Object.entries(arg)) {
1891
+ this.eagerLoadRelations.set(key, value);
1892
+ }
1893
+ }
1894
+ // Functions not preceded by a string are ignored (invalid usage)
1895
+ }
1896
+ return this;
1897
+ }
1898
+ /**
1899
+ * Add a count of related models as a virtual field.
1900
+ * @param relations - Relation name(s) to count
1901
+ */
1902
+ withCount(...relations) {
1903
+ this.countRelations.push(...relations);
1904
+ return this;
1905
+ }
1906
+ /**
1907
+ * Filter results to only those that have related models.
1908
+ * @param relation - Relation name
1909
+ * @param operator - Optional comparison operator
1910
+ * @param count - Optional count to compare against
1911
+ */
1912
+ has(relation, operator, count) {
1913
+ // TODO: Implement has() using $lookup and $match
1914
+ this.operationsHelper.addMatchOperation("has", { relation, operator, count });
1915
+ return this;
1916
+ }
1917
+ /**
1918
+ * Filter results that have related models matching specific conditions.
1919
+ * @param relation - Relation name
1920
+ * @param callback - Callback to define conditions
1921
+ */
1922
+ whereHas(relation, callback) {
1923
+ // TODO: Implement whereHas() using $lookup with pipeline
1924
+ this.operationsHelper.addMatchOperation("whereHas", { relation, callback });
1925
+ return this;
1926
+ }
1927
+ /**
1928
+ * Filter results that don't have any related models.
1929
+ * @param relation - Relation name
1930
+ */
1931
+ doesntHave(relation) {
1932
+ // TODO: Implement doesntHave() using $lookup and $match
1933
+ this.operationsHelper.addMatchOperation("doesntHave", { relation });
1934
+ return this;
1935
+ }
1936
+ /**
1937
+ * Filter results that don't have related models matching specific conditions.
1938
+ * @param relation - Relation name
1939
+ * @param callback - Callback to define conditions
1940
+ */
1941
+ whereDoesntHave(relation, callback) {
1942
+ // TODO: Implement whereDoesntHave() using $lookup with pipeline
1943
+ this.operationsHelper.addMatchOperation("whereDoesntHave", { relation, callback });
1944
+ return this;
1945
+ }
1946
+ }export{MongoQueryBuilder};//# sourceMappingURL=mongodb-query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-query-builder.js","sources":["../../../src/drivers/mongodb/mongodb-query-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"qUAAA;AA0BA;;AAEG;MACU,iBAAiB,CAAA;AAkCV,IAAA,KAAA,CAAA;AAjClB;;;AAGG;IACI,UAAU,GAAgB,EAAE,CAAC;AAEpC;;AAEG;AACa,IAAA,UAAU,CAAa;AAEvC;;AAEG;AACO,IAAA,iBAAiB,CAAwB;AAE5C,IAAA,eAAe,CAAqC;AAEnD,IAAA,gBAAgB,CAAyC;AACzD,IAAA,iBAAiB,CAA0D;AAC3E,IAAA,eAAe,CAA0D;;AAG1E,IAAA,mBAAmB,CAAoB;AACvC,IAAA,oBAAoB,CAAoB;AACxC,IAAA,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,aAAa,GAAG,KAAK,CAAC;AAE7B;;;AAGG;IACH,WACkB,CAAA,KAAa,EAC7B,UAAuB,EAAA;QADP,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,GAAG,EAAG,CAAC;;KAE3D;AAED;;;AAGG;AACH,IAAA,IAAc,gBAAgB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;AAED;;AAEG;AACH,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAuB,CAAC;QAEvD,OAAO,MAAM,CAAC,QAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChD;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,QAA2C,EAAA;AACxD,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AAChC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,QAA+C,EAAA;AAC/D,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACjC,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACpC,SAAC,CAAC;KACH;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,QAAgE,EAAA;AACjF,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AAClC,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACrC,SAAC,CAAC;KACH;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,QAAgE,EAAA;AAC/E,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AAChC,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AACnC,SAAC,CAAC;KACH;AAED;;AAEG;IACI,kBAAkB,CAAC,GAAG,UAAoB,EAAA;AAC/C,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,mBAAmB,GAAA;QACxB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAI;AAC3C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,SAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,yBAAA,CAA2B,CAAC,CAAC;AAC9C,SAAA;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,CAAA,WAAA,CAAa,CAAC,CAAC;AACzD,SAAA;;QAGD,aAAa,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACK,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,aAAa,EAAE;YACnD,OAAO;AACR,SAAA;QAED,MAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;;YAEnE,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvC,SAAS;AACV,aAAA;;AAGD,YAAA,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvE,QAAQ,CAAC,WAAW,CAAC,CAAC;;YAGtB,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAC1C,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAgBM,KAAK,CAAC,GAAG,IAAW,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC;KACb;IAYM,OAAO,CAAC,GAAG,IAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,QAAQ,CAAC,UAAyB,EAAE,QAAoB,EAAA;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC3D;AAED;;;;AAIG;IACI,UAAU,CAAC,UAAyB,EAAE,QAAoB,EAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC7D;;;;AAMD;;;;;AAKG;AACI,IAAA,WAAW,CAAC,KAAa,EAAE,QAAuB,EAAE,MAAc,EAAA;AACvE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,EAAE;YACrD,KAAK;YACL,QAAQ;YACR,MAAM;AACP,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,aAAa,CAAC,KAAa,EAAE,QAAuB,EAAE,MAAc,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,EAAE;YACvD,KAAK;YACL,QAAQ;YACR,MAAM;AACP,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,YAAY,CACjB,WAA0E,EAAA;QAE1E,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,mBAAmB,CAAC,KAAa,EAAE,WAAmB,EAAE,WAAmB,EAAA;AAChF,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;YAC7D,KAAK;YACL,WAAW;YACX,WAAW;AACZ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;AAIG;IACI,SAAS,CAAC,KAAa,EAAE,KAAoB,EAAA;AAClD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,KAAa,EAAE,KAAoB,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,KAAa,EAAE,KAAoB,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,cAAc,CAAC,KAAa,EAAE,KAAoB,EAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,SAAS,CAAC,KAAa,EAAE,KAAa,EAAA;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,UAAU,CAAC,KAAa,EAAE,KAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,SAAS,CAAC,KAAa,EAAE,KAAa,EAAA;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;AAIG;IACI,iBAAiB,CAAC,IAAY,EAAE,KAAc,EAAA;AACnD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE;YAC3D,IAAI;YACJ,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,sBAAsB,CAAC,IAAY,EAAE,KAAc,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;YAChE,IAAI;YACJ,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACtC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,eAAe,CAAC,IAAY,EAAE,QAAuB,EAAE,KAAa,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,IAAI;YACJ,QAAQ;YACR,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAClC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACnC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,KAAa,EAAE,QAAuB,EAAE,KAAa,EAAA;AAC3E,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YAC1D,KAAK;YACL,QAAQ;YACR,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;AAGG;AACI,IAAA,OAAO,CAAC,KAAsB,EAAA;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAChC;AAED;;;AAGG;AACI,IAAA,QAAQ,CAAC,MAA8B,EAAA;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACnC;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,KAAa,EAAA;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAClC;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,KAAa,EAAA;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAClC;AAED;;;;AAIG;IACI,aAAa,CAAC,MAAyB,EAAE,KAAa,EAAA;QAC3D,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;AAC7F,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,MAAyB,EAAE,KAAa,EAAA;QAC7D,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;AAC7F,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,WAAW,CAAC,KAAa,EAAE,KAAa,EAAA;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACzC;AAED;;;AAGG;AACI,IAAA,QAAQ,CAAC,QAA0B,EAAA;QACxC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,QAA0B,EAAA;QAC1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;AAIG;IACI,OAAO,CAAC,KAAa,EAAE,MAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,UAAU,CAAC,KAAa,EAAE,MAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,YAAY,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,YAAY,CAAC,KAAa,EAAE,KAAyB,EAAA;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,KAAa,EAAE,KAAyB,EAAA;AAC7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;AAIG;IACI,SAAS,CAAC,KAAa,EAAE,OAAwB,EAAA;AACtD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,YAAY,CAAC,KAAa,EAAE,OAAwB,EAAA;AACzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,KAAa,EAAE,KAAsB,EAAA;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACzD,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,kBAAkB,CAAC,KAAa,EAAE,KAAsB,EAAA;AAC7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;YAC5D,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,aAAa,CAAC,KAAa,EAAE,KAAsB,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,gBAAgB,CAAC,KAAa,EAAE,KAAsB,EAAA;AAC3D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YAC1D,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,gBAAgB,CAAC,KAAa,EAAE,KAAmB,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YAC1D,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,mBAAmB,CAAC,KAAa,EAAE,KAAmB,EAAA;AAC3D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;YAC7D,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAaM,IAAA,WAAW,CAAC,KAAgC,EAAA;AACjD,QAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,EAAE;AACtD,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC;KACb;AASM,IAAA,cAAc,CAAC,KAAgC,EAAA;AACpD,QAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;AACzD,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;AACxD,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAUM,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACnD,KAAK;AACL,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACnD,KAAK;AACL,gBAAA,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;AAIG;IACI,UAAU,CAAC,KAAa,EAAE,OAAqB,EAAA;AACpD,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;;;AAKG;AACI,IAAA,kBAAkB,CAAC,KAAa,EAAE,KAAc,EAAE,GAAY,EAAA;AACnE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;YAC5D,KAAK;YACL,KAAK;YACL,GAAG;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,qBAAqB,CAAC,KAAa,EAAE,KAAc,EAAE,GAAY,EAAA;AACtE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;YAC/D,KAAK;YACL,KAAK;YACL,GAAG;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,oBAAoB,CAAC,KAAa,EAAE,KAAc,EAAE,GAAY,EAAA;AACrE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE;YAC9D,KAAK;YACL,KAAK;YACL,GAAG;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,wBAAwB,CAAC,KAAa,EAAE,KAAc,EAAE,GAAY,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,0BAA0B,EAAE;YAClE,KAAK;YACL,KAAK;YACL,GAAG;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACO,cAAc,CAAC,MAA2B,EAAE,IAAW,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;;AAEjC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAG,EAAA,MAAM,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,aAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAG,EAAA,MAAM,CAAS,OAAA,CAAA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC9C,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACf,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC9C,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACd,gBAAA,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACf,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED;;;;;AAKG;AACO,IAAA,WAAW,CACnB,IAA+B,EAC/B,UAAyB,EACzB,QAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;AACO,IAAA,qBAAqB,CAAC,IAAW,EAAA;;AAKzC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;;AAGpB,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAClD,gBAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAC5B,aAAA;;AAGD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,gBAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxB,aAAA;;AAGD,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,gBAAA,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;;AAGD,QAAA,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;KAClE;IAcM,MAAM,CAAC,GAAG,IAAS,EAAA;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;IACI,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;KACxC;AAED;;;;AAIG;IACI,SAAS,CAAC,UAAyB,EAAE,QAAoB,EAAA;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACrD,UAAU;YACV,QAAQ;AACT,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,aAAa,CAClB,WAIE,EAAA;AAEF,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;AACpF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,SAAS,CAAC,UAAyB,EAAE,KAAa,EAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACrD,UAAU;YACV,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,YAAY,CAAC,UAAyB,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,cAAc,EAAE;YACxD,UAAU;YACV,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,eAAe,CACpB,KAAa,EACb,SAAqE,EACrE,KAAa,EAAA;AAEb,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,iBAAiB,EAAE;YAC3D,KAAK;YACL,SAAS;YACT,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,YAAY,CAAC,KAAa,EAAE,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,cAAc,EAAE;YACxD,KAAK;YACL,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,WAAW,CAAC,KAAa,EAAE,KAAa,EAAA;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,UAAU,CACf,KAAoE,EACpE,SAAkC,EAClC,KAAa,EAAA;AAEb,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE;YACtD,KAAK;YACL,SAAS;YACT,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;AAMG;AACI,IAAA,UAAU,CACf,SAAwB,EACxB,SAAkC,EAClC,SAAkC,EAClC,KAAa,EAAA;AAEb,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE;YACtD,SAAS;YACT,SAAS;YACT,SAAS;YACT,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,sBAAsB,CAAC,QAAuD,EAAA;AACnF,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,wBAAwB,EAAE;YAClE,QAAQ;AACT,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,UAAU,CAAC,IAAY,EAAE,KAAc,EAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,aAAa,CAAC,IAAY,EAAE,UAAyB,EAAE,KAAa,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,eAAe,EAAE;YACzD,IAAI;YACJ,UAAU;YACV,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,YAAY,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,YAAY,CAAC,MAAqC,EAAE,KAAa,EAAA;AACtE,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,cAAc,EAAE;YACxD,MAAM;YACN,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,cAAc,CAAC,MAAqC,EAAE,KAAa,EAAA;AACxE,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE;YAC1D,MAAM;YACN,KAAK;AACN,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,YAAY,CAAC,IAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC;KACb;IAQM,QAAQ,CAAC,GAAG,IAA8B,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,cAAc,CAAC,MAA0B,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;IAQM,SAAS,CAAC,GAAG,IAA8B,EAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,WAAW,GAAA;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;AAED;;AAEG;IACI,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;AAuBM,IAAA,OAAO,CACZ,aAAsD,EACtD,SAAA,GAA4B,KAAK,EAAA;AAEjC,QAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;;AAErC,YAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAChD,gBAAA,KAAK,EAAE,aAAa;gBACpB,SAAS;AACV,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;;AAEL,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACxD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,EAAE;oBAChD,KAAK;AACL,oBAAA,SAAS,EAAE,GAAG;AACf,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpC;AAED;;;;AAIG;IACI,UAAU,CAAC,UAAyB,EAAE,QAAoB,EAAA;AAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE;YACnD,UAAU;YACV,QAAQ;AACT,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,aAAa,CAAC,QAAgB,IAAI,EAAA;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;IACI,MAAM,CAAC,SAAiB,WAAW,EAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3C;AAED;;;AAGG;IACI,MAAM,CAAC,SAAiB,WAAW,EAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACpC;;;;AAMD;;;AAGG;AACI,IAAA,KAAK,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,IAAI,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,MAAM,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAED;;;AAGG;AACI,IAAA,IAAI,CAAC,KAAa,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED;;;;AAIG;IACI,MAAM,CAAC,KAAe,EAAE,MAAgB,EAAA;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC;KACb;IA4BM,OAAO,CAAC,MAAoB,EAAE,UAA0C,EAAA;AAC7E,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACrC,uBAAuB,EACvB,EAAE,MAAM,EAAE,UAAU,EAAE,EACtB,KAAK,CACN,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AACvE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,UAAU,CAAC,UAAyB,EAAE,QAAoB,EAAA;AAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;AACvF,QAAA,OAAO,IAAI,CAAC;KACb;IAYM,MAAM,CAAC,GAAG,IAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7E,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACrC,QAAQ,EACR,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EACjD,KAAK,CACN,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACrC,QAAQ,EACR,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EACrD,KAAK,CACN,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,SAAS,CAAC,UAAyB,EAAE,QAAoB,EAAA;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;AACtF,QAAA,OAAO,IAAI,CAAC;KACb;AAoBM,IAAA,IAAI,CACT,cAAoC,EACpC,UAAmB,EACnB,YAAqB,EAAA;AAErB,QAAA,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,QAAQ;AAChC,cAAE;AACE,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,UAAU,EAAE,UAAW;AACvB,gBAAA,YAAY,EAAE,YAAa;gBAC3B,IAAI,EAAE,MAAM;AACb,aAAA;cACD,cAAc,CAAC;QAErB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC;KACb;AAiBM,IAAA,QAAQ,CACb,cAAoC,EACpC,UAAmB,EACnB,YAAqB,EAAA;AAErB,QAAA,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,QAAQ;AAChC,cAAE;AACE,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,UAAU,EAAE,UAAW;AACvB,gBAAA,YAAY,EAAE,YAAa;AAC3B,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA;cACD,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAE1C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC;KACb;AAoBM,IAAA,SAAS,CACd,cAAoC,EACpC,UAAmB,EACnB,YAAqB,EAAA;;;AAIrB,QAAA,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,QAAQ;AAChC,cAAE;AACE,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,UAAU,EAAE,UAAW;AACvB,gBAAA,YAAY,EAAE,YAAa;AAC3B,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;cACD,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAE3C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC;KACb;AAmBM,IAAA,SAAS,CACd,cAAoC,EACpC,UAAmB,EACnB,YAAqB,EAAA;AAErB,QAAA,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,QAAQ;AAChC,cAAE;AACE,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,UAAU,EAAE,UAAW;AACvB,gBAAA,YAAY,EAAE,YAAa;AAC3B,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA;cACD,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAE3C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC;KACb;AAoBM,IAAA,QAAQ,CACb,cAAoC,EACpC,UAAmB,EACnB,YAAqB,EAAA;AAErB,QAAA,MAAM,OAAO,GACX,OAAO,cAAc,KAAK,QAAQ;AAChC,cAAE;AACE,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,UAAU,EAAE,UAAW;AACvB,gBAAA,YAAY,EAAE,YAAa;AAC3B,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA;cACD,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAE1C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;AAMG;AACI,IAAA,SAAS,CAAC,KAAa,EAAA;;AAE5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC/C,KAAK;AACL,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC3B,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;AAOG;IACI,OAAO,CAAC,UAAyB,EAAE,SAAqB,EAAA;;;AAG7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;AACrF,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,GAAG,CAAC,OAAqC,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,MAAM,CAAI,SAAiB,EAAE,GAAG,KAAgB,EAAA;;AAErD,QAAA,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAA,uCAAA,CAAyC,CAAC,CAAC;KACnF;AAED;;;AAGG;IACI,KAAK,GAAA;AACV,QAAA,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAS,CAAC;QAC7E,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;AAG5D,QAAA,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACtD,QAAA,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxD,MAAM,CAAC,oBAAoB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACjE,QAAA,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAEzC,QAAA,MAAc,CAAC,kBAAkB,GAAI,IAAY,CAAC,kBAAkB,CAAC;AACtE,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;;AAGG;AACI,IAAA,GAAG,CAAC,QAAiC,EAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;;AAQG;AACI,IAAA,IAAI,CACT,SAAsB,EACtB,QAA2C,EAC3C,SAAmC,EAAA;AAEnC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,QAAQ,CAAC,IAAI,EAAE,SAAc,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA,IAAI,SAAS,EAAE;YACpB,SAAS,CAAC,IAAI,CAAC,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;;;AAMD;;;AAGG;AACI,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;QAG7B,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,SAAA;;AAGD,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAU,CAAC;;QAGhD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AACvC,gBAAA,KAAK,EAAE,IAAI;gBACX,eAAe,EAAE,IAAI,CAAC,eAAe;AACtC,aAAA,CAAC,CAAC;AACJ,SAAA;;AAGD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;cACxC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;cACpC,UAAU,CAAC;;QAGf,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;AAC1C,gBAAA,KAAK,EAAE,IAAI;gBACX,UAAU;AACV,gBAAA,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AACjC,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,eAAe,CAAC;KACxB;AAED;;;AAGG;AACI,IAAA,MAAM,QAAQ,GAAA;AACnB,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;KAChD;AAED;;;AAGG;AACI,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAU,CAAC;AAClD,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KAC/C;AAED;;;AAGG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAU,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACxD,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;IACI,IAAI,CAAa,QAAgB,WAAW,EAAA;AACjD,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5B,QAAA,OAAO,IAAI,CAAC,KAAK,EAAU,CAAC;KAC7B;AAED;;;AAGG;AACI,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoB,QAAQ,CAAC,CAAC;AAEhE,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;KAClD;AAED;;;;AAIG;IACI,MAAM,GAAG,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,UAAU,CAAC;AACd,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAI,CAAA,EAAA,KAAK,EAAE,EAAE;AAC7B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AAEjC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAqB,CAAC;AAExD,QAAA,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;KAC3B;AAED;;;;AAIG;IACI,MAAM,GAAG,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,UAAU,CAAC;AACd,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAI,CAAA,EAAA,KAAK,EAAE,EAAE;AAC/B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAuB,GAAG,OAAO,IAAI,CAAC,CAAC;KACnE;AAED;;;;AAIG;IACI,MAAM,GAAG,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,UAAU,CAAC;AACd,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAI,CAAA,EAAA,KAAK,EAAE,EAAE;AAC/B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAuB,GAAG,OAAO,IAAI,CAAC,CAAC;KACnE;AAED;;;;AAIG;IACI,MAAM,GAAG,CAAC,KAAa,EAAA;QAC5B,IAAI,CAAC,UAAU,CAAC;AACd,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAI,CAAA,EAAA,KAAK,EAAE,EAAE;AAC/B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAuB,GAAG,OAAO,IAAI,CAAC,CAAC;KACnE;AAED;;;;AAIG;AACI,IAAA,MAAM,QAAQ,CAAc,KAAa,EAAE,UAAU,GAAG,IAAI,EAAA;AACjE,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;AAGpB,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AAEjC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAc,CAAC;AAC7C,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;KACtC;AAED;;;;AAIG;AACI,IAAA,MAAM,aAAa,CAAC,KAAa,EAAE,UAAU,GAAG,IAAI,EAAA;AACzD,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;KAC1C;AAED;;;;AAIG;IACI,MAAM,KAAK,CAAc,KAAa,EAAA;;AAE3C,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;;AAGjC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,EAEnD,CAAC;QAEL,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,CAAC,CAAC;KAC/E;AAED;;;;AAIG;IACI,MAAM,KAAK,CAAc,KAAa,EAAA;;AAE3C,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;AAEjC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,EAAgB,CAAC;AACzE,QAAA,OAAO,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;KAC9B;AAED;;;;AAIG;IACI,MAAM,MAAM,CAAC,MAAsB,EAAA;AACxC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,KAAK,GAAG,CAAC,CAAC;KAClB;AAED;;;;AAIG;IACI,MAAM,SAAS,CAAC,MAAsB,EAAA;QAC3C,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACrC;AAED;;;;;AAKG;AACI,IAAA,MAAM,SAAS,CAAC,KAAa,EAAE,SAAiB,CAAC,EAAA;AACtD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACnD,MAAM,EACN;AACE,YAAA,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,EAAE;SAC1B,EACD;AACE,YAAA,cAAc,EAAE,OAAO;AACxB,SAAA,CACF,CAAC;QAEF,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;KAC9B;AAED;;;;;AAKG;AACI,IAAA,MAAM,SAAS,CAAC,KAAa,EAAE,SAAiB,CAAC,EAAA;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;KACvC;AAED;;;;;AAKG;AACI,IAAA,MAAM,aAAa,CAAC,KAAa,EAAE,SAAiB,CAAC,EAAA;AAC1D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAElC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACzE,YAAA,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,EAAE;AAC1B,SAAA,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,aAAa,CAAC;KAC7B;AAED;;;;;AAKG;AACI,IAAA,MAAM,aAAa,CAAC,KAAa,EAAE,SAAiB,CAAC,EAAA;QAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;KAC3C;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,GAAA;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpE;AAED;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAChE;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,MAA+B,EAAA;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACzE,YAAA,IAAI,EAAE,MAAM;AACb,SAAA,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,aAAa,CAAC;KAC7B;AAED;;AAEG;AACI,IAAA,MAAM,KAAK,CAAC,GAAG,MAAgB,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,KAAK,KAAI;AACb,gBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACf,gBAAA,OAAO,GAAG,CAAC;aACZ,EACD,EAA8B,CAC/B;AACF,SAAA,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,aAAa,CAAC;KAC7B;;;;AAMD;;;;;AAKG;AACI,IAAA,MAAM,KAAK,CAChB,IAAY,EACZ,QAAqF,EAAA;QAErF,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,OAAO,OAAO,EAAE;AACd,YAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;AAC7B,iBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACvB,KAAK,CAAC,IAAI,CAAC;AACX,iBAAA,GAAG,EAAE,CAAC;AAET,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,MAAM;AACP,aAAA;YAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAEzD,IAAI,cAAc,KAAK,KAAK,EAAE;gBAC5B,MAAM;AACP,aAAA;AAED,YAAA,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAChC,YAAA,UAAU,EAAE,CAAC;AACd,SAAA;KACF;AAED;;;;AAIG;IACI,MAAM,QAAQ,CAAC,OAA0B,EAAA;AAC9C,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;AAC/B,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAEhC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE;AACb,SAAA,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;AACJ,YAAA,UAAU,EAAE;gBACV,KAAK;gBACL,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,aAAA;SACF,CAAC;KACH;AAED;;;;AAIG;IACI,MAAM,cAAc,CACzB,OAAgC,EAAA;AAEhC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC5B,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;AACvC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;;AAG9C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,QAAQ,GAAG,SAAS,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtC,SAAA;;AAGD,QAAA,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;;AAG/B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAK,CAAC;AAErD,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;;QAGvD,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,SAAA;;AAGD,QAAA,IAAI,UAA+B,CAAC;AACpC,QAAA,IAAI,UAA+B,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,MAAM,SAAS,GAAI,IAAI,CAAC,CAAC,CAAS,CAAC,MAAM,CAAC,CAAC;AAC3C,YAAA,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAS,CAAC,MAAM,CAAC,CAAC;YAExD,IAAI,SAAS,KAAK,MAAM,EAAE;;gBAExB,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;;AAG5C,gBAAA,IAAI,MAAM,EAAE;oBACV,OAAO,GAAG,IAAI,CAAC;oBACf,UAAU,GAAG,SAAS,CAAC;AACxB,iBAAA;AACF,aAAA;AAAM,iBAAA;;gBAEL,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;gBAC7C,OAAO,GAAG,OAAO,CAAC;;AAGlB,gBAAA,IAAI,MAAM,EAAE;oBACV,UAAU,GAAG,QAAQ,CAAC;AACvB,iBAAA;AACF,aAAA;AACF,SAAA;QAED,OAAO;YACL,IAAI;AACJ,YAAA,UAAU,EAAE;gBACV,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,UAAU;AACX,aAAA;SACF,CAAC;KACH;;;;AAMD;;;AAGG;IACI,KAAK,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;AAED;;;AAGG;IACI,MAAM,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;KAC1C;AAED;;;AAGG;AACI,IAAA,MAAM,OAAO,GAAA;;AAElB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACtC,QAAA,MAAM,OAAO,GAAG,0BAA0B,CAAC,UAAU,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEzE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAc,CAAC,CAAC,OAAO,EAAE,CAAC;KACtE;;;;AAMD;;AAEG;IACO,SAAS,GAAA;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,gBAAgB,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,gBAAgB,EAAE,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3E,SAAA,CAAC,CAAC;KACJ;AAED;;;AAGG;IACO,aAAa,GAAA;AACrB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAEhC,QAAA,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;KACvB;AAED;;;;AAIG;IACO,WAAW,GAAA;;AAEnB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AAE9E,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;AACX,SAAA;;AAGD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACtC,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;AAE1D,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACnC,OAAO,UAAU,CAAC,MAAM,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED;;AAEG;IACO,MAAM,OAAO,CAAsB,QAAgB,EAAA;QAC3D,MAAM,mBAAmB,GAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7D,QAAA,MAAM,OAAO,GAAG,0BAA0B,CAAC,UAAU,EAA+B,CAAC;AACrF,QAAA,MAAM,OAAO,GAAqB,EAAE,OAAO,EAAE,CAAC;;AAG9C,QAAA,MAAM,OAAO,IAAI,MAAM,IAAI,CAAC,UAAU;AACnC,aAAA,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC;aACvC,OAAO,EAAE,CAAQ,CAAC;;;AAKrB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAErD,QAAA,OAAO,OAAO,CAAC;KAChB;;;;AAMD;;AAEG;AACI,IAAA,kBAAkB,GACvB,IAAI,GAAG,EAAE,CAAC;AAEZ;;AAEG;IACI,cAAc,GAAa,EAAE,CAAC;AAErC;;AAEG;AACI,IAAA,aAAa,GAClB,IAAI,GAAG,EAAE,CAAC;AAEZ;;AAEG;AACI,IAAA,mBAAmB,CAAuB;AAEjD;;AAEG;AACI,IAAA,UAAU,CAAO;AAExB;;;;;;;;AAQG;IACI,QAAQ,CAAC,GAAG,SAAmB,EAAA;AACpC,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC;AACjD,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC/B,KAAK,EAAE,CAAQ,KAAA,EAAA,QAAQ,CAAE,CAAA;oBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;AACf,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;;;;AAUG;IACI,IAAI,CACT,GAAG,IAIA,EAAA;AAEH,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;;gBAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,gBAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;oBACjC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC1C,CAAC,EAAE,CAAC;AACL,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,iBAAA;AACF,aAAA;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAClD,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC9C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzC,iBAAA;AACF,aAAA;;AAEF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;IACI,SAAS,CAAC,GAAG,SAAmB,EAAA;QACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AACvC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;AAKG;AACI,IAAA,GAAG,CAAC,QAAgB,EAAE,QAAiB,EAAE,KAAc,EAAA;;AAE5D,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,QAAQ,CAAC,QAAgB,EAAE,QAA+C,EAAA;;AAE/E,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,QAAgB,EAAA;;QAEhC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpE,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;IACI,eAAe,CAAC,QAAgB,EAAE,QAA+C,EAAA;;AAEtF,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnF,QAAA,OAAO,IAAI,CAAC;KACb;AACF"}