drizzle-arktype 0.1.3 → 1.0.0-beta.2-e93475f

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.
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type } from 'arktype';
2
- import { isTable, getTableColumns, getViewSelectedFields, is, Column, SQL, isView } from 'drizzle-orm';
2
+ import { extractExtendedColumnType, getTableName, getColumnTable, isTable, getTableColumns, getViewSelectedFields, is, Column, SQL, isView } from 'drizzle-orm';
3
3
 
4
4
  const CONSTANTS = {
5
5
  INT8_MIN: -128,
@@ -22,212 +22,300 @@ const CONSTANTS = {
22
22
  INT64_UNSIGNED_MAX: 18446744073709551615n,
23
23
  };
24
24
 
25
- function isColumnType(column, columnTypes) {
26
- return columnTypes.includes(column.columnType);
27
- }
28
- function isWithEnum(column) {
29
- return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
30
- }
31
- const isPgEnum = isWithEnum;
32
-
33
25
  const literalSchema = type.string.or(type.number).or(type.boolean).or(type.null);
34
26
  const jsonSchema = literalSchema.or(type.unknown.as().array()).or(type.object.as());
35
- const bufferSchema = type.unknown.narrow((value) => value instanceof Buffer).as().describe(// eslint-disable-line no-instanceof/no-instanceof
36
- 'a Buffer instance');
27
+ const bufferSchema = type.unknown.narrow((value) => value instanceof Buffer).as().describe('a Buffer instance');
37
28
  function columnToSchema(column) {
38
29
  let schema;
39
- if (isWithEnum(column)) {
40
- schema = column.enumValues.length ? type.enumerated(...column.enumValues) : type.string;
41
- }
42
- if (!schema) {
43
- // Handle specific types
44
- if (isColumnType(column, ['PgGeometry', 'PgPointTuple'])) {
45
- schema = type([type.number, type.number]);
30
+ const { type: columnType, constraint } = extractExtendedColumnType(column);
31
+ switch (columnType) {
32
+ case 'array': {
33
+ schema = arrayColumnToSchema(column, constraint);
34
+ break;
46
35
  }
47
- else if (isColumnType(column, ['PgGeometryObject', 'PgPointObject'])) {
48
- schema = type({
49
- x: type.number,
50
- y: type.number,
51
- });
36
+ case 'object': {
37
+ schema = objectColumnToSchema(column, constraint);
38
+ break;
52
39
  }
53
- else if (isColumnType(column, ['PgHalfVector', 'PgVector'])) {
54
- schema = column.dimensions
55
- ? type.number.array().exactlyLength(column.dimensions)
56
- : type.number.array();
40
+ case 'number': {
41
+ schema = numberColumnToSchema(column, constraint);
42
+ break;
57
43
  }
58
- else if (isColumnType(column, ['PgLine'])) {
59
- schema = type([type.number, type.number, type.number]);
44
+ case 'bigint': {
45
+ schema = bigintColumnToSchema(column, constraint);
46
+ break;
60
47
  }
61
- else if (isColumnType(column, ['PgLineABC'])) {
62
- schema = type({
63
- a: type.number,
64
- b: type.number,
65
- c: type.number,
66
- });
67
- } // Handle other types
68
- else if (isColumnType(column, ['PgArray'])) {
69
- const arraySchema = columnToSchema(column.baseColumn).array();
70
- schema = column.size ? arraySchema.exactlyLength(column.size) : arraySchema;
71
- }
72
- else if (column.dataType === 'array') {
73
- schema = type.unknown.array();
74
- }
75
- else if (column.dataType === 'number') {
76
- schema = numberColumnToSchema(column);
77
- }
78
- else if (column.dataType === 'bigint') {
79
- schema = bigintColumnToSchema(column);
80
- }
81
- else if (column.dataType === 'boolean') {
48
+ case 'boolean': {
82
49
  schema = type.boolean;
50
+ break;
83
51
  }
84
- else if (column.dataType === 'date') {
85
- schema = type.Date;
86
- }
87
- else if (column.dataType === 'string') {
88
- schema = stringColumnToSchema(column);
52
+ case 'string': {
53
+ schema = stringColumnToSchema(column, constraint);
54
+ break;
89
55
  }
90
- else if (column.dataType === 'json') {
91
- schema = jsonSchema;
92
- }
93
- else if (column.dataType === 'custom') {
56
+ case 'custom': {
94
57
  schema = type.unknown;
58
+ break;
95
59
  }
96
- else if (column.dataType === 'buffer') {
97
- schema = bufferSchema;
60
+ default: {
61
+ schema = type.unknown;
98
62
  }
99
63
  }
100
- if (!schema) {
101
- schema = type.unknown;
102
- }
103
64
  return schema;
104
65
  }
105
- function numberColumnToSchema(column) {
106
- let unsigned = column.getSQLType().includes('unsigned');
66
+ function numberColumnToSchema(column, constraint) {
107
67
  let min;
108
68
  let max;
109
69
  let integer = false;
110
- if (isColumnType(column, ['MySqlTinyInt', 'SingleStoreTinyInt'])) {
111
- min = unsigned ? 0 : CONSTANTS.INT8_MIN;
112
- max = unsigned ? CONSTANTS.INT8_UNSIGNED_MAX : CONSTANTS.INT8_MAX;
113
- integer = true;
114
- }
115
- else if (isColumnType(column, [
116
- 'PgSmallInt',
117
- 'PgSmallSerial',
118
- 'MySqlSmallInt',
119
- 'SingleStoreSmallInt',
120
- ])) {
121
- min = unsigned ? 0 : CONSTANTS.INT16_MIN;
122
- max = unsigned ? CONSTANTS.INT16_UNSIGNED_MAX : CONSTANTS.INT16_MAX;
123
- integer = true;
124
- }
125
- else if (isColumnType(column, [
126
- 'PgReal',
127
- 'MySqlFloat',
128
- 'MySqlMediumInt',
129
- 'SingleStoreFloat',
130
- 'SingleStoreMediumInt',
131
- ])) {
132
- min = unsigned ? 0 : CONSTANTS.INT24_MIN;
133
- max = unsigned ? CONSTANTS.INT24_UNSIGNED_MAX : CONSTANTS.INT24_MAX;
134
- integer = isColumnType(column, ['MySqlMediumInt', 'SingleStoreMediumInt']);
135
- }
136
- else if (isColumnType(column, [
137
- 'PgInteger',
138
- 'PgSerial',
139
- 'MySqlInt',
140
- 'SingleStoreInt',
141
- ])) {
142
- min = unsigned ? 0 : CONSTANTS.INT32_MIN;
143
- max = unsigned ? CONSTANTS.INT32_UNSIGNED_MAX : CONSTANTS.INT32_MAX;
144
- integer = true;
145
- }
146
- else if (isColumnType(column, [
147
- 'PgDoublePrecision',
148
- 'MySqlReal',
149
- 'MySqlDouble',
150
- 'SingleStoreReal',
151
- 'SingleStoreDouble',
152
- 'SQLiteReal',
153
- ])) {
154
- min = unsigned ? 0 : CONSTANTS.INT48_MIN;
155
- max = unsigned ? CONSTANTS.INT48_UNSIGNED_MAX : CONSTANTS.INT48_MAX;
156
- }
157
- else if (isColumnType(column, [
158
- 'PgBigInt53',
159
- 'PgBigSerial53',
160
- 'MySqlBigInt53',
161
- 'MySqlSerial',
162
- 'SingleStoreBigInt53',
163
- 'SingleStoreSerial',
164
- 'SQLiteInteger',
165
- ])) {
166
- unsigned = unsigned || isColumnType(column, ['MySqlSerial', 'SingleStoreSerial']);
167
- min = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
168
- max = Number.MAX_SAFE_INTEGER;
169
- integer = true;
70
+ switch (constraint) {
71
+ case 'int8': {
72
+ min = CONSTANTS.INT8_MIN;
73
+ max = CONSTANTS.INT8_MAX;
74
+ integer = true;
75
+ break;
76
+ }
77
+ case 'uint8': {
78
+ min = 0;
79
+ max = CONSTANTS.INT8_UNSIGNED_MAX;
80
+ integer = true;
81
+ break;
82
+ }
83
+ case 'int16': {
84
+ min = CONSTANTS.INT16_MIN;
85
+ max = CONSTANTS.INT16_MAX;
86
+ integer = true;
87
+ break;
88
+ }
89
+ case 'uint16': {
90
+ min = 0;
91
+ max = CONSTANTS.INT16_UNSIGNED_MAX;
92
+ integer = true;
93
+ break;
94
+ }
95
+ case 'int24': {
96
+ min = CONSTANTS.INT24_MIN;
97
+ max = CONSTANTS.INT24_MAX;
98
+ integer = true;
99
+ break;
100
+ }
101
+ case 'uint24': {
102
+ min = 0;
103
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
104
+ integer = true;
105
+ break;
106
+ }
107
+ case 'int32': {
108
+ min = CONSTANTS.INT32_MIN;
109
+ max = CONSTANTS.INT32_MAX;
110
+ integer = true;
111
+ break;
112
+ }
113
+ case 'uint32': {
114
+ min = 0;
115
+ max = CONSTANTS.INT32_UNSIGNED_MAX;
116
+ integer = true;
117
+ break;
118
+ }
119
+ case 'int53': {
120
+ min = Number.MIN_SAFE_INTEGER;
121
+ max = Number.MAX_SAFE_INTEGER;
122
+ integer = true;
123
+ break;
124
+ }
125
+ case 'uint53': {
126
+ min = 0;
127
+ max = Number.MAX_SAFE_INTEGER;
128
+ integer = true;
129
+ break;
130
+ }
131
+ case 'float': {
132
+ min = CONSTANTS.INT24_MIN;
133
+ max = CONSTANTS.INT24_MAX;
134
+ break;
135
+ }
136
+ case 'ufloat': {
137
+ min = 0;
138
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
139
+ break;
140
+ }
141
+ case 'double': {
142
+ min = CONSTANTS.INT48_MIN;
143
+ max = CONSTANTS.INT48_MAX;
144
+ break;
145
+ }
146
+ case 'udouble': {
147
+ min = 0;
148
+ max = CONSTANTS.INT48_UNSIGNED_MAX;
149
+ break;
150
+ }
151
+ case 'year': {
152
+ min = 1901;
153
+ max = 2155;
154
+ integer = true;
155
+ break;
156
+ }
157
+ case 'unsigned': {
158
+ min = 0;
159
+ max = Number.MAX_SAFE_INTEGER;
160
+ break;
161
+ }
162
+ default: {
163
+ min = Number.MIN_SAFE_INTEGER;
164
+ max = Number.MAX_SAFE_INTEGER;
165
+ break;
166
+ }
170
167
  }
171
- else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
172
- min = 1901;
173
- max = 2155;
174
- integer = true;
168
+ return (integer ? type.keywords.number.integer : type.number).atLeast(min).atMost(max);
169
+ }
170
+ function arrayColumnToSchema(column, constraint) {
171
+ switch (constraint) {
172
+ case 'geometry':
173
+ case 'point': {
174
+ return type([type.number, type.number]);
175
+ }
176
+ case 'line': {
177
+ return type([type.number, type.number, type.number]);
178
+ }
179
+ case 'vector':
180
+ case 'halfvector': {
181
+ const length = column.length;
182
+ return length ? type.number.array().exactlyLength(length) : type.number.array();
183
+ }
184
+ case 'int64vector': {
185
+ const length = column.length;
186
+ // TODO - INT64 number range
187
+ return length ? type.bigint.array().exactlyLength(length) : type.bigint.array();
188
+ }
189
+ case 'basecolumn': {
190
+ const length = column.length;
191
+ const schema = column.baseColumn
192
+ ? columnToSchema(column.baseColumn).array()
193
+ : type.unknown.array();
194
+ if (length)
195
+ return schema.exactlyLength(length);
196
+ return schema;
197
+ }
198
+ default: {
199
+ return type.unknown.array();
200
+ }
175
201
  }
176
- else {
177
- min = Number.MIN_SAFE_INTEGER;
178
- max = Number.MAX_SAFE_INTEGER;
202
+ }
203
+ function objectColumnToSchema(column, constraint) {
204
+ switch (constraint) {
205
+ case 'buffer': {
206
+ return bufferSchema;
207
+ }
208
+ case 'date': {
209
+ return type.Date;
210
+ }
211
+ case 'geometry':
212
+ case 'point': {
213
+ return type({
214
+ x: type.number,
215
+ y: type.number,
216
+ });
217
+ }
218
+ case 'json': {
219
+ return jsonSchema;
220
+ }
221
+ case 'line': {
222
+ return type({
223
+ a: type.number,
224
+ b: type.number,
225
+ c: type.number,
226
+ });
227
+ }
228
+ default: {
229
+ return type({});
230
+ }
179
231
  }
180
- return (integer ? type.keywords.number.integer : type.number).atLeast(min).atMost(max);
181
232
  }
182
233
  /** @internal */
183
234
  const unsignedBigintNarrow = (v, ctx) => v < 0n ? ctx.mustBe('greater than') : v > CONSTANTS.INT64_UNSIGNED_MAX ? ctx.mustBe('less than') : true;
184
235
  /** @internal */
185
236
  const bigintNarrow = (v, ctx) => v < CONSTANTS.INT64_MIN ? ctx.mustBe('greater than') : v > CONSTANTS.INT64_MAX ? ctx.mustBe('less than') : true;
186
- function bigintColumnToSchema(column) {
187
- const unsigned = column.getSQLType().includes('unsigned');
188
- return type.bigint.narrow(unsigned ? unsignedBigintNarrow : bigintNarrow);
189
- }
190
- function stringColumnToSchema(column) {
191
- if (isColumnType(column, ['PgUUID'])) {
192
- return type(/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu).describe('a RFC-4122-compliant UUID');
237
+ /** @internal */
238
+ const bigintStringModeSchema = type.string.narrow((v, ctx) => {
239
+ if (typeof v !== 'string') {
240
+ return ctx.mustBe('a string');
193
241
  }
194
- if (isColumnType(column, ['PgBinaryVector'])) {
195
- return type(`/^[01]{${column.dimensions}}$/`)
196
- .describe(`a string containing ones or zeros while being ${column.dimensions} characters long`);
242
+ if (!(/^-?\d+$/.test(v))) {
243
+ return ctx.mustBe('a string representing a number');
197
244
  }
198
- let max;
199
- let fixed = false;
200
- if (isColumnType(column, ['PgVarchar', 'SQLiteText'])) {
201
- max = column.length;
245
+ const bigint = BigInt(v);
246
+ if (bigint < CONSTANTS.INT64_MIN) {
247
+ return ctx.mustBe('greater than');
202
248
  }
203
- else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
204
- max = column.length ?? CONSTANTS.INT16_UNSIGNED_MAX;
249
+ if (bigint > CONSTANTS.INT64_MAX) {
250
+ return ctx.mustBe('less than');
205
251
  }
206
- else if (isColumnType(column, ['MySqlText', 'SingleStoreText'])) {
207
- if (column.textType === 'longtext') {
208
- max = CONSTANTS.INT32_UNSIGNED_MAX;
209
- }
210
- else if (column.textType === 'mediumtext') {
211
- max = CONSTANTS.INT24_UNSIGNED_MAX;
252
+ return true;
253
+ });
254
+ /** @internal */
255
+ const unsignedBigintStringModeSchema = type.string.narrow((v, ctx) => {
256
+ if (typeof v !== 'string') {
257
+ return ctx.mustBe('a string');
258
+ }
259
+ if (!(/^\d+$/.test(v))) {
260
+ return ctx.mustBe('a string representing a number');
261
+ }
262
+ const bigint = BigInt(v);
263
+ if (bigint < 0) {
264
+ return ctx.mustBe('greater than');
265
+ }
266
+ if (bigint > CONSTANTS.INT64_MAX) {
267
+ return ctx.mustBe('less than');
268
+ }
269
+ return true;
270
+ });
271
+ function bigintColumnToSchema(column, constraint) {
272
+ switch (constraint) {
273
+ case 'int64': {
274
+ return type.bigint.narrow(bigintNarrow);
212
275
  }
213
- else if (column.textType === 'text') {
214
- max = CONSTANTS.INT16_UNSIGNED_MAX;
276
+ case 'uint64': {
277
+ return type.bigint.narrow(unsignedBigintNarrow);
215
278
  }
216
- else {
217
- max = CONSTANTS.INT8_UNSIGNED_MAX;
279
+ }
280
+ return type.bigint;
281
+ }
282
+ function stringColumnToSchema(column, constraint) {
283
+ const { name: columnName, length, isLengthExact } = column;
284
+ if (constraint === 'binary') {
285
+ return type(`/^[01]${length ? `{${isLengthExact ? length : `0,${length}`}}` : '*'}$/`)
286
+ .describe(`a string containing ones or zeros${length ? ` while being ${isLengthExact ? '' : 'up to '}${length} characters long` : ''}`);
287
+ }
288
+ if (constraint === 'uuid') {
289
+ return type(/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu).describe('a RFC-4122-compliant UUID');
290
+ }
291
+ if (constraint === 'enum') {
292
+ const enumValues = column.enumValues;
293
+ if (!enumValues) {
294
+ throw new Error(`Column "${getTableName(getColumnTable(column))}"."${columnName}" is of 'enum' type, but lacks enum values`);
218
295
  }
296
+ return type.enumerated(...enumValues);
219
297
  }
220
- if (isColumnType(column, [
221
- 'PgChar',
222
- 'MySqlChar',
223
- 'SingleStoreChar',
224
- ])) {
225
- max = column.length;
226
- fixed = true;
298
+ if (constraint === 'int64') {
299
+ return bigintStringModeSchema;
227
300
  }
228
- return max && fixed ? type.string.exactlyLength(max) : max ? type.string.atMostLength(max) : type.string;
301
+ if (constraint === 'uint64') {
302
+ return unsignedBigintStringModeSchema;
303
+ }
304
+ return length && isLengthExact
305
+ ? type.string.exactlyLength(length)
306
+ : length
307
+ ? type.string.atMostLength(length)
308
+ : type.string;
229
309
  }
230
310
 
311
+ function isColumnType(column, columnTypes) {
312
+ return columnTypes.includes(column.columnType);
313
+ }
314
+ function isWithEnum(column) {
315
+ return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
316
+ }
317
+ const isPgEnum = isWithEnum;
318
+
231
319
  function getColumns(tableLike) {
232
320
  return isTable(tableLike) ? getTableColumns(tableLike) : getViewSelectedFields(tableLike);
233
321
  }
@@ -279,7 +367,8 @@ const createSelectSchema = ((entity, refine) => {
279
367
  const createInsertSchema = ((entity, refine) => {
280
368
  const columns = getColumns(entity);
281
369
  return handleColumns(columns, refine ?? {}, {
282
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
370
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
371
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
283
372
  optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
284
373
  nullable: (column) => !column.notNull,
285
374
  });
@@ -287,7 +376,8 @@ const createInsertSchema = ((entity, refine) => {
287
376
  const createUpdateSchema = ((entity, refine) => {
288
377
  const columns = getColumns(entity);
289
378
  return handleColumns(columns, refine ?? {}, {
290
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
379
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
380
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
291
381
  optional: () => true,
292
382
  nullable: (column) => !column.notNull,
293
383
  });
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG;IACxB,QAAQ,EAAE,CAAC,GAAG;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,iBAAiB,EAAE,GAAG;IACtB,SAAS,EAAE,CAAC,KAAK;AACjB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,kBAAkB,EAAE,KAAK;IACzB,SAAS,EAAE,CAAC,OAAO;AACnB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,kBAAkB,EAAE,QAAQ;IAC5B,SAAS,EAAE,CAAC,UAAU;AACtB,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,kBAAkB,EAAE,UAAU;IAC9B,SAAS,EAAE,CAAC,eAAe;AAC3B,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,kBAAkB,EAAE,eAAe;IACnC,SAAS,EAAE,CAAC,oBAAoB;AAChC,IAAA,SAAS,EAAE,oBAAoB;AAC/B,IAAA,kBAAkB,EAAE,qBAAqB;CACzC;;ACde,SAAA,YAAY,CAAmB,MAAc,EAAE,WAAqB,EAAA;IACnF,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,UAAU,CAAC,MAAc,EAAA;IACxC,OAAO,YAAY,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,CAAC;AAEM,MAAM,QAAQ,GAA6D;;AC8C3E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;AACjF,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAuB,EAAE;AACxG,MAAA,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM,CAAC,CAAC,EAAE,EAAU,CAAC,QAAQ;AACxG,mBAAmB,EAClB;AAEI,SAAU,cAAc,CAAC,MAAc,EAAA;AAC5C,IAAA,IAAI,MAAa,CAAC;AAElB,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;KACxF;IAED,IAAI,CAAC,MAAM,EAAE;;QAEZ,IAAI,YAAY,CAAsC,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE;AAC9F,YAAA,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1C;aAAM,IACN,YAAY,CAA6C,MAAM,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,EACtG;YACD,MAAM,GAAG,IAAI,CAAC;gBACb,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;AACd,aAAA,CAAC,CAAC;SACH;aAAM,IAAI,YAAY,CAAoC,MAAM,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,EAAE;YACjG,MAAM,GAAG,MAAM,CAAC,UAAU;AACzB,kBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;AACtD,kBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvB;aAAM,IAAI,YAAY,CAAmB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC9D,YAAA,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACvD;aAAM,IAAI,YAAY,CAAiB,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;YAC/D,MAAM,GAAG,IAAI,CAAC;gBACb,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;AACd,aAAA,CAAC,CAAC;AACJ,SAAC;aACI,IAAI,YAAY,CAAoB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;YAC9D,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9D,YAAA,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;SAC5E;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;AACvC,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC9B;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACtB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;AACtC,YAAA,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;SACnB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;YACtC,MAAM,GAAG,UAAU,CAAC;SACpB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACtB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACxC,MAAM,GAAG,YAAY,CAAC;SACtB;KACD;IAED,IAAI,CAAC,MAAM,EAAE;AACZ,QAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;KACtB;AAED,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,IAAI,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxD,IAAA,IAAI,GAAY,CAAC;AACjB,IAAA,IAAI,GAAY,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,YAAY,CAA8C,MAAM,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,EAAE;AAC9G,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;AACxC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAAuF,MAAM,EAAE;QAC1G,YAAY;QACZ,eAAe;QACf,eAAe;QACf,qBAAqB;AACrB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAEV,MAAM,EAAE;QACT,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,sBAAsB;AACtB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;KAC3E;SAAM,IACN,YAAY,CAAuE,MAAM,EAAE;QAC1F,WAAW;QACX,UAAU;QACV,UAAU;QACV,gBAAgB;AAChB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAOV,MAAM,EAAE;QACT,mBAAmB;QACnB,WAAW;QACX,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,YAAY;AACZ,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;KACpE;SAAM,IACN,YAAY,CASX,MAAM,EACN;QACC,YAAY;QACZ,eAAe;QACf,eAAe;QACf,aAAa;QACb,qBAAqB;QACrB,mBAAmB;QACnB,eAAe;AACf,KAAA,CACD,EACA;AACD,QAAA,QAAQ,GAAG,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAClF,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC7C,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9B,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IAAI,YAAY,CAAwC,MAAM,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE;QACzG,GAAG,GAAG,IAAI,CAAC;QACX,GAAG,GAAG,IAAI,CAAC;QACX,OAAO,GAAG,IAAI,CAAC;KACf;SAAM;AACN,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC;AAED;AACO,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,GAA4C,KAC3F,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAEzG;AACO,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,GAA4C,KACnF,CAAC,GAAG,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAEjH,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,oBAAoB,GAAG,YAAY,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,IAAI,YAAY,CAA+C,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;QACnF,OAAO,IAAI,CAAC,8CAA8C,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;KAClG;IACD,IACC,YAAY,CAMV,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAC5B;AACD,QAAA,OAAO,IAAI,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,UAAU,KAAK,CAAC;AAC3C,aAAA,QAAQ,CAAC,CAAiD,8CAAA,EAAA,MAAM,CAAC,UAAU,CAAA,gBAAA,CAAkB,CAAC,CAAC;KACjG;AAED,IAAA,IAAI,GAAuB,CAAC;IAC5B,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,IAAI,YAAY,CAAmC,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;AACxF,QAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;KACpB;SAAM,IACN,YAAY,CAA8C,MAAM,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,EACxG;QACD,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC;KACpD;SAAM,IAAI,YAAY,CAAwC,MAAM,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE;AACzG,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;AACnC,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC5C,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;AACtC,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;aAAM;AACN,YAAA,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;SAClC;KACD;IAED,IACC,YAAY,CAAsD,MAAM,EAAE;QACzE,QAAQ;QACR,WAAW;QACX,iBAAiB;AACjB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACpB,KAAK,GAAG,IAAI,CAAC;KACb;AAED,IAAA,OAAO,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1G;;AC5RA,SAAS,UAAU,CAAC,SAAuB,EAAA;AAC1C,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CACrB,OAA4B,EAC5B,WAAgC,EAChC,UAAsB,EAAA;IAEtB,MAAM,aAAa,GAAyB,EAAE,CAAC;AAE/C,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtD,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9G,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACxF,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAChF,SAAS;SACT;AAED,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IACC,UAAU,KAAK,SAAS;AACrB,gBAAC,OAAO,UAAU,KAAK,UAAU,KAAK,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,EACjH;AACD,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAChC,SAAS;SACT;AAED,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3D,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAA,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE/E,QAAA,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,SAAS;SACT;aAAM;AACN,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC7B;QAED,IAAI,MAAM,EAAE;AACX,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD;AAED,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAChC,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAE,CAAC,QAAQ,EAAS,CAAC;aAC3D;SACD;KACD;AAED,IAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5B,CAAC;AAEY,MAAA,kBAAkB,IAAI,CAClC,MAAoD,EACpD,MAA4B,KACzB;AACH,IAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KAC7C;AACD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;AAC3C,QAAA,KAAK,EAAE,MAAM,KAAK;AAClB,QAAA,QAAQ,EAAE,MAAM,KAAK;QACrB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC,EAAwB;AAEZ,MAAA,kBAAkB,IAAI,CAClC,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACvG,QAAA,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;QAC9E,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC,EAAwB;AAEZ,MAAA,kBAAkB,IAAI,CAClC,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACvG,QAAA,QAAQ,EAAE,MAAM,IAAI;QACpB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/column.ts","../src/utils.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG;IACxB,QAAQ,EAAE,CAAC,GAAG;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,iBAAiB,EAAE,GAAG;IACtB,SAAS,EAAE,CAAC,KAAK;AACjB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,kBAAkB,EAAE,KAAK;IACzB,SAAS,EAAE,CAAC,OAAO;AACnB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,kBAAkB,EAAE,QAAQ;IAC5B,SAAS,EAAE,CAAC,UAAU;AACtB,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,kBAAkB,EAAE,UAAU;IAC9B,SAAS,EAAE,CAAC,eAAe;AAC3B,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,kBAAkB,EAAE,eAAe;IACnC,SAAS,EAAE,CAAC,oBAAoB;AAChC,IAAA,SAAS,EAAE,oBAAoB;AAC/B,IAAA,kBAAkB,EAAE,qBAAqB;CACzC;;ACLM,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;AACjF,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAuB,EAAE;AACxG,MAAA,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM,CAAC,CAAC,EAAE,EAAU,CAAC,QAAQ,CACxG,mBAAmB,EAClB;AAEI,SAAU,cAAc,CAAC,MAAc,EAAA;AAC5C,IAAA,IAAI,MAAa,CAAC;AAClB,IAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAE3E,QAAQ,UAAU;QACjB,KAAK,OAAO,EAAE;AACb,YAAA,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM;SACN;QACD,KAAK,SAAS,EAAE;AACf,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACtB,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YACtB,MAAM;SACN;QACD,SAAS;AACR,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACtB;KACD;AAED,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,UAAkD,EAAA;AAC/F,IAAA,IAAI,GAAY,CAAC;AACjB,IAAA,IAAI,GAAY,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,QAAQ,UAAU;QACjB,KAAK,MAAM,EAAE;AACZ,YAAA,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC;AACzB,YAAA,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;YACb,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;YAClC,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;AACb,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1B,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;YACd,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;AACb,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1B,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;YACd,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;AACb,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1B,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;YACd,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;AACb,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;YACd,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,OAAO,EAAE;AACb,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1B,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC1B,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;YACd,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACnC,MAAM;SACN;QACD,KAAK,QAAQ,EAAE;AACd,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1B,YAAA,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC1B,MAAM;SACN;QACD,KAAK,SAAS,EAAE;YACf,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACnC,MAAM;SACN;QACD,KAAK,MAAM,EAAE;YACZ,GAAG,GAAG,IAAI,CAAC;YACX,GAAG,GAAG,IAAI,CAAC;YACX,OAAO,GAAG,IAAI,CAAC;YACf,MAAM;SACN;QACD,KAAK,UAAU,EAAE;YAChB,GAAG,GAAG,CAAC,CAAC;AACR,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC9B,MAAM;SACN;QACD,SAAS;AACR,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,YAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAC9B,MAAM;SACN;KACD;AAED,IAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,mBAAmB,CAC3B,MAAc,EACd,UAAiD,EAAA;IAEjD,QAAQ,UAAU;AACjB,QAAA,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,EAAE;AACb,YAAA,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;QACD,KAAK,MAAM,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACrD;AACD,QAAA,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SAChF;QACD,KAAK,aAAa,EAAE;AACnB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;YAE7B,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SAChF;QACD,KAAK,YAAY,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,MAAM,GAA8B,MAAO,CAAC,UAAU;kBACzD,cAAc,CAA4B,MAAO,CAAC,UAAW,CAAC,CAAC,KAAK,EAAE;AACxE,kBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,YAAA,IAAI,MAAM;AAAE,gBAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAChD,YAAA,OAAO,MAAM,CAAC;SACd;QACD,SAAS;AACR,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC5B;KACD;AACF,CAAC;AAED,SAAS,oBAAoB,CAC5B,MAAc,EACd,UAAkD,EAAA;IAElD,QAAQ,UAAU;QACjB,KAAK,QAAQ,EAAE;AACd,YAAA,OAAO,YAAY,CAAC;SACpB;QACD,KAAK,MAAM,EAAE;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC;SACjB;AACD,QAAA,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;gBACX,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;AACd,aAAA,CAAC,CAAC;SACH;QACD,KAAK,MAAM,EAAE;AACZ,YAAA,OAAO,UAAU,CAAC;SAClB;QACD,KAAK,MAAM,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC;gBACX,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,MAAM;AACd,aAAA,CAAC,CAAC;SACH;QACD,SAAS;AACR,YAAA,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;SAChB;KACD;AACF,CAAC;AAED;AACO,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,GAA4C,KAC3F,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAEzG;AACO,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,GAA4C,KACnF,CAAC,GAAG,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAEjH;AACO,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAI;AACnE,IAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC9B;IACD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;KACpD;AAED,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,IAAA,IAAI,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KAClC;AACD,IAAA,IAAI,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KAC/B;AAED,IAAA,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC;AAEH;AACO,MAAM,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAI;AAC3E,IAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC9B;IACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACvB,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;KACpD;AAED,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,IAAA,IAAI,MAAM,GAAG,CAAC,EAAE;AACf,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KAClC;AACD,IAAA,IAAI,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE;AACjC,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KAC/B;AAED,IAAA,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,MAAc,EAAE,UAAmD,EAAA;IAChG,QAAQ,UAAU;QACjB,KAAK,OAAO,EAAE;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACxC;QACD,KAAK,QAAQ,EAAE;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SAChD;KACD;IAED,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,UAAkD,EAAA;IAC/F,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;AAC3D,IAAA,IAAI,UAAU,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAC,CAAA,MAAA,EAAS,MAAM,GAAG,CAAA,CAAA,EAAI,aAAa,GAAG,MAAM,GAAG,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,CAAG,CAAA,CAAA,GAAG,GAAG,CAAA,EAAA,CAAI,CAAC;aACpF,QAAQ,CACR,CACC,iCAAA,EAAA,MAAM,GAAG,CAAgB,aAAA,EAAA,aAAa,GAAG,EAAE,GAAG,QAAQ,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,EACrF,CAAE,CAAA,CACF,CAAC;KACH;AACD,IAAA,IAAI,UAAU,KAAK,MAAM,EAAE;QAC1B,OAAO,IAAI,CAAC,8CAA8C,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;KAClG;AACD,IAAA,IAAI,UAAU,KAAK,MAAM,EAAE;AAC1B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CACd,CAAA,QAAA,EAAW,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,0CAAA,CAA4C,CAC3G,CAAC;SACF;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;KACtC;AACD,IAAA,IAAI,UAAU,KAAK,OAAO,EAAE;AAC3B,QAAA,OAAO,sBAAsB,CAAC;KAC9B;AACD,IAAA,IAAI,UAAU,KAAK,QAAQ,EAAE;AAC5B,QAAA,OAAO,8BAA8B,CAAC;KACtC;IAED,OAAO,MAAM,IAAI,aAAa;UAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACnC,UAAE,MAAM;cACN,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;AAClC,cAAE,IAAI,CAAC,MAAM,CAAC;AAChB;;ACxUgB,SAAA,YAAY,CAAmB,MAAc,EAAE,WAAqB,EAAA;IACnF,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,UAAU,CAAC,MAAc,EAAA;IACxC,OAAO,YAAY,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,CAAC;AAEM,MAAM,QAAQ,GAA6D;;ACJlF,SAAS,UAAU,CAAC,SAAuB,EAAA;AAC1C,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CACrB,OAA4B,EAC5B,WAAgC,EAChC,UAAsB,EAAA;IAEtB,MAAM,aAAa,GAAyB,EAAE,CAAC;AAE/C,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtD,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9G,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACxF,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAChF,SAAS;SACT;AAED,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IACC,UAAU,KAAK,SAAS;AACrB,gBAAC,OAAO,UAAU,KAAK,UAAU,KAAK,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,EACjH;AACD,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAChC,SAAS;SACT;AAED,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3D,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAA,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE/E,QAAA,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,SAAS;SACT;aAAM;AACN,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC7B;QAED,IAAI,MAAM,EAAE;AACX,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD;AAED,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAChC,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAE,CAAC,QAAQ,EAAS,CAAC;aAC3D;SACD;KACD;AAED,IAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5B,CAAC;AAEY,MAAA,kBAAkB,IAAI,CAClC,MAAoD,EACpD,MAA4B,KACzB;AACH,IAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KAC7C;AACD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;AAC3C,QAAA,KAAK,EAAE,MAAM,KAAK;AAClB,QAAA,QAAQ,EAAE,MAAM,KAAK;QACrB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC,EAAwB;AAEZ,MAAA,kBAAkB,IAAI,CAClC,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KACb,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACjF,gBAAC,UAAU,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,OAAQ,MAAc,EAAE,QAAQ,KAAK,WAAW,CAAC;AACtF,QAAA,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;QAC9E,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC,EAAwB;AAEZ,MAAA,kBAAkB,IAAI,CAClC,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KACb,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACjF,gBAAC,UAAU,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,OAAQ,MAAc,EAAE,QAAQ,KAAK,WAAW,CAAC;AACtF,QAAA,QAAQ,EAAE,MAAM,IAAI;QACpB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,CAAC;;;;"}