agent-relay 3.1.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/package.json +8 -8
  2. package/packages/acp-bridge/package.json +2 -2
  3. package/packages/config/package.json +1 -1
  4. package/packages/hooks/package.json +4 -4
  5. package/packages/memory/package.json +2 -2
  6. package/packages/openclaw/dist/__tests__/gateway-control.test.d.ts +2 -0
  7. package/packages/openclaw/dist/__tests__/gateway-control.test.d.ts.map +1 -0
  8. package/packages/openclaw/dist/__tests__/gateway-control.test.js +250 -0
  9. package/packages/openclaw/dist/__tests__/gateway-control.test.js.map +1 -0
  10. package/packages/openclaw/dist/__tests__/gateway-threads.test.js +617 -0
  11. package/packages/openclaw/dist/__tests__/gateway-threads.test.js.map +1 -1
  12. package/packages/openclaw/dist/__tests__/spawn-manager.test.js +29 -0
  13. package/packages/openclaw/dist/__tests__/spawn-manager.test.js.map +1 -1
  14. package/packages/openclaw/dist/__tests__/ws-client.test.d.ts +2 -0
  15. package/packages/openclaw/dist/__tests__/ws-client.test.d.ts.map +1 -0
  16. package/packages/openclaw/dist/__tests__/ws-client.test.js +324 -0
  17. package/packages/openclaw/dist/__tests__/ws-client.test.js.map +1 -0
  18. package/packages/openclaw/dist/cli.js +1 -1
  19. package/packages/openclaw/dist/cli.js.map +1 -1
  20. package/packages/openclaw/dist/gateway.d.ts +33 -7
  21. package/packages/openclaw/dist/gateway.d.ts.map +1 -1
  22. package/packages/openclaw/dist/gateway.js +101 -50
  23. package/packages/openclaw/dist/gateway.js.map +1 -1
  24. package/packages/openclaw/dist/types.d.ts +5 -1
  25. package/packages/openclaw/dist/types.d.ts.map +1 -1
  26. package/packages/openclaw/package.json +2 -2
  27. package/packages/openclaw/skill/SKILL.md +35 -13
  28. package/packages/openclaw/src/__tests__/SPEC-ws-client-testing.md +192 -0
  29. package/packages/openclaw/src/__tests__/gateway-control.test.ts +288 -0
  30. package/packages/openclaw/src/__tests__/gateway-threads.test.ts +746 -0
  31. package/packages/openclaw/src/__tests__/spawn-manager.test.ts +37 -0
  32. package/packages/openclaw/src/__tests__/ws-client.test.ts +395 -0
  33. package/packages/openclaw/src/cli.ts +1 -1
  34. package/packages/openclaw/src/gateway.ts +129 -56
  35. package/packages/openclaw/src/types.ts +5 -1
  36. package/packages/policy/package.json +2 -2
  37. package/packages/sdk/package.json +2 -2
  38. package/packages/sdk-py/pyproject.toml +1 -1
  39. package/packages/telemetry/package.json +1 -1
  40. package/packages/trajectory/package.json +2 -2
  41. package/packages/user-directory/package.json +2 -2
  42. package/packages/utils/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAkC,MAAM,YAAY,CAAC;AAIhF;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAkYD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,mBAAmB,CAAyB;IACpD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,aAAa,CAA6B;IAElD,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAsC;IAE5D,6FAA6F;IAC7F,OAAO,CAAC,YAAY,CAAe;IACnC,2DAA2D;IAC3D,OAAO,CAAC,aAAa,CAA2B;IAChD,0CAA0C;IAC1C,WAAW,SAAK;IAEhB,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAS;gBAEjC,OAAO,EAAE,cAAc;IAyBnC,mGAAmG;IAC7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+F5B,+DAA+D;IACzD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,QAAQ;YAMF,uBAAuB;YAiBvB,qBAAqB;YAkBrB,yBAAyB;IAmBvC,OAAO,CAAC,sBAAsB;IAU9B,gDAAgD;YAClC,YAAY;YAyBZ,aAAa;IA2B3B,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB;IAK1B,2CAA2C;YAC7B,SAAS;IAwBvB,oEAAoE;YACtD,qBAAqB;YA0BrB,kBAAkB;YAqBlB,oBAAoB;CA0GnC"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,8 @@ function signConnectPayload(device, params) {
38
38
  const signature = sign(null, payloadBytes, device.privateKeyObj);
39
39
  return Buffer.from(signature).toString('base64url');
40
40
  }
41
- class OpenClawGatewayClient {
41
+ /** @internal */
42
+ export class OpenClawGatewayClient {
42
43
  ws = null;
43
44
  authenticated = false;
44
45
  device;
@@ -331,14 +332,11 @@ export class InboundGateway {
331
332
  relayAgentClient = null;
332
333
  relaycast;
333
334
  config;
334
- fallbackPollMs;
335
335
  dedupeTtlMs;
336
336
  running = false;
337
- pollTimer = null;
338
337
  unsubscribeHandlers = [];
339
338
  seenMessageIds = new Map();
340
339
  processingMessageIds = new Set();
341
- channelCursor = new Map();
342
340
  /** Persistent WebSocket client for the local OpenClaw gateway. */
343
341
  openclawClient = null;
344
342
  /** Spawn manager — lives in the gateway so spawned processes survive MCP server restarts. */
@@ -359,10 +357,6 @@ export class InboundGateway {
359
357
  apiKey: this.config.apiKey,
360
358
  baseUrl: this.config.baseUrl,
361
359
  });
362
- const fallbackPollMs = Number(process.env.RELAYCAST_FALLBACK_POLL_MS ?? 15000);
363
- this.fallbackPollMs = Number.isFinite(fallbackPollMs) && fallbackPollMs >= 1000
364
- ? Math.floor(fallbackPollMs)
365
- : 15000;
366
360
  const dedupeTtlMs = Number(process.env.RELAYCAST_DEDUPE_TTL_MS ?? 15 * 60 * 1000);
367
361
  this.dedupeTtlMs = Number.isFinite(dedupeTtlMs) && dedupeTtlMs >= 1000
368
362
  ? Math.floor(dedupeTtlMs)
@@ -370,7 +364,7 @@ export class InboundGateway {
370
364
  const parentDepth = Number(process.env.OPENCLAW_SPAWN_DEPTH || 0);
371
365
  this.spawnManager = new SpawnManager({ spawnDepth: parentDepth + 1 });
372
366
  }
373
- /** Start the gateway — register agent, subscribe for realtime events, and run fallback polling. */
367
+ /** Start the gateway — register agent and subscribe for realtime events. */
374
368
  async start() {
375
369
  if (this.running)
376
370
  return;
@@ -415,6 +409,26 @@ export class InboundGateway {
415
409
  console.log(`[gateway] Thread reply from @${event.message?.agentName} in #${event.channel} (parent: ${event.parentId})`);
416
410
  void this.handleRealtimeThreadReply(event);
417
411
  }));
412
+ this.unsubscribeHandlers.push(this.relayAgentClient.on.dmReceived((event) => {
413
+ console.log(`[gateway] DM from @${event.message?.agentName} (conv: ${event.conversationId})`);
414
+ void this.handleRealtimeDm(event);
415
+ }));
416
+ this.unsubscribeHandlers.push(this.relayAgentClient.on.groupDmReceived((event) => {
417
+ console.log(`[gateway] Group DM from @${event.message?.agentName} (conv: ${event.conversationId})`);
418
+ void this.handleRealtimeGroupDm(event);
419
+ }));
420
+ this.unsubscribeHandlers.push(this.relayAgentClient.on.commandInvoked((event) => {
421
+ console.log(`[gateway] Command /${event.command} invoked by @${event.invokedBy} in #${event.channel}`);
422
+ void this.handleRealtimeCommand(event);
423
+ }));
424
+ this.unsubscribeHandlers.push(this.relayAgentClient.on.reactionAdded((event) => {
425
+ console.log(`[gateway] Reaction :${event.emoji}: added by @${event.agentName} on ${event.messageId}`);
426
+ void this.handleRealtimeReaction(event, 'added');
427
+ }));
428
+ this.unsubscribeHandlers.push(this.relayAgentClient.on.reactionRemoved((event) => {
429
+ console.log(`[gateway] Reaction :${event.emoji}: removed by @${event.agentName} from ${event.messageId}`);
430
+ void this.handleRealtimeReaction(event, 'removed');
431
+ }));
418
432
  this.unsubscribeHandlers.push(this.relayAgentClient.on.reconnecting((attempt) => {
419
433
  console.warn(`[gateway] Relaycast reconnecting (attempt ${attempt})`);
420
434
  }));
@@ -433,12 +447,6 @@ export class InboundGateway {
433
447
  catch {
434
448
  // Will subscribe on next connected event
435
449
  }
436
- // Initial catch-up in case messages arrived before realtime subscription was active.
437
- await this.pollMessages();
438
- // Keep a low-frequency poll as recovery/backfill only.
439
- this.pollTimer = setInterval(() => {
440
- void this.pollMessages();
441
- }, this.fallbackPollMs);
442
450
  console.log(`[gateway] Realtime listening on channels: ${this.config.channels.join(', ')}`);
443
451
  // Start spawn control HTTP server
444
452
  await this.startControlServer();
@@ -446,10 +454,6 @@ export class InboundGateway {
446
454
  /** Stop the gateway — clean up websocket and relay clients. */
447
455
  async stop() {
448
456
  this.running = false;
449
- if (this.pollTimer) {
450
- clearInterval(this.pollTimer);
451
- this.pollTimer = null;
452
- }
453
457
  for (const unsubscribe of this.unsubscribeHandlers) {
454
458
  try {
455
459
  unsubscribe();
@@ -479,7 +483,6 @@ export class InboundGateway {
479
483
  }
480
484
  await this.spawnManager.releaseAll();
481
485
  this.processingMessageIds.clear();
482
- this.channelCursor.clear();
483
486
  this.seenMessageIds.clear();
484
487
  }
485
488
  cleanupSeenMap(nowMs) {
@@ -550,36 +553,75 @@ export class InboundGateway {
550
553
  };
551
554
  await this.handleInbound(inbound);
552
555
  }
553
- normalizePolledMessage(channel, message) {
554
- return {
555
- id: message.id,
556
- channel,
557
- from: message.agentName,
558
- text: message.text,
559
- timestamp: message.createdAt,
556
+ async handleRealtimeDm(event) {
557
+ const messageId = event.message?.id;
558
+ if (!messageId)
559
+ return;
560
+ const inbound = {
561
+ id: messageId,
562
+ channel: 'dm',
563
+ from: event.message.agentName,
564
+ text: event.message.text,
565
+ timestamp: new Date().toISOString(),
566
+ conversationId: event.conversationId,
567
+ kind: 'dm',
560
568
  };
569
+ await this.handleInbound(inbound);
561
570
  }
562
- /** Poll channels for catch-up/recovery only. */
563
- async pollMessages() {
564
- if (!this.running)
571
+ async handleRealtimeGroupDm(event) {
572
+ const messageId = event.message?.id;
573
+ if (!messageId)
565
574
  return;
566
- for (const channel of this.config.channels) {
567
- try {
568
- const after = this.channelCursor.get(channel);
569
- const query = { limit: 50 };
570
- if (after) {
571
- query.after = after;
572
- }
573
- const messages = await this.relaycast.messages.list(channel, query);
574
- const ordered = [...messages].sort((a, b) => a.createdAt.localeCompare(b.createdAt));
575
- for (const message of ordered) {
576
- await this.handleInbound(this.normalizePolledMessage(channel, message));
577
- }
578
- }
579
- catch (err) {
580
- console.warn(`[gateway] Poll error for #${channel}: ${err instanceof Error ? err.message : String(err)}`);
581
- }
582
- }
575
+ const inbound = {
576
+ id: messageId,
577
+ channel: `groupdm:${event.conversationId}`,
578
+ from: event.message.agentName,
579
+ text: event.message.text,
580
+ timestamp: new Date().toISOString(),
581
+ conversationId: event.conversationId,
582
+ kind: 'groupdm',
583
+ };
584
+ await this.handleInbound(inbound);
585
+ }
586
+ async handleRealtimeCommand(event) {
587
+ const channel = normalizeChannelName(event.channel);
588
+ if (!this.config.channels.includes(channel))
589
+ return;
590
+ // Commands lack a server-assigned event ID, so we synthesize one.
591
+ // We include args + timestamp to avoid silently dropping legitimate
592
+ // repeat invocations (e.g. /deploy twice in 15 min). This means SDK
593
+ // reconnection replays may deliver a duplicate, but that's less
594
+ // harmful than silently swallowing a real command.
595
+ const argsSlug = event.args ? `_${event.args}` : '';
596
+ const syntheticId = `cmd_${event.command}_${channel}_${event.invokedBy}${argsSlug}_${Date.now()}`;
597
+ const argsText = event.args ? ` ${event.args}` : '';
598
+ const inbound = {
599
+ id: syntheticId,
600
+ channel,
601
+ from: event.invokedBy,
602
+ text: `[relaycast:command:${channel}] @${event.invokedBy} /${event.command}${argsText}`,
603
+ timestamp: new Date().toISOString(),
604
+ kind: 'command',
605
+ };
606
+ await this.handleInbound(inbound);
607
+ }
608
+ async handleRealtimeReaction(event, action) {
609
+ // Include timestamp so add→remove→re-add of the same emoji isn't
610
+ // silently dropped within the 15-min dedup window. Reactions are soft
611
+ // notifications, so a rare duplicate on SDK reconnect is acceptable.
612
+ const syntheticId = `reaction_${event.messageId}_${event.emoji}_${event.agentName}_${action}_${Date.now()}`;
613
+ const text = action === 'added'
614
+ ? `[relaycast:reaction] @${event.agentName} reacted ${event.emoji} to message ${event.messageId} (soft notification, no action required)`
615
+ : `[relaycast:reaction] @${event.agentName} removed ${event.emoji} from message ${event.messageId} (soft notification, no action required)`;
616
+ const inbound = {
617
+ id: syntheticId,
618
+ channel: 'reaction',
619
+ from: event.agentName,
620
+ text,
621
+ timestamp: new Date().toISOString(),
622
+ kind: 'reaction',
623
+ };
624
+ await this.handleInbound(inbound);
583
625
  }
584
626
  async handleInbound(message) {
585
627
  if (!this.running)
@@ -589,19 +631,18 @@ export class InboundGateway {
589
631
  // Avoid echo loops — skip messages from this claw or its viewer identity.
590
632
  const viewerName = `viewer-${this.config.clawName}`;
591
633
  if (message.from === this.config.clawName || message.from === viewerName) {
592
- this.channelCursor.set(normalizeChannelName(message.channel), message.id);
634
+ // Only update cursor for real channels with real (non-synthetic) message IDs.
593
635
  this.markSeen(message.id);
594
636
  return;
595
637
  }
596
638
  // Mark as seen immediately to prevent duplicate delivery from concurrent
597
- // realtime + poll paths processing the same message.
639
+ // realtime events processing the same message.
598
640
  this.markSeen(message.id);
599
641
  this.processingMessageIds.add(message.id);
600
642
  console.log(`[gateway] Delivering message ${message.id} from @${message.from}: "${message.text}"`);
601
643
  try {
602
644
  const result = await this.onMessage(message);
603
645
  console.log(`[gateway] Delivery result: ${result.method} ok=${result.ok}${result.error ? ' error=' + result.error : ''}`);
604
- this.channelCursor.set(normalizeChannelName(message.channel), message.id);
605
646
  }
606
647
  finally {
607
648
  this.processingMessageIds.delete(message.id);
@@ -609,6 +650,16 @@ export class InboundGateway {
609
650
  }
610
651
  /** Format delivery text with channel, sender, and optional thread prefix. */
611
652
  formatDeliveryText(message) {
653
+ // Pre-formatted kinds (command, reaction) already have the full text.
654
+ if (message.kind === 'command' || message.kind === 'reaction') {
655
+ return message.text;
656
+ }
657
+ if (message.kind === 'dm') {
658
+ return `[relaycast:dm] @${message.from}: ${message.text}`;
659
+ }
660
+ if (message.kind === 'groupdm') {
661
+ return `[relaycast:groupdm] @${message.from}: ${message.text}`;
662
+ }
612
663
  const threadPrefix = message.threadParentId ? '[thread] ' : '';
613
664
  return `${threadPrefix}[relaycast:${message.channel}] @${message.from}: ${message.text}`;
614
665
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAkB,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,YAAY,EAAwE,MAAM,WAAW,CAAC;AAG/G,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAE7D,OAAO,SAAS,MAAM,IAAI,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAuBlD,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AAYD,SAAS,sBAAsB;IAC7B,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEtF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEvE,OAAO;QACL,YAAY;QACZ,aAAa,EAAE,UAAU;QACzB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAsB,EACtB,MAUC;IAED,8GAA8G;IAC9G,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,MAAM,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,YAAY;KACpB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAYD,MAAM,qBAAqB;IACjB,EAAE,GAAqB,IAAI,CAAC;IAC5B,aAAa,GAAG,KAAK,CAAC;IACtB,MAAM,CAAiB;IACvB,KAAK,CAAS;IACd,IAAI,CAAS;IACb,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,YAAY,GAAG,CAAC,CAAC;IACjB,cAAc,GAAyC,IAAI,CAAC;IAC5D,OAAO,GAAG,KAAK,CAAC;IAChB,cAAc,GAAyB,IAAI,CAAC;IAC5C,cAAc,GAAwB,IAAI,CAAC;IAC3C,aAAa,GAAoC,IAAI,CAAC;IACtD,cAAc,GAAyC,IAAI,CAAC;IAEpE,2DAA2D;IACnD,MAAM,CAAU,kBAAkB,GAAG,MAAM,CAAC;IAEpD,YAAY,KAAa,EAAE,IAAY;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACzC,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAEzE,+EAA+E;QAC/E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAE5B,+CAA+C;YAC/C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,kDAAkD,qBAAqB,CAAC,kBAAkB,IAAI,CAAC,CAAC;oBACtH,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC7B,CAAC;YACH,CAAC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,0BAA0B;YAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7C,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,8DAA8D;YAC9D,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gDAAgD,IAAI,GAAG,CAAC,CAAC;gBAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,8DAA8D;YAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,IAAI,GAA4B,CAAC;QACjC,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAwC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACnE,MAAM,YAAY,GAAG,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChD,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,YAAY;gBACZ,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,WAAW;gBACf,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE;oBACN,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,CAAC;oBACd,MAAM,EAAE;wBACN,EAAE,EAAE,QAAQ;wBACZ,OAAO,EAAE,OAAO;wBAChB,QAAQ;wBACR,IAAI,EAAE,UAAU;wBAChB,YAAY;qBACb;oBACD,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,EAAE;oBACf,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;oBAC3B,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,yBAAyB;oBACpC,MAAM,EAAE;wBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;wBACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;wBACnC,SAAS;wBACT,QAAQ;wBACR,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB;iBACF;aACF,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjF,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBACjF,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,EAAE,GAAG,GAAG,CAAC,EAAwB,CAAC;QACxC,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;YAC1C,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE5B,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,GAAG,CAAC,OAA8C,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,MAAM,EAAE,KAAK,IAAI,KAAK,WAAW,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;gBAC7G,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,cAAuB;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7E,mBAAmB;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;QACxC,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEvD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,MAAM,CAAC,CAAC;YAEX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAE7C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtD,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B,IAAI,EAAE,KAAK;gBACX,EAAE;gBACF,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE;oBACN,UAAU,EAAE,iBAAiB;oBAC7B,OAAO,EAAE,IAAI;oBACb,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9C;aACF,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,oCAAoC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;;AAGH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IACR,WAAW,CAAqB;IACzC,gBAAgB,GAAuB,IAAI,CAAC;IACnC,SAAS,CAAY;IACrB,MAAM,CAAgB;IACtB,cAAc,CAAS;IACvB,WAAW,CAAS;IAE7B,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAA0C,IAAI,CAAC;IACxD,mBAAmB,GAAsB,EAAE,CAAC;IAC5C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,kEAAkE;IAC1D,cAAc,GAAiC,IAAI,CAAC;IAE5D,6FAA6F;IACrF,YAAY,CAAe;IACnC,2DAA2D;IACnD,aAAa,GAAsB,IAAI,CAAC;IAChD,0CAA0C;IAC1C,WAAW,GAAG,CAAC,CAAC;IAEhB,wDAAwD;IACxD,MAAM,CAAU,oBAAoB,GAAG,KAAK,CAAC;IAE7C,YAAY,OAAuB;QACjC,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,OAAO,CAAC,MAAM;YACjB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC;SAC5D,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,IAAI;YAC7E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC;QAEV,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,IAAI;YACpE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACzB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEnB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,UAAU,EAAE,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,mGAAmG;IACnG,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,0EAA0E;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC;QAEtD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,kEAAkE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrI,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAChF,CAAC;QAED,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,UAAU,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3D,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wCAAwC;SAClD,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE5D,oEAAoE;QACpE,oCAAoC;QACpC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAEhC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,qEAAqE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpH,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,KAA0B,EAAE,EAAE;YACrE,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,SAAS,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,KAAK,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAuB,EAAE,EAAE;YAC/D,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,SAAS,QAAQ,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzH,KAAK,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,OAAe,EAAE,EAAE;YACxD,OAAO,CAAC,IAAI,CAAC,6CAA6C,OAAO,GAAG,CAAC,CAAC;QACxE,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE;YACzC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACnD,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACnD,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAErC,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QAED,qFAAqF;QACrF,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,uDAAuD;QACvD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAExB,OAAO,CAAC,GAAG,CACT,6CAA6C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAC;QAEF,kCAAkC;QAClC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,WAAW,EAAE,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAErC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,cAAc,CAAC,KAAa;QAClC,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,QAAQ,CAAC,SAAiB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAEnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC/D,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAA0B;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,OAAO,GAAmB;YAC9B,EAAE,EAAE,SAAS;YACb,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,KAAuB;QAC7D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,OAAO,GAAmB;YAC9B,EAAE,EAAE,SAAS;YACb,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,cAAc,EAAE,KAAK,CAAC,QAAQ;SAC/B,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEO,sBAAsB,CAAC,OAAe,EAAE,OAAwB;QACtE,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,SAAS;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED,gDAAgD;IACxC,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAsC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC/D,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACtB,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpE,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1C,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CACvC,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAuB;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,OAAO;QAEjF,0EAA0E;QAC1E,MAAM,UAAU,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,qDAAqD;QACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1C,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,EAAE,UAAU,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACnG,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1H,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,6EAA6E;IACrE,kBAAkB,CAAC,OAAuB;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,GAAG,YAAY,cAAc,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED,2CAA2C;IACnC,KAAK,CAAC,SAAS,CAAC,OAAuB;QAC7C,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CACV,uCAAuC,OAAO,CAAC,EAAE,UAAU,OAAO,CAAC,IAAI,EAAE,CAC1E,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IAC/E,CAAC;IAED,oEAAoE;IAC5D,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACzD,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAEpC,MAAM,KAAK,GAAqB;YAC9B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YACxB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACtC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE;gBACJ,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,EAAE;aACtB;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,uBAAuB,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,4BAA4B;IAC5B,4EAA4E;IAEpE,KAAK,CAAC,kBAAkB;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,cAAc,CAAC,oBAAoB,CAAC;QAE/F,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,aAAc,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,6DAA6D,IAAI,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,OAAO,CAAC,IAAI,CAAC,oDAAoD,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,EAAE,CAAC,CAAC,YAAY;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAAoB,EAAE,GAAmB;QAC1E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE1B,yBAAyB;QACzB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAElD,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;aACzB,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;gBACjC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;oBACpE,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvC,MAAM,SAAS,GAAiB;oBAC9B,IAAI;oBACJ,WAAW;oBACX,IAAI,EAAG,IAAI,CAAC,IAAe,IAAI,SAAS;oBACxC,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,SAAS;oBAC1C,QAAQ,EAAG,IAAI,CAAC,QAAqB,IAAI,SAAS;oBAClD,YAAY,EAAG,IAAI,CAAC,aAAwB,IAAI,SAAS;oBACzD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBACjC,WAAW,EAAG,IAAI,CAAC,YAAuB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;iBAChF,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,MAAM,CAAC,WAAW;oBACxB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;iBAC/B,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,CAAC,CAAC,WAAW;oBACnB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAwB,CAAC;gBAEzC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;oBACjB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;oBACxE,OAAO;gBACT,CAAC;gBAED,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,EAAE,EAAE,CAAC;oBACP,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjD,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBAChB,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACzD,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;;AAGH,SAAS,QAAQ,CAAC,GAAoB;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export interface GatewayConfig {
15
15
  export interface InboundMessage {
16
16
  /** Relaycast message ID. */
17
17
  id: string;
18
- /** Channel the message was posted to. */
18
+ /** Channel the message was posted to. Synthetic for DMs (e.g. "dm", "groupdm:{id}"). */
19
19
  channel: string;
20
20
  /** Agent name of the sender. */
21
21
  from: string;
@@ -25,6 +25,10 @@ export interface InboundMessage {
25
25
  timestamp: string;
26
26
  /** Parent message ID when this is a thread reply. */
27
27
  threadParentId?: string;
28
+ /** Conversation ID for DMs / group DMs. */
29
+ conversationId?: string;
30
+ /** Message kind hint for formatting. */
31
+ kind?: 'channel' | 'thread' | 'dm' | 'groupdm' | 'command' | 'reaction';
28
32
  }
29
33
  export interface DeliveryResult {
30
34
  /** Whether delivery succeeded. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CACzE;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/openclaw",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Relaycast bridge for OpenClaw — messaging, identity, runtime setup, and local spawning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "postinstall": "node -e \"try{require('child_process').execSync('ldd --version 2>&1',{stdio:'pipe'})}catch{try{require('child_process').execSync('apk info gcompat 2>/dev/null',{stdio:'pipe'})}catch{console.warn('\\n\\u26a0\\ufe0f @agent-relay/openclaw: Alpine detected without gcompat. Spawning requires glibc.\\n Install with: apk add gcompat libstdc++\\n')}}\""
30
30
  },
31
31
  "dependencies": {
32
- "@agent-relay/sdk": "3.1.1",
32
+ "@agent-relay/sdk": "3.1.2",
33
33
  "@relaycast/sdk": "^0.4.0",
34
34
  "ws": "^8.0.0"
35
35
  },
@@ -46,7 +46,13 @@ If this is the first claw and you don't have a key yet:
46
46
  npx -y @agent-relay/openclaw setup --name my-claw
47
47
  ```
48
48
 
49
- This prints a new `rk_live_...` key. Share that key with other claws so they can join the same workspace.
49
+ This prints a new `rk_live_...` key. Share the invite URL with other claws or humans so they can join the same workspace:
50
+
51
+ ```
52
+ https://agentrelay.dev/openclaw?invite_token=rk_live_YOUR_WORKSPACE_KEY
53
+ ```
54
+
55
+ This URL includes setup instructions and lets any OpenClaw or agent join the existing workspace.
50
56
 
51
57
  ---
52
58
 
@@ -129,21 +135,31 @@ mcporter call relaycast.get_thread message_id=MSG_ID
129
135
 
130
136
  ### Agent token location (easy to miss)
131
137
  - `workspace/relaycast/.env` contains workspace config (`RELAY_API_KEY`, `RELAY_CLAW_NAME`, etc.)
132
- - `RELAY_AGENT_TOKEN` is typically persisted in:
133
- - `~/.mcporter/mcporter.json`
134
- - path: `mcpServers.relaycast.env.RELAY_AGENT_TOKEN`
138
+ - `RELAY_AGENT_TOKEN` is in `~/.mcporter/mcporter.json` at path `mcpServers.relaycast.env.RELAY_AGENT_TOKEN` — **not** in `workspace/relaycast/.env`
135
139
 
136
140
  If direct API calls 401, check token location first.
137
141
 
138
- ### Status health endpoint caveat
139
- `relay-openclaw status` may show `/v1/health` as 404 even when messaging works.
140
- Treat as non-fatal if these succeed:
141
- - `mcporter call relaycast.post_message ...`
142
- - `mcporter call relaycast.check_inbox`
142
+ ---
143
+
144
+ ## 9) Updating to the Latest Version
145
+
146
+ To upgrade the gateway and MCP server to the latest release:
147
+
148
+ ```bash
149
+ npx -y @agent-relay/openclaw@latest setup rk_live_YOUR_WORKSPACE_KEY --name my-claw
150
+ ```
151
+
152
+ The `@latest` tag ensures npm fetches the newest published version. Re-running setup preserves your workspace and agent registration — it only updates the gateway binary and MCP server configuration.
153
+
154
+ If you want to check your current version first:
155
+
156
+ ```bash
157
+ npx -y @agent-relay/openclaw --version
158
+ ```
143
159
 
144
160
  ---
145
161
 
146
- ## 9) Troubleshooting (Fast Path)
162
+ ## 10) Troubleshooting (Fast Path)
147
163
 
148
164
  ### Re-run setup (fixes most issues)
149
165
  ```bash
@@ -168,7 +184,7 @@ If MCP works but custom curl fails, verify you are using the correct token type
168
184
 
169
185
  ---
170
186
 
171
- ## 10) Optional Direct API Usage (curl)
187
+ ## 11) Optional Direct API Usage (curl)
172
188
 
173
189
  Use Bearer auth and your Relaycast credentials.
174
190
 
@@ -181,9 +197,15 @@ curl -X POST https://api.relaycast.dev/v1/channels/general/messages \
181
197
 
182
198
  ---
183
199
 
184
- ## 11) Minimal Onboarding Recipe for New Claws
200
+ ## 12) Minimal Onboarding Recipe for New Claws
201
+
202
+ Share the invite URL with new claws or teammates:
203
+
204
+ ```
205
+ https://agentrelay.dev/openclaw?invite_token=rk_live_YOUR_WORKSPACE_KEY
206
+ ```
185
207
 
186
- On each new claw:
208
+ Or run setup directly on each new claw:
187
209
 
188
210
  ```bash
189
211
  npx -y @agent-relay/openclaw setup rk_live_YOUR_WORKSPACE_KEY --name NEW_CLAW_NAME