@agentunion/fastaun 0.5.9 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/_packed_docs/CHANGELOG.md +32 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +6 -5
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +43 -8
- package/_packed_docs/sdk/09-group-rpc-manual.md +18 -3
- package/_packed_docs/sdk/09-message-rpc-manual.md +34 -10
- package/dist/agent-md.js +5 -1
- package/dist/agent-md.js.map +1 -1
- package/dist/auth.d.ts +2 -1
- package/dist/auth.js +30 -44
- package/dist/auth.js.map +1 -1
- package/dist/client/delivery.d.ts +21 -5
- package/dist/client/delivery.js +236 -52
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +6 -6
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/lifecycle.js +5 -14
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +4 -0
- package/dist/client/rpc-pipeline.js +33 -1
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +1 -0
- package/dist/client/v2-e2ee.js +43 -17
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.js +21 -27
- package/dist/client.js.map +1 -1
- package/dist/events.d.ts +23 -8
- package/dist/events.js +120 -26
- package/dist/events.js.map +1 -1
- package/dist/register-flow.js +15 -111
- package/dist/register-flow.js.map +1 -1
- package/dist/transport.d.ts +32 -3
- package/dist/transport.js +758 -33
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,38 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## 0.5.10 — 2026-09-02
|
|
10
|
+
|
|
11
|
+
### 新功能
|
|
12
|
+
|
|
13
|
+
#### `delivery.changed` 投递汇总
|
|
14
|
+
- 新增应用事件 `delivery.changed`,覆盖 `push`、`inline_push` 和全局 Pull 排空(`pull_drained`)三类触发来源;payload 按 namespace 聚合 `deliveredCount`。
|
|
15
|
+
- P2P 统一归入 `p2p` namespace,群消息按 canonical group AID 归一化;多页/并发/重复/空 Pull、ordered queue 和 inline push 均折叠为稳定的单次通知。
|
|
16
|
+
- continuation、sender IK 延迟恢复和 ordered drain 均计入全局 Pull 保留量;全部排空后才发布 `pull_drained`,连接或身份代次切换会隔离旧结果,原消息事件先于汇总事件。
|
|
17
|
+
|
|
18
|
+
### 修复
|
|
19
|
+
|
|
20
|
+
#### 事件分发与生命周期
|
|
21
|
+
- 应用事件改由单客户端 FIFO 异步队列分发,handler 不再阻塞网络或内部处理;单个 handler 异常隔离,`close()` 会排空已接受事件。
|
|
22
|
+
- 支持 handler 内重入 RPC、Pull 和 `close()`,避免自等待死锁;trace/meta observer、断线回调及解密/状态事件也经过异步分发边界。
|
|
23
|
+
|
|
24
|
+
#### WebSocket、Pull 与消息幂等
|
|
25
|
+
- 短 RPC 支持并发调用、`AbortSignal` 取消和超时;连接代次变化会丢弃旧事件并清理 pending,WebSocket 写入统一串行化。
|
|
26
|
+
- 普通 Pull、P2P/群 V2 Pull、inline realtime、续拉和 ACK 提交纳入统一的 Pull 排空生命周期,旧代次不会继续发布、持久化或确认消息。
|
|
27
|
+
- `message.send`/`group.send` preflight 自动生成 `messageId`,显式值保持不变;V2 重试、缓存 envelope 和底层 RPC 继续传递同一 ID,缺失响应 ID 时从请求回填。
|
|
28
|
+
|
|
29
|
+
#### agent.md 与短 RPC 错误
|
|
30
|
+
- 远端缺失的 agent.md 增加约 60 秒负缓存窗口,避免重复下载;短 RPC 错误保留服务端映射属性,便于调用方识别原始错误。
|
|
31
|
+
|
|
32
|
+
### 改进
|
|
33
|
+
|
|
34
|
+
- SDK 包、锁文件、运行时 `VERSION`、V2 E2EE envelope `sdk_version` 及相关测试期望统一更新为 `0.5.10`。
|
|
35
|
+
|
|
36
|
+
### 测试
|
|
37
|
+
|
|
38
|
+
- 新增 `delivery.changed` 单元和单域集成测试,覆盖 namespace 归一化、来源折叠、Pull 排空、ordered queue、inline push 和代次隔离。
|
|
39
|
+
- 扩展异步 dispatcher、短 RPC 并发与取消、Pull 排空生命周期、messageId、agent.md 负缓存、错误映射及 observer/断线回调测试。
|
|
40
|
+
|
|
9
41
|
## 0.5.9 — 2026-08-31
|
|
10
42
|
|
|
11
43
|
### 安全性
|
|
@@ -6,6 +6,38 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## 0.5.10 — 2026-09-02
|
|
10
|
+
|
|
11
|
+
### 新功能
|
|
12
|
+
|
|
13
|
+
#### `delivery.changed` 投递汇总
|
|
14
|
+
- 新增应用事件 `delivery.changed`,覆盖 `push`、`inline_push` 和全局 Pull 排空(`pull_drained`)三类触发来源;payload 按 namespace 聚合 `deliveredCount`。
|
|
15
|
+
- P2P 统一归入 `p2p` namespace,群消息按 canonical group AID 归一化;多页/并发/重复/空 Pull、ordered queue 和 inline push 均折叠为稳定的单次通知。
|
|
16
|
+
- continuation、sender IK 延迟恢复和 ordered drain 均计入全局 Pull 保留量;全部排空后才发布 `pull_drained`,连接或身份代次切换会隔离旧结果,原消息事件先于汇总事件。
|
|
17
|
+
|
|
18
|
+
### 修复
|
|
19
|
+
|
|
20
|
+
#### 事件分发与生命周期
|
|
21
|
+
- 应用事件改由单客户端 FIFO 异步队列分发,handler 不再阻塞网络或内部处理;单个 handler 异常隔离,`close()` 会排空已接受事件。
|
|
22
|
+
- 支持 handler 内重入 RPC、Pull 和 `close()`,避免自等待死锁;trace/meta observer、断线回调及解密/状态事件也经过异步分发边界。
|
|
23
|
+
|
|
24
|
+
#### WebSocket、Pull 与消息幂等
|
|
25
|
+
- 短 RPC 支持并发调用、`AbortSignal` 取消和超时;连接代次变化会丢弃旧事件并清理 pending,WebSocket 写入统一串行化。
|
|
26
|
+
- 普通 Pull、P2P/群 V2 Pull、inline realtime、续拉和 ACK 提交纳入统一的 Pull 排空生命周期,旧代次不会继续发布、持久化或确认消息。
|
|
27
|
+
- `message.send`/`group.send` preflight 自动生成 `messageId`,显式值保持不变;V2 重试、缓存 envelope 和底层 RPC 继续传递同一 ID,缺失响应 ID 时从请求回填。
|
|
28
|
+
|
|
29
|
+
#### agent.md 与短 RPC 错误
|
|
30
|
+
- 远端缺失的 agent.md 增加约 60 秒负缓存窗口,避免重复下载;短 RPC 错误保留服务端映射属性,便于调用方识别原始错误。
|
|
31
|
+
|
|
32
|
+
### 改进
|
|
33
|
+
|
|
34
|
+
- SDK 包、锁文件、运行时 `VERSION`、V2 E2EE envelope `sdk_version` 及相关测试期望统一更新为 `0.5.10`。
|
|
35
|
+
|
|
36
|
+
### 测试
|
|
37
|
+
|
|
38
|
+
- 新增 `delivery.changed` 单元和单域集成测试,覆盖 namespace 归一化、来源折叠、Pull 排空、ordered queue、inline push 和代次隔离。
|
|
39
|
+
- 扩展异步 dispatcher、短 RPC 并发与取消、Pull 排空生命周期、messageId、agent.md 负缓存、错误映射及 observer/断线回调测试。
|
|
40
|
+
|
|
9
41
|
## 0.5.9 — 2026-08-31
|
|
10
42
|
|
|
11
43
|
### 安全性
|
|
@@ -206,11 +206,12 @@ print(client.can_connect, client.can_send, client.is_online)
|
|
|
206
206
|
| `connection.error` | 连接、认证、重连错误 |
|
|
207
207
|
| `token.refreshed` | token 自动刷新完成 |
|
|
208
208
|
| `token.refresh_exhausted` | refresh_token 缺失、过期或刷新链耗尽,SDK 已清理本地 token,下一次重连会重新走完整登录 |
|
|
209
|
-
| `message.received` | 收到消息 |
|
|
210
|
-
| `group.changed` | 群组事件 |
|
|
211
|
-
| `message.undecryptable` / `group.message_undecryptable` | E2EE 解密失败 |
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
| `message.received` | 收到消息 |
|
|
210
|
+
| `group.changed` | 群组事件 |
|
|
211
|
+
| `message.undecryptable` / `group.message_undecryptable` | E2EE 解密失败 |
|
|
212
|
+
| `delivery.changed` | SDK 本地批量交付完成通知,用于合并 UI 刷新(完整契约见 [06-API手册](06-API手册.md#deliverychanged)) |
|
|
213
|
+
|
|
214
|
+
建议在 `connect()` 前注册事件处理器。
|
|
214
215
|
|
|
215
216
|
---
|
|
216
217
|
|
|
@@ -734,17 +734,52 @@ sub.unsubscribe()
|
|
|
734
734
|
| `connection.error` | 连接或重连错误 |
|
|
735
735
|
| `token.refreshed` | token 刷新完成 |
|
|
736
736
|
| `token.refresh_exhausted` | refresh_token 缺失、过期或刷新链耗尽,SDK 已清理本地 token 并等待重新登录 |
|
|
737
|
-
| `message.received` | 收到 P2P 消息 |
|
|
738
|
-
| `message.ack` | 消息 ack |
|
|
739
|
-
| `message.undecryptable` | P2P E2EE 解密失败 |
|
|
740
|
-
| `group.changed` | 群组事件 |
|
|
737
|
+
| `message.received` | 收到 P2P 消息 |
|
|
738
|
+
| `message.ack` | 消息 ack |
|
|
739
|
+
| `message.undecryptable` | P2P E2EE 解密失败 |
|
|
740
|
+
| `group.changed` | 群组事件 |
|
|
741
741
|
| `group.message_undecryptable` | 群 E2EE 解密失败 |
|
|
742
|
+
| `delivery.changed` | SDK 本地批量交付完成通知,用于合并应用层 UI 刷新 |
|
|
742
743
|
| `push.offline_message` | Push Server 收到离线唤醒批次;普通终端无需订阅 |
|
|
743
744
|
| `storage.object_changed` | Storage 对象变更事件透传 |
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
745
|
+
|
|
746
|
+
### delivery.changed
|
|
747
|
+
|
|
748
|
+
`delivery.changed` 是 Python、Go、JavaScript 和 TypeScript SDK 统一提供的本地事件,用于通知应用层一批消息已经完成交付,可以从业务仓库刷新相关会话 UI。它不替代 `message.received` / `group.message_created`:应用仍应逐条处理和持久化原消息事件,再把 `delivery.changed` 作为批量刷新信号。
|
|
749
|
+
|
|
750
|
+
该事件由 SDK 本地 dispatcher 发布,不是 Gateway 推送事件,不属于 JSON-RPC `event/...` 协议;裸 WebSocket 客户端不会收到它。
|
|
751
|
+
|
|
752
|
+
**Payload**:
|
|
753
|
+
|
|
754
|
+
```json
|
|
755
|
+
{
|
|
756
|
+
"trigger": "pull_drained",
|
|
757
|
+
"changes": [
|
|
758
|
+
{"namespace": "group:team.agentid.pub", "delivered_count": 50},
|
|
759
|
+
{"namespace": "p2p", "delivered_count": 3}
|
|
760
|
+
]
|
|
761
|
+
}
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
| 字段 | 类型 | 说明 |
|
|
765
|
+
|------|------|------|
|
|
766
|
+
| `trigger` | string | `pull_drained`、`push` 或 `inline_push` |
|
|
767
|
+
| `changes` | array | 本次刷新涉及的 namespace,按 `namespace` 稳定排序且不重复 |
|
|
768
|
+
| `changes[].namespace` | string | P2P 固定为 `p2p`;群消息为 `group:<canonical-group-aid>` |
|
|
769
|
+
| `changes[].delivered_count` | integer | 本次合并窗口内已发布到应用层的原消息事件数;不是未读数、服务端页大小或最大 seq |
|
|
770
|
+
|
|
771
|
+
触发与折叠规则:
|
|
772
|
+
|
|
773
|
+
- `pull_drained`:当前 `AUNClient` 上所有已排队或正在执行的 Pull 工作,包括后续分页、continuation、gap fill 和缺失 Sender IK 的延迟补齐,全部排空后最多发布一次。一次通知可以同时包含 P2P 和多个群 namespace,不会按 Pull 页或单个 namespace 分别通知。
|
|
774
|
+
- `push` / `inline_push`:有效实时消息在对应的 `message.received` / `group.message_created` 事件处理完成后通知;同一次有序队列 drain 放行的同类实时消息折叠为一次通知。
|
|
775
|
+
- 有效的 `push` / `inline_push` 可以原子吸收尚未通知的 Pull 变更;这些变更不会在后续 `pull_drained` 中再次通知。
|
|
776
|
+
- 空 Pull、重复或过滤消息、非法 payload、解密失败,以及未带来有效消息交付的 Head 通知,不发布 `delivery.changed`。
|
|
777
|
+
|
|
778
|
+
`delivery.changed` 只表示 UI 刷新时机,不是消息明细或持久化账本。应用仓库仍应按照原消息事件的 `(namespace, message_id)` 做幂等,并按 `seq` 排序。
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
782
|
+
## E2EE 高级 API
|
|
748
783
|
|
|
749
784
|
普通业务无需直接操作 E2EE manager;`message.send` / `group.send` 默认加密并自动解密收到的消息。
|
|
750
785
|
|
|
@@ -1899,9 +1899,24 @@ SDK 收到新 Head 后自动同步最新消息页并逐条解密;若 A 与 T
|
|
|
1899
1899
|
}
|
|
1900
1900
|
```
|
|
1901
1901
|
|
|
1902
|
-
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。当前仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` / `mention_mode` 等字段;新代码应优先通过 `msg["envelope"]["from"]`、`msg["envelope"]["timestamp"]` 等路径访问。Gateway 可能附加 `proximity` 及 `same_device` / `same_egress_ip` / `same_network`,表示由 Gateway 基于连接上下文判断的近端关系提示,不参与 E2EE AAD 或业务鉴权。
|
|
1903
|
-
|
|
1904
|
-
###
|
|
1902
|
+
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。当前仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` / `mention_mode` 等字段;新代码应优先通过 `msg["envelope"]["from"]`、`msg["envelope"]["timestamp"]` 等路径访问。Gateway 可能附加 `proximity` 及 `same_device` / `same_egress_ip` / `same_network`,表示由 Gateway 基于连接上下文判断的近端关系提示,不参与 E2EE AAD 或业务鉴权。
|
|
1903
|
+
|
|
1904
|
+
### delivery.changed
|
|
1905
|
+
|
|
1906
|
+
成功交付 `group.message_created` 后,四个 SDK 会通过本地 `delivery.changed` 事件通知应用合并刷新群会话 UI。群变更项使用 canonical group AID:
|
|
1907
|
+
|
|
1908
|
+
```json
|
|
1909
|
+
{
|
|
1910
|
+
"trigger": "pull_drained",
|
|
1911
|
+
"changes": [
|
|
1912
|
+
{"namespace": "group:g-abc123.agentid.pub", "delivered_count": 50}
|
|
1913
|
+
]
|
|
1914
|
+
}
|
|
1915
|
+
```
|
|
1916
|
+
|
|
1917
|
+
该事件不是服务端 `event/group.*`。多个群和 P2P 的 Pull 共用当前 `AUNClient` 的全局排空边界,因此一次 `pull_drained` 可以包含多个 `group:<canonical-group-aid>` 和 `p2p` 变更;有效 Push / Inline Push 则在原群消息事件处理完成后实时通知。完整 payload、折叠和零通知条件见 [06-API手册:delivery.changed](06-API手册.md#deliverychanged)。
|
|
1918
|
+
|
|
1919
|
+
### event/group.message_recalled
|
|
1905
1920
|
|
|
1906
1921
|
群消息撤回后推送给所有在线成员(与 pull 双 tombstone 兜底互补)。在线 push 是实时通道,双 tombstone 是离线 / 未读 / push 丢失时的可靠性兜底;两者最终一致,SDK 去重保证应用层只感知一次。
|
|
1907
1922
|
|
|
@@ -42,10 +42,11 @@ P2P `message.*` 的最终投递语义由连接阶段声明的 `delivery_mode`
|
|
|
42
42
|
|
|
43
43
|
## 事件索引
|
|
44
44
|
|
|
45
|
-
| 事件 | 说明 |
|
|
46
|
-
|------|------|
|
|
47
|
-
| [event/message.received](#eventmessagereceived) | 收到新消息 |
|
|
48
|
-
| [event/message.recalled](#eventmessagerecalled) | 消息被撤回 |
|
|
45
|
+
| 事件 | 说明 |
|
|
46
|
+
|------|------|
|
|
47
|
+
| [event/message.received](#eventmessagereceived) | 收到新消息 |
|
|
48
|
+
| [event/message.recalled](#eventmessagerecalled) | 消息被撤回 |
|
|
49
|
+
| [delivery.changed](#deliverychanged) | SDK 本地批量交付完成通知,用于合并 UI 刷新 |
|
|
49
50
|
|
|
50
51
|
---
|
|
51
52
|
|
|
@@ -598,12 +599,35 @@ SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;信封字段
|
|
|
598
599
|
### 订阅
|
|
599
600
|
|
|
600
601
|
```python
|
|
601
|
-
client.on("message.received", lambda msg: print(msg["payload"]))
|
|
602
|
-
```
|
|
603
|
-
|
|
604
|
-
---
|
|
605
|
-
|
|
606
|
-
##
|
|
602
|
+
client.on("message.received", lambda msg: print(msg["payload"]))
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
## delivery.changed
|
|
608
|
+
|
|
609
|
+
`delivery.changed` 是四个 SDK 的本地事件,不是 Message 服务或 Gateway 发送的 `event/...`。应用仍通过 `message.received` 逐条接收和保存 P2P 消息,再使用该事件合并刷新 UI。
|
|
610
|
+
|
|
611
|
+
```json
|
|
612
|
+
{
|
|
613
|
+
"trigger": "pull_drained",
|
|
614
|
+
"changes": [
|
|
615
|
+
{"namespace": "p2p", "delivered_count": 50}
|
|
616
|
+
]
|
|
617
|
+
}
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
- 多页自动 Pull 不按页通知;当前 `AUNClient` 的所有 Pull 工作排空后,最多发布一次 `pull_drained`。
|
|
621
|
+
- 有效 Push / Inline Push 在原消息事件处理完成后分别以 `push` / `inline_push` 通知;同一次有序队列 drain 内的同类消息会折叠。
|
|
622
|
+
- 实时通知可以吸收尚未通知的 Pull 变更,后续不会再为同一批变更发布 `pull_drained`。
|
|
623
|
+
- 空页、重复或过滤消息、非法 payload、解密失败及没有交付消息的 Head 通知不产生该事件。
|
|
624
|
+
- `delivered_count` 是合并窗口内已经发布的原消息事件数,不表示当前未读总数。
|
|
625
|
+
|
|
626
|
+
Pull 全局排空、群 namespace 和完整字段定义见 [06-API手册:delivery.changed](06-API手册.md#deliverychanged)。
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
## event/message.recalled
|
|
607
631
|
|
|
608
632
|
消息被发送方撤回时推送给**接收方**。
|
|
609
633
|
|
package/dist/agent-md.js
CHANGED
|
@@ -9,6 +9,7 @@ import { validateAgentMdDocument, verifyAgentMdUpload } from './agent-md-schema.
|
|
|
9
9
|
import { AUNError, ClientSignatureError, NotFoundError, StateError, ValidationError, } from './errors.js';
|
|
10
10
|
import { isJsonObject } from './types.js';
|
|
11
11
|
const DEFAULT_HTTP_TIMEOUT_MS = 30_000;
|
|
12
|
+
const AGENT_MD_NEGATIVE_CACHE_TTL_MS = 60_000;
|
|
12
13
|
export function buildDefaultAgentMd(aid, options = {}) {
|
|
13
14
|
const target = String(aid ?? '').trim();
|
|
14
15
|
const type = String(options.type ?? 'agent').trim() || 'agent';
|
|
@@ -734,12 +735,15 @@ export class AgentMdManager {
|
|
|
734
735
|
const target = String(aid ?? '').trim();
|
|
735
736
|
if (!target || this._hasLocalContent(target, record))
|
|
736
737
|
return;
|
|
738
|
+
const cached = record ?? this.loadRecord(target) ?? {};
|
|
739
|
+
const checkedAt = Number(cached.checked_at ?? 0) || 0;
|
|
740
|
+
if (String(cached.remote_status ?? '').trim().toLowerCase() === 'missing' && checkedAt > 0 && Date.now() - checkedAt <= AGENT_MD_NEGATIVE_CACHE_TTL_MS)
|
|
741
|
+
return;
|
|
737
742
|
if (this._downloadInflight.has(target))
|
|
738
743
|
return;
|
|
739
744
|
void this.download(target).catch((err) => {
|
|
740
745
|
this.saveRecord(target, {
|
|
741
746
|
last_error: err instanceof Error ? err.message : String(err),
|
|
742
|
-
remote_status: 'found',
|
|
743
747
|
});
|
|
744
748
|
this._log.debug(`agent.md auto download failed: aid=${target} source=${source || '-'} err=${err instanceof Error ? err.message : String(err)}`);
|
|
745
749
|
});
|
package/dist/agent-md.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAmC,MAAM,YAAY,CAAC;AAE3E,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,UAAkE,EAAE;IAEpE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACpF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC;IAC1G,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO;QACL,KAAK;QACL,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAChC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAC/B,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAC/B,kBAAkB;QAClB,gBAAgB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QAC7C,KAAK;QACL,EAAE;QACF,KAAK,IAAI,EAAE;QACX,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AACD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,MAAM,UAAU,GAAiB;IAC/B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC;AA+DF,SAAS,WAAW,CAAC,OAA+B,EAAE,IAAY;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,OAAiC;IAClD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,OAAO,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9F,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW,EAAE,UAAkB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAyC,CAAC;IAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChG,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;gBACrE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACjB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;QACxB,IAAI,CAAC;YAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACtG,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,gBAAgB;WAC1B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;WAChF,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC/G,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1G,OAAO,GAAG,MAAM,MAAM,YAAY,WAAW,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAClB,GAAW,EACX,IAOC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,cAAc,GAAyB;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,uBAAuB;SACnD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,cAAc,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBAChF,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAClD,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,OAAO,CAAC;oBACN,MAAM;oBACN,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;iBAC9C,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,QAAQ,CAAC,oCAAoC,IAAI,CAAC,SAAS,IAAI,uBAAuB,IAAI,CAAC,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAS;IACjB,UAAU,CAAU;IACpB,IAAI,CAAe;IACnB,cAAc,CAAgB;IAC9B,qBAAqB,CAAU;IAC/B,eAAe,CAAmC;IAClD,iBAAiB,CAAgC;IACjD,gBAAgB,CAA6C;IAC7D,aAAa,CAAwE;IACrF,oBAAoB,CAAiE;IACrF,aAAa,CAAyB;IACtC,MAAM,GAAyC,IAAI,GAAG,EAAE,CAAC;IACzD,iBAAiB,GAAgD,IAAI,GAAG,EAAE,CAAC;IAC3E,eAAe,GAAG,CAAC,CAAC;IACpB,gBAAgB,GAAsB,EAAE,CAAC;IAEjD,YAAY,IAA2B;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe;QAChC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjG,CAAC;IAED,IAAI,IAAI;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,eAAe,CAAC,mDAAmD,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,OAAe;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,MAAM,MAAM,GAA4B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACtH,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxH,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;oBACnE,GAAG,EAAE,MAAM;oBACX,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;iBACvB,CAAC,CAAC,CAAC;YACN,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,MAA+B;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,WAAW,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC;YACrJ,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC/C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBAClD,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC7C,IAAI,CAAC,WAAW,CAAC,UAAU;wBAAE,WAAW,CAAC,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1F,IAAI,CAAC,WAAW,CAAC,UAAU;wBAAE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnE,CAAC;gBACD,OAAO,WAAW,CAAC,OAAO,CAAC;gBAC3B,MAAM,IAAI,GAA4B,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBAC3F,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/D,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAI,OAAO;oBAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACvF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAuB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC,CAAC;QAC9F,uBAAuB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAI,MAAoD,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAClH,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG;YACpB,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,8BAA8B;YAC9C,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAuB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3E,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,uBAAuB;YAClC,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC5E,IAAI,QAAQ,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC9D,IAAI,WAAW,IAAI,WAAW,KAAK,SAAS;gBAAE,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,QAAQ,CAAC,gCAAgC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAY,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CAAC,kDAAkD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAgD,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,+CAA+C,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,OAAkC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC;YACrD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YAC1D,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC/E,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrE,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAmB,EAAE,SAAS,GAAG,uBAAuB;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,QAAQ;YAAE,OAAO,MAAM,QAAQ,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,MAAM,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAO,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QACrG,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,gBAAgB,IAAI,SAAS,KAAK,gBAAgB,CAAC,CAAC;QACvG,IAAI,YAAY,IAAI,cAAc,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5E,OAAO;gBACL,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,gBAAgB;gBAC7B,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,kBAAkB;gBACjC,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;gBACjD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC/C,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aAC/B,CAAC;QACJ,CAAC;QACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;QAC7E,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,IAAI,mBAAmB,IAAI,cAAc,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC;YACvH,OAAO;gBACL,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,EAAE;gBACjB,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aAC/B,CAAC;QACJ,CAAC;QAED,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACtG,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1I,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC;QACpG,OAAO;YACL,GAAG,EAAE,MAAM;YACX,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC;YACxC,aAAa,EAAE,YAAY;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;YACxE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;YACrE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,kBAAkB,CAAC;YAAE,OAAO;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,IAAI,GACR,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,UAAU,CAAC;YACvE,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,kBAAkB,CAAC,CAAC;QAC5F,IAAI,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAA4B,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;YAC5F,IAAI,UAAU;gBAAE,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;YAChD,IAAI,kBAAkB;gBAAE,MAAM,CAAC,aAAa,GAAG,kBAAkB,CAAC;YAClE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,MAAM,SAAS,UAAU,IAAI,GAAG,kBAAkB,kBAAkB,IAAI,GAAG,WAAW,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;IACxJ,CAAC;IAED,cAAc,CAAC,IAA6B,EAAE,QAAwB;QACpE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAClC,IAAI,YAAY,CAAC,KAA8C,CAAC,EAAE,CAAC;YACjE,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC/F,MAAM,IAAI,GAAI,KAAoB,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,IAA6C,CAAC;oBAAE,SAAS;gBAC3E,MAAM,GAAG,GAAG,IAAkB,CAAC;gBAC/B,IAAI,CAAC,WAAW,CACd,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EACrB,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EACtB,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EACnD,OAAO,GAAG,EAAE,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAAiB;QAC/B,IAAI,CAAC,YAAY,CAAC,QAAiD,CAAC;YAAE,OAAO;QAC7E,MAAM,GAAG,GAAG,QAAsB,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAiD,CAAC;YAAE,OAAO;QACjF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAsB,CAAC;QAC3C,IAAI,YAAY,CAAC,OAAO,CAAC,MAA+C,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAoB,CAAC;YAC5C,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAA4C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,WAAW,CACd,SAAS,EACT,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EACzB,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EACzD,iBAAiB,CAClB,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,CAAC,KAA8C,CAAC,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAmB,CAAC;YAC1C,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAA4C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxG,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjG,CAAC;YACD,IAAI,CAAC,WAAW,CACd,QAAQ,EACR,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EACxB,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,EACvD,gBAAgB,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAmB;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,WAAmB,EAAE,OAAe;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,IAAI,GAAG,QAAQ,CAAC;IACrD,CAAC;IAEO,SAAS;QACf,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IAEO,WAAW;QACjB,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,CAAC;IAC5C,CAAC;IAEO,IAAI,CAAC,GAAW,EAAE,UAAkB,EAAE,cAAc,GAAG,KAAK;QAClE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,6DAA6D;gBAC7D,IAAI,GAAG,WAAW,IAAI,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,OAAO;oBACpE,CAAC,CAAC,GAAG,WAAW,IAAI,WAAW,EAAE;oBACjC,CAAC,CAAC,WAAW,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3G,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,MAAM,IAAI,WAAW,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,GAAW;QACvC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,eAA+B;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,UAAU,IAAI,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;gBAAE,OAAO,OAAO,CAAC;QACzF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,UAAU,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,UAAkB;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,GAAW;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;YACpC,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,EAAE;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,IAAI,aAAa,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACpD,MAAM,IAAI,QAAQ,CAAC,8BAA8B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACvG,MAAM,IAAI,GAAsB;YAC9B,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YAC3C,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;YAC7D,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,aAAa,EAAE,OAAO;YACtB,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,SAAiB;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;YAC9D,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO;YACP,SAAS;SACV,CAAC,CAAC;QACH,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvF,uBAAuB,GAAG,IAAI,CAAC;YAC/B,QAAQ,GAAG;gBACT,GAAG,QAAQ;gBACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC5B,OAAO,EAAE;oBACP,GAAG,QAAQ,CAAC,OAAO;oBACnB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D;aACF,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;gBAC1D,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;gBACpC,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9F,MAAM,IAAI,aAAa,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,QAAQ,CAAC,kCAAkC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,sBAAsB,IAAI,IAAI,CAAC;QACpG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,OAAO,GAAI,QAAsD,CAAC,KAAK,EAAE,OAAO,IAAI,8BAA8B,CAAC;YACzH,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,EAA6B,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,MAAM,YAAY,GAAwB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACjE,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;QACzC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,oBAAoB,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,OAAO;YACP,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,oBAAoB;YACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAmB,IAAI,CAAC;QAClC,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,MAAM,WAAW,UAAU,EAAE,CAAC,CAAC;QAC5E,OAAO;YACL,GAAG,EAAE,MAAM;YACX,OAAO;YACP,YAAY;YACZ,SAAS;YACT,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,oBAAoB;YACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzD,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAAW,EAAE,MAAuC;QAC3E,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3F,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,GAAW,EAAE,MAAuC,EAAE,MAAM,GAAG,EAAE;QAClG,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAO;QAC7D,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC5D,aAAa,EAAE,OAAO;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,MAAM,WAAW,MAAM,IAAI,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,eAAe,GAAG,oBAAoB,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAC1B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC3C,CAAC;IAEO,oBAAoB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC;YAAE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEO,gBAAgB,CAAC,QAAgB,EAAE,OAAe;QACxD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvH,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,GAAG,IAAI,CAAC;YACV,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;gBACvD,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;wBAAS,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,eAAe,CAAI,GAAW,EAAE,EAAW;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAClF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACjC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,MAAM,GAAG,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACjC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK;wBAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC/D,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,CAAC;gBAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,GAAW,EAAE,MAA+B;QACvE,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAEO,mBAAmB,CAAC,GAAW;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAY,CAAC;YACzE,IAAI,CAAC,YAAY,CAAC,MAA+C,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9E,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;gBAC7E,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YACrD,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC5E,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1H,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import WebSocket from 'ws';
|
|
14
14
|
import type { CryptoProvider } from './crypto.js';
|
|
15
15
|
import type { TokenStore } from './keystore/index.js';
|
|
16
|
-
import type
|
|
16
|
+
import { type RPCTransport } from './transport.js';
|
|
17
17
|
import type { DnsResilientNet } from './net.js';
|
|
18
18
|
import { type IdentityRecord, type JsonObject, type RpcMessage, type RpcParams } from './types.js';
|
|
19
19
|
import type { ModuleLogger } from './logger.js';
|
|
@@ -31,6 +31,7 @@ export declare class AuthFlow {
|
|
|
31
31
|
private _net;
|
|
32
32
|
private _connectionFactory;
|
|
33
33
|
private _shortRpcControllers;
|
|
34
|
+
private _shortRpcActorCalls;
|
|
34
35
|
private _rootCaPath;
|
|
35
36
|
private _chainCacheTtl;
|
|
36
37
|
private _rootCerts;
|
package/dist/auth.js
CHANGED
|
@@ -16,8 +16,8 @@ import * as http from 'node:http';
|
|
|
16
16
|
import * as https from 'node:https';
|
|
17
17
|
import * as path from 'node:path';
|
|
18
18
|
import { URL, fileURLToPath } from 'node:url';
|
|
19
|
-
import WebSocket from 'ws';
|
|
20
19
|
import { AuthError, StateError, ValidationError, mapRemoteError } from './errors.js';
|
|
20
|
+
import { shortRpcViaNetworkActor } from './transport.js';
|
|
21
21
|
import { isJsonObject, } from './types.js';
|
|
22
22
|
import { VERSION as AUN_SDK_VERSION } from './version.js';
|
|
23
23
|
const _noopLogger = {
|
|
@@ -248,48 +248,6 @@ function _httpGet(url, verifySsl) {
|
|
|
248
248
|
}
|
|
249
249
|
const SHORT_RPC_BUFFER = Symbol('shortRpcBuffer');
|
|
250
250
|
const SHORT_RPC_BUFFER_HANDLER = Symbol('shortRpcBufferHandler');
|
|
251
|
-
function _defaultConnectionFactory(url, signal) {
|
|
252
|
-
return new Promise((resolve, reject) => {
|
|
253
|
-
if (signal?.aborted) {
|
|
254
|
-
reject(new AuthError('short RPC cancelled'));
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
const ws = new WebSocket(url, {
|
|
258
|
-
handshakeTimeout: 5000,
|
|
259
|
-
rejectUnauthorized: false,
|
|
260
|
-
});
|
|
261
|
-
const bufferedMessages = [];
|
|
262
|
-
const bufferHandler = (data) => { bufferedMessages.push(data); };
|
|
263
|
-
ws[SHORT_RPC_BUFFER] = bufferedMessages;
|
|
264
|
-
ws[SHORT_RPC_BUFFER_HANDLER] = bufferHandler;
|
|
265
|
-
ws.on('message', bufferHandler);
|
|
266
|
-
let settled = false;
|
|
267
|
-
const cleanup = () => {
|
|
268
|
-
ws.off('open', onOpen);
|
|
269
|
-
ws.off('error', onError);
|
|
270
|
-
signal?.removeEventListener('abort', onAbort);
|
|
271
|
-
};
|
|
272
|
-
const finish = (callback) => {
|
|
273
|
-
if (settled)
|
|
274
|
-
return;
|
|
275
|
-
settled = true;
|
|
276
|
-
cleanup();
|
|
277
|
-
callback();
|
|
278
|
-
};
|
|
279
|
-
const onOpen = () => finish(() => resolve(ws));
|
|
280
|
-
const onError = (err) => finish(() => reject(new AuthError(`websocket connect failed: ${err.message}`)));
|
|
281
|
-
const onAbort = () => finish(() => {
|
|
282
|
-
ws.once('error', () => { });
|
|
283
|
-
ws.terminate();
|
|
284
|
-
reject(new AuthError('short RPC cancelled'));
|
|
285
|
-
});
|
|
286
|
-
ws.on('open', onOpen);
|
|
287
|
-
ws.on('error', onError);
|
|
288
|
-
signal?.addEventListener('abort', onAbort, { once: true });
|
|
289
|
-
if (signal?.aborted)
|
|
290
|
-
onAbort();
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
251
|
// ── AuthFlow ──────────────────────────────────────────────────
|
|
294
252
|
export class AuthFlow {
|
|
295
253
|
static _INSTANCE_STATE_FIELDS = [
|
|
@@ -308,6 +266,7 @@ export class AuthFlow {
|
|
|
308
266
|
_net;
|
|
309
267
|
_connectionFactory;
|
|
310
268
|
_shortRpcControllers = new Set();
|
|
269
|
+
_shortRpcActorCalls = new Set();
|
|
311
270
|
_rootCaPath;
|
|
312
271
|
_chainCacheTtl;
|
|
313
272
|
// 根证书(启动时加载)
|
|
@@ -331,7 +290,7 @@ export class AuthFlow {
|
|
|
331
290
|
this._aid = opts.aid ?? null;
|
|
332
291
|
this._deviceId = String(opts.deviceId ?? '').trim();
|
|
333
292
|
this._slotId = String(opts.slotId ?? '').trim();
|
|
334
|
-
this._connectionFactory = opts.connectionFactory ??
|
|
293
|
+
this._connectionFactory = opts.connectionFactory ?? null;
|
|
335
294
|
this._rootCaPath = opts.rootCaPath ?? null;
|
|
336
295
|
this._net = opts.net ?? null;
|
|
337
296
|
this._verifySsl = opts.verifySsl ?? false;
|
|
@@ -395,6 +354,8 @@ export class AuthFlow {
|
|
|
395
354
|
_cancelPending() {
|
|
396
355
|
for (const controller of this._shortRpcControllers)
|
|
397
356
|
controller.abort();
|
|
357
|
+
for (const call of this._shortRpcActorCalls)
|
|
358
|
+
call.cancel();
|
|
398
359
|
this._net?._cancelPending?.();
|
|
399
360
|
}
|
|
400
361
|
/**
|
|
@@ -766,6 +727,31 @@ export class AuthFlow {
|
|
|
766
727
|
*/
|
|
767
728
|
async _shortRpc(gatewayUrl, method, params) {
|
|
768
729
|
this._logger.debug(`_shortRpc enter: method=${method}, gateway=${gatewayUrl}`);
|
|
730
|
+
if (this._connectionFactory === null) {
|
|
731
|
+
const call = shortRpcViaNetworkActor(gatewayUrl, method, params);
|
|
732
|
+
this._shortRpcActorCalls.add(call);
|
|
733
|
+
try {
|
|
734
|
+
const message = await call;
|
|
735
|
+
this._logger.debug(`short RPC response full: method=${method} ${JSON.stringify(_redactRpcLogPayload(message))}`);
|
|
736
|
+
if (message.error !== undefined) {
|
|
737
|
+
if (!isJsonObject(message.error)) {
|
|
738
|
+
throw new ValidationError(`invalid JSON-RPC error response for ${method}`);
|
|
739
|
+
}
|
|
740
|
+
throw mapRemoteError(message.error);
|
|
741
|
+
}
|
|
742
|
+
const result = isJsonObject(message.result) ? message.result : null;
|
|
743
|
+
if (result === null) {
|
|
744
|
+
throw new ValidationError(`invalid pre-auth response for ${method}`);
|
|
745
|
+
}
|
|
746
|
+
if (result.success === false) {
|
|
747
|
+
throw new AuthError(String(result.error || `${method} failed`), { data: result });
|
|
748
|
+
}
|
|
749
|
+
return result;
|
|
750
|
+
}
|
|
751
|
+
finally {
|
|
752
|
+
this._shortRpcActorCalls.delete(call);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
769
755
|
const controller = new AbortController();
|
|
770
756
|
this._shortRpcControllers.add(controller);
|
|
771
757
|
let ws = null;
|