@adriangalilea/utils 2.19.0 → 2.20.1

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.
@@ -19,10 +19,18 @@
19
19
  * Both can coexist: BotFather's native flag is a hard pre-filter, this
20
20
  * plugin is the dynamic UX on top of whoever gets through.
21
21
  *
22
- * **Group adds are a second gate** (`gateGroups: true`, off by default —
23
- * DMs are the plugin's core; rooms are opt-in). Two different questions,
24
- * gated separately: the DM gate asks "may this USER talk to the bot", the
25
- * group gate asks "may the bot serve this ROOM". With it on:
22
+ * **Each surface has a mode.** `dms` and `groups` are independent
23
+ * questions — the DM gate asks "may this USER talk to the bot", the room
24
+ * gate asks "may the bot serve this ROOM" — and each is `"allowlist"`
25
+ * (unknowns go pending, the admin approves) or `"open"` (unknowns pass;
26
+ * only an explicit deny blocks — open IS the ban-list mode, written via
27
+ * `/ban <id>` / the leave button, lifted via `/unban <id>`; a positive id
28
+ * bans a user, a negative one bans a room and leaves it). Defaults:
29
+ * `dms: "allowlist"` (the plugin's historic core), `groups: "off"` (no
30
+ * room machinery at all). The canonical pairings: a private bot runs
31
+ * allowlist/allowlist; a public bot runs open/open and keeps `/ban`.
32
+ *
33
+ * With `groups: "allowlist"`:
26
34
  *
27
35
  * bot added to a group / supergroup / channel
28
36
  * │
@@ -42,10 +50,12 @@
42
50
  * its first activity seeds a pending request (throttled DM) — existing
43
51
  * rooms surface for review instead of going silently mute forever. The
44
52
  * `/access` menu grows a `👥 Groups` view (approve / leave / re-allow).
45
- * And because the gates are independent, `gateDms: false` runs the room
46
- * gate WITHOUT the DM gate: unknown DM users pass (`source: 'open'`),
47
- * while an explicit `/access` deny still holds — a ban list for an
48
- * otherwise-open bot.
53
+ *
54
+ * With `groups: "open"` every add auto-approves QUIETLY (no DM — the
55
+ * consumer's own join notifications cover it) and rooms the bot already
56
+ * sits in self-register on first activity, so the Groups view lists the
57
+ * whole footprint ready to be banned; a banned room is left on sight.
58
+ *
49
59
  * Removal from a group clears its record (a fresh add re-asks) UNLESS it
50
60
  * was denied — deny memory survives, that's the anti-re-add-spam. Cost:
51
61
  * one storage read per gated group update. Known edge: a group→supergroup
@@ -185,6 +195,12 @@ export type GroupAccessRecord = {
185
195
  lastNotifiedAt?: number;
186
196
  };
187
197
  export type AccessSource = "admin" | "default" | "store" | "group" | "open";
198
+ /**
199
+ * A surface's gate mode. `allowlist`: unknowns land in pending and the
200
+ * admin approves. `open`: unknowns pass; only an explicit deny (`/ban`,
201
+ * the leave button) blocks — open IS the ban-list mode.
202
+ */
203
+ export type GateMode = "allowlist" | "open";
188
204
  /**
189
205
  * What handlers downstream see on `ctx.access`. A discriminated union —
190
206
  * use the `allowed` field to narrow.
@@ -236,18 +252,21 @@ export type AccessControlOptions = {
236
252
  /** Min ms between repeat admin notifications for the same user. Default 6h. */
237
253
  notifyThrottleMs?: number;
238
254
  /**
239
- * Gate group / supergroup / channel adds too (see the header). Off by
240
- * default: DM gating is the plugin's core, rooms are opt-in.
255
+ * DM surface mode. `"allowlist"` (default — the plugin's historic
256
+ * core): unknown DM users land in pending and the admin approves.
257
+ * `"open"`: unknown DM users pass (`ctx.access.source === 'open'`);
258
+ * an explicit deny (`/ban`, or a leftover deny record) still blocks —
259
+ * open mode IS the ban-list mode.
241
260
  */
242
- gateGroups?: boolean;
261
+ dms?: GateMode;
243
262
  /**
244
- * Pass `false` to run WITHOUT the DM gate: unknown DM users pass
245
- * (`ctx.access.source === 'open'`) instead of landing in pending.
246
- * The two gates are independent questions — this is how a bot gates
247
- * rooms only. Admin/defaults/store sources still resolve normally,
248
- * and the `/access` menu keeps working for whatever records exist.
263
+ * Room surface mode (group / supergroup / channel), see the header.
264
+ * `"off"` (default): no room machinery at all. `"allowlist"`: adds go
265
+ * pending, the admin approves or the bot leaves. `"open"`: every add
266
+ * auto-approves quietly (the room shows in `/access` → Groups, ready
267
+ * to be banned); a banned room is left on sight.
249
268
  */
250
- gateDms?: boolean;
269
+ groups?: GateMode | "off";
251
270
  /** Callbacks for your own logging / metrics. */
252
271
  onAccessRequest?: (info: {
253
272
  user: AccessUser;
@@ -467,16 +486,16 @@ export declare const accessControl: (opts: AccessControlOptions) => Plugin<Recor
467
486
  } | {
468
487
  access: {
469
488
  allowed: true;
470
- source: "store";
471
- record: AccessRecord;
489
+ source: "open";
472
490
  reason?: undefined;
491
+ record?: undefined;
473
492
  };
474
493
  } | {
475
494
  access: {
476
495
  allowed: true;
477
- source: "open";
496
+ source: "store";
497
+ record: AccessRecord;
478
498
  reason?: undefined;
479
- record?: undefined;
480
499
  };
481
500
  } | {
482
501
  access: {
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,18 @@
19
19
  * Both can coexist: BotFather's native flag is a hard pre-filter, this
20
20
  * plugin is the dynamic UX on top of whoever gets through.
21
21
  *
22
- * **Group adds are a second gate** (`gateGroups: true`, off by default —
23
- * DMs are the plugin's core; rooms are opt-in). Two different questions,
24
- * gated separately: the DM gate asks "may this USER talk to the bot", the
25
- * group gate asks "may the bot serve this ROOM". With it on:
22
+ * **Each surface has a mode.** `dms` and `groups` are independent
23
+ * questions — the DM gate asks "may this USER talk to the bot", the room
24
+ * gate asks "may the bot serve this ROOM" — and each is `"allowlist"`
25
+ * (unknowns go pending, the admin approves) or `"open"` (unknowns pass;
26
+ * only an explicit deny blocks — open IS the ban-list mode, written via
27
+ * `/ban <id>` / the leave button, lifted via `/unban <id>`; a positive id
28
+ * bans a user, a negative one bans a room and leaves it). Defaults:
29
+ * `dms: "allowlist"` (the plugin's historic core), `groups: "off"` (no
30
+ * room machinery at all). The canonical pairings: a private bot runs
31
+ * allowlist/allowlist; a public bot runs open/open and keeps `/ban`.
32
+ *
33
+ * With `groups: "allowlist"`:
26
34
  *
27
35
  * bot added to a group / supergroup / channel
28
36
  * │
@@ -42,10 +50,12 @@
42
50
  * its first activity seeds a pending request (throttled DM) — existing
43
51
  * rooms surface for review instead of going silently mute forever. The
44
52
  * `/access` menu grows a `👥 Groups` view (approve / leave / re-allow).
45
- * And because the gates are independent, `gateDms: false` runs the room
46
- * gate WITHOUT the DM gate: unknown DM users pass (`source: 'open'`),
47
- * while an explicit `/access` deny still holds — a ban list for an
48
- * otherwise-open bot.
53
+ *
54
+ * With `groups: "open"` every add auto-approves QUIETLY (no DM — the
55
+ * consumer's own join notifications cover it) and rooms the bot already
56
+ * sits in self-register on first activity, so the Groups view lists the
57
+ * whole footprint ready to be banned; a banned room is left on sight.
58
+ *
49
59
  * Removal from a group clears its record (a fresh add re-asks) UNLESS it
50
60
  * was denied — deny memory survives, that's the anti-re-add-spam. Cost:
51
61
  * one storage read per gated group update. Known edge: a group→supergroup
@@ -251,6 +261,12 @@ const loadAccess = async (storage, ctx, userId) => {
251
261
  const full = await loadFullRecord(storage, ctx, userId);
252
262
  return full.access;
253
263
  };
264
+ /** Forget the access judgment on a user (other plugins' fields survive). */
265
+ const dropAccess = async (storage, ctx, userId) => {
266
+ const full = await loadFullRecord(storage, ctx, userId);
267
+ delete full.access;
268
+ await storage.set(botStorageKey(ctx, userId), full);
269
+ };
254
270
  /** Read recipient's stored language (set by bot/language); fallback to en. */
255
271
  const langOfUser = async (storage, ctx, userId) => {
256
272
  const full = await loadFullRecord(storage, ctx, userId);
@@ -339,8 +355,11 @@ export const accessControl = (opts) => {
339
355
  const defaults = new Set(opts.defaults ?? []);
340
356
  const silentDeny = opts.silentDeny === true;
341
357
  const throttleMs = opts.notifyThrottleMs ?? DEFAULT_THROTTLE_MS;
342
- const gateGroups = opts.gateGroups === true;
343
- const gateDms = opts.gateDms !== false;
358
+ const dmMode = opts.dms ?? "allowlist";
359
+ const groupMode = opts.groups ?? "off";
360
+ // Internal shorthands the plumbing below reads.
361
+ const gateGroups = groupMode !== "off";
362
+ const gateDms = dmMode === "allowlist";
344
363
  // Seed (or re-notify) a room's pending request and DM the primary admin,
345
364
  // throttled per record. Called from the add event AND from an unknown
346
365
  // room's first activity (the gate-turned-on-later migration path).
@@ -415,8 +434,9 @@ export const accessControl = (opts) => {
415
434
  access: { allowed: true, source: "default" },
416
435
  };
417
436
  }
418
- // Group gate: in a gated bot, the ROOM's approval decides for group
419
- // chats — approving the room admits the room, every member of it.
437
+ // Room gate: the ROOM's status decides for group chats. Allowlist:
438
+ // only an approved room passes (approving the room admits every
439
+ // member). Open: every room passes except a banned one.
420
440
  if (gateGroups) {
421
441
  const chat = gatedChatOf(ctx);
422
442
  if (chat) {
@@ -426,6 +446,19 @@ export const accessControl = (opts) => {
426
446
  access: { allowed: true, source: "group" },
427
447
  };
428
448
  }
449
+ if (rec?.status === "denied") {
450
+ return {
451
+ access: {
452
+ allowed: false,
453
+ reason: "denied",
454
+ },
455
+ };
456
+ }
457
+ if (groupMode === "open") {
458
+ return {
459
+ access: { allowed: true, source: "open" },
460
+ };
461
+ }
429
462
  return {
430
463
  access: {
431
464
  allowed: false,
@@ -497,6 +530,22 @@ export const accessControl = (opts) => {
497
530
  messageCount: (ctx.session.access.messageCount ?? 0) + 1,
498
531
  };
499
532
  }
533
+ // Open rooms self-register on first activity (quietly approved),
534
+ // so the /access Groups view lists them ready to be banned —
535
+ // this also covers rooms the bot sat in before the gate existed.
536
+ if (groupMode === "open" && ctx.access.source === "open") {
537
+ const chat = gatedChatOf(ctx);
538
+ if (chat && !(await loadGroup(storage, ctx, chat.id))) {
539
+ const now = Date.now();
540
+ await saveGroup(storage, ctx, chat.id, {
541
+ status: "approved",
542
+ chat,
543
+ requestedAt: now,
544
+ approvedAt: now,
545
+ });
546
+ await indexAdd(storage, groupIndexKey(ctx), "approved", chat.id);
547
+ }
548
+ }
500
549
  return next();
501
550
  }
502
551
  // Acknowledge unauthorized callback queries so the spinner clears.
@@ -511,19 +560,28 @@ export const accessControl = (opts) => {
511
560
  if (!ctx.is("message") && !gatedPost)
512
561
  return;
513
562
  if (ctx.chat?.type !== "private") {
514
- // Under the group gate an unknown room's first activity seeds a
515
- // pending request (throttled DM) — this is how rooms the bot
516
- // already sat in when the gate turned on surface for review
517
- // (my_chat_member never fires for them).
518
563
  if (gateGroups) {
519
564
  const chat = gatedChatOf(ctx);
520
565
  if (chat) {
521
- await requestGroupAccess(ctx, chat, undefined);
566
+ if (ctx.access.reason === "denied") {
567
+ // A banned room still talking means an earlier leaveChat
568
+ // failed — retry, drop the update either way.
569
+ await botApi(ctx)
570
+ .leaveChat({ chat_id: chat.id })
571
+ .catch(() => { });
572
+ }
573
+ else if (groupMode === "allowlist") {
574
+ // An unknown room's first activity seeds a pending request
575
+ // (throttled DM) — how rooms the bot already sat in when
576
+ // the gate turned on surface for review (my_chat_member
577
+ // never fires for them).
578
+ await requestGroupAccess(ctx, chat, undefined);
579
+ }
522
580
  }
523
581
  }
524
- // Without it, access stays a private-DM concern: group messages
525
- // from unapproved users drop silently — seeding a request per
526
- // posting member would spam the admin.
582
+ // Without the room gate, access stays a private-DM concern: group
583
+ // messages from unapproved users drop silently — seeding a request
584
+ // per posting member would spam the admin.
527
585
  return;
528
586
  }
529
587
  // Only real messages remain (channel posts always took the branch
@@ -757,8 +815,85 @@ export const accessControl = (opts) => {
757
815
  const aLang = ctxLang(ctx);
758
816
  const v = mainView(await loadIndex(storage, indexKey(ctx)), defaults, aLang, gateGroups ? await loadIndex(storage, groupIndexKey(ctx)) : null);
759
817
  await ctx.send(v.text, { reply_markup: v.keyboard });
818
+ })
819
+ // The ban list's write path: open mode has no pending requests to
820
+ // deny from, so banning is by id — a positive id is a user, a
821
+ // negative one a room (banning a room also leaves it). Works in
822
+ // allowlist mode too (skip the request flow).
823
+ .command("ban", { description: "Admin: ban a user or room id", hide: true }, async (ctx) => {
824
+ if (!ctx.isAdmin)
825
+ return;
826
+ const aLang = ctxLang(ctx);
827
+ const id = Number((ctx.args ?? "").trim());
828
+ if (!Number.isSafeInteger(id) || id === 0) {
829
+ await ctx.send(say({
830
+ en: "Usage: /ban <user id or room id>",
831
+ es: "Uso: /ban <id de usuario o sala>",
832
+ }, aLang));
833
+ return;
834
+ }
835
+ const now = Date.now();
836
+ if (id < 0) {
837
+ const rec = await loadGroup(storage, ctx, id);
838
+ await saveGroup(storage, ctx, id, {
839
+ ...(rec ?? { chat: { id, type: "group" }, requestedAt: now }),
840
+ status: "denied",
841
+ deniedAt: now,
842
+ deniedBy: ctx.adminId,
843
+ approvedAt: undefined,
844
+ approvedBy: undefined,
845
+ });
846
+ await indexMove(storage, groupIndexKey(ctx), id, "any", "denied");
847
+ await botApi(ctx)
848
+ .leaveChat({ chat_id: id })
849
+ .catch(() => { });
850
+ await ctx.send(`🚪 ${say({ en: "Banned room", es: "Sala baneada" }, aLang)} ${formatGroup(rec, id)}`);
851
+ opts.onGroupDeny?.({ chatId: id, deniedBy: ctx.adminId });
852
+ }
853
+ else {
854
+ const rec = await loadAccess(storage, ctx, id);
855
+ await saveAccess(storage, ctx, id, {
856
+ ...(rec ?? {}),
857
+ status: "denied",
858
+ user: rec?.user ?? { id },
859
+ deniedAt: now,
860
+ deniedBy: ctx.adminId,
861
+ approvedAt: undefined,
862
+ approvedBy: undefined,
863
+ });
864
+ await indexMove(storage, indexKey(ctx), id, "any", "denied");
865
+ await ctx.send(`❌ ${say({ en: "Banned", es: "Baneado" }, aLang)} ${formatUser(rec?.user, id)}`);
866
+ opts.onDeny?.({ userId: id, deniedBy: ctx.adminId });
867
+ }
868
+ })
869
+ .command("unban", { description: "Admin: lift a ban", hide: true }, async (ctx) => {
870
+ if (!ctx.isAdmin)
871
+ return;
872
+ const aLang = ctxLang(ctx);
873
+ const id = Number((ctx.args ?? "").trim());
874
+ if (!Number.isSafeInteger(id) || id === 0) {
875
+ await ctx.send(say({
876
+ en: "Usage: /unban <user id or room id>",
877
+ es: "Uso: /unban <id de usuario o sala>",
878
+ }, aLang));
879
+ return;
880
+ }
881
+ // Unban = forget the judgment: an open surface passes again on
882
+ // sight, an allowlist one re-asks on the next request/add.
883
+ if (id < 0) {
884
+ const rec = await loadGroup(storage, ctx, id);
885
+ await dropGroup(storage, ctx, id);
886
+ await indexRemove(storage, groupIndexKey(ctx), id);
887
+ await ctx.send(`✅ ${say({ en: "Unbanned room", es: "Sala desbaneada" }, aLang)} ${formatGroup(rec, id)}`);
888
+ }
889
+ else {
890
+ const rec = await loadAccess(storage, ctx, id);
891
+ await dropAccess(storage, ctx, id);
892
+ await indexRemove(storage, indexKey(ctx), id);
893
+ await ctx.send(`✅ ${say({ en: "Unbanned", es: "Desbaneado" }, aLang)} ${formatUser(rec?.user, id)}`);
894
+ }
760
895
  });
761
- // The group gate's handlers register ONLY when it's on, so a DM-only bot
896
+ // The room gate's handlers register ONLY when it's on, so a DM-only bot
762
897
  // never adds my_chat_member to its allowed_updates.
763
898
  if (!gateGroups)
764
899
  return plugin;
@@ -766,11 +901,15 @@ export const accessControl = (opts) => {
766
901
  // The add event: approve on the spot when an admin/default did the
767
902
  // adding; leave on sight when the room was denied; else go pending
768
903
  // and ask. Removal clears the record — deny memory survives.
769
- .on("my_chat_member", async (ctx) => {
904
+ // gramio .on handlers are middleware: this one passes the event
905
+ // THROUGH (next) on every path except the denied leave-on-sight,
906
+ // so the consumer's own my_chat_member handler (group registry,
907
+ // join notifications) keeps running.
908
+ .on("my_chat_member", async (ctx, next) => {
770
909
  const c = ctx;
771
910
  const chat = gatedChatOf(c);
772
911
  if (!chat)
773
- return;
912
+ return next();
774
913
  const inRoom = (s) => s === "member" || s === "administrator" || s === "restricted";
775
914
  const wasIn = inRoom(c.oldChatMember?.status);
776
915
  const nowIn = inRoom(c.newChatMember?.status);
@@ -783,10 +922,10 @@ export const accessControl = (opts) => {
783
922
  await dropGroup(storage, ctx, chat.id);
784
923
  await indexRemove(storage, groupIndexKey(ctx), chat.id);
785
924
  }
786
- return;
925
+ return next();
787
926
  }
788
927
  if (!nowIn || wasIn)
789
- return; // a rights change, not an add
928
+ return next(); // a rights change, not an add
790
929
  if (rec?.status === "denied") {
791
930
  // Re-added while denied: leave on sight, tell the admin (throttled).
792
931
  await botApi(ctx)
@@ -811,10 +950,12 @@ export const accessControl = (opts) => {
811
950
  })
812
951
  .catch(() => { });
813
952
  }
953
+ // The ONE path that swallows the event: the add was rejected,
954
+ // downstream must not greet a room the bot is leaving.
814
955
  return;
815
956
  }
816
957
  if (rec?.status === "approved")
817
- return;
958
+ return next();
818
959
  const addedBy = c.from?.id !== undefined
819
960
  ? {
820
961
  id: c.from.id,
@@ -823,7 +964,11 @@ export const accessControl = (opts) => {
823
964
  username: c.from.username,
824
965
  }
825
966
  : undefined;
826
- if (c.isAdmin || (addedBy && defaults.has(addedBy.id))) {
967
+ // Open mode auto-approves every add (the room lands in /access ready
968
+ // to be banned); allowlist auto-approves only an admin/default adder.
969
+ if (groupMode === "open" ||
970
+ c.isAdmin ||
971
+ (addedBy && defaults.has(addedBy.id))) {
827
972
  const now = Date.now();
828
973
  await saveGroup(storage, ctx, chat.id, {
829
974
  status: "approved",
@@ -838,9 +983,10 @@ export const accessControl = (opts) => {
838
983
  chatId: chat.id,
839
984
  approvedBy: addedBy?.id ?? 0,
840
985
  });
841
- return;
986
+ return next();
842
987
  }
843
988
  await requestGroupAccess(ctx, chat, addedBy);
989
+ return next();
844
990
  })
845
991
  .callbackQuery(acGroupApprove, async (ctx) => {
846
992
  const aLang = await adminGuard(ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsIG;AAIH,OAAO,EAEN,YAAY,EAEZ,cAAc,EACd,MAAM,GACN,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/C,MAAM,aAAa,GAAG,IAAI,CAAC;AAkL3B,sEAAsE;AACtE,EAAE;AACF,mEAAmE;AACnE,yEAAyE;AACzE,qEAAqE;AACrE,wEAAwE;AACxE,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC;KACvC,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC;KACpC,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,8CAA8C;AAClG,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;KAC7C,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;KAC3C,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAElC,sEAAsE;AAEtE,MAAM,UAAU,GAAG,CAAC,CAAyB,EAAE,UAAkB,EAAU,EAAE;IAC5E,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,IAAI,GACT,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5D,OAAO,GAAG,IAAI,KAAK,MAAM,GAAG,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,EAAU,EAAU,EAAE;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC/B,GAAW,EACX,CAAe,EACf,MAAe,EACf,IAAY,EACH,EAAE;IACX,MAAM,KAAK,GAAG;QACb,GAAG,CACF,MAAM;YACL,CAAC,CAAC,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,yBAAyB,EAAE;YACjE,CAAC,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAC5D,IAAI,CACJ;QACD,EAAE;QACF,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QAC/B,MAAM,GAAG,EAAE;QACX,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;KACjG,CAAC;IACF,IAAI,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CACT,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CACvF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CACrD,IAAI,cAAc,EAAE;KAClB,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAC/C,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EACvB,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB;KACA,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;AAEJ,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,yEAAyE;AAEzE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACrE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAE3E,MAAM,SAAS,GAAG,KAAK,EACtB,OAAgB,EAChB,GAAW,EACY,EAAE;IACzB,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAqC,CAAC;IACzE,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;QAC3B,QAAQ,EAAE,GAAG,EAAE,QAAQ,IAAI,EAAE;QAC7B,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE;KACzB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,GAAW,EAAE,GAAgB,EAAE,EAAE,CACrE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEvB,MAAM,QAAQ,GAAG,KAAK,EACrB,OAAgB,EAChB,GAAW,EACX,MAAyB,EACzB,GAAW,EACK,EAAE;IAClB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EACtB,OAAgB,EAChB,GAAW,EACX,GAAW,EACX,IAA+B,EAC/B,EAAqB,EACL,EAAE;IAClB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACxB,OAAgB,EAChB,GAAW,EACX,GAAW,EACK,EAAE;IAClB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAgBF,MAAM,cAAc,GAAG,KAAK,EAC3B,OAAgB,EAChB,GAAW,EACX,MAAc,EACe,EAAE,CAC9B,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAElC,IAAI,EAAE,CAAC;AAErB,MAAM,UAAU,GAAG,KAAK,EACvB,OAAgB,EAChB,GAAW,EACX,MAAc,EACd,GAAiB,EACD,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IAClB,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EACvB,OAAgB,EAChB,GAAW,EACX,MAAc,EACsB,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,GAAG,KAAK,EACvB,OAAgB,EAChB,GAAW,EACX,MAAc,EACE,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC;IACnB,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,UAAU,GAAG,KAAK,EACvB,OAAgB,EAChB,GAAW,EACX,MAAc,EACI,EAAE;IACpB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC;AACvC,CAAC,CAAC;AAEF,+BAA+B;AAC/B,MAAM,OAAO,GAAG,CAAC,GAA6B,EAAU,EAAE,CACzD,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC;AAUvC,yEAAyE;AACzE,wEAAwE;AACxE,2CAA2C;AAC3C,MAAM,UAAU,GAAG,KAAK,EAAE,GAAmB,EAA0B,EAAE;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC;YAC1D,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,wEAAwE;AACxE,sEAAsE;AACtE,MAAM,cAAc,GAAG,KAAK,EAC3B,OAAgB,EAChB,GAGC,EACD,KAAa,EACkB,EAAE;IACjC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAWF,MAAM,SAAS,GAAG,KAAK,EACtB,OAAgB,EAChB,GAAW,EACX,MAAc,EAC2B,EAAE,CAC1C,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAA0B;IACxE,EAAE,WAAW,CAAC;AAEhB,MAAM,SAAS,GAAG,KAAK,EACtB,OAAgB,EAChB,GAAW,EACX,MAAc,EACd,GAAsB,EACN,EAAE;IAClB,MAAM,IAAI,GACR,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAA0B;QACzE,EAAE,CAAC;IACJ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACvB,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EACtB,OAAgB,EAChB,GAAW,EACX,MAAc,EACE,EAAE;IAClB,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAE/C,CAAC;IACb,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IACxB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACP,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;AACF,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,WAAW,GAAG,CAAC,GAAkC,EAAE,EAAU,EAAU,EAAE,CAC9E,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;AAEhE,MAAM,gBAAgB,GAAG,CAAC,GAAsB,EAAE,IAAY,EAAU,EAAE;IACzE,MAAM,KAAK,GAAG;QACb,GAAG,CACF,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,+BAA+B,EAAE,EACxE,IAAI,CACJ;QACD,EAAE;QACF,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;KACrC,CAAC;IACF,IAAI,GAAG,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CACT,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CACnG,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7D,IAAI,cAAc,EAAE;KAClB,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAC/C,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EACpC,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB;KACA,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,EAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;AAEJ,+EAA+E;AAC/E,MAAM,WAAW,GAAG,CAAC,GAEpB,EAAuD,EAAE;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IACC,IAAI,EAAE,EAAE,KAAK,SAAS;QACtB,IAAI,CAAC,IAAI,KAAK,SAAS;QACvB,IAAI,CAAC,IAAI,KAAK,SAAS;QAEvB,OAAO,IAAI,CAAC;IACb,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF;iFACiF;AACjF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAE7B,GAAG,CAAC,GAUJ,CAAC,GAAG,CAAC;AAEP,sEAAsE;AAEtE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAA0B,EAAE,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,IAAI,mBAAmB,CAAC;IAChE,MAAM,MAAM,GAAa,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC;IACjD,MAAM,SAAS,GAAqB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACzD,gDAAgD;IAChD,MAAM,UAAU,GAAG,SAAS,KAAK,KAAK,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,KAAK,WAAW,CAAC;IAEvC,yEAAyE;IACzE,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,KAAK,EAC/B,GAAiC,EACjC,IAA+B,EAC/B,OAA+B,EACf,EAAE;QAClB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,qEAAqE;QACrE,qDAAqD;QACrD,IAAI,QAAQ,EAAE,MAAM,KAAK,UAAU,IAAI,QAAQ,EAAE,MAAM,KAAK,QAAQ;YACnE,OAAO;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,QAAQ,KAAK,SAAS,CAAC;QACvC,wDAAwD;QACxD,MAAM,GAAG,GAAsB,QAAQ;YACtC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE;YACvB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;QAC1D,IAAI,OAAO;YACV,MAAM,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,OAAO,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;YAC7D,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9D,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;oBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;oBACtC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;iBACtD,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CACZ,4DAA4D,EAC5D,CAAC,CACD,CAAC;YACH,CAAC;YACD,IAAI,OAAO;gBAAE,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,MAAM;IACX,2DAA2D;IAC3D,2DAA2D;IAC3D,gEAAgE;IAChE,6DAA6D;IAC7D,IAAI,MAAM,CACT,yCAAyC,EACzC;QACC,YAAY,EAAE,CAAC,gCAAgC,CAAC;KAChD,CACD;QACA,+DAA+D;QAC/D,4DAA4D;SAC3D,MAAM,CAAC,aAAa,CAAC;QACtB,6EAA6E;SAC5E,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO;gBACN,MAAM,EAAE;oBACP,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,WAAW;iBACE;aACtB,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,+EAA+E;QAC/E,8EAA8E;QAC9E,+CAA+C;QAC/C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;gBACN,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAuB;aAC/D,CAAC;QACH,CAAC;QACD,8DAA8D;QAC9D,IAAI,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACN,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAuB;aACjE,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,gEAAgE;QAChE,wDAAwD;QACxD,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,WAAW,CACvB,GAAgE,CAChE,CAAC;YACF,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,IAAI,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;oBAChC,OAAO;wBACN,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAuB;qBAC/D,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO;wBACN,MAAM,EAAE;4BACP,OAAO,EAAE,KAAK;4BACd,MAAM,EAAE,QAAQ;yBACK;qBACtB,CAAC;gBACH,CAAC;gBACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO;wBACN,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAuB;qBAC9D,CAAC;gBACH,CAAC;gBACD,OAAO;oBACN,MAAM,EAAE;wBACP,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBACpC;iBACtB,CAAC;YACH,CAAC;QACF,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,8DAA8D;YAC9D,4BAA4B;YAC5B,OAAO;gBACN,MAAM,EAAE;oBACP,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,WAAW;iBACE;aACtB,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,2DAA2D;QAC3D,MAAM,GAAG,GACR,GAAG,CAAC,OAAO,CAAC,MAAM,IAAK,EAAE,MAAM,EAAE,SAAS,EAA0B,CAAC;QACtE,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO;gBACN,MAAM,EAAE;oBACP,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,GAAG;iBACU;aACtB,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,gEAAgE;QAChE,iEAAiE;QACjE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO;gBACN,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAuB;aAC9D,CAAC;QACH,CAAC;QACD,OAAO;YACN,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAuB;SACnE,CAAC;IACH,CAAC,CAAC;QACF,sEAAsE;QACtE,yCAAyC;QACzC,EAAE;QACF,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,oEAAoE;QACpE,6DAA6D;QAC7D,4DAA4D;QAC5D,oEAAoE;QACpE,4DAA4D;QAC5D,yDAAyD;SACxD,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnE,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,iEAAiE;YACjE,mDAAmD;YACnD,IACC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO;gBAC7B,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;gBACjB,GAAG,CAAC,OAAO,CAAC,MAAM,EACjB,CAAC;gBACF,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG;oBACpB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM;oBACrB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;oBAC1B,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;iBACxD,CAAC;YACH,CAAC;YACD,iEAAiE;YACjE,6DAA6D;YAC7D,iEAAiE;YACjE,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,WAAW,CACvB,GAAgE,CAChE,CAAC;gBACF,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;wBACtC,MAAM,EAAE,UAAU;wBAClB,IAAI;wBACJ,WAAW,EAAE,GAAG;wBAChB,UAAU,EAAE,GAAG;qBACf,CAAC,CAAC;oBACH,MAAM,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,IAAI,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChE,UAAU,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,oEAAoE;QACpE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE7C,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,WAAW,CACvB,GAAgE,CAChE,CAAC;gBACF,IAAI,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACpC,yDAAyD;wBACzD,8CAA8C;wBAC9C,MAAM,MAAM,CAAC,GAAG,CAAC;6BACf,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;6BAC/B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;wBACtC,2DAA2D;wBAC3D,yDAAyD;wBACzD,wDAAwD;wBACxD,yBAAyB;wBACzB,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBAChD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,2CAA2C;YAC3C,OAAO;QACR,CAAC;QACD,kEAAkE;QAClE,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAAE,OAAO;QAE/B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;QAClE,8DAA8D;QAC9D,4DAA4D;QAC5D,mDAAmD;QACnD,MAAM,IAAI,GAAe;YACxB,EAAE,EAAE,MAAM;YACV,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;SAC3B,CAAC;QACF,MAAM,GAAG,GACR,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE;YACvB,CAAC,CAAC;gBACA,MAAM,EAAE,SAAS;gBACjB,IAAI;gBACJ,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;gBACnB,WAAW,EAAE,GAAG;gBAChB,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;gBACjD,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,CAAC;aACnB,CAAC;QAEL,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,YAAY,GACjB,cAAc,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;QAChE,IAAI,YAAY,EAAE,CAAC;YAClB,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9D,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,uBAAuB,CAC5B,MAAM,EACN,GAAG,EACH,CAAC,cAAc,EACf,SAAS,CACT;oBACD,YAAY,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;iBAChD,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CACZ,wFAAwF,EACxF,CAAC,CACD,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI;gBACJ,YAAY,EAAE,GAAG,CAAC,YAAY;aAC9B,CAAC,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;QAEzB,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,IAAI,CACb,GAAG,CACF;oBACC,EAAE,EAAE,+DAA+D;oBACnE,EAAE,EAAE,2DAA2D;iBAC/D,EACD,OAAO,CAAC,GAAG,CAAC,CACZ,CACD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,oCAAoC;YACrC,CAAC;QACF,CAAC;QACD,0BAA0B;IAC3B,CAAC,CAAC;QACF,6DAA6D;SAC5D,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;QAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;QAC5C,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,CACd,OAAO,EACP,QAAQ,CAAC,GAAG,CAAC,EACb,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EACrD,UAAU,CACV,CAAC;QAEF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC7B,OAAO,EAAE,GAAG,CAAC,MAAM;oBACnB,IAAI,EAAE,GAAG,CACR,SAAS;wBACR,CAAC,CAAC;4BACA,EAAE,EAAE,4CAA4C;4BAChD,EAAE,EAAE,2CAA2C;yBAC/C;wBACF,CAAC,CAAC;4BACA,EAAE,EAAE,4CAA4C;4BAChD,EAAE,EAAE,4CAA4C;yBAChD,EACH,KAAK,CACL;iBACD,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,2BAA2B;YAC5B,CAAC;QACF,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC;SACxD,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,CACf,GAAG,EACH,OAAO,EACP,QAAQ,EACR,GAAG,CAAC,SAAS,CAAC,CAAC,EACf,KAAK,EACL,UAAU,CACV,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CACtF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;SACD,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;QAC5C,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,CACd,OAAO,EACP,QAAQ,CAAC,GAAG,CAAC,EACb,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC9B,QAAQ,CACR,CAAC;QAEF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC7B,OAAO,EAAE,GAAG,CAAC,MAAM;oBACnB,IAAI,EAAE,GAAG,CACR,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,oBAAoB,EAAE,EACpD,KAAK,CACL;iBACD,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC;SACtD,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,CACf,GAAG,EACH,OAAO,EACP,QAAQ,EACR,GAAG,CAAC,SAAS,CAAC,CAAC,EACf,KAAK,EACL,UAAU,CACV,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CACpF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;SACD,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEnE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC7B,OAAO,EAAE,GAAG,CAAC,MAAM;oBACnB,IAAI,EAAE,GAAG,CACR;wBACC,EAAE,EAAE,sCAAsC;wBAC1C,EAAE,EAAE,uCAAuC;qBAC3C,EACD,KAAK,CACL;iBACD,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC,CAAC;SACD,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,UAAU,CACf,GAAG,EACH,OAAO,EACP,QAAQ,EACR,GAAG,CAAC,SAAS,CAAC,CAAC,EACf,KAAK,EACL,UAAU,CACV,CAAC;IACH,CAAC,CAAC;SACD,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACR,SAAS;QACV,CAAC;IACF,CAAC,CAAC;SACD,OAAO,CACP,QAAQ,EACR;QACC,4DAA4D;QAC5D,iEAAiE;QACjE,kEAAkE;QAClE,EAAE;QACF,6DAA6D;QAC7D,6DAA6D;QAC7D,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,IAAI;KACV,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,QAAQ,CACjB,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EACvC,QAAQ,EACR,KAAK,EACL,UAAU,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAChE,CAAC;QACF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC,CACD;QACD,kEAAkE;QAClE,8DAA8D;QAC9D,gEAAgE;QAChE,8CAA8C;SAC7C,OAAO,CACP,KAAK,EACL,EAAE,WAAW,EAAE,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,EAC3D,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,CAAC,IAAI,CACb,GAAG,CACF;gBACC,EAAE,EAAE,kCAAkC;gBACtC,EAAE,EAAE,kCAAkC;aACtC,EACD,KAAK,CACL,CACD,CAAC;YACF,OAAO;QACR,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;gBACjC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;gBAC7D,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,GAAG,CAAC,OAAO;gBACrB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClE,MAAM,MAAM,CAAC,GAAG,CAAC;iBACf,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBAC1B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC,IAAI,CACb,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CACrF,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;gBAClC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE;gBACzB,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,GAAG,CAAC,OAAO;gBACrB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,GAAG,CAAC,IAAI,CACb,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAC/E,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;IACF,CAAC,CACD;SACA,OAAO,CACP,OAAO,EACP,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,EAChD,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,CAAC,IAAI,CACb,GAAG,CACF;gBACC,EAAE,EAAE,oCAAoC;gBACxC,EAAE,EAAE,oCAAoC;aACxC,EACD,KAAK,CACL,CACD,CAAC;YACF,OAAO;QACR,CAAC;QACD,+DAA+D;QAC/D,2DAA2D;QAC3D,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC,IAAI,CACb,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CACzF,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,GAAG,CAAC,IAAI,CACb,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CACpF,CAAC;QACH,CAAC;IACF,CAAC,CACD,CAAC;IAEJ,wEAAwE;IACxE,oDAAoD;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAE/B,OAAO,CACN,MAAM;QACL,mEAAmE;QACnE,mEAAmE;QACnE,6DAA6D;QAC7D,gEAAgE;QAChE,iEAAiE;QACjE,gEAAgE;QAChE,qCAAqC;SACpC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,CAAC,GAAG,GAaT,CAAC;QACF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAqB,EAAE,EAAE,CACxC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,YAAY,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GACX,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM;YAClC,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,QAAQ,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnD,IAAI,MAAM,EAAE,CAAC;YACZ,wDAAwD;YACxD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,KAAK;YAAE,OAAO,IAAI,EAAE,CAAC,CAAC,8BAA8B;QAElE,IAAI,GAAG,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,qEAAqE;YACrE,MAAM,MAAM,CAAC,GAAG,CAAC;iBACf,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;iBAC/B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;gBAClD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;oBACtC,GAAG,GAAG;oBACN,IAAI;oBACJ,cAAc,EAAE,GAAG;iBACnB,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5D,MAAM,MAAM,CAAC,GAAG,CAAC;qBACf,WAAW,CAAC;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,GAAG,GAAG,CACX;wBACC,EAAE,EAAE,4CAA4C;wBAChD,EAAE,EAAE,oDAAoD;qBACxD,EACD,SAAS,CACT,UAAU,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;oBACtC,YAAY,EAAE,IAAI,cAAc,EAAE,CAAC,IAAI,CACtC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,EACnD,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EACrC,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB;iBACD,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnB,CAAC;YACD,8DAA8D;YAC9D,uDAAuD;YACvD,OAAO;QACR,CAAC;QACD,IAAI,GAAG,EAAE,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,EAAE,CAAC;QAE9C,MAAM,OAAO,GACZ,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,SAAS;YACvB,CAAC,CAAC;gBACA,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;gBACb,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;gBAC3B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;aACzB;YACF,CAAC,CAAC,SAAS,CAAC;QACd,qEAAqE;QACrE,sEAAsE;QACtE,IACC,SAAS,KAAK,MAAM;YACpB,CAAC,CAAC,OAAO;YACT,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EACpC,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;gBACtC,MAAM,EAAE,UAAU;gBAClB,IAAI;gBACJ,OAAO;gBACP,WAAW,EAAE,GAAG;gBAChB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,OAAO,EAAE,EAAE;aACvB,CAAC,CAAC;YACH,MAAM,SAAS,CACd,OAAO,EACP,aAAa,CAAC,GAAG,CAAC,EAClB,IAAI,CAAC,EAAE,EACP,KAAK,EACL,UAAU,CACV,CAAC;YACF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;aAC5B,CAAC,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;QACD,MAAM,kBAAkB,CACvB,GAA8C,EAC9C,IAAI,EACJ,OAAO,CACP,CAAC;QACF,OAAO,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;SACD,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAC;aAC5D,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAClF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;SACD,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAC;aAC5D,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3B,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3B,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,GAAG,CAAC;aACf,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;aAC3B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClB,MAAM,GAAG,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAC7E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;AACH,CAAC,CAAC;AAEF,sEAAsE;AAEtE,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,WAAW,GAAG;IACnB,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE;IAC7C,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE;IAC5C,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE;CAChC,CAAC;AASX,MAAM,UAAU,GAAG,KAAK,EACvB,GAAgB,EAChB,OAAgB,EAChB,QAA6B,EAC7B,IAAY,EACZ,IAAY,EACZ,UAAU,GAAG,KAAK,EACF,EAAE;IAClB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GACN,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAC7D,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;QACzD,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU;YAChC,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;YACtC,CAAC,CAAC,QAAQ,CACR,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,UAAU,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAChE,CAAC;IACN,IAAI,CAAC;QACJ,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACR,6DAA6D;IAC9D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAChB,GAAgB,EAChB,QAA6B,EAC7B,IAAY,EACZ,WAA+B,IAAI,EAClC,EAAE;IACH,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG;QACb,GAAG,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC;QAC/D,EAAE;QACF,KAAK,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACvC,KAAK,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,KAAK,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QACnC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,cAAc;KACnF,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACT,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,OAAO,CAAC,MAAM,QAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAC9I,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;SACnC,IAAI,CACJ,KAAK,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,EACxC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAC9B;SACA,IAAI,CACJ,KAAK,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EACtC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAC7B;SACA,GAAG,EAAE;SACL,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,QAAQ,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CACZ,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,EACzG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAC5B,CAAC;IACH,CAAC;IACD,QAAQ;SACN,GAAG,EAAE;SACL,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,EACjD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAC1B;SACA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EACrB,OAAgB,EAChB,GAAW,EACX,GAAgB,EAChB,MAAyC,EACzC,QAA6B,EAC7B,IAAY,EACX,EAAE;IACH,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,oDAAoD;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE;QACF,GAAG,EAAE,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;KACvC,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,WAAW,GAChB,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GACT,GAAG,WAAW,IAAI,WAAW,UAAU;YACvC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC,IAAI,CACzC,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAC1B,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,GAAG,WAAW,IAAI,WAAW,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,0DAA0D;YAC1D,KAAK,CAAC,IAAI,CACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,EAAE,CAChF,CAAC;YACF,SAAS;QACV,CAAC;QACD,MAAM,MAAM,GACX,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CACT,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE;YAC/G,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CACxD,CAAC;QACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,QAAQ;iBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC9D,KAAK,EAAE,SAAS;aAChB,CAAC;iBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC3D,KAAK,EAAE,QAAQ;aACf,CAAC;iBACD,GAAG,EAAE,CAAC;QACT,CAAC;aAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,QAAQ;iBACN,IAAI,CACJ,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAC1B,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB;iBACA,GAAG,EAAE,CAAC;QACT,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ;iBACN,IAAI,CACJ,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAClE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EACxC,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB;iBACA,GAAG,EAAE,CAAC;QACT,CAAC;IACF,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACT,EAAE,EACF,KAAK,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC,GAAG,CACrG,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,2EAA2E;AAC3E,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,UAAU,GAAG,KAAK,EAAE,OAAgB,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,MAAM,OAAO,GAGR;QACJ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACtE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;QACpE;YACC,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EAAE;SACvE;KACD,CAAC;IACF,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACtB,CAAC,IAAI,CAAC,CAAC;YACP,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,MAAM,GACX,GAAG,EAAE,UAAU,IAAI,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CACT,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CACxG,CAAC;YACF,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC3B,QAAQ;qBACN,IAAI,CACJ,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EACxD,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB;qBACA,GAAG,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ;qBACN,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;oBAC9D,KAAK,EAAE,SAAS;iBAChB,CAAC;qBACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;oBAC7D,KAAK,EAAE,QAAQ;iBACf,CAAC;qBACD,GAAG,EAAE,CAAC;YACT,CAAC;iBAAM,CAAC;gBACP,QAAQ;qBACN,IAAI,CACJ,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EACzD,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC7C,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB;qBACA,GAAG,EAAE,CAAC;YACT,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEzE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,sEAAsE;AAEtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,GAAW,EACX,OAAgB,EAChB,OAAe,EACf,QAAoB,EACpB,OAAgB,EACA,EAAE;IAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAiB;QACzB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ,CAAC,EAAE;QACnB,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;QAChD,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,GAAG;KACnB,CAAC;IACF,+DAA+D;IAC/D,oEAAoE;IACpE,MAAM,MAAM,GAAW,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IACnD,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;QACzB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;QACjE,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adriangalilea/utils",
3
- "version": "2.19.0",
3
+ "version": "2.20.1",
4
4
  "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",