rawsql-ts 0.14.4 → 0.16.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 (37) hide show
  1. package/README.md +7 -3
  2. package/dist/index.js +6 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/models/Clause.js +2 -1
  5. package/dist/models/Clause.js.map +1 -1
  6. package/dist/parsers/CreateTableParser.js +5 -1
  7. package/dist/parsers/CreateTableParser.js.map +1 -1
  8. package/dist/parsers/SourceParser.js +6 -1
  9. package/dist/parsers/SourceParser.js.map +1 -1
  10. package/dist/parsers/SqlPrintTokenParser.js +4 -0
  11. package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
  12. package/dist/src/index.d.ts +1 -0
  13. package/dist/src/models/Clause.d.ts +6 -1
  14. package/dist/src/parsers/CreateTableParser.d.ts +1 -0
  15. package/dist/src/transformers/DynamicQueryBuilder.d.ts +75 -11
  16. package/dist/src/transformers/ExistsPredicateInjector.d.ts +33 -0
  17. package/dist/src/transformers/InsertResultSelectConverter.d.ts +1 -0
  18. package/dist/src/transformers/OptimizeUnusedLeftJoins.d.ts +33 -0
  19. package/dist/src/transformers/SqlParamInjector.d.ts +1 -1
  20. package/dist/src/utils/serialTypeNormalization.d.ts +15 -0
  21. package/dist/tokenReaders/CommandTokenReader.js +1 -0
  22. package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
  23. package/dist/transformers/DynamicQueryBuilder.js +204 -9
  24. package/dist/transformers/DynamicQueryBuilder.js.map +1 -1
  25. package/dist/transformers/ExistsPredicateInjector.js +297 -0
  26. package/dist/transformers/ExistsPredicateInjector.js.map +1 -0
  27. package/dist/transformers/FixtureCteBuilder.js +5 -2
  28. package/dist/transformers/FixtureCteBuilder.js.map +1 -1
  29. package/dist/transformers/InsertResultSelectConverter.js +28 -7
  30. package/dist/transformers/InsertResultSelectConverter.js.map +1 -1
  31. package/dist/transformers/OptimizeUnusedLeftJoins.js +340 -0
  32. package/dist/transformers/OptimizeUnusedLeftJoins.js.map +1 -0
  33. package/dist/transformers/SqlParamInjector.js +6 -9
  34. package/dist/transformers/SqlParamInjector.js.map +1 -1
  35. package/dist/utils/serialTypeNormalization.js +59 -0
  36. package/dist/utils/serialTypeNormalization.js.map +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.optimizeUnusedCtesToFixedPoint = exports.optimizeUnusedCtes = exports.optimizeUnusedLeftJoinsToFixedPoint = exports.optimizeUnusedLeftJoins = void 0;
4
+ const ValueComponent_1 = require("../models/ValueComponent");
5
+ const SelectQuery_1 = require("../models/SelectQuery");
6
+ const ColumnReferenceCollector_1 = require("./ColumnReferenceCollector");
7
+ const CTETableReferenceCollector_1 = require("./CTETableReferenceCollector");
8
+ const Clause_1 = require("../models/Clause");
9
+ const NAMESPACE_SEPARATOR = '|';
10
+ const normalizeIdentifier = (input) => {
11
+ var _a;
12
+ const value = (_a = input === null || input === void 0 ? void 0 : input.trim()) !== null && _a !== void 0 ? _a : '';
13
+ return value === '' ? '' : value.toLowerCase();
14
+ };
15
+ const normalizeColumnSetKey = (columns) => {
16
+ return columns
17
+ .map(column => normalizeIdentifier(column))
18
+ .filter(Boolean)
19
+ .sort()
20
+ .join(NAMESPACE_SEPARATOR);
21
+ };
22
+ const buildSchemaMap = (schemaInfo) => {
23
+ const map = new Map();
24
+ // Normalize table names and precompute reusable sets for column lookups.
25
+ for (const table of schemaInfo) {
26
+ const normalizedName = normalizeIdentifier(table.name);
27
+ if (!normalizedName) {
28
+ continue;
29
+ }
30
+ const columnSet = new Set(table.columns.map(normalizeIdentifier).filter(Boolean));
31
+ const uniqueSetKeys = new Set();
32
+ for (const uniqueKey of table.uniqueKeys) {
33
+ const normalizedKey = normalizeColumnSetKey(uniqueKey);
34
+ if (normalizedKey) {
35
+ uniqueSetKeys.add(normalizedKey);
36
+ }
37
+ }
38
+ if (columnSet.size === 0 && uniqueSetKeys.size === 0) {
39
+ continue;
40
+ }
41
+ map.set(normalizedName, { columnSet, uniqueSetKeys });
42
+ }
43
+ return map;
44
+ };
45
+ const collectReferenceMetadata = (query) => {
46
+ var _a, _b, _c;
47
+ const collector = new ColumnReferenceCollector_1.ColumnReferenceCollector();
48
+ const namespaceCounts = new Map();
49
+ const unqualifiedColumns = new Set();
50
+ // Track every column reference in the query so we can detect aliases used outside their JOINs.
51
+ for (const ref of collector.collect(query)) {
52
+ const namespace = normalizeIdentifier(ref.getNamespace());
53
+ if (namespace) {
54
+ namespaceCounts.set(namespace, ((_a = namespaceCounts.get(namespace)) !== null && _a !== void 0 ? _a : 0) + 1);
55
+ }
56
+ else {
57
+ const column = normalizeIdentifier(ref.column.name);
58
+ if (column) {
59
+ unqualifiedColumns.add(column);
60
+ }
61
+ }
62
+ }
63
+ const joinConditionCounts = new Map();
64
+ if ((_b = query.fromClause) === null || _b === void 0 ? void 0 : _b.joins) {
65
+ for (const join of query.fromClause.joins) {
66
+ const counts = new Map();
67
+ if (join.condition && join.condition instanceof Clause_1.JoinOnClause) {
68
+ const joinCollector = new ColumnReferenceCollector_1.ColumnReferenceCollector();
69
+ for (const ref of joinCollector.collect(join.condition.condition)) {
70
+ const namespace = normalizeIdentifier(ref.getNamespace());
71
+ if (namespace) {
72
+ counts.set(namespace, ((_c = counts.get(namespace)) !== null && _c !== void 0 ? _c : 0) + 1);
73
+ }
74
+ }
75
+ }
76
+ joinConditionCounts.set(join, counts);
77
+ }
78
+ }
79
+ return { namespaceCounts, unqualifiedColumns, joinConditionCounts };
80
+ };
81
+ const isLeftJoin = (join) => {
82
+ return join.joinType.value.toLowerCase().includes('left');
83
+ };
84
+ const getJoinIdentifiers = (join) => {
85
+ const identifiers = new Set();
86
+ const alias = normalizeIdentifier(join.source.getAliasName());
87
+ if (alias) {
88
+ identifiers.add(alias);
89
+ }
90
+ if (join.source.datasource instanceof Clause_1.TableSource) {
91
+ const rawName = join.source.datasource.getSourceName();
92
+ if (rawName) {
93
+ identifiers.add(normalizeIdentifier(rawName));
94
+ }
95
+ const shortName = normalizeIdentifier(join.source.datasource.table.name);
96
+ if (shortName) {
97
+ identifiers.add(shortName);
98
+ }
99
+ }
100
+ return [...identifiers];
101
+ };
102
+ const hasExternalReferences = (identifiers, metadata, join) => {
103
+ var _a, _b, _c;
104
+ const local = (_a = metadata.joinConditionCounts.get(join)) !== null && _a !== void 0 ? _a : new Map();
105
+ for (const identifier of identifiers) {
106
+ const total = (_b = metadata.namespaceCounts.get(identifier)) !== null && _b !== void 0 ? _b : 0;
107
+ const localCount = (_c = local.get(identifier)) !== null && _c !== void 0 ? _c : 0;
108
+ if (total - localCount > 0) {
109
+ return true;
110
+ }
111
+ }
112
+ return false;
113
+ };
114
+ const getJoinColumnInfo = (join, identifiers) => {
115
+ if (!(join.condition instanceof Clause_1.JoinOnClause)) {
116
+ return null;
117
+ }
118
+ const expression = join.condition.condition;
119
+ if (!(expression instanceof ValueComponent_1.BinaryExpression)) {
120
+ return null;
121
+ }
122
+ const operatorValue = expression.operator.value.trim().toLowerCase();
123
+ if (operatorValue !== '=') {
124
+ return null;
125
+ }
126
+ const resolveColumn = (component) => {
127
+ return component instanceof ValueComponent_1.ColumnReference ? component : null;
128
+ };
129
+ const leftRef = resolveColumn(expression.left);
130
+ const rightRef = resolveColumn(expression.right);
131
+ if (!leftRef || !rightRef) {
132
+ return null;
133
+ }
134
+ const normalizedLeftNamespace = normalizeIdentifier(leftRef.getNamespace());
135
+ const normalizedRightNamespace = normalizeIdentifier(rightRef.getNamespace());
136
+ if (identifiers.has(normalizedLeftNamespace)) {
137
+ return normalizeIdentifier(leftRef.column.name);
138
+ }
139
+ if (identifiers.has(normalizedRightNamespace)) {
140
+ return normalizeIdentifier(rightRef.column.name);
141
+ }
142
+ return null;
143
+ };
144
+ const shouldRemoveJoin = (join, schemaMap, metadata) => {
145
+ if (!isLeftJoin(join) || join.lateral) {
146
+ return false;
147
+ }
148
+ if (!(join.source.datasource instanceof Clause_1.TableSource)) {
149
+ return false;
150
+ }
151
+ const candidates = [
152
+ normalizeIdentifier(join.source.datasource.getSourceName()),
153
+ normalizeIdentifier(join.source.datasource.table.name)
154
+ ].filter(Boolean);
155
+ let tableInfo;
156
+ for (const candidate of candidates) {
157
+ const info = schemaMap.get(candidate);
158
+ if (info) {
159
+ tableInfo = info;
160
+ break;
161
+ }
162
+ }
163
+ if (!tableInfo) {
164
+ return false;
165
+ }
166
+ const identifiers = new Set(getJoinIdentifiers(join));
167
+ if (identifiers.size === 0) {
168
+ return false;
169
+ }
170
+ if (hasExternalReferences([...identifiers], metadata, join)) {
171
+ return false;
172
+ }
173
+ const joinColumn = getJoinColumnInfo(join, identifiers);
174
+ if (!joinColumn) {
175
+ return false;
176
+ }
177
+ if (metadata.unqualifiedColumns.has(joinColumn)) {
178
+ return false;
179
+ }
180
+ if (tableInfo.columnSet.size > 0 && !tableInfo.columnSet.has(joinColumn)) {
181
+ return false;
182
+ }
183
+ const uniqueKey = normalizeColumnSetKey([joinColumn]);
184
+ if (!tableInfo.uniqueSetKeys.has(uniqueKey)) {
185
+ return false;
186
+ }
187
+ return true;
188
+ };
189
+ const optimizeSimpleQuery = (query, schemaMap) => {
190
+ var _a, _b;
191
+ if (!((_b = (_a = query.fromClause) === null || _a === void 0 ? void 0 : _a.joins) === null || _b === void 0 ? void 0 : _b.length)) {
192
+ return false;
193
+ }
194
+ const metadata = collectReferenceMetadata(query);
195
+ const retainedJoins = [];
196
+ let removed = false;
197
+ for (const join of query.fromClause.joins) {
198
+ if (shouldRemoveJoin(join, schemaMap, metadata)) {
199
+ removed = true;
200
+ continue;
201
+ }
202
+ retainedJoins.push(join);
203
+ }
204
+ query.fromClause.joins = retainedJoins.length > 0 ? retainedJoins : null;
205
+ return removed;
206
+ };
207
+ const traverseSelectQuery = (query, schemaMap) => {
208
+ if (query instanceof SelectQuery_1.SimpleSelectQuery) {
209
+ return optimizeSimpleQuery(query, schemaMap);
210
+ }
211
+ if (query instanceof SelectQuery_1.BinarySelectQuery) {
212
+ const leftChanged = traverseSelectQuery(query.left, schemaMap);
213
+ const rightChanged = traverseSelectQuery(query.right, schemaMap);
214
+ return leftChanged || rightChanged;
215
+ }
216
+ return false;
217
+ };
218
+ const optimizeUnusedLeftJoinsOnce = (query, schemaMap) => {
219
+ if (schemaMap.size === 0) {
220
+ return false;
221
+ }
222
+ return traverseSelectQuery(query, schemaMap);
223
+ };
224
+ /**
225
+ * Removes LEFT JOIN clauses from the provided query when AST references prove the join target is unused and schema metadata certifies the join column is unique.
226
+ */
227
+ const optimizeUnusedLeftJoins = (query, schemaInfo) => {
228
+ optimizeUnusedLeftJoinsOnce(query, buildSchemaMap(schemaInfo));
229
+ return query;
230
+ };
231
+ exports.optimizeUnusedLeftJoins = optimizeUnusedLeftJoins;
232
+ /**
233
+ * Applies the unused left join optimizer until no further joins can be trimmed, ensuring cascading removals stabilize.
234
+ */
235
+ const optimizeUnusedLeftJoinsToFixedPoint = (query, schemaInfo) => {
236
+ const schemaMap = buildSchemaMap(schemaInfo);
237
+ let changed = true;
238
+ while (changed) {
239
+ changed = optimizeUnusedLeftJoinsOnce(query, schemaMap);
240
+ }
241
+ return query;
242
+ };
243
+ exports.optimizeUnusedLeftJoinsToFixedPoint = optimizeUnusedLeftJoinsToFixedPoint;
244
+ const collectTableSourceNames = (component) => {
245
+ const collector = new CTETableReferenceCollector_1.CTETableReferenceCollector();
246
+ const names = new Set();
247
+ for (const source of collector.collect(component)) {
248
+ const normalizedName = normalizeIdentifier(source.table.name);
249
+ if (normalizedName) {
250
+ names.add(normalizedName);
251
+ }
252
+ }
253
+ return names;
254
+ };
255
+ const isReferencedByOthers = (cteName, mainReferences, cteReferenceMap) => {
256
+ if (mainReferences.has(cteName)) {
257
+ return true;
258
+ }
259
+ for (const [otherName, references] of cteReferenceMap) {
260
+ if (otherName === cteName) {
261
+ continue;
262
+ }
263
+ if (references.has(cteName)) {
264
+ return true;
265
+ }
266
+ }
267
+ return false;
268
+ };
269
+ const optimizeSimpleQueryCtes = (query) => {
270
+ const withClause = query.withClause;
271
+ if (!withClause || withClause.recursive || withClause.tables.length === 0) {
272
+ return false;
273
+ }
274
+ const mainReferences = collectTableSourceNames(query);
275
+ const cteReferenceMap = new Map();
276
+ for (const table of withClause.tables) {
277
+ const normalizedName = normalizeIdentifier(table.aliasExpression.table.name);
278
+ if (!normalizedName) {
279
+ continue;
280
+ }
281
+ cteReferenceMap.set(normalizedName, collectTableSourceNames(table.query));
282
+ }
283
+ const removableNames = [];
284
+ for (const table of withClause.tables) {
285
+ const normalizedName = normalizeIdentifier(table.aliasExpression.table.name);
286
+ if (!normalizedName) {
287
+ continue;
288
+ }
289
+ const body = table.query;
290
+ if (!(body instanceof SelectQuery_1.SimpleSelectQuery) && !(body instanceof SelectQuery_1.BinarySelectQuery)) {
291
+ continue;
292
+ }
293
+ if (isReferencedByOthers(normalizedName, mainReferences, cteReferenceMap)) {
294
+ continue;
295
+ }
296
+ removableNames.push(normalizedName);
297
+ }
298
+ if (removableNames.length === 0) {
299
+ return false;
300
+ }
301
+ // Use the public removal API so the internal CTE cache stays consistent.
302
+ for (const name of removableNames) {
303
+ query.removeCTE(name);
304
+ }
305
+ return true;
306
+ };
307
+ const optimizeCtesInSelectQuery = (query) => {
308
+ if (query instanceof SelectQuery_1.SimpleSelectQuery) {
309
+ return optimizeSimpleQueryCtes(query);
310
+ }
311
+ if (query instanceof SelectQuery_1.BinarySelectQuery) {
312
+ const leftChanged = optimizeCtesInSelectQuery(query.left);
313
+ const rightChanged = optimizeCtesInSelectQuery(query.right);
314
+ return leftChanged || rightChanged;
315
+ }
316
+ return false;
317
+ };
318
+ const optimizeUnusedCtesOnce = (query) => {
319
+ return optimizeCtesInSelectQuery(query);
320
+ };
321
+ /**
322
+ * Removes unused SELECT-only CTEs from the query when AST references confirm they are never consumed.
323
+ */
324
+ const optimizeUnusedCtes = (query) => {
325
+ optimizeUnusedCtesOnce(query);
326
+ return query;
327
+ };
328
+ exports.optimizeUnusedCtes = optimizeUnusedCtes;
329
+ /**
330
+ * Repeatedly prunes unused CTEs until a fixed point is reached so chained removals complete deterministically.
331
+ */
332
+ const optimizeUnusedCtesToFixedPoint = (query) => {
333
+ let changed = true;
334
+ while (changed) {
335
+ changed = optimizeUnusedCtesOnce(query);
336
+ }
337
+ return query;
338
+ };
339
+ exports.optimizeUnusedCtesToFixedPoint = optimizeUnusedCtesToFixedPoint;
340
+ //# sourceMappingURL=OptimizeUnusedLeftJoins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimizeUnusedLeftJoins.js","sourceRoot":"","sources":["../../src/transformers/OptimizeUnusedLeftJoins.ts"],"names":[],"mappings":";;;AAAA,6DAA6F;AAC7F,uDAA0F;AAC1F,yEAAsE;AACtE,6EAA0E;AAC1E,6CAAyE;AA0BzE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,mBAAmB,GAAG,CAAC,KAAgC,EAAU,EAAE;;IACrE,MAAM,KAAK,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,mCAAI,EAAE,CAAC;IAClC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAAiB,EAAU,EAAE;IACxD,OAAO,OAAO;SACT,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;SAC1C,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,EAAE;SACN,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAoC,EAAE;IAChF,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEnD,yEAAyE;IACzE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,aAAa,EAAE,CAAC;gBAChB,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnD,SAAS;QACb,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAQF,MAAM,wBAAwB,GAAG,CAAC,KAAwB,EAAqB,EAAE;;IAC7E,MAAM,SAAS,GAAG,IAAI,mDAAwB,EAAE,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,+FAA+F;IAC/F,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACZ,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAA,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE,CAAC;gBACT,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvE,IAAI,MAAA,KAAK,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;YACzC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,YAAY,qBAAY,EAAE,CAAC;gBAC3D,MAAM,aAAa,GAAG,IAAI,mDAAwB,EAAE,CAAC;gBACrD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChE,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC1D,IAAI,SAAS,EAAE,CAAC;wBACZ,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACL,CAAC;YACL,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAW,EAAE;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAY,EAAE;IACtD,MAAM,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,IAAI,KAAK,EAAE,CAAC;QACR,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,YAAY,oBAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACV,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,SAAS,EAAE,CAAC;YACZ,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC1B,WAAqB,EACrB,QAA2B,EAC3B,IAAgB,EACT,EAAE;;IACT,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC;IAClE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,WAAwB,EAAiB,EAAE;IACpF,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,qBAAY,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAC5C,IAAI,CAAC,CAAC,UAAU,YAAY,iCAAgB,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAyB,EAA0B,EAAE;QACxE,OAAO,SAAS,YAAY,gCAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAE9E,IAAI,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC3C,OAAO,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACrB,IAAgB,EAChB,SAA2C,EAC3C,QAA2B,EACpB,EAAE;IACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,YAAY,oBAAW,CAAC,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG;QACf,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC3D,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;KACzD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,IAAI,SAA0C,CAAC;IAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACP,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACV,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,qBAAqB,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CACxB,KAAwB,EACxB,SAA2C,EACpC,EAAE;;IACT,IAAI,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACb,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CACxB,KAAkB,EAClB,SAA2C,EACpC,EAAE;IACT,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,OAAO,WAAW,IAAI,YAAY,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAChC,KAAkB,EAClB,SAA2C,EACpC,EAAE;IACT,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAkB,EAAE,UAAsB,EAAe,EAAE;IAC/F,2BAA2B,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAEF;;GAEG;AACI,MAAM,mCAAmC,GAAG,CAC/C,KAAkB,EAClB,UAAsB,EACX,EAAE;IACb,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,mCAAmC,uCAU9C;AAEF,MAAM,uBAAuB,GAAG,CAAC,SAAuB,EAAe,EAAE;IACrE,MAAM,SAAS,GAAG,IAAI,uDAA0B,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CACzB,OAAe,EACf,cAA2B,EAC3B,eAAyC,EAClC,EAAE;IACT,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,eAAe,EAAE,CAAC;QACpD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAwB,EAAW,EAAE;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAEpC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,YAAY,+BAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,+BAAiB,CAAC,EAAE,CAAC;YAC/E,SAAS;QACb,CAAC;QAED,IAAI,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,CAAC;YACxE,SAAS;QACb,CAAC;QAED,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,yEAAyE;IACzE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAChC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAkB,EAAW,EAAE;IAC9D,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;QACrC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,WAAW,IAAI,YAAY,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,KAAkB,EAAW,EAAE;IAC3D,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAAC,KAAkB,EAAe,EAAE;IAClE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B;AAEF;;GAEG;AACI,MAAM,8BAA8B,GAAG,CAAC,KAAkB,EAAe,EAAE;IAC9E,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,8BAA8B,kCAMzC"}
@@ -714,9 +714,8 @@ class SqlParamInjector {
714
714
  const columns = this.collectColumnsFromCteQuery(cte.query);
715
715
  cteColumns.push(...columns);
716
716
  }
717
- catch (error) {
718
- // Log error but continue processing other CTEs
719
- console.warn(`Failed to collect columns from CTE '${cte.getSourceAliasName()}':`, error);
717
+ catch {
718
+ // Continue processing other CTEs on error
720
719
  }
721
720
  }
722
721
  }
@@ -805,9 +804,8 @@ class SqlParamInjector {
805
804
  }
806
805
  }
807
806
  }
808
- catch (error) {
809
- // Log warning but continue with empty mapping for safety
810
- console.warn('Failed to build table mapping:', error);
807
+ catch {
808
+ // Continue with an empty mapping when table resolution fails
811
809
  }
812
810
  return { aliasToRealTable, realTableToAlias };
813
811
  }
@@ -831,9 +829,8 @@ class SqlParamInjector {
831
829
  }
832
830
  }
833
831
  }
834
- catch (error) {
835
- // Log warning but continue processing other sources
836
- console.warn('Failed to process source for mapping:', error);
832
+ catch {
833
+ // Continue processing other sources when mapping a table fails
837
834
  }
838
835
  }
839
836
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AACvE,mEAAgE;AAChE,2EAAgG;AAChG,6DAA+K;AAC/K,2EAAwE;AACxE,oEAAiE;AACjE,6CAAuF;AACvF,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AAiBpD;;;GAGG;AACH,MAAa,gBAAgB;IAIzB,YAAY,iBAA+E,EAAE,OAAiC;QAC1H,mDAAmD;QACnD,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;YAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACT,KAAiC,EACjC,KAAsF;QAEtF,8EAA8E;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,qCAAiB,CAAC,KAAK,CAAC,KAAK,CAAsB,CAAC;QAChE,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,qDAAyB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,qDAAyB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,KAAK,EAAE,kBAAkB;QACzB,kDAAsB,CAAC,QAAQ,EAAE,6DAA6D;QAC9F,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,2DAA2D;SACjF,CAAC;QACF,0CAA0C;QAC1C,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE9H,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,aAAa,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEtF,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gJAAgJ,CAAC,CAAC;QACtK,CAAC;QAED,sEAAsE;QACtE,MAAM,eAAe,GAAyC,EAAE,CAAC;QACjE,MAAM,iBAAiB,GAAyC,EAAE,CAAC;QAEnE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,wBAAwB;YACxB,IAAI,UAAU,KAAK,SAAS;gBAAE,SAAS;YAEvC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,eAAe,EAAE,CAAC;YAC/C,IAAI,CAAC,qBAAqB,CACtB,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EACjE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,CAC7G,CAAC;QACN,CAAC;QAED,4FAA4F;QAC5F,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;QACpD,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACT,4DAA4D;gBAC5D,yBAAyB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClG,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,2BAA2B,CAC5B,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EACjE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAC1G,yBAAyB,CAC5B,CAAC;QACN,CAAC;QAED,SAAS,mBAAmB,CACxB,CAAoB,EACpB,QAAgB,EAChB,aAAgC,EAChC,SAAgC,EAChC,gBAA2D;YAE3D,gFAAgF;YAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAEnD,yBAAyB;gBACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,wCAAwC,CAAC,CAAC;gBACnF,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,6CAA6C;gBAC7C,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAAC,IAAI,MAAM,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,OAAO,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,OAAO,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,QAAQ,CAAC;oBAC/C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAyB,CAAC;oBACnD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,oCAAmB,CAAC,GAAG,QAAQ,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAC7D,CAAC;oBACF,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,gCAAe,CAAC,IAAI,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnG,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,6BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxG,CAAC;gBACD,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;QACL,CAAC;QAED,SAAS,kBAAkB,CACvB,CAAoB,EACpB,QAAgB,EAChB,YAA+B,EAC/B,SAAgC,EAChC,gBAA2D;YAE3D,MAAM,aAAa,GAAqB,EAAE,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAElD,yBAAyB;gBACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,uCAAuC,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,uCAAuC;gBACvC,MAAM,gBAAgB,GAAqB,EAAE,CAAC;gBAE9C,4CAA4C;gBAC5C,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAAC,IAAI,MAAM,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5D,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC5D,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,QAAQ,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACtD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAyB,CAAC;oBAClD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,oCAAmB,CAAC,GAAG,QAAQ,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5D,CAAC;oBACF,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,gCAAe,CAAC,IAAI,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,6BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChH,CAAC;gBACD,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,UAAU,GAAG,IAAI,iCAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACD,kEAAkE;oBAClE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,aAAa,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACJ,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,WAAW,GAAG,IAAI,iCAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAED,iDAAiD;gBACjD,CAAC,CAAC,WAAW,CAAC,IAAI,gCAAe,CAAC,WAAW,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QAED,SAAS,iBAAiB,CAAC,UAAkB,EAAE,UAAoB,EAAE,IAAY;YAC7E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,IAAI,GAAG,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,SAAS,qBAAqB,CAAC,CAAoB,EAAE,SAAyB,EAAE,IAAY,EAAE,UAA6B;YACvH,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC,CAAC,WAAW,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,SAAS,uBAAuB,CAAC,CAAoB,EAAE,SAAyB,EAAE,IAAY,EAAE,UAAqB;YACjH,MAAM,UAAU,GAAqB,EAAE,CAAC;YAExC,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3E,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC9E,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAwB,CAAC;gBACpD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,oCAAmB,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAChD,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,gCAAe,CAAC,IAAI,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,6BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,oCAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,iCAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,yFAAyF;YACzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,2CAA2C;gBAC3C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,6EAA6E;gBAC7E,IAAI,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,YAAY,GAAG,IAAI,iCAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,CAAC,CAAC,WAAW,CAAC,IAAI,gCAAe,CAAC,YAAY,CAAC,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAc;QAChC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC;IACjG,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAc;QACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC;IAClG,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,KAAc;QAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpE,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAc;QACtC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAAC,aAAqB;QAClD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,OAAO;gBACH,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACtB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAC1B,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAc;QACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC;IACrG,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAc;QAChC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC;IACxG,CAAC;IAED;;OAEG;IACK,qBAAqB,CACzB,IAAY,EACZ,UAA+B,EAC/B,KAAwB,EACxB,MAAiC,EACjC,SAAoC,EACpC,SAAgC,EAChC,UAAoB,EACpB,kBAA4B,EAC5B,mBAA6B,EAC7B,qBAA+B,EAC/B,uBAAiC,EACjC,iBAA2B;QAE3B,4EAA4E;QAC5E,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAuB,CAAC;YACxD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CACpC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3E,OAAO;YACX,CAAC;QACL,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAwB,CAAC;YAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CACrC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC7E,OAAO;YACX,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7C,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;gBAClF,CAAC;gBAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;oBAClF,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oBACpD,CAAC;oBAED,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,6BAA6B,CAC9B,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EACjE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,CACpE,CAAC;IACN,CAAC;IAED;;OAEG;IACK,2BAA2B,CAC/B,IAAY,EACZ,UAA+B,EAC/B,KAAwB,EACxB,MAAiC,EACjC,SAAoC,EACpC,SAAgC,EAChC,UAAoB,EACpB,kBAA4B,EAC5B,mBAA6B,EAC7B,qBAA+B,EAC/B,uBAAiC,EACjC,iBAA2B,EAC3B,yBAAsC;QAEtC,4EAA4E;QAC5E,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAuB,CAAC;YACxD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CACpC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3E,OAAO;YACX,CAAC;QACL,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAwB,CAAC;YAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CACrC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC7E,OAAO;YACX,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7C,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;gBAClF,CAAC;gBAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;oBAClF,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oBACpD,CAAC;oBAED,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;QAED,6DAA6D;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,mDAAmD;YACnD,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAE/C,kCAAkC;YAClC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5F,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBAClC,2EAA2E;gBAC3E,IAAI,UAAU,GAAG,KAAK,CAAC;gBAEvB,qCAAqC;gBACrC,IAAI,KAAK,CAAC,KAAK,IAAI,OAAQ,KAAK,CAAC,KAAa,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oBACzE,MAAM,SAAS,GAAI,KAAK,CAAC,KAAa,CAAC,YAAY,EAAE,CAAC;oBACtD,IAAI,SAAS,EAAE,CAAC;wBACZ,MAAM,aAAa,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;wBACjF,IAAI,aAAa,EAAE,CAAC;4BAChB,MAAM,YAAY,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;4BAC5E,IAAI,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gCAC9C,UAAU,GAAG,IAAI,CAAC;4BACtB,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,qEAAqE;gBACrE,IAAI,UAAU,EAAE,CAAC;oBACb,SAAS;gBACb,CAAC;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBACpD,CAAC;gBAED,iCAAiC;gBACjC,IAAI,YAAY,GAAG,SAAS,CAAC;gBAC7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;oBAC7C,IAAI,kBAAkB,EAAE,CAAC;wBACrB,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;wBACtG,IAAI,aAAa,EAAE,CAAC;4BAChB,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;wBACvC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,qBAAqB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACJ,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,6BAA6B,CACjC,IAAY,EACZ,UAA+B,EAC/B,KAAwB,EACxB,MAAiC,EACjC,SAAoC,EACpC,SAAgC,EAChC,UAAoB,EACpB,qBAA+B,EAC/B,uBAAiC,EACjC,iBAA2B;QAE3B,0DAA0D;QAC1D,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,eAAe,GAAuB,SAAS,CAAC;QAEpD,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACT,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;gBACjC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;YACnC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,mDAAmD;YACnD,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,WAAW,gBAAgB,sBAAsB,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAE7D,oEAAoE;YACpE,IAAI,KAA0D,CAAC;YAE/D,IAAI,eAAe,EAAE,CAAC;gBAClB,6DAA6D;gBAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAE/C,yEAAyE;gBACzE,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC3B,MAAM,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,gBAAgB,CAAC,CAAC;oBAClF,IAAI,CAAC,oBAAoB;wBAAE,OAAO,KAAK,CAAC;oBAExC,gDAAgD;oBAChD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAQ,IAAI,CAAC,KAAa,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;wBACvE,MAAM,SAAS,GAAI,IAAI,CAAC,KAAa,CAAC,YAAY,EAAE,CAAC;wBACrD,IAAI,SAAS,EAAE,CAAC;4BACZ,MAAM,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;4BACjD,MAAM,qBAAqB,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;4BAEzD,6EAA6E;4BAC7E,MAAM,aAAa,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;4BAC7E,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,qBAAqB,EAAE,CAAC;gCACtE,OAAO,IAAI,CAAC;4BAChB,CAAC;wBACL,CAAC;oBACL,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,iFAAiF;oBACjF,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;wBACxC,SAAS;oBACb,CAAC;oBACD,mCAAmC;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACnF,SAAS,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,CACtD,CAAC;oBACF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAChF,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,CAClD,CAAC;oBAEF,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;wBAClC,6BAA6B;wBAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;oBAClF,CAAC;yBAAM,IAAI,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;wBACxC,uCAAuC;wBACvC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mIAAmI,CAAC,CAAC;oBACxK,CAAC;yBAAM,CAAC;wBACJ,uCAAuC;wBACvC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,8CAA8C;gBAC9C,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACtF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,WAAW,gBAAgB,sBAAsB,CAAC,CAAC;gBACvE,CAAC;YACL,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YAE9B,+BAA+B;YAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,iCAAiC;YACjC,IAAI,YAAY,GAAG,SAAS,CAAC;YAC7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7C,IAAI,kBAAkB,EAAE,CAAC;oBACrB,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACtG,IAAI,aAAa,EAAE,CAAC;wBAChB,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;oBACvC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,+DAA+D;YAC/D,wFAAwF;YACxF,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,qBAAqB,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACJ,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kCAAkC,CACtC,MAAiC,EACjC,KAAwB,EACxB,QAAgB,EAChB,UAA6B;QAE7B,MAAM,iBAAiB,GAAG,UAAU;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB;QAE/E,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,KAAM,UAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,eAAe,aAAa,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC1B,KAAwB,EACxB,SAAoC;QAEpC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAwB;QAC9C,MAAM,UAAU,GAA8C,EAAE,CAAC;QAEjE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,+CAA+C;oBAC/C,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7F,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,0BAA0B,CAAC,KAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAEO,6BAA6B,CAAC,KAAkB;QACpD,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,qDAAyB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,KAAK,EAAE,kBAAkB;YACzB,kDAAsB,CAAC,QAAQ,EAAE,8CAA8C;YAC/E,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,2DAA2D;aACjF,CAAC;YACF,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,YAAY,qCAAiB,EAAE,CAAC;YAC5C,wEAAwE;YACxE,uDAAuD;YACvD,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,2BAA2B,CAAC,KAAe;;QAC/C,8DAA8D;QAC9D,IAAI,KAAK,YAAY,yBAAW,IAAI,KAAK,YAAY,yBAAW,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YAC/F,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAA8C,EAAE,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,mCAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACzE,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,IAAgB;QACtC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,YAAY,gCAAe,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,KAAe;QACjC,OAAO,mBAAmB,IAAI,KAAK,IAAK,KAAqB,CAAC,iBAAiB,KAAK,aAAa,CAAC;IACtG,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAwB;QAI9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEnD,IAAI,CAAC;YACD,sBAAsB;YACtB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;gBAE1F,uBAAuB;gBACvB,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACxC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;oBAC1C,IAAI,QAAQ,EAAE,CAAC;wBACX,yDAAyD;wBACzD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACvD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAC3D,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC3B,MAAwB,EACxB,gBAAqC,EACrC,gBAAqC;;QAErC,IAAI,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,YAAY,oBAAW,EAAE,CAAC;gBAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBACxD,MAAM,SAAS,GAAG,CAAA,MAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,KAAK,0CAAE,IAAI,KAAI,aAAa,CAAC;gBAEvE,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;oBAC7B,0DAA0D;oBAC1D,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;oBAC7D,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;oBAE7D,4DAA4D;oBAC5D,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;wBAC9B,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;oBACrE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,oDAAoD;YACpD,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;CACJ;AA5+BD,4CA4+BC"}
1
+ {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeSerialPseudoType = normalizeSerialPseudoType;
4
+ exports.isSerialPseudoType = isSerialPseudoType;
5
+ const SERIAL_PSEUDO_TYPE_MAP = {
6
+ serial: 'integer',
7
+ serial4: 'integer',
8
+ bigserial: 'bigint',
9
+ serial8: 'bigint',
10
+ smallserial: 'smallint',
11
+ serial2: 'smallint',
12
+ };
13
+ /**
14
+ * Converts Postgres serial pseudo-type names into their real storage types so ZTD
15
+ * cast expressions never emit non-existent types.
16
+ *
17
+ * @param typeName Optional type name (possibly qualified) that is trimmed before normalization.
18
+ * @returns The normalized type name when a pseudo-type matches, the trimmed input when no match is found, or `undefined` when the argument is `undefined`.
19
+ * @example
20
+ * normalizeSerialPseudoType('serial') // 'integer'
21
+ * normalizeSerialPseudoType('public.BIGSERIAL') // 'public.bigint'
22
+ */
23
+ function normalizeSerialPseudoType(typeName) {
24
+ if (!typeName) {
25
+ return typeName;
26
+ }
27
+ const trimmed = typeName.trim();
28
+ if (!trimmed) {
29
+ return trimmed;
30
+ }
31
+ // Preserve schema or catalog qualifiers while normalizing the terminal segment.
32
+ const segments = trimmed.split('.');
33
+ const base = segments.pop();
34
+ const normalizedBase = SERIAL_PSEUDO_TYPE_MAP[base.toLowerCase()];
35
+ if (!normalizedBase) {
36
+ return trimmed;
37
+ }
38
+ segments.push(normalizedBase);
39
+ return segments.join('.');
40
+ }
41
+ /**
42
+ * Returns true when the provided type name resolves to a known serial pseudo-type.
43
+ */
44
+ function isSerialPseudoType(typeName) {
45
+ if (!typeName) {
46
+ return false;
47
+ }
48
+ const trimmed = typeName.trim();
49
+ if (!trimmed) {
50
+ return false;
51
+ }
52
+ const segments = trimmed.split('.');
53
+ const base = segments.pop();
54
+ if (!base) {
55
+ return false;
56
+ }
57
+ return Boolean(SERIAL_PSEUDO_TYPE_MAP[base.toLowerCase()]);
58
+ }
59
+ //# sourceMappingURL=serialTypeNormalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialTypeNormalization.js","sourceRoot":"","sources":["../../src/utils/serialTypeNormalization.ts"],"names":[],"mappings":";;AAmBA,8DAqBC;AAKD,gDAiBC;AA9DD,MAAM,sBAAsB,GAA2B;IACrD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CAAC,QAAiB;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gFAAgF;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAG,CAAC;IAC7B,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,QAAiB;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rawsql-ts",
3
- "version": "0.14.4",
3
+ "version": "0.16.0",
4
4
  "description": "High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",