@balena/pinejs 15.0.0-build-15-x-4681209f5dd8d896491fb5ed64aea47df511c14d-1 → 15.0.0-build-15-x-bf3a44dfe299de8966cf9bc201fa13fdf9d4a747-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. package/.pinejs-cache.json +1 -1
  2. package/.versionbot/CHANGELOG.yml +1479 -103
  3. package/CHANGELOG.md +523 -2
  4. package/Dockerfile +1 -1
  5. package/out/bin/odata-compiler.js +4 -1
  6. package/out/bin/odata-compiler.js.map +1 -1
  7. package/out/config-loader/config-loader.d.ts +5 -2
  8. package/out/config-loader/config-loader.js +46 -18
  9. package/out/config-loader/config-loader.js.map +1 -1
  10. package/out/database-layer/db.d.ts +1 -0
  11. package/out/database-layer/db.js +3 -0
  12. package/out/database-layer/db.js.map +1 -1
  13. package/out/migrator/async.js +14 -8
  14. package/out/migrator/async.js.map +1 -1
  15. package/out/migrator/utils.d.ts +3 -4
  16. package/out/migrator/utils.js +11 -1
  17. package/out/migrator/utils.js.map +1 -1
  18. package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
  19. package/out/passport-pinejs/passport-pinejs.js +3 -3
  20. package/out/passport-pinejs/passport-pinejs.js.map +1 -1
  21. package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
  22. package/out/sbvr-api/abstract-sql.js +2 -1
  23. package/out/sbvr-api/abstract-sql.js.map +1 -1
  24. package/out/sbvr-api/hooks.d.ts +3 -3
  25. package/out/sbvr-api/hooks.js +44 -29
  26. package/out/sbvr-api/hooks.js.map +1 -1
  27. package/out/sbvr-api/permissions.js +6 -4
  28. package/out/sbvr-api/permissions.js.map +1 -1
  29. package/out/sbvr-api/sbvr-utils.d.ts +11 -5
  30. package/out/sbvr-api/sbvr-utils.js +151 -61
  31. package/out/sbvr-api/sbvr-utils.js.map +1 -1
  32. package/out/sbvr-api/translations.d.ts +6 -0
  33. package/out/sbvr-api/translations.js +150 -0
  34. package/out/sbvr-api/translations.js.map +1 -0
  35. package/out/sbvr-api/uri-parser.d.ts +5 -2
  36. package/out/sbvr-api/uri-parser.js +2 -0
  37. package/out/sbvr-api/uri-parser.js.map +1 -1
  38. package/package.json +19 -17
  39. package/src/bin/odata-compiler.ts +4 -2
  40. package/src/config-loader/config-loader.ts +84 -29
  41. package/src/database-layer/db.ts +3 -0
  42. package/src/migrator/async.ts +22 -12
  43. package/src/migrator/utils.ts +16 -5
  44. package/src/passport-pinejs/passport-pinejs.ts +4 -4
  45. package/src/sbvr-api/abstract-sql.ts +4 -2
  46. package/src/sbvr-api/hooks.ts +80 -33
  47. package/src/sbvr-api/permissions.ts +15 -7
  48. package/src/sbvr-api/sbvr-utils.ts +258 -84
  49. package/src/sbvr-api/translations.ts +248 -0
  50. package/src/sbvr-api/uri-parser.ts +9 -2
  51. package/tsconfig.dev.json +1 -0
@@ -33,6 +33,7 @@ var abstract_sql_2 = require("./abstract-sql");
33
33
  Object.defineProperty(exports, "resolveOdataBind", { enumerable: true, get: function () { return abstract_sql_2.resolveOdataBind; } });
34
34
  const odataResponse = require("./odata-response");
35
35
  const module_1 = require("../server-glue/module");
36
+ const translations_1 = require("./translations");
36
37
  const LF2AbstractSQLTranslator = LF2AbstractSQL.createTranslator(sbvrTypes);
37
38
  const LF2AbstractSQLTranslatorVersion = `${package_json_2.version}+${package_json_3.version}`;
38
39
  const models = {};
@@ -85,7 +86,7 @@ const prettifyConstraintError = (err, request) => {
85
86
  break;
86
87
  case 'postgres':
87
88
  const resourceName = (0, exports.resolveSynonym)(request);
88
- const abstractSqlModel = (0, exports.getAbstractSqlModel)(request);
89
+ const abstractSqlModel = getFinalAbstractSqlModel(request);
89
90
  matches = new RegExp('"' + abstractSqlModel.tables[resourceName].name + '_(.*?)_key"').exec(err.message);
90
91
  break;
91
92
  }
@@ -108,7 +109,7 @@ const prettifyConstraintError = (err, request) => {
108
109
  break;
109
110
  case 'postgres':
110
111
  const resourceName = (0, exports.resolveSynonym)(request);
111
- const abstractSqlModel = (0, exports.getAbstractSqlModel)(request);
112
+ const abstractSqlModel = getFinalAbstractSqlModel(request);
112
113
  const tableName = abstractSqlModel.tables[resourceName].name;
113
114
  matches = new RegExp('"' +
114
115
  tableName +
@@ -129,7 +130,7 @@ const prettifyConstraintError = (err, request) => {
129
130
  }
130
131
  if (err instanceof exports.db.CheckConstraintError) {
131
132
  const resourceName = (0, exports.resolveSynonym)(request);
132
- const abstractSqlModel = (0, exports.getAbstractSqlModel)(request);
133
+ const abstractSqlModel = getFinalAbstractSqlModel(request);
133
134
  const table = abstractSqlModel.tables[resourceName];
134
135
  if (table.checks) {
135
136
  switch (exports.db.engine) {
@@ -166,14 +167,41 @@ const isModelNew = async (tx, modelName) => {
166
167
  return !cachedIsModelNew.has(modelName);
167
168
  };
168
169
  exports.isModelNew = isModelNew;
170
+ const bindsForAffectedIds = (bindings, request) => {
171
+ if (request?.affectedIds == null) {
172
+ return {};
173
+ }
174
+ const tableName = (0, exports.getAbstractSqlModel)(request).tables[(0, exports.resolveSynonym)(request)].name;
175
+ const isDelete = request.method === 'DELETE';
176
+ const odataBinds = {};
177
+ for (const bind of bindings) {
178
+ if (bind.length !== 2 ||
179
+ bind[0] !== 'Bind' ||
180
+ typeof bind[1] !== 'string') {
181
+ continue;
182
+ }
183
+ const bindName = bind[1];
184
+ if (!isDelete && bindName === tableName) {
185
+ odataBinds[bindName] = ['Text', `{${request.affectedIds}}`];
186
+ }
187
+ else {
188
+ odataBinds[bindName] = ['Text', '{}'];
189
+ }
190
+ }
191
+ return odataBinds;
192
+ };
169
193
  const validateModel = async (tx, modelName, request) => {
170
- await Promise.all(models[modelName].sql.rules.map(async (rule) => {
194
+ const { sql } = models[modelName];
195
+ if (!sql) {
196
+ throw new Error(`Tried to validate a virtual model: '${modelName}'`);
197
+ }
198
+ await Promise.all(sql.rules.map(async (rule) => {
171
199
  if (!(0, abstract_sql_1.isRuleAffected)(rule, request)) {
172
200
  return;
173
201
  }
174
202
  const values = await (0, abstract_sql_1.getAndCheckBindValues)({
175
203
  vocabulary: modelName,
176
- odataBinds: [],
204
+ odataBinds: bindsForAffectedIds(rule.bindings, request),
177
205
  values: {},
178
206
  engine: exports.db.engine,
179
207
  }, rule.bindings);
@@ -191,8 +219,8 @@ const generateAbstractSqlModel = (lfModel) => (0, cached_compile_1.cachedCompile
191
219
  exports.generateAbstractSqlModel = generateAbstractSqlModel;
192
220
  const generateSqlModel = (abstractSql, targetDatabaseEngine) => (0, cached_compile_1.cachedCompile)('sqlModel', package_json_1.version + '+' + targetDatabaseEngine, abstractSql, () => AbstractSQLCompiler[targetDatabaseEngine].compileSchema(abstractSql));
193
221
  exports.generateSqlModel = generateSqlModel;
194
- const generateModels = (model, targetDatabaseEngine) => {
195
- const { apiRoot: vocab, modelText: se } = model;
222
+ function generateModels(model, targetDatabaseEngine) {
223
+ const { apiRoot: vocab, modelText: se, translateTo, translations } = model;
196
224
  let { abstractSql: maybeAbstractSql } = model;
197
225
  let lf;
198
226
  if (se) {
@@ -214,15 +242,33 @@ const generateModels = (model, targetDatabaseEngine) => {
214
242
  const abstractSql = maybeAbstractSql;
215
243
  const odataMetadata = (0, cached_compile_1.cachedCompile)('metadata', odata_metadata_generator_1.generateODataMetadata.version, { vocab, abstractSqlModel: abstractSql }, () => (0, odata_metadata_generator_1.generateODataMetadata)(vocab, abstractSql));
216
244
  let sql;
217
- try {
218
- sql = (0, exports.generateSqlModel)(abstractSql, targetDatabaseEngine);
245
+ let resourceRenames;
246
+ if (translateTo != null) {
247
+ resourceRenames = (0, translations_1.translateAbstractSqlModel)(abstractSql, models[translateTo].abstractSql, model.apiRoot, translateTo, translations);
219
248
  }
220
- catch (e) {
221
- console.error(`Error compiling model '${vocab}':`, e);
222
- throw new Error(`Error compiling model '${vocab}': ` + e);
249
+ else {
250
+ for (const [key, table] of Object.entries(abstractSql.tables)) {
251
+ abstractSql.tables[`${key}$${model.apiRoot}`] = { ...table };
252
+ }
253
+ try {
254
+ sql = (0, exports.generateSqlModel)(abstractSql, targetDatabaseEngine);
255
+ }
256
+ catch (e) {
257
+ console.error(`Error compiling model '${vocab}':`, e);
258
+ throw new Error(`Error compiling model '${vocab}': ` + e);
259
+ }
223
260
  }
224
- return { vocab, se, lf, abstractSql, sql, odataMetadata };
225
- };
261
+ return {
262
+ vocab,
263
+ translateTo,
264
+ resourceRenames,
265
+ se,
266
+ lf,
267
+ abstractSql,
268
+ sql,
269
+ odataMetadata,
270
+ };
271
+ }
226
272
  exports.generateModels = generateModels;
227
273
  const executeModel = (tx, model) => (0, exports.executeModels)(tx, [model]);
228
274
  exports.executeModel = executeModel;
@@ -231,21 +277,32 @@ const executeModels = async (tx, execModels) => {
231
277
  const compiledModels = await Promise.all(execModels.map(async (model) => {
232
278
  const { apiRoot } = model;
233
279
  await syncMigrator.run(tx, model);
234
- const compiledModel = (0, exports.generateModels)(model, exports.db.engine);
235
- for (const createStatement of compiledModel.sql.createSchema) {
236
- const promise = tx.executeSql(createStatement);
237
- if (exports.db.engine === 'websql') {
238
- promise.catch((err) => {
239
- console.warn("Ignoring errors in the create table statements for websql as it doesn't support CREATE IF NOT EXISTS", err);
240
- });
280
+ const compiledModel = generateModels(model, exports.db.engine);
281
+ if (compiledModel.sql) {
282
+ for (const createStatement of compiledModel.sql.createSchema) {
283
+ const promise = tx.executeSql(createStatement);
284
+ if (exports.db.engine === 'websql') {
285
+ promise.catch((err) => {
286
+ console.warn("Ignoring errors in the create table statements for websql as it doesn't support CREATE IF NOT EXISTS", err);
287
+ });
288
+ }
289
+ await promise;
241
290
  }
242
- await promise;
243
291
  }
244
292
  await syncMigrator.postRun(tx, model);
245
293
  odataResponse.prepareModel(compiledModel.abstractSql);
246
294
  deepFreeze(compiledModel.abstractSql);
247
- models[apiRoot] = compiledModel;
248
- await (0, exports.validateModel)(tx, apiRoot);
295
+ const versions = [apiRoot];
296
+ if (compiledModel.translateTo != null) {
297
+ versions.push(...models[compiledModel.translateTo].versions);
298
+ }
299
+ models[apiRoot] = {
300
+ ...compiledModel,
301
+ versions,
302
+ };
303
+ if (compiledModel.sql) {
304
+ await (0, exports.validateModel)(tx, apiRoot);
305
+ }
249
306
  exports.api[apiRoot] = new PinejsClient('/' + apiRoot + '/');
250
307
  exports.api[apiRoot].logger = { ...console };
251
308
  if (model.logging != null) {
@@ -332,23 +389,26 @@ const cleanupModel = (vocab) => {
332
389
  delete exports.api[vocab];
333
390
  };
334
391
  const deleteModel = async (vocabulary) => {
335
- await exports.db.transaction(async (tx) => {
336
- const dropStatements = models[vocabulary].sql.dropSchema.map((dropStatement) => tx.executeSql(dropStatement));
337
- await Promise.all(dropStatements.concat([
338
- exports.api.dev.delete({
339
- resource: 'model',
340
- passthrough: {
341
- tx,
342
- req: permissions.root,
343
- },
344
- options: {
345
- $filter: {
346
- is_of__vocabulary: vocabulary,
392
+ const { sql } = models[vocabulary];
393
+ if (sql) {
394
+ await exports.db.transaction(async (tx) => {
395
+ const dropStatements = sql.dropSchema.map((dropStatement) => tx.executeSql(dropStatement));
396
+ await Promise.all(dropStatements.concat([
397
+ exports.api.dev.delete({
398
+ resource: 'model',
399
+ passthrough: {
400
+ tx,
401
+ req: permissions.root,
347
402
  },
348
- },
349
- }),
350
- ]));
351
- });
403
+ options: {
404
+ $filter: {
405
+ is_of__vocabulary: vocabulary,
406
+ },
407
+ },
408
+ }),
409
+ ]));
410
+ });
411
+ }
352
412
  await cleanupModel(vocabulary);
353
413
  };
354
414
  exports.deleteModel = deleteModel;
@@ -554,7 +614,11 @@ const getAbstractSqlModel = (request) => {
554
614
  return (request.abstractSqlModel ??= models[request.vocabulary].abstractSql);
555
615
  };
556
616
  exports.getAbstractSqlModel = getAbstractSqlModel;
557
- const getIdField = (request) => (0, exports.getAbstractSqlModel)(request).tables[(0, exports.resolveSynonym)(request)].idField;
617
+ const getFinalAbstractSqlModel = (request) => {
618
+ const finalModel = _.last(request.translateVersions);
619
+ return (request.finalAbstractSqlModel ??= models[finalModel].abstractSql);
620
+ };
621
+ const getIdField = (request) => getFinalAbstractSqlModel(request).tables[(0, exports.resolveSynonym)(request)].idField;
558
622
  const getAffectedIds = async (args) => {
559
623
  const { request } = args;
560
624
  if (request.affectedIds) {
@@ -578,6 +642,7 @@ const $getAffectedIds = async ({ req, request, tx, }) => {
578
642
  url: `/${request.vocabulary}${request.url}`,
579
643
  });
580
644
  parsedRequest.engine = request.engine;
645
+ parsedRequest.translateVersions = request.translateVersions;
581
646
  let affectedRequest = parsedRequest;
582
647
  const abstractSqlModel = (0, exports.getAbstractSqlModel)(affectedRequest);
583
648
  const resourceName = (0, exports.resolveSynonym)(affectedRequest);
@@ -608,10 +673,14 @@ const runODataRequest = (req, vocabulary) => {
608
673
  if (module_1.env.DEBUG) {
609
674
  exports.api[vocabulary].logger.log('Parsing', req.method, req.url);
610
675
  }
611
- const reqHooks = (0, hooks_1.getHooks)({
612
- method: req.method,
613
- vocabulary,
614
- });
676
+ const { versions } = models[vocabulary];
677
+ const reqHooks = versions.map((version) => [
678
+ version,
679
+ (0, hooks_1.getHooks)({
680
+ method: req.method,
681
+ vocabulary: version,
682
+ }, version === versions[0]),
683
+ ]);
615
684
  const transactions = [];
616
685
  const tryCancelRequest = () => {
617
686
  transactions.forEach(async (tx) => {
@@ -647,14 +716,33 @@ const runODataRequest = (req, vocabulary) => {
647
716
  }
648
717
  const prepareRequest = async (parsedRequest) => {
649
718
  parsedRequest.engine = exports.db.engine;
719
+ parsedRequest.translateVersions = [...versions];
650
720
  const $request = parsedRequest;
651
- $request.hooks = (0, hooks_1.getHooks)($request);
652
721
  try {
653
- await (0, hooks_1.runHooks)('POSTPARSE', $request.hooks, {
654
- req,
655
- request: $request,
656
- tx: req.tx,
657
- });
722
+ $request.hooks = [];
723
+ for (const version of versions) {
724
+ const hooks = [
725
+ version,
726
+ (0, hooks_1.getHooks)({
727
+ resourceName: $request.resourceName,
728
+ vocabulary: version,
729
+ method: $request.method,
730
+ }, version === versions[0]),
731
+ ];
732
+ $request.hooks.push(hooks);
733
+ await (0, hooks_1.runHooks)('POSTPARSE', [hooks], {
734
+ req,
735
+ request: $request,
736
+ tx: req.tx,
737
+ });
738
+ const { resourceRenames } = models[version];
739
+ if (resourceRenames) {
740
+ const resourceName = (0, exports.resolveSynonym)($request);
741
+ if (resourceRenames[resourceName]) {
742
+ $request.resourceName = (0, odata_to_abstract_sql_1.sqlNameToODataName)(resourceRenames[resourceName]);
743
+ }
744
+ }
745
+ }
658
746
  const translatedRequest = await uriParser.translateUri($request);
659
747
  return await (0, abstract_sql_1.compileRequest)(translatedRequest);
660
748
  }
@@ -882,7 +970,8 @@ const runChangeSet = (req, tx) => async (changeSetResults, request) => {
882
970
  };
883
971
  const updateBinds = (changeSetResults, request) => {
884
972
  if (request._defer) {
885
- request.odataBinds = request.odataBinds.map(([tag, id]) => {
973
+ for (let i = 0; i < request.odataBinds.length; i++) {
974
+ const [tag, id] = request.odataBinds[i];
886
975
  if (tag === 'ContentReference') {
887
976
  const ref = changeSetResults.get(id);
888
977
  if (ref?.body == null ||
@@ -890,10 +979,9 @@ const updateBinds = (changeSetResults, request) => {
890
979
  ref.body.id === undefined) {
891
980
  throw new errors_1.BadRequestError('Reference to a non existing resource in Changeset');
892
981
  }
893
- return uriParser.parseId(ref.body.id);
982
+ request.odataBinds[i] = uriParser.parseId(ref.body.id);
894
983
  }
895
- return [tag, id];
896
- });
984
+ }
897
985
  }
898
986
  return request;
899
987
  };
@@ -923,7 +1011,9 @@ const checkReadOnlyRequests = (request) => {
923
1011
  if (hooks == null) {
924
1012
  return true;
925
1013
  }
926
- return Object.values(hooks).every((hookTypeHooks) => hookTypeHooks == null || hookTypeHooks.every((hook) => hook.readOnlyTx));
1014
+ return hooks.every(([, versionedHooks]) => Object.values(versionedHooks).every((hookTypeHooks) => {
1015
+ return (hookTypeHooks == null || hookTypeHooks.every((hook) => hook.readOnlyTx));
1016
+ }));
927
1017
  };
928
1018
  const runTransaction = async (req, request, callback) => {
929
1019
  if (req.tx != null) {
@@ -977,7 +1067,7 @@ const respondGet = async (req, request, result, tx) => {
977
1067
  const metadata = format != null && typeof format === 'object'
978
1068
  ? format.metadata
979
1069
  : undefined;
980
- const d = await odataResponse.process(vocab, (0, exports.getAbstractSqlModel)(request), request.resourceName, result.rows, { includeMetadata: metadata === 'full' });
1070
+ const d = await odataResponse.process(vocab, (0, exports.getAbstractSqlModel)(request), request.originalResourceName, result.rows, { includeMetadata: metadata === 'full' });
981
1071
  const response = {
982
1072
  statusCode: 200,
983
1073
  body: { d },
@@ -1013,12 +1103,12 @@ const runPost = async (_req, request, tx) => {
1013
1103
  if (rowsAffected === 0) {
1014
1104
  throw new errors_1.PermissionError();
1015
1105
  }
1016
- await (0, exports.validateModel)(tx, request.vocabulary, request);
1106
+ await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
1017
1107
  return insertId;
1018
1108
  };
1019
1109
  const respondPost = async (req, request, id, tx) => {
1020
1110
  const vocab = request.vocabulary;
1021
- const location = odataResponse.resourceURI(vocab, request.resourceName, id);
1111
+ const location = odataResponse.resourceURI(vocab, request.originalResourceName, id);
1022
1112
  if (module_1.env.DEBUG) {
1023
1113
  exports.api[vocab].logger.log('Insert ID: ', request.resourceName, id);
1024
1114
  }
@@ -1061,7 +1151,7 @@ const runPut = async (_req, request, tx) => {
1061
1151
  ({ rowsAffected } = await runQuery(tx, request, undefined, idField));
1062
1152
  }
1063
1153
  if (rowsAffected > 0) {
1064
- await (0, exports.validateModel)(tx, request.vocabulary, request);
1154
+ await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
1065
1155
  }
1066
1156
  return undefined;
1067
1157
  };
@@ -1083,7 +1173,7 @@ const respondOptions = respondPut;
1083
1173
  const runDelete = async (_req, request, tx) => {
1084
1174
  const { rowsAffected } = await runQuery(tx, request, undefined, getIdField(request));
1085
1175
  if (rowsAffected > 0) {
1086
- await (0, exports.validateModel)(tx, request.vocabulary, request);
1176
+ await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
1087
1177
  }
1088
1178
  return undefined;
1089
1179
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sbvr-utils.js","sourceRoot":"","sources":["../../src/sbvr-api/sbvr-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sbvr-utils.js","sourceRoot":"","sources":["../../src/sbvr-api/sbvr-utils.ts"],"names":[],"mappings":";;;AAcA,4BAA4B;AAG5B,qDAAiD;AAGjD,qEAAqE;AACrE,6EAAmG;AACnG,6DAA6D;AAE7D,yEAKuC;AACvC,gDAAgD;AAsDvC,8BAAS;AArDlB,0CAA2C;AAC3C,2DAA0E;AAE1E,uFAAkF;AAElF,mDAAmD;AACnD,iDAAiD;AACjD,yFAAmF;AAGnF,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACvC,6CAA6C;AAC7C,qCAekB;AAClB,0CAA0C;AAC1C,mCAOiB;AACjB,iCAOiB;AAFhB,oGAAA,WAAW,OAAA;AACX,0GAAA,iBAAiB,OAAA;AAKlB,6CAA8C;AAC9C,8CAA8C;AAEnC,QAAA,EAAE,GAAG,SAA+B,CAAC;AAIhD,0EAA2F;AAC3F,kEAA8E;AAC9E,iDAIwB;AACxB,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AACzB,kDAAkD;AAClD,kDAA4C;AAC5C,iDAA2D;AAE3D,MAAM,wBAAwB,GAAG,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC5E,MAAM,+BAA+B,GAAG,GAAG,sBAAqB,IAAI,sBAAgB,EAAE,CAAC;AAgBvF,MAAM,MAAM,GAIR,EAAE,CAAC;AA0BP,MAAM,uBAAuB,GAAG,WAAW,CAC1C,CACC,gBAAsD,EACtD,YAAoB,EACX,EAAE;IACX,MAAM,OAAO,GAAG,IAAA,0CAAkB,EAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,OAAO,OAAO,CAAC;SACf;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,CAAC;AAEK,MAAM,cAAc,GAAG,CAC7B,OAGC,EACQ,EAAE;IACX,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IACtD,OAAO,uBAAuB,CAAC,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AACxE,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEF,MAAM,iCAAiC,GAAG,WAAW,CACpD,CACC,gBAAsD,EACtD,YAAoB,EACpB,cAAsB,EACb,EAAE;IACX,MAAM,UAAU,GAAG,IAAA,0CAAkB,EAAC,cAAc,CAAC;SACnD,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrB,uBAAuB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAC9D,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,oBAAoB,GAAG,uBAAuB,CACnD,gBAAgB,EAChB,YAAY,CACZ,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CACpB,gBAAgB,CAAC,aAAa,CAAC,oBAAoB,CAAC,EACpD,UAAU,CAC6C,CAAC;IACzD,IAAI,OAAO,IAAI,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CACd,yBAAyB,YAAY,SAAS,cAAc,GAAG,CAC/D,CAAC;KACF;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CACd,IAAI,YAAY,SAAS,cAAc,+BAA+B,CACtE,CAAC;KACF;IAGD,OAAO,IAAA,0CAAkB,EAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,CAAC;AACK,MAAM,yBAAyB,GAAG,CACxC,OAGC,EACD,cAAsB,EACb,EAAE;IACX,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC;IACtD,OAAO,iCAAiC,CACvC,gBAAgB,EAChB,OAAO,CAAC,YAAY,EACpB,cAAc,CACd,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC;AAGF,MAAM,uBAAuB,GAAG,CAC/B,GAAuB,EACvB,OAA+B,EAC9B,EAAE;IACH,IAAI,GAAG,YAAY,UAAE,CAAC,eAAe,EAAE;QACtC,IAAI,OAAO,GAA2B,IAAI,CAAC;QAC3C,IAAI,GAAG,YAAY,UAAE,CAAC,qBAAqB,EAAE;YAC5C,QAAQ,UAAE,CAAC,MAAM,EAAE;gBAClB,KAAK,OAAO;oBACX,OAAO;wBACN,+DAA+D,CAAC,IAAI,CACnE,GAAG,CAAC,OAAO,CACX,CAAC;oBACH,MAAM;gBACP,KAAK,UAAU;oBACd,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC;oBAC7C,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;oBAC3D,OAAO,GAAG,IAAI,MAAM,CACnB,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,aAAa,CAChE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,MAAM;aACP;YAED,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,MAAM,IAAI,UAAE,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,CAAC;aACrE;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,UAAE,CAAC,qBAAqB,CACjC,GAAG;gBACF,OAAO,CAAC,GAAG,CAAC,0CAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC/C,mBAAmB,CACpB,CAAC;SACF;QAED,IAAI,GAAG,YAAY,UAAE,CAAC,wBAAwB,EAAE;YAE/C,MAAM,IAAI,UAAE,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;SACvE;QAED,IAAI,GAAG,YAAY,UAAE,CAAC,yBAAyB,EAAE;YAChD,QAAQ,UAAE,CAAC,MAAM,EAAE;gBAClB,KAAK,OAAO;oBACX,OAAO;wBACN,gHAAgH,CAAC,IAAI,CACpH,GAAG,CAAC,OAAO,CACX,CAAC;oBACH,MAAM;gBACP,KAAK,UAAU;oBACd,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC;oBAC7C,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;oBAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;oBAC7D,OAAO,GAAG,IAAI,MAAM,CACnB,GAAG;wBACF,SAAS;wBACT,0DAA0D,CAC3D,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,OAAO,GAAG,IAAI,MAAM,CACnB,GAAG;4BACF,SAAS;4BACT,qCAAqC;4BACrC,SAAS;4BACT,cAAc,CACf,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;qBACpB;oBACD,MAAM;aACP;YAGD,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,MAAM,IAAI,UAAE,CAAC,yBAAyB,CACrC,iCAAiC,CACjC,CAAC;aACF;YACD,MAAM,IAAI,UAAE,CAAC,yBAAyB,CACrC,wBAAwB,GAAG,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAC/D,CAAC;SACF;QAED,IAAI,GAAG,YAAY,UAAE,CAAC,oBAAoB,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,MAAM,EAAE;gBACjB,QAAQ,UAAE,CAAC,MAAM,EAAE;oBAClB,KAAK,UAAU;wBACd,OAAO,GAAG,IAAI,MAAM,CACnB,wBAAwB;4BACvB,KAAK,CAAC,IAAI;4BACV,qCAAqC,CACtC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACpB,MAAM;iBACP;aACD;YACD,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE;oBAC/B,MAAM,IAAI,wBAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;iBAC7C;aACD;YAGD,MAAM,IAAI,wBAAe,CAAC,2BAA2B,CAAC,CAAC;SACvD;QAGD,GAAG,CAAC,OAAO,GAAG,mBAAmB,CAAC;QAClC,MAAM,GAAG,CAAC;KACV;AACF,CAAC,CAAC;AAEF,IAAI,gBAAyC,CAAC;AAgBvC,MAAM,UAAU,GAAG,KAAK,EAC9B,EAAS,EACT,SAAiB,EACE,EAAE;IACrB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAC;KACZ;IACD,IAAI,gBAAgB,IAAI,IAAI,EAAE;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CACnC,yCAAyC,CACzC,CAAC;QACF,gBAAgB,GAAG,IAAI,GAAG,CACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAC1C,CAAC;KACF;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC,CAAC;AAlBW,QAAA,UAAU,cAkBrB;AAEF,MAAM,mBAAmB,GAAG,CAC3B,QAAuC,EACvC,OAOC,EACA,EAAE;IACH,IAAI,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE;QACjC,OAAO,EAAE,CAAC;KACV;IAED,MAAM,SAAS,GACd,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAInE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC;IAE7C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC5B,IACC,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;YAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC1B;YACD,SAAS;SACT;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;SAC5D;aAAM;YACN,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACtC;KACD;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,KAAK,EACjC,EAAS,EACT,SAAiB,EACjB,OAQC,EACe,EAAE;IAClB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,GAAG,CAAC,CAAC;KACrE;IACD,MAAM,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAA,6BAAc,EAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAEnC,OAAO;SACP;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAqB,EACzC;YACC,UAAU,EAAE,SAAS;YAUrB,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAQ;YAC9D,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,UAAE,CAAC,MAAM;SACjB,EACD,IAAI,CAAC,QAAQ,CACb,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAErD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;YACxC,MAAM,IAAI,4BAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACtD;IACF,CAAC,CAAC,CACF,CAAC;AACH,CAAC,CAAC;AAlDW,QAAA,aAAa,iBAkDxB;AAEK,MAAM,eAAe,GAAG,CAAC,OAAe,EAAW,EAAE,CAC3D,IAAA,8BAAa,EAAC,SAAS,EAAE,yCAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAClE,yCAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAC/C,CAAC;AAHU,QAAA,eAAe,mBAGzB;AAEI,MAAM,wBAAwB,GAAG,CACvC,OAAgB,EACuB,EAAE,CACzC,IAAA,8BAAa,EACZ,kBAAkB,EAClB,+BAA+B,EAC/B,OAAO,EACP,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAClD,CAAC;AARU,QAAA,wBAAwB,4BAQlC;AAEI,MAAM,gBAAgB,GAAG,CAC/B,WAAiD,EACjD,oBAAiD,EAClB,EAAE,CACjC,IAAA,8BAAa,EACZ,UAAU,EACV,sBAA0B,GAAG,GAAG,GAAG,oBAAoB,EACvD,WAAW,EACX,GAAG,EAAE,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAC1E,CAAC;AATU,QAAA,gBAAgB,oBAS1B;AAUH,SAAgB,cAAc,CAC7B,KAAsB,EACtB,oBAAiD;IAEjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC3E,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,EAAkD,CAAC;IACvD,IAAI,EAAE,EAAE;QACP,IAAI;YACH,EAAE,GAAG,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;SACxD;QAED,IAAI;YACH,gBAAgB,GAAG,IAAA,gCAAwB,EAAC,EAAE,CAAC,CAAC;SAChD;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5D;KACD;IACD,MAAM,WAAW,GAAG,gBAAiB,CAAC;IAEtC,MAAM,aAAa,GAAG,IAAA,8BAAa,EAClC,UAAU,EACV,gDAAqB,CAAC,OAAO,EAC7B,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,EACxC,GAAG,EAAE,CAAC,IAAA,gDAAqB,EAAC,KAAK,EAAE,WAAW,CAAC,CAC/C,CAAC;IAEF,IAAI,GAA6C,CAAC;IAClD,IAAI,eAAyE,CAAC;IAE9E,IAAI,WAAW,IAAI,IAAI,EAAE;QACxB,eAAe,GAAG,IAAA,wCAAyB,EAC1C,WAAW,EACX,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAC/B,KAAK,CAAC,OAAO,EACb,WAAW,EACX,YAAY,CACZ,CAAC;KACF;SAAM;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAE9D,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;SAC7D;QACD,IAAI;YACH,GAAG,GAAG,IAAA,wBAAgB,EAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;SAC1D;KACD;IAED,OAAO;QACN,KAAK;QACL,WAAW;QACX,eAAe;QACf,EAAE;QACF,EAAE;QACF,WAAW;QACX,GAAG;QACH,aAAa;KACb,CAAC;AACH,CAAC;AAlED,wCAkEC;AAEM,MAAM,YAAY,GAAG,CAC3B,EAAS,EACT,KAAsB,EACN,EAAE,CAAC,IAAA,qBAAa,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAHlC,QAAA,YAAY,gBAGsB;AAExC,MAAM,aAAa,GAAG,KAAK,EACjC,EAAS,EACT,UAA6B,EACb,EAAE;IAClB,IAAI;QACH,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAE1B,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,UAAE,CAAC,MAAM,CAAC,CAAC;YAEvD,IAAI,aAAa,CAAC,GAAG,EAAE;gBAGtB,KAAK,MAAM,eAAe,IAAI,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE;oBAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBAC/C,IAAI,UAAE,CAAC,MAAM,KAAK,QAAQ,EAAE;wBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;4BACrB,OAAO,CAAC,IAAI,CACX,sGAAsG,EACtG,GAAG,CACH,CAAC;wBACH,CAAC,CAAC,CAAC;qBACH;oBACD,MAAM,OAAO,CAAC;iBACd;aACD;YACD,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAEtC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACtD,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAEtC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,aAAa,CAAC,WAAW,IAAI,IAAI,EAAE;gBACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC7D;YACD,MAAM,CAAC,OAAO,CAAC,GAAG;gBACjB,GAAG,aAAa;gBAChB,QAAQ;aACR,CAAC;YAKF,IAAI,aAAa,CAAC,GAAG,EAAE;gBACtB,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;aACjC;YAGD,WAAG,CAAC,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAkB,CAAC;YACtE,WAAG,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;gBAC1B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;gBACtD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;oBAC3C,MAAM,GAAG,GAAG,CAAkB,CAAC;oBAC/B,IACC,GAAG,KAAK,SAAS;wBACjB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU;wBACjC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,EACxC;wBACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;qBACrB;iBACD;aACD;YACD,OAAO,aAAa,CAAC;QAEtB,CAAC,CAAC,CACF,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAoB,EAAE,EAAE;YACjD,MAAM,WAAW,GAAG,KAAK,EAAE,SAA8B,EAAE,EAAE;gBAC5D,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE;oBAC7B,OAAO,MAAM,WAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC3B,QAAQ,EAAE,OAAO;wBACjB,WAAW,EAAE;4BACZ,EAAE;4BACF,GAAG,EAAE,WAAW,CAAC,IAAI;yBACrB;wBACD,OAAO,EAAE;4BACR,OAAO,EAAE;gCACR,iBAAiB,EAAE,KAAK,CAAC,KAAK;gCAC9B,UAAU,EAAE,SAAS;6BACrB;yBACD;qBACD,CAAC,CAAC;iBACH;gBACD,MAAM,MAAM,GAAG,CAAC,MAAM,WAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACjC,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE;wBACZ,EAAE;wBACF,GAAG,EAAE,WAAW,CAAC,QAAQ;qBACzB;oBACD,OAAO,EAAE;wBACR,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE;4BACR,iBAAiB,EAAE,KAAK,CAAC,KAAK;4BAC9B,UAAU,EAAE,SAAS;yBACrB;qBACD;iBACD,CAAC,CAA0B,CAAC;gBAE7B,IAAI,MAAM,GAAoB,MAAM,CAAC;gBACrC,IAAI,GAAG,GAAG,YAAY,CAAC;gBACvB,MAAM,IAAI,GAAc;oBACvB,iBAAiB,EAAE,KAAK,CAAC,KAAK;oBAC9B,WAAW,EACV,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ;wBACnC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;wBAC7B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,SAAS;iBACrB,CAAC;gBACF,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,EAAE,IAAI,IAAI,EAAE;oBACf,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;oBACtB,MAAM,GAAG,OAAO,CAAC;oBACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;iBACb;qBAAM;oBACN,GAAG,IAAI,uBAAuB,CAAC;iBAC/B;gBAED,OAAO,MAAM,IAAA,cAAM,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC,CAAC;YAEF,MAAM,OAAO,CAAC,GAAG,CAChB,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CACpE,CAAC;QACH,CAAC,CAAC,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CACF,CAAC;KACF;IAAC,OAAO,GAAQ,EAAE;QAClB,MAAM,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CACF,CAAC;QACF,MAAM,GAAG,CAAC;KACV;AACF,CAAC,CAAC;AAhJW,QAAA,aAAa,iBAgJxB;AAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,WAAG,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;IACvD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,GAAG,EAAE;QACR,MAAM,UAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,cAAc,GAAwB,GAAG,CAAC,UAAU,CAAC,GAAG,CAC7D,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAC/C,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,MAAM,CAAC;gBACrB,WAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBACd,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE;wBACZ,EAAE;wBACF,GAAG,EAAE,WAAW,CAAC,IAAI;qBACrB;oBACD,OAAO,EAAE;wBACR,OAAO,EAAE;4BACR,iBAAiB,EAAE,UAAU;yBAC7B;qBACD;iBACD,CAAC;aACF,CAAC,CACF,CAAC;QACH,CAAC,CAAC,CAAC;KACH;IACD,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB;AAEF,MAAM,WAAW,GAAG,CACnB,CAAsC,EACD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;AAC1D,MAAM,YAAY,GAAG,CACpB,CAAsC,EACA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACrD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,OAA+B,EAAE,EAAE;IACvE,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;KAC1E;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE;QACnD,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;YAC7B,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC9C,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;oBAC7B,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;wBACjC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxB;oBACD,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;wBACjC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACD;aACD;SACD;KACD;IACD,OAAO,CAAC,CAAC;AACV,CAAC,CAAC;AApBW,QAAA,KAAK,SAoBhB;AAEW,QAAA,OAAO,GAAG,CAAC,GAAG,EAAE;IAC5B,MAAM,sBAAsB,GAAG,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACxE,uBAAuB;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;KACD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IAClE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,KAAK,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,OAAgB,CAAC;QACrB,IAAI,QAAiB,CAAC;QACtB,IAAI,gBAAsD,CAAC;QAE3D,IAAI;YACH,OAAO,GAAG,yCAAkB,CAAC,QAAQ,CACpC,OAAO,GAAG,UAAU,GAAG,IAAI,EAC3B,SAAS,CACT,CAAC;SACF;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;SACrD;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI;YACH,QAAQ,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE7D,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACzD;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;SACxD;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,YAAoB,CAAC;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,EAAE;YAC1C,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;aAAM;YACN,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC3C;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAGzD,CAAC;QACF,IACC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;YACxB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC9B,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EACrC;YAED,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,iBAAiB,GAAG,IAAI,CAAC;SACzB;aAAM,IACN,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAClC;YAED,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;aAAM;YACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAChD;QAED,MAAM,gBAAgB,GACrB,eAAe;YACf,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,CAAC;QACzD,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;YAE3C,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAC5B,CAAC,SAA+C,EAAE,EAAE;gBACnD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;oBAC7B,OAAO,SAAS,CAAC;iBACjB;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;iBAChD;gBACD,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CACD,CAAC;SACF;QAGD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAC5B,CAAC,SAA+C,EAAE,EAAE;YACnD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC9B,OAAO,SAAS,CAAC;aACjB;YACD,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC,CACD,CAAC;QACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAE,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC9C;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAqB,EACzC;YACC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,EAAuB;YACnC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,UAAE,CAAC,MAAM;SACjB,EACD,YAAY,CAAC,QAAQ,CACrB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAA,0CAAkB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;aAAM;YACN,MAAM,GAAG,QAAQ,CAAC;SAClB;QACD,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,cAAM,EAChC,KAAK,EACL,GAAG;YACF,KAAK;YACL,GAAG;YACH,IAAA,0CAAkB,EAAC,KAAK,CAAC,YAAY,CAAC;YACtC,WAAW;YACX,MAAM,EACP,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACpB,CAAc,CAAC;QAEhB,WAAW,CAAC,iBAAiB,GAAG,eAAe,CAAC;QAChD,WAAW,CAAC,cAAc,GAAG,YAAY,CAAC;QAC1C,OAAO,WAAW,CAAC;IACpB,CAAC,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AASL,MAAa,YAAa,SAAQ,qCAA8B;IAGxD,KAAK,CAAC,QAAQ,CAAC,EACrB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,EAAE,EACF,GAAG,EACH,MAAM,GAQN;QACA,OAAO,CAAC,MAAM,IAAA,cAAM,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAO,CAAC;IACjE,CAAC;CACD;AApBD,oCAoBC;AAKY,QAAA,GAAG,GAEZ,EAAE,CAAC;AAGA,MAAM,MAAM,GAAG,KAAK,EAC1B,MAAc,EACd,GAAW,EACX,OAAkB,EAAE,EACpB,EAAU,EACV,GAA+B,EAC/B,MAAkB,EACY,EAAE;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;QAC/C,MAAM,IAAI,6BAAoB,EAAE,CAAC;KACjC;IAED,IAAI,IAAsB,CAAC;IAC3B,IAAI,MAA0B,CAAC;IAE/B,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3C,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACpB;SAAM;QACN,IAAI,GAAG,IAAI,IAAI,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;SACzE;QACD,IAAI,GAAG;YACN,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,EAAE;SACf,CAAC;KACF;IAGD,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAoB;QACpC,EAAE,EAAE,CAAC,CAAC,IAAI;QACV,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG,EAAE,GAAG;QACR,IAAI;QACJ,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,EAAE;KACK,CAAC;IAET,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE1D,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;IAEjC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACxB,MAAM,QAAQ,CAAC;KACf;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAoB,CAAC;IAEzE,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,GAAG,EAAE;QAC5C,MAAM,UAAU,GACf,0BAAiB,CAAC,UAA4C,CAAC,CAAC;QACjE,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;SACvD;QACD,MAAM,IAAI,kBAAS,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;KAClE;IAED,OAAO,YAAqC,CAAC;AAC9C,CAAC,CAAC;AAtEW,QAAA,MAAM,UAsEjB;AAEK,MAAM,mBAAmB,GAAG,CAClC,OAAwE,EACjC,EAAE;IACzC,OAAO,CAAC,OAAO,CAAC,gBAAgB,KAAK,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;AAC9E,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF,MAAM,wBAAwB,GAAG,CAChC,OAGC,EACsC,EAAE;IACzC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,CAAC;IACtD,OAAO,CAAC,OAAO,CAAC,qBAAqB,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAClB,OAOC,EACA,EAAE,CAEH,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAEpE,MAAM,cAAc,GAAG,KAAK,EAClC,IAEC,EACmB,EAAE;IACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,OAAO,CAAC,WAAW,EAAE;QACxB,OAAO,OAAO,CAAC,WAAW,CAAC;KAC3B;IAGD,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;QACvC,OAAO,OAAO,CAAC,kBAAkB,CAAC;KAClC;IACD,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAGnD,OAAO,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC;IACvD,OAAO,OAAO,CAAC,kBAAkB,CAAC;IAElC,OAAO,OAAO,CAAC,WAAW,CAAC;AAC5B,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,EAC9B,GAAG,EACH,OAAO,EACP,EAAE,GAGF,EAAqB,EAAE;IACvB,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAIlD,MAAM,IAAI,KAAK,CACd,2DAA2D,CAC3D,CAAC;KACF;IAGD,MAAM,aAAa,GAElB,MAAM,SAAS,CAAC,UAAU,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;KAC3C,CAAC,CAAC;IAEJ,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,aAAa,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAE5D,IAAI,eAAe,GAA2B,aAG7C,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,eAAe,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,aAAa,IAAI,IAAI,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;KACrE;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;IAElC,eAAe,CAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAAC;IAC1C,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG;QAC5C,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC/B,CAAC;IAGF,OAAO,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;IAElD,MAAM,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAEvD,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;IAE/B,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAC1D,eAAe,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAC;IAElD,IAAI,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,IAAI,EAAE;QACf,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;KAC7C;SAAM;QACN,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7D,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAChC,CAAC;KACF;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAoB,EAAE,UAAkB,EAAE,EAAE;IACpE,IAAI,YAAG,CAAC,KAAK,EAAE;QACd,WAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;KAC3D;IAID,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAA+B,EAAE,CAAC;QACvE,OAAO;QACP,IAAA,gBAAQ,EACP;YACC,MAAM,EAAE,GAAG,CAAC,MAAyB;YACrC,UAAU,EAAE,OAAO;SACnB,EAED,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CACvB;KACD,CAAC,CAAC;IAEH,MAAM,YAAY,GAAY,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC7B,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAClB,OAAO;aACP;YACD,IAAI;gBACH,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;aACpB;YAAC,MAAM;aAEP;QACF,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAElC,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;KACxC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExD,OAAO;QACN,gBAAgB;QAChB,OAAO,EAAE,CAAC,KAAK,IAAuD,EAAE;YACvE,MAAM,IAAA,gBAAQ,EAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,QAAqC,CAAC;YAE1C,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;aACrB;iBAAM;gBACN,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;gBAClC,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACzC;YAED,MAAM,cAAc,GAAG,KAAK,EAC3B,aACsE,EACpC,EAAE;gBACpC,aAAa,CAAC,MAAM,GAAG,UAAE,CAAC,MAAM,CAAC;gBACjC,aAAa,CAAC,iBAAiB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAEhD,MAAM,QAAQ,GAA2B,aAGxC,CAAC;gBAEF,IAAI;oBACH,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;wBAG/B,MAAM,KAAK,GAAgC;4BAC1C,OAAO;4BACP,IAAA,gBAAQ,EACP;gCACC,YAAY,EAAE,QAAQ,CAAC,YAAY;gCACnC,UAAU,EAAE,OAAO;gCACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;6BACvB,EAED,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CACvB;yBACD,CAAC;wBACF,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC3B,MAAM,IAAA,gBAAQ,EAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE;4BACpC,GAAG;4BACH,OAAO,EAAE,QAAQ;4BACjB,EAAE,EAAE,GAAG,CAAC,EAAE;yBACV,CAAC,CAAC;wBACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC5C,IAAI,eAAe,EAAE;4BACpB,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC;4BAC9C,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE;gCAClC,QAAQ,CAAC,YAAY,GAAG,IAAA,0CAAkB,EACzC,eAAe,CAAC,YAAY,CAAC,CAC7B,CAAC;6BACF;yBACD;qBACD;oBACD,MAAM,iBAAiB,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACjE,OAAO,MAAM,IAAA,6BAAc,EAAC,iBAAiB,CAAC,CAAC;iBAC/C;gBAAC,OAAO,GAAQ,EAAE;oBAClB,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAA,4BAAoB,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACrC,MAAM,GAAG,CAAC;iBACV;YACF,CAAC,CAAC;YAGF,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;gBAC/D,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAE9D,IAAI,OAA0D,CAAC;gBAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBACjC,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;iBACrE;qBAAM;oBACN,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;iBAC9C;gBAED,OAAO,MAAM,cAAc,CAC1B,GAAG,EACH,OAAO,EACP,KAAK,EAAE,EAAE,EAAE,EAAE;oBACZ,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtB,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;wBACtB,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;wBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;4BAC3B,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE;gCAChC,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC;6BAC5B;yBACD;6BAAM;4BACN,IAAA,4BAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;yBACpC;oBACF,CAAC,CAAC,CAAC;oBACH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBAC3B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;wBACrD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;4BACxB,MAAM,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;yBAC3C;wBACD,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;qBAC7C;yBAAM;wBACN,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;qBAC1C;gBACF,CAAC,CACD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAC5B,CAAC,MAAM,EAAqC,EAAE;gBAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACtB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAClC;qBAAM;oBACN,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBACtB,MAAM,CAAC,IAAI,IAAI,IAAI;wBACnB,MAAM,CAAC,UAAU,IAAI,IAAI,EACxB;wBACD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC3D,OAAO,IAAI,6BAAoB,EAAE,CAAC;qBAClC;oBACD,OAAO,MAAM,CAAC;iBACd;YACF,CAAC,CACD,CAAC;YACF,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC,EAAE;KACJ,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAoB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,IAAI;QACH,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;QAEhC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAErC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;YAC3B,IAAI,QAAQ,YAAY,kBAAS,EAAE;gBAClC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;aACzC;YACD,cAAc,CAAC,GAAG,EAAE,QAAoB,CAAC,CAAC;SAG1C;aAAM;YACL,GAAG,CAAC,MAAM,CAAC,GAAG,CAAS,CAAC,SAAS,CACjC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,QAAQ,YAAY,kBAAS,EAAE;oBAClC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;iBACzC;qBAAM;oBACN,OAAO,QAAQ,CAAC;iBAChB;YACF,CAAC,CAAC,CACF,CAAC;SACF;KACD;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,IAAA,wBAAgB,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;YAClC,OAAO;SACP;QAGD,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;KACtB;AACF,CAAC,CAAC;AA3CW,QAAA,kBAAkB,sBA2C7B;AAEF,MAAM,cAAc,GACnB,EAAE,CAAC;AACG,MAAM,iBAAiB,GAAG,CAAC,EAAmC,EAAE,EAAE;IACxE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AACK,MAAM,gBAAgB,GAAG,CAC/B,GAAoB,EACpB,GAAqB,EACrB,GAAU,EACA,EAAE;IACZ,IAAI,GAAG,YAAY,kBAAS,EAAE;QAC7B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC3C,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACxB;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC1C,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;KACZ;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B;AACF,MAAM,cAAc,GAAG,CAAC,GAAqB,EAAE,QAAkB,EAAQ,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,QAAoB,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI,EAAE;QACV,GAAG,CAAC,GAAG,EAAE,CAAC;KACV;SAAM;QACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;AACF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC3B,GAAc,EAC0B,EAAE;IAC1C,OAAO;QACN,UAAU,EAAE,GAAG,CAAC,MAAM;QACtB,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;KACpB,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAa,EAAE;IAClD,IAAI,GAAG,YAAY,kBAAS,EAAE;QAC7B,OAAO,GAAG,CAAC;KACX;IACD,IAAI,GAAG,YAAY,4BAAmB,EAAE;QACvC,OAAO,IAAI,wBAAe,CAAC,GAAG,CAAC,CAAC;KAChC;IACD,IAAI,GAAG,YAAY,wBAAe,EAAE;QACnC,OAAO,IAAI,0BAAiB,CAAC,GAAG,CAAC,CAAC;KAClC;IACD,IAAI,GAAG,YAAY,UAAE,CAAC,eAAe,EAAE;QACtC,OAAO,IAAI,sBAAa,CAAC,GAAG,CAAC,CAAC;KAC9B;IACD,IACC,GAAG,YAAY,4BAAmB;QAClC,GAAG,YAAY,yBAAgB;QAC/B,GAAG,YAAY,qBAAY;QAC3B,GAAG,YAAY,+BAAsB;QACrC,GAAG,YAAY,UAAE,CAAC,aAAa,EAC9B;QACD,OAAO,IAAI,6BAAoB,EAAE,CAAC;KAClC;IAED,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,IAAI,sBAAa,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EACvB,GAAoB,EACpB,EAAS,EACT,OAA+B,EACX,EAAE;IACtB,MAAM,EAAE,MAAM,EAAE,GAAG,WAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,IAAI,YAAG,CAAC,KAAK,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;KAC3C;IACD,IAAI,MAAsC,CAAC;IAE3C,IAAI;QACH,IAAI;YAEH,MAAM,IAAA,gBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAE9D,QAAQ,OAAO,CAAC,MAAM,EAAE;gBACvB,KAAK,KAAK;oBACT,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBACxC,MAAM;gBACP,KAAK,MAAM;oBACV,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBACzC,MAAM;gBACP,KAAK,KAAK,CAAC;gBACX,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO;oBACX,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBACxC,MAAM;gBACP,KAAK,QAAQ;oBACZ,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC3C,MAAM;aACP;SACD;QAAC,OAAO,GAAQ,EAAE;YAClB,IAAI,GAAG,YAAY,UAAE,CAAC,aAAa,EAAE;gBACpC,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAElB,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC;gBAC/B,MAAM,GAAG,CAAC;aACV;YACD,IACC,GAAG,YAAY,SAAS,CAAC,WAAW;gBACpC,GAAG,YAAY,SAAS;gBACxB,GAAG,YAAY,UAAU;gBACzB,GAAG,YAAY,cAAc;gBAC7B,GAAG,YAAY,WAAW;gBAC1B,GAAG,YAAY,SAAS;gBACxB,GAAG,YAAY,QAAQ,EACtB;gBACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,IAAI,6BAAoB,EAAE,CAAC;aACjC;YACD,MAAM,GAAG,CAAC;SACV;QAED,MAAM,IAAA,gBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KACvE;IAAC,OAAO,GAAQ,EAAE;QAClB,MAAM,IAAA,gBAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE;YAC9C,GAAG;YACH,OAAO;YACP,EAAE;YACF,KAAK,EAAE,GAAG;SACV,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;KACV;IACD,OAAO,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,YAAY,GACjB,CAAC,GAAoB,EAAE,EAAS,EAAE,EAAE,CACpC,KAAK,EACJ,gBAAuC,EACvC,OAA+B,EACf,EAAE;IAClB,OAAO,GAAG,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACjC;IACD,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;IACtB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1C,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC;AAMH,MAAM,WAAW,GAAG,CACnB,gBAAuC,EACvC,OAA+B,EAC9B,EAAE;IACH,IAAI,OAAO,CAAC,MAAM,EAAE;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,KAAK,kBAAkB,EAAE;gBAC/B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IACC,GAAG,EAAE,IAAI,IAAI,IAAI;oBACjB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;oBAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EACxB;oBACD,MAAM,IAAI,wBAAe,CACxB,mDAAmD,CACnD,CAAC;iBACF;gBACD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACvD;SACD;KACD;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAC5B,GAAoB,EACpB,OAA+B,EAC/B,MAAW,EACX,EAAS,EACW,EAAE;IACtB,QAAQ,OAAO,CAAC,MAAM,EAAE;QACvB,KAAK,KAAK;YACT,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM;YACV,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACX,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,QAAQ;YACZ,OAAO,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,KAAK,SAAS;YACb,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD;YACC,MAAM,IAAI,8BAAqB,EAAE,CAAC;KACnC;AACF,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE;QAE7B,OAAO,KAAK,CAAC;KACb;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;QAElB,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,CACzC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,EAAE;QACrD,OAAO,CACN,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CACvE,CAAC;IACH,CAAC,CAAC,CACF,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG,KAAK,EAC3B,GAAY,EACZ,OAA0D,EAC1D,QAAmC,EACtB,EAAE;IACf,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE;QAEnB,OAAO,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC9B;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;YACzC,OAAO,MAAM,UAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC1C;KACD;SAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAC1C,OAAO,MAAM,UAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC1C;IAED,OAAO,MAAM,UAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAGF,MAAM,QAAQ,GAAG,KAAK,EACrB,EAAS,EACT,OAA+B,EAC/B,UAAmB,EACnB,gBAAyB,EACJ,EAAE;IACvB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,QAAQ,IAAI,IAAI,EAAE;QACrB,MAAM,IAAI,6BAAoB,CAAC,+BAA+B,CAAC,CAAC;KAChE;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;QAC3B,MAAM,IAAI,6BAAoB,CAAC,8BAA8B,CAAC,CAAC;KAC/D;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,6BAAoB,CAC7B,6DAA6D,CAC7D,CAAC;SACF;QACD,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAqB,EACzC,OAAkD,EAClD,QAAQ,CACR,CAAC;IAEF,IAAI,YAAG,CAAC,KAAK,EAAE;QACd,WAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAC1C;IAGD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEvE,IAAI,gBAAgB,EAAE;QACrB,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3E;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EACnB,IAAqB,EACrB,OAA+B,EAC/B,EAAS,EACR,EAAE;IACH,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;QAC7B,OAAO,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KACnC;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EACvB,GAAoB,EACpB,OAA+B,EAC/B,MAAW,EACX,EAAS,EACW,EAAE;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;QACnD,MAAM,QAAQ,GACb,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,OAAO,CACpC,KAAK,EACL,IAAA,2BAAmB,EAAC,OAAO,CAAC,EAC5B,OAAO,CAAC,oBAAoB,EAC5B,MAAM,CAAC,IAAI,EACX,EAAE,eAAe,EAAE,QAAQ,KAAK,MAAM,EAAE,CACxC,CAAC;QAEF,MAAM,QAAQ,GAAG;YAChB,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,EAAE,CAAC,EAAE;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAC/C,CAAC;QACF,MAAM,IAAA,gBAAQ,EAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE;YAC3C,GAAG;YACH,OAAO;YACP,MAAM;YACN,QAAQ;YACR,IAAI,EAAE,CAAC;YACP,EAAE;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;KAChB;SAAM;QACN,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,EAAE;YACzC,OAAO;gBACN,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa;gBACjC,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;aAClC,CAAC;SACF;aAAM;YAEN,OAAO;gBACN,UAAU,EAAE,GAAG;aACf,CAAC;SACF;KACD;AACF,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EACpB,IAAqB,EACrB,OAA+B,EAC/B,EAAS,EACqB,EAAE;IAChC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAChD,EAAE,EACF,OAAO,EACP,SAAS,EACT,UAAU,CAAC,OAAO,CAAC,CACnB,CAAC;IACF,IAAI,YAAY,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,wBAAe,EAAE,CAAC;KAC5B;IACD,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,EAAE,OAAO,CAAC,CAAC;IAErE,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACxB,GAAoB,EACpB,OAA+B,EAC/B,EAAU,EACV,EAAS,EACW,EAAE;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CACzC,KAAK,EACL,OAAO,CAAC,oBAAoB,EAC5B,EAAE,CACF,CAAC;IACF,IAAI,YAAG,CAAC,KAAK,EAAE;QACd,WAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;KAC/D;IAED,IAAI,MAAM,GAAc,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACxC,IACC,QAAQ,IAAI,IAAI;QAChB,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CACvB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,cAAwB,CACtD,EACA;QACD,IAAI;YACH,MAAM,GAAG,CAAC,MAAM,IAAA,cAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAc,CAAC;SAC1E;QAAC,MAAM;SAEP;KACD;IAED,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,EAAE;YACR,cAAc,EAAE,kBAAkB;YAClC,QAAQ;SACR;KACD,CAAC;IACF,MAAM,IAAA,gBAAQ,EAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE;QAC3C,GAAG;QACH,OAAO;QACP,MAAM;QACN,QAAQ;QACR,EAAE;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EACnB,IAAqB,EACrB,OAA+B,EAC/B,EAAS,EACY,EAAE;IACvB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,YAAoB,CAAC;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAEpC,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,YAAY,KAAK,CAAC,EAAE;YAEvB,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;SAC7D;KACD;SAAM;QACN,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;KACrE;IACD,IAAI,YAAY,GAAG,CAAC,EAAE;QACrB,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,EAAE,OAAO,CAAC,CAAC;KACrE;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EACvB,GAAoB,EACpB,OAA+B,EAC/B,MAAW,EACX,EAAS,EACW,EAAE;IACtB,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,GAAG;KACf,CAAC;IACF,MAAM,IAAA,gBAAQ,EAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE;QAC3C,GAAG;QACH,OAAO;QACP,MAAM;QACN,QAAQ;QACR,EAAE;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,MAAM,SAAS,GAAG,KAAK,EACtB,IAAqB,EACrB,OAA+B,EAC/B,EAAS,EACY,EAAE;IACvB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CACtC,EAAE,EACF,OAAO,EACP,SAAS,EACT,UAAU,CAAC,OAAO,CAAC,CACnB,CAAC;IACF,IAAI,YAAY,GAAG,CAAC,EAAE;QACrB,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAE,EAAE,OAAO,CAAC,CAAC;KACrE;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAS,EAAiB,EAAE;IACvE,IAAI;QAEH,MAAM,IAAA,oBAAY,EAAC,EAAE,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE;gBACR,GAAG,EAAE,KAAK;aACV;YACD,UAAU,EAAE;gBACX,oBAAoB,EAAE;;;KAGrB;gBACD,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;oBAC7C,QAAQ,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;wBAC5B,KAAK,OAAO;4BACX,MAAM,GAAG,CAAC,UAAU,CAAC;;;;;;;mDAOuB,CAAC,CAAC;4BAC9C,MAAM;wBACP,KAAK,UAAU;4BACd,MAAM,GAAG,CAAC,UAAU,CAAC;;;;;;;mDAOuB,CAAC,CAAC;4BAC9C,MAAM;qBAEP;gBACF,CAAC;aACD;SACD,CAAC,CAAC;QACH,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;KACvD;IAAC,OAAO,GAAQ,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC;KACV;AACF,CAAC,CAAC;AA/CW,QAAA,qBAAqB,yBA+ChC;AAEK,MAAM,KAAK,GAAG,KAAK,EACzB,IAAyB,EACzB,GAAgB,EACA,EAAE;IAClB,OAAO,CAAC,EAAE,GAAG,UAAE,GAAG,GAAG,CAAC;IACtB,IAAI;QACH,MAAM,UAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,IAAA,6BAAqB,EAAC,EAAE,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;KACH;IAAC,OAAO,GAAQ,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;IACD,IAAI;QACH,MAAM,UAAE,CAAC,UAAU,CAClB,kGAAkG,CAClG,CAAC;KACF;IAAC,MAAM;KAEP;AACF,CAAC,CAAC;AArBW,QAAA,KAAK,SAqBhB"}
@@ -0,0 +1,6 @@
1
+ import { AbstractSqlModel, ReferencedFieldNode, Definition, SelectQueryNode, NumberTypeNodes, BooleanTypeNodes, UnknownTypeNodes, NullNode } from '@balena/abstract-sql-compiler';
2
+ import { Dictionary } from './common-types';
3
+ export type AliasValidNodeType = ReferencedFieldNode | SelectQueryNode | NumberTypeNodes | BooleanTypeNodes | UnknownTypeNodes | NullNode;
4
+ export declare const translateAbstractSqlModel: (fromAbstractSqlModel: AbstractSqlModel, toAbstractSqlModel: AbstractSqlModel, fromVersion: string, toVersion: string, translationDefinitions?: Dictionary<(Definition & {
5
+ $toResource?: string;
6
+ }) | Dictionary<string | AliasValidNodeType>>) => Dictionary<string>;