@zhin.js/adapter-onebot11 4.0.0 → 4.0.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 (49) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +10 -0
  3. package/{skills/onebot11 → agent}/PERMITS.md +3 -3
  4. package/{skills/onebot11/SKILL.md → agent/skills/onebot11.md} +2 -2
  5. package/agent/tools/set_title.ts +21 -0
  6. package/lib/agent/tools/set_title.js +21 -0
  7. package/lib/agent/tools/set_title.js.map +1 -0
  8. package/lib/{adapter.js → src/adapter.js} +13 -6
  9. package/lib/src/adapter.js.map +1 -0
  10. package/lib/{endpoint-ws-client.js → src/endpoint-ws-client.js} +35 -42
  11. package/lib/src/endpoint-ws-client.js.map +1 -0
  12. package/lib/{endpoint-ws-server.js → src/endpoint-ws-server.js} +37 -44
  13. package/lib/src/endpoint-ws-server.js.map +1 -0
  14. package/lib/src/index.js +41 -0
  15. package/lib/src/index.js.map +1 -0
  16. package/lib/src/onebot-get-msg.js.map +1 -0
  17. package/lib/src/onebot11-agent-deps.js +10 -0
  18. package/lib/src/onebot11-agent-deps.js.map +1 -0
  19. package/lib/src/segment-mapper.js +2 -0
  20. package/lib/src/segment-mapper.js.map +1 -0
  21. package/lib/src/types.js.map +1 -0
  22. package/package.json +20 -10
  23. package/src/adapter.ts +13 -6
  24. package/src/endpoint-ws-client.ts +38 -42
  25. package/src/endpoint-ws-server.ts +40 -44
  26. package/src/index.ts +14 -31
  27. package/src/onebot11-agent-deps.ts +17 -0
  28. package/src/segment-mapper.ts +1 -0
  29. package/lib/adapter.d.ts +0 -34
  30. package/lib/adapter.d.ts.map +0 -1
  31. package/lib/adapter.js.map +0 -1
  32. package/lib/endpoint-ws-client.d.ts +0 -40
  33. package/lib/endpoint-ws-client.d.ts.map +0 -1
  34. package/lib/endpoint-ws-client.js.map +0 -1
  35. package/lib/endpoint-ws-server.d.ts +0 -42
  36. package/lib/endpoint-ws-server.d.ts.map +0 -1
  37. package/lib/endpoint-ws-server.js.map +0 -1
  38. package/lib/index.d.ts +0 -16
  39. package/lib/index.d.ts.map +0 -1
  40. package/lib/index.js +0 -56
  41. package/lib/index.js.map +0 -1
  42. package/lib/onebot-get-msg.d.ts +0 -3
  43. package/lib/onebot-get-msg.d.ts.map +0 -1
  44. package/lib/onebot-get-msg.js.map +0 -1
  45. package/lib/types.d.ts +0 -61
  46. package/lib/types.d.ts.map +0 -1
  47. package/lib/types.js.map +0 -1
  48. /package/lib/{onebot-get-msg.js → src/onebot-get-msg.js} +0 -0
  49. /package/lib/{types.js → src/types.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-onebot11",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "Zhin.js adapter for OneBot v11 protocol",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -17,10 +17,10 @@
17
17
  "lib",
18
18
  "client",
19
19
  "dist",
20
- "skills",
21
20
  "plugin.yml",
22
21
  "README.md",
23
- "CHANGELOG.md"
22
+ "CHANGELOG.md",
23
+ "agent"
24
24
  ],
25
25
  "keywords": [
26
26
  "zhin",
@@ -47,21 +47,31 @@
47
47
  "ws": "^8.21.0"
48
48
  },
49
49
  "devDependencies": {
50
- "@types/node": "^25.9.2",
50
+ "@types/node": "^26.1.0",
51
51
  "@types/ws": "^8.18.1",
52
52
  "typescript": "^6.0.3",
53
- "@zhin.js/client": "2.0.3",
54
- "@zhin.js/host-router": "2.0.1",
55
- "zhin.js": "4.1.0",
56
- "@zhin.js/cli": "1.0.91"
53
+ "zod": "^4.4.3",
54
+ "@zhin.js/cli": "1.0.93",
55
+ "@zhin.js/client": "2.0.5",
56
+ "@zhin.js/host-router": "2.0.3",
57
+ "zhin.js": "4.1.2",
58
+ "@zhin.js/agent": "1.0.3"
57
59
  },
58
60
  "peerDependencies": {
59
- "@zhin.js/host-router": "2.0.1",
60
- "zhin.js": "4.1.0"
61
+ "zod": "^4.0.0",
62
+ "zhin.js": "4.1.2",
63
+ "@zhin.js/agent": "1.0.3",
64
+ "@zhin.js/host-router": "2.0.3"
61
65
  },
62
66
  "peerDependenciesMeta": {
63
67
  "@zhin.js/host-router": {
64
68
  "optional": true
69
+ },
70
+ "@zhin.js/agent": {
71
+ "optional": true
72
+ },
73
+ "zod": {
74
+ "optional": true
65
75
  }
66
76
  },
67
77
  "publishConfig": {
package/src/adapter.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OneBot11 适配器:单一适配器支持正向 WS / 反向 WS,由 config.connection 区分
3
3
  */
4
- import { formatCompact, Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from 'zhin.js';
4
+ import { formatCompact, Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL, ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION } from 'zhin.js';
5
5
  import type { Router } from '@zhin.js/host-router';
6
6
  import { OneBot11WsClient } from './endpoint-ws-client.js';
7
7
  import { OneBot11WsServer } from './endpoint-ws-server.js';
@@ -16,6 +16,13 @@ export type OneBot11Bot = OneBot11WsClient | OneBot11WsServer;
16
16
  export class OneBot11Adapter extends Adapter<OneBot11Bot> {
17
17
  static override readonly capabilities = ['inbound', 'outbound'] as const;
18
18
  static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
19
+ static override interactivePolicy = 'text' as const;
20
+ static override aiOutboundCapabilities = {
21
+ mentions: true,
22
+ richSegments: ['qrcode', 'html', 'markdown', 'tts'],
23
+ interactive: 'text' as const,
24
+ };
25
+ static override aiOutboundExtensions = [ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION];
19
26
 
20
27
  #router?: Router;
21
28
 
@@ -38,7 +45,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
38
45
  }
39
46
  }
40
47
 
41
- async kickMember(endpointId: string, sceneId: string, userId: string) {
48
+ async removeMember(endpointId: string, sceneId: string, userId: string) {
42
49
  const endpoint = this.endpoints.get(endpointId);
43
50
  if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
44
51
  return endpoint.kickMember(Number(sceneId), Number(userId), false);
@@ -50,13 +57,13 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
50
57
  return endpoint.muteMember(Number(sceneId), Number(userId), duration);
51
58
  }
52
59
 
53
- async muteAll(endpointId: string, sceneId: string, enable = true) {
60
+ async setSceneMuted(endpointId: string, sceneId: string, enable = true) {
54
61
  const endpoint = this.endpoints.get(endpointId);
55
62
  if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
56
63
  return endpoint.muteAll(Number(sceneId), enable);
57
64
  }
58
65
 
59
- async setAdmin(endpointId: string, sceneId: string, userId: string, enable = true) {
66
+ async setModerator(endpointId: string, sceneId: string, userId: string, enable = true) {
60
67
  const endpoint = this.endpoints.get(endpointId);
61
68
  if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
62
69
  return endpoint.setAdmin(Number(sceneId), Number(userId), enable);
@@ -68,7 +75,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
68
75
  return endpoint.setCard(Number(sceneId), Number(userId), nickname);
69
76
  }
70
77
 
71
- async setGroupName(endpointId: string, sceneId: string, name: string) {
78
+ async renameScene(endpointId: string, sceneId: string, name: string) {
72
79
  const endpoint = this.endpoints.get(endpointId);
73
80
  if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
74
81
  return endpoint.setGroupName(Number(sceneId), name);
@@ -90,7 +97,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
90
97
  };
91
98
  }
92
99
 
93
- async getGroupInfo(endpointId: string, sceneId: string) {
100
+ async getSceneInfo(endpointId: string, sceneId: string) {
94
101
  const endpoint = this.endpoints.get(endpointId);
95
102
  if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
96
103
  return endpoint.getGroupInfo(Number(sceneId));
@@ -4,8 +4,9 @@
4
4
  import WebSocket from 'ws';
5
5
  import { EventEmitter } from 'events';
6
6
  import { clearInterval } from 'node:timers';
7
- import { formatCompact, Endpoint, Message, Notice, Request, segment, SendContent, SendOptions, type QuotedMessagePayload, applyQqSenderRoleToMessageSender,} from 'zhin.js';
7
+ import { formatCompact, Endpoint, Message, mapNoticeParts, mapRequestParts, buildNotice, buildRequest, senderFromId, resolveSideEventDedupeKey, segment, SendContent, SendOptions, expandInteractiveSegmentsInContent, type QuotedMessagePayload, applyQqSenderRoleToMessageSender, type MessageElement,} from 'zhin.js';
8
8
  import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
9
+ import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
9
10
  import type {
10
11
  OneBot11WsClientConfig,
11
12
  OneBot11Message,
@@ -54,7 +55,7 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
54
55
  if (!this.$config.access_token) {
55
56
  this.logger.warn(formatCompact({ endpoint: this.$id, ok: false, error: 'missing access_token' }));
56
57
  }
57
- this.logger.info(formatCompact({ endpoint: this.$id, mode: 'ws' }));
58
+ this.logger.debug(formatCompact({ endpoint: this.$id, mode: 'ws' }));
58
59
  this.startHeartbeat();
59
60
  resolve();
60
61
  });
@@ -115,10 +116,18 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
115
116
  }
116
117
  }
117
118
 
119
+ private toWireSendContent(content: SendContent): MessageElement[] {
120
+ const items = (Array.isArray(content) ? content : [content]).map((item) =>
121
+ typeof item === 'string' ? { type: 'text', data: { text: item } } : item as MessageElement,
122
+ );
123
+ return fromCanonicalSegments(toCanonicalSegments(items as never));
124
+ }
125
+
118
126
  $formatMessage(onebotMsg: OneBot11Message) {
119
- const content = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
120
- const quoteId = Message.quoteIdFromContent(content);
121
- Message.alignReplySegments(content, quoteId);
127
+ const wire = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
128
+ const quoteId = Message.quoteIdFromContent(wire);
129
+ Message.alignReplySegments(wire, quoteId);
130
+ const content = toCanonicalSegments(wire as never);
122
131
 
123
132
  const message = Message.from(onebotMsg, {
124
133
  $id: onebotMsg.message_id.toString(),
@@ -158,7 +167,8 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
158
167
  }
159
168
 
160
169
  async $sendMessage(options: SendOptions): Promise<string> {
161
- const messageData: any = { message: options.content };
170
+ const content = this.toWireSendContent(expandInteractiveSegmentsInContent(options.content));
171
+ const messageData: any = { message: content };
162
172
  if (options.type === 'group') {
163
173
  const result = await this.callApi('send_group_msg', {
164
174
  group_id: parseInt(options.id),
@@ -331,55 +341,41 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
331
341
  }
332
342
 
333
343
  private handleOneBot11Notice(event: any): void {
334
- const noticeTypeMap: Record<string, string> = {
335
- group_increase: 'group_member_increase',
336
- group_decrease: 'group_member_decrease',
337
- group_admin: 'group_admin_change',
338
- group_ban: 'group_ban',
339
- group_recall: 'group_recall',
340
- friend_recall: 'friend_recall',
341
- friend_add: 'friend_add',
342
- notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
343
- group_upload: 'group_upload',
344
- };
345
- const $type = noticeTypeMap[event.notice_type] || event.notice_type;
346
344
  const isGroup = !!event.group_id;
347
- const notice = Notice.from(event, {
345
+ const { scene_type, sub_type } = mapNoticeParts('onebot', event.notice_type ?? '', {
346
+ sub_type: event.sub_type,
347
+ is_group: isGroup,
348
+ });
349
+ const sceneId = String((event.group_id || event.user_id) ?? '');
350
+ const notice = buildNotice(event, {
348
351
  $id: `${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
349
352
  $adapter: 'onebot11',
350
353
  $endpoint: this.$config.name,
351
- $type,
352
- $subType: event.sub_type,
353
- $channel: {
354
- id: (event.group_id || event.user_id)?.toString() || '',
355
- type: isGroup ? 'group' : 'private',
356
- },
357
- $operator: event.operator_id ? { id: event.operator_id.toString(), name: event.operator_id.toString() } : undefined,
358
- $target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
359
- $timestamp: event.time || Math.floor(Date.now() / 1000),
354
+ $type: 'notice',
355
+ $scene_id: sceneId,
356
+ $scene_type: scene_type,
357
+ $sub_type: sub_type,
358
+ $actor: senderFromId(event.operator_id),
359
+ $target: senderFromId(event.user_id),
360
+ $timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
360
361
  });
361
362
  this.adapter.emit('notice.receive', notice);
362
363
  }
363
364
 
364
365
  private handleOneBot11Request(event: any): void {
365
- const typeMap: Record<string, string> = {
366
- friend: 'friend_add',
367
- group: event.sub_type === 'invite' ? 'group_invite' : 'group_add',
368
- };
369
- const $type = typeMap[event.request_type] || event.request_type;
370
- const request = Request.from(event, {
366
+ const { scene_type, sub_type } = mapRequestParts('onebot', event.request_type ?? '', event.sub_type);
367
+ const sceneId = String((event.group_id || event.user_id) ?? '');
368
+ const request = buildRequest(event, {
371
369
  $id: event.flag || `${event.time}_${event.request_type}_${event.user_id}`,
372
370
  $adapter: 'onebot11',
373
371
  $endpoint: this.$config.name,
374
- $type,
375
- $subType: event.sub_type,
376
- $channel: {
377
- id: (event.group_id || event.user_id)?.toString() || '',
378
- type: event.group_id ? 'group' : 'private',
379
- },
380
- $sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
372
+ $type: 'request',
373
+ $scene_id: sceneId,
374
+ $scene_type: scene_type,
375
+ $sub_type: sub_type,
376
+ $actor: senderFromId(event.user_id) ?? { id: '', name: '' },
381
377
  $comment: event.comment,
382
- $timestamp: event.time || Math.floor(Date.now() / 1000),
378
+ $timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
383
379
  $approve: async (remark?: string) => {
384
380
  await this.callApi(
385
381
  event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request',
@@ -5,8 +5,9 @@ import WebSocket, { WebSocketServer } from 'ws';
5
5
  import { EventEmitter } from 'events';
6
6
  import { clearInterval } from 'node:timers';
7
7
  import { IncomingMessage } from 'http';
8
- import { formatCompact, Endpoint, Message, Notice, Request, segment, SendOptions, type QuotedMessagePayload, applyQqSenderRoleToMessageSender,} from 'zhin.js';
8
+ import { formatCompact, Endpoint, Message, mapNoticeParts, mapRequestParts, buildNotice, buildRequest, senderFromId, segment, SendContent, SendOptions, expandInteractiveSegmentsInContent, type QuotedMessagePayload, applyQqSenderRoleToMessageSender, type MessageElement,} from 'zhin.js';
9
9
  import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
10
+ import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
10
11
  import type { Router } from '@zhin.js/host-router';
11
12
  import type {
12
13
  OneBot11WsServerConfig,
@@ -59,10 +60,10 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
59
60
  return true;
60
61
  },
61
62
  });
62
- this.logger.info(formatCompact( { op: 'listen', endpoint: this.$id, mode: 'wss', path: this.$config.path }));
63
+ this.logger.debug(formatCompact( { op: 'listen', endpoint: this.$id, mode: 'wss', path: this.$config.path }));
63
64
  this.#wss.on('connection', (client, req) => {
64
65
  this.startHeartbeat();
65
- this.logger.info(formatCompact({ endpoint: this.$id, peer: req.socket.remoteAddress }));
66
+ this.logger.debug(formatCompact({ endpoint: this.$id, peer: req.socket.remoteAddress }));
66
67
  client.on('error', (err) => this.logger.warn(formatCompact( {
67
68
  op: 'ws_error',
68
69
  endpoint: this.$id,
@@ -105,15 +106,23 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
105
106
  }
106
107
  }
107
108
 
109
+ private toWireSendContent(content: SendContent): MessageElement[] {
110
+ const items = (Array.isArray(content) ? content : [content]).map((item) =>
111
+ typeof item === 'string' ? { type: 'text', data: { text: item } } : item as MessageElement,
112
+ );
113
+ return fromCanonicalSegments(toCanonicalSegments(items as never));
114
+ }
115
+
108
116
  $formatMessage(onebotMsg: OneBot11Message) {
109
117
  const msgId = [onebotMsg.self_id, onebotMsg.message_id].join(':');
110
118
  const channel = {
111
119
  id: [onebotMsg.self_id, (onebotMsg.group_id || onebotMsg.user_id)].join(':'),
112
120
  type: (onebotMsg.group_id ? 'group' : 'private') as 'group' | 'private',
113
121
  };
114
- const content = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
115
- const quoteId = Message.quoteIdFromContent(content);
116
- Message.alignReplySegments(content, quoteId);
122
+ const wire = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
123
+ const quoteId = Message.quoteIdFromContent(wire);
124
+ Message.alignReplySegments(wire, quoteId);
125
+ const content = toCanonicalSegments(wire as never);
117
126
 
118
127
  const message = Message.from(onebotMsg, {
119
128
  $id: msgId,
@@ -148,7 +157,8 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
148
157
  }
149
158
 
150
159
  async $sendMessage(options: SendOptions): Promise<string> {
151
- const messageData: any = { message: options.content };
160
+ const content = this.toWireSendContent(expandInteractiveSegmentsInContent(options.content));
161
+ const messageData: any = { message: content };
152
162
  if (options.type === 'group') {
153
163
  const [self_id, id] = options.id.split(':');
154
164
  const result = await this.callApi(self_id, 'send_group_msg', {
@@ -295,7 +305,7 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
295
305
  case 'connect':
296
306
  this.#clientMap.set(String(message.self_id), client);
297
307
  this.$connected = true;
298
- this.logger.info(formatCompact({ endpoint: this.$config.name, self_id: message.self_id }));
308
+ this.logger.debug(formatCompact({ endpoint: this.$config.name, self_id: message.self_id }));
299
309
  break;
300
310
  }
301
311
  }
@@ -307,56 +317,42 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
307
317
  }
308
318
 
309
319
  private handleNotice(event: any): void {
310
- const noticeTypeMap: Record<string, string> = {
311
- group_increase: 'group_member_increase',
312
- group_decrease: 'group_member_decrease',
313
- group_admin: 'group_admin_change',
314
- group_ban: 'group_ban',
315
- group_recall: 'group_recall',
316
- friend_recall: 'friend_recall',
317
- friend_add: 'friend_add',
318
- notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
319
- group_upload: 'group_upload',
320
- };
321
- const $type = noticeTypeMap[event.notice_type] || event.notice_type;
322
320
  const isGroup = !!event.group_id;
323
- const notice = Notice.from(event, {
321
+ const { scene_type, sub_type } = mapNoticeParts('onebot', event.notice_type ?? '', {
322
+ sub_type: event.sub_type,
323
+ is_group: isGroup,
324
+ });
325
+ const sceneId = String(event.group_id || event.user_id || '');
326
+ const notice = buildNotice(event, {
324
327
  $id: `${event.self_id}:${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
325
328
  $adapter: 'onebot11',
326
329
  $endpoint: this.$config.name,
327
- $type,
328
- $subType: event.sub_type,
329
- $channel: {
330
- id: [event.self_id, (event.group_id || event.user_id)].join(':'),
331
- type: isGroup ? 'group' : 'private',
332
- },
333
- $operator: event.operator_id ? { id: event.operator_id.toString(), name: event.operator_id.toString() } : undefined,
334
- $target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
335
- $timestamp: event.time || Math.floor(Date.now() / 1000),
330
+ $type: 'notice',
331
+ $scene_id: sceneId,
332
+ $scene_type: scene_type,
333
+ $sub_type: sub_type,
334
+ $actor: senderFromId(event.operator_id),
335
+ $target: senderFromId(event.user_id),
336
+ $timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
336
337
  });
337
338
  this.adapter.emit('notice.receive', notice);
338
339
  }
339
340
 
340
341
  private handleRequest(event: any): void {
341
342
  const self_id = event.self_id?.toString() || '';
342
- const typeMap: Record<string, string> = {
343
- friend: 'friend_add',
344
- group: event.sub_type === 'invite' ? 'group_invite' : 'group_add',
345
- };
346
- const $type = typeMap[event.request_type] || event.request_type;
347
- const request = Request.from(event, {
343
+ const { scene_type, sub_type } = mapRequestParts('onebot', event.request_type ?? '', event.sub_type);
344
+ const sceneId = String(event.group_id || event.user_id || '');
345
+ const request = buildRequest(event, {
348
346
  $id: event.flag || `${self_id}:${event.time}_${event.request_type}_${event.user_id}`,
349
347
  $adapter: 'onebot11',
350
348
  $endpoint: this.$config.name,
351
- $type,
352
- $subType: event.sub_type,
353
- $channel: {
354
- id: [self_id, (event.group_id || event.user_id)].join(':'),
355
- type: event.group_id ? 'group' : 'private',
356
- },
357
- $sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
349
+ $type: 'request',
350
+ $scene_id: sceneId,
351
+ $scene_type: scene_type,
352
+ $sub_type: sub_type,
353
+ $actor: senderFromId(event.user_id) ?? { id: '', name: '' },
358
354
  $comment: event.comment,
359
- $timestamp: event.time || Math.floor(Date.now() / 1000),
355
+ $timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
360
356
  $approve: async (remark?: string) => {
361
357
  await this.callApi(
362
358
  self_id,
package/src/index.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * OneBot11 适配器入口:单一适配器,支持正向 WS / 反向 WS(connection: ws | wss)
3
3
  */
4
- import { usePlugin, type Plugin, type Context, type IGroupManagement, createGroupManagementTools, registerDefaultGroupPlatformPermitChecker, type ToolFeature } from 'zhin.js';
4
+ import { usePlugin, type Plugin, type Context, type ISceneManagement, createSceneManagementTools, registerDefaultScenePlatformPermitChecker, type ToolFeature } from 'zhin.js';
5
5
  import type { Router } from '@zhin.js/host-router';
6
6
  import { OneBot11Adapter } from './adapter.js';
7
+ import { setOnebot11AgentDeps } from './onebot11-agent-deps.js';
7
8
 
8
9
  export * from './types.js';
9
10
  export { OneBot11WsClient } from './endpoint-ws-client.js';
@@ -38,37 +39,19 @@ provide({
38
39
 
39
40
  useContext('tool', 'onebot11', (toolService: ToolFeature, onebot11: OneBot11Adapter) => {
40
41
  const disposers: (() => void)[] = [];
41
- disposers.push(registerDefaultGroupPlatformPermitChecker('onebot11'));
42
- const groupTools = createGroupManagementTools(
43
- onebot11 as unknown as IGroupManagement,
42
+ disposers.push(registerDefaultScenePlatformPermitChecker('onebot11'));
43
+ setOnebot11AgentDeps({
44
+ getEndpoint: (endpointId) => {
45
+ const endpoint = onebot11.endpoints.get(endpointId);
46
+ if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
47
+ return endpoint;
48
+ },
49
+ getAdapter: () => onebot11,
50
+ });
51
+ const sceneTools = createSceneManagementTools(
52
+ onebot11 as unknown as ISceneManagement,
44
53
  'onebot11',
45
54
  );
46
- disposers.push(...groupTools.map(t => toolService.addTool(t, plugin.name)));
47
-
48
- // Platform-specific tool: set title
49
- disposers.push(toolService.addTool({
50
- name: 'onebot11_set_title',
51
- description: '设置 QQ 群成员的专属头衔。只有群主才能设置。',
52
- parameters: {
53
- type: 'object',
54
- properties: {
55
- endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
56
- group_id: { type: 'number', description: '目标群号' },
57
- user_id: { type: 'number', description: '目标成员 QQ号' },
58
- title: { type: 'string', description: '头衔文字' },
59
- },
60
- required: ['endpoint_id', 'group_id', 'user_id', 'title'],
61
- },
62
- platforms: ['onebot11'],
63
- tags: ['onebot11'],
64
- permissions: ['platform(onebot11,group_owner)'],
65
- execute: async (args: Record<string, any>) => {
66
- const endpoint = onebot11.endpoints.get(args.endpoint_id);
67
- if (!endpoint) throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
68
- const success = await endpoint.setTitle(args.group_id, args.user_id, args.title);
69
- return { success, message: success ? `已将 ${args.user_id} 的头衔设为 "${args.title}"` : '设置失败' };
70
- },
71
- }, plugin.name));
72
-
55
+ disposers.push(...sceneTools.map(t => toolService.addTool(t, plugin.name)));
73
56
  return () => disposers.forEach(d => d());
74
57
  });
@@ -0,0 +1,17 @@
1
+ import type { OneBot11Adapter, OneBot11Bot } from './adapter.js';
2
+
3
+ export interface Onebot11AgentDeps {
4
+ getEndpoint: (endpointId: string) => OneBot11Bot;
5
+ getAdapter: () => OneBot11Adapter;
6
+ }
7
+
8
+ let _deps: Onebot11AgentDeps | null = null;
9
+
10
+ export function setOnebot11AgentDeps(deps: Onebot11AgentDeps): void {
11
+ _deps = deps;
12
+ }
13
+
14
+ export function getOnebot11AgentDeps(): Onebot11AgentDeps {
15
+ if (!_deps) throw new Error('onebot11 agent deps not initialized');
16
+ return _deps;
17
+ }
@@ -0,0 +1 @@
1
+ export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
package/lib/adapter.d.ts DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * OneBot11 适配器:单一适配器支持正向 WS / 反向 WS,由 config.connection 区分
3
- */
4
- import { Adapter, Plugin } from 'zhin.js';
5
- import { OneBot11WsClient } from './endpoint-ws-client.js';
6
- import { OneBot11WsServer } from './endpoint-ws-server.js';
7
- import type { OneBot11EndpointConfig } from './types.js';
8
- export type OneBot11Bot = OneBot11WsClient | OneBot11WsServer;
9
- export declare class OneBot11Adapter extends Adapter<OneBot11Bot> {
10
- #private;
11
- static readonly capabilities: readonly ["inbound", "outbound"];
12
- static outboundRichSegmentPolicy: import("zhin.js").OutboundRichSegmentPolicy;
13
- constructor(plugin: Plugin);
14
- createEndpoint(config: OneBot11EndpointConfig): OneBot11Bot;
15
- kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
16
- muteMember(endpointId: string, sceneId: string, userId: string, duration?: number): Promise<boolean>;
17
- muteAll(endpointId: string, sceneId: string, enable?: boolean): Promise<boolean>;
18
- setAdmin(endpointId: string, sceneId: string, userId: string, enable?: boolean): Promise<boolean>;
19
- setMemberNickname(endpointId: string, sceneId: string, userId: string, nickname: string): Promise<boolean>;
20
- setGroupName(endpointId: string, sceneId: string, name: string): Promise<boolean>;
21
- listMembers(endpointId: string, sceneId: string): Promise<{
22
- members: {
23
- user_id: any;
24
- nickname: any;
25
- card: any;
26
- role: any;
27
- title: any;
28
- }[];
29
- count: number;
30
- }>;
31
- getGroupInfo(endpointId: string, sceneId: string): Promise<any>;
32
- start(): Promise<void>;
33
- }
34
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAwC,MAAM,SAAS,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE9D,qBAAa,eAAgB,SAAQ,OAAO,CAAC,WAAW,CAAC;;IACvD,gBAAyB,YAAY,mCAAoC;IACzE,OAAgB,yBAAyB,8CAAwC;gBAIrE,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW;IAerD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM9D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM;IAM9E,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAO;IAM1D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAO;IAM3E,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAMvF,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM9D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;IAgB/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { Endpoint, Message, SendOptions, type QuotedMessagePayload } from 'zhin.js';
3
- import type { OneBot11WsClientConfig, OneBot11Message } from './types.js';
4
- import type { OneBot11Adapter } from './adapter.js';
5
- export declare class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11WsClientConfig, OneBot11Message> {
6
- adapter: OneBot11Adapter;
7
- $config: OneBot11WsClientConfig;
8
- $connected: boolean;
9
- private ws?;
10
- private reconnectTimer?;
11
- private heartbeatTimer?;
12
- private requestId;
13
- private pendingRequests;
14
- get logger(): import("zhin.js").Logger;
15
- constructor(adapter: OneBot11Adapter, $config: OneBot11WsClientConfig);
16
- get $id(): string;
17
- $connect(): Promise<void>;
18
- $disconnect(): Promise<void>;
19
- $formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
20
- $sendMessage(options: SendOptions): Promise<string>;
21
- $recallMessage(id: string): Promise<void>;
22
- $getMsg(messageId: string): Promise<QuotedMessagePayload>;
23
- kickMember(groupId: number, userId: number, rejectAddRequest?: boolean): Promise<boolean>;
24
- muteMember(groupId: number, userId: number, duration?: number): Promise<boolean>;
25
- muteAll(groupId: number, enable?: boolean): Promise<boolean>;
26
- setAdmin(groupId: number, userId: number, enable?: boolean): Promise<boolean>;
27
- setCard(groupId: number, userId: number, card: string): Promise<boolean>;
28
- setTitle(groupId: number, userId: number, title: string, duration?: number): Promise<boolean>;
29
- setGroupName(groupId: number, name: string): Promise<boolean>;
30
- getMemberList(groupId: number): Promise<any[]>;
31
- getGroupInfo(groupId: number): Promise<any>;
32
- private callApi;
33
- private handleWebSocketMessage;
34
- private handleOneBot11Notice;
35
- private handleOneBot11Request;
36
- private handleOneBot11Message;
37
- private startHeartbeat;
38
- private scheduleReconnect;
39
- }
40
- //# sourceMappingURL=endpoint-ws-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-ws-client.d.ts","sourceRoot":"","sources":["../src/endpoint-ws-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAyC,WAAW,EAAE,KAAK,oBAAoB,EAAoC,MAAM,SAAS,CAAC;AAE5K,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;IAe1F,OAAO,EAAE,eAAe;IAAS,OAAO,EAAE,sBAAsB;IAdnF,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;IACL,IAAI,MAAM,6BAET;gBAEkB,OAAO,EAAE,eAAe,EAAS,OAAO,EAAE,sBAAsB;IAKnF,IAAI,GAAG,WAEN;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC,cAAc,CAAC,SAAS,EAAE,eAAe;IA0CnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMzD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAehG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAerF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAS9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YASnC,OAAO;IAgBrB,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;CAa1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-ws-client.js","sourceRoot":"","sources":["../src/endpoint-ws-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAuD,gCAAgC,GAAE,MAAM,SAAS,CAAC;AAC5K,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAShE,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAe7B;IAAiC;IAdpD,UAAU,CAAU;IACZ,EAAE,CAAa;IACf,cAAc,CAAkB;IAChC,cAAc,CAAkB;IAChC,SAAS,GAAG,CAAC,CAAC;IACd,eAAe,GAAG,IAAI,GAAG,EAI7B,CAAC;IACL,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,YAAmB,OAAwB,EAAS,OAA+B;QACjF,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAiB;QAAS,YAAO,GAAP,OAAO,CAAwB;QAEjF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjE,MAAM,GAAG,GAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;gBACpG,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;oBAC9B,EAAE,EAAE,YAAY;oBAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBAC3B,IAAI;oBACJ,KAAK,EAAE,GAAG,SAAS,IAAI,QAAQ,GAAG,QAAQ,EAAE;oBAC5C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI;iBACtD,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;oBAC9B,EAAE,EAAE,UAAU;oBACd,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBAC3B,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACtB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,SAA0B;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YACtC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE;YACpC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,CAAC,GAAG,EAAE;gBACb,MAAM,MAAM,GAAwE;oBAClF,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;iBAC3F,CAAC;gBACF,gCAAgC,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjE,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,EAAE;YACJ,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;gBACxD,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC/C;YACD,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,SAAS,CAAC,WAAW;YAC3B,UAAU,EAAE,SAAS,CAAC,IAAI;YAC1B,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAoB,EAAE,KAAwB,EAAmB,EAAE;gBAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,KAAK;oBAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBACpC,GAAG,OAAO,CAAC,QAAQ;oBACnB,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBAChC,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,WAAW,GAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAClD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,GAAG,WAAW;aACf,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACpD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,GAAG,WAAW;aACf,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,mBAA4B,KAAK;QACjF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACnC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,kBAAkB,EAAE,gBAAgB;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,WAAmB,GAAG;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBAClC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxI,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,SAAkB,IAAI;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,SAAkB,IAAI;QACpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,KAAa,EAAE,WAAmB,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;gBAC5C,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACzG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAY;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAc,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,OAAY;QACzC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,OAAsB,CAAC;YACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAU;QACrC,MAAM,aAAa,GAA2B;YAC5C,cAAc,EAAE,uBAAuB;YACvC,cAAc,EAAE,uBAAuB;YACvC,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,cAAc;YAC5B,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,QAAQ,EAAE;YAChH,YAAY,EAAE,cAAc;SAC7B,CAAC;QACF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC;QACpE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YAChC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;YAC5E,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC5B,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aACpC;YACD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACnH,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACrG,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,qBAAqB,CAAC,KAAU;QACtC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;SAClE,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAClC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;YACzE,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC5B,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvD,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC3C;YACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACvF,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACvD,QAAQ,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;gBAClC,MAAM,IAAI,CAAC,OAAO,CAChB,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EACpF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAC5C,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;gBACjC,MAAM,IAAI,CAAC,OAAO,CAChB,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EACpF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAC7C,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,qBAAqB,CAAC,SAA0B;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC;IAEO,cAAc;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACvE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;CACF"}