@nocobase/app-plugin-mail 1.0.0-beta.23 → 1.0.0-beta.24

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @nocobase/app-plugin-mail
2
2
 
3
+ ## 1.0.0-beta.24
4
+
5
+ ### Patch Changes
6
+
7
+ - 1952789: Update authentication, editor, and validation dependencies to patched releases.
8
+ - 1724828: Speed up IMAP synchronization with batched copy verification, tolerate concurrent mailbox changes, and reuse idle connections for attachment downloads.
9
+ - Updated dependencies [44bf26a]
10
+ - Updated dependencies [1952789]
11
+ - @nocobase/app-server@5.0.0-beta.5
12
+ - @nocobase/app-plugin-authentication@2.0.0-beta.21
13
+ - @nocobase/app-plugin-authorization@1.0.0-beta.38
14
+
3
15
  ## 1.0.0-beta.23
4
16
 
5
17
  ### Patch Changes
@@ -6,6 +6,7 @@ import type { MailSyncStepCommit } from '../../contracts/persistence.js';
6
6
  import type { MailSyncRun } from '../../../shared/mail.js';
7
7
  import type { ImapSmtpMailProviderConfig } from './config.js';
8
8
  import { createImapClient, createSmtpTransport } from './connection.js';
9
+ import type { ImapConnectionPool } from './connection-pool.js';
9
10
  export declare class ImapSmtpAdapter implements MailProviderAdapter {
10
11
  private readonly context;
11
12
  private readonly config;
@@ -14,6 +15,7 @@ export declare class ImapSmtpAdapter implements MailProviderAdapter {
14
15
  private readonly locations?;
15
16
  private readonly protocol;
16
17
  private readonly operation?;
18
+ private readonly pool?;
17
19
  readonly identity: MailProviderAccount['provider'];
18
20
  readonly capabilities: MailProviderAdapter['capabilities'];
19
21
  private readonly folderTypes;
@@ -32,7 +34,7 @@ export declare class ImapSmtpAdapter implements MailProviderAdapter {
32
34
  readonly smtp: typeof createSmtpTransport;
33
35
  readonly expungeUid: typeof expungeUid;
34
36
  readonly transferUid?: typeof transferUid;
35
- }, operation?: ImapOperationSnapshot | undefined);
37
+ }, operation?: ImapOperationSnapshot | undefined, pool?: ImapConnectionPool | undefined);
36
38
  forSync(run: MailSyncRun): ImapSmtpAdapter;
37
39
  forMessage(messageId: string, providerMessageId: string, operation: 'flags' | 'delete' | 'move', move?: {
38
40
  readonly sourceProviderFolderId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/adapter.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export class ImapSmtpAdapter {
24
24
  locations;
25
25
  protocol;
26
26
  operation;
27
+ pool;
27
28
  identity;
28
29
  capabilities = IMAP_SMTP_CAPABILITIES;
29
30
  folderTypes = new Map();
@@ -43,7 +44,7 @@ export class ImapSmtpAdapter {
43
44
  smtp: createSmtpTransport,
44
45
  expungeUid,
45
46
  transferUid,
46
- }), operation) {
47
+ }), operation, pool) {
47
48
  this.context = context;
48
49
  this.config = config;
49
50
  this.account = account;
@@ -51,6 +52,7 @@ export class ImapSmtpAdapter {
51
52
  this.locations = locations;
52
53
  this.protocol = protocol;
53
54
  this.operation = operation;
55
+ this.pool = pool;
54
56
  if (locations && locations.accountId !== account.id)
55
57
  throw new Error('The IMAP persistence belongs to another account.');
56
58
  if (operation && operation.accountId !== account.id)
@@ -80,13 +82,13 @@ export class ImapSmtpAdapter {
80
82
  throw new Error('An IMAP message operation cannot be reused for synchronization.');
81
83
  if (run.accountId !== this.account.id)
82
84
  throw new Error('The IMAP sync account changed.');
83
- return new ImapSmtpAdapter(this.context, this.config, this.account, this.credential, this.locations, run, this.protocol);
85
+ return new ImapSmtpAdapter(this.context, this.config, this.account, this.credential, this.locations, run, this.protocol, undefined, this.pool);
84
86
  }
85
87
  async forMessage(messageId, providerMessageId, operation, move) {
86
88
  if (!this.locations)
87
89
  throw new Error('IMAP location persistence is not configured.');
88
90
  const bound = await this.locations.bindMessage(messageId, providerMessageId, operation, move);
89
- return new ImapSmtpAdapter(this.context, this.config, this.account, this.credential, bound.persistence, undefined, this.protocol, bound.snapshot);
91
+ return new ImapSmtpAdapter(this.context, this.config, this.account, this.credential, bound.persistence, undefined, this.protocol, bound.snapshot, this.pool);
90
92
  }
91
93
  /** True when this instance records message copies in the account's location table. */
92
94
  get persistsLocations() {
@@ -130,6 +132,7 @@ export class ImapSmtpAdapter {
130
132
  };
131
133
  }
132
134
  catch (error) {
135
+ this.closeImap();
133
136
  return { ok: false, error: classifyError(error, 'IMAP_LIST_FOLDERS') };
134
137
  }
135
138
  }
@@ -145,6 +148,7 @@ export class ImapSmtpAdapter {
145
148
  return { ok: true, value: syncCursor({ version: 1, folders }) };
146
149
  }
147
150
  catch (error) {
151
+ this.closeImap();
148
152
  return {
149
153
  ok: false,
150
154
  error: classifyError(error, 'IMAP_SYNC_CURSOR'),
@@ -267,6 +271,7 @@ export class ImapSmtpAdapter {
267
271
  };
268
272
  }
269
273
  catch (error) {
274
+ this.closeImap();
270
275
  return { ok: false, error: classifyError(error, 'IMAP_LIST_MESSAGES') };
271
276
  }
272
277
  }
@@ -375,6 +380,7 @@ export class ImapSmtpAdapter {
375
380
  };
376
381
  }
377
382
  catch (error) {
383
+ this.closeImap();
378
384
  return { ok: false, error: classifyError(error, 'IMAP_LIST_CHANGES') };
379
385
  }
380
386
  }
@@ -413,6 +419,7 @@ export class ImapSmtpAdapter {
413
419
  };
414
420
  }
415
421
  catch (error) {
422
+ this.closeImap();
416
423
  return { ok: false, error: classifyError(error, 'IMAP_GET_MESSAGE') };
417
424
  }
418
425
  }
@@ -479,7 +486,10 @@ export class ImapSmtpAdapter {
479
486
  if (!download.content)
480
487
  return failure('IMAP_ATTACHMENT_NOT_FOUND', 'IMAP attachment was not found.', 'provider', false);
481
488
  download.content.once('end', release);
482
- download.content.once('error', release);
489
+ download.content.once('error', () => {
490
+ this.closeImap();
491
+ release?.();
492
+ });
483
493
  download.content.once('close', release);
484
494
  streamed = true;
485
495
  if (signal)
@@ -503,6 +513,7 @@ export class ImapSmtpAdapter {
503
513
  };
504
514
  }
505
515
  catch (error) {
516
+ this.closeImap();
506
517
  return { ok: false, error: classifyError(error, 'IMAP_GET_ATTACHMENT') };
507
518
  }
508
519
  finally {
@@ -599,6 +610,7 @@ export class ImapSmtpAdapter {
599
610
  }
600
611
  }
601
612
  catch (error) {
613
+ this.closeImap();
602
614
  // SMTP already accepted the message; never report this as a send failure.
603
615
  sentCopyError = {
604
616
  ...classifyError(error, 'IMAP_SAVE_SENT_COPY'),
@@ -616,6 +628,7 @@ export class ImapSmtpAdapter {
616
628
  };
617
629
  }
618
630
  catch (error) {
631
+ this.closeImap();
619
632
  const classified = classifyError(error, 'SMTP_SEND');
620
633
  return {
621
634
  status: submissionStarted &&
@@ -777,6 +790,7 @@ export class ImapSmtpAdapter {
777
790
  return { ok: true, value: { providerMessageId: id } };
778
791
  }
779
792
  catch (error) {
793
+ this.closeImap();
780
794
  if (error.imapCopyRejected &&
781
795
  !state?.destination)
782
796
  remoteStarted = false;
@@ -880,21 +894,25 @@ export class ImapSmtpAdapter {
880
894
  return { ok: true, value: undefined };
881
895
  }
882
896
  catch (error) {
897
+ this.closeImap();
883
898
  return { ok: false, error: classifyError(error, 'IMAP_DELETE_MESSAGE') };
884
899
  }
885
900
  }
886
901
  async close() {
887
902
  this.smtpTransport.close();
888
- if (!this.imapClient)
903
+ const client = this.imapClient;
904
+ this.imapClient = undefined;
905
+ if (!client)
889
906
  return;
890
- try {
891
- await this.imapClient.logout();
892
- }
893
- catch {
894
- this.imapClient.close();
895
- }
896
- finally {
897
- this.imapClient = undefined;
907
+ if (this.pool)
908
+ await this.pool.release(client);
909
+ else {
910
+ try {
911
+ await client.logout();
912
+ }
913
+ catch {
914
+ client.close();
915
+ }
898
916
  }
899
917
  }
900
918
  async updateFlags(providerMessageId, flag, enabled, signal) {
@@ -908,19 +926,36 @@ export class ImapSmtpAdapter {
908
926
  return { ok: true, value: undefined };
909
927
  }
910
928
  catch (error) {
929
+ this.closeImap();
911
930
  return { ok: false, error: classifyError(error, 'IMAP_UPDATE_FLAGS') };
912
931
  }
913
932
  }
914
933
  closeImap() {
915
934
  const client = this.imapClient;
916
935
  this.imapClient = undefined;
917
- client?.close();
936
+ if (client) {
937
+ if (this.pool)
938
+ this.pool.destroy(client);
939
+ else
940
+ client.close();
941
+ }
918
942
  }
919
943
  async imap() {
920
944
  if (this.imapClient)
921
945
  return this.imapClient;
922
- const client = this.protocol.imap(this.config.imap, this.credential);
923
- await client.connect();
946
+ const client = this.pool
947
+ ? await this.pool.acquire(this.account.id, this.config.imap, this.credential)
948
+ : this.protocol.imap(this.config.imap, this.credential);
949
+ if (!this.pool) {
950
+ try {
951
+ await client.connect();
952
+ }
953
+ catch (error) {
954
+ this.closeImap();
955
+ client.close();
956
+ throw error;
957
+ }
958
+ }
924
959
  this.imapClient = client;
925
960
  return client;
926
961
  }
@@ -991,6 +1026,7 @@ export class ImapSmtpAdapter {
991
1026
  return selectedState;
992
1027
  }
993
1028
  catch (error) {
1029
+ this.closeImap();
994
1030
  if (error?.code !== 'IMAP_INVALID_UIDVALIDITY') {
995
1031
  throw error;
996
1032
  }
@@ -1204,6 +1240,7 @@ export class ImapSmtpAdapter {
1204
1240
  : undefined;
1205
1241
  }
1206
1242
  catch (error) {
1243
+ this.closeImap();
1207
1244
  const classified = classifyError(error, 'IMAP_READ_SOURCE');
1208
1245
  if (classified.retryable || classified.category === 'authentication')
1209
1246
  throw error;
@@ -1224,29 +1261,12 @@ export class ImapSmtpAdapter {
1224
1261
  if (String(mailbox.uidValidity) !== location.uidValidity)
1225
1262
  return undefined;
1226
1263
  const message = await client.fetchOne(location.uid, { ...query, uid: true, envelope: true }, { uid: true });
1227
- if (!message || message.uid !== location.uid)
1228
- return undefined;
1229
- const source = location.source ?? 'locator';
1230
- if (source === 'objectid' || source === 'x-gm-msgid') {
1231
- const currentSource = this.nativeSource();
1232
- const nativeId = validNativeId(currentSource, message.emailId);
1233
- // A UID cannot identify another message within the same UIDVALIDITY.
1234
- // Missing native metadata preserves this previously verified tuple.
1235
- return !nativeId ||
1236
- (currentSource === source && nativeId === location.providerMessageId)
1237
- ? message
1238
- : undefined;
1239
- }
1240
- if (source === 'rfc-message-id')
1241
- return message.envelope?.messageId === location.providerMessageId
1242
- ? message
1243
- : undefined;
1244
- return source === 'locator' &&
1245
- encodeCopyLocator(location, location.id) === location.providerMessageId
1264
+ return message && copyMatches(location, message, this.nativeSource())
1246
1265
  ? message
1247
1266
  : undefined;
1248
1267
  }
1249
1268
  catch (error) {
1269
+ this.closeImap();
1250
1270
  const classified = classifyError(error, 'IMAP_OPEN_COPY');
1251
1271
  if (classified.retryable || classified.category === 'authentication')
1252
1272
  throw error;
@@ -1283,6 +1303,7 @@ export class ImapSmtpAdapter {
1283
1303
  return { ok: true, value: undefined };
1284
1304
  }
1285
1305
  catch (error) {
1306
+ this.closeImap();
1286
1307
  return { ok: false, error: classifyError(error, 'IMAP_UPDATE_FLAGS') };
1287
1308
  }
1288
1309
  }
@@ -1294,6 +1315,7 @@ export class ImapSmtpAdapter {
1294
1315
  const attempts = (previous?.attempts ?? 0) + 1;
1295
1316
  const snapshot = {};
1296
1317
  const present = new Map();
1318
+ const observedCopies = new Map();
1297
1319
  const excluded = new Set(previous?.excluded ?? []);
1298
1320
  const uncertainGenerations = new Set();
1299
1321
  let stable = true;
@@ -1316,10 +1338,10 @@ export class ImapSmtpAdapter {
1316
1338
  uids = await client.search({ all: true }, { uid: true });
1317
1339
  }
1318
1340
  catch (error) {
1341
+ this.closeImap();
1319
1342
  if (!isResponseLimitError(error))
1320
1343
  throw error;
1321
1344
  // The UID list exceeds the protocol budget: keep every copy and skip cleanup.
1322
- this.closeImap();
1323
1345
  this.verificationIncomplete = true;
1324
1346
  return { done: true, verify: { attempts, excluded: [...excluded] } };
1325
1347
  }
@@ -1340,6 +1362,36 @@ export class ImapSmtpAdapter {
1340
1362
  location.uidValidity === state.uidValidity &&
1341
1363
  location.status === 'valid')
1342
1364
  .map((location) => location.uid));
1365
+ const candidates = known.filter((location) => location.folder === mailbox.path &&
1366
+ location.uidValidity === state.uidValidity &&
1367
+ location.status === 'valid' &&
1368
+ location.source &&
1369
+ present.get(mailbox.path).has(location.uid));
1370
+ for (let offset = 0; offset < candidates.length; offset += 1000) {
1371
+ throwIfAborted(signal);
1372
+ const batch = candidates.slice(offset, offset + 1000);
1373
+ const messages = await client.fetchAll(compressUids(batch.map((location) => location.uid)), {
1374
+ uid: true,
1375
+ flags: true,
1376
+ ...(batch.some((location) => location.source === 'objectid' ||
1377
+ location.source === 'x-gm-msgid')
1378
+ ? { emailId: true }
1379
+ : {}),
1380
+ ...(batch.some((location) => location.source === 'rfc-message-id')
1381
+ ? { envelope: true }
1382
+ : {}),
1383
+ }, { uid: true });
1384
+ const byUid = new Map(messages.map((message) => [message.uid, message]));
1385
+ for (const location of batch) {
1386
+ throwIfAborted(signal);
1387
+ const message = byUid.get(location.uid);
1388
+ if (message?.flags &&
1389
+ copyMatches(location, message, this.nativeSource()))
1390
+ observedCopies.set(location.id, message);
1391
+ else
1392
+ stable = false;
1393
+ }
1394
+ }
1343
1395
  const unbound = uids.filter((uid) => !bound.has(uid) &&
1344
1396
  !excluded.has(tupleKey({
1345
1397
  folder: mailbox.path,
@@ -1374,6 +1426,7 @@ export class ImapSmtpAdapter {
1374
1426
  after.some((box) => !snapshot[box.path]))
1375
1427
  stable = false;
1376
1428
  for (const mailbox of after) {
1429
+ throwIfAborted(signal);
1377
1430
  const selected = await (await this.imap()).mailboxOpen(mailbox.path, { readOnly: true });
1378
1431
  const state = await this.selectedFolderState(selected);
1379
1432
  const rechecked = await (await this.imap()).search({ all: true }, { uid: true });
@@ -1393,6 +1446,7 @@ export class ImapSmtpAdapter {
1393
1446
  mailboxes.some((mailbox) => !finalPaths.has(mailbox.path)))
1394
1447
  stable = false;
1395
1448
  for (const mailbox of finalRange) {
1449
+ throwIfAborted(signal);
1396
1450
  const generation = mailbox.status?.uidValidity;
1397
1451
  const uidNext = mailbox.status?.uidNext;
1398
1452
  if (generation !== undefined &&
@@ -1404,6 +1458,7 @@ export class ImapSmtpAdapter {
1404
1458
  stable = false;
1405
1459
  }
1406
1460
  for (const location of known) {
1461
+ throwIfAborted(signal);
1407
1462
  if (this.verificationCopies.some((copy) => tupleKey(copy.tuple) === tupleKey(location)))
1408
1463
  continue;
1409
1464
  const uids = present.get(location.folder);
@@ -1421,9 +1476,11 @@ export class ImapSmtpAdapter {
1421
1476
  location.source &&
1422
1477
  generation === location.uidValidity &&
1423
1478
  uids?.has(location.uid)) {
1424
- const observed = await this.openCopy(location, { flags: true });
1425
- if (!observed?.flags)
1426
- throw new Error('The IMAP copy identity or flags changed during verification.');
1479
+ const observed = observedCopies.get(location.id);
1480
+ if (!observed?.flags) {
1481
+ stable = false;
1482
+ continue;
1483
+ }
1427
1484
  this.copies.push({
1428
1485
  flagsOnly: true,
1429
1486
  locationId: location.id,
@@ -1641,4 +1698,20 @@ async function transferUid(client, uid, folder, native) {
1641
1698
  parse(result.response);
1642
1699
  return invalid ? undefined : mapping;
1643
1700
  }
1701
+ /** Compare identity metadata without reopening the selected mailbox. */
1702
+ function copyMatches(location, message, currentSource) {
1703
+ if (message.uid !== location.uid)
1704
+ return false;
1705
+ const source = location.source ?? 'locator';
1706
+ if (source === 'objectid' || source === 'x-gm-msgid') {
1707
+ const nativeId = validNativeId(currentSource, message.emailId);
1708
+ // Missing native metadata preserves this previously verified tuple.
1709
+ return (!nativeId ||
1710
+ (currentSource === source && nativeId === location.providerMessageId));
1711
+ }
1712
+ if (source === 'rfc-message-id')
1713
+ return message.envelope?.messageId === location.providerMessageId;
1714
+ return (source === 'locator' &&
1715
+ encodeCopyLocator(location, location.id) === location.providerMessageId);
1716
+ }
1644
1717
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAU7E,OAAO,YAAY,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,eAAe,EACf,SAAS,EACT,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AA0CtB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEtE,SAAS,wBAAwB,CAC/B,OAAqB,EACrB,UAAmB;IAEnB,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAC7D,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC;AACD,OAAO,EACL,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,OAAO,eAAe;IAqBP;IACA;IACA;IACA;IACA;IAEA;IAWA;IACA;IAtCH,QAAQ,CAAkC;IAC1C,YAAY,GAC1B,sBAAsB,CAAC;IACR,WAAW,GAAG,IAAI,GAAG,EAGnC,CAAC;IACI,UAAU,CAAY;IACb,aAAa,CAAc;IAC5C,gFAAgF;IACxE,MAAM,GAAuB,EAAE,CAAC;IAChC,OAAO,GAAyB,EAAE,CAAC;IACnC,OAAO,GAAG,KAAK,CAAC;IAChB,sBAAsB,GAAG,KAAK,CAAC;IACtB,kBAAkB,GAAkB,EAAE,CAAC;IACvC,OAAO,CAAe;IAC/B,SAAS,GAAG,2BAA2B,CAAC;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAElE,YACmB,OAA4B,EAC5B,MAAkC,EAClC,OAA4B,EAC5B,UAA8B,EAC9B,SAA+C,EAChE,GAAiB,EACA,WAKb,MAAM,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,mBAAmB;QACzB,UAAU;QACV,WAAW;KACZ,CAAC,EACe,SAA6C,EAC7C,IAAqC;QAlBrC,YAAO,GAAP,OAAO,CAAqB;QAC5B,WAAM,GAAN,MAAM,CAA4B;QAClC,YAAO,GAAP,OAAO,CAAqB;QAC5B,eAAU,GAAV,UAAU,CAAoB;QAC9B,cAAS,GAAT,SAAS,CAAsC;QAE/C,aAAQ,GAAR,QAAQ,CAUvB;QACe,cAAS,GAAT,SAAS,CAAoC;QAC7C,SAAI,GAAJ,IAAI,CAAiC;QAEtD,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,GAAG,OAAO;YACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YACV,GAAG;gBACH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAEM,OAAO,CAAC,GAAgB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS;YAChB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;QACJ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,GAAG,EACH,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,SAAiB,EACjB,iBAAyB,EACzB,SAAsC,EACtC,IAGC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAC5C,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,IAAI,CACL,CAAC;QACF,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,WAAW,EACjB,SAAS,EACT,IAAI,CAAC,QAAQ,EACb,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IACtC,CAAC;IAED,4FAA4F;IACrF,KAAK,CAAC,cAAc,CAAC,KAAyB;QACnD,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAC3D,CAAC;QACF,IACE,IAAI,CAAC,OAAO;YACZ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC/B,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;gBACtC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC5C,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAEnD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC/C,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CACxB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC5D;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAClC,UAAU;YACR,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE;YACxD,CAAC,CAAC,KAAK,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,KAAmC;QAEnC,IAAI,CAAC;YACH,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAClE,yBAAyB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBACpE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAC/B,MAAoB;QAEpB,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,MAAM,OAAO,GAAqC,EAAE,CAAC;YACrD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC;aAChD,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,KAAoC;QAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,MAAM;gBAC7C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;gBAC9B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CACtD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAC1B,CAAC;YACN,IAAI,QAA+C,CAAC;YACpD,IAAI,CAAC;gBACH,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,OAAO,CACZ,0BAA0B,EAC1B,6CAA6C,EAC7C,UAAU,EACV,KAAK,CACN,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAkB,EAAE,CAAC;YACnC,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACvC,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACjC,IAAI,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACzC,sEAAsE;YACtE,2EAA2E;YAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;gBACxD,CAAC,CAAC,SAAS,CAAC;YACd,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,OACE,WAAW,GAAG,OAAO,CAAC,MAAM;gBAC5B,QAAQ,CAAC,MAAM,GAAG,KAAK;gBACvB,aAAa,GAAG,EAAE,EAClB,CAAC;gBACD,aAAa,IAAI,CAAC,CAAC;gBACnB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,WAAW,CAAC,MAAM,EAAE;oBACpB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrE,OAAO,OAAO,CACZ,0BAA0B,EAC1B,sDAAsD,EACtD,UAAU,EACV,KAAK,CACN,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC1C,IAAI,QAAkB,CAAC;gBACvB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBAChC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;wBACjD,CAAC,CAAC,EAAE,CAAC;oBACP,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;oBAC9D,YAAY,GAAG,SAAS,CAAC;oBACzB,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC7B,MAAM,QAAQ,GAAG,MAAM,CACrB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CACxC,CAAC;wBACF,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GACV,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;oBACpE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;wBACf,WAAW,IAAI,CAAC,CAAC;wBACjB,QAAQ,GAAG,SAAS,CAAC;wBACrB,SAAS;oBACX,CAAC;oBACD,IAAI,KAAK,EAAE,CAAC;wBACV,oEAAoE;wBACpE,kEAAkE;wBAClE,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;4BACtC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;iCACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC;iCAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;4BACxC,CAAC,CAAC,EAAE,CAAC;wBACP,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;4BACxC,QAAQ,GAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACN,WAAW,IAAI,CAAC,CAAC;4BACjB,QAAQ,GAAG,SAAS,CAAC;wBACvB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;wBAClD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC1D,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;4BAC9B,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;4BACjD,CAAC,CAAC,EAAE,CAAC;wBACP,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,aAAa,CACzC,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,QAAQ,EACR,KAAK,CAAC,MAAM,CACb,EAAE,CAAC;oBACF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;oBACpC,IACE,KAAK,CAAC,aAAa;wBACnB,UAAU;wBACV,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EACxD,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBAC3C,WAAW,IAAI,CAAC,CAAC;oBACjB,QAAQ,GAAG,SAAS,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GACd,WAAW,GAAG,OAAO,CAAC,MAAM;gBAC1B,CAAC,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,QAAQ,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;oBAC7D,UAAU;oBACV,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc;iBAC5D;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAmC;QAQ1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,QAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,0BAA0B;wBAChC,OAAO,EAAE,kCAAkC;wBAC3C,QAAQ,EAAE,UAAU;wBACpB,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,MAAM,WAAW,GAAqC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAkB,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAEvC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,cAAc,GAAG,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;gBAChE,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;gBACzC,MAAM,GAAG,GAAG,QAAQ;oBAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;oBACpE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE;wBACtD,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW;wBACtD,OAAO,OAAO,CACZ,0BAA0B,EAC1B,6CAA6C,EAC7C,UAAU,EACV,KAAK,CACN,CAAC;oBACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACtC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,WAAW,EACnB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EACpB,KAAK,CAAC,MAAM,CACb,CAAC;oBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;oBAC1B,0FAA0F;oBAC1F,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;oBAClB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;wBACtD,gEAAgE;wBAChE,gEAAgE;wBAChE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CACnC,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAC/C,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;wBACF,MAAM,UAAU,GAAG,OAAO,CAAC;wBAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;wBAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC7B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gCAC5B,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,GAAG,OAAO;oCAAE,OAAO,GAAG,GAAG,CAAC;4BACxD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,EAAE,CAAC;oBACpB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC5B,CAAC;gBACD,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO;oBAAE,OAAO,GAAG,IAAI,CAAC;gBAC9C,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC;YACD,IAAI,MAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,oEAAoE;oBACpE,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI;wBAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;wBAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;qBACnC,CAAC;oBACF,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,SAAS,EACT,WAAW,EACX,QAAQ,CAAC,MAAM,EACf,KAAK,CAAC,MAAM,CACb,CAAC;oBACF,IAAI,MAAM,KAAK,oBAAoB;wBACjC,OAAO,OAAO,CACZ,0BAA0B,EAC1B,iDAAiD,EACjD,UAAU,EACV,KAAK,CACN,CAAC;oBACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC1C,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,QAAQ,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;oBAC7D,mFAAmF;oBACnF,yBAAyB,EAAE,EAAE;oBAC7B,UAAU,EAAE,UAAU,CAAC;wBACrB,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,WAAW;wBACpB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9B,CAAC;oBACF,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,iBAAyB,EACzB,MAAoB;QAEpB,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,8EAA8E;gBAC9E,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAC5D,iBAAiB,CAClB,EAAE,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,OAAO;wBAAE,SAAS;oBACvB,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,KAAK,EAAE;4BACL,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAC7B,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,WAAW,EACpB,OAAO,EACP,MAAM,EACN,0BAA0B,CAC3B,CAAC;4BACF,iBAAiB;yBAClB;qBACF,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,CACZ,wBAAwB,EACxB,qDAAqD,EACrD,UAAU,EACV,KAAK,CACN,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxD,OAAO,OAAO,CACZ,0BAA0B,EAC1B,qEAAqE,EACrE,UAAU,EACV,KAAK,CACN,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO;gBACV,OAAO,OAAO,CACZ,wBAAwB,EACxB,6BAA6B,EAC7B,UAAU,EACV,KAAK,CACN,CAAC;YACJ,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAChC,OAAO,CAAC,MAAM,EACd,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,0BAA0B,CAC3B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,iBAAyB,EACzB,oBAA4B,EAC5B,MAAoB;QAEpB,IAAI,OAAiC,CAAC;QACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;YAC/D,IAAI,UAA0C,CAAC;YAC/C,IAAI,QACoE,CAAC;YACzE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,kEAAkE;gBAClE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjE,IACE,QAAQ,EAAE,MAAM,KAAK,OAAO;oBAC5B,QAAQ,CAAC,iBAAiB,KAAK,iBAAiB;oBAEhD,OAAO,OAAO,CACZ,2BAA2B,EAC3B,+DAA+D,EAC/D,UAAU,EACV,KAAK,CACN,CAAC;gBACJ,UAAU,GAAG,QAAQ,CAAC;gBACtB,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAC5C,QAAQ,EACR,oBAAoB,CACrB,CAAC;gBACF,IAAI,CAAC,QAAQ;oBACX,OAAO,OAAO,CACZ,2BAA2B,EAC3B,qDAAqD,EACrD,UAAU,EACV,KAAK,CACN,CAAC;YACN,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC7D,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,OAAO,GAAG,GAAG,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;YACtC,IAAI,CAAC,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW;gBACtD,OAAO,OAAO,CACZ,0BAA0B,EAC1B,gDAAgD,EAChD,UAAU,EACV,KAAK,CACN,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CACnC,OAAO,CAAC,GAAG,EACX,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClD,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;gBACzC,OAAO,OAAO,CACZ,2BAA2B,EAC3B,mCAAmC,EACnC,UAAU,EACV,KAAK,CACN,CAAC;YACJ,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI;gBACP,OAAO,OAAO,CACZ,2BAA2B,EAC3B,gCAAgC,EAChC,UAAU,EACV,KAAK,CACN,CAAC;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,GAAG,EACX,IAAI,EACJ,OAAO,CAAC,UAAU,CACnB,CAAC;gBACF,IACE,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;oBACrC,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;oBAC3C,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;oBAC7B,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;oBACvC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;oBACjC,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,UAAU;wBACjC,UAAU,EAAE,MAAM,KAAK,YAAY,CAAC;wBACpC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS;wBACjE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,CAAC,MAAM;4BACxC,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAEtD,OAAO,OAAO,CACZ,2BAA2B,EAC3B,mDAAmD,EACnD,UAAU,EACV,KAAK,CACN,CAAC;YACN,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;gBACpE,GAAG,EAAE,IAAI;gBACT,SAAS,EAAE,EAAE,GAAG,IAAI;aACrB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACnB,OAAO,OAAO,CACZ,2BAA2B,EAC3B,gCAAgC,EAChC,UAAU,EACV,KAAK,CACN,CAAC;YACJ,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,OAAO,EAAE,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM;gBAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,QAAQ,EACN,QAAQ,CAAC,IAAI,CAAC,QAAQ;wBACtB,IAAI,CAAC,qBAAqB,EAAE,QAAQ;wBACpC,IAAI,CAAC,UAAU,EAAE,IAAI;wBACrB,YAAY;oBACd,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI;oBACnD,kEAAkE;oBAClE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;wBACvC,QAAQ,EAAE;4BACR,aAAa,EAAE,EAAE,GAAG,IAAI;4BACxB,IAAI,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;yBAC9C;qBACF,CAA+B;iBACjC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,KAA4B;QAE5B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC;YACH,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnD,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,MAAM,IAAI,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAC1D,CAAC;gBACF,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,OAAO;oBACP,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,kBAAkB,EAAE,UAAU,CAAC,MAAM;wBACnC,CAAC,CAAE,QAAkB;wBACrB,CAAC,CAAE,YAAsB;oBAC3B,GAAG,EAAE,UAAU,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,QAAQ,CAAC;oBACb,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;oBAC/B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;iBACjC,CAAC;gBACF,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBACxB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBACxB,SAAS,EACP,KAAK,CAAC,OAAO,CAAC,iBAAiB;oBAC/B,IAAI,UAAU,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC7D,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,OAAO,EAAE;oBACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;wBACzB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC5C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBACrC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACpD,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,WAAW;aACZ,CAAC;YACF,IAAI,QAA4B,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpC,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAIpD,CAAC;YACF,MAAM,cAAc,GAAkC,IAAI,CAAC,QAAQ;gBACjE,EAAE,MAAM;gBACR,CAAC,CAAC;oBACE,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EACL,kEAAkE;oBACpE,QAAQ,EAAE,WAAW;oBACrB,sEAAsE;oBACtE,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE;wBACV,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAC9D;wBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACxC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAC9D;qBACF;iBACF;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;YAC3D,IAAI,aAAa,CAAC;YAClB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;wBACnC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI;wBACpE,CAAC,CAAC,OAAO,CAAC,IAAI,CACV,CAAC,IAAI,EAAE,EAAE,CACP,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,MAAM,CAC5D,EAAE,IAAI,CAAC;oBACZ,IAAI,CAAC,MAAM;wBACT,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,MAAM,CAAC,UAAU;4BACpB,CAAC,CAAC,4DAA4D;4BAC9D,CAAC,CAAC,gEAAgE,CACrE,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAClC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,EAC/C,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtD,IACE,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAC/D,CAAC;4BACD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,0EAA0E;oBAC1E,aAAa,GAAG;wBACd,GAAG,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC;wBAC9C,IAAI,EAAE,uBAAuB;wBAC7B,SAAS,EAAE,KAAK;qBACjB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,iBAAiB,EAAE,iBAAiB;gBACpC,iBAAiB;gBACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACrD,OAAO;gBACL,MAAM,EACJ,iBAAiB;oBACjB,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS;wBAChC,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC;oBACpC,UAAU,CAAC,SAAS;oBAClB,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,QAAQ;gBACd,KAAK,EAAE,UAAU;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,iBAAyB,EACzB,IAAa,EACb,MAAoB;QAEpB,IACE,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,IAAI,CAAC,SAAS;gBACb,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO;oBACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,CAAC;YAE5D,OAAO,OAAO,CACZ,yBAAyB,EACzB,yDAAyD,EACzD,eAAe,EACf,KAAK,CACN,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;YACjE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,iBAAyB,EACzB,OAAgB,EAChB,MAAoB;QAEpB,IACE,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,IAAI,CAAC,SAAS;gBACb,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO;oBACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,CAAC;YAE5D,OAAO,OAAO,CACZ,yBAAyB,EACzB,yDAAyD,EACzD,eAAe,EACf,KAAK,CACN,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;YACvE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,WAAW,CACtB,iBAAyB,EACzB,gBAAwB,EACxB,MAAoB;QAEpB,IACE,CAAC,IAAI,CAAC,SAAS;YACf,IAAI,CAAC,SAAS,EAAE,SAAS,KAAK,MAAM;YACpC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,iBAAiB;YACtD,IAAI,CAAC,SAAS,CAAC,2BAA2B,KAAK,gBAAgB;YAE/D,MAAM,sBAAsB,CAC1B,gCAAgC,EAChC,wCAAwC,CACzC,CAAC;QACJ,IAAI,KAAgC,CAAC;QACrC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IACE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAChC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;gBAEnC,MAAM,sBAAsB,CAC1B,4BAA4B,EAC5B,gEAAgE,CACjE,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,CAAC,OAAO,CAAC,IAAI,CACX,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CACtE;gBAED,MAAM,sBAAsB,CAC1B,iCAAiC,EACjC,qFAAqF,CACtF,CAAC;YACJ,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACpE,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,IAAI,kBAAkB,CAAC,QAAQ;gBAC7B,MAAM,sBAAsB,CAC1B,6BAA6B,EAC7B,wCAAwC,CACzC,CAAC;YACJ,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,KAAK,CAAC,MAAM,EACZ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAChD,KAAK,CACN,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ;gBAC3C,MAAM,sBAAsB,CAC1B,6BAA6B,EAC7B,mCAAmC,CACpC,CAAC;YACJ,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,YAAY,GAAG,CAAC;gBAC1C,MAAM,sBAAsB,CAC1B,iCAAiC,EACjC,yCAAyC,CAC1C,CAAC;YACJ,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW;gBAC/B,MAAM,sBAAsB,CAC1B,iCAAiC,EACjC,4EAA4E,CAC7E,CAAC;YACJ,IACE,MAAM,CAAC,OAAO;gBACd,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;gBACxB,MAAM,CAAC,OAAO,CAAC,cAAc;gBAC7B,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;gBACzC,CAAC,KAAK,CAAC,WAAW;gBAElB,MAAM,sBAAsB,CAC1B,6BAA6B,EAC7B,oDAAoD,CACrD,CAAC;YACJ,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACvD,MAAM,sBAAsB,CAC1B,iCAAiC,EACjC,4DAA4D,CAC7D,CAAC;YACJ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,gBAAgB,IAAI,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxC,KAAK,GAAG,SAAS,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC;YACpD,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3C,4EAA4E;YAC5E,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvB,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvB,IACE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;oBAChC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;oBAEnC,MAAM,sBAAsB,CAC1B,4BAA4B,EAC5B,6CAA6C,CAC9C,CAAC;gBACJ,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,WAAW,CAAC,CAC5D,MAAM,EACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAChB,gBAAgB,EAChB,MAAM,CACP,CAAC;gBACF,IACE,CAAC,KAAK;oBACN,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBAE5D,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;gBACJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACjD,KAAK,EACL,iBAAiB,CAClB,CAAC;gBACF,IACE,CAAC,WAAW;oBACZ,CAAC,MAAM;oBACP,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;oBAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;oBACtC,WAAW,CAAC,QAAQ,EAAE,SAAS,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS;oBAC9D,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC;oBAE1D,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;gBACJ,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE;oBAC1D,GAAG,KAAK;oBACR,UAAU,EAAE,UAAU,EAAE;oBACxB,iBAAiB;oBACjB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;oBAC7B,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK;oBAC/C,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK;oBACrD,UAAU,EAAE,WAAW,CAAC,YAAY;wBAClC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;wBACrC,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;gBACH,wFAAwF;gBACxF,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnE,IACE,CAAC,MAAM,CAAC,OAAO;wBACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW;wBAE/D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC/D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CACnC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACjC,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;wBACnE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC7D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CACzC,KAAK,EACL,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAY,EAAE,WAAW,CAAC,EACrD;wBACE,IAAI,EAAE,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACtC,OAAO,EAAE,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,WAAW,CAAC;qBAC7C,CACF,CAAC;oBACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACjD,KAAK,CAAC,WAAY,EAClB,iBAAiB,CAClB,CAAC;YACF,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxE,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,KAAK,CAAC,MAAM,EACZ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAChD,KAAK,CACN,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ;oBAC3C,MAAM,sBAAsB,CAC1B,6BAA6B,EAC7B,mCAAmC,CACpC,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,IACE,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EACxB,CAAC,WAAW,CAAC,EACb,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;wBAEF,MAAM,IAAI,KAAK,CACb,sDAAsD,CACvD,CAAC;gBACN,CAAC;qBAAM,IAAI,CAAC,OAAO;oBACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;YACD,+FAA+F;YAC/F,IACE,CAAC,MAAM,CAAC,OAAO;gBACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW;gBAE/D,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CACnC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACjC,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;gBACnE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CACzC,KAAK,EACL,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAY,EAAE,WAAW,CAAC,EACrD;gBACE,IAAI,EAAE,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACtC,OAAO,EAAE,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,WAAW,CAAC;aAC7C,CACF,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IACG,KAAwC,CAAC,gBAAgB;gBAC1D,CAAC,KAAK,EAAE,WAAW;gBAEnB,aAAa,GAAG,KAAK,CAAC;YACxB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,aAAa;gBAC/C,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,CAAC;gBAC/C,MAAM,sBAAsB,CAC1B,gCAAgC,EAChC,sFAAsF,CACvF,CAAC;YACJ,IAAI,KAAK,YAAY,SAAS;gBAAE,MAAM,KAAK,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,KAAwB,EACxB,iBAAyB;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAClC,KAAK,CAAC,GAAG,EACT;YACE,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,IAAI;SACnB,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;QACF,IACE,CAAC,MAAM;YACP,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YACxB,CAAC,CAAC,MAAM,CAAC,KAAK,YAAY,GAAG,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAE7B,OAAO,SAAS,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC;QACtC,IACE,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY,CAAC;YAClD,MAAM,CAAC,OAAO,KAAK,iBAAiB;YAEpC,OAAO,SAAS,CAAC;QACnB,IACE,MAAM,KAAK,gBAAgB;YAC3B,MAAM,CAAC,QAAQ,EAAE,SAAS,KAAK,iBAAiB;YAEhD,OAAO,SAAS,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CACrB,KAAwB,EACxB,OAA2B;QAE3B,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,kBAAkB,CAChB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,GAAG,EACT,IAAI,EACJ,KAAK,CACN,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,iBAAyB,EACzB,WAAoB,EACpB,MAAoB;QAEpB,IACE,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,IAAI,CAAC,SAAS;gBACb,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,QAAQ;oBACpC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,CAAC;YAE5D,OAAO,OAAO,CACZ,yBAAyB,EACzB,yDAAyD,EACzD,eAAe,EACf,KAAK,CACN,CAAC;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,OAAO,CACZ,8BAA8B,EAC9B,4FAA4F,EAC5F,eAAe,EACf,KAAK,CACN,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,kEAAkE;YAClE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC;gBACtC,OAAO,OAAO,CACZ,uBAAuB,EACvB,+GAA+G,EAC/G,eAAe,EACf,KAAK,CACN,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW;oBACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAClC,OAAO,CAAC,GAAG,EACX,EAAE,GAAG,EAAE,IAAI,EAAE,EACb,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;gBACF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrE,IACE,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;oBACjE,GAAG,EAAE,IAAI;iBACV,CAAC,CAAC;oBAEH,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CACnC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAC5B,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBACxB,OAAO,OAAO,CACZ,wBAAwB,EACxB,qDAAqD,EACrD,UAAU,EACV,KAAK,CACN,CAAC;YACJ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;oBACxD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,wFAAwF;gBACxF,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC/D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACtE,uDAAuD;gBACvD,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC1C,CAAC;YACJ,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,iBAAyB,EACzB,IAAY,EACZ,OAAgB,EAChB,MAAoB;QAEpB,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAClE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;gBACpC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI;YACtB,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACrB,IAAI,CAAC,OAAO,CAAC,EAAE,EACf,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,UAAU,CAChB;YACH,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;aAClB;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC5B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aACjC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,OAAO,CAAC,IAAI,EACZ,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mBAAmB,CACzB,SAAkC;QAElC,+EAA+E;QAC/E,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC7D,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,IAAY,EACZ,aAA4B;QAE5B,IAAI,KAAK,GAAiC,QAAQ,CAAC;QACnD,IAAI,iBAAqC,CAAC;QAC1C,IAAI,mBAAuC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,aAAa,EAAE,MAAM,CAAC;YAC3C,IACE,YAAY,EAAE,OAAO,KAAK,SAAS;gBACnC,YAAY,CAAC,WAAW,KAAK,SAAS,EACtC,CAAC;gBACD,KAAK,GAAG,MAAM,CAAC;gBACf,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC;gBAC7C,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnD,KAAK,GAAG,QAAQ,CAAC;gBACjB,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,GAAG,QAAQ,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACvC,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IACE,MAAM;gBACN,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC5B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpC,MAAM,CAAC,OAAO,IAAI,CAAC;gBACnB,MAAM,CAAC,WAAW,KAAK,SAAS;gBAChC,MAAM,CAAC,WAAW,IAAI,EAAE,EACxB,CAAC;gBACD,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,GAAG,QAAQ,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;YAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAK,KAA4B,EAAE,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBACvE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,oDAAoD,IAAI,WAAW,KAAK,aAAa,iBAAiB,IAAI,SAAS,aAAa,mBAAmB,IAAI,UAAU,IAAI,CACtK,EACD,EAAE,IAAI,EAAE,0BAA0B,EAAE,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,OAAsB;QAEtB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,CACjB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,kJAAkJ,CACnJ,EACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,OAAqB;QAC3C,OAAO;YACL,gBAAgB,EAAE,OAAO,CAAC,IAAI;YAC9B,IAAI,EAAE,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YAClC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM;YACnC,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,MAAc,EACd,WAAmB,EACnB,IAAuB,EACvB,MAAoB;QAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAyB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,6EAA6E;QAC7E,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE;YAC9D,GAAG,EAAE,IAAI;SACV,CAAC,EAAE,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5C,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,CACP,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAChD,QAAQ,EAAE,QAAQ,CAAC,IAAI,CACrB,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,MAAM,KAAK,MAAM;oBAC1B,QAAQ,CAAC,WAAW,KAAK,WAAW;oBACpC,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAC/B;gBACD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY,EAAE,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBAC7D,SAAS,EAAE,OAAO,CAAC,aAAa;gBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,2BAA2B,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAC5B,OAA+B,EAC/B,MAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CACE,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACtE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CACpD,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC/C,MAAM,EAAE,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;YAC1E,IAAI,EAAE;gBAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC/C,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,QAAQ,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,QAA0D,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,IACE,QAAQ;oBACR,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU;wBAC7B,QAAQ,CAAC,MAAM,KAAK,YAAY,CAAC;oBACnC,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY;wBAC/B,QAAQ,CAAC,iBAAiB,KAAK,QAAQ,CAAC,EAC1C,CAAC;oBACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,0DAA0D,CAC3D,EACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAC;gBACJ,CAAC;gBACD,gFAAgF;gBAChF,QAAQ,GAAG;oBACT,EAAE,EAAE,QAAQ,CAAC,iBAAiB;oBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;iBACrC,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,CAAC;oBACpE,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,2DAA2D,CAC5D,EACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY;oBAClE,QAAQ,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YACtD,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7B,IACE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS;oBAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,gBAAgB,EACpC,CAAC;oBACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,2DAA2D,CAC5D,EACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChC,IACE,OAAO;oBACL,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;oBACjD,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,gBAAgB;4BACnC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EACvD,CAAC;oBACD,QAAQ,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;oBAC5C,IAAI,CAAC,OAAO;wBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,QAAQ,KAAK;gBACX,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;gBAC7C,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,GAAG,IAAI,CAAC,KAAK;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU;gBACV,iBAAiB,EAAE,QAAQ,CAAC,EAAE;gBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;aACpC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;QACnD,IAAI,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACrD,IAAI,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,iBAAiB,CAC7B,EAAU,EACV,IAAiB,EACjB,MAAoB;QAEpB,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC3C,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,OAAO,IAAI,CAAC,aAAa,CACvB;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,EACD,IAAI,EACJ,MAAM,CACP,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,IAAiB,EACjB,KAAkB,EAClB,MAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,OAAO,CACnB,IAAuD,EACvD,MAAoB;QAEpB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,GAAuB,CAAC;QAC5B,IACE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC;YACpE,IAAI,CAAC,IAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAChC,CAAC;YACD,4DAA4D;YAC5D,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAK,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC1D,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,GAAG;oBACD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW;wBACpD,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAK,EAAE,MAAM,CAAC;wBACjE,CAAC,CAAC,SAAS,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,gBAAgB;oBAClE,MAAM,KAAK,CAAC;gBACd,GAAG,GAAG,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ,CACpB,QAA4B,EAC5B,KAAuB,EACvB,QAAQ,GAAG,IAAI;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,WAAW;gBACtD,OAAO,SAAS,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CACnC,QAAQ,CAAC,GAAG,EACZ,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EACvC,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;YACF,OAAO,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnE,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC1D,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,gBAAgB;gBAClE,MAAM,KAAK,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,OAAO,OAAO,CACZ,2BAA2B,EAC3B,8EAA8E,EAC9E,UAAU,EACV,KAAK,CACN,CAAC;IACJ,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,eAAe,CAC3B,iBAAyB,EACzB,IAAY,EACZ,OAAgB,EAChB,MAAoB;QAEpB,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBACxB,OAAO,OAAO,CACZ,wBAAwB,EACxB,qDAAqD,EACrD,UAAU,EACV,KAAK,CACN,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;oBACxD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBAClE,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CACrC,GAAG,EACH,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAC1B,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;gBACF,IACE,CAAC,SAAS;oBACV,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;oBAC9B,CAAC,SAAS,CAAC,KAAK;oBAChB,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;oBAErC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACxE,MAAM,IAAI,CAAC,SAAU,CAAC,WAAW,CAC/B,QAAQ,EACR,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAC7D,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CACzB,SAAkC,EAClC,OAAmD,EACnD,QAAqC,EACrC,MAAoB;QAKpB,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAqC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/C,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,EAAE,CAAC;QACzD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE;gBACtD,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;gBAAE,OAAO,oBAAoB,CAAC;YAC1E,sEAAsE;YACtE,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;gBAAE,MAAM,GAAG,KAAK,CAAC;YACrD,IAAI,IAAkC,CAAC;YACvC,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC9C,8EAA8E;gBAC9E,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,4EAA4E;gBAC5E,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,uBAAuB,CAAC,EAClE,EAAE,IAAI,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAClE,CAAC;YACJ,IACE,IAAI,CAAC,IAAI,CACP,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,UAAU,CACnE;gBAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,IACE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3C,2BAA2B,EAC3B,CAAC;gBACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,KAAK;iBACF,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI;gBAChC,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;gBAC1C,QAAQ,CAAC,MAAM,KAAK,OAAO,CAC9B;iBACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CACnC,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI;gBAChC,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;gBAC1C,QAAQ,CAAC,MAAM,KAAK,OAAO;gBAC3B,QAAQ,CAAC,MAAM;gBACf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC/C,CAAC;YACF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;gBAChE,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CACpC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACnD;oBACE,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;oBACX,GAAG,CAAC,KAAK,CAAC,IAAI,CACZ,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,MAAM,KAAK,UAAU;wBAC9B,QAAQ,CAAC,MAAM,KAAK,YAAY,CACnC;wBACC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;wBACnB,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,gBAAgB,CAAC;wBAChE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACpB,CAAC,CAAC,EAAE,CAAC;iBACR,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAClD,CAAC;gBACF,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;oBAC7B,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACxC,IACE,OAAO,EAAE,KAAK;wBACd,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;wBAEnD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;;wBACtC,MAAM,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBACf,CAAC,QAAQ,CAAC,GAAG,CACX,QAAQ,CAAC;oBACP,MAAM,EAAE,OAAO,CAAC,IAAI;oBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG;iBACJ,CAAC,CACH,CACJ,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,6EAA6E;gBAC7E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACtC,OAAO,CAAC,IAAI,EACZ,KAAK,CAAC,WAAW,EACjB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,EACvD,MAAM,CACP,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,kBAAkB,CACtD,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvB,MAAM,EAAE,GACN,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;wBAChD,IAAI,CAAC,YAAY,CAAC;oBACpB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,CAAC,CAAC,CACH,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,MAAM,EAAE,GACN,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;wBAChD,IAAI,CAAC,YAAY,CAAC;oBACpB,MAAM,gBAAgB,GACpB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa;wBAClC,IAAI,CAAC,OAAO,CAAC,UAAU;wBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;4BACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACjE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;wBAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBACD,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnE,IACE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACjC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,KAAK,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,CACrB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,CACtB,MAAM,IAAI,CAAC,IAAI,EAAE,CAClB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI;gBAC1D,MAAM,GAAG,KAAK,CAAC;YACjB,IACE,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW;gBACzD,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;gBAEjD,MAAM,GAAG,KAAK,CAAC;YACjB,IAAI,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW;gBAC3D,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IACE,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;YACpC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE1D,MAAM,GAAG,KAAK,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;YACxC,IACE,UAAU,KAAK,SAAS;gBACxB,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAC1D,CAAC;gBACD,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;gBACtE,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,IACE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CACtD;gBAED,SAAS;YACX,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;YAC1D,MAAM,QAAQ,GACZ,UAAU,KAAK,QAAQ,CAAC,WAAW;gBACnC,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,CAAC;gBACpE,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;oBACrC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;oBAC/B,IAAI,CAAC,iBAAiB,KAAK,QAAQ,CAAC,iBAAiB;oBACrD,IAAI,CAAC,MAAM,KAAK,OAAO;oBACvB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,WAAW;oBACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1C,CAAC;YACJ,IACE,MAAM;gBACN,QAAQ,CAAC,MAAM,KAAK,OAAO;gBAC3B,QAAQ,CAAC,MAAM;gBACf,UAAU,KAAK,QAAQ,CAAC,WAAW;gBACnC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EACvB,CAAC;gBACD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;oBACrB,MAAM,GAAG,KAAK,CAAC;oBACf,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;oBAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GACR,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE;gBACrD,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE;oBACrD,CAAC,CAAC,QAAQ,IAAI,MAAM;wBAClB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE;wBACtD,CAAC,CAAC,CAAC,IAAI;4BACL,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE;4BACrD,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,WAAW;gCACnC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE;gCACrD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;oCACtB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;oCACrB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IACE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxE,2BAA2B,EAC3B,CAAC;YACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAAC;gBACzC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,QAAQ,EAAE,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAAC;YACzC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;QACvE,CAAC;QACD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE;SACjE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,WAAmB,EACnB,OAA2B,EAC3B,MAAoB,EACpB,eAAuB,mBAAmB;QAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IACE,CAAC,MAAM;YACP,MAAM,CAAC,UAAU,GAAG,gBAAgB;YACpC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EACpD,CAAC;YACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,sEAAsE,CACvE,EACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACnE,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;aACrB,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,QAAQ,CACzB,MAAM,IAAI,CAAC,IAAI,EAAE,EACjB,OAAO,CAAC,GAAG,EACX,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAChC,MAAM,EACN,YAAY,CACb,CAAC;QACF,MAAM,IAAI,GAAG,MAAM;YACjB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM;YACf,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,MAAM;YACf,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM;YAChB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACvB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAC5D,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CACpE,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,EAAU,CAAC;QACjD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;YAC7C,MAAM;YACN,WAAW;YACX,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACH,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,MAAM;gBAClC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,OAAO;YACL,iBAAiB;YACjB,GAAG,IAAI;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iFAAiF;YACjF,iBAAiB,EACf,0DAA0D,CAAC,IAAI,CAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxB,EAAE,CAAC,CAAC,CAAC;YACR,iBAAiB,EAAE,CAAC,MAAM,CAAC;YAC3B,IAAI;YACJ,EAAE;YACF,EAAE;YACF,GAAG;YACH,OAAO;YACP,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS;YAC3D,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;YAC3D,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3B,UAAU;YACV,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,UAAU,KAAK,QAAQ;YACtD,WAAW;SACZ,CAAC;IACJ,CAAC;CACF;AAYD,SAAS,QAAQ,CAAC,KAAwB;IACxC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AAElC,2EAA2E;AAC3E,SAAS,aAAa,CACpB,MAAgC,EAChC,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,MAAM,KAAK,UAAU;QACvB,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,IAAI,MAAM,KAAK,YAAY;QACzB,4EAA4E;QAC5E,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU;YACrE,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,OAAO,KAAK;QACV,KAAK,CAAC,MAAM,IAAI,2BAA2B;QAC3C,yDAAyD,CAAC,IAAI,CAAC,KAAK,CAAC;QACrE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,IAAgD,EAChD,KAAiD;IAEjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QACzC,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW;YACnD,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO;YAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACvC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,QAAQ,CACpE,KAAuC,EAAE,IAAI,IAAI,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,UAAU,CAAC,MAAgB,EAAE,GAAW;IACrD,MAAM,UAAU,GAAG,MAKlB,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE;QACpD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;KACzC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,uGAAuG;AACvG,KAAK,UAAU,WAAW,CACxB,MAAgB,EAChB,GAAW,EACX,MAAc,EACd,MAAe;IAGf,MAAM,UAAU,GAAG,MAQlB,CAAC;IACF,IAAI,OAAsC,CAAC;IAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,QAAkB,EAAQ,EAAE;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,SAAS;YAAE,OAAO;QAC9C,MAAM,MAAM,GAAG,CAAC,KAAc,EAAsB,EAAE;YACpD,IACE,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAE/C,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACxC,MAAM,QAAQ,GACZ,OAAO,aAAa,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;YACvE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YACvB,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;QAC1E,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QACrE,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC,CAAC;IACF,qFAAqF;IACrF,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAC5B,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAChC;YACE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;SACpD,EACD;YACE,QAAQ,EAAE;gBACR,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACrB,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC;aACF;SACF,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAGf,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;YACjE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAClC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAClB,QAA4B,EAC5B,OAA2B,EAC3B,aAAuC;IAEvC,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;IAC5C,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,oEAAoE;QACpE,OAAO,CACL,CAAC,QAAQ;YACT,CAAC,aAAa,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,CAAC,iBAAiB,CAAC,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,gBAAgB;QAC7B,OAAO,OAAO,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,CAAC,iBAAiB,CAAC;IACpE,OAAO,CACL,MAAM,KAAK,SAAS;QACpB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,iBAAiB,CACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ImapFlow } from 'imapflow';
2
+ import { createImapClient } from './connection.js';
3
+ import type { ImapSmtpEndpointConfig } from './config.js';
4
+ import type { ImapSmtpCredential } from './types.js';
5
+ /** Each borrower owns its connection; only one idle connection per account is retained. */
6
+ export declare class ImapConnectionPool {
7
+ private readonly createClient;
8
+ private readonly idle;
9
+ private readonly connections;
10
+ private closed;
11
+ constructor(createClient?: typeof createImapClient);
12
+ acquire(accountId: string, endpoint: ImapSmtpEndpointConfig, credential: ImapSmtpCredential): Promise<ImapFlow>;
13
+ release(client: ImapFlow): Promise<void>;
14
+ destroy(client: ImapFlow): void;
15
+ closeAll(): Promise<void>;
16
+ private forget;
17
+ private retire;
18
+ }
19
+ //# sourceMappingURL=connection-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/connection-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD,2FAA2F;AAC3F,qBAAa,kBAAkB;IAM3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,MAAM,CAAS;gBAGJ,YAAY,GAAE,OAAO,gBAAmC;IAG9D,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAmCP,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9C,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAKzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtC,OAAO,CAAC,MAAM;YASA,MAAM;CAQrB"}
@@ -0,0 +1,91 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { createImapClient } from './connection.js';
3
+ /** Each borrower owns its connection; only one idle connection per account is retained. */
4
+ export class ImapConnectionPool {
5
+ createClient;
6
+ idle = new Map();
7
+ connections = new Map();
8
+ closed = false;
9
+ constructor(createClient = createImapClient) {
10
+ this.createClient = createClient;
11
+ }
12
+ async acquire(accountId, endpoint, credential) {
13
+ if (this.closed)
14
+ throw new Error('The IMAP connection pool is closed.');
15
+ const key = createHash('sha256')
16
+ .update(JSON.stringify([
17
+ accountId,
18
+ endpoint.host,
19
+ endpoint.port,
20
+ endpoint.secure,
21
+ endpoint.rejectUnauthorized ?? true,
22
+ credential.username,
23
+ credential.password,
24
+ ]))
25
+ .digest('hex');
26
+ const cached = this.idle.get(accountId);
27
+ if (cached) {
28
+ clearTimeout(cached.timer);
29
+ this.idle.delete(accountId);
30
+ cached.timer = undefined;
31
+ if (cached.key === key && cached.client.usable)
32
+ return cached.client;
33
+ this.destroy(cached.client);
34
+ }
35
+ const client = this.createClient(endpoint, credential);
36
+ this.connections.set(client, { accountId, key, client });
37
+ try {
38
+ await client.connect();
39
+ if (this.closed)
40
+ throw new Error('The IMAP connection pool is closed.');
41
+ return client;
42
+ }
43
+ catch (error) {
44
+ this.destroy(client);
45
+ throw error;
46
+ }
47
+ }
48
+ async release(client) {
49
+ const connection = this.connections.get(client);
50
+ if (!connection)
51
+ return;
52
+ if (connection.timer)
53
+ return;
54
+ if (this.closed || !client.usable || this.idle.has(connection.accountId)) {
55
+ await this.retire(client);
56
+ return;
57
+ }
58
+ this.idle.set(connection.accountId, connection);
59
+ connection.timer = setTimeout(() => {
60
+ void this.retire(client);
61
+ }, 60_000);
62
+ connection.timer.unref();
63
+ }
64
+ destroy(client) {
65
+ this.forget(client);
66
+ client.close();
67
+ }
68
+ async closeAll() {
69
+ this.closed = true;
70
+ await Promise.all([...this.connections.keys()].map((client) => this.retire(client)));
71
+ }
72
+ forget(client) {
73
+ const connection = this.connections.get(client);
74
+ if (!connection)
75
+ return;
76
+ clearTimeout(connection.timer);
77
+ if (this.idle.get(connection.accountId) === connection)
78
+ this.idle.delete(connection.accountId);
79
+ this.connections.delete(client);
80
+ }
81
+ async retire(client) {
82
+ this.forget(client);
83
+ try {
84
+ await client.logout();
85
+ }
86
+ catch {
87
+ client.close();
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=connection-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-pool.js","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/connection-pool.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import type { MailProviderDefinition } from '../../contracts/provider.js';
2
2
  import type { ImapLocationPersistence } from './types.js';
3
3
  import type { ImapSmtpMailProviderConfig } from './config.js';
4
+ import { ImapConnectionPool } from './connection-pool.js';
4
5
  /**
5
6
  * Mail registers this definition with persistence bound to each account, so
6
7
  * every adapter instance reads and commits only its own account's copies.
7
8
  */
8
- export declare function createImapSmtpMailProviderDefinition(locations?: (accountId: string) => ImapLocationPersistence): MailProviderDefinition<ImapSmtpMailProviderConfig>;
9
+ export declare function createImapSmtpMailProviderDefinition(locations?: (accountId: string) => ImapLocationPersistence, pool?: ImapConnectionPool): MailProviderDefinition<ImapSmtpMailProviderConfig>;
9
10
  /** Protocol-only definition without location persistence. */
10
11
  export declare const imapSmtpMailProviderDefinition: MailProviderDefinition<ImapSmtpMailProviderConfig>;
11
12
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,uBAAuB,EAAsB,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAM9D;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,uBAAuB,GACzD,sBAAsB,CAAC,0BAA0B,CAAC,CAwBpD;AAED,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,EAAE,sBAAsB,CAAC,0BAA0B,CACtD,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,uBAAuB,EAAsB,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,uBAAuB,EAC1D,IAAI,GAAE,kBAA6C,GAClD,sBAAsB,CAAC,0BAA0B,CAAC,CA4BpD;AAED,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,EAAE,sBAAsB,CAAC,0BAA0B,CACtD,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { IMAP_SMTP_CAPABILITIES } from './constants.js';
2
2
  import { ImapSmtpAdapter } from './adapter.js';
3
+ import { ImapConnectionPool } from './connection-pool.js';
3
4
  import { validateConfig, verifyConnections } from './connection.js';
4
5
  import { classifyError, failure } from './errors.js';
5
6
  /**
6
7
  * Mail registers this definition with persistence bound to each account, so
7
8
  * every adapter instance reads and commits only its own account's copies.
8
9
  */
9
- export function createImapSmtpMailProviderDefinition(locations) {
10
+ export function createImapSmtpMailProviderDefinition(locations, pool = new ImapConnectionPool()) {
10
11
  return {
11
12
  type: 'imap-smtp',
12
13
  label: 'IMAP / SMTP',
@@ -15,7 +16,7 @@ export function createImapSmtpMailProviderDefinition(locations) {
15
16
  connection: createConnection(),
16
17
  async createAdapter(context, config, account) {
17
18
  const credential = await context.credentials.get(account.credentialReference);
18
- return new ImapSmtpAdapter(context, config, account, credential, locations?.(account.id));
19
+ return new ImapSmtpAdapter(context, config, account, credential, locations?.(account.id), undefined, undefined, undefined, pool);
19
20
  },
20
21
  };
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/definition.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,oCAAoC,CAClD,SAA0D;IAE1D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,sBAAsB;QACpC,cAAc;QACd,UAAU,EAAE,gBAAgB,EAAE;QAC9B,KAAK,CAAC,aAAa,CACjB,OAA4B,EAC5B,MAAkC,EAClC,OAA4B;YAE5B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CAC9C,OAAO,CAAC,mBAAmB,CAC5B,CAAC;YACF,OAAO,IAAI,eAAe,CACxB,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CACxB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,8BAA8B,GACzC,oCAAoC,EAAE,CAAC;AAEzC,SAAS,gBAAgB;IACvB,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK;YAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC1B,OAAO,OAAO,CACZ,4BAA4B,EAC5B,gCAAgC,EAChC,eAAe,EACf,KAAK,CACN,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO,OAAO,CACZ,gCAAgC,EAChC,6CAA6C,EAC7C,gBAAgB,EAChB,KAAK,CACN,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,MAAM,EAAE;oBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC;gBACH,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,CACvD;oBACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACI,EAC9B,EAAE,OAAO,EAAE,SAAS,EAAE,CACvB,CAAC;gBACF,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;wBACnD,oBAAoB,EAAE,KAAK,CAAC,QAAQ;wBACpC,mBAAmB;wBACnB,MAAM,EAAE,EAAE;wBACV,UAAU,EAAE;4BACV;gCACE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gCAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;gCACnD,SAAS,EAAE,IAAI;gCACf,OAAO,EAAE,IAAI;6BACd;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../server/adapters/imap-smtp/definition.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { ServiceProvider } from '@nocobase/service-provider';
2
2
  import type { AppPluginApplication } from '@nocobase/app-server/plugins';
3
3
  export declare class MailBuiltinsProvider extends ServiceProvider<AppPluginApplication> {
4
4
  readonly name: string;
5
+ private readonly imapPool;
6
+ shutdown(): Promise<void>;
5
7
  boot(): Promise<void>;
6
8
  }
7
9
  //# sourceMappingURL=mail-builtins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail-builtins.d.ts","sourceRoot":"","sources":["../../../server/providers/mail-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AASzE,qBAAa,oBAAqB,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IAC7E,SAAgB,IAAI,EAAE,MAAM,CAAwC;IAEpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBtC"}
1
+ {"version":3,"file":"mail-builtins.d.ts","sourceRoot":"","sources":["../../../server/providers/mail-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAUzE,qBAAa,oBAAqB,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IAC7E,SAAgB,IAAI,EAAE,MAAM,CAAwC;IAEpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAErC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBtC"}
@@ -3,10 +3,15 @@ import { databaseManagerToken } from '@nocobase/db';
3
3
  import { gmailMailProviderDefinition } from '../adapters/gmail/definition.js';
4
4
  import { microsoftMailProviderDefinition } from '../adapters/microsoft/definition.js';
5
5
  import { createImapSmtpMailProviderDefinition } from '../adapters/imap-smtp/definition.js';
6
+ import { ImapConnectionPool } from '../adapters/imap-smtp/connection-pool.js';
6
7
  import { createImapLocationPersistence } from '../store/sync.js';
7
8
  import { mailProviderRegistryToken } from '../tokens.js';
8
9
  export class MailBuiltinsProvider extends ServiceProvider {
9
10
  name = '@nocobase/app-plugin-mail/builtins';
11
+ imapPool = new ImapConnectionPool();
12
+ shutdown() {
13
+ return this.imapPool.closeAll();
14
+ }
10
15
  boot() {
11
16
  this.app.container
12
17
  .resolve(mailProviderRegistryToken)
@@ -14,7 +19,7 @@ export class MailBuiltinsProvider extends ServiceProvider {
14
19
  .register(microsoftMailProviderDefinition)
15
20
  .register(
16
21
  // Each IMAP adapter gets location reads and commits bound to its own account.
17
- createImapSmtpMailProviderDefinition((accountId) => createImapLocationPersistence(this.app.container.resolve(databaseManagerToken), accountId)));
22
+ createImapSmtpMailProviderDefinition((accountId) => createImapLocationPersistence(this.app.container.resolve(databaseManagerToken), accountId), this.imapPool));
18
23
  return Promise.resolve();
19
24
  }
20
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mail-builtins.js","sourceRoot":"","sources":["../../../server/providers/mail-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,OAAO,oBAAqB,SAAQ,eAAqC;IAC7D,IAAI,GAAW,oCAAoC,CAAC;IAEpD,IAAI;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS;aACf,OAAO,CAAC,yBAAyB,CAAC;aAClC,QAAQ,CAAC,2BAA2B,CAAC;aACrC,QAAQ,CAAC,+BAA+B,CAAC;aACzC,QAAQ;QACP,8EAA8E;QAC9E,oCAAoC,CAAC,CAAC,SAAS,EAAE,EAAE,CACjD,6BAA6B,CAC3B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAChD,SAAS,CACV,CACF,CACF,CAAC;QACJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"mail-builtins.js","sourceRoot":"","sources":["../../../server/providers/mail-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,OAAO,oBAAqB,SAAQ,eAAqC;IAC7D,IAAI,GAAW,oCAAoC,CAAC;IAEnD,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAErC,QAAQ;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAEe,IAAI;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS;aACf,OAAO,CAAC,yBAAyB,CAAC;aAClC,QAAQ,CAAC,2BAA2B,CAAC;aACrC,QAAQ,CAAC,+BAA+B,CAAC;aACzC,QAAQ;QACP,8EAA8E;QAC9E,oCAAoC,CAClC,CAAC,SAAS,EAAE,EAAE,CACZ,6BAA6B,CAC3B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAChD,SAAS,CACV,EACH,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;QACJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@nocobase/app-plugin-mail",
3
3
  "displayName": "Mail App Plugin",
4
4
  "description": "Provides mail sending and resumable mailbox synchronization architecture.",
5
- "version": "1.0.0-beta.23",
5
+ "version": "1.0.0-beta.24",
6
6
  "type": "module",
7
7
  "prettier": "@nocobase/dev-config/prettier",
8
8
  "engines": {
@@ -68,11 +68,11 @@
68
68
  "react": "^19.0.0",
69
69
  "react-day-picker": "^10.0.1",
70
70
  "react-dom": "^19.0.0",
71
- "@nocobase/app-client": "^4.0.0-beta.9",
72
- "@nocobase/app-plugin-authentication": "^2.0.0-beta.20",
73
- "@nocobase/app-plugin-authorization": "^1.0.0-beta.37",
74
- "@nocobase/app-server": "^5.0.0-beta.2",
75
- "@nocobase/db": "^1.0.0-beta.26",
71
+ "@nocobase/app-client": "^4.0.0-beta.10",
72
+ "@nocobase/app-plugin-authentication": "^2.0.0-beta.21",
73
+ "@nocobase/app-plugin-authorization": "^1.0.0-beta.38",
74
+ "@nocobase/app-server": "^5.0.0-beta.5",
75
+ "@nocobase/db": "^1.0.0-beta.28",
76
76
  "@nocobase/i18n": "^2.0.0-beta.2",
77
77
  "@nocobase/jobs": "^1.0.0-beta.6",
78
78
  "@nocobase/service-provider": "^0.0.2-beta.2"
@@ -83,7 +83,7 @@
83
83
  "imapflow": "^2.0.0",
84
84
  "mailparser": "^3.9.24",
85
85
  "nodemailer": "^9.0.5",
86
- "zod": "^4.6.5"
86
+ "zod": "^4.6.6"
87
87
  },
88
88
  "devDependencies": {
89
89
  "@playwright/test": "^1.62.1",