diff --git a/.gitignore b/.gitignore
index 3edfba339..7cca4bc58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,33 +1,34 @@
-# Build and Release Folders
-bin-debug/
-bin-release/
-[Oo]bj/
-[Bb]in/
-
-# Other files and folders
-.settings/
-
-# Executables
-*.swf
-*.air
-*.ipa
-*.apk
-
-# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
-# should NOT be excluded as they contain compiler settings and other important
-# information for Eclipse / Flash Builder.
-
-/.idea
-/.codex-tasks
-/.trellis
-/.claude
-/.agent
-/.shared
-/.cursor
-/.codex
-/.agents
-/server/.spool
-/server/.claude
-/.spool
-TUICallKit-Vue3/.env
-/.codegraph
+# Build and Release Folders
+bin-debug/
+bin-release/
+[Oo]bj/
+[Bb]in/
+
+# Other files and folders
+.settings/
+
+# Executables
+*.swf
+*.air
+*.ipa
+*.apk
+
+# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
+# should NOT be excluded as they contain compiler settings and other important
+# information for Eclipse / Flash Builder.
+# 测试临时目录
+app/.test-tmp-stream/
+/.idea
+/.codex-tasks
+/.trellis
+/.claude
+/.agent
+/.shared
+/.cursor
+/.codex
+/.agents
+/server/.spool
+/server/.claude
+/.spool
+TUICallKit-Vue3/.env
+/.codegraph
diff --git a/.workbuddy/memory/2026-08-20.md b/.workbuddy/memory/2026-08-20.md
new file mode 100644
index 000000000..fc7c1f57d
--- /dev/null
+++ b/.workbuddy/memory/2026-08-20.md
@@ -0,0 +1,59 @@
+# 2026-08-20 — 医生工作站 AI 问诊对话框布局优化
+
+## 改动
+- 文件: `app/src/doctor_workstation/ui/dialogs/ai_consult.py`
+- 模块: `AiConsultDialog` 右侧「智能分析」卡片 + 问诊对话卡片密度优化
+- 新增 helpers: `_InsightItem`, `_split_insight_segments`, `_split_numbered_list`, `_split_plain_paragraph`, `_split_label_or_sentence`, `_escape_html`
+- `_set_insights` 改成将稠密段落拆成 lead / list / plain 三类, 每类单独 QLabel 显示
+- CSS 新增 `AiConsultInsightMarker` / `AiConsultInsightText` / `AiConsultInsightPlaceholder`
+- 卡片 padding `10,8,10,8` → `14,12,14,14`; 卡间距 `8` → `10`
+- 聊天气泡垂直 margin `4` → `6`, chat_layout spacing `10` → `12`
+
+## 拆分策略
+- 文本以 `1./2、/3)/4)` 起头 → 视为完整编号列表
+- 文本中嵌入 `…:1.…2.…` → 拆出序言 + 编号列表
+- 短中文标签 `XX:YY` 开头 → 视为 lead, 标签部分加粗
+- 其余按 `。/;/;/` 分句 → 单独成行
+
+## 测试
+- 现有 `tests/test_ai_consult_ui.py` 通过 `widget.objectName() == "AiConsultRecordTitle"` 校验标题仍在, 未受影响
+- 暂未运行 UI 测试 (开发环境未装 PySide6); 解析逻辑单独脚本验证通过
+
+## 注意
+- PySide6 QSS 对 `QLabel` 的 `line-height` 支持有限; 主要靠 item 间距 `8px` 与 `padding:1px 0` 提供节奏
+- 如果后续接入 `AiConsultInsightText` 还嫌密集, 可再调 `body_host.setSpacing`
+
+---
+
+# 接诊台 AI 智能分析详情对话框 (`ReceptionAiAnalysisDialog`) 优化
+用户截图(`clipboard-2026-08-20T08-42-40`...)反馈: 「问诊详情 → AI 智能分析」卡片里的诊断建议 / 风险评估 / 治疗建议三段文字太稠密, 不利于阅读。
+
+## 关键差异
+这次的目标文件和上次不同 — 用户截图里出现 "诊断建议 / 风险评估 / 治疗建议" 标题, 而 `ai_consult.py` 用的是 "血糖控制评估 / 并发症风险评估 / 用药合理性评估"。实际是 `app/src/doctor_workstation/ui/pages/reception.py` 中的 `_ReceptionAiAnalysisDialog` 类。
+
+## 改动
+- 文件: `app/src/doctor_workstation/ui/pages/reception.py`
+- 新增 helpers (与 ai_consult.py 类似但导出名加 `_ai_` 前缀):
+ - `_ai_split_into_segments` / `_ai_split_numbered_list` / `_ai_split_plain_paragraph`
+ - `_ai_segments_to_html` / `_ai_narrative_structured_html`
+ - `_ai_split_label_or_sentence` / `_ai_escape_html`
+ - 正则: `_AI_INSIGHT_LIST_RE`, `_AI_INSIGHT_LIST_LOOKAHEAD_RE`, `_AI_INSIGHT_LABEL_RE`
+- `add_text_section` 闭包内多挂一个 RichText `_structured_labels[name]` 标签 (`.setObjectName(name + "Structured")`, `property="dialogAiStructured"`)
+- 原 PlainText `value_label` 仍存在 (`hide()` + `setMaximumHeight(0)`) 用于兼容既有 findChild 测试
+- `_render_model` 同步刷新两个结构化标签; 空 HTML 时回退显示原 label 文本
+- 风险评估 FlowLayout spacing `7×7` → `9×9`
+- `body_layout.setSpacing` `12` → `14`
+- 卡片 contentsMargins `14,13,16,15` → `16,14,18,16`
+- QSS: `dialogAiBody` 加 `line-height: 1.85`, 新增 `dialogAiStructured` 选择器 (line-height 175%); 风险 pill `min-height` `28` → `30`, padding `4 10` → `5 12`, font 12 → 12.5, border-radius `7` → `8`
+
+## 兼容约束
+- `tests/test_reception_parity_ui.py` 严格校验:
+ - `findChild(QLabel, "ReceptionAiAnalysisDialogDiagnosisText")` 必须能找到
+ - `.text()` 必须等于 `_ai_narrative_text` 归一化结果
+ - `.textFormat() == Qt.TextFormat.PlainText`
+- 因此 PlainText 标签必须原样保留, 仅做 `.hide()` + `setMaximumHeight(0)` (避免 QSS `>` 子选择器不被 Qt 支持)
+
+## 验证
+- `py_compile` 通过, 无 `SyntaxWarning`
+- 单独脚本跑过 4 组样本文本 (稠密段落 / 嵌入式编号列表 / 短句 / 纯编号列表), 拆分结果符合预期
+- 未在本机跑 UI 测试 (缺 PySide6)
diff --git a/admin/src/views/first_visit/conversion/index.vue b/admin/src/views/first_visit/conversion/index.vue
index 246348e99..3100bff4f 100644
--- a/admin/src/views/first_visit/conversion/index.vue
+++ b/admin/src/views/first_visit/conversion/index.vue
@@ -145,7 +145,7 @@
明细数据列表
-
展开部门可查看人员明细;加粉=总进线=区间有效加粉(按员工+客户去重,须会话同意,剔除已删客户、继承客户、扫一扫/搜手机号/名片分享添加及区间前已加过的重加);挂号=已支付且实收低于 10 元的订单,预约=有效预约记录;开口率=开口/加粉,挂号率=挂号/加粉,面诊率=面诊/挂号(看挂号后流失),预约率=面诊/预约(看预约后未面诊),面诊接诊率=接诊诊单/面诊,接诊率=接诊诊单/总进线
+
展开部门可查看人员明细;加粉=总进线=区间有效加粉(按员工+客户去重,剔除已删客户、继承客户、扫一扫/搜手机号/名片分享添加及区间前已加过的重加);挂号=已支付且实收低于 10 元的订单,预约=有效预约记录;开口率=开口/加粉,挂号率=挂号/加粉,面诊率=面诊/挂号(看挂号后流失),预约率=面诊/预约(看预约后未面诊),面诊接诊率=接诊诊单/面诊,接诊率=接诊诊单/总进线
{{ dashboard.rows.length }} 个顶层节点
@@ -335,7 +335,7 @@ const timeOptions = [
{ label: '自定义', value: 'custom' }
]
const metricCards: Array<{ key: string; label: string; type: MetricType; hint: string }> = [
- { key: 'add_fans_count', label: '加粉数', type: 'count', hint: '区间有效加粉:去重,须会话同意,剔除已删客户、继承客户、扫一扫/搜手机号/名片分享添加及区间前已加过的重加' },
+ { key: 'add_fans_count', label: '加粉数', type: 'count', hint: '区间有效加粉:去重,剔除已删客户、继承客户、扫一扫/搜手机号/名片分享添加及区间前已加过的重加' },
{ key: 'total_open_count', label: '开口数', type: 'count', hint: '来源于个人业绩录入' },
{ key: 'interview_count', label: '面诊', type: 'count', hint: '已完成预约' },
{ key: 'completed_order_count', label: '接诊诊单', type: 'count', hint: '业务订单,按创建人归属并过滤无效单' },
diff --git a/admin/src/views/patient/reception/index.vue b/admin/src/views/patient/reception/index.vue
index cc8ff7d28..f5a0193d4 100644
--- a/admin/src/views/patient/reception/index.vue
+++ b/admin/src/views/patient/reception/index.vue
@@ -215,6 +215,7 @@ const PAGE_SIZE = 15
interface QueueRow {
id: number
patient_id: number
+ source_patient_id?: number
patient_name: string
patient_phone?: string
diagnosis_id?: number
@@ -436,19 +437,25 @@ const handleSearch = async () => {
}
const handleCall = async (row: QueueRow) => {
- if (!row.patient_id) {
+ const sourcePatientId = Number(row.source_patient_id || 0)
+ const diagnosisId = Number(row.diagnosis_id || 0)
+ if (!sourcePatientId) {
feedback.msgWarning('患者信息不完整')
return
}
+ if (!diagnosisId) {
+ feedback.msgWarning('预约信息不完整,无法发起聊天')
+ return
+ }
try {
const res = await getCallSignature({
- patient_id: row.patient_id,
- diagnosis_id: row.diagnosis_id || row.id
+ patient_id: sourcePatientId,
+ diagnosis_id: diagnosisId
})
chatDialogRef.value?.open({
- patientId: row.patient_id,
+ patientId: sourcePatientId,
patientName: row.patient_name,
- diagnosisId: row.diagnosis_id || row.id,
+ diagnosisId,
signatureData: res
})
} catch (error: any) {
diff --git a/admin/src/views/tcm/appointment/list.vue b/admin/src/views/tcm/appointment/list.vue
index 8c9c07a0a..5d16ccea6 100644
--- a/admin/src/views/tcm/appointment/list.vue
+++ b/admin/src/views/tcm/appointment/list.vue
@@ -996,34 +996,34 @@ const handleEdit = (row: any) => {
}
// 聊天
-const handleChat = async (row: any) => {
- if (!row.patient_id) {
- feedback.msgWarning('患者信息不完整')
- return
- }
-
- // 检查是否有诊单ID
- if (!row.diagnosis_id && !row.id) {
- feedback.msgWarning('预约信息不完整,无法发起聊天')
- return
- }
-
- try {
- // 获取聊天签名信息
- const res = await getCallSignature({
- patient_id: row.patient_id,
- diagnosis_id: row.diagnosis_id || row.id
- })
-
- console.log('获取聊天签名成功:', res)
-
- // 直接打开聊天对话框,传入必要的参数
- chatDialogRef.value?.open({
- patientId: row.patient_id,
- patientName: row.patient_name,
- diagnosisId: row.diagnosis_id || row.id,
- signatureData: res // 传入签名数据
- })
+const handleChat = async (row: any) => {
+ const sourcePatientId = Number(row.source_patient_id || 0)
+ const diagnosisId = Number(row.diagnosis_id || 0)
+ if (!sourcePatientId) {
+ feedback.msgWarning('患者信息不完整')
+ return
+ }
+ if (!diagnosisId) {
+ feedback.msgWarning('预约信息不完整,无法发起聊天')
+ return
+ }
+
+ try {
+ // 获取聊天签名信息
+ const res = await getCallSignature({
+ patient_id: sourcePatientId,
+ diagnosis_id: diagnosisId
+ })
+
+ console.log('获取聊天签名成功:', res)
+
+ // 直接打开聊天对话框,传入必要的参数
+ chatDialogRef.value?.open({
+ patientId: sourcePatientId,
+ patientName: row.patient_name,
+ diagnosisId,
+ signatureData: res // 传入签名数据
+ })
} catch (error: any) {
console.error('获取聊天签名失败:', error)
feedback.msgError(error.message || '获取聊天签名失败')
diff --git a/admin/src/views/tcm/appointment/list_h5.vue b/admin/src/views/tcm/appointment/list_h5.vue
index c1c5eab84..bc70429c7 100644
--- a/admin/src/views/tcm/appointment/list_h5.vue
+++ b/admin/src/views/tcm/appointment/list_h5.vue
@@ -642,22 +642,28 @@ const handleEdit = (row: any) => {
}
editRef.value?.open('edit', row.patient_id)
}
-const handleChat = async (row: any) => {
- if (!row.patient_id) {
- feedback.msgWarning('患者信息不完整')
- return
- }
- try {
- const res = await getCallSignature({
- patient_id: row.patient_id,
- diagnosis_id: row.diagnosis_id || row.id
- })
- chatDialogRef.value?.open({
- patientId: row.patient_id,
- patientName: row.patient_name,
- diagnosisId: row.diagnosis_id || row.id,
- signatureData: res
- })
+const handleChat = async (row: any) => {
+ const sourcePatientId = Number(row.source_patient_id || 0)
+ const diagnosisId = Number(row.diagnosis_id || 0)
+ if (!sourcePatientId) {
+ feedback.msgWarning('患者信息不完整')
+ return
+ }
+ if (!diagnosisId) {
+ feedback.msgWarning('预约信息不完整,无法发起聊天')
+ return
+ }
+ try {
+ const res = await getCallSignature({
+ patient_id: sourcePatientId,
+ diagnosis_id: diagnosisId
+ })
+ chatDialogRef.value?.open({
+ patientId: sourcePatientId,
+ patientName: row.patient_name,
+ diagnosisId,
+ signatureData: res
+ })
} catch (e: any) {
feedback.msgError(e?.msg || e?.message || '获取通话签名失败')
}
diff --git a/admin/tsconfig.tsbuildinfo b/admin/tsconfig.tsbuildinfo
index 28b249897..73d5761d6 100644
--- a/admin/tsconfig.tsbuildinfo
+++ b/admin/tsconfig.tsbuildinfo
@@ -1 +1 @@
-{"fileNames":["./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es5.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.full.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/hmrpayload.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/customevent.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/hot.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/importglob.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/importmeta.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/client.d.ts","./global.d.ts","./node_modules/.pnpm/@vue+shared@3.5.33/node_modules/@vue/shared/dist/shared.d.ts","./node_modules/.pnpm/@babel+types@7.29.0/node_modules/@babel/types/lib/index.d.ts","./node_modules/.pnpm/@babel+parser@7.29.3/node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/.pnpm/@vue+compiler-core@3.5.33/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","./node_modules/.pnpm/@vue+compiler-dom@3.5.33/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","./node_modules/.pnpm/@vue+reactivity@3.5.33/node_modules/@vue/reactivity/dist/reactivity.d.ts","./node_modules/.pnpm/@vue+runtime-core@3.5.33/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","./node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","./node_modules/.pnpm/@vue+runtime-dom@3.5.33/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/dist/vue.d.mts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/jsx-runtime/index.d.ts","./node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts","./node_modules/.pnpm/vue-router@4.6.4_vue@3.5.33_typescript@5.7.3_/node_modules/vue-router/dist/router-cwonjprp.d.mts","./node_modules/.pnpm/vue-router@4.6.4_vue@3.5.33_typescript@5.7.3_/node_modules/vue-router/dist/vue-router.d.mts","./node_modules/.pnpm/@vueuse+shared@12.7.0_typescript@5.7.3/node_modules/@vueuse/shared/index.d.mts","./node_modules/.pnpm/@vueuse+core@12.7.0_typescript@5.7.3/node_modules/@vueuse/core/index.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-cn.d.ts","./src/enums/appenums.ts","./node_modules/.pnpm/vue-demi@0.14.10_vue@3.5.33_typescript@5.7.3_/node_modules/vue-demi/lib/index.d.ts","./node_modules/.pnpm/pinia@2.3.1_typescript@5.7.3_vue@3.5.33_typescript@5.7.3_/node_modules/pinia/dist/pinia.d.ts","./node_modules/.pnpm/axios@1.16.0/node_modules/axios/index.d.ts","./node_modules/@types/lodash/common/common.d.ts","./node_modules/@types/lodash/common/array.d.ts","./node_modules/@types/lodash/common/collection.d.ts","./node_modules/@types/lodash/common/date.d.ts","./node_modules/@types/lodash/common/function.d.ts","./node_modules/@types/lodash/common/lang.d.ts","./node_modules/@types/lodash/common/math.d.ts","./node_modules/@types/lodash/common/number.d.ts","./node_modules/@types/lodash/common/object.d.ts","./node_modules/@types/lodash/common/seq.d.ts","./node_modules/@types/lodash/common/string.d.ts","./node_modules/@types/lodash/common/util.d.ts","./node_modules/@types/lodash/index.d.ts","./src/config/index.ts","./src/enums/pageenum.ts","./src/enums/requestenums.ts","./src/api/user.ts","./src/enums/cacheenums.ts","./src/utils/validate.ts","./src/stores/modules/multipletabs.ts","./src/utils/cache.ts","./src/utils/auth.ts","./src/stores/modules/user.ts","./src/config/setting.ts","./src/utils/theme.ts","./src/stores/modules/setting.ts","./src/layout/default/components/setting/drawer.vue","./src/layout/default/components/setting/index.vue","./src/hooks/usewatchroute.ts","./src/layout/default/components/header/breadcrumb.vue","./src/layout/default/components/header/fold.vue","./src/layout/default/components/header/full-screen.vue","./src/hooks/usemultipletabs.ts","./src/layout/default/components/header/multiple-tabs.vue","./src/layout/default/components/header/refresh.vue","./src/api/setting/system.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/aria.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/date.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/event.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/key.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/size.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/column-alignment.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/form.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/typescript.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/runtime.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/aria.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/event.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/position.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/scroll.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/style.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/element.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/global-node.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/add-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/aim.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/alarm-clock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/apple.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-down-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-down.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-left-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-right-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-up-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/avatar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/back.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/baseball.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/basketball.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bell-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bell.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bicycle.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bowl.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/briefcase.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/brush-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/brush.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/burger.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/calendar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/camera-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/camera.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-bottom.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-top.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cellphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-dot-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-dot-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-line-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-line-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/check.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cherry.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chicken.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chrome-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-check-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-check.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-close-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-close.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-plus-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/clock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/close-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/close.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coffee-cup.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coffee.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coin.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cold-drink.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/collection-tag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/collection.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/comment.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/compass.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/connection.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coordinate.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/copy-document.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cpu.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/credit-card.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/crop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-arrow-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-arrow-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-caret.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-analysis.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-board.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-line.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dessert.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/discount.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dish-dot.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dish.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-add.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-copy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/download.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/drizzling.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/edit-pen.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/edit.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/eleme-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/eleme.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/element-plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/expand.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/failed.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/female.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/files.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/film.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/filter.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/finished.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/first-aid-kit.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/flag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-add.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-opened.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/food.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/football.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fork-spoon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fries.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/full-screen.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-square-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/gold-medal.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goods-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goods.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/grape.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/grid.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/guide.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/handbag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/headset.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/help-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/help.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/hide.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/histogram.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/home-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/hot-water.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/house.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-drink.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-tea.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/info-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/iphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/key.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/knife-fork.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lightning.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/link.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/list.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/loading.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location-information.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lollipop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/magic-stick.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/magnet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/male.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/management.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/map-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/medal.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/memo.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/menu.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/message-box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/message.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mic.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/microphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/milk-tea.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/minus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/money.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/monitor.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/moon-night.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/moon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/more-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/more.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mostly-cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mouse.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mug.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mute-notification.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mute.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/no-smoking.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/notebook.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/notification.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/odometer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/office-building.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/open.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/operation.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/opportunity.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/orange.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/paperclip.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/partly-cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pear.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/phone-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/phone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture-rounded.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pie-chart.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/place.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/platform.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pointer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/position.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/postcard.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pouring.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/present.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/price-tag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/printer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/promotion.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/quartz-watch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/question-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/rank.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/reading-lamp.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/reading.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refrigerator.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/remove-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/scale-to-original.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/school.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/scissor.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/search.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/select.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sell.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/semi-select.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/service.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/set-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/setting.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/share.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ship.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-bag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-cart-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-cart.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-trolley.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/smoking.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/soccer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sold-out.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort-down.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/stamp.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/star-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/star.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/stopwatch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/success-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sugar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/suitcase-line.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/suitcase.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunny.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunrise.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunset.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch-button.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/takeaway-box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ticket.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/tickets.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/timer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/toilet-paper.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/tools.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trend-charts.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trophy-base.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trophy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/turn-off.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/umbrella.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/unlock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/upload-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/upload.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/user-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/user.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/van.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-camera-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-camera.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-pause.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-play.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/view.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wallet-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wallet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warn-triangle-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warning-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warning.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/watch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/watermelon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wind-power.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/zoom-in.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/zoom-out.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/index.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/typescript.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/install.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/refs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/size.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/validator.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/vnode.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/index.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/index.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/add.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/after.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ary.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assign.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assignin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assigninwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assignwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/at.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/attempt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/before.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bind.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bindall.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bindkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/camelcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/capitalize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/castarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ceil.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/chain.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/chunk.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clamp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clone.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonedeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonedeepwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/compact.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/concat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/cond.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/conforms.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/conformsto.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/constant.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/countby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/create.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/curry.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/curryright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/debounce.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/deburr.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaults.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaultsdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaultto.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/delay.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/difference.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/differenceby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/differencewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/divide.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/drop.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/dropright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/droprightwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/dropwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/each.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/eachright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/endswith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/entries.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/entriesin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/eq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/escape.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/escaperegexp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/every.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/extend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/extendwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/fill.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/filter.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/find.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlast.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlastindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlastkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/first.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmapdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmapdepth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatten.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flattendeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flattendepth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/floor.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flow.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flowright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/foreach.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/foreachright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forinright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forown.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forownright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/frompairs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/functions.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/functionsin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/get.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/groupby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/gt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/gte.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/has.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/hasin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/head.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/identity.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/includes.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/indexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/initial.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/inrange.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersection.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersectionby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersectionwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invert.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invertby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invoke.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invokemap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarguments.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraybuffer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraylike.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraylikeobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isboolean.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isbuffer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isdate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iselement.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isempty.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isequal.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isequalwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iserror.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isfinite.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isfunction.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/islength.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismatch.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismatchwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnan.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnative.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnil.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnull.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnumber.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isobjectlike.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isplainobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isregexp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/issafeinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isstring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/issymbol.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/istypedarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isundefined.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isweakmap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isweakset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iteratee.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/join.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/kebabcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keyby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keys.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keysin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/last.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lastindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lowercase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lowerfirst.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lte.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/map.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mapkeys.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mapvalues.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/matches.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/matchesproperty.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/max.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/maxby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mean.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/meanby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/memoize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/merge.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mergewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/method.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/methodof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/min.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/minby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mixin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/multiply.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/negate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/noop.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/now.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/nth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ntharg.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/omit.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/omitby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/once.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/orderby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/over.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/overargs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/overevery.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/oversome.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pad.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/padend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/padstart.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/parseint.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partial.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partialright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partition.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pick.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pickby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/property.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/propertyof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pull.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullall.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullallby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullallwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/random.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/range.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rangeright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rearg.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reduce.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reduceright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/remove.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/repeat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/replace.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rest.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/result.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reverse.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/round.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sample.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/samplesize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/set.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/setwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/shuffle.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/size.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/slice.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/snakecase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/some.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindexby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindexby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sorteduniq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sorteduniqby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/split.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/spread.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/startcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/startswith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubfalse.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubstring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubtrue.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/subtract.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sum.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sumby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tail.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/take.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takeright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takerightwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takewhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/template.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/templatesettings.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/throttle.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/thru.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/times.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tofinite.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tointeger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tolength.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tolower.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tonumber.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topairs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topairsin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topath.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toplainobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tosafeinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tostring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toupper.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/transform.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trim.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trimend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trimstart.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/truncate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unary.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unescape.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/union.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unionby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unionwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqueid.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unzip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unzipwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/update.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/updatewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uppercase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/upperfirst.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/values.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/valuesin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/without.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/words.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/wrap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xor.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xorby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xorwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipobjectdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/index.d.ts","./node_modules/.pnpm/lodash-unified@1.0.3_@types_168785b94d783e1b7a7274df40d5f9d9/node_modules/lodash-unified/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/arrays.d.ts","./node_modules/.pnpm/@vueuse+shared@12.0.0_typescript@5.7.3/node_modules/@vueuse/shared/index.d.mts","./node_modules/.pnpm/@vueuse+core@12.0.0_typescript@5.7.3/node_modules/@vueuse/core/index.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/browser.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/error.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/functions.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/i18n.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/objects.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/raf.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/rand.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/strings.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/throttlebyraf.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/easings.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/numbers.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/src/affix.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/src/affix.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/alert.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/alert.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor-link.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor-link.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/input.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/input.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/enums.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/popperoffsets.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/flip.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/hide.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/offset.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/eventlisteners.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/computestyles.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/arrow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/preventoverflow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/applystyles.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/types.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/utils/detectoverflow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/createpopper.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/popper-lite.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/popper.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/popper.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/popper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/arrow.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/trigger.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/trigger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/arrow.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar-group-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/backtop.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/backtop.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/badge.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/badge.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/instances.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/calendar.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/locale/types.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/locale/index.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/calendar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/date-table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/date-table.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/card.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/card.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/node.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/menu.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/config.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/index.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-attrs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-calc-input-width/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-deprecated/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-draggable/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-focus/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/en.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/af.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ar-eg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/az.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/bg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/bn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ca.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ckb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/cs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/da.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/de.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/el.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/eo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/es.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/et.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/eu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fa.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/he.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hy-am.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/id.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/it.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ja.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/kk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/km.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ko.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ku.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ky.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lt.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lv.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/mg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/mn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ms.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/my.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/nb-no.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/nl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/no.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pa.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pt-br.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pt.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ro.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ru.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sv.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sw.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ta.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/te.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/th.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/tk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/tr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ug-cn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/uk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/uz-uz.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/vi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-tw.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-hk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-mo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-locale/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-namespace/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-lockscreen/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-modal/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-model-toggle/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-prevent-global/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-prop/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-popper/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-same-target/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-teleport/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-throttle-render/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-timeout/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-transition-fallthrough/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-id/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-escape-keydown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-popper-container/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-intermediate-render/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-delayed-toggle/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-forward-ref/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-z-index/index.d.ts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts","./node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts","./node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-floating/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-cursor/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-ordered-children/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-size/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-focus-controller/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-composition/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-empty-values/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-aria/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/instances.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/src/check-tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/src/check-tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/src/col.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/src/col.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse-transition/src/collapse-transition.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse-transition/index.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/interfaces.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/index.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/css-color-names.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/readability.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/to-ms-filter.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/from-ratio.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/format-input.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/random.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/conversion.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/public_api.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/utils/color.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/color-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/trigger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/tooltip.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/tooltip.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/src/color-picker.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/src/color-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog-content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/use-dialog.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/src/message.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/src/message.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/src/link.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/src/link.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/store/tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/store/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-header/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-layout.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-column/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/scrollbar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/scrollbar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/thumb.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/thumb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/index.d.ts","./node_modules/.pnpm/normalize-wheel-es@1.2.0/node_modules/normalize-wheel-es/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/mousewheel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-body/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-footer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/h-helper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-column/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/tablecolumn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/config-provider-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/config-provider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/hooks/use-global-config.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/container.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/aside.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/footer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/header.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/main.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/src/countdown.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/src/countdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/common/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/common/picker.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/utils.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/composables/use-common-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/time-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/props/date-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/date-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/date-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/src/divider.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/src/divider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/src/drawer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/src/drawer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/src/icon.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/src/icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown-menu.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/empty.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/empty.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/utils.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form.d.ts","./node_modules/.pnpm/async-validator@4.2.5/node_modules/async-validator/dist-types/interface.d.ts","./node_modules/.pnpm/async-validator@4.2.5/node_modules/async-validator/dist-types/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/use-form-common-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/use-form-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/src/image-viewer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/src/image-viewer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/src/image.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/src/image.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/input-tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/input-tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/sub-menu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/overlay/src/overlay.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/overlay/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/src/page-header.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/src/page-header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/src/pagination.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/src/popconfirm.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/src/popconfirm.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/src/progress.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/src/progress.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-button.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/src/rate.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/src/rate.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/src/result.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/src/result.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/row.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/fixed-size-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/dynamic-size-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/fixed-size-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/hooks/use-cache.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/builders/build-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/dynamic-size-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select.types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select-dropdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/token.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/useprops.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/select.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/token.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/slider.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/marker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/slider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/composables/use-marks.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/space.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/use-space.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/src/statistic.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/src/statistic.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/steps.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/steps.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/src/switch.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/src/switch.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/common.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-scrollbar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-columns.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/sort-icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/expand-icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table-v2.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/auto-resizer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/private.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-data.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-styles.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-auto-resize.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/use-table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/renderers/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/auto-resizer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-pane.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-pane.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-bar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-bar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-nav.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tabs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/src/text.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/src/text.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/src/time-select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/src/time-select.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer-panel.vue.d.ts","./node_modules/.pnpm/vue-component-type-helpers@3.2.8/node_modules/vue-component-type-helpers/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/usedragnode.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/tree-store.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/node.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/virtual-tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/tree.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/ajax.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-list.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-dragger.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-dragger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/src/watermark.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/src/watermark.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/tour.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/tour.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/step.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/step.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/segmented.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/segmented.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/helper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/mention.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/mention.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/splitter.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/splitter.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/split-panel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/split-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/infinite-scroll/src/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/infinite-scroll/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/loading.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/service.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/directive.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/src/message-box.type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/src/messagebox.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/src/notification.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/src/notification.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/popover.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/popover.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/directive.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/src/autocomplete.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/src/autocomplete.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/click-outside/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/repeat-click/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/trap-focus/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/make-installer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/index.d.ts","./src/utils/feedback.ts","./src/layout/default/components/header/user-drop-down.vue","./src/layout/default/components/header/index.vue","./src/layout/default/components/main.vue","./src/layout/default/components/sidebar/logo.vue","./src/utils/util.ts","./src/layout/default/components/sidebar/menu-item.vue","./src/layout/default/components/sidebar/menu.vue","./src/layout/default/components/sidebar/side.vue","./src/layout/default/components/sidebar/index.vue","./src/layout/default/index.vue","./src/views/error/components/error.vue","./src/views/error/404.vue","./src/views/error/403.vue","./src/hooks/uselockfn.ts","./src/layout/components/footer.vue","./src/views/account/login.vue","./src/views/account/change-password.vue","./src/utils/wecomoauthpostmessage.ts","./src/views/account/bind-work-wechat.vue","./src/views/user/setting.vue","./node_modules/dayjs/locale/types.d.ts","./node_modules/dayjs/locale/index.d.ts","./node_modules/dayjs/index.d.ts","./src/api/doctor.ts","./src/views/doctor/progress.vue","./src/api/decoration.ts","./src/views/decoration/component/widgets/index.ts","./src/views/decoration/component/pages/preview-pc.vue","./src/views/decoration/pc_details.vue","./src/api/fans.ts","./src/views/fans/h5.vue","./src/api/tcm.ts","./src/api/order.ts","./src/api/channel/weapp.ts","./src/hooks/usepaging.ts","./src/utils/perm.ts","./node_modules/.pnpm/vue-demi@0.13.11_vue@3.5.33_typescript@5.7.3_/node_modules/vue-demi/lib/index.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/shared.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/core.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/core.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/echarts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/index.d.ts","./node_modules/.pnpm/vue-echarts@6.7.3_@vue+runt_9e349b8fe817591c55152dc2c2ed6abf/node_modules/vue-echarts/dist/index.d.ts","./src/views/tcm/diagnosis/components/diagnosistodolist.vue","./src/utils/blood-thresholds.ts","./src/views/tcm/diagnosis/components/dailymatrix.vue","./src/views/tcm/diagnosis/components/caserecordlist.vue","./node_modules/.pnpm/hls.js@1.6.17/node_modules/hls.js/dist/hls.d.mts","./src/views/tcm/diagnosis/components/recordingvideoplayer.vue","./src/views/tcm/diagnosis/components/recordingplaybackblock.vue","./node_modules/.pnpm/cos-js-sdk-v5@1.10.1/node_modules/cos-js-sdk-v5/index.d.ts","./src/api/file.ts","./src/utils/oss-direct-upload.ts","./src/components/upload/index.vue","./src/views/tcm/diagnosis/components/callrecordpanel.vue","./src/utils/im-business-message-parse.ts","./src/views/tcm/diagnosis/components/imchatrecordpanel.vue","./src/views/tcm/diagnosis/components/assignlogpanel.vue","./src/views/tcm/diagnosis/components/appointmentrecordpanel.vue","./src/api/patient.ts","./src/views/patient/reception/components/notetimeline.vue","./src/views/tcm/diagnosis/components/trackingnotetimeline.vue","./src/views/consumer/prescription/components/prescription-order-utils.ts","./src/views/consumer/prescription/components/prescriptionorderdetaildrawer.vue","./src/views/tcm/diagnosis/components/patientorderlist.vue","./src/api/medicine.ts","./src/components/medicine-name-select/index.vue","./src/utils/diabetes-discovery-display.ts","./src/components/prescription-slip/utils.ts","./src/components/prescription-slip/index.vue","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/logger.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/cache-storage.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/context.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/layout/bounds.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/document-cloner.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/syntax/tokenizer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/syntax/parser.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/ipropertydescriptor.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-clip.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/itypedescriptor.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/color.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/length-percentage.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-origin.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-repeat.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-size.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-radius.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-style.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-width.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/direction.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/display.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/float.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/letter-spacing.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/line-break.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-type.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/overflow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/overflow-wrap.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-align.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/length.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-shadow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-transform.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/transform.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/transform-origin.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/visibility.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/word-break.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/z-index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/opacity.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-decoration-line.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-family.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-weight.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-variant.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-style.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/content.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/counter-increment.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/counter-reset.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/duration.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/quotes.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/box-shadow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/paint-order.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/layout/text.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/text-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/vector.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/bezier-curve.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/path.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/bound-curves.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/effects.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/stacking-context.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/canvas-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/image-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/svg-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/renderer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/canvas/canvas-renderer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/index.d.ts","./node_modules/.pnpm/jspdf@2.5.2/node_modules/jspdf/types/index.d.ts","./src/components/tcm-prescription/index.vue","./src/views/tcm/diagnosis/edit.vue","./src/views/tcm/diagnosis/detail.vue","./node_modules/dayjs/plugin/isoweek.d.ts","./src/api/first_visit.ts","./src/views/tcm/diagnosis/appointment.vue","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/cdn-streaming/cdn-streaming.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/device-detector/device-detector.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/virtual-background/virtual-background.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/watermark/watermark.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/beauty/beauty.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/basic-beauty/basic-beauty.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/cross-room/cross-room.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/custom-encryption/custom-encryption.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/video-mixer/video-mixer.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/small-stream-auto-switcher/small-stream-auto-switcher.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/chorus/chorus.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/lebplayer/lebplayer.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/realtime-transcriber/realtime-transcriber.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/index.d.ts","./src/views/tcm/diagnosis/components/assistantwatchcalldialog.vue","./src/views/tcm/diagnosis/index_h5.vue","./src/utils/diag-display.ts","./src/views/tcm/diagnosis/components/patientinfocard.vue","./src/views/tcm/diagnosis/components/patientcasecard.vue","./src/views/tcm/diagnosis/readonly.vue","./src/router/routes.ts","./src/router/index.ts","./src/utils/request/cancel.ts","./src/utils/request/type.d.ts","./src/utils/request/axios.ts","./src/utils/wecombindguard.ts","./src/utils/request/index.ts","./src/api/app.ts","./src/stores/modules/app.ts","./src/api/chat.ts","./src/components/chat-notify-toast/index.vue","./src/app.vue","./src/permission.ts","./src/install/index.ts","./src/main.ts","./src/api/article.ts","./src/api/asset.ts","./src/api/consumer.ts","./src/api/finance.ts","./src/api/message.ts","./src/api/pharmacy.ts","./src/api/qywx-msg.ts","./src/api/qywx.ts","./src/api/self_input_stats.ts","./src/api/stats.ts","./src/api/app/recharge.ts","./src/api/channel/h5.ts","./src/api/channel/open_setting.ts","./src/api/channel/wx_oa.ts","./src/api/org/department.ts","./src/api/org/post.ts","./src/api/perms/admin.ts","./src/api/perms/menu.ts","./src/api/perms/role.ts","./src/api/setting/dict.ts","./src/api/setting/pay.ts","./src/api/setting/search.ts","./src/api/setting/storage.ts","./src/api/setting/user.ts","./src/api/setting/website.ts","./src/api/tools/code.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chat/chat.vue.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/chatheader.vue.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/hooks/usechatheader.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/login.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/loginstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/avatar/avatar.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/avatar/constants/avatar.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/avatar/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/userpicker/type.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/userpicker/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/basecomp/view/view.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/basecomp/view/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/chatsetting/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/uikitmodalstate/uikitmodalstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/uikitmodalstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/type.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/uikitmodal.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/useroommodal/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/common/base.d.ts","./node_modules/.pnpm/@tencentcloud+chat@3.5.9/node_modules/@tencentcloud/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+tuiroom-engine-js@3.5.2/node_modules/@tencentcloud/tuiroom-engine-js/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/device.d.ts","./node_modules/.pnpm/@tencentcloud+chat@3.6.6/node_modules/@tencentcloud/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-engine@2.5.8/node_modules/@tencentcloud/chat-uikit-engine/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/message.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/useofflinepushinfo.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/engine.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/search.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/contact.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/conversation.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/call.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/chatsetting.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/live.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/stream.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/videomixer.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/audience.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/seat.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/monitor.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/coguest.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/cohost.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/battle.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/barrage.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/room.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/participant.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/beauty.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/virtualbackground.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/user.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/devicestate/devicestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/devicestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/hooks/useroomengine.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/audiosettingpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/videosettingpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/common/rtc.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/common/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/barragestate/barragestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/barragestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/battlestate/battlestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/battlestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/cogueststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/cohoststate/cohoststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/cohoststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/liveaudiencestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/liveliststate/liveliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/liveliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/livemonitorstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/utils/eventcenter.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/liveseatstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/videomixerstate/videomixerstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/videomixerstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/barrageinput/barrageinputh5.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/barrageinput/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/barragelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/camerabutton/index.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/camerabutton/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/coguestpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/cohostpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/liveaudiencelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/livelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/livemonitorview/livemonitorview.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/livemonitorview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/livescenepanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/liveview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/micbutton/index.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/micbutton/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/streammixer/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/live/live.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/types/asr.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/asrstate/asrstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/freebeautystate/freebeautystate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/freebeautystate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/roomparticipantstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/roomstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/virtualbackgroundstate/virtualbackgroundstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/virtualbackgroundstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/roomparticipantlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/roomparticipantview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/roomview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/scheduleroompanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/virtualbackgroundpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/freebeautypanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/room/room.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/i18n/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/contactlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/conversationlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/messageinput/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/hooks/usemessageactions.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/messagelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/components/search/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/c2csettingstate/c2csettingstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/c2csettingstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/contactliststate/contactliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/contactliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/conversationliststate/conversationliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/conversationliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/groupsettingstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageactionstate/messageactionstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageactionstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/type.d.ts","./node_modules/.pnpm/orderedmap@2.1.1/node_modules/orderedmap/dist/index.d.ts","./node_modules/.pnpm/prosemirror-model@1.25.4/node_modules/prosemirror-model/dist/index.d.ts","./node_modules/.pnpm/prosemirror-transform@1.12.0/node_modules/prosemirror-transform/dist/index.d.ts","./node_modules/.pnpm/prosemirror-view@1.41.8/node_modules/prosemirror-view/dist/index.d.ts","./node_modules/.pnpm/prosemirror-state@1.4.4/node_modules/prosemirror-state/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/state/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/model/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/view/dist/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/eventemitter.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/transform/dist/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/node.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/mark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extension.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/types.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensionmanager.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/nodepos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/clipboardtextserializer.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/blur.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/clearcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/clearnodes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/command.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/createparagraphnear.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/cut.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deletecurrentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deletenode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deleterange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deleteselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/enter.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/exitcode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/extendmarkrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/first.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/focus.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/foreach.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/insertcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/insertcontentat.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/join.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/joinitembackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/joinitemforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/jointextblockbackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/jointextblockforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/keyboardshortcut.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/lift.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/liftemptyblock.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/liftlistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/newlineincode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/resetattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/scrollintoview.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectall.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectnodebackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectnodeforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectparentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selecttextblockend.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selecttextblockstart.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setmark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setmeta.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setnodeselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/settextselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/sinklistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/splitblock.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/splitlistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglelist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglemark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglenode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglewrap.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/undoinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/unsetallmarks.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/unsetmark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/updateattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/wrapin.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/wrapinlist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/commands.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/drop.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/editable.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/focusevents.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/keymap.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/paste.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/tabindex.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/editor.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commandmanager.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/combinetransactionsteps.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createchainablestate.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createdocument.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createnodefromcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/defaultblockat.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findchildren.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findchildreninrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findparentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findparentnodeclosesttopos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatehtml.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatejson.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatetext.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getattributesfromextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getchangedranges.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getdebugjson.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getextensionfield.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gethtmlfromfragment.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarkattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarkrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarksbetween.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarktype.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodeatposition.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodeattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodetype.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getrenderedattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschema.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschemabyresolvedextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschematypebyname.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschematypenamebyname.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getsplittedattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettext.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextbetween.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextcontentfromnodes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextserializersfromschema.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/injectextensionattributestoparserule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isatendofnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isatstartofnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isextensionrulesenabled.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/islist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/ismarkactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeempty.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/istextselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/postodomrect.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/resolvefocusposition.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/rewriteunknowncontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/selectiontoinsertionend.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/splitextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/markinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/nodeinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/textblocktypeinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/textinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/wrappinginputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/nodeview.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/markpasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/nodepasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/textpasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/tracker.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/callorreturn.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/caninsertnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/createstyletag.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/deleteprops.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/elementfromstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/escapeforregex.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/findduplicates.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/fromstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isemptyobject.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isfunction.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isios.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/ismacos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isnumber.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isplainobject.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isregexp.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/issafari.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/mergeattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/mergedeep.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/minmax.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/objectincludes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/removeduplicates.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperoffsets.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventlisteners.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computestyles.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventoverflow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applystyles.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/types.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectoverflow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createpopper.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper-lite.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/index.d.ts","./node_modules/.pnpm/tippy.js@6.3.7/node_modules/tippy.js/index.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/bubble-menu-plugin.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/bubble-menu.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/bubblemenu.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/editor.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/editorcontent.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/floating-menu-plugin.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/floating-menu.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/floatingmenu.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/nodeviewcontent.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/nodeviewwrapper.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/useeditor.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/vuenodeviewrenderer.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/vuerenderer.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/messageinputstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageliststate/messageliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/states/messageliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/chat/chat.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_fc6d7901627ffa37cce9ed5237679065/node_modules/tuikit-atomicx-vue3/dist/subentry/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/constants/interface.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/helpers.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/options.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/t.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/index.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/index.d.mts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/i18n/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/uselanguageprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/languageprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/interface.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/stylepresetprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/usestylepresetprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/uikitprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/useuikitprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/dialog.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/dropdownitem.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/icon/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/en-us/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/zh-cn/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/select/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/option/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/slider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/swiperitem.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/usecomponent.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/utils/utils.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/loading/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_f78cbc43da431f244e6b6d27ca79f135/node_modules/@tencentcloud/chat-uikit-vue3/dist/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/constants/interface.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/helpers.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/options.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/t.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/index.d.mts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/i18n/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/uselanguageprovider.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/languageprovider.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/uikitprovider.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/useuikitprovider.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/dialog.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/dropdownitem.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/icon/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/en-us/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/zh-cn/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/select/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/option/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/slider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/swiperitem.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/usecomponent.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/utils/utils.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/loading/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/index.d.ts","./src/components/sidetab.vue","./src/components/app-link/index.vue","./src/components/chat-dialog/chatmessageitem.vue","./src/utils/call-local-recorder.ts","./src/utils/call-video-screenshot.ts","./src/utils/tuicall-error.ts","./node_modules/@tencentcloud/chat/index.d.ts","./node_modules/@tencentcloud/chat-uikit-engine/index.d.ts","./src/utils/im-call-hangup-detect.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/call.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/error.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/log.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/icallservice.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/icallstore.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/ituiglobal.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/ituistore.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/callservice/uidesign.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/callservice/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/locales/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/index.d.ts","./node_modules/@tencentcloud/call-engine-js/index.d.ts","./src/components/chat-dialog/index.vue","./src/components/color-picker/index.vue","./src/components/daterange-picker/index.vue","./src/components/del-wrap/index.vue","./src/components/dict-value/index.vue","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/browser-polyfill.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/node-polyfill.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/locale/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/register-builtin-modules/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/init-default-config/index.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/create-editor.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/element.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/node.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/editor.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/location.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/operation.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/path.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/path-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/point.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/point-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/range.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/range-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/custom-types.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/text.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/general.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/node.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/selection.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/text.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/index.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/index.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/htmldomapi.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/helpers/attachto.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/style.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/eventlisteners.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/attributes.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/class.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/props.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/dataset.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/vnode.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/hooks.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/module.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/init.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/thunk.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/is.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/tovnode.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/h.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/jsx.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/index.d.ts","./node_modules/.pnpm/@types+event-emitter@0.3.5/node_modules/@types/event-emitter/index.d.ts","./node_modules/.pnpm/dom7@3.0.0/node_modules/dom7/dom7.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/utils/dom.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/config/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/editor/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/render/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/to-html/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/parse-html/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/bar/toolbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/register.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/panel-and-modal/baseclass.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/panel-and-modal/modal.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/index.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/history.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/history-editor.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/with-history.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/create-editor.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/create-toolbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/utils/key.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/text-area/textarea.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/bar/hoverbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/editor/dom-editor.d.ts","./node_modules/.pnpm/@uppy+utils@4.1.3/node_modules/@uppy/utils/types/index.d.ts","./node_modules/.pnpm/@uppy+core@2.3.4/node_modules/@uppy/core/types/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/createuploader.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/index.d.ts","./node_modules/.pnpm/i18next@20.4.0/node_modules/i18next/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/i18n/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/boot.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/dom.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/create.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/index.d.ts","./node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.33_typescript@5.7.3_/node_modules/vuedraggable/src/vuedraggable.d.ts","./src/components/popup/index.vue","./src/components/material/file.vue","./src/components/material/hook.ts","./src/components/material/preview.vue","./src/components/material/index.vue","./src/components/material/picker.vue","./src/components/editor/index.vue","./src/components/export-data/index.vue","./src/components/footer-btns/index.vue","./src/components/icon/index.ts","./src/components/icon/svg-icon.vue","./src/components/icon/index.vue","./src/components/icon/picker.vue","./src/components/image-contain/index.vue","./src/components/link/index.ts","./src/components/link/article-list.vue","./src/components/link/custom-link.vue","./src/components/link/mini-program.vue","./src/components/link/shop-pages.vue","./src/components/link/index.vue","./src/components/link/picker.vue","./src/hooks/uselisttimefilter.ts","./src/components/list-time-filter/index.vue","./src/components/overflow-tooltip/index.vue","./src/components/pagination/index.vue","./src/components/popover-input/index.vue","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/call.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/error.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/log.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/icallservice.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/icallstore.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/ituiglobal.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/ituistore.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/callservice/uidesign.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/callservice/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/locales/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/index.d.ts","./src/components/video-call/index.vue","./src/hooks/usedictoptions.ts","./node_modules/.pnpm/vue-clipboard3@2.0.0/node_modules/vue-clipboard3/dist/esm/index.d.ts","./src/install/directives/copy.ts","./src/install/directives/perms.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/charts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/charts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/components.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/components.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/features.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/features.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/renderers.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/renderers.d.ts","./src/install/plugins/echart.ts","./src/install/plugins/element.ts","./node_modules/.pnpm/@highlightjs+vue-plugin@2.1_297347e077cdaa3fb4c77d862f4e02c2/node_modules/@highlightjs/vue-plugin/dist/vue.d.ts","./node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/types/index.d.ts","./src/install/plugins/hljs.ts","./src/stores/index.ts","./src/install/plugins/pinia.ts","./src/router/guard/index.ts","./src/install/plugins/router.ts","./src/install/plugins/tuikit.ts","./src/router/guard/init.ts","./src/utils/checkhttps.ts","./src/utils/env.ts","./src/utils/getexposetype.ts","./src/views/app/recharge/index.vue","./src/views/article/column/edit.vue","./src/views/article/column/index.vue","./src/views/article/lists/edit.vue","./src/views/article/lists/index.vue","./src/views/asset/resource/index.vue","./src/views/asset/user/index.vue","./src/views/channel/h5.vue","./src/views/channel/open_setting.vue","./src/views/channel/weapp.vue","./src/views/channel/wx_oa/config.vue","./src/views/channel/wx_oa/menu_com/usemenuoa.ts","./src/views/channel/wx_oa/menu_com/oa-menu-form.vue","./src/views/channel/wx_oa/menu_com/oa-menu-form-edit.vue","./src/views/channel/wx_oa/menu_com/oa-attr.vue","./src/views/channel/wx_oa/menu_com/oa-phone.vue","./src/views/channel/wx_oa/menu.vue","./src/views/channel/wx_oa/reply/edit.vue","./src/views/channel/wx_oa/reply/default_reply.vue","./src/views/channel/wx_oa/reply/follow_reply.vue","./src/views/channel/wx_oa/reply/keyword_reply.vue","./src/views/chat/components/messagebubble.vue","./src/views/chat/components/sendpanel.vue","./src/views/chat/index.vue","./src/views/consumer/assistant/edit.vue","./src/views/consumer/assistant/index.vue","./src/views/consumer/components/account-adjust.vue","./src/views/consumer/doctor/edit.vue","./src/views/consumer/doctor/index.vue","./src/views/consumer/doctor/paiban.vue","./src/views/consumer/lists/detail.vue","./src/views/consumer/lists/index.vue","./src/views/consumer/prescription/guahao.vue","./src/views/consumer/prescription/index.vue","./src/views/consumer/prescription/components/prescriptionaibatchgeneratedialog.vue","./src/views/consumer/prescription/components/prescriptionaireportdialog.vue","./src/views/consumer/prescription/list.vue","./src/views/consumer/prescription/components/gancaosubmissionreconcilebutton.vue","./src/views/consumer/prescription/order_list.vue","./src/views/consumer/prescription/order_list_h5.vue","./src/views/decoration/pc.vue","./src/views/decoration/component/pages/menu.vue","./src/views/decoration/component/tabbar/mobile/attr.vue","./src/views/decoration/component/decoration-img.vue","./src/views/decoration/component/tabbar/mobile/content.vue","./src/views/decoration/component/tabbar/mobile/index.ts","./src/views/decoration/tabbar.vue","./src/views/decoration/component/add-nav.vue","./src/views/decoration/component/pages/attr-setting.vue","./src/views/decoration/component/pages/preview.vue","./src/views/decoration/component/tabbar/pc/menu-set.vue","./src/views/decoration/component/tabbar/pc/attr.vue","./src/views/decoration/component/tabbar/pc/content.vue","./src/views/decoration/component/tabbar/pc/index.ts","./src/views/decoration/component/widgets/banner/options.ts","./src/views/decoration/component/widgets/banner/attr.vue","./src/views/decoration/component/widgets/banner/content.vue","./src/views/decoration/component/widgets/banner/index.ts","./src/views/decoration/component/widgets/customer-service/options.ts","./src/views/decoration/component/widgets/customer-service/attr.vue","./src/views/decoration/component/widgets/customer-service/content.vue","./src/views/decoration/component/widgets/customer-service/index.ts","./src/views/decoration/component/widgets/middle-banner/options.ts","./src/views/decoration/component/widgets/middle-banner/attr.vue","./src/views/decoration/component/widgets/middle-banner/content.vue","./src/views/decoration/component/widgets/middle-banner/index.ts","./src/views/decoration/component/widgets/my-service/options.ts","./src/views/decoration/component/widgets/my-service/attr.vue","./src/views/decoration/component/widgets/my-service/content.vue","./src/views/decoration/component/widgets/my-service/index.ts","./src/views/decoration/component/widgets/nav/options.ts","./src/views/decoration/component/widgets/nav/attr.vue","./src/views/decoration/component/widgets/nav/content.vue","./src/views/decoration/component/widgets/nav/index.ts","./src/views/decoration/component/widgets/news/options.ts","./src/views/decoration/component/widgets/news/attr.vue","./src/views/decoration/component/widgets/news/content.vue","./src/views/decoration/component/widgets/news/index.ts","./src/views/decoration/component/widgets/page-meta/options.ts","./src/views/decoration/component/widgets/page-meta/attr.vue","./src/views/decoration/component/widgets/page-meta/content.vue","./src/views/decoration/component/widgets/page-meta/index.ts","./src/views/decoration/component/widgets/pc-banner/options.ts","./src/views/decoration/component/widgets/pc-banner/content.vue","./src/views/decoration/component/widgets/pc-banner/index.ts","./src/views/decoration/component/widgets/search/options.ts","./src/views/decoration/component/widgets/search/attr.vue","./src/views/decoration/component/widgets/search/content.vue","./src/views/decoration/component/widgets/search/index.ts","./src/views/decoration/component/widgets/user-banner/options.ts","./src/views/decoration/component/widgets/user-banner/attr.vue","./src/views/decoration/component/widgets/user-banner/content.vue","./src/views/decoration/component/widgets/user-banner/index.ts","./src/views/decoration/component/widgets/user-info/options.ts","./src/views/decoration/component/widgets/user-info/attr.vue","./src/views/decoration/component/widgets/user-info/content.vue","./src/views/decoration/component/widgets/user-info/index.ts","./src/views/decoration/pages/index.vue","./src/views/decoration/style/components/theme-picker.vue","./src/views/decoration/style/components/mobile-style.vue","./src/views/decoration/style/style.vue","./src/views/dev_tools/components/relations-add.vue","./src/views/dev_tools/code/edit.vue","./src/views/dev_tools/components/code-preview.vue","./src/views/dev_tools/components/data-table.vue","./src/views/dev_tools/code/index.vue","./src/views/doctor/dept-tongji.vue","./src/views/doctor/medicine.vue","./src/views/doctor/roster.vue","./src/views/doctor/tongji.vue","./src/views/fans/commission-settlement.vue","./src/views/fans/index.vue","./src/views/fans/qywx.vue","./src/views/fans/yeji.vue","./src/views/finance/balance_details.vue","./src/views/finance/mubiao-dept-node.vue","./src/views/finance/mubiao-dept-card.vue","./src/views/finance/mubiao.vue","./src/views/finance/recharge_record.vue","./src/views/finance/component/refund-log.vue","./src/views/finance/refund_record.vue","./src/views/finance/account_cost/edit.vue","./src/views/finance/account_cost/index.vue","./src/views/first_visit/conversion/index.vue","./src/views/first_visit/doctor_dashboard/index.vue","./src/views/first_visit/my_patients/components/order-actions.ts","./src/views/first_visit/my_patients/components/orderactionhost.vue","./src/views/first_visit/my_patients/components/orderpanel.vue","./src/views/first_visit/my_patients/components/progresspanel.vue","./src/views/first_visit/my_patients/components/paibanpanel.vue","./src/views/first_visit/my_patients/index.vue","./src/views/first_visit/registration_stats/index.vue","./src/views/first_visit/wecom_promotion/components/wecom-widget-templates.ts","./src/views/first_visit/wecom_promotion/components/wecomfloatingwidgetbuilder.vue","./src/views/first_visit/wecom_promotion/index.vue","./src/views/material/index.vue","./src/views/message/notice/edit.vue","./src/views/message/notice/index.vue","./src/views/message/short_letter/edit.vue","./src/views/message/short_letter/index.vue","./src/views/order/index.vue","./src/views/organization/department/edit.vue","./src/views/organization/department/index.vue","./src/views/organization/post/edit.vue","./src/views/organization/post/index.vue","./src/views/patient/reception/index.vue","./src/views/permission/admin/edit.vue","./src/views/permission/admin/index.vue","./src/views/permission/menu/edit.vue","./src/views/permission/menu/index.vue","./src/views/permission/role/auth.vue","./src/views/permission/role/edit.vue","./src/views/permission/role/index.vue","./src/views/pharmacy/medicine_mapping/latest-request.d.mts","./src/views/pharmacy/medicine_mapping/index.vue","./src/views/setting/dict/data/edit.vue","./src/views/setting/dict/data/index.vue","./src/views/setting/dict/type/edit.vue","./src/views/setting/dict/type/index.vue","./src/views/setting/pay/config/edit.vue","./src/views/setting/pay/config/index.vue","./src/views/setting/pay/method/index.vue","./src/views/setting/search/index.vue","./src/views/setting/storage/edit.vue","./src/views/setting/storage/index.vue","./src/views/setting/system/cache.vue","./src/views/setting/system/environment.vue","./src/views/setting/system/journal.vue","./src/views/setting/system/scheduled_task/edit.vue","./src/views/setting/system/scheduled_task/index.vue","./src/views/setting/user/login_register.vue","./src/views/setting/user/setup.vue","./src/views/setting/website/filing.vue","./src/views/setting/website/information.vue","./src/views/setting/website/protocol.vue","./src/views/setting/website/statistics.vue","./src/views/stats/assistant-performance/index.vue","./src/views/stats/auto_assign_log/index.vue","./src/views/stats/conversion/index.vue","./src/views/stats/performance-dashboard/index.vue","./src/views/stats/revisit_rate/index.vue","./src/views/stats/self_input/mediasourceselect.vue","./src/views/stats/self_input/usemediasourceoptions.ts","./src/views/stats/self_input/cost-edit.vue","./src/views/stats/self_input/account_cost.vue","./src/views/stats/self_input/yeji-edit.vue","./src/views/stats/self_input/index.vue","./src/views/tcm/appointment/list.vue","./src/views/tcm/appointment/list_h5.vue","./src/views/tcm/appointment/components/prescription-drawer.vue","./src/views/tcm/diagnosis/add.vue","./src/views/tcm/diagnosis/index.vue","./src/views/tcm/diagnosis/components/bloodrecordlist.vue","./src/views/tcm/diagnosis/components/dietrecordlist.vue","./src/views/tcm/diagnosis/components/exerciserecordlist.vue","./src/views/tcm/diagnosis/components/trackingmatrix.vue","./src/views/tcm/follow/index.vue","./src/views/template/component/file.vue","./src/views/template/component/icon.vue","./src/views/template/component/link.vue","./src/views/template/component/overflow.vue","./src/views/template/component/popover_input.vue","./src/views/template/component/rich_text.vue","./src/views/template/component/upload.vue","./src/views/test/patient-call.vue","./src/views/workbench/index.vue","./components.d.ts","./auto-imports.d.ts","./typings/index.d.ts","./typings/router.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/index.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.typedarray.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.buffer.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/events.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/storage.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert/strict.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/async_hooks.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/child_process.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/cluster.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/console.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/constants.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/crypto.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dgram.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/domain.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/events.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http2.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/https.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.generated.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/module.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/net.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/os.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/path.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/perf_hooks.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/process.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/punycode.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/querystring.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/repl.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sea.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sqlite.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/consumers.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/web.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/string_decoder.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/test.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tls.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/trace_events.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tty.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/url.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/util.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/v8.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/vm.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/wasi.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/worker_threads.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/zlib.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/index.d.ts","./node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","./node_modules/.pnpm/rollup@4.60.3/node_modules/rollup/dist/rollup.d.ts","./node_modules/.pnpm/rollup@4.60.3/node_modules/rollup/dist/parseast.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/modulerunnertransport.d-dj_me5sf.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/module-runner.d.ts","./node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/lib/main.d.ts","./node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/previous-map.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/input.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/declaration.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/root.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/warning.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/lazy-result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/no-work-result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/processor.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/document.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/rule.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/node.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/comment.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/container.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/at-rule.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/list.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/postcss.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/postcss.d.mts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/deprecations.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/util/promise_or.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/importer.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/source_location.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/source_span.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/index.d.ts","./node_modules/.pnpm/immutable@4.3.8/node_modules/immutable/dist/immutable.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/boolean.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/calculation.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/color.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/function.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/list.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/map.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/mixin.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/number.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/string.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/argument_list.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/index.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/options.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/compile.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/exception.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/exception.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/plugin_this.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/function.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/importer.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/options.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/render.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/index.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/metadata.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/index.d.ts","./node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.d.mts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/typescript.d.ts","./node_modules/.pnpm/@vue+compiler-sfc@3.5.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/compiler-sfc/index.d.mts","./node_modules/.pnpm/@vitejs+plugin-vue@5.2.1_vi_26ff37bca32818ba6abc2479b735c8c5/node_modules/@vitejs/plugin-vue/dist/index.d.mts","./node_modules/.pnpm/@vue+babel-plugin-resolve-type@1.5.0_@babel+core@7.29.0/node_modules/@vue/babel-plugin-resolve-type/dist/index.d.mts","./node_modules/.pnpm/@vue+babel-plugin-jsx@1.5.0_@babel+core@7.29.0/node_modules/@vue/babel-plugin-jsx/dist/index.d.mts","./node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.1._15604a3242b44866a4c8e668a8c2b0af/node_modules/@vitejs/plugin-vue-jsx/dist/index.d.mts","./node_modules/.pnpm/mlly@1.8.2/node_modules/mlly/dist/index.d.ts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/shared/unimport.cavrr9sh.d.mts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/shared/unimport.czoa5cgj.d.mts","./node_modules/.pnpm/js-tokens@9.0.1/node_modules/js-tokens/index.d.ts","./node_modules/.pnpm/strip-literal@3.1.0/node_modules/strip-literal/dist/index.d.mts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/index.d.mts","./node_modules/.pnpm/unplugin-utils@0.2.5/node_modules/unplugin-utils/dist/index.d.ts","./node_modules/.pnpm/unplugin-auto-import@19.1.0_6f0c1011f66a70c739aaa005d5971cab/node_modules/unplugin-auto-import/dist/types.d.ts","./node_modules/.pnpm/unplugin-auto-import@19.1.0_6f0c1011f66a70c739aaa005d5971cab/node_modules/unplugin-auto-import/dist/vite.d.ts","./node_modules/.pnpm/webpack-virtual-modules@0.6.2/node_modules/webpack-virtual-modules/lib/index.d.ts","./node_modules/.pnpm/unplugin@2.2.0/node_modules/unplugin/dist/index.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/types.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/resolvers.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/vite.d.ts","./node_modules/.pnpm/vite-plugin-style-import@2._963cef04d855493cf45de9418d5fb104/node_modules/vite-plugin-style-import/dist/index.d.ts","./node_modules/.pnpm/@types+svgo@2.6.4/node_modules/@types/svgo/index.d.ts","./node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_832c8c32224a985848ba91788e93a372/node_modules/vite-plugin-svg-icons/dist/index.d.ts","./node_modules/.pnpm/vite-plugin-vue-setup-exten_dfd817fabadf21a508603ce199129005/node_modules/vite-plugin-vue-setup-extend/dist/index.d.ts","./vite.config.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/common.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/array.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/collection.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/date.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/function.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/lang.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/math.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/number.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/object.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/seq.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/string.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/util.d.ts"],"fileIdsList":[[99,103,109,868,1400,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1400,1423,1455,1468,1471,1546,1582,2076,2077,2078,2100,2101,2102,2103,2104,2186,2187,2189,2190,2191,2192,2193,2194,2196,2197,2198,2199,2201,2202,2203,2204,2205,2206,2208,2209,2210,2211,2226,2462,2468,2516,2533,2534],[88,868,1423,2468,2516,2533,2534],[91,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534],[868,1027,1423,2468,2516,2533,2534],[868,1028,1423,2468,2516,2533,2534],[868,1027,1028,1029,1030,1031,1032,1033,1034,1035,1423,2468,2516,2533,2534],[99,103,109,868,1423,2459,2468,2516,2533,2534],[166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,868,1423,2468,2516,2533,2534],[459,868,1423,2468,2516,2533,2534],[868,985,1423,2468,2516,2533,2534],[868,986,987,1423,2468,2516,2533,2534],[868,1423,1930,2468,2516,2533,2534],[868,1423,1924,1926,2468,2516,2533,2534],[868,1423,1914,1924,1925,1927,1928,1929,2468,2516,2533,2534],[868,1423,1924,2468,2516,2533,2534],[868,1423,1914,1924,2468,2516,2533,2534],[868,1423,1915,1916,1917,1918,1919,1920,1921,1922,1923,2468,2516,2533,2534],[868,1423,1915,1919,1920,1923,1924,1927,2468,2516,2533,2534],[868,1423,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1927,1928,2468,2516,2533,2534],[868,1423,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,2468,2516,2533,2534],[825,868,1423,2468,2516,2533,2534],[819,821,868,1423,2468,2516,2533,2534],[809,819,820,822,823,824,868,1423,2468,2516,2533,2534],[819,868,1423,2468,2516,2533,2534],[809,819,868,1423,2468,2516,2533,2534],[810,811,812,813,814,815,816,817,818,868,1423,2468,2516,2533,2534],[810,814,815,818,819,822,868,1423,2468,2516,2533,2534],[810,811,812,813,814,815,816,817,818,819,820,822,823,868,1423,2468,2516,2533,2534],[809,810,811,812,813,814,815,816,817,818,868,1423,2468,2516,2533,2534],[868,1423,2097,2468,2516,2533,2534],[868,1423,2088,2089,2093,2094,2468,2516,2533,2534],[868,1423,2088,2468,2516,2533,2534],[868,1423,2085,2086,2087,2468,2516,2533,2534],[868,1423,2088,2095,2096,2468,2516,2533,2534],[868,1423,2088,2093,2468,2516,2533,2534],[868,1423,2089,2090,2091,2092,2468,2516,2533,2534],[868,1423,1638,2468,2516,2533,2534],[868,1423,1613,2468,2516,2533,2534],[868,1423,1615,1616,2468,2516,2533,2534],[868,1423,1614,1617,1954,2016,2468,2516,2533,2534],[868,1423,1635,2468,2516,2533,2534],[99,103,109,868,1423,1989,1990,2459,2468,2516,2533,2534],[99,103,109,868,1423,1989,2459,2468,2516,2533,2534],[99,103,109,868,1423,1972,2459,2468,2516,2533,2534],[99,103,109,868,1423,1974,2459,2468,2516,2533,2534],[99,103,109,868,1423,1974,1975,2459,2468,2516,2533,2534],[868,1423,1972,2468,2516,2533,2534],[99,103,109,868,1423,1977,2459,2468,2516,2533,2534],[99,103,109,868,1423,1979,2459,2468,2516,2533,2534],[99,103,109,868,1423,1979,1980,1981,2459,2468,2516,2533,2534],[868,1423,2010,2468,2516,2533,2534],[868,1423,1973,1976,1978,1982,1983,1988,1991,1993,1994,1995,1997,1998,2002,2004,2006,2009,2011,2012,2468,2516,2533,2534],[99,103,109,868,1423,1992,2459,2468,2516,2533,2534],[868,1423,1984,1985,2468,2516,2533,2534],[868,1423,1986,1987,2468,2516,2533,2534],[868,1423,2007,2008,2468,2516,2533,2534],[99,103,109,868,1423,2007,2459,2468,2516,2533,2534],[868,1423,1999,2000,2001,2468,2516,2533,2534],[99,103,109,868,1423,1999,2459,2468,2516,2533,2534],[99,103,109,868,1423,1996,2459,2468,2516,2533,2534],[99,103,109,868,1423,2003,2459,2468,2516,2533,2534],[99,103,109,868,1423,2005,2459,2468,2516,2533,2534],[99,103,109,868,1423,2014,2459,2468,2516,2533,2534],[868,1423,1961,1971,2013,2015,2468,2516,2533,2534],[868,1423,1962,1963,2468,2516,2533,2534],[99,103,109,868,1423,1962,2459,2468,2516,2533,2534],[99,103,109,868,1423,1960,1961,2459,2468,2516,2533,2534],[868,1423,1965,1966,1967,2468,2516,2533,2534],[99,103,109,868,1423,1965,2459,2468,2516,2533,2534],[99,103,109,868,1423,1955,1964,1968,2459,2468,2516,2533,2534],[99,103,109,868,1423,1955,1960,1967,2459,2468,2516,2533,2534],[868,1423,1960,2468,2516,2533,2534],[868,1423,1968,1969,1970,2468,2516,2533,2534],[868,1423,1746,1756,1824,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1746,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1913,2468,2516,2533,2534],[868,1423,1746,1747,1748,1749,1756,1757,1758,1823,2468,2516,2533,2534],[868,1423,1746,1751,1752,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1746,1747,1748,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1755,2468,2516,2533,2534],[868,1423,1755,1815,2468,2516,2533,2534],[868,1423,1746,1755,2468,2516,2533,2534],[868,1423,1759,1816,1817,1818,1819,1820,1821,1822,2468,2516,2533,2534],[868,1423,1746,1747,1750,2468,2516,2533,2534],[868,1423,1746,2468,2516,2533,2534],[868,1423,1747,1756,2468,2516,2533,2534],[868,1423,1747,2468,2516,2533,2534],[868,1423,1742,1746,1756,2468,2516,2533,2534],[868,1423,1756,2468,2516,2533,2534],[868,1423,1746,1747,2468,2516,2533,2534],[868,1423,1750,1756,2468,2516,2533,2534],[868,1423,1747,1756,1824,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,2468,2516,2533,2534],[868,1423,1748,2468,2516,2533,2534],[868,1423,1746,1747,1756,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,2468,2516,2533,2534],[868,1423,1751,1752,1753,1754,1755,1756,1758,1823,1824,1825,1877,1883,1884,1888,1889,1912,2468,2516,2533,2534],[868,1423,1878,1879,1880,1881,1882,2468,2516,2533,2534],[868,1423,1747,1751,1756,2468,2516,2533,2534],[868,1423,1751,2468,2516,2533,2534],[868,1423,1747,1751,1756,1824,2468,2516,2533,2534],[868,1423,1746,1747,1751,1752,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1748,1756,1824,2468,2516,2533,2534],[868,1423,1885,1886,1887,2468,2516,2533,2534],[868,1423,1747,1752,1756,2468,2516,2533,2534],[868,1423,1752,2468,2516,2533,2534],[868,1423,1746,1747,1748,1750,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,2468,2516,2533,2534],[868,1423,1746,1748,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1933,2468,2516,2533,2534],[868,1423,1933,1934,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1939,2468,2516,2533,2534],[868,1423,1939,1940,2468,2516,2533,2534],[868,1423,1742,2468,2516,2533,2534],[868,1423,1745,2468,2516,2533,2534],[868,1423,1743,2468,2516,2533,2534],[868,1423,1744,2468,2516,2533,2534],[99,103,109,868,1423,1744,1745,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,1935,2459,2468,2516,2533,2534],[99,103,109,868,1423,1746,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2459,2468,2516,2533,2534],[99,103,109,868,1423,1937,2459,2468,2516,2533,2534],[99,103,109,868,1423,1744,1745,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,1941,2459,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1936,1937,1938,1942,1943,1944,1945,1946,1947,2468,2516,2533,2534],[99,103,109,868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1937,2459,2468,2516,2533,2534],[99,103,109,868,1423,1747,1748,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2459,2468,2516,2533,2534],[868,1423,2224,2468,2516,2533,2534],[868,1423,2215,2216,2220,2221,2468,2516,2533,2534],[868,1423,2215,2468,2516,2533,2534],[868,1423,2212,2213,2214,2468,2516,2533,2534],[868,1423,2215,2222,2223,2468,2516,2533,2534],[868,1423,2215,2220,2468,2516,2533,2534],[868,1423,2216,2217,2218,2219,2468,2516,2533,2534],[123,868,1423,2468,2516,2533,2534],[471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663],[868,1423,2468,2513,2514,2516,2533,2534],[868,1423,2468,2515,2516,2533,2534],[868,1423,2516,2533,2534],[868,1423,2468,2516,2521,2533,2534,2551],[868,1423,2468,2516,2517,2522,2527,2533,2534,2536,2548,2559],[868,1423,2468,2516,2517,2518,2527,2533,2534,2536],[868,1423,2463,2464,2465,2468,2516,2533,2534],[868,1423,2468,2516,2519,2533,2534,2560],[868,1423,2468,2516,2520,2521,2528,2533,2534,2537],[868,1423,2468,2516,2521,2533,2534,2548,2556],[868,1423,2468,2516,2522,2524,2527,2533,2534,2536],[868,1423,2468,2515,2516,2523,2533,2534],[868,1423,2468,2516,2524,2525,2533,2534],[868,1423,2468,2516,2526,2527,2533,2534],[868,1423,2468,2515,2516,2527,2533,2534],[868,1423,2468,2516,2527,2528,2529,2533,2534,2548,2559],[868,1423,2468,2516,2527,2528,2529,2533,2534,2543,2548,2551],[868,1423,2468,2509,2516,2524,2527,2530,2533,2534,2536,2548,2559],[868,1423,2468,2516,2527,2528,2530,2531,2533,2534,2536,2548,2556,2559],[868,1423,2468,2516,2530,2532,2533,2534,2548,2556,2559],[868,1423,2466,2467,2468,2469,2470,2471,2472,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565],[868,1423,2468,2516,2527,2533,2534],[868,1423,2468,2516,2533,2534,2535,2559],[868,1423,2468,2516,2524,2527,2533,2534,2536,2548],[868,1423,2468,2516,2533,2534,2537],[868,1423,2468,2516,2533,2534,2538],[868,1423,2468,2515,2516,2533,2534,2539],[868,1423,2468,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565],[868,1423,2468,2516,2533,2534,2541],[868,1423,2468,2516,2533,2534,2542],[868,1423,2468,2516,2527,2533,2534,2543,2544],[868,1423,2468,2516,2533,2534,2543,2545,2560,2562],[868,1423,2468,2516,2528,2533,2534],[868,1423,2468,2516,2527,2533,2534,2548,2549,2551],[868,1423,2468,2516,2533,2534,2550,2551],[868,1423,2468,2516,2533,2534,2548,2549],[868,1423,2468,2516,2533,2534,2551],[868,1423,2468,2516,2533,2534,2552],[868,1423,2468,2513,2516,2533,2534,2548,2553,2559],[868,1423,2468,2516,2527,2533,2534,2554,2555],[868,1423,2468,2516,2533,2534,2554,2555],[868,1423,2468,2516,2521,2533,2534,2536,2548,2556],[868,1423,2468,2516,2533,2534,2557],[868,1423,2468,2516,2533,2534,2536,2558],[868,1423,2468,2516,2530,2533,2534,2542,2559],[868,1423,2468,2516,2521,2533,2534,2560],[868,1423,2468,2516,2533,2534,2548,2561],[868,1423,2468,2516,2533,2534,2535,2562],[868,1423,2468,2516,2533,2534,2563],[868,1423,2468,2509,2516,2533,2534],[868,1423,2468,2509,2516,2527,2529,2533,2534,2539,2548,2551,2559,2561,2562,2564],[868,1423,2468,2516,2533,2534,2548,2565],[868,1423,2468,2516,2533,2534,2566],[868,1423,2173,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2624,2631],[868,1423,2468,2516,2533,2534,2624,2628],[91,868,1423,2468,2516,2533,2534,2630],[868,1423,2468,2516,2533,2534,2627],[90,91,92,868,1423,2468,2516,2533,2534],[93,868,1423,2468,2516,2533,2534],[91,92,93,868,1423,2468,2516,2533,2534,2592,2625,2626],[90,868,1423,2468,2516,2533,2534],[90,95,96,98,868,1423,2468,2516,2533,2534],[95,96,97,98,868,1423,2468,2516,2533,2534],[99,103,109,778,868,1423,2459,2468,2516,2533,2534],[99,103,104,109,868,1423,2459,2468,2516,2533,2534],[868,1423,2129,2151,2153,2468,2516,2533,2534],[868,1423,2129,2150,2152,2153,2165,2468,2516,2533,2534],[868,1423,2150,2152,2153,2157,2468,2516,2533,2534],[868,1423,2166,2167,2468,2516,2533,2534],[868,1423,2129,2150,2153,2157,2169,2170,2171,2468,2516,2533,2534],[868,1423,2129,2148,2150,2151,2152,2468,2516,2533,2534],[868,1423,2178,2468,2516,2533,2534],[88,868,1423,2152,2153,2154,2155,2156,2161,2168,2172,2177,2179,2468,2516,2533,2534],[868,1423,2151,2468,2516,2533,2534],[868,1423,2150,2151,2152,2468,2516,2533,2534],[868,1423,2151,2157,2158,2160,2468,2516,2533,2534],[868,1423,2129,2150,2153,2468,2516,2533,2534],[868,1423,2150,2153,2468,2516,2533,2534],[868,1423,2150,2151,2153,2159,2468,2516,2533,2534],[868,1423,2129,2147,2153,2468,2516,2533,2534],[868,1423,2150,2468,2516,2533,2534],[868,1423,2129,2153,2468,2516,2533,2534],[868,1423,2174,2175,2468,2516,2533,2534],[868,1423,2175,2176,2468,2516,2533,2534],[868,1423,2174,2468,2516,2533,2534],[868,1423,2149,2468,2516,2533,2534],[868,1423,2180,2468,2516,2533,2534],[868,1423,2129,2180,2182,2468,2516,2533,2534],[88,868,1423,2107,2108,2109,2129,2180,2181,2183,2468,2516,2533,2534],[868,1144,1423,2468,2516,2533,2534],[867,1423,2468,2516,2533,2534],[868,1423,2231,2468,2516,2533,2534],[868,1423,2233,2468,2516,2533,2534],[868,1423,1440,2468,2516,2533,2534],[868,1423,2235,2468,2516,2533,2534],[868,1423,1442,2468,2516,2533,2534],[868,1423,2237,2468,2516,2533,2534],[868,1423,1439,2468,2516,2533,2534],[462,792,793,794,868,1423,2468,2516,2533,2534],[97,99,103,109,154,157,792,793,868,1423,2459,2468,2516,2533,2534],[97,99,103,109,794,868,1423,2459,2468,2516,2533,2534],[462,792,796,797,798,868,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,796,868,1423,2459,2468,2516,2533,2534],[797,868,1423,2468,2516,2533,2534],[462,792,800,801,803,868,1423,2468,2516,2533,2534],[99,103,109,802,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,800,868,1423,2459,2468,2516,2533,2534],[99,103,109,801,868,1423,2459,2468,2516,2533,2534],[462,792,868,1390,1391,1423,2468,2516,2533,2534],[99,103,109,154,157,792,805,808,838,868,1043,1047,1315,1390,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1045,1047,1391,1423,2459,2468,2516,2533,2534],[462,792,833,834,839,840,841,842,868,1423,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,829,838,868,1400,1423,2459,2468,2516,2533,2534],[97,99,103,109,151,154,157,461,792,868,1423,2459,2468,2516,2533,2534],[97,99,103,109,833,868,1423,2459,2468,2516,2533,2534],[99,103,109,833,868,1423,2459,2468,2516,2533,2534],[840,841,868,1423,2468,2516,2533,2534],[462,792,844,845,846,868,1423,2468,2516,2533,2534],[99,103,109,844,868,1423,2459,2468,2516,2533,2534],[845,868,1423,2468,2516,2533,2534],[462,792,848,849,850,868,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,848,868,1423,2459,2468,2516,2533,2534],[849,868,1423,2468,2516,2533,2534],[462,792,852,853,854,855,856,857,868,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1423,2459,2462,2468,2516,2533,2534],[99,103,109,853,868,1423,2459,2462,2468,2516,2533,2534],[99,103,109,852,868,1423,2459,2468,2516,2533,2534],[855,856,868,1423,2468,2516,2533,2534],[462,792,859,860,861,863,864,868,1423,2468,2516,2533,2534],[99,103,109,792,859,868,1423,2459,2468,2516,2533,2534],[99,103,109,862,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,859,868,1423,2459,2468,2516,2533,2534],[99,103,109,859,868,1423,2459,2468,2516,2533,2534],[861,863,868,1423,2468,2516,2533,2534],[462,792,866,868,870,873,1423,2468,2516,2533,2534],[99,103,109,866,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,871,1423,2459,2468,2516,2533,2534],[868,870,872,1423,2468,2516,2533,2534],[462,792,868,875,876,877,1423,2468,2516,2533,2534],[99,103,109,868,875,1423,2459,2468,2516,2533,2534],[868,876,1423,2468,2516,2533,2534],[462,792,868,879,880,881,882,883,884,1423,2468,2516,2533,2534],[99,103,109,868,880,1423,2459,2468,2516,2533,2534],[99,103,109,868,879,1423,2459,2468,2516,2533,2534],[868,882,883,1423,2468,2516,2533,2534],[154,462,792,868,886,887,889,890,891,1423,2468,2516,2533,2534],[99,103,109,157,792,868,886,1423,2459,2468,2516,2533,2534],[99,103,109,868,886,887,889,891,1423,2459,2468,2516,2533,2534],[868,888,890,1423,2468,2516,2533,2534],[99,103,109,868,886,887,1423,2459,2468,2516,2533,2534],[868,886,1423,2468,2516,2533,2534],[99,103,109,154,792,868,887,1423,2459,2468,2516,2533,2534],[462,792,868,1001,1002,1003,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,886,887,889,892,995,997,999,1000,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,838,868,886,887,891,892,1001,1423,2459,2468,2516,2533,2534],[868,1002,1423,2468,2516,2533,2534],[462,792,868,1005,1006,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1005,1423,2459,2468,2516,2533,2534],[99,103,109,868,1006,1423,2459,2468,2516,2533,2534],[462,792,868,1008,1009,1010,1011,1012,1013,1423,2468,2516,2533,2534],[99,103,109,868,1009,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,996,997,1009,1010,1423,2459,2468,2516,2533,2534],[99,103,109,868,1009,1011,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,996,997,1008,1423,2459,2468,2516,2533,2534],[99,103,109,868,1011,1423,2459,2468,2516,2533,2534],[462,792,868,1015,1016,1423,2468,2516,2533,2534],[99,103,109,154,157,792,868,1015,1423,2459,2468,2516,2533,2534],[99,103,109,868,1016,1423,2459,2468,2516,2533,2534],[462,792,868,1025,1423,2468,2516,2533,2534],[462,792,868,1018,1019,1020,1021,1022,1023,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1018,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1019,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,868,1018,1423,2459,2468,2516,2533,2534],[868,1021,1022,1423,2468,2516,2533,2534],[462,792,868,1038,1039,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1036,1037,1038,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1037,1039,1423,2459,2468,2516,2533,2534],[868,1036,1423,2468,2516,2533,2534],[462,792,868,1048,1049,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,995,996,997,1036,1043,1047,1048,1423,2459,2468,2516,2533,2534],[99,103,109,868,1037,1049,1423,2459,2468,2516,2533,2534],[462,792,868,1086,1087,1088,1089,1423,2468,2516,2533,2534],[99,103,109,157,792,859,865,868,875,878,964,1053,1056,1058,1059,1061,1062,1067,1085,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,859,868,875,964,1053,1058,1059,1061,1067,1086,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1086,1423,2459,2468,2516,2533,2534],[99,103,109,779,868,965,997,1086,1088,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1091,1092,1093,1094,1095,1423,2468,2516,2533,2534],[462,792,868,1097,1098,1423,2468,2516,2533,2534],[99,103,109,157,792,868,869,1097,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1098,1423,2459,2468,2516,2533,2534],[462,792,868,1108,1109,1110,1111,1112,1423,2468,2516,2533,2534],[99,103,109,868,966,997,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1100,1107,1109,1400,1423,2459,2468,2516,2533,2534],[868,1111,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1100,1107,1109,1423,2459,2468,2516,2533,2534],[868,869,1423,2468,2516,2533,2534],[462,792,868,1114,1115,1116,1423,2468,2516,2533,2534],[99,100,103,109,157,792,838,868,1100,1107,1109,1113,1400,1423,2459,2468,2516,2533,2534],[868,1115,1423,2468,2516,2533,2534],[99,103,109,157,792,838,868,1100,1107,1109,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1118,1119,1120,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1118,1423,2459,2468,2516,2533,2534],[99,103,109,868,1119,1423,2459,2468,2516,2533,2534],[462,792,868,1052,1053,1054,1055,1423,2468,2516,2533,2534],[99,103,109,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1051,1052,1423,2459,2468,2516,2533,2534],[99,103,109,868,1053,1423,2459,2468,2516,2533,2534],[462,792,868,1122,1123,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1122,1423,2459,2468,2516,2533,2534],[99,103,109,868,1123,1423,2459,2468,2516,2533,2534],[462,792,868,1125,1126,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1053,1056,1125,1423,2459,2468,2516,2533,2534],[99,103,109,868,1053,1056,1126,1423,2459,2468,2516,2533,2534],[462,792,868,1131,1132,1133,1134,1135,1136,1423,2468,2516,2533,2534],[99,103,109,157,462,792,868,1129,1400,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,826,827,829,838,859,865,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,461,462,792,827,829,838,859,862,863,865,868,965,997,1041,1043,1045,1047,1071,1076,1129,1130,1400,1423,2459,2468,2516,2533,2534],[868,1132,1423,2468,2516,2533,2534],[99,103,109,829,838,868,1423,2459,2468,2516,2533,2534],[462,792,868,1138,1139,1140,1423,2468,2516,2533,2534],[99,103,109,868,1138,1423,2459,2468,2516,2533,2534],[868,1139,1423,2468,2516,2533,2534],[462,792,868,1143,1146,1147,1148,1149,1150,1151,1152,1153,1423,2468,2516,2533,2534],[99,103,109,868,1146,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,792,868,1146,1423,2459,2468,2516,2533,2534],[99,103,109,868,1146,1147,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,792,868,1146,1147,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1143,1146,1147,1423,2459,2468,2516,2533,2534],[868,1149,1150,1423,2468,2516,2533,2534],[99,103,109,151,779,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,779,792,868,1142,1143,1145,1147,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1146,1147,1423,2459,2468,2516,2533,2534],[462,792,868,1128,1129,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1128,1423,2459,2468,2516,2533,2534],[99,103,109,868,1129,1423,2459,2468,2516,2533,2534],[462,792,868,1155,1156,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1155,1423,2459,2468,2516,2533,2534],[99,103,109,868,1156,1423,2459,2468,2516,2533,2534],[462,792,868,1158,1159,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1158,1423,2459,2468,2516,2533,2534],[99,103,109,868,1156,1157,1159,1423,2459,2468,2516,2533,2534],[154,794,795,796,798,799,801,804,805,807,808,827,829,830,831,832,833,834,835,836,837,838,839,842,843,844,846,847,848,850,851,852,853,854,857,858,859,860,864,865,866,868,873,874,875,877,878,879,880,881,884,885,886,887,889,891,892,999,1000,1001,1003,1004,1006,1007,1009,1011,1012,1014,1016,1017,1018,1019,1020,1023,1024,1026,1039,1040,1041,1043,1045,1046,1047,1049,1050,1053,1054,1055,1056,1058,1059,1061,1062,1067,1069,1071,1073,1074,1075,1076,1085,1086,1087,1088,1089,1090,1096,1098,1099,1100,1101,1102,1103,1105,1107,1108,1109,1110,1112,1113,1114,1116,1117,1119,1120,1121,1123,1124,1126,1127,1129,1130,1131,1133,1134,1137,1138,1140,1141,1143,1146,1147,1148,1149,1150,1154,1156,1157,1159,1160,1162,1163,1164,1166,1167,1168,1169,1170,1171,1172,1175,1176,1177,1178,1179,1181,1182,1183,1184,1185,1187,1188,1190,1191,1193,1195,1197,1198,1199,1201,1202,1204,1205,1207,1208,1209,1211,1212,1213,1214,1215,1217,1218,1220,1222,1225,1227,1229,1230,1233,1234,1236,1238,1239,1242,1244,1245,1246,1247,1248,1249,1251,1252,1254,1256,1257,1258,1260,1261,1262,1263,1265,1267,1283,1284,1285,1292,1294,1296,1298,1299,1300,1301,1302,1303,1305,1307,1308,1309,1311,1312,1313,1318,1319,1320,1321,1324,1326,1327,1328,1329,1331,1335,1336,1339,1341,1343,1345,1346,1347,1349,1350,1351,1352,1354,1355,1357,1360,1361,1362,1365,1366,1369,1371,1372,1374,1375,1376,1377,1378,1379,1380,1382,1384,1385,1387,1389,1391,1392,1423,2468,2516,2533,2534],[99,103,109,462,792,868,1373,1423,2459,2468,2516,2533,2534],[462,792,868,1161,1162,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1161,1423,2459,2468,2516,2533,2534],[99,103,109,868,1162,1423,2459,2468,2516,2533,2534],[462,792,868,1164,1165,1166,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,999,1000,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,868,1164,1400,1423,2459,2468,2516,2533,2534],[868,1165,1423,2468,2516,2533,2534],[462,792,805,806,807,868,1423,2468,2516,2533,2534],[99,103,109,151,154,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,805,868,1423,2459,2468,2516,2533,2534],[806,868,1423,2468,2516,2533,2534],[462,792,868,1060,1061,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1060,1423,2459,2468,2516,2533,2534],[99,103,109,868,1061,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1376,1377,1378,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1376,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1423,2459,2468,2516,2533,2534],[99,103,109,779,868,1423,2459,2468,2516,2533,2534],[462,792,868,1362,1364,1365,1423,2468,2516,2533,2534],[868,1362,1423,2468,2516,2533,2534],[99,103,109,154,157,792,805,808,838,868,1043,1047,1315,1362,1363,1364,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1045,1047,1362,1365,1423,2459,2468,2516,2533,2534],[462,792,868,1168,1169,1170,1171,1172,1173,1174,1175,1176,1423,2468,2516,2533,2534],[868,1168,1172,1173,1174,1423,2468,2516,2533,2534],[99,103,109,868,1171,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1169,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1169,1170,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1169,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1168,1423,2459,2462,2468,2516,2533,2534],[462,792,868,1380,1381,1423,2468,2516,2533,2534],[99,103,109,151,154,792,805,859,865,868,1423,2459,2468,2516,2533,2534],[868,1380,1423,2468,2516,2533,2534],[462,792,868,1058,1423,2468,2516,2533,2534],[99,103,109,154,157,461,792,868,1057,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1058,1423,2459,2468,2516,2533,2534],[462,792,868,1384,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1383,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1384,1423,2459,2468,2516,2533,2534],[97,99,103,109,157,792,868,1178,1423,2459,2468,2516,2533,2534],[97,99,103,109,157,792,868,1423,2459,2468,2516,2533,2534],[462,792,868,1180,1181,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1180,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1181,1423,2459,2468,2516,2533,2534],[462,792,868,1183,1184,1423,2468,2516,2533,2534],[462,792,868,1186,1187,1423,2468,2516,2533,2534],[99,103,109,157,461,792,827,829,859,865,868,1041,1043,1047,1186,1400,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,859,865,868,1187,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1386,1387,1388,1423,2468,2516,2533,2534],[99,103,109,154,157,792,826,829,838,868,1041,1043,1047,1386,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,829,838,868,1041,1047,1387,1400,1423,2459,2468,2516,2533,2534],[462,792,826,827,828,829,830,831,832,835,836,837,868,1423,2468,2516,2533,2534],[99,103,109,157,792,830,868,1423,2459,2468,2516,2533,2534],[99,103,109,826,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,826,827,829,835,836,868,1423,2459,2468,2516,2533,2534],[99,103,109,826,829,837,838,868,1400,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,828,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,829,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,831,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,832,868,1423,2459,2468,2516,2533,2534],[462,792,868,1189,1190,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1189,1423,2459,2468,2516,2533,2534],[99,103,109,868,1190,1423,2459,2468,2516,2533,2534],[462,792,868,1192,1193,1194,1195,1196,1197,1198,1423,2468,2516,2533,2534],[99,103,109,868,1197,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1193,1194,1423,2459,2468,2516,2533,2534],[99,103,109,868,1195,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1196,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1192,1423,2459,2468,2516,2533,2534],[99,103,109,868,1193,1423,2459,2468,2516,2533,2534],[462,792,868,1200,1201,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1200,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1201,1423,2459,2468,2516,2533,2534],[462,792,868,1203,1204,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1203,1423,2459,2468,2516,2533,2534],[99,103,109,868,1204,1423,2459,2468,2516,2533,2534],[462,792,868,1206,1207,1208,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1206,1423,2459,2468,2516,2533,2534],[99,103,109,868,1207,1423,2459,2468,2516,2533,2534],[462,792,868,1070,1071,1073,1074,1075,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1070,1423,2459,2468,2516,2533,2534],[99,103,109,868,1071,1423,2459,2468,2516,2533,2534],[99,103,109,868,1072,1423,2459,2468,2516,2533,2534],[99,103,109,868,1073,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1358,1360,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1315,1358,1359,1423,2459,2468,2516,2533,2534],[99,103,109,868,1358,1360,1423,2459,2468,2516,2533,2534],[462,792,868,1222,1224,1225,1423,2468,2516,2533,2534],[99,103,109,157,462,792,829,838,868,1219,1223,1224,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1212,1213,1219,1220,1423,2459,2468,2516,2533,2534],[99,100,103,109,154,157,462,779,792,829,838,868,999,1000,1041,1043,1045,1047,1129,1130,1219,1221,1223,1225,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1045,1047,1219,1225,1423,2459,2468,2516,2533,2534],[99,103,109,868,1222,1423,2459,2468,2516,2533,2534],[462,792,868,1227,1228,1229,1230,1231,1232,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1227,1423,2459,2468,2516,2533,2534],[99,103,109,157,462,792,829,838,868,1223,1228,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,462,779,792,829,838,868,999,1000,1041,1043,1045,1047,1071,1076,1129,1130,1219,1223,1227,1229,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1227,1423,2459,2468,2516,2533,2534],[99,103,109,868,1226,1229,1423,2459,2468,2516,2533,2534],[462,792,868,1235,1236,1237,1238,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1237,1423,2459,2468,2516,2533,2534],[99,103,109,868,1238,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,975,997,1235,1423,2459,2468,2516,2533,2534],[99,103,109,868,1236,1423,2459,2468,2516,2533,2534],[462,792,868,1240,1242,1244,1423,2468,2516,2533,2534],[99,103,109,868,1241,1242,1423,2459,2468,2516,2533,2534],[99,103,109,868,1242,1243,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,826,868,1240,1241,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,838,868,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1246,1247,1248,1423,2468,2516,2533,2534],[97,99,103,109,154,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1246,1423,2459,2468,2516,2533,2534],[462,792,868,1368,1369,1370,1371,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1370,1423,2459,2468,2516,2533,2534],[99,103,109,868,1371,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1367,1368,1423,2459,2468,2516,2533,2534],[99,103,109,868,1367,1369,1423,2459,2468,2516,2533,2534],[462,792,868,1250,1251,1423,2468,2516,2533,2534],[99,103,109,157,792,868,869,1250,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1251,1423,2459,2468,2516,2533,2534],[462,792,868,1253,1254,1255,1256,1257,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1255,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1254,1256,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1253,1423,2459,2468,2516,2533,2534],[99,103,109,868,1254,1423,2459,2468,2516,2533,2534],[462,792,868,1259,1260,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1259,1423,2459,2468,2516,2533,2534],[99,103,109,868,1260,1423,2459,2468,2516,2533,2534],[462,792,868,1262,1263,1265,1267,1283,1284,1285,1292,1293,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,2459,2468,2516,2533,2534],[99,103,109,868,1273,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1272,1423,2459,2468,2516,2533,2534],[99,103,109,868,1275,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1263,1264,1270,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1264,1277,1278,1423,2459,2468,2516,2533,2534],[868,1271,1272,1274,1276,1279,1280,1281,1423,2468,2516,2533,2534],[99,100,103,109,157,792,868,1263,1264,1265,1423,2459,2468,2516,2533,2534],[99,103,109,868,1262,1423,2459,2468,2516,2533,2534],[868,1211,1269,1278,1286,1287,1288,1289,1423,2468,2516,2533,2534],[99,103,109,868,1284,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1267,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1267,1286,1423,2459,2468,2516,2533,2534],[99,103,109,868,966,997,1263,1265,1266,1267,1268,1423,2459,2468,2516,2533,2534],[99,103,109,868,1211,1220,1267,1268,1423,2459,2468,2516,2533,2534],[99,103,109,868,1267,1278,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1220,1263,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,965,966,997,1267,1271,1282,1291,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1263,1264,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1211,1218,1220,1263,1264,1266,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1211,1262,1263,1264,1265,1266,1267,1269,1271,1272,1282,1400,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1262,1263,1264,1265,1266,1423,2459,2468,2516,2533,2534],[99,103,109,152,868,1262,1423,2459,2468,2516,2533,2534],[99,103,109,868,1211,1263,1265,1266,1267,1268,1269,1290,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1067,1069,1082,1083,1084,1423,2468,2516,2533,2534],[99,103,109,868,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,868,965,997,1063,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1067,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1067,1068,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1009,1010,1013,1014,1045,1067,1069,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1066,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,965,997,1009,1010,1013,1014,1064,1066,1067,1069,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1065,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,462,776,792,868,965,997,1009,1010,1013,1045,1063,1064,1065,1066,1067,1069,1071,1076,1078,1079,1080,1081,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,792,868,1064,1066,1068,1069,1423,2459,2468,2516,2533,2534],[868,1083,1423,2468,2516,2533,2534],[99,103,109,868,1045,1047,1067,1069,1423,2459,2468,2516,2533,2534],[462,792,868,1295,1296,1298,1299,1300,1301,1423,2468,2516,2533,2534],[99,103,109,868,1296,1299,1300,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1297,1301,1423,2459,2468,2516,2533,2534],[99,103,109,868,1298,1301,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1298,1301,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1295,1423,2459,2468,2516,2533,2534],[99,103,109,868,1296,1423,2459,2468,2516,2533,2534],[99,100,103,109,154,157,792,868,1299,1301,1423,2459,2468,2516,2533,2534],[462,792,868,998,999,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,998,1423,2459,2468,2516,2533,2534],[99,103,109,868,999,1423,2459,2468,2516,2533,2534],[462,792,868,1303,1304,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1303,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1100,1101,1102,1103,1105,1106,1423,2468,2516,2533,2534],[99,103,109,157,792,826,868,869,1100,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,826,838,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1100,1423,2459,2468,2516,2533,2534],[99,103,109,868,1104,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,869,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,838,868,1100,1400,1423,2459,2468,2516,2533,2534],[868,869,1100,1423,2468,2516,2533,2534],[462,792,868,1306,1307,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,995,997,1306,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,868,1307,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1309,1310,1311,1312,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1310,1423,2459,2468,2516,2533,2534],[99,103,109,868,1311,1423,2459,2468,2516,2533,2534],[99,103,109,868,1309,1423,2459,2468,2516,2533,2534],[462,792,868,1041,1043,1044,1045,1046,1423,2468,2516,2533,2534],[99,103,109,154,792,868,1041,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,829,837,838,868,982,996,997,1042,1423,2459,2468,2516,2533,2534],[99,103,109,829,837,838,868,1043,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,827,829,835,838,868,969,997,1041,1043,1044,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,829,838,868,1041,1043,1045,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,827,832,838,868,1423,2459,2468,2516,2533,2534],[462,792,868,1351,1352,1353,1354,1355,1356,1423,2468,2516,2533,2534],[99,103,109,157,792,868,988,1423,2459,2468,2516,2533,2534],[99,103,109,157,461,792,868,988,1351,1352,1423,2459,2468,2516,2533,2534],[99,103,109,868,988,1352,1355,1423,2459,2468,2516,2533,2534],[99,103,109,157,461,792,868,988,1351,1352,1353,1423,2459,2468,2516,2533,2534],[99,103,109,868,988,1352,1354,1400,1423,2459,2468,2516,2533,2534],[99,103,109,859,865,868,1423,2459,2468,2516,2533,2534],[462,792,868,1317,1318,1423,2468,2516,2533,2534],[99,103,109,792,868,1314,1315,1318,1423,2459,2468,2516,2533,2534],[99,103,109,868,1316,1318,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1315,1317,1423,2459,2468,2516,2533,2534],[462,792,868,1329,1330,1423,2468,2516,2533,2534],[868,1229,1233,1326,1328,1423,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1229,1233,1321,1328,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1334,1335,1423,2468,2516,2533,2534],[868,1334,1423,2468,2516,2533,2534],[99,103,109,868,1009,1211,1220,1321,1333,1400,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1332,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1014,1321,1333,1423,2459,2468,2516,2533,2534],[462,792,868,1320,1321,1324,1325,1326,1327,1423,2468,2516,2533,2534],[868,1325,1423,2468,2516,2533,2534],[154,792,868,1321,1322,1423,2468,2516,2533,2534],[868,1321,1323,1423,2468,2516,2533,2534],[99,103,109,868,1321,1322,1323,1324,1423,2459,2468,2516,2533,2534],[99,103,109,157,462,792,868,1321,1323,1423,2459,2468,2516,2533,2534],[99,103,109,868,1320,1322,1323,1324,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,462,792,868,965,997,1009,1010,1013,1129,1320,1321,1322,1323,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1338,1339,1341,1343,1345,1346,1423,2468,2516,2533,2534],[868,1339,1423,2468,2516,2533,2534],[99,103,109,154,157,792,868,1337,1339,1340,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1337,1339,1341,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1344,1423,2459,2468,2516,2533,2534],[99,103,109,868,1345,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1339,1342,1423,2459,2468,2516,2533,2534],[99,103,109,868,1339,1343,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1337,1338,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1339,1423,2459,2468,2516,2533,2534],[868,1211,1212,1213,1214,1215,1217,1218,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1215,1216,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1217,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1210,1423,2459,2468,2516,2533,2534],[462,792,868,1348,1349,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1348,1423,2459,2468,2516,2533,2534],[99,103,109,868,1349,1423,2459,2468,2516,2533,2534],[99,103,109,868,1088,1393,1423,2459,2468,2516,2533,2534],[868,1078,1395,1396,1397,1423,2468,2516,2533,2534],[99,103,109,868,1077,1423,2459,2468,2516,2533,2534],[868,893,894,895,896,897,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,989,990,991,992,993,994,995,996,1423,2468,2516,2533,2534],[779,868,1423,2468,2516,2533,2534],[99,103,109,868,988,1423,2459,2468,2516,2533,2534],[99,103,109,154,779,792,868,898,964,1423,2459,2468,2516,2533,2534],[99,103,109,868,966,1423,2459,2468,2516,2533,2534],[99,103,109,147,148,149,150,151,152,153,154,794,795,796,798,799,801,804,805,807,808,827,829,830,831,832,833,834,835,836,837,838,839,842,843,844,846,847,848,850,851,852,853,854,857,858,859,860,864,865,866,868,869,873,874,875,877,878,879,880,881,884,885,886,887,889,891,892,893,894,895,896,897,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,989,990,991,992,993,994,995,996,997,999,1000,1001,1003,1004,1006,1007,1009,1011,1012,1014,1016,1017,1018,1019,1020,1023,1024,1026,1039,1040,1041,1043,1045,1046,1047,1049,1050,1053,1054,1055,1056,1058,1059,1061,1062,1067,1069,1071,1073,1074,1075,1076,1078,1085,1086,1087,1088,1089,1090,1096,1098,1099,1100,1101,1102,1103,1105,1107,1108,1109,1110,1112,1113,1114,1116,1117,1119,1120,1121,1123,1124,1126,1127,1129,1130,1131,1133,1134,1137,1138,1140,1141,1143,1146,1147,1148,1149,1150,1154,1156,1157,1159,1160,1162,1163,1164,1166,1167,1168,1169,1170,1171,1172,1175,1176,1177,1178,1179,1181,1182,1183,1184,1185,1187,1188,1190,1191,1193,1195,1197,1198,1199,1201,1202,1204,1205,1207,1208,1209,1211,1212,1213,1214,1215,1217,1218,1222,1225,1227,1229,1230,1233,1234,1236,1238,1239,1242,1244,1245,1246,1247,1248,1249,1251,1252,1254,1256,1257,1258,1260,1261,1262,1263,1265,1267,1283,1284,1285,1292,1294,1296,1298,1299,1300,1301,1302,1303,1305,1307,1308,1309,1311,1312,1313,1318,1319,1320,1321,1324,1326,1327,1328,1329,1331,1335,1336,1339,1341,1343,1345,1346,1347,1349,1350,1351,1352,1354,1355,1357,1360,1361,1362,1365,1366,1369,1371,1372,1374,1375,1376,1377,1378,1379,1380,1382,1384,1385,1387,1389,1391,1392,1393,1394,1395,1396,1397,1398,1399,1423,2459,2468,2516,2533,2534],[106,868,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,1423,2468,2516,2533,2534],[99,103,109,868,1088,1090,1423,2459,2468,2516,2533,2534],[776,868,1423,2468,2516,2533,2534],[158,159,160,161,162,163,868,1423,2468,2516,2533,2534],[154,155,156,157,158,159,160,161,162,163,164,165,461,462,463,464,465,466,467,469,777,780,781,782,783,784,785,786,787,788,789,790,791,868,1423,2468,2516,2533,2534],[90,154,792,868,1423,2468,2516,2533,2534],[97,868,1423,2468,2516,2533,2534],[99,103,109,460,868,1423,2459,2468,2516,2533,2534],[155,156,157,165,461,462,463,464,465,466,467,468,868,1423,2468,2516,2533,2534],[99,103,109,462,868,1423,2459,2468,2516,2533,2534],[155,156,157,868,1423,2468,2516,2533,2534],[99,103,109,157,868,1423,2459,2468,2516,2533,2534],[99,103,109,155,156,868,1423,2459,2468,2516,2533,2534],[151,868,1423,2468,2516,2533,2534],[148,151,868,1423,2468,2516,2533,2534],[868,1423,2242,2468,2516,2533,2534],[868,1423,1474,2468,2516,2533,2534],[868,1423,1472,1473,1475,2468,2516,2533,2534],[868,1423,1474,1478,1481,1483,1484,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,2468,2516,2533,2534],[868,1423,1474,1478,1479,2468,2516,2533,2534],[868,1423,1474,1478,2468,2516,2533,2534],[868,1423,1474,1475,1528,2468,2516,2533,2534],[868,1423,1480,2468,2516,2533,2534],[868,1423,1480,1485,2468,2516,2533,2534],[868,1423,1480,1484,2468,2516,2533,2534],[868,1423,1477,1480,1484,2468,2516,2533,2534],[868,1423,1480,1483,1506,2468,2516,2533,2534],[868,1423,1478,1480,2468,2516,2533,2534],[868,1423,1477,2468,2516,2533,2534],[868,1423,1474,1482,2468,2516,2533,2534],[868,1423,1478,1482,1483,1484,2468,2516,2533,2534],[868,1423,1477,1478,2468,2516,2533,2534],[868,1423,1474,1475,2468,2516,2533,2534],[868,1423,1474,1475,1528,1530,2468,2516,2533,2534],[868,1423,1474,1531,2468,2516,2533,2534],[868,1423,1538,1539,1540,2468,2516,2533,2534],[868,1423,1474,1528,1529,2468,2516,2533,2534],[868,1423,1474,1476,1543,2468,2516,2533,2534],[868,1423,1532,1534,2468,2516,2533,2534],[868,1423,1531,1534,2468,2516,2533,2534],[868,1423,1474,1483,1492,1528,1529,1530,1531,1534,1535,1536,1537,1541,1542,2468,2516,2533,2534],[868,1423,1509,1534,2468,2516,2533,2534],[868,1423,1532,1533,2468,2516,2533,2534],[868,1423,1474,1543,2468,2516,2533,2534],[868,1423,1531,1535,1536,2468,2516,2533,2534],[868,1423,1534,2468,2516,2533,2534],[868,1423,1956,1957,1958,1959,2468,2516,2533,2534],[868,1423,1956,1957,1958,2468,2516,2533,2534],[868,1423,1956,2468,2516,2533,2534],[868,1423,1956,1957,2468,2516,2533,2534],[775,868,1423,2468,2516,2533,2534],[99,103,108,868,1423,2459,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2588],[868,1423,2468,2516,2533,2534,2586,2588],[868,1423,2468,2516,2533,2534,2577,2585,2586,2587,2589,2591],[868,1423,2468,2516,2533,2534,2575],[868,1423,2468,2516,2533,2534,2578,2583,2588,2591],[868,1423,2468,2516,2533,2534,2574,2591],[868,1423,2468,2516,2533,2534,2578,2579,2582,2583,2584,2591],[868,1423,2468,2516,2533,2534,2578,2579,2580,2582,2583,2591],[868,1423,2468,2516,2533,2534,2575,2576,2577,2578,2579,2583,2584,2585,2587,2588,2589,2591],[868,1423,2468,2516,2533,2534,2591],[868,1423,2468,2516,2533,2534,2573,2575,2576,2577,2578,2579,2580,2582,2583,2584,2585,2586,2587,2588,2589,2590],[868,1423,2468,2516,2533,2534,2573,2591],[868,1423,2468,2516,2533,2534,2578,2580,2581,2583,2584,2591],[868,1423,2468,2516,2533,2534,2582,2591],[868,1423,2468,2516,2533,2534,2583,2584,2588,2591],[868,1423,2468,2516,2533,2534,2576,2586],[868,1423,1741,2468,2516,2533,2534],[868,1423,1742,1743,1744,2468,2516,2533,2534],[868,1423,1742,1743,1745,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2568,2623,2624],[868,1423,2468,2516,2533,2534,2567,2568],[868,1423,2468,2516,2533,2534,2573,2612],[868,1423,2468,2516,2533,2534,2599],[868,1423,2468,2516,2533,2534,2595,2612],[868,1423,2468,2516,2533,2534,2594,2595,2596,2599,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620],[868,1423,2468,2516,2533,2534,2616],[868,1423,2468,2516,2533,2534,2594,2596,2599,2617,2618],[868,1423,2468,2516,2533,2534,2615,2619],[868,1423,2468,2516,2533,2534,2594,2597,2598],[868,1423,2468,2516,2533,2534,2597],[868,1423,2468,2516,2533,2534,2594,2595,2596,2599,2611],[868,1423,2468,2516,2533,2534,2600,2605,2611],[868,1423,2468,2516,2533,2534,2611],[868,1423,2468,2516,2533,2534,2600,2611],[868,1423,2468,2516,2533,2534,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610],[868,1423,2129,2162,2468,2516,2533,2534],[868,1423,2129,2468,2516,2533,2534],[868,1423,2162,2163,2164,2468,2516,2533,2534],[868,1423,2129,2163,2468,2516,2533,2534],[868,1423,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2128,2468,2516,2533,2534],[868,1423,2111,2112,2129,2468,2516,2533,2534],[868,1423,2111,2129,2468,2516,2533,2534],[868,1423,2122,2129,2468,2516,2533,2534],[868,1423,2124,2125,2126,2127,2468,2516,2533,2534],[868,1423,2113,2129,2468,2516,2533,2534],[868,1423,2138,2468,2516,2533,2534],[868,1423,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2468,2516,2533,2534],[868,1423,2130,2138,2140,2468,2516,2533,2534],[868,1423,2136,2138,2145,2468,2516,2533,2534],[868,1423,2140,2468,2516,2533,2534],[868,1423,2138,2140,2468,2516,2533,2534],[868,1423,2139,2468,2516,2533,2534],[868,1423,2130,2138,2468,2516,2533,2534],[868,1423,2131,2132,2133,2134,2135,2136,2137,2139,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2636],[868,1423,1931,2468,2516,2533,2534],[868,1423,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,2468,2516,2533,2534],[868,1423,1565,2468,2516,2533,2534],[868,1423,1625,2468,2516,2533,2534],[868,1423,1620,1621,2468,2516,2533,2534],[99,103,109,868,1423,1690,2459,2468,2516,2533,2534],[868,1423,1693,2468,2516,2533,2534],[99,103,109,868,1423,1639,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1622,1639,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1723,2459,2468,2516,2533,2534],[868,1423,1699,2468,2516,2533,2534],[99,103,109,868,1423,1667,2459,2468,2516,2533,2534],[99,103,109,868,1423,1723,1727,2459,2468,2516,2533,2534],[868,1423,1703,2468,2516,2533,2534],[868,1423,1631,1632,2468,2516,2533,2534],[868,1423,1630,2468,2516,2533,2534],[99,103,109,868,1423,1623,2459,2468,2516,2533,2534],[99,103,109,868,1423,1644,2459,2468,2516,2533,2534],[868,1423,1641,1642,2468,2516,2533,2534],[868,1423,1644,2468,2516,2533,2534],[868,1423,1641,2468,2516,2533,2534],[868,1423,1636,2468,2516,2533,2534],[868,1423,1667,1674,1706,1721,1722,1953,2468,2516,2533,2534],[99,103,109,868,1423,1707,2459,2468,2516,2533,2534],[99,103,109,868,1423,1636,1661,2459,2468,2516,2533,2534],[868,1423,1675,2468,2516,2533,2534],[868,1423,1677,2468,2516,2533,2534],[868,1423,1730,2468,2516,2533,2534],[99,103,109,868,1423,1636,1667,2459,2468,2516,2533,2534],[868,1423,1680,2468,2516,2533,2534],[868,1423,1732,2468,2516,2533,2534],[99,103,109,868,1423,1639,1667,2459,2468,2516,2533,2534],[868,1423,1734,2468,2516,2533,2534],[99,103,109,868,1423,1636,1637,1667,2459,2468,2516,2533,2534],[868,1423,1668,2468,2516,2533,2534],[868,1423,1709,2468,2516,2533,2534],[868,1423,1649,2468,2516,2533,2534],[868,1423,1736,2468,2516,2533,2534],[868,1423,1683,2468,2516,2533,2534],[99,103,109,868,1423,1667,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1636,1656,1686,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1618,2459,2468,2516,2533,2534],[868,1423,1738,2468,2516,2533,2534],[99,103,109,868,1423,1641,1644,2459,2468,2516,2533,2534],[868,1423,1949,2468,2516,2533,2534],[99,103,109,868,1423,1643,1644,1740,1948,2459,2468,2516,2533,2534],[868,1423,1951,2468,2516,2533,2534],[868,1423,1663,2468,2516,2533,2534],[868,1423,1662,2468,2516,2533,2534],[868,1423,1628,2468,2516,2533,2534],[868,1423,1688,2468,2516,2533,2534],[868,1423,1713,2468,2516,2533,2534],[99,103,109,868,1423,1665,2459,2468,2516,2533,2534],[868,1423,1626,1627,1640,1644,1645,1646,1647,1648,1650,1724,1725,1726,1727,1728,1729,1731,1733,1735,1737,1739,1950,1952,2468,2516,2533,2534],[868,1423,1619,1622,1624,1640,1644,1645,1646,1647,1648,1650,1953,2468,2516,2533,2534],[868,1423,1619,1622,1624,1629,1633,2468,2516,2533,2534],[868,1423,1634,1673,2468,2516,2533,2534],[868,1423,1669,1670,1671,1672,2468,2516,2533,2534],[868,1423,1676,1678,1679,1681,1682,1684,1685,1687,1689,1691,1692,1694,1695,1696,1697,1698,1700,1701,1702,1704,1705,2468,2516,2533,2534],[868,1423,1708,1710,1711,1712,1714,1715,1716,1717,1718,1719,1720,2468,2516,2533,2534],[868,1423,1656,2468,2516,2533,2534],[868,1423,1655,2468,2516,2533,2534],[99,103,109,868,1423,1639,1644,2459,2468,2516,2533,2534],[99,103,109,868,1423,1622,1639,1644,1646,2459,2468,2516,2533,2534],[868,1423,1639,1643,2468,2516,2533,2534],[868,1423,1618,1637,1640,1644,1645,1646,1647,1648,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,2468,2516,2533,2534],[868,1423,1651,2468,2516,2533,2534],[868,1423,1639,2468,2516,2533,2534],[99,103,109,868,1423,1637,1662,2459,2468,2516,2533,2534],[868,1423,1637,2468,2516,2533,2534],[99,103,109,868,1423,1637,1651,2459,2468,2516,2533,2534],[868,1423,2468,2481,2485,2516,2533,2534,2559],[868,1423,2468,2481,2516,2533,2534,2548,2559],[868,1423,2468,2476,2516,2533,2534],[868,1423,2468,2478,2481,2516,2533,2534,2556,2559],[868,1423,2468,2516,2533,2534,2536,2556],[868,1423,2468,2476,2516,2533,2534,2566],[868,1423,2468,2478,2481,2516,2533,2534,2536,2559],[868,1423,2468,2473,2474,2477,2480,2516,2527,2533,2534,2548,2559],[868,1423,2468,2481,2488,2516,2533,2534],[868,1423,2468,2473,2479,2516,2533,2534],[868,1423,2468,2481,2502,2503,2516,2533,2534],[868,1423,2468,2477,2481,2516,2533,2534,2551,2559,2566],[868,1423,2468,2502,2516,2533,2534,2566],[868,1423,2468,2475,2476,2516,2533,2534,2566],[868,1423,2468,2481,2516,2533,2534],[868,1423,2468,2475,2476,2477,2478,2479,2480,2481,2482,2483,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2503,2504,2505,2506,2507,2508,2516,2533,2534],[868,1423,2468,2481,2496,2516,2533,2534],[868,1423,2468,2481,2488,2489,2516,2533,2534],[868,1423,2468,2479,2481,2489,2490,2516,2533,2534],[868,1423,2468,2480,2516,2533,2534],[868,1423,2468,2473,2476,2481,2516,2533,2534],[868,1423,2468,2481,2485,2489,2490,2516,2533,2534],[868,1423,2468,2485,2516,2533,2534],[868,1423,2468,2479,2481,2484,2516,2533,2534,2559],[868,1423,2468,2473,2478,2481,2488,2516,2533,2534],[868,1423,2468,2516,2533,2534,2548],[868,1423,2468,2476,2481,2502,2516,2533,2534,2564,2566],[868,1423,2468,2516,2533,2534,2625,2633,2634,2635,2637],[868,1423,2468,2516,2533,2534,2625,2633],[868,1423,2468,2516,2533,2534,2634],[868,1423,2468,2516,2533,2534,2638,2639],[868,1423,2468,2516,2533,2534,2638,2639,2640],[868,1423,2468,2516,2533,2534,2639,2643,2644],[868,1423,2468,2516,2533,2534,2639,2643],[868,1423,2468,2516,2533,2534,2624,2639,2643,2644],[868,1423,2468,2516,2533,2534,2568,2572,2623,2624,2642],[868,1423,2468,2516,2533,2534,2624],[868,1423,2468,2516,2533,2534,2624,2648],[87,868,1423,2468,2516,2533,2534],[83,84,86,868,1423,2468,2516,2527,2528,2530,2531,2532,2533,2534,2536,2548,2556,2559,2565,2566,2568,2569,2570,2571,2572,2592,2593,2622,2623,2624],[83,84,85,868,1423,2468,2516,2533,2534,2570],[83,868,1423,2468,2516,2533,2534],[84,868,1423,2468,2516,2533,2534],[85,86,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2621],[868,1423,2468,2516,2533,2534,2568,2624],[99,103,109,868,1423,1438,1439,1441,1442,1443,2459,2468,2516,2533,2534],[99,102,103,109,868,1423,2459,2468,2516,2533,2534],[94,98,868,1423,2468,2516,2533,2534],[98,868,1423,2468,2516,2533,2534],[99,103,109,868,1423,2048,2049,2459,2468,2516,2533,2534],[99,103,109,868,1423,2048,2459,2468,2516,2533,2534],[99,103,109,868,1423,2031,2459,2468,2516,2533,2534],[99,103,109,868,1423,2033,2459,2468,2516,2533,2534],[99,103,109,868,1423,2033,2034,2459,2468,2516,2533,2534],[868,1423,2031,2468,2516,2533,2534],[99,103,109,868,1423,2036,2459,2468,2516,2533,2534],[99,103,109,868,1423,2038,2459,2468,2516,2533,2534],[99,103,109,868,1423,2038,2039,2040,2459,2468,2516,2533,2534],[868,1423,2069,2468,2516,2533,2534],[868,1423,2032,2035,2037,2041,2042,2047,2050,2052,2053,2054,2056,2057,2061,2063,2065,2068,2070,2071,2468,2516,2533,2534],[99,103,109,868,1423,2051,2459,2468,2516,2533,2534],[868,1423,2043,2044,2468,2516,2533,2534],[868,1423,2045,2046,2468,2516,2533,2534],[868,1423,2066,2067,2468,2516,2533,2534],[99,103,109,868,1423,2066,2459,2468,2516,2533,2534],[868,1423,2058,2059,2060,2468,2516,2533,2534],[99,103,109,868,1423,2058,2459,2468,2516,2533,2534],[99,103,109,868,1423,2055,2459,2468,2516,2533,2534],[99,103,109,868,1423,2062,2459,2468,2516,2533,2534],[99,103,109,868,1423,2064,2459,2468,2516,2533,2534],[99,103,109,868,1423,2073,2459,2468,2516,2533,2534],[868,1423,2024,2030,2072,2074,2468,2516,2533,2534],[868,1423,2025,2026,2468,2516,2533,2534],[99,103,109,868,1423,2025,2459,2468,2516,2533,2534],[99,103,109,868,1423,2023,2024,2459,2468,2516,2533,2534],[99,103,109,868,1423,2018,2027,2459,2468,2516,2533,2534],[99,103,109,868,1423,2018,2023,2459,2468,2516,2533,2534],[868,1423,2023,2468,2516,2533,2534],[868,1423,2028,2029,2468,2516,2533,2534],[868,1423,2019,2020,2021,2022,2468,2516,2533,2534],[868,1423,2019,2020,2021,2468,2516,2533,2534],[868,1423,2019,2468,2516,2533,2534],[868,1423,2019,2020,2468,2516,2533,2534],[111,113,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[112,113,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,121,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,121,122,868,1423,2468,2516,2533,2534],[868,1422,2468,2516,2533,2534],[868,1423,1424,2468,2516,2533,2534],[100,868,1423,1578,2468,2516,2533,2534],[100,124,126,132,868,1423,1578,1580,2468,2516,2533,2534],[100,124,868,1423,1578,2468,2516,2533,2534],[99,100,101,103,105,106,107,109,133,136,868,1423,1580,1582,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,129,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1457,2017,2459,2468,2516,2533,2534],[88,99,100,101,103,109,133,460,868,1401,1423,1433,1453,1461,1638,1639,2017,2078,2079,2080,2081,2084,2098,2099,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1581,2459,2462,2468,2516,2533,2534],[99,100,101,103,105,109,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2103,2459,2468,2516,2533,2534],[88,99,100,101,103,109,868,1406,1423,2184,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,2186,2459,2468,2516,2533,2534],[100,460,868,1423,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2195,2196,2197,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1400,1423,2195,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1406,1423,2196,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1436,1587,2200,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2200,2459,2468,2516,2533,2534],[100,868,1423,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2200,2201,2202,2203,2204,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2186,2200,2205,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2207,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2187,2459,2468,2516,2533,2534],[99,100,103,109,868,1400,1401,1423,1436,1453,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2187,2188,2189,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1401,1423,1453,1580,2185,2186,2187,2189,2190,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1467,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1400,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1470,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2017,2075,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1433,1467,1468,1469,1471,1544,1545,1579,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,124,126,133,868,1400,1401,1423,1454,1455,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,2081,2225,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,1579,2459,2468,2516,2533,2534],[100,130,136,868,1423,2468,2516,2533,2534],[100,103,868,1423,2462,2468,2516,2533,2534],[100,868,1401,1423,2228,2468,2516,2533,2534],[99,100,103,109,133,868,1423,2459,2468,2516,2533,2534],[100,868,1423,1441,2232,2234,2236,2238,2468,2516,2533,2534],[99,100,103,109,460,868,1423,2459,2468,2516,2533,2534],[88,99,100,103,109,868,1423,2241,2242,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,2244,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,1573,2246,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,139,868,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,105,109,136,138,140,141,142,144,145,868,1402,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,130,139,143,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,133,146,868,1401,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,130,136,868,1423,1580,2459,2468,2516,2533,2534],[88,99,100,101,103,105,109,136,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,137,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,868,1409,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,129,868,1406,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1407,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,136,868,1405,1408,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1403,1404,1410,1423,2459,2468,2516,2533,2534],[88,99,100,103,109,868,1423,1579,1583,1584,1585,2459,2468,2516,2533,2534],[100,103,124,125,129,130,132,133,868,1423,1572,1573,2462,2468,2516,2533,2534],[100,103,868,1423,1580,2462,2468,2516,2533,2534],[100,103,107,129,133,868,1423,1572,2462,2468,2516,2533,2534],[100,103,125,868,1411,1413,1414,1417,1418,1420,1421,1423,1426,1430,1432,1567,1571,2462,2468,2516,2533,2534],[100,109,868,1423,2468,2516,2533,2534],[100,109,124,868,1423,1579,2468,2516,2533,2534],[100,103,109,125,129,868,1423,2462,2468,2516,2533,2534],[90,100,109,128,131,134,135,868,1423,2468,2516,2533,2534],[100,103,109,125,127,128,131,132,868,1423,1573,2462,2468,2516,2533,2534],[100,128,130,131,133,868,1423,1573,2468,2516,2533,2534],[100,868,1376,1400,1423,2468,2516,2533,2534],[100,868,1423,1424,2468,2516,2533,2534],[100,868,1423,1452,1453,2468,2516,2533,2534],[100,133,868,1423,2468,2516,2533,2534],[100,110,123,126,868,1423,1574,1575,2468,2516,2533,2534],[100,110,868,1423,1575,2468,2516,2533,2534],[100,110,123,124,125,126,132,868,1401,1423,1573,1575,1576,1577,2468,2516,2533,2534],[110,868,1423,1575,2468,2516,2533,2534],[100,868,1423,2461,2468,2516,2533,2534],[90,100,123,868,1423,2468,2516,2533,2534],[99,100,101,103,109,125,127,132,133,460,868,1400,1416,1419,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,125,127,132,133,868,1400,1415,1416,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,125,127,128,131,133,460,868,1400,1415,1416,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1597,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1587,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1587,2254,2459,2468,2516,2533,2534],[99,100,101,103,109,143,868,1400,1423,1587,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1587,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1455,1588,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1588,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1598,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1599,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1435,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1580,1600,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2264,2267,2268,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2264,2265,2266,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2265,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2264,2459,2468,2516,2533,2534],[99,100,101,103,109,136,868,1423,2264,2459,2468,2516,2533,2534],[99,100,103,109,868,1400,1401,1423,1600,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1600,2270,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1600,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1406,1423,1593,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1453,1593,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1406,1423,1436,1593,2274,2275,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1579,1601,1602,1603,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,2277,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,2280,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1424,1425,1433,1549,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1589,2279,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1423,1436,1573,1589,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,133,868,1401,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1464,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1425,1433,1436,1579,2102,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1437,1467,1468,1471,1544,1545,1547,1579,1605,2102,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,868,1400,1401,1423,1433,1436,1468,2287,2288,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1464,1465,1471,1544,1545,1547,1579,1601,2207,2208,2290,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1464,1471,1544,1545,1547,1579,1601,2207,2208,2290,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,2185,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,460,775,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2459,2468,2516,2533,2534],[100,868,1423,2295,2297,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2303,2459,2468,2516,2533,2534],[100,868,1423,2304,2305,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2459,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2307,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2307,2459,2468,2516,2533,2534],[100,868,1423,2307,2308,2309,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2311,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2311,2459,2468,2516,2533,2534],[100,868,1423,2311,2312,2313,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2315,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2315,2459,2468,2516,2533,2534],[100,868,1423,2315,2316,2317,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2300,2319,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2319,2459,2468,2516,2533,2534],[100,868,1423,2319,2320,2321,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2300,2323,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2323,2459,2468,2516,2533,2534],[100,868,1423,2323,2324,2325,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2327,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2327,2459,2468,2516,2533,2534],[100,868,1423,2327,2328,2329,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2331,2459,2468,2516,2533,2534],[100,868,1423,2331,2332,2333,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2186,2335,2459,2468,2516,2533,2534],[100,868,1423,2335,2336,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2338,2459,2468,2516,2533,2534],[100,868,1423,2338,2339,2340,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2342,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2342,2459,2468,2516,2533,2534],[100,868,1423,2342,2343,2344,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2346,2459,2468,2516,2533,2534],[100,868,1423,2346,2347,2348,2468,2516,2533,2534],[99,100,101,103,109,868,1406,1423,1427,1428,2294,2301,2302,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1427,1429,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1423,2351,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2352,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2294,2298,2459,2468,2516,2533,2534],[99,100,101,103,109,123,868,1400,1401,1423,1604,1606,1612,2227,2354,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1612,2251,2356,2357,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,2228,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1612,2186,2210,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1612,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1425,2459,2468,2516,2533,2534],[99,100,101,103,109,132,460,868,1400,1401,1423,1467,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1423,1424,1425,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1424,1425,1549,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1412,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1424,1431,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1424,1431,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1436,1594,2459,2468,2516,2533,2534],[99,100,101,103,109,110,460,868,1400,1423,1433,1437,1444,1575,1590,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1590,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2207,2208,2374,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1436,1590,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1590,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,2368,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1590,2368,2369,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2372,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1444,1550,2459,2468,2516,2533,2534],[100,868,1423,1437,1464,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1465,1550,2378,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1436,1550,2378,2379,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1424,1436,1550,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1433,1435,1436,1437,1547,1550,1551,2380,2381,2382,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1550,2385,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1550,2386,2459,2468,2516,2533,2534],[99,100,101,103,109,123,143,868,1400,1401,1423,1591,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1436,1573,1591,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1591,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1591,2391,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,1434,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1601,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1601,2394,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1602,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1602,2396,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1437,1461,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1425,1433,1447,1461,1462,1469,1547,1568,1569,1570,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1601,1602,1603,1605,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,1605,2227,2399,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1400,1406,1423,1573,1604,2186,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1400,1401,1423,1436,1604,2401,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1604,1605,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1605,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1605,2403,2404,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1592,2406,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1606,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1606,2408,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1606,2410,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1415,1423,1607,2252,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1607,2252,2412,2459,2468,2516,2533,2534],[99,100,101,103,109,123,868,1423,1607,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1608,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1609,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1609,2416,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1401,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1423,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,143,146,868,1400,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1401,1423,1436,1573,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1610,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1610,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1580,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1436,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1437,1465,1547,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1595,1601,2207,2208,2434,2435,2436,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1595,2186,2434,2435,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1595,1601,2434,2435,2438,2459,2468,2516,2533,2534],[100,868,1423,1595,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1433,1468,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1425,1433,1435,1436,1437,1461,1469,1546,1547,1579,1601,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1425,1433,1435,1436,1437,1461,1469,1546,1547,1579,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1433,1579,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1424,1425,1433,1549,1550,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1425,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1565,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1443,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1451,1455,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1437,1444,1445,1446,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1433,1437,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1424,1433,1457,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1446,1469,1568,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1568,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,1436,1464,1465,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1450,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1449,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1446,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1437,1447,1448,1456,1458,1459,1460,1461,1462,1463,1466,1546,1579,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1546,1547,1548,1551,1566,1579,2102,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1546,1547,1548,1551,1566,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1433,1437,1447,1456,1458,1459,1460,1461,1462,1466,1568,1569,1570,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1547,1548,1551,1566,1579,1601,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2195,2197,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1455,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1423,1578,2098,2459,2468,2516,2533,2534],[99,100,101,103,109,127,133,460,868,1400,1401,1419,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,460,868,1406,1423,1433,1434,1444,1579,2252,2459,2468,2516,2533,2534],[103,868,1423,2462,2468,2516,2533,2534],[100,868,1423,2468,2516,2528,2533,2534,2538,2559,2624,2629,2632,2641,2645,2646,2647,2649,2650]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"19efad8495a7a6b064483fccd1d2b427403dd84e67819f86d1c6ee3d7abf749c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eef826bc4a19de22155487984e345a34c9cd511dd1170edc7a447cb8231dd4a","affectsGlobalScope":true,"impliedFormat":99},"424faf9241dd699dda995b367ed36665732da1e6ec1f33b2fd40394488ecac92",{"version":"f468b74459f1ad4473b36a36d49f2b255f3c6b5d536c81239c2b2971df089eaf","impliedFormat":1},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"524a409ad72186b7f6cb16898c349465cfa876f641d6cb6137b3123d5cfca619","impliedFormat":1},{"version":"ebe84ad8344962b7117a3b95065f47383215020eaf1b626463863b45b4d16e62","impliedFormat":1},{"version":"dc0c80f91a4d46c5c4f625a35601ff3c815e2395e6680bacfa12970fc6d49c93","impliedFormat":1},{"version":"3e74c6f34a28b7c948bfdaf19172000d589093660b3605f8c21c1b30173c729b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"88ad1af02cacc61bf79683b021d326eeafc91231660a06495c5046d4649ec3a2","impliedFormat":1},{"version":"c0191592be8eb7906f99ac4b8798d80a585b94001ea1a5f50d6ce5b0d13a5c62","impliedFormat":99},{"version":"318d19118bf6bf8d088441c948990f53cafc79ed581b78f3d41a0f7a3f5f145c","impliedFormat":1},{"version":"549d2a340dc2ac41cf361e10d14d3a2cecd425ffd6fc6f764964c5c4ee0b63d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"860814185d89237c84a6bd1e4f108c2c0b2401609a74a33bc7cab14ea4ee9f21","impliedFormat":99},{"version":"e1ddcbacb7658bf0683bca4ebd31bd05f64823712651263bfc75128a45f00ff7","impliedFormat":99},{"version":"cd0e1f0599b6d8fdd60dc96fdc8527cc60d903e8dffe0b93b7a3527e09e23d49","impliedFormat":99},{"version":"4d643a0df06c8a561870a279ccf6ff9d29a1f04e2c9378eba501eb0e058e13fa","impliedFormat":99},{"version":"e3a0a9032e3ce3945446b33b6329405565aaf5d0e7c115250b972f02dc64d0ae","impliedFormat":1},"6ef27fa41da37327fdb938f081d14851cc26dda0ea642190a0c5f9577a9f1edf",{"version":"52f5c39e78a90c1d8ed7db18f39d890b2e8464a3f44d4233617893f6648e317d","impliedFormat":1},{"version":"a69e8bce30aea7ec98f3b6ddfbc378c92826fede01aafbaec703057c2503ea51","impliedFormat":1},{"version":"b7e91960129ba8a3c22f2402dc8d901b07a44fd11085309ba4780ea044f08323","impliedFormat":99},{"version":"380b919bfa0516118edaf25b99e45f855e7bc3fd75ce4163a1cfe4a666388804","impliedFormat":1},{"version":"40de86ced5175a6ffe84a52abe6ac59ac0efbc604a5975a8c6476c3ddc682ff1","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"5a0b15210129310cee9fa6af9200714bb4b12af4a04d890e15f34dbea1cf1852","impliedFormat":1},{"version":"0244119dbcbcf34faf3ffdae72dab1e9bc2bc9efc3c477b2240ffa94af3bca56","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"49c36529ee09ea9ce19525af5bb84985ea8e782cb7ee8c493d9e36d027a3d019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},"e0f525d113db44555dd40d6e1fd5e2708f6626c28ed93fa5a3e7864343a4e0b9","d6d50f70ef4224b378ff4a44a6772a5d6c71185869a1dca5dd69198552e33c38","4d85921513f6d9f0e98515890c56d6f150d1caa17cf2cdab54fa0837fa48be58","d287164f84628dcbf023783cfbaccecc0277307f30884afd734c778aaff927c0","56c90889c4d093f8a990ccd3f941cf0bd6b78404aa181416c6d856e3b70115f2","8fe156b1d07c194843a01048c28f920fb155943097eec7b3e06c23fa238cf29f","1249c8a45fe697d72e57c06af96b5b1b1fd02fe0ecdeaa24b5e42676e1686b39","d25f406cdc96422dc6e297a4fc1ea5f08a64ac5f917a70d634bb336e9faf2bd4","c066f545f56d4a7ceb40c7ba6f65af579295560016fd32cef080ac44e9a1437f","fef37fa42bdf34c9082bbdc575cc7e6f13eb9bb57752aa627aad29a648a540c8","7cac9e7dc9264c05eb8b8bd22289f2a4452f97a06daf49b306b76d3106b523c8","fe33311e48e4bcfb8618123fb0134917d3e5f282de6febbfb711c91a2af4f8e0","138ce2f3a7361fe0151dc4fa5720981e62631e3a6503f18d8f4adec58be90da7","fcd22ca9951b617db6b7e805e4dd290a925da6df49e8cbe4818b557bc4ba72c8","41c71bd48f563ed0c2643897c7580c3473a2c45de816131c7f497ada25aa4aca","d3bd74d3efb3eedf8ef3202bd4633e0078a2f0c071347b84ee5e9655c72ec842","396cba6f686e1e46bab41d2796f030d2005694313bd86b0199711eb811661237","3227f8860dca1346c30b08a6b2d66749d65f6ffaab10bc1f1bbad9db23583ac5","1e6bcca7dec48f12c2eb622d3e75a503abd1a8786b28e4c5ab9aeeabaa4db520","817f82dc697d9df3ad46d5790d6fffa3fa490c77a88488f64ab6cad508d5a94f","e18396704db58a17a9b6bc0203e69648d35e23bcb5d654183ff5aa3ebe0cfcc7","c73047306842c0bf13cd3f7b3be3af76e8d58ad16ab549a8812c4f51e4b7f76f","7faca21e2c4e0119f1386f27695516fabc4bceca350e96f6e5c37a45605779bf",{"version":"922d92b500c5359d96b1eff81fe281d1f5350120db253773a3f1c85985c4a9bf","impliedFormat":1},{"version":"ac4efaa37cc9798679da23050bd4e374affb69acda810572d73b11fce731308a","impliedFormat":1},{"version":"c477f69ebfcd6153946ce95799cf49b1c7bce11cec250dab336516b5ad27d72b","impliedFormat":1},{"version":"6355649c4afa3e56a8dd808c3330952154d900bdab5a078dbaffe3974c7baab2","impliedFormat":1},{"version":"5e7185c89a21a5406274b1f010bdce770ad45e7cf09a8b8b346bac352939164a","impliedFormat":1},{"version":"9e9df7677da806cf5eabc7899cb66f6eb075f6c20ed1761a2e882c46883d1ce6","impliedFormat":1},{"version":"633a12dbfb5225a7284b1fa29993f681edf1fe4b36178650d6b4ea1962307f07","impliedFormat":1},{"version":"31ba0d4593007ba73ea1cff32896f6ba551a5794a880c032df2d10aecbc82fe6","impliedFormat":1},{"version":"b4f9fb54a352a0319f6de11eb784b8c9be6aa7b0c65e2fbc8e6822c8f4622ec5","impliedFormat":1},{"version":"24fd9b011d5f800715009959e4c9fcf8dc8a458d4d72e762380e8031f16be8cc","impliedFormat":1},{"version":"bd9462141e563c72110be58bc0e62ca260a62abe07cb4c951d64e636eee9fa60","impliedFormat":1},{"version":"1147ac71b3cfc8d6e9ebf4bf06435bd0a5b6d72a5457b7b00428f218bd01c2e7","impliedFormat":1},{"version":"9a643956e978408cff58f04e3001a41384ed0b4b6f43eeb2a9f91a70f56d2131","impliedFormat":1},{"version":"94d96cc9eb83bf3f3b67497f77d53298fed988c2a00899ba18bc23a8455a6064","impliedFormat":1},{"version":"446d5326728f7110b6180431f407bd8a8344129621fb22130cfdb618aa62e514","impliedFormat":1},{"version":"025b16217c6d980741432fc156bdcbe22b1084f8d1f3f472f6601f09f7853415","impliedFormat":1},{"version":"afb4fe76ed12d1b7b8724321e0f13aab912e633899f7c3e37074035ee9cff91e","impliedFormat":1},{"version":"490621c395bfa973fa6a8c4afc16ccb196a5aac60b55c61d98050ce4990520a5","impliedFormat":1},{"version":"c38e7e1b936c9a8e3f01e291dbc228232c9b61ce96bdfeb78dbc3b74f987c49c","impliedFormat":1},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"e720c8a37b87f5713093ed04015dbc647996545ffc0fdf07885f444af738dcff","impliedFormat":99},{"version":"f73b596cb4b4860fd0a3ea8cab67a42ad344d95a392ca986ca4588f59ea8c2cf","impliedFormat":99},{"version":"29b9ed9e1bccc6eff19b59c3f361ee102d8a77f4409fdb56a642a09cd4142d80","impliedFormat":1},{"version":"219afaff7dd670d2b610e23f8ea09d4982a947516074fb55b7f8f2f218f8da31","impliedFormat":1},{"version":"f3233f848276835085121850b21375b1ae23b1d558e12b520c42e99f19517b05","impliedFormat":1},{"version":"12395b35d56e3162be3e6ff07945f8c385351af536c735958eba430c387fbb3f","impliedFormat":1},{"version":"9bb4778628c37e1e4f0f8379339dcd75bfae5d47fc1fb96673b4fe3f8b328197","impliedFormat":1},{"version":"73a4f0c06fbb2a75e748dae42517c062ad303b0a43d302e8fc2ff89e92f0ecde","impliedFormat":1},{"version":"1f8cd888d94150cec2d0c3b5c734caaabaa418cd10d25463c82718979ec3bec8","impliedFormat":1},{"version":"c6a6c807ba136407c33e425c37a02550b3d729deb0a4a5bb8e7cdef29eea6814","impliedFormat":1},{"version":"ddd271c30afbb3ad41466f9dd0702c868ef992912684162952b976f436dde50c","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"cf93e7b09b66e142429611c27ba2cbf330826057e3c793e1e2861e976fae3940","impliedFormat":99},{"version":"90e727d145feb03695693fdc9f165a4dc10684713ee5f6aa81e97a6086faa0f8","impliedFormat":99},{"version":"ee2c6ec73c636c9da5ab4ce9227e5197f55a57241d66ea5828f94b69a4a09a2d","impliedFormat":99},{"version":"afaf64477630c7297e3733765046c95640ab1c63f0dfb3c624691c8445bc3b08","impliedFormat":99},{"version":"5aa03223a53ad03171988820b81a6cae9647eabcebcb987d1284799de978d8e3","impliedFormat":99},{"version":"7f50c8914983009c2b940923d891e621db624ba32968a51db46e0bf480e4e1cb","impliedFormat":99},{"version":"90fc18234b7d2e19d18ac026361aaf2f49d27c98dc30d9f01e033a9c2b01c765","impliedFormat":99},{"version":"a980e4d46239f344eb4d5442b69dcf1d46bd2acac8d908574b5a507181f7e2a1","impliedFormat":99},{"version":"bbbfa4c51cdaa6e2ef7f7be3ae199b319de6b31e3b5afa7e5a2229c14bb2568a","impliedFormat":99},{"version":"bc7bfe8f48fa3067deb3b37d4b511588b01831ba123a785ea81320fe74dd9540","impliedFormat":99},{"version":"fd60c0aaf7c52115f0e7f367d794657ac18dbb257255777406829ab65ca85746","impliedFormat":99},{"version":"15c17866d58a19f4a01a125f3f511567bd1c22235b4fd77bf90c793bf28388c3","impliedFormat":99},{"version":"51301a76264b1e1b4046f803bda44307fba403183bc274fe9e7227252d7315cb","impliedFormat":99},{"version":"ddef23e8ace6c2b2ddf8d8092d30b1dd313743f7ff47b2cbb43f36c395896008","impliedFormat":99},{"version":"9e42df47111429042b5e22561849a512ad5871668097664b8fb06a11640140ac","impliedFormat":99},{"version":"391fcc749c6f94c6c4b7f017c6a6f63296c1c9ae03fa639f99337dddb9cc33fe","impliedFormat":99},{"version":"ac4706eb1fb167b19f336a93989763ab175cd7cc6227b0dcbfa6a7824c6ba59a","impliedFormat":99},{"version":"633220dc1e1a5d0ccf11d3c3e8cadc9124daf80fef468f2ff8186a2775229de3","impliedFormat":99},{"version":"6de22ad73e332e513454f0292275155d6cb77f2f695b73f0744928c4ebb3a128","impliedFormat":99},{"version":"ebe0e3c77f5114b656d857213698fade968cff1b3a681d1868f3cfdd09d63b75","impliedFormat":99},{"version":"22c27a87488a0625657b52b9750122814c2f5582cac971484cda0dcd7a46dc3b","impliedFormat":99},{"version":"7e7a817c8ec57035b2b74df8d5dbcc376a4a60ad870b27ec35463536158e1156","impliedFormat":99},{"version":"0e2061f86ca739f34feae42fd7cce27cc171788d251a587215b33eaec456e786","impliedFormat":99},{"version":"91659b2b090cadffdb593736210910508fc5b77046d4ce180b52580b14b075ec","impliedFormat":99},{"version":"d0f6c657c45faaf576ca1a1dc64484534a8dc74ada36fd57008edc1aab65a02b","impliedFormat":99},{"version":"ce0c52b1ebc023b71d3c1fe974804a2422cf1d85d4af74bb1bced36ff3bff8b5","impliedFormat":99},{"version":"9c6acb4a388887f9a5552eda68987ee5d607152163d72f123193a984c48157c9","impliedFormat":99},{"version":"90d0a9968cbb7048015736299f96a0cceb01cf583fd2e9a9edbc632ac4c81b01","impliedFormat":99},{"version":"49abec0571c941ab6f095885a76828d50498511c03bb326eec62a852e58000c5","impliedFormat":99},{"version":"8eeb4a4ff94460051173d561749539bca870422a6400108903af2fb7a1ffe3d7","impliedFormat":99},{"version":"49e39b284b87452fed1e27ac0748ba698f5a27debe05084bc5066b3ecf4ed762","impliedFormat":99},{"version":"59dcf835762f8df90fba5a3f8ba87941467604041cf127fb456543c793b71456","impliedFormat":99},{"version":"33e0c4c683dcaeb66bedf5bb6cc35798d00ac58d7f3bc82aadb50fa475781d60","impliedFormat":99},{"version":"605839abb6d150b0d83ed3712e1b3ffbeb309e382770e7754085d36bc2d84a4c","impliedFormat":99},{"version":"a862dcb740371257e3dae1ab379b0859edcb5119484f8359a5e6fb405db9e12e","impliedFormat":99},{"version":"0f0a16a0e8037c17e28f537028215e87db047eba52281bd33484d5395402f3c1","impliedFormat":99},{"version":"cf533aed4c455b526ddccbb10dae7cc77e9269c3d7862f9e5cedbd4f5c92e05e","impliedFormat":99},{"version":"f8a60ca31702a0209ef217f8f3b4b32f498813927df2304787ac968c78d8560d","impliedFormat":99},{"version":"530192961885d3ddad87bf9c4390e12689fa29ff515df57f17a57c9125fc77c3","impliedFormat":99},{"version":"165ba9e775dd769749e2177c383d24578e3b212e4774b0a72ad0f6faee103b68","impliedFormat":99},{"version":"61448f238fdfa94e5ccce1f43a7cced5e548b1ea2d957bec5259a6e719378381","impliedFormat":99},{"version":"69fa523e48131ced0a52ab1af36c3a922c5fd7a25e474d82117329fe051f5b85","impliedFormat":99},{"version":"fa10b79cd06f5dd03435e184fb05cc5f0d02713bfb4ee9d343db527501be334c","impliedFormat":99},{"version":"c6fb591e363ee4dea2b102bb721c0921485459df23a2d2171af8354cacef4bce","impliedFormat":99},{"version":"ea7e1f1097c2e61ed6e56fa04a9d7beae9d276d87ac6edb0cd39a3ee649cddfe","impliedFormat":99},{"version":"e8cf2659d87462aae9c7647e2a256ac7dcaf2a565a9681bfb49328a8a52861e8","impliedFormat":99},{"version":"7e374cb98b705d35369b3c15444ef2ff5ff983bd2fbb77a287f7e3240abf208c","impliedFormat":99},{"version":"ca75ba1519f9a426b8c512046ebbad58231d8627678d054008c93c51bc0f3fa5","impliedFormat":99},{"version":"ff63760147d7a60dcfc4ac16e40aa2696d016b9ffe27e296b43655dfa869d66b","impliedFormat":99},{"version":"4d434123b16f46b290982907a4d24675442eb651ca95a5e98e4c274be16f1220","impliedFormat":99},{"version":"57263d6ba38046e85f499f3c0ab518cfaf0a5f5d4f53bdae896d045209ab4aff","impliedFormat":99},{"version":"d3a535f2cd5d17f12b1abf0b19a64e816b90c8c10a030b58f308c0f7f2acfe2c","impliedFormat":99},{"version":"be26d49bb713c13bd737d00ae8a61aa394f0b76bc2d5a1c93c74f59402eb8db3","impliedFormat":99},{"version":"c7012003ac0c9e6c9d3a6418128ddebf6219d904095180d4502b19c42f46a186","impliedFormat":99},{"version":"d58c55750756bcf73f474344e6b4a9376e5381e4ba7d834dc352264b491423b6","impliedFormat":99},{"version":"01e2aabfabe22b4bf6d715fc54d72d32fa860a3bd1faa8974e0d672c4b565dfe","impliedFormat":99},{"version":"ba2c489bb2566c16d28f0500b3d98013917e471c40a4417c03991460cb248e88","impliedFormat":99},{"version":"39f94b619f0844c454a6f912e5d6868d0beb32752587b134c3c858b10ecd7056","impliedFormat":99},{"version":"0d2d8b0477b1cf16b34088e786e9745c3e8145bc8eea5919b700ad054e70a095","impliedFormat":99},{"version":"2a5e963b2b8f33a50bb516215ba54a20801cb379a8e9b1ae0b311e900dc7254c","impliedFormat":99},{"version":"d8307f62b55feeb5858529314761089746dce957d2b8fd919673a4985fa4342a","impliedFormat":99},{"version":"bf449ec80fc692b2703ad03e64ae007b3513ecd507dc2ab77f39be6f578e6f5c","impliedFormat":99},{"version":"f780213dd78998daf2511385dd51abf72905f709c839a9457b6ba2a55df57be7","impliedFormat":99},{"version":"2b7843e8a9a50bdf511de24350b6d429a3ee28430f5e8af7d3599b1e9aa7057f","impliedFormat":99},{"version":"05d95be6e25b4118c2eb28667e784f0b25882f6a8486147788df675c85391ab7","impliedFormat":99},{"version":"62d2721e9f2c9197c3e2e5cffeb2f76c6412121ae155153179049890011eb785","impliedFormat":99},{"version":"ff5668fb7594c02aca5e7ba7be6c238676226e450681ca96b457f4a84898b2d9","impliedFormat":99},{"version":"59fd37ea08657fef36c55ddea879eae550ffe21d7e3a1f8699314a85a30d8ae9","impliedFormat":99},{"version":"84e23663776e080e18b25052eb3459b1a0486b5b19f674d59b96347c0cb7312a","impliedFormat":99},{"version":"43e5934c7355731eec20c5a2aa7a859086f19f60a4e5fcd80e6684228f6fb767","impliedFormat":99},{"version":"a49c210c136c518a7c08325f6058fc648f59f911c41c93de2026db692bba0e47","impliedFormat":99},{"version":"1a92f93597ebc451e9ef4b158653c8d31902de5e6c8a574470ecb6da64932df4","impliedFormat":99},{"version":"256513ad066ac9898a70ca01e6fbdb3898a4e0fe408fbf70608fdc28ac1af224","impliedFormat":99},{"version":"d9835850b6cc05c21e8d85692a8071ebcf167a4382e5e39bf700c4a1e816437e","impliedFormat":99},{"version":"e5ab7190f818442e958d0322191c24c2447ddceae393c4e811e79cda6bd49836","impliedFormat":99},{"version":"91b4b77ef81466ce894f1aade7d35d3589ddd5c9981109d1dea11f55a4b807a0","impliedFormat":99},{"version":"03abb209bed94c8c893d9872639e3789f0282061c7aa6917888965e4047a8b5f","impliedFormat":99},{"version":"e97a07901de562219f5cba545b0945a1540d9663bd9abce66495721af3903eec","impliedFormat":99},{"version":"bf39ed1fdf29bc8178055ec4ff32be6725c1de9f29c252e31bdc71baf5c227e6","impliedFormat":99},{"version":"985eabf06dac7288fc355435b18641282f86107e48334a83605739a1fe82ac15","impliedFormat":99},{"version":"6112d33bcf51e3e6f6a81e419f29580e2f8e773529d53958c7c1c99728d4fb2e","impliedFormat":99},{"version":"89e9f7e87a573504acc2e7e5ad727a110b960330657d1b9a6d3526e77c83d8be","impliedFormat":99},{"version":"44bbb88abe9958c7c417e8687abf65820385191685009cc4b739c2d270cb02e9","impliedFormat":99},{"version":"ab4b506b53d2c4aec4cc00452740c540a0e6abe7778063e95c81a5cd557c19eb","impliedFormat":99},{"version":"858757bde6d615d0d1ee474c972131c6d79c37b0b61897da7fbd7110beb8af12","impliedFormat":99},{"version":"60b9dea33807b086a1b4b4b89f72d5da27ad0dd36d6436a6e306600c47438ac4","impliedFormat":99},{"version":"409c963b1166d0c1d49fdad1dfeb4de27fd2d6662d699009857de9baf43ca7c3","impliedFormat":99},{"version":"b7674ecfeb5753e965404f7b3d31eec8450857d1a23770cb867c82f264f546ab","impliedFormat":99},{"version":"c9800b9a9ad7fcdf74ed8972a5928b66f0e4ff674d55fd038a3b1c076911dcbe","impliedFormat":99},{"version":"99864433e35b24c61f8790d2224428e3b920624c01a6d26ea8b27ee1f62836bb","impliedFormat":99},{"version":"c391317b9ff8f87d28c6bfe4e50ed92e8f8bfab1bb8a03cd1fe104ff13186f83","impliedFormat":99},{"version":"42bdc3c98446fdd528e2591213f71ce6f7008fb9bb12413bd57df60d892a3fb5","impliedFormat":99},{"version":"542d2d689b58c25d39a76312ccaea2fcd10a45fb27b890e18015399c8032e2d9","impliedFormat":99},{"version":"97d1656f0a563dbb361d22b3d7c2487427b0998f347123abd1c69a4991326c96","impliedFormat":99},{"version":"d4f53ed7960c9fba8378af3fa28e3cc483d6c0b48e4a152a83ff0973d507307d","impliedFormat":99},{"version":"0665de5280d65ec32776dc55fb37128e259e60f389cde5b9803cf9e81ad23ce0","impliedFormat":99},{"version":"b6dc8fd1c6092da86725c338ca6c263d1c6dd3073046d3ec4eb2d68515062da2","impliedFormat":99},{"version":"d9198a0f01f00870653347560e10494efeca0bfa2de0988bd5d883a9d2c47edb","impliedFormat":99},{"version":"d4279865b926d7e2cfe8863b2eae270c4c035b6e923af8f9d7e6462d68679e07","impliedFormat":99},{"version":"73b6945448bb3425b764cfe7b1c4b0b56c010cc66e5f438ef320c53e469797eb","impliedFormat":99},{"version":"cf72fd8ffa5395f4f1a26be60246ec79c5a9ad201579c9ba63fd2607b5daf184","impliedFormat":99},{"version":"301a458744666096f84580a78cc3f6e8411f8bab92608cdaa33707546ca2906f","impliedFormat":99},{"version":"711e70c0916ff5f821ea208043ecd3e67ed09434b8a31d5616286802b58ebebe","impliedFormat":99},{"version":"e1f2fd9f88dd0e40c358fbf8c8f992211ab00a699e7d6823579b615b874a8453","impliedFormat":99},{"version":"17db3a9dcb2e1689ff7ace9c94fa110c88da64d69f01dc2f3cec698e4fc7e29e","impliedFormat":99},{"version":"73fb07305106bb18c2230890fcacf910fd1a7a77d93ac12ec40bc04c49ee5b8e","impliedFormat":99},{"version":"2c5f341625a45530b040d59a4bc2bc83824d258985ede10c67005be72d3e21d0","impliedFormat":99},{"version":"c4a262730d4277ecaaf6f6553dabecc84dcca8decaebbf2e16f1df8bbd996397","impliedFormat":99},{"version":"c23c533d85518f3358c55a7f19ab1a05aad290251e8bba0947bd19ea3c259467","impliedFormat":99},{"version":"5d0322a0b8cdc67b8c71e4ccaa30286b0c8453211d4c955a217ac2d3590e911f","impliedFormat":99},{"version":"f5e4032b6e4e116e7fec5b2620a2a35d0b6b8b4a1cc9b94a8e5ee76190153110","impliedFormat":99},{"version":"9ab26cb62a0e86ab7f669c311eb0c4d665457eb70a103508aa39da6ccee663da","impliedFormat":99},{"version":"5f64d1a11d8d4ce2c7ee3b72471df76b82d178a48964a14cdfdc7c5ef7276d70","impliedFormat":99},{"version":"24e2fbc48f65814e691d9377399807b9ec22cd54b51d631ba9e48ee18c5939dd","impliedFormat":99},{"version":"bfa2648b2ee90268c6b6f19e84da3176b4d46329c9ec0555d470e647d0568dfb","impliedFormat":99},{"version":"75ef3cb4e7b3583ba268a094c1bd16ce31023f2c3d1ac36e75ca65aca9721534","impliedFormat":99},{"version":"3be6b3304a81d0301838860fd3b4536c2b93390e785808a1f1a30e4135501514","impliedFormat":99},{"version":"da66c1b3e50ef9908e31ce7a281b137b2db41423c2b143c62524f97a536a53d9","impliedFormat":99},{"version":"3ada1b216e45bb9e32e30d8179a0a95870576fe949c33d9767823ccf4f4f4c97","impliedFormat":99},{"version":"1ace2885dffab849f7c98bffe3d1233260fbf07ee62cb58130167fd67a376a65","impliedFormat":99},{"version":"2126e5989c0ca5194d883cf9e9c10fe3e5224fbd3e4a4a6267677544e8be0aae","impliedFormat":99},{"version":"41a6738cf3c756af74753c5033e95c5b33dfc1f6e1287fa769a1ac4027335bf5","impliedFormat":99},{"version":"6e8630be5b0166cbc9f359b9f9e42801626d64ff1702dcb691af811149766154","impliedFormat":99},{"version":"e36b77c04e00b4a0bb4e1364f2646618a54910c27f6dc3fc558ca2ced8ca5bc5","impliedFormat":99},{"version":"2c4ea7e9f95a558f46c89726d1fedcb525ef649eb755a3d7d5055e22b80c2904","impliedFormat":99},{"version":"4875d65190e789fad05e73abd178297b386806b88b624328222d82e455c0f2e7","impliedFormat":99},{"version":"bf5302ecfaacee37c2316e33703723d62e66590093738c8921773ee30f2ecc38","impliedFormat":99},{"version":"62684064fe034d54b87f62ad416f41b98a405dee4146d0ec03b198c3634ea93c","impliedFormat":99},{"version":"be02cbdb1688c8387f8a76a9c6ed9d75d8bb794ec5b9b1d2ba3339a952a00614","impliedFormat":99},{"version":"cefaff060473a5dbf4939ee1b52eb900f215f8d6249dc7c058d6b869d599983c","impliedFormat":99},{"version":"b2797235a4c1a7442a6f326f28ffb966226c3419399dbb33634b8159af2c712f","impliedFormat":99},{"version":"164d633bbd4329794d329219fc173c3de85d5ad866d44e5b5f0fb60c140e98f2","impliedFormat":99},{"version":"b74300dd0a52eaf564b3757c07d07e1d92def4e3b8708f12eedb40033e4cafe9","impliedFormat":99},{"version":"a792f80b1e265b06dce1783992dbee2b45815a7bdc030782464b8cf982337cf2","impliedFormat":99},{"version":"8816b4b3a87d9b77f0355e616b38ed5054f993cc4c141101297f1914976a94b1","impliedFormat":99},{"version":"0f35e4da974793534c4ca1cdd9491eab6993f8cf47103dadfc048b899ed9b511","impliedFormat":99},{"version":"0ccdfcaebf297ec7b9dde20bbbc8539d5951a3d8aaa40665ca469da27f5a86e1","impliedFormat":99},{"version":"7fcb05c8ce81f05499c7b0488ae02a0a1ac6aebc78c01e9f8c42d98f7ba68140","impliedFormat":99},{"version":"81c376c9e4d227a4629c7fca9dde3bbdfa44bd5bd281aee0ed03801182368dc5","impliedFormat":99},{"version":"0f2448f95110c3714797e4c043bbc539368e9c4c33586d03ecda166aa9908843","impliedFormat":99},{"version":"b2f1a443f7f3982d7325775906b51665fe875c82a62be3528a36184852faa0bb","impliedFormat":99},{"version":"7568ff1f23363d7ee349105eb936e156d61aea8864187a4c5d85c60594b44a25","impliedFormat":99},{"version":"8c4d1d9a4eba4eac69e6da0f599a424b2689aee55a455f0b5a7f27a807e064db","impliedFormat":99},{"version":"e1beb9077c100bdd0fc8e727615f5dae2c6e1207de224569421907072f4ec885","impliedFormat":99},{"version":"3dda13836320ec71b95a68cd3d91a27118b34c05a2bfda3e7e51f1d8ca9b960b","impliedFormat":99},{"version":"fedc79cb91f2b3a14e832d7a8e3d58eb02b5d5411c843fcbdc79e35041316b36","impliedFormat":99},{"version":"99f395322ffae908dcdfbaa2624cc7a2a2cb7b0fbf1a1274aca506f7b57ebcb5","impliedFormat":99},{"version":"5e1f7c43e8d45f2222a5c61cbc88b074f4aaf1ca4b118ac6d6123c858efdcd71","impliedFormat":99},{"version":"7388273ab71cb8f22b3f25ffd8d44a37d5740077c4d87023da25575204d57872","impliedFormat":99},{"version":"0a48ceb01a0fdfc506aa20dfd8a3563edbdeaa53a8333ddf261d2ee87669ea7b","impliedFormat":99},{"version":"3182d06b874f31e8e55f91ea706c85d5f207f16273480f46438781d0bd2a46a1","impliedFormat":99},{"version":"ccd47cab635e8f71693fa4e2bbb7969f559972dae97bd5dbd1bbfee77a63b410","impliedFormat":99},{"version":"89770fa14c037f3dc3882e6c56be1c01bb495c81dec96fa29f868185d9555a5d","impliedFormat":99},{"version":"7048c397f08c54099c52e6b9d90623dc9dc6811ea142f8af3200e40d66a972e1","impliedFormat":99},{"version":"512120cd6f026ce1d3cf686c6ab5da80caa40ef92aa47466ec60ba61a48b5551","impliedFormat":99},{"version":"6cd0cb7f999f221e984157a7640e7871960131f6b221d67e4fdc2a53937c6770","impliedFormat":99},{"version":"f48b84a0884776f1bc5bf0fcf3f69832e97b97dc55d79d7557f344de900d259b","impliedFormat":99},{"version":"dca490d986411644b0f9edf6ea701016836558e8677c150dca8ad315178ec735","impliedFormat":99},{"version":"a028a04948cf98c1233166b48887dad324e8fe424a4be368a287c706d9ccd491","impliedFormat":99},{"version":"3046ed22c701f24272534b293c10cfd17b0f6a89c2ec6014c9a44a90963dfa06","impliedFormat":99},{"version":"394da10397d272f19a324c95bea7492faadf2263da157831e02ae1107bd410f5","impliedFormat":99},{"version":"0580595a99248b2d30d03f2307c50f14eb21716a55beb84dd09d240b1b087a42","impliedFormat":99},{"version":"a7da9510150f36a9bea61513b107b59a423fdff54429ad38547c7475cd390e95","impliedFormat":99},{"version":"659615f96e64361af7127645bb91f287f7b46c5d03bea7371e6e02099226d818","impliedFormat":99},{"version":"1f2a42974920476ce46bb666cd9b3c1b82b2072b66ccd0d775aa960532d78176","impliedFormat":99},{"version":"500b3ae6095cbab92d81de0b40c9129f5524d10ad955643f81fc07d726c5a667","impliedFormat":99},{"version":"a957ad4bd562be0662fb99599dbcf0e16d1631f857e5e1a83a3f3afb6c226059","impliedFormat":99},{"version":"e57a4915266a6a751c6c172e8f30f6df44a495608613e1f1c410196207da9641","impliedFormat":99},{"version":"7a12e57143b7bc5a52a41a8c4e6283a8f8d59a5e302478185fb623a7157fff5e","impliedFormat":99},{"version":"17b3426162e1d9cb0a843e8d04212aabe461d53548e671236de957ed3ae9471b","impliedFormat":99},{"version":"f38e86eb00398d63180210c5090ef6ed065004474361146573f98b3c8a96477d","impliedFormat":99},{"version":"231d9e32382d3971f58325e5a85ba283a2021243651cb650f82f87a1bf62d649","impliedFormat":99},{"version":"6532e3e87b87c95f0771611afce929b5bad9d2c94855b19b29b3246937c9840b","impliedFormat":99},{"version":"65704bbb8f0b55c73871335edd3c9cead7c9f0d4b21f64f5d22d0987c45687f0","impliedFormat":99},{"version":"787232f574af2253ac860f22a445c755d57c73a69a402823ae81ba0dfdd1ce23","impliedFormat":99},{"version":"5e63903cd5ebce02486b91647d951d61a16ad80d65f9c56581cd624f39a66007","impliedFormat":99},{"version":"bcc89a120d8f3c02411f4df6b1d989143c01369314e9b0e04794441e6b078d22","impliedFormat":99},{"version":"d17531ef42b7c76d953f63bd5c5cd927c4723e62a7e0b2badf812d5f35f784eb","impliedFormat":99},{"version":"6d4ee1a8e3a97168ea4c4cc1c68bb61a3fd77134f15c71bb9f3f63df3d26b54c","impliedFormat":99},{"version":"1eb04fea6b47b16922ed79625d90431a8b2fc7ba9d5768b255e62df0c96f1e3a","impliedFormat":99},{"version":"de0c2eece83bd81b8682f4496f558beb728263e17e74cbc4910e5c9ce7bef689","impliedFormat":99},{"version":"98866542d45306dab48ecc3ddd98ee54fa983353bc3139dfbc619df882f54d90","impliedFormat":99},{"version":"9e04c7708917af428c165f1e38536ddb2e8ecd576f55ed11a97442dc34b6b010","impliedFormat":99},{"version":"31fe6f6d02b53c1a7c34b8d8f8c87ee9b6dd4b67f158cbfff3034b4f3f69c409","impliedFormat":99},{"version":"2e1d853f84188e8e002361f4bfdd892ac31c68acaeac426a63cd4ff7abf150d0","impliedFormat":99},{"version":"666b5289ec8a01c4cc0977c62e3fd32e89a8e3fd9e97c8d8fd646f632e63c055","impliedFormat":99},{"version":"a1107bbb2b10982dba1f7958a6a5cf841e1a19d6976d0ecdc4c43269c7b0eaf2","impliedFormat":99},{"version":"07fa6122f7495331f39167ec9e4ebd990146a20f99c16c17bc0a98aa81f63b27","impliedFormat":99},{"version":"39c1483481b35c2123eaab5094a8b548a0c3f1e483ab7338102c3291f1ab18bf","impliedFormat":99},{"version":"b73e6242c13796e7d5fba225bf1c07c8ee66d31b7bb65f45be14226a9ae492d2","impliedFormat":99},{"version":"f2931608d541145d189390d6cfb74e1b1e88f73c0b9a80c4356a4daa7fa5e005","impliedFormat":99},{"version":"8684656fe3bf1425a91bd62b8b455a1c7ec18b074fd695793cfae44ae02e381a","impliedFormat":99},{"version":"ccf0b9057dd65c7fb5e237de34f706966ebc30c6d3669715ed05e76225f54fbd","impliedFormat":99},{"version":"d930f077da575e8ea761e3d644d4c6279e2d847bae2b3ea893bbd572315acc21","impliedFormat":99},{"version":"19b0616946cb615abde72c6d69049f136cc4821b784634771c1d73bec8005f73","impliedFormat":99},{"version":"553312560ad0ef97b344b653931935d6e80840c2de6ab90b8be43cbacf0d04cf","impliedFormat":99},{"version":"1225cf1910667bfd52b4daa9974197c3485f21fe631c3ce9db3b733334199faa","impliedFormat":99},{"version":"f7cb9e46bd6ab9d620d68257b525dbbbbc9b0b148adf500b819d756ebc339de0","impliedFormat":99},{"version":"e46d6c3120aca07ae8ec3189edf518c667d027478810ca67a62431a0fa545434","impliedFormat":99},{"version":"9d234b7d2f662a135d430d3190fc21074325f296273125244b2bf8328b5839a0","impliedFormat":99},{"version":"0554ef14d10acea403348c53436b1dd8d61e7c73ef5872e2fe69cc1c433b02f8","impliedFormat":99},{"version":"2f6ae5538090db60514336bd1441ca208a8fab13108cfa4b311e61eaca5ff716","impliedFormat":99},{"version":"17bf4ce505a4cff88fb56177a8f7eb48aa55c22ccc4cce3e49cc5c8ddc54b07d","impliedFormat":99},{"version":"3d735f493d7da48156b79b4d8a406bf2bbf7e3fe379210d8f7c085028143ee40","impliedFormat":99},{"version":"41de1b3ddd71bd0d9ed7ac217ca1b15b177dd731d5251cde094945c20a715d03","impliedFormat":99},{"version":"17d9c562a46c6a25bc2f317c9b06dd4e8e0368cbe9bdf89be6117aeafd577b36","impliedFormat":99},{"version":"ded799031fe18a0bb5e78be38a6ae168458ff41b6c6542392b009d2abe6a6f32","impliedFormat":99},{"version":"ed48d467a7b25ee1a2769adebc198b647a820e242c96a5f96c1e6c27a40ab131","impliedFormat":99},{"version":"b914114df05f286897a1ae85d2df39cfd98ed8da68754d73cf830159e85ddd15","impliedFormat":99},{"version":"73881e647da3c226f21e0b80e216feaf14a5541a861494c744e9fbe1c3b3a6af","impliedFormat":99},{"version":"d79e1d31b939fa99694f2d6fbdd19870147401dbb3f42214e84c011e7ec359ab","impliedFormat":99},{"version":"4f71097eae7aa37941bab39beb2e53e624321fd341c12cc1d400eb7a805691ff","impliedFormat":99},{"version":"58ebb4f21f3a90dda31a01764462aa617849fdb1b592f3a8d875c85019956aff","impliedFormat":99},{"version":"a8e8d0e6efff70f3c28d3e384f9d64530c7a7596a201e4879a7fd75c7d55cbb5","impliedFormat":99},{"version":"df5cbb80d8353bf0511a4047cc7b8434b0be12e280b6cf3de919d5a3380912c0","impliedFormat":99},{"version":"256eb0520e822b56f720962edd7807ed36abdf7ea23bcadf4a25929a3317c8cf","impliedFormat":99},{"version":"9cf2cbc9ceb5f718c1705f37ce5454f14d3b89f690d9864394963567673c1b5c","impliedFormat":99},{"version":"07d3dd790cf1e66bb6fc9806d014dd40bb2055f8d6ca3811cf0e12f92ba4cb9a","impliedFormat":99},{"version":"1f99fd62e9cff9b50c36f368caf3b9fb79fc6f6c75ca5d3c2ec4afaea08d9109","impliedFormat":99},{"version":"6558faaacba5622ef7f1fdfb843cd967af2c105469b9ff5c18a81ce85178fca7","impliedFormat":99},{"version":"34e7f17ae9395b0269cd3f2f0af10709e6dc975c5b44a36b6b70442dc5e25a38","impliedFormat":99},{"version":"a4295111b54f84c02c27e46b0855b02fad3421ae1d2d7e67ecf16cb49538280a","impliedFormat":99},{"version":"ce9746b2ceae2388b7be9fe1f009dcecbc65f0bdbc16f40c0027fab0fb848c3b","impliedFormat":99},{"version":"35ce823a59f397f0e85295387778f51467cea137d787df385be57a2099752bfb","impliedFormat":99},{"version":"2e5acd3ec67bc309e4f679a70c894f809863c33b9572a8da0b78db403edfa106","impliedFormat":99},{"version":"1872f3fcea0643d5e03b19a19d777704320f857d1be0eb4ee372681357e20c88","impliedFormat":99},{"version":"9689628941205e40dcbb2706d1833bd00ce7510d333b2ef08be24ecbf3eb1a37","impliedFormat":99},{"version":"0317a72a0b63094781476cf1d2d27585d00eb2b0ca62b5287124735912f3d048","impliedFormat":99},{"version":"6ce4c0ab3450a4fff25d60a058a25039cffd03141549589689f5a17055ad0545","impliedFormat":99},{"version":"9153ec7b0577ae77349d2c5e8c5dd57163f41853b80c4fb5ce342c7a431cbe1e","impliedFormat":99},{"version":"f490dfa4619e48edd594a36079950c9fca1230efb3a82aaf325047262ba07379","impliedFormat":99},{"version":"674f00085caff46d2cbc76fc74740fd31f49d53396804558573421e138be0c12","impliedFormat":99},{"version":"41d029194c4811f09b350a1e858143c191073007a9ee836061090ed0143ad94f","impliedFormat":99},{"version":"44a6259ffd6febd8510b9a9b13a700e1d022530d8b33663f0735dbb3bee67b3d","impliedFormat":99},{"version":"6f4322500aff8676d9b8eef7711c7166708d4a0686b792aa4b158e276ed946a7","impliedFormat":99},{"version":"e829ff9ecffa3510d3a4d2c3e4e9b54d4a4ccfef004bacbb1d6919ce3ccca01f","impliedFormat":99},{"version":"62e6fec9dbd012460b47af7e727ec4cd34345b6e4311e781f040e6b640d7f93e","impliedFormat":99},{"version":"4d180dd4d0785f2cd140bc069d56285d0121d95b53e4348feb4f62db2d7035d3","impliedFormat":99},{"version":"f1142cbba31d7f492d2e7c91d82211a8334e6642efe52b71d9a82cb95ba4e8ae","impliedFormat":99},{"version":"279cac827be5d48c0f69fe319dc38c876fdd076b66995d9779c43558552d8a50","impliedFormat":99},{"version":"a70ff3c65dc0e7213bfe0d81c072951db9f5b1e640eb66c1eaed0737879c797b","impliedFormat":99},{"version":"f75d3303c1750f4fdacd23354657eca09aae16122c344e65b8c14c570ff67df5","impliedFormat":99},{"version":"3ebae6a418229d4b303f8e0fdb14de83f39fba9f57b39d5f213398bca72137c7","impliedFormat":99},{"version":"21ba07e33265f59d52dece5ac44f933b2b464059514587e64ad5182ddf34a9b0","impliedFormat":99},{"version":"2d3d96efba00493059c460fd55e6206b0667fc2e73215c4f1a9eb559b550021f","impliedFormat":99},{"version":"d23d4a57fff5cec5607521ba3b72f372e3d735d0f6b11a4681655b0bdd0505f4","impliedFormat":99},{"version":"395c1f3da7e9c87097c8095acbb361541480bf5fd7fa92523985019fef7761dd","impliedFormat":99},{"version":"d61f3d719293c2f92a04ba73d08536940805938ecab89ac35ceabc8a48ccb648","impliedFormat":99},{"version":"ca693235a1242bcd97254f43a17592aa84af66ccb7497333ccfea54842fde648","impliedFormat":99},{"version":"cd41cf040b2e368382f2382ec9145824777233730e3965e9a7ba4523a6a4698e","impliedFormat":99},{"version":"2e7a9dba6512b0310c037a28d27330520904cf5063ca19f034b74ad280dbfe71","impliedFormat":99},{"version":"9f2a38baf702e6cb98e0392fa39d25a64c41457a827b935b366c5e0980a6a667","impliedFormat":99},{"version":"c1dc37f0e7252928f73d03b0d6b46feb26dea3d8737a531ca4c0ec4105e33120","impliedFormat":99},{"version":"25126b80243fb499517e94fc5afe5c9c5df3a0105618e33581fb5b2f2622f342","impliedFormat":99},{"version":"d332c2ddcb64012290eb14753c1b49fe3eee9ca067204efba1cf31c1ce1ee020","impliedFormat":99},{"version":"1be8da453470021f6fe936ba19ee0bfebc7cfa2406953fa56e78940467c90769","impliedFormat":99},{"version":"7c9f2d62d83f1292a183a44fb7fb1f16eb9037deb05691d307d4017ac8af850a","impliedFormat":99},{"version":"d0163ab7b0de6e23b8562af8b5b4adea4182884ca7543488f7ac2a3478f3ae6e","impliedFormat":99},{"version":"05224e15c6e51c4c6cd08c65f0766723f6b39165534b67546076c226661db691","impliedFormat":99},{"version":"a5f7158823c7700dd9fc1843a94b9edc309180c969fbfa6d591aeb0b33d3b514","impliedFormat":99},{"version":"7d30937f8cf9bb0d4b2c2a8fb56a415d7ef393f6252b24e4863f3d7b84285724","impliedFormat":99},{"version":"e04d074584483dc9c59341f9f36c7220f16eed09f7af1fa3ef9c64c26095faec","impliedFormat":99},{"version":"619697e06cbc2c77edda949a83a62047e777efacde1433e895b904fe4877c650","impliedFormat":99},{"version":"88d9a8593d2e6aee67f7b15a25bda62652c77be72b79afbee52bea61d5ffb39e","impliedFormat":99},{"version":"044d7acfc9bd1af21951e32252cf8f3a11c8b35a704169115ddcbde9fd717de2","impliedFormat":99},{"version":"a4ca8f13a91bd80e6d7a4f013b8a9e156fbf579bbec981fe724dad38719cfe01","impliedFormat":99},{"version":"5a216426a68418e37e55c7a4366bc50efc99bda9dc361eae94d7e336da96c027","impliedFormat":99},{"version":"13b65b640306755096d304e76d4a237d21103de88b474634f7ae13a2fac722d5","impliedFormat":99},{"version":"7478bd43e449d3ce4e94f3ed1105c65007b21f078b3a791ea5d2c47b30ea6962","impliedFormat":99},{"version":"601d3e8e71b7d6a24fc003aca9989a6c25fa2b3755df196fd0aaee709d190303","impliedFormat":99},{"version":"168e0850fcc94011e4477e31eca81a8a8a71e1aed66d056b7b50196b877e86c8","impliedFormat":99},{"version":"37ba82d63f5f8c6b4fc9b756f24902e47f62ea66aae07e89ace445a54190a86e","impliedFormat":99},{"version":"f5b66b855f0496bc05f1cd9ba51a6a9de3d989b24aa36f6017257f01c8b65a9f","impliedFormat":99},{"version":"823b16d378e8456fcc5503d6253c8b13659be44435151c6b9f140c4a38ec98c1","impliedFormat":99},{"version":"b58b254bf1b586222844c04b3cdec396e16c811463bf187615bb0a1584beb100","impliedFormat":99},{"version":"a367c2ccfb2460e222c5d10d304e980bd172dd668bcc02f6c2ff626e71e90d75","impliedFormat":99},{"version":"0718623262ac94b016cb0cfd8d54e4d5b7b1d3941c01d85cf95c25ec1ba5ed8d","impliedFormat":99},{"version":"d4f3c9a0bd129e9c7cbfac02b6647e34718a2b81a414d914e8bd6b76341172e0","impliedFormat":99},{"version":"824306df6196f1e0222ff775c8023d399091ada2f10f2995ce53f5e3d4aff7a4","impliedFormat":99},{"version":"84ca07a8d57f1a6ba8c0cf264180d681f7afae995631c6ca9f2b85ec6ee06c0f","impliedFormat":99},{"version":"35755e61e9f4ec82d059efdbe3d1abcccc97a8a839f1dbf2e73ac1965f266847","impliedFormat":99},{"version":"64a918a5aa97a37400ec085ffeea12a14211aa799cd34e5dc828beb1806e95bb","impliedFormat":99},{"version":"0c8f5489ba6af02a4b1d5ba280e7badd58f30dc8eb716113b679e9d7c31185e5","impliedFormat":99},{"version":"7b574ca9ae0417203cdfa621ab1585de5b90c4bc6eea77a465b2eb8b92aa5380","impliedFormat":99},{"version":"3334c03c15102700973e3e334954ac1dffb7be7704c67cc272822d5895215c93","impliedFormat":99},{"version":"aabcb169451df7f78eb43567fab877a74d134a0a6d9850aa58b38321374ab7c0","impliedFormat":99},{"version":"1b5effdd8b4e8d9897fc34ab4cd708a446bf79db4cb9a3467e4a30d55b502e14","impliedFormat":99},{"version":"d772776a7aea246fd72c5818de72c3654f556b2cf0d73b90930c9c187cc055fc","impliedFormat":99},{"version":"dbd4bd62f433f14a419e4c6130075199eb15f2812d2d8e7c9e1f297f4daac788","impliedFormat":99},{"version":"427df949f5f10c73bcc77b2999893bc66c17579ad073ee5f5270a2b30651c873","impliedFormat":99},{"version":"c4c1a5565b9b85abfa1d663ca386d959d55361e801e8d49155a14dd6ca41abe1","impliedFormat":99},{"version":"7a45a45c277686aaff716db75a8157d0458a0d854bacf072c47fee3d499d7a99","impliedFormat":99},{"version":"57005b72bce2dc26293e8924f9c6be7ee3a2c1b71028a680f329762fa4439354","impliedFormat":99},{"version":"8f53b1f97c53c3573c16d0225ee3187d22f14f01421e3c6da1a26a1aace32356","impliedFormat":99},{"version":"810fdc0e554ed7315c723b91f6fa6ef3a6859b943b4cd82879641563b0e6c390","impliedFormat":99},{"version":"87a36b177b04d23214aa4502a0011cd65079e208cd60654aefc47d0d65da68ea","impliedFormat":99},{"version":"28a1c17fcbb9e66d7193caca68bbd12115518f186d90fc729a71869f96e2c07b","impliedFormat":99},{"version":"cc2d2abbb1cc7d6453c6fee760b04a516aa425187d65e296a8aacff66a49598a","impliedFormat":99},{"version":"d2413645bc4ab9c3f3688c5281232e6538684e84b49a57d8a1a8b2e5cf9f2041","impliedFormat":99},{"version":"4e6e21a0f9718282d342e66c83b2cd9aa7cd777dfcf2abd93552da694103b3dc","impliedFormat":99},{"version":"9006cc15c3a35e49508598a51664aa34ae59fc7ab32d6cc6ea2ec68d1c39448e","impliedFormat":99},{"version":"74467b184eadee6186a17cac579938d62eceb6d89c923ae67d058e2bcded254e","impliedFormat":99},{"version":"4169b96bb6309a2619f16d17307da341758da2917ff40c615568217b14357f5e","impliedFormat":99},{"version":"4a94d6146b38050de0830019a1c6a7820c2e2b90eba1a5ee4e4ab3bc30a72036","impliedFormat":99},{"version":"48a35ece156203abf19864daa984475055bbed4dc9049d07f4462100363f1e85","impliedFormat":99},{"version":"2a80ab285da5ec06299594edb456abd51ee69a7506278cca24e1ab494a86952b","impliedFormat":99},{"version":"5cd9fd926e2034c7eeec3de6138e18bafe092e0672f8bccdc1a0669393af60db","impliedFormat":1},{"version":"13d7630be2b4951d99f5ac0bd83e07b4ab9e8b4f3a97e9ad5210ea6eed86fd82","impliedFormat":99},{"version":"a8edf6901be3952dd6ce40004267994165eeb9a51dd48363f43f206a5afc4547","impliedFormat":99},{"version":"865e26608ad2160d9ffcb981dc4649119471855f0467893934e3ab7c22b132e9","impliedFormat":1},{"version":"2bf40a9b2a42dc6f0e2a740fbc1c88c1998d25727b87ed0cf885284cb1e16c44","impliedFormat":1},{"version":"678ce9e1aaba570c9e5bcb5ecfac009720a60ec616bbbc9825fd04d63b53b751","impliedFormat":1},{"version":"b79cc2fb1ad4a842bbb8eecdc632a7f18ee303bd3fa58e972fa3720189859132","impliedFormat":1},{"version":"44338602a65a3e3fc8dfb35b09e6116d05d2c8019e90c8d0237b203cb3b5beb6","impliedFormat":1},{"version":"b2af1e9faa4f6750ca01407fadd7a90eac3f4615df984170cc53f6d7902d3250","impliedFormat":1},{"version":"690872b554003d24a4f905afd2a7bdd6ca9e3f1ea3276eb3dfa43290e7fa57c5","impliedFormat":1},{"version":"20b1ec36566c5915f77b422691e3ce8e467c195af9c9fe2adee1b9f95cfe59ff","impliedFormat":1},{"version":"54e9dbc82c0d74af574f927f8cd1b567be6d275b23984bd1ac602b3f0d385a63","impliedFormat":1},{"version":"ad53bd475d89e449c6539258e64745d35a8ad4eb75ed20c52b2979ba27eb799d","impliedFormat":1},{"version":"fa46c917a8cd50fe346b4646a7b52d9d9223b1d746056bfdac0153f4ea7c62e3","impliedFormat":1},{"version":"95bb7829186cdf1f69e548c9a5cdfa7776e85322ead227812293702128b7e45b","impliedFormat":1},{"version":"fe656648cc1b58e401fa0d0492bf16c0883663c82a819feef879483d20a04da7","impliedFormat":1},{"version":"dae408255bd416b2717a0be18188a64a4530a9440a662b9b470b0a136c75965b","impliedFormat":1},{"version":"1180af664bda92e8c27b788976e0b3c7483201b27efe6f64300c8fd5dfdb7089","impliedFormat":1},{"version":"6d0a1eb807e4f7c63f42c1b164d2c44f7ded4b058ae9232221f14af24869a5d2","impliedFormat":1},{"version":"2b6891c13b74886d1bb32cae8b8531997717eb279cbb147932bf204220db1f69","impliedFormat":1},{"version":"7a7cf51c1625984c330021ca597a88cbf727ab2643f7db8a3bfe22aa84084942","impliedFormat":1},{"version":"ff4b5d69e379c7d2763d952ffcd1e38d95c697658224c7f612735c0c67811834","impliedFormat":1},{"version":"513299726fe81a4e8b949fc555495cc40808bbfa84cde96534773cfdcf459ba7","impliedFormat":1},{"version":"33a29f53161aa4d0778b333128b8687b743fc77173f8ade3f73c13659cf14134","impliedFormat":1},{"version":"98b9efc8d590ecc3762c6c93735bf24266c7f1bfc06f983b5098578352075b64","impliedFormat":1},{"version":"748bc14a2fb8c21ff58b57c87a21bdb9d049bb0266525050d35384c30c44bbde","impliedFormat":1},{"version":"59ee3a45a164d5c29d135c8e713c484f154f421141c614b72b3c8103bff2f816","impliedFormat":1},{"version":"de346ee3e7c0e57a62ee18acd9b9cda57c596eca1fd7162cee0323f55366c0fb","impliedFormat":1},{"version":"df6163feb8cc511ace0d25009ed44f526e91f74b8eac78986bf3a56fccbdadac","impliedFormat":1},{"version":"d559cc752ef17b882fef1b5a2cf5cef76669620f28a0d6098e57b4b5da5eb6de","impliedFormat":1},{"version":"752c7d54e9d328c8aa47c89520fdb38c99ef0132e089cb7bde73bbcddc0b48ed","impliedFormat":1},{"version":"731160a68d1380ca76430a673f064d1b9b567524807f6015b477cd64d36c51fe","impliedFormat":1},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"486ce5135771d0b249145f0a1560d8766b35e5e215c0be86eff8b41f80bbcb9e","impliedFormat":1},{"version":"53c917a6d42ee959dfa8f842d612b59f5ac03a72905371fbd5371b1131d7d48d","impliedFormat":1},{"version":"2dc807c070380e3e5402f2f5ff635482e6f9fb43c244bd3a66c682a4aab7a2f8","impliedFormat":1},{"version":"39b4475e6e998885a7a0e69dc1c67ee6facced3ec7234109cefadfc7ef31e276","impliedFormat":1},{"version":"7f4bc4c6f05fa992e11f8b335db63589c556cf683a822f071c01a46d59912e49","impliedFormat":1},{"version":"b38cfb3dc5ce58b0993a9686064c31ca5b8ced1781043249089d171fa1c4fd70","impliedFormat":1},{"version":"e787c7a8b0854d8cb32d48450f95b3737b61a8be697c65d1241ba445b4261e70","impliedFormat":1},{"version":"61359565523e1c4e5b7f8af67e9a69ef177aae2903fc55db2029efa71c42f295","impliedFormat":1},{"version":"973fa3744879daa9ed6a4095b8da2cdd2bc4acd6007aaa87be9b2eab1d6ddc15","impliedFormat":1},{"version":"5cdecf081bf87b64f0afc929d9bf6ddd8731e550f6eb1846dd4513b441301890","impliedFormat":1},{"version":"65d5005eae8ea5af10b8416979cb6fcaaca374d3bc753fefb2aa0ad951e2351f","impliedFormat":1},{"version":"86feb3cb6b01919550f5c846eeae1b36707fe420d16ff7b603d27e53af450e70","impliedFormat":1},{"version":"115619837222e0263791637a3bf476060a93c7236c2b00109b0f0ab33cd6c7c8","impliedFormat":1},{"version":"e4b7cc0c48b817e78119edc65f0607d535bd537ba8a77a2937405f86393b08bd","impliedFormat":1},{"version":"6af30731a08e7b04632d135097de6b5e180bbc447d21771208415fab7489e4e4","impliedFormat":1},{"version":"12388dc354e536eba298cb55914496c389ef554ea1ab749e6b7aa6f39c74bb94","impliedFormat":1},{"version":"d1980619beb34b5b0fd0cdd3cd98c32fd38035127b4c2720b43b002a3377a842","impliedFormat":1},{"version":"46a7f13ac080593e33d76cf5de4fc9db639a9122a6a085bd12d2f3e61c9c46cd","impliedFormat":1},{"version":"efd20c2f4fe04f9965905ad50fd35e5ab0d3611ab9a077bfc1b12eab6f9cb9a3","impliedFormat":1},{"version":"316edc2773a5c40f66de00cca4f35ba671206988e31ea8c1df8e8ff871973917","impliedFormat":1},{"version":"2ae22d6b87836aeb67c823c619e0c66403ae028651f14f34d3cf0430f8fa9ec3","impliedFormat":1},{"version":"c2641eef9519484b19625ff9b9e71310da39600963da25dc0f0de11a8073612e","impliedFormat":1},{"version":"00d2e6fca85d766650ff9de68c0306afa4964823912a4dccc8e7bec80f38fd58","impliedFormat":1},{"version":"d2889f3ed0406f47012b39d59f2a9872b65465d0168f240296a6aaa23ba0e14e","impliedFormat":1},{"version":"99fcc7416501b8dca3e40581e320ef4c72e173317a539d895a2e8cf2640987b7","impliedFormat":1},{"version":"31dea6e70acd25ff078d08104eb2ae41eac598dcc305f7aeac2fbc7859246fff","impliedFormat":1},{"version":"3e3f11e1874771d8d75b18b9bbffffd2b464d2a44b3dcff3325041a7001ff62a","impliedFormat":1},{"version":"b53b302fd7ec7c441269b5cfd4a58de0bdf0e2847c9f8292b133c7c6dbecffee","impliedFormat":1},{"version":"3354fb95230a3d2f23bb4e086ab9fa29bb1fd4ade71ed7e4e15bd7fd175f08da","impliedFormat":1},{"version":"db03c5d3709cbc3f89024de53d0319e49fab02a016c9d3aef5308b44041afc77","impliedFormat":1},{"version":"5c2ebf20d132caae1c4b35d28bacf76384275937924cf72e4efbc2bcbba3cad3","impliedFormat":1},{"version":"054790666d9ed7c5a3cf292503e6a61780f7169fe3863e970d35702cb428e501","impliedFormat":1},{"version":"3095e62f6d48235298dcb23cda5fce12ac58d636b0f7d4ffbc80c84f694c5d70","impliedFormat":1},{"version":"25df3178f9bac06afb08eb57b6bc94989f5354f4ff4d1c43afc3627864446247","impliedFormat":1},{"version":"e3b4b27ff971ec37a4c0a6e1c9c044c206d68f57dabffffa71f2df80b5c8daa0","impliedFormat":1},{"version":"bed7c28681ba3141a429aa0d2660fbb6449f9bf4d7bf368efd4137a8c538c7f3","impliedFormat":1},{"version":"236c2a6aee18331ff39e29a6285aec02350cb1bddf3ca5d1e1235d6b0f059ac9","impliedFormat":1},{"version":"aa192bb83edaae4348184eaf12294dd4c1ed228cbad6da008a01369a557b097a","impliedFormat":1},{"version":"d6eeac6c763ef772e8626bc335568c325851afe57f9674c153046103d13e8569","impliedFormat":1},{"version":"5926e2e5298a0746ce33aa7c33200cf089e684b277f3e3b75cc190d145d3b78f","impliedFormat":1},{"version":"73a0ee6395819b063df4b148211985f2e1442945c1a057204cf4cf6281760dc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"d05d8c67116dceafc62e691c47ac89f8f10cf7313cd1b2fb4fe801c2bf1bb1a7","impliedFormat":1},{"version":"3c5bb5207df7095882400323d692957e90ec17323ccff5fd5f29a1ecf3b165d0","impliedFormat":1},{"version":"49a9fbfd1234674cb80daec73633a563d386b24af63e5297974cc2837a99e49b","impliedFormat":1},{"version":"293c077ae541a6628006aa6f6c2b31738387c4e8d033df81835656ed86655127","impliedFormat":1},{"version":"02e07de42da88aa986b2f47e9e0bd4573133a2240d42817f307440c700a7f04f","impliedFormat":1},{"version":"a5ecc724406ce58a8cf1dd766a2b75ac198730611a909374828fee9ca2c03b24","impliedFormat":1},{"version":"0f3b25a4a58bfbc81497a2560835ba48eb0e0d2cd00d976ac10cefb2214bcb2d","impliedFormat":1},{"version":"1c39cded7dede5be5fe3450179489d7e892e5e81590f5ca0305b063f85b04b8c","impliedFormat":1},{"version":"c94cd94329d2283c7ffaee91f3f9da4789060bfd12c18b1c87ca502dfe2e7e04","impliedFormat":1},{"version":"f82b4c8ad1a1bbad19bd2efefc6a4d80546f7ef1ea4500f2981e3d33a8844cf7","impliedFormat":1},{"version":"b15ae6501af260d0300f8148d9f6e356b16e72aad494b4d90817a60f794099dc","impliedFormat":1},{"version":"e689c521980a119665fbc52e3e9cebf182d76ba18f437710f421252b3f5d39db","impliedFormat":1},{"version":"575e8d070210e93cbb4ac3c18cea6d48b54d64aa8f658496296622d199c34e9a","impliedFormat":1},{"version":"ccfcb0348e378f0423e3b5b74eb23fea9893f9ed5396477a7f6b970c5c627063","impliedFormat":1},{"version":"171effe51e3f90facef73d7d9f3c43fb6723bf44df01740dc4d52c83a47fb70f","impliedFormat":1},{"version":"78d8ce9cc33fc80ba9339bf8018f282e1162d7bb8fd834ad4255cd111c208b4b","impliedFormat":1},{"version":"35a89ca4a11a983694a529c3c8bca9b2604dd39f1ce3be5812760c5d6bca4fcd","impliedFormat":1},{"version":"3343e2df866cc321345b51d3befd4f292fb00450f2e4cd530e6d979af1d3eae3","impliedFormat":1},{"version":"f02cac4bb6d304ead3570c7f78264af2d1fc2a5282fc8b4042dc1c1a8d0f4e61","impliedFormat":1},{"version":"cbc65ab4e61043907dc08a4062423da6e7d33109fda8a219ceda2ec98d0580e8","impliedFormat":1},{"version":"b22c5a59fad638037971add23c11d5b3fcb20b73b7687b595d57cb7c6c858c48","impliedFormat":1},{"version":"a36113daf1c07c21a0978bf3ea716d258eb8d13887c9a3bb394b4042989c1440","impliedFormat":1},{"version":"dfb8609c400499e11485d5933bb6a94029faa73626456f15b137d672f7ed3f0f","impliedFormat":1},{"version":"a1c564e2773dfb7d3bec40de87407ef36af9614ab36c23a2b20e9d07b175484c","impliedFormat":1},{"version":"974a296ae48132c94b948fefc6c41e766e75331f460fff1cac13fca48560f4da","impliedFormat":1},{"version":"8ed68c18be279b40d265f023f989dfe9bcd6334f65d5c35d15dc32e8929cfaa7","impliedFormat":1},{"version":"877353a33cf7651621d4a8d59b0e5d42745dffaa86f863fbad84a3afd3d0353b","impliedFormat":1},{"version":"6a6125d9da9c3516e5cdf26aa7e846ebbbd49cd7a964521074f85902f8df7d45","impliedFormat":1},{"version":"0462b4ed0e09fdb48ff4a70e895b563d75b413ba024f4479ef87760281b81830","impliedFormat":1},{"version":"23ace85c3d01c7d82bedd8fb95b7a7902237929b72a2a1b767fb563a24f2a323","impliedFormat":1},{"version":"53c8221dd71e9c0799e47a7b05bef62baba100e956d4e777c9617afae447aae7","impliedFormat":1},{"version":"f1361e3ed8ce7c3ed2aa9c9d0760a76a35391047e48e98685b04cbcf3d050c42","impliedFormat":1},{"version":"9f213f9495ee1bcbc95691a30711bc2274bb8b6407d55e139f7b551906de54c6","impliedFormat":1},{"version":"61d402fd5dc33411646456348996cd7d608ecf4e696c3a43ef476e64bc41d003","impliedFormat":1},{"version":"5f3f8d803300ea21de99a4e84c60af1ff808dabd9c7feffac2f0093fad064bc8","impliedFormat":1},{"version":"dbf286c3bf2c1ea48dd3d97d3d3265c36c51fd7fcef8fdc52624e5c4162d6ee6","impliedFormat":1},{"version":"e403a118d7064bd836299d296df2a1d4fdb3d35afcabc9c3e6ea9a5151b47afd","impliedFormat":1},{"version":"fd9e3764702b2863636ff175122790c065e39449fd2d2ab66c05c2452a444447","impliedFormat":1},{"version":"a2788a6aef1c55e94d8a3a51c53be474f7f766c3c3e4856940be9e689e7845da","impliedFormat":1},{"version":"57acd378108b9b4ed2a50beb0068a4ec6548a44284e2431f529225fe1c119568","impliedFormat":1},{"version":"ec4fb6bada4aa2161e89b82f1d19c23c9069a0967b3e41469b60fb1ef2a947b9","impliedFormat":1},{"version":"47ca5f288b6d09c737f95e75c952ec80601e425eb5e32a51cff2ec2b235025ed","impliedFormat":1},{"version":"3d53fcdcfc5e04cdc803c4f652f1ed7cadabccbf70b13c6f248da3ddd1fb588b","impliedFormat":1},{"version":"f6384fbd628e78839ed1d4eac7d30c438490e8501fce2671461101dc08cfb561","impliedFormat":1},{"version":"b48fe4141f082032b504b0bbf90e90200e72d26e130acdac7d4728b6d5cf9927","impliedFormat":1},{"version":"ceb82c3f651bbd2e8112df5c9101d18ecd81110157540b729f2d91fd2476af22","impliedFormat":1},{"version":"56dd0a3de5847ec09014c58e99e85b110730e9359a2927a543976625aa521ee2","impliedFormat":1},{"version":"1a996dbaf0bdd2acfeac97fbac98dba2046ec5692326099a51460c4d0f5ae9a1","impliedFormat":1},{"version":"cfc287e2eab581b5aef74288ab12a38dfedad4c7f86da8f9de05866b971260d4","impliedFormat":1},{"version":"b55a10a07d9e89f3fbc84f5adf660106de38c1632187ee89ce4722e3114bab1e","impliedFormat":1},{"version":"b76aa5f6ae4f664f6698f457d512a43424d0b89ecfae92f3862b11a59c356c96","impliedFormat":1},{"version":"7aeadcd6f891a60cbd7398d4efa6bfa8c6abf0d0d3b1c0957271b14835223add","impliedFormat":1},{"version":"ef808080f524a438cee5c18a3037659f772d77d868184073536ee14e505cfefd","impliedFormat":1},{"version":"789e37de9d9be63d4a831c44e1872c0d9973969710622c73e85e5ee488e46bc1","impliedFormat":1},{"version":"aa59e48528cf4a7f0de9db27f8fb1279a57831c87db377494dfd9909d5edd460","impliedFormat":1},{"version":"a7e9abded6309efc8a2dcad525ad862570a55344dcd96bf0e75726139ea46371","impliedFormat":1},{"version":"94095684562e04c69a3c508c15a4e379910a38781301bd05a098f563d1b2077f","impliedFormat":1},{"version":"b909d40ae0a49dc8cf12bef3675e7540f74eaf0f19a9b2fc310b91d0ac95b003","impliedFormat":1},{"version":"18517e95a9b285fa18c0218a1a6dce13c1e02584c4315710f4c29a36a87a4984","impliedFormat":1},{"version":"1554b903cb17787aed9b5dcea80358d6ea248c58933ee515aeb98c830b566347","impliedFormat":1},{"version":"758463ca4e500e663796adbf74833192d3b7b8de4854b63f45bd008f8a85e5a4","impliedFormat":1},{"version":"7731e44e65a7b3e20f506f6342e873ccae6129eecc0cbc02d1b3d30510642981","impliedFormat":1},{"version":"cb13dff5aa56155ed496db2cf084fc6a6e062d33fb0a8b72f2606e12cc3b1bba","impliedFormat":1},{"version":"dedbbcaff7747f2ea2677450351d36e7cfa30a56960a7fd261667eea2d4531aa","impliedFormat":1},{"version":"49620a7bb5ead5e646a697e4ab417a540a57b150efb8a107629eac48b13eb161","impliedFormat":1},{"version":"f07d892242e5d82ac0ed9a58ffe4056cdfbbfe8c4eebd2580e27635d7be65f66","impliedFormat":1},{"version":"2d48cb08bb8a13dc0fb00c829dae31d3ebe48bb060cdcc99a0079b4ac05c673e","impliedFormat":1},{"version":"8ad7581069b5fea9c14f35fa273b79c1eeed3248c15d8e3b3cc3014a60990622","impliedFormat":1},{"version":"96d049cb9f1a5fa296e00be2680394ac6ae91bcc848d98cfc374a469852ec23b","impliedFormat":1},{"version":"554dc5a72dea714b595395a4c12d519efccef1ce0dd5d7f41ae484401e50ff37","impliedFormat":1},{"version":"59dfd66db064bdc4a8167a4d5e6cba56213e94157fa89071f0289f07e3d95b5b","impliedFormat":1},{"version":"d69d5cbcb746e136acdd8e81ccfe00182dd9617bfd6c6c344e09a895e09eeed6","impliedFormat":1},{"version":"0a6182ba6bcbced44384aad64ced03428a44068db6e396627902d55452b63a14","impliedFormat":1},{"version":"f636e08e2de274463127a2adc5e8ca24304a2cd6ee5fe9483e35c8164bf35712","impliedFormat":1},{"version":"437f4518a56c655ee150fb75f821fd0684be16e6459204907fe8eb80ccc48cb2","impliedFormat":1},{"version":"dae796cfb059d6636e718f5e326c8f6243050c6d13f02b30e89522a05798dc96","impliedFormat":1},{"version":"852919a8c9f948a1120e26665877f445c5e979229cd9690926a4c1056ecb67ae","impliedFormat":1},{"version":"a533a88c900177a8bd724a8716d902609e7ab790e77afcdae1043ce882d6214c","impliedFormat":1},{"version":"61921a01ae678fc55f80344dc8770e257e8c3574abf42d94a0fb114439a360b6","impliedFormat":1},{"version":"620d192a20a0fdbb5f75562b2fb174e0df6762c53e0b3f3f9a905000983770f0","impliedFormat":1},{"version":"0d3d5ad7978ea95c0329ace8fc70d541f115393631c56b89b094edf9cc0e0267","impliedFormat":1},{"version":"9c4ff4b26953272dfd3fd9e37d46dbc5a1efa4ded8626b8f0bc79fafe2dcfc98","impliedFormat":1},{"version":"feb35d74e120494bfbc4c4c823da971a5b4b96e663513f68fe3c349fb8a592bc","impliedFormat":1},{"version":"c121aa1a348e834f829fd317dc6944f98169e0698c15f7db107798be1e0da78f","impliedFormat":1},{"version":"e751b5fdb543639ac55a0ad688e74c82ef24b9e712c9f1000399b63d7fc284bb","impliedFormat":1},{"version":"a3f6163afb8f4458c2a935747b1dfb384fa03f4f399a46b162e48d8b92aeb369","impliedFormat":1},{"version":"115dc68151cc74405c37a5199c2d42e5592d594c4788663c74bda8fc5bf0730a","impliedFormat":1},{"version":"d0c62b638bbf6104e0d50483239e212601576e246030b01d1b4b40918e7febab","impliedFormat":1},{"version":"de4227d3f974cb37120411c592819624c9da2bcabbb58082cde7df8dce2a89d7","impliedFormat":1},{"version":"a5c48a6fbf1358a5fe9b947a525fb353498792caa599ef33cb618b92eadcaf86","impliedFormat":1},{"version":"eafa5d831783eb6262f72363582b5a6f0e3a5ce7bcefcdafdaf372b54edcde3c","impliedFormat":1},{"version":"33d2092b9488d738d8c7a733d63affa819fb02773ba3212cf3426f4513e91eed","impliedFormat":1},{"version":"3a81f7ba793511be763ef2fc529b0779ad68aa1a4d8ff061f5b31ffe5338ade9","impliedFormat":1},{"version":"db92169fcf279dc7b08bafe78bbcffc4fe4e5e0fc66d00ea403b740e7a81b46b","impliedFormat":1},{"version":"11916ebd92fb285e5aaa3ad36c3df329057b53097370d884729507ebff0f8332","impliedFormat":1},{"version":"2ed240886fdad836469258df5fecc174ccc8823d619a07b0b0dbbc1a1616e48f","impliedFormat":1},{"version":"0b9214f3b1fe766c6e8ac26c685f5cd54155619f0e163c4e1a60118a7fc3419f","impliedFormat":1},{"version":"69b78d12bbf6f3f26065075189308104c8987988bf9ee57118670ef23c91c0a1","impliedFormat":1},{"version":"b11ec773a6f06effa0e041aec31cace90f3ed3f952d031a3f4e654bf8a313636","impliedFormat":1},{"version":"a9df4cac8ad59067b0bcf991f48ef9dd98f7fc3e7d1e3a36c3fb58073e1eac4c","impliedFormat":1},{"version":"f7e0529012b0baf35c8864fd60994e829a60acf05fb8a206deb405815a731b40","impliedFormat":1},{"version":"17831f179acf5e3b1a81da11b9b6fbae22e0f4eb996ffbac6667bac607fcd121","impliedFormat":1},{"version":"6a312ba9dcdcc637b946bb3d0ba6cc34b26cdc36f582167241e66a15a155512d","impliedFormat":1},{"version":"d10f6923085f763958dbfcedfbee643dd784a2a1489adab40825b7336d095d1a","impliedFormat":1},{"version":"1bb4ddb08f558faa5ada460dc8456be86a1f1e922a680fa37320ea24486a30e3","impliedFormat":1},{"version":"04b1eee9cd36515fc7e7c5ea54086c335c752c110f52e4f73e4f0cdde2cc3087","impliedFormat":1},{"version":"a236a69e4c0d1447040588861899788c718b4cf7d6254a3120a2ebcee95fb3d3","impliedFormat":1},{"version":"44a4531588aecec33f47aa6006da8a679340937d96e03013d05fdee5d8c2e81d","impliedFormat":1},{"version":"5ddef1c7f4524767aeeeda30bf8280d4b01d2c24c87735d0e8fc51455cef3c5e","impliedFormat":1},{"version":"dc31857a04afe1b49ff3fb722e8b4678210a1357003b626b9318448edf8f4880","impliedFormat":1},{"version":"00f09f305a5c82ff104a1b3c58360b4cd2557cff9ff37cfee6d5ed718a2077eb","impliedFormat":1},{"version":"ab57460a0acaa740c9a47c8fd19f22406eaab943992bdb27008eeb819da32d89","impliedFormat":1},{"version":"8776163e9a5556d318fe81de8cf8bb892e4b74d433ebd04edb8ca4856dda236a","impliedFormat":1},{"version":"2414ffd43aa41911f4a88803340a55bfd0e124a13a1a2d7dbe8eb3c619aa904d","impliedFormat":1},{"version":"163f6c701bb1665196f3b4cf5e3d1ca719f35e359c2812f186f3c86e495a13fc","impliedFormat":1},{"version":"4a1d0b807917c0c94767c261008fa1913304cbe959f44bba375dc1e60a74e7a1","impliedFormat":1},{"version":"90d3fc3f0fb18babdf4de1451ca218e36b30edb3105a58700954e33568075dd1","impliedFormat":1},{"version":"2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0","impliedFormat":99},{"version":"38d4cff03e87dc58bfd50ffe5a3fb25e6e6d4136a1282883285baf71d35967c5","impliedFormat":99},{"version":"5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2","impliedFormat":99},{"version":"6ea9c8bf2ae4d47a0dbc2a1f9ac1e36c639b2ac9225c4d271c2f63a2faf24831","impliedFormat":99},{"version":"a2a6960ef524509846b1ad24f36f6d9ea7e5ec7f0e55f943f8db09a598d99391","impliedFormat":1},{"version":"3d76957cf49167aaf2df848fcb2d95db411523d0025e9bc414006f641f407e17","impliedFormat":1},{"version":"594895eb74bdfe0a5174b5fd7811a8c912f2121347d773e56c28b7fb98642610","impliedFormat":1},{"version":"cf39c3aa36608091ba07df403bfb6fe43265a10b6ca43237ca5cd8dc2215c50b","impliedFormat":1},{"version":"ba7c1fd630f5175e41e24b44e2510aac50e98a2605d55bb4727e52c8bbc61505","impliedFormat":1},{"version":"a1c8b811348d3806581f7c5830d0d663eb910a828a69b5f49b7e3d219f6f200d","impliedFormat":1},{"version":"5fc020e4d3e29a0158977caa3b4ada841116bca7e95f1e3bd81972a973fa3e52","impliedFormat":1},{"version":"2a1f679af017f22773696f5f8a50be7889a256796e1e9c4639bb9683b85eee94","impliedFormat":1},{"version":"5c0896b0a5d08e905ebf5e5d644fcfceeef6b981864241ce87ad44c6d38b7037","impliedFormat":1},{"version":"33082e49dfc7aa882cac44fc860c9a0df4e71b869cdea78920a87c5f9ada3f35","impliedFormat":1},{"version":"37c9b58a44c587bba5fb17937cc009f7c8b11c5e1d034adbb6149fc7edf8f194","impliedFormat":1},{"version":"7a591b347f2956a5fdff47763b18e81f199d59ac4214a0eb10b527f668af3a14","impliedFormat":1},{"version":"18f8fbcb5964b00f0b9a59b9a20818140d256a0c13c40b27a84cf45039cd7ae3","impliedFormat":1},{"version":"7ca3766a7b61700680621bcaddd75095b2f6f1d5fd54054d455963e0b01a5271","impliedFormat":1},{"version":"3c210d785849c58fe7876040224d842318acc311170b36fa1fdecf6705e90b2e","impliedFormat":1},{"version":"931d881e641f8c6205ce766b5b0f4c334b4e44b400ddbd58a65f4225d6e55ae5","impliedFormat":1},{"version":"10b5802a62730e203b023f17e4aa7db9c8bac2fa557c0284362eeb85dd3db33c","impliedFormat":1},{"version":"ac6eb3be3381810472a2fc7056a9f736288f4492acb5e245804ee5275e12fa9e","impliedFormat":1},{"version":"1c7ddf03f8b22aafca004e06eb11ef870c6c48bb210cddf8f723dd634fc4b82b","impliedFormat":1},{"version":"8a62958b8a7962aa876a6554db15b6a40491e28b9772fd939254756dbd69d600","impliedFormat":1},{"version":"9354e4dbaf9540cfffa55762429274f2491c52780856a69df5f2bf1953638a7b","impliedFormat":1},{"version":"597d714b88fb4838f4eaf380e288889686168d0eb4335b03084fed54d71717ea","impliedFormat":1},{"version":"be7f71bc32c002bb28c81860665ac30fdafd9bf8631d3110f2ed5e9cf64806dd","impliedFormat":1},{"version":"ab5265c757bf45df980370183488884c0e6b04ecafd4476d07336fbbfff4a3c0","impliedFormat":1},{"version":"1b95d53b3cf18c5cb3998105b4e2d2db7f786406e194a935f7a4be03e3c98b3b","impliedFormat":1},{"version":"8dcacb13baeb9e2b3f548b81493d484f2bb95a6384e6aa311ead14fb87a7b14c","impliedFormat":1},{"version":"2b924655747dc77d6173bb706d427b89233969c68886301b97f0ec22d38cb948","impliedFormat":1},{"version":"cd532224c54d4c8df7e7fe6df04b9db97bba3c764ec06307f8063923d0ada85b","impliedFormat":1},{"version":"5ab9aca80383397243ab240ebc38ccadf85b566f670b980aed6e777eb3bab1e2","impliedFormat":1},{"version":"1a8452dc75d92ee4fa82455bdecede05171b837b023f374052f58f1bcf5b4da1","impliedFormat":1},{"version":"5290bcde06d2a1d393225c2464ef8a7cf6e3b68ae3ece13c4a48c10f0dbac1c0","impliedFormat":1},{"version":"9dc2e706663c027d2047a7371608bd1aaa0f76a974940f85e101a9f3dcf77f99","impliedFormat":1},{"version":"1a2f03003d76f913c21a1105408fb3af3184ab55dacdd7866e1fb5eb1f4a2934","impliedFormat":1},{"version":"25fed060cca7fcb097bc0a62dc5a71f60ccfbd3efa1bb3584e4b38d441ec9ac1","impliedFormat":1},{"version":"b636d739980b2e9a24b4e73251adf464e2ec0457ba998007b89ce7977ac2ce7b","impliedFormat":1},{"version":"411ed25e4d8e230ee295227a763e32a395bf1eb250e20af71a9c06a7e96a5ceb","impliedFormat":1},{"version":"8fb43d72aa54443abd069be799aec92b354ad28990f5f5f1acd7857773b54bd7","impliedFormat":1},{"version":"fe8e8c8df9218e3e0a418ddb058a81e895bc2ea5b548571b79594eec7d573628","impliedFormat":1},{"version":"2070abe224a2071f224fd7783212d020ee6d3f71c6f48405070a0b2fd9bfe479","impliedFormat":1},{"version":"a18875ee326a56d20c87ea0e86ff11a9d767cdee9cd5feaf60dd61c5b64caae6","impliedFormat":1},{"version":"df9d5f06a1692717762ca9f368917924fdaccfdfced152804d768eff9baeb352","impliedFormat":1},{"version":"34fec0d3b9abe499f5d53f1ae7a6c28d34ac289e5cff6f17587da846823cecb0","impliedFormat":1},{"version":"9ea3742314159f08b93e3dccb7fdba67637ba75736c12923d4df3ec9f40590ab","impliedFormat":1},{"version":"bc55f374f2b27277afd0ebdf0e503faa20ac18e81d15ac106e443ab354d3e892","impliedFormat":1},{"version":"ffc7343ac667843634241465fd8bb2fe5000964873434558f82c0e670d2b7d1b","impliedFormat":1},{"version":"e35562032ca67f79d83bb8e2b86b61dfcbac6a914ce15b0e2235e6626dbd49f7","impliedFormat":1},{"version":"0810fe9c952efed2e4372b734baaaa946c975c7e3114b9cb1e31179bca9662f2","impliedFormat":1},{"version":"18b2b9e3a3c86ebd23ac27a8f966b1870b8ab29a2857dc1c524a08a49b3aedf4","impliedFormat":1},{"version":"7078f3696ec34e21ccdddfd668eb9f679478964b739082f1d2f4ec286e27e324","impliedFormat":1},{"version":"2ef538c8ab12d795cfb3759aab16593d97bf8d1f491ce4a7cec2f452c30d312e","impliedFormat":1},{"version":"7ffbadcb4cd98d917e23f35a803795404e302f2e5ed3c69fbdddcbbd0190d2eb","impliedFormat":1},{"version":"8de84288a2bb7428bb031ba2a5b6ccf5415a06826b902f704dbfe0fbd8c60745","impliedFormat":1},{"version":"d5da81f56f3189ba0a2f7fc2c38915b741a5d4f9c1d56749bae3cd821eb11dbf","impliedFormat":1},{"version":"ba6514678ba39cd24e45efb38e18d25274787fb031b49b7f9dc2ef5857330ecd","impliedFormat":1},{"version":"2dd0a4aeef324625f4ff674e2cfa14e0e3a45202ae2d2c2ab882ec164589ecb1","impliedFormat":1},{"version":"6c9e1fdd65d24d365a746e8a47f8f367650dac5e9436ef0c0f20237e204e072d","impliedFormat":1},{"version":"7f79adbfc34dc2e7fdbb76ed579a4e1944076baa68b62cab9c05a81780088c36","impliedFormat":1},{"version":"b5979ba9077be6b986d0a6c8b6904fb32ebacf0d58fe66f5595a83af055c9f23","impliedFormat":1},{"version":"a883088486a65513998935f6444e0448820478b0f4783171138e3b8d3e92ed9a","impliedFormat":1},{"version":"1a09ea0b80210733d1c5fc284ab10291e9cc2d6c4b70764d05cfdfbe4116e71a","impliedFormat":1},{"version":"3da00f0c6f5f4bca013ced5172164a08e83f33ddf969b893c9cca734f97abfca","impliedFormat":1},{"version":"2ee1fb806f0b0f44313b46de861b55649634ebd9757c5514c3ea93cf1255d45f","impliedFormat":1},{"version":"580f7dd2752bb6468e1eae47c8465d681e8016614cd2d20bad21680401381560","impliedFormat":1},{"version":"3e6c1a8e7d9a2fa9e6e515cbf2eac07eee953a6ecc134e8fc565ed914d288a05","impliedFormat":1},{"version":"aefc07a7a75a93e46eabf563f85ccf13fc5674fb2575433dced13d86cce102d6","impliedFormat":1},{"version":"39593c50b59d3f35738f1d04978755d746aafd90d90f2f088ae072e38c98d753","impliedFormat":1},{"version":"e09e37a97deb2318bcc307e56eec9e74307bf4e185c5028cd61fb7b7a415091e","impliedFormat":1},{"version":"d58164beed48baed6bd4e8b4f1d6d35379bdcb50d79874efc906db8177e99dcc","impliedFormat":1},{"version":"fd4d66024e28ba8eac39b0d79e9932c1e7ab2cce39c3c8d776a10c2d8d550c95","impliedFormat":1},{"version":"0bf65d13cc32a5456a5983b40038f2df29676c568219ed7a173d322a7a7a1046","impliedFormat":1},{"version":"0e174986b721b6f8e0ae71473e8ecabcd27a72a1eb0c6a5b245641c92eb1f548","impliedFormat":1},{"version":"5195fba3a9190c1ab07ebdce0c43ef1215513fceee989230ba26b560db68b9b1","impliedFormat":1},{"version":"6e888892c110c9d9f5dea5cea9d73a7ffdc9539ef33e2c909c71aedb89ad6306","impliedFormat":1},{"version":"e98b949511cf978e1416c23635e4a7af49fb7e906a3aaad78639d0354ca3f91f","impliedFormat":1},{"version":"9fb0f57f4aaa5a7f6f47999bfc60d46fc8624174e5ec1db2eee681e7a7c5b7ac","impliedFormat":1},{"version":"6e5f47bfa10432c13f71a1f65d4c22fdac37f5b466250b200be575b044e466a0","impliedFormat":1},{"version":"9f902e8b6ab7cf1195f7dfd4ba76ab1761d27dde27140d8e4334d664ff5095a1","impliedFormat":1},{"version":"b6597583353a27878d178eff7cef1df25cd47b52318fc8c1df887778f39fb5b3","impliedFormat":1},{"version":"89499fdc926291e337e6befdfd4b3796a5090c8f7d88f670186a3478f287e049","impliedFormat":1},{"version":"f90e0e3dd84b892c1166fee0c4d07fefe1c975aa335249369198e9e303150c8c","impliedFormat":1},{"version":"0dfb0943c928ae130a9b563a0d95d19a654149c63afc5eaeb0bdab22a2e4cf92","impliedFormat":1},{"version":"f1acea90ee99fa895bfc2be16d42d010afccf581f0a4fd81af05c1e33ba52d30","impliedFormat":1},{"version":"eb7f78707b148715913878ab073771c2711636f81d9edacdc23741c5c4676409","impliedFormat":1},{"version":"69b302f58e27871aa18c35c9f6e54e182c7b5e093d680e90dcb271ac206f65b1","impliedFormat":1},{"version":"6bbdaf306a56f31d1780c457a169c54856444cd0e38bea9302ee7f719216320c","impliedFormat":1},{"version":"3764e1710ae3be641878c48688a6064b50f88bdfab8270477421e0ed0370c20e","impliedFormat":1},{"version":"b4039afc53de6f76bfe17e9667c52903e2c3522cf7e2adb48bdb0e9801c53ae2","impliedFormat":1},{"version":"0097a7bca0c500ea9ea03fbe979b864aba32f8add469ab5755f9ca20bffe146b","impliedFormat":1},{"version":"e4128e408464f38961eb93e466b10f0b70a5347bed31a306567de8a9d2cfa2e2","impliedFormat":1},{"version":"6c2913d56a401a786605facc3696159a4334fdde5e3cf3cc99606d63eacfd77f","impliedFormat":1},{"version":"ba9d942ce82486a429051ed695bbdc82922154b1867968bc3cd528fef4b1db0d","impliedFormat":1},{"version":"5065d8794b4d58da06eba6c467c5ce628227fcee5b378bcb513928e5f4351d3d","impliedFormat":1},{"version":"d96916253cf5b59873d497bda35bf1f60ca574a7611c288416903f6da67dadbe","impliedFormat":1},{"version":"1f08d836cb44ad9eb02e5437333eea1422bec0fbeedbe2ee637ba5f85c776df9","impliedFormat":1},{"version":"747978ad044367d203290e385379ba6fa13094707cdf93e7c46a28b557d5ec55","impliedFormat":1},{"version":"085986a624337952d77da5b7f4606715ff736293c0cd1ab2bd3bcaad20948100","impliedFormat":1},{"version":"42052a992a6973092850f23f4010d7137d202c1f56a8e8c515afa5de03b38506","impliedFormat":1},{"version":"80aa8bd81499eeab329bf5cd4cdb47cb6a1e55ce8c381c73ca0b34504dc98c31","impliedFormat":1},{"version":"73041c005eaace48167bab34c90c22873c23cfe7143a8a1e4830325611b8a432","impliedFormat":1},{"version":"1b8e481079ddfa96fa74e13195d09a3042427deeaef5e489c6953d033790e0c8","impliedFormat":1},{"version":"fd8c6a9b6efe0982844a362276267f4a8a0d0eac3f6c0105e07ae448baa089b2","impliedFormat":1},{"version":"671375a441525dfd1dd0d6205596b89cd5e36e43f5d5bd55241a5ebb1f9f8536","impliedFormat":1},{"version":"0ddf0a53aac62bec6bfbb70acd8ec414e4cd406e456d90b927d68589a1bc11fa","impliedFormat":1},{"version":"6b67e49174c6d0b293d10173bd4a1cc03006e5e34982a27e411474d6ad4ab08b","impliedFormat":1},{"version":"bbe077c6b64b00be512cf103a2b162d07e062bd192d27a80e6af5e640883efa2","impliedFormat":1},{"version":"6d8c163fa3b2767df0be2f34a5766f2f84400f855004dee35978668ea8c643d6","impliedFormat":1},{"version":"67901cbfa0e5b836fff44d6433d388ee08d49e861dce861c46089e85db76d1b8","impliedFormat":1},{"version":"cd3637aed7763ba22d12a386349eaa3ac394187d7e62ac5ac2f2b21959f2c92e","impliedFormat":1},{"version":"182e6dc43d9db5b02d97da9ad1a1f33511698690d075aa094a323e5596ee4151","impliedFormat":1},{"version":"03daceaa4fc85ddb4578c3e00c76d06b08354f67d3488fc0d3ba70f5b7bebe5b","impliedFormat":1},{"version":"a61a2b837dd119f4bb6328ddc2a75d2991268ad3f3c7fb057f5647659e8f7a0d","impliedFormat":1},{"version":"1d56fda4de62aa710b03933ed8886600db20fed547fc82fdb1e3172890b911fa","impliedFormat":1},{"version":"cdda9aef8ea456f57dbc7a1dbc992775635f35d1f16bc6ba5eec62582eb95c97","impliedFormat":1},{"version":"809f7de42db29764819db01936dd61260c36bb46da14a2dfd0d9cff433119c97","impliedFormat":1},{"version":"5f5a37e3d8f88da4365d633ba046b4a6fb20295417527e553f64a4b09e3fe7c3","impliedFormat":1},{"version":"5b76ebb3f054e884e915f113277a51baf59e648c63704aecd893b03d59f1a1c7","impliedFormat":1},{"version":"94db31e5feb97be7603749e699e2c7a149c1757ef3a7f9409527a11be2886780","impliedFormat":1},{"version":"80bd39fb5dac4905e90d9d2d2ec1bba058e4c5e65606263d76fbcef5499745fc","impliedFormat":1},{"version":"c814167f5da5cf413798dd7364096bdc04e1880118cd0d6fc7b1c8a13cdade31","impliedFormat":1},{"version":"ddca3180cc80853cbd1fd0ff049b4c174243110a4a2f231ac52f808369e10fb0","impliedFormat":1},{"version":"fdbff9f09e335506a85070891d2a7d370c151b50733742e4d2a7fc16900e4a95","impliedFormat":1},{"version":"b2b44b7e7d9e497466c0af940cb970eeca779ab831550078a0520aedc0ac3460","impliedFormat":1},{"version":"86dc4fb96df154d94b170e083ca293c38c12b9db881d04a4da308b7116fb75df","impliedFormat":1},{"version":"964e5c21c9795282e320431952f8399a76cc9c680516bc05940f6521f82c8495","impliedFormat":1},{"version":"35c15cf54be7051ef44f508d9da9c27c547f6e81d52bf477b0f809e2327ee8d9","impliedFormat":1},{"version":"b8d0deccc242126e1550a2ea3cc2661d7b174ea120559e1918e06b9270285ba6","impliedFormat":1},{"version":"2e52952ef8cf48a372827fa45cdc5fb094c91421f4feab9c803129ee078edb8f","impliedFormat":1},{"version":"a9337ad54903029d34c273ee605be5716e7832e281f6fb66715f661a93c10776","impliedFormat":1},{"version":"d907dd40369128bd18eee0e92d883b919aae330aef5edad23b8bc267c46e1ecb","impliedFormat":1},{"version":"7b877947ac19bfe5039233596c2a10b10f773acbf9857c8354e47e16b319e1c2","impliedFormat":1},{"version":"73ebc746aa0a19fe29c826702d37419fba934262c4c1a3b04d37ed2a20fc15b5","impliedFormat":1},{"version":"a7a1e121728c2e212f90d8d2f305f472b5a88c30dedfdef781ed9c75f2c8b3a4","impliedFormat":1},{"version":"e5531569cb6d4fc5ba2eccbb67ce8f8bca6f569c6f0702a625d5bfd0ef364854","impliedFormat":1},{"version":"5fcb4b897e8ea1ef4d40a6f42a93c329685f29b4c6a3639a02176d9ca9cb4686","impliedFormat":1},{"version":"e8dc672b15bf2e1e35a81e45140d830be8c98111325530e5f0eb7c5863245e82","impliedFormat":1},{"version":"9e8fd5b597e56e984d9ace2f8b5036c52ce3db8bd99c9d0a0e2a6be437eadc85","impliedFormat":1},{"version":"5a4a8f7317fc4821e7a46178c217733bdcf29c915a4919289292438e15de4607","impliedFormat":1},{"version":"5e238dda917cd2472b4f01de26b108974e55284bb214a4bfad978a5be34be7cc","impliedFormat":1},{"version":"5125b5b048d60035522ae201ccf7525e2f6a2ac5b2e68b6607ae54c715c66900","impliedFormat":1},{"version":"f55b6c21681fb9bb17f61ff9368fbd4e71a79693ce295a14151b4f325413b0a4","impliedFormat":1},{"version":"a5b2f909b4117accaca01cabe73871cb9077b9f93d292dd232f10892d146de43","impliedFormat":1},{"version":"9618adb3ebc25306662e030f883eba7057eaf4bb2c6d5879dfd6676129815c02","impliedFormat":1},{"version":"01270a9f63529e308eddd085993c4f25c1cb594e69f47ed3b289fb097af55a6d","impliedFormat":1},{"version":"d92d2527e59d91387d208c266a49524fc263cda8f6d54beb9b85f98b75493617","impliedFormat":1},{"version":"de0d38c21863792de0659e01e8e76615be53fa586ac1dd5b54f6042ec6348feb","impliedFormat":1},{"version":"a55439c4098a852a7dff67fcc3309065f8bf6009e02273e0cf7f6e165fc959c7","impliedFormat":1},{"version":"3e2f969b9fae540fcefdbdd76fd18c9743a369759730c66c775bd7dea5c151e9","impliedFormat":1},{"version":"fd1aa5b5f3c10cb19d3e0ead864d193a5fcc7efb837e47212255bcab2847a173","impliedFormat":1},{"version":"3abe9c7635bdd2ddbbd9f1a4d98ff44c2ebf780e13e17187adc98ec82ad0c7fb","impliedFormat":1},{"version":"ba6fdc7d3a3d6fc4236d491103cdb8b132c151b2dda4b06fbd38698ac0e3d2e4","impliedFormat":1},{"version":"32a3a19d049ef0b2539e525c862760158d6d16345835f2bd541e8f9a45380b50","impliedFormat":1},{"version":"7fa7fb68cea5734bfe2091ff218d302f0a3066f4a78ba26078322358765cca8e","impliedFormat":1},{"version":"11248c1e632fadd67c22d561754c30265e785edd66cdbfbecb227c3a9b1ebf99","impliedFormat":1},{"version":"93b6da74507103bee98e39f0d02cf6849c0cadbfc813f26804bf9ae5d0d3f75c","impliedFormat":1},{"version":"29675992f9e94f7f721674c8d07bc2042ea7a6bb8cf602b0ded185edd0c557a5","impliedFormat":1},{"version":"daec5d2d52be233262c80013e18d57be920152412de99ddb637700410ee7fa7d","impliedFormat":1},{"version":"e1e1837b07bbeb81a00d1b0b7edebf8f3e2b44ad148d5faff905ba17a0005813","impliedFormat":1},{"version":"c01d685b9634c875d18f81b643cc1fa5c01a1c740ad19a2578811aaa8f12f414","impliedFormat":1},{"version":"a896dd450b58d96d34a2b565c4d0db365eebd39cebe6e34fffbb2e01065d3013","impliedFormat":1},{"version":"7fc08eaeb2ac34f87eb2336270f2368e66eb83796d5bee2a96438f01d088cf68","impliedFormat":1},{"version":"d6d4654b5db43b43d857d245c054f359b8aaccf6004bbc4324f320ff2a507a87","impliedFormat":1},{"version":"628cc9debf7b2c1828d01d134506fae17eb26b0196d82184df3b6d9494b43ca1","impliedFormat":1},{"version":"a3d8178c385250d74effd5936477f4d5d2ebb9afb5a342bae1b928f621af63b1","impliedFormat":1},{"version":"02124f773917b14404ea6b1c87bd84e701136ecf91ea1a447cf93ede4bf04983","impliedFormat":1},{"version":"e4d4ed8aab4e61f8ed7656baa565ef07cb0e6f8418d81766721cf2b591845243","impliedFormat":1},{"version":"e2a7ef3681c1d61e11203e8dbfd77e25f23d7560c8fcdfa37490899d037c0ee7","impliedFormat":1},{"version":"8bcac2d5ace8feaeba195f476351a0f09841ba69a1b6175ab6574300fd70c9d0","impliedFormat":1},{"version":"53ccb10a74e6de7b5ee83cb44a12834f823fb78ea0ab3ce51475cee1779a8d9a","impliedFormat":1},{"version":"88751f9db85c13a404f3fd8348ba1ffd606715ac60572aa7b20de442049b0fff","impliedFormat":1},{"version":"d82aa6e7f1decca5179d57d12f94a9ca9b3f7f77048aa20ca98e154c3019c1fc","impliedFormat":1},{"version":"444a93f528d1b023dd00c1b46dd3d474a0339b50599b2e819ab13fb6b2c915cb","impliedFormat":1},{"version":"70c415e2ed25afac403f2828c67743154a8252945ef24e9343e6a3a55431de7a","impliedFormat":1},{"version":"86add54a494cb66d630e4554b9a2552fa2488b491549cbc2a7ca0e538e1d9f1d","impliedFormat":1},{"version":"3039c7975bb1035041e6abac5c71cfd0c2531ac20f8a3c521891d18d21b831ac","impliedFormat":1},{"version":"6a8111e8e43cffcaf41372315ae6cbc11d8596cec0cff4c6c70b27da75cbdd25","impliedFormat":1},{"version":"e75a6771bec31aeb2e8258df9f6c6652d1659648eb53dea7773562660a6fb5ca","impliedFormat":1},{"version":"4c3438e7cc5515323f5846d72b84fec9fe2e6d5fef50a517542c7a9bdc51dbf0","impliedFormat":1},{"version":"1d86876dc1a10218bcc482d392b3b86a61ebd4ae5f591a4755beb074099e4e95","impliedFormat":1},{"version":"80ca9dfd51ef8727912344fa6dceb3ffbda52c4a2ffb2182b704480a5fd7ee8c","impliedFormat":1},{"version":"770c2dd0ac11667883a3ebc682899c068c48ebd57663e4c50949e5652dad80fa","impliedFormat":1},{"version":"feb908fca7ebf8a474b20dcd1aee71d49ecde939d2f9d6dc9e8c9de589cfcfca","impliedFormat":1},{"version":"50849d34df4de824de2907e963279d49ab22f1914d47135cbca6fcb5685d49e8","impliedFormat":1},{"version":"7dc02705f75ddc71b0e2f18351d3696e41f6e07d790c18afe5b78c89e67ad387","impliedFormat":1},{"version":"79ca6338c68397a7e0f0b7ddaa3350c9764b8a2c4f4638251d316f72cccdf1cc","impliedFormat":1},{"version":"d4268aa638387a5d8219b3f8ebf0973ecaa4b2814f4e036248bd189654e510dc","impliedFormat":1},{"version":"7e6aa259bd4b2bfea6fbee6aad9811aa9b0c40ba71cd53e9db77073f41ff3aeb","impliedFormat":1},{"version":"4d19bf8ff0030c8c06c5b006baf9f7627e9f76216138eb45966583d0d5724b13","impliedFormat":1},{"version":"59a25169e290be34736885c06d5e29b2c2af1d6bb0afda1c3126a57a87c0dc4c","impliedFormat":1},{"version":"16adda3678b1f885104505504ff3f705f92cb071152b6826143a6578b18a12da","impliedFormat":1},{"version":"b773a29e6618e4ece53d0984eb455fca116799a6f658f4ab9de40c58d71f2dcd","impliedFormat":1},{"version":"f3b403e6482d63c3f00d1a5e77f8dc02c85bb324fbc35689f94f657ff678cf3e","impliedFormat":1},{"version":"eb1dc31de2323373220ddaa9e35f12eb2e2528ba2ddba760496b5e02f94e83fa","impliedFormat":1},{"version":"80d5e377dbe2d879fd58b903c81cf8051794a2457346783ccc5219088af95229","impliedFormat":1},{"version":"2f011e16e37f62fd4a7a00986fe5678fd7318af48b733274adebc2a1096f4701","impliedFormat":1},{"version":"7af34691e03a05e1cc3ab659fa0eb97df924dc12219b9e0d42df1b1b4944556b","impliedFormat":1},{"version":"d179af5c4c1785302bdf44967a0298b40a055290cbdf49b8b1f6821b5ac45d13","impliedFormat":1},{"version":"715c6cfb5c918ebaf7a4ac12fe7036354c7737ee53f27e953b0c6b32ea5c7fed","impliedFormat":1},{"version":"c14033543f143ff973b992b5cc84a8ec179fbb26c55d021625400bce08693062","impliedFormat":1},{"version":"e0b68ef2073c5ca07054a7569bd426b18eba0a13bfeebd987edbc1c08e9858ef","impliedFormat":1},{"version":"79122f57117b9579f963bf6db860c90f43c61fb3695b7b9709733dd36caacb53","impliedFormat":1},{"version":"4f1ac03c089109e65116ab3c7d6cab25fdb6a39de4261276224e87daad49a416","impliedFormat":1},{"version":"668f9948d2ac4073c890e9085c0a0121e91829b12e7dfff1bc97c2b22febab66","impliedFormat":1},{"version":"95d3f7dbf440ee15105ed62b06ffeece7c6b2e9c8d7cafcf926a02732b0651bb","impliedFormat":1},{"version":"08c35dd9786948e567228b7981fd7fa898635f0ad07dd474d19315a4e4cf8752","impliedFormat":1},{"version":"7c95d753ce060546ccb96db36e36bdc1ee5527a99b81deae23537cc059b728b9","impliedFormat":1},{"version":"f02a70ce1d93ea668934465feb287fdae9fb9fd89ffb175e3641b505d123f1b4","impliedFormat":1},{"version":"ecfa1490baf58bb547cbffd35055a8d37350e5a4555541ef9ca594f296adf0e6","impliedFormat":1},{"version":"17fc7881515e746d2d626fe263fc89224c51c87d12cdd1de0ea18faf297b29b6","impliedFormat":1},{"version":"2676d7da626cfa5bd5c71bb1bebc049e6f2a2b68aeaa3759e052dacaddec2e7a","impliedFormat":1},{"version":"1f252a0e6a399dfcb9c151462a942d3c3640aa024748e2357bc2e50b525dc66c","impliedFormat":1},{"version":"76163722f8e959ab91ff15bec1df8b2af77e12c975a41fe696f3a14fd3850da6","impliedFormat":1},{"version":"121237ae57eaac5ebf646f81cde270eb093e12ee4d3954f9d8595eacdcfd9cb6","impliedFormat":1},{"version":"9a84eebd6e526afc2fc38392b0c507b9c373159bf9565b5a192d53abe9cca1ba","impliedFormat":1},{"version":"1745ce89aa62ddb61b342a63c563575d750207b9951f256c42c15cb825e5df99","impliedFormat":1},{"version":"6762da06aef84aee250f90a6e8d65ffa470c6b5bf7c7a2d4de68077858605417","impliedFormat":1},{"version":"88782e4ead68723b1353d3cbd8eeecb2b88577809d6920714ca3d61f755b6e14","impliedFormat":1},{"version":"95448492f7f7db2368809190d29c7472ed3f6f898614360ec2ded6cd710c5bf6","impliedFormat":1},{"version":"638fd06e4ac9a0f7f80cb59b2acb9ad82d90d4595b791576078500da430cd691","impliedFormat":1},{"version":"532fbe381f6980f5f96c526f5fbb6e2393093ec4a6947af24b2ce4f0c64d464d","impliedFormat":1},{"version":"59262b81348ab6c3b8648eb84d869d359ae5c2ad69a4e0022fd917e936389f9a","impliedFormat":1},{"version":"980bc0f948c0b2cdcdcfce30cb6a67ac7357e9a04a5a5377a4b603ec5ff3ed44","impliedFormat":1},{"version":"08dfa3925bcaf3217ad1cb48e967b334371258446f410a2bfc0647ead3b53958","impliedFormat":1},{"version":"c4de9078f00e95ecf7eae1756d21022683889dc2f7dc359ac1a401eebbccfca5","impliedFormat":1},{"version":"cc0a459bdc4e9cd5fe034a62fa83a8737486b0bf40b11190e82ed4a0d803cd55","impliedFormat":1},{"version":"e159fd8868a308bda44f504d5804f730bbc7f35c7c163c9d3f04d36a1f3eccd5","impliedFormat":1},{"version":"48c16c377d293408b0b9f8ad3822c543728924dc82caaad11d271cb5a43c8b0d","impliedFormat":1},{"version":"a35768b4aa61e5cd551016c91f2da9666c485fd32cb85063a395f55a74932df5","impliedFormat":1},{"version":"60c94b45d32c09deec9a19ba3f7d8f680767992c1724e20386d786ded16668a5","impliedFormat":1},{"version":"d8815d7ac98bac1d4d476b6de5c837913368a909f1d417738c621be550483037","impliedFormat":1},{"version":"efe5226c10cdbdf02bcccdd55ab7eaa546d9d20f8631b71eac14a171b6856115","impliedFormat":1},{"version":"25182a16410182f105e3d4f7ce47704868692d82b810145a1fd9214dd68e39fc","impliedFormat":1},{"version":"5d802fdd246b92e92cceae486384778d2e70099364e3060458ebca3db6c9537d","impliedFormat":1},{"version":"25911651d3fd103da84f2da6089c5796c2cd3bc9b885de8d518538ee0b2502d7","impliedFormat":1},{"version":"b1d4486f4041635f978e24b6aa7aa26a8b1df81ff6d7fe82e8315d436ce4ea4a","impliedFormat":1},{"version":"697ee35ed13099d7b2a3bb7828a581d2b6d1b23574a4213802620429c973ec27","impliedFormat":1},{"version":"595c172dc0edb928be05bac0fc3010d9fe5da4fa92e404083f2749e693138882","impliedFormat":1},{"version":"573082b6780a37ef0f3c4507fa954e09f748f710bc50754437f0394639402520","impliedFormat":1},{"version":"7ae49abce785a8816bbb49dd5fb301ee5522f02014aad1095639a342a4aabb26","impliedFormat":1},{"version":"c8ea14372521ab27bcc17db148bad457dc802b6a7aa95a3e67efabe67831143b","impliedFormat":1},{"version":"8e4209d2c93131a8ea06006841fb7c08043a444071f094927b2e160d67ed3ecc","impliedFormat":1},{"version":"72618877b1e15de4275dfda49102c6240811bcec30e4c9f8bfce889edf18187e","impliedFormat":1},{"version":"3a699715c6b195cd9b7fe96bc4c6482710c5026380ec32ddd49e60a42cd8b9a1","impliedFormat":1},{"version":"13e631d64e1710522bd93bb90235dfbae228d2b6fb762dcf9cba641bd748829b","impliedFormat":1},{"version":"e965e9e03bcb2366b03337dcb8c82a7217eab605f3db90ee942302bf98db340a","impliedFormat":1},{"version":"e384122e4fb7bd3ca8e36b92825508beb73784446e40adc1f747dd331074c35a","impliedFormat":1},{"version":"b331bafdaccff6ab5ea40b3526457cf25f80e3a418958f8b8737450df8ac95cc","impliedFormat":1},{"version":"bc756ad9380c772b2a0090e370516abc6566781684d87560fdc69fd746a22eac","impliedFormat":1},{"version":"8acf5e34281b6896a32f263576144711a1e0c5aec82deb593d8675c18147f546","impliedFormat":1},{"version":"b9876d7df3a4ec58dafa1eeb1e5ae104d3326e5d0ea50fd34e8e67b58e52e98b","impliedFormat":1},{"version":"213891ead7f95efed458988204d6d328fbfa6680dbd071a833e8e8ece091c162","impliedFormat":1},{"version":"42ded6282e32871a3f09fb7a75c5a4fe7b15b567ed26240a9423a66d4b86d208","impliedFormat":1},{"version":"e96ca53a2b2ad48b5bf88acae2eca9b0abc169fc5247ff50b859bcbb1decf17d","impliedFormat":1},{"version":"e498682b4351711ddaef48cf3188cfdecc0283f4f5f73bffdb9cf362a3e7e050","impliedFormat":1},{"version":"ca483bc36f5d4562f841c69ef35ffd4aea406b4279ed20731f09585610e0a802","impliedFormat":1},{"version":"60481d85fed75823dda60351102d97dc8a9da90fa02e3d0a99b87a0bab04e435","impliedFormat":1},{"version":"ee3ed2930c509a2c67f2d5cf2674d4a6492bc76732b3fc68fa7130685e9c8b01","impliedFormat":1},{"version":"321df1633735c87d46c5eff22d8088cff4bc306d1d2ed4ad4dc7a86da66f58ec","impliedFormat":1},{"version":"0d88fdcd81ecbe69ca9653d9d539cdbdb9149c581a21b4baf57de562f8cbecc8","impliedFormat":1},{"version":"fd5dbcb25c0b40f7cef69a0978cb5d0dd024354e8563fbc99ad60ff022b40737","impliedFormat":1},{"version":"0d9e9751713270c684dfd3d0f60d4fb5903ae06ddf5bdfa0f2661b37093f8bee","impliedFormat":1},{"version":"1275c436f0b1b256189ce3a87019fee89f1c7c6194df24f25658ef92d2a75727","impliedFormat":1},{"version":"37fd9ef1c7c0650bf00c918fcee22d682ef3c6976edd858d63d74309afb37f3d","impliedFormat":1},{"version":"ac14166d41facb50f3ef111f7b9e66a5fbb2010724d8bacc3aef62d28c1c981b","impliedFormat":1},{"version":"1b542dc311c5c6c197920545b5d997095d4f81f41fedbab1658ab244db05410e","impliedFormat":1},{"version":"39bb8abea90bd4f0e0f196b26fce0fa7dad2e84d09ebd55cf26f66ed085d4c1e","impliedFormat":1},{"version":"15c3d2438362bc387bc7d7d4f8465d12b292d59d4ae45eb6a5f3a3714aca0533","impliedFormat":1},{"version":"98c26ed17796f720fd2ae16640a41139d13989848387eb78dc1dd4b3fd0c732c","impliedFormat":1},{"version":"1e875cc927e244f0c29c70bab63d90f20e71064565049b8ebffc90552f12776e","impliedFormat":1},{"version":"6129817d361cd2300a08ee34f5fa2b777a4fc90c3febb79c918ed1c40f7a25b1","impliedFormat":1},{"version":"d62158cb30f91935a8d0a410a869a70a6a0940cc2e98177616d74f037688bf92","impliedFormat":1},{"version":"427ffa97d275e77497fad3d24fa95fab369c2cf4709f27620a8673c22d0c151e","impliedFormat":1},{"version":"1a6b8d2e110bc4f4589963c97a3dc4a08b662e59738d59dca2565f7c3b35dd9b","impliedFormat":1},{"version":"451554fa5b756b144bedd2950aef7795728c37e619b141f18ba5efe721aa34fa","impliedFormat":1},{"version":"f63e5fffe7540b043e714c2d9cc1be520fb6fe5b9f8b709eac7523af40195186","impliedFormat":1},{"version":"0315812a5654097cc200625d27fa287f9447b750075cc2d33705198a14066e3e","impliedFormat":1},{"version":"8d0abb60d6f019de7726b136a8276990dbed686409953ad2cf6d79ee8b90d3b2","impliedFormat":1},{"version":"56badaca43104914e6e299612de820bc66a69e43ca7fafd1f340ed70c09cfdbb","impliedFormat":1},{"version":"203d186ddc779e35e7dfa7193735254529d252ef7f52e813f259e6ed479e9507","impliedFormat":1},{"version":"4386fccebced3e526ea7e601e54cfd712b1ad1ac40c21158d053d4bb1e55b951","impliedFormat":1},{"version":"cd965101939d557c184a81cf8e773e31146873382cf1547d035cb5e6cb57dff9","impliedFormat":1},{"version":"c037102606e032569c026474a95c31a63f7d752cfe6d5123e71c09b9fa636d56","impliedFormat":1},{"version":"77588f8d6566b6bac03479322cf55570e8f9eeb8f27ba8b5af2ab907b573fc45","impliedFormat":1},{"version":"522129a86f52ecd6236a4e59be4542a8b2c6a452ec6317e53c82b6ef5840ba89","impliedFormat":1},{"version":"4d1fef84811f86e8ba66ee6af1c97ec67a94d9b74e7e1e8f21a23e47f65b56af","impliedFormat":1},{"version":"3ae84bacbf3da888f2e9faeeec5b1adb9755acaed2a4cde11f2ed34b64201864","impliedFormat":1},{"version":"6df7a162ffc842b6695684de0ee5184aa970fb570a38e702d200df659808fa66","impliedFormat":1},{"version":"7557a2a4e6b0b6a6545d5d65284ebb38bb67d53bd2c0f5e99ad54dea57f67500","impliedFormat":1},{"version":"0d93012bbf9e0a40727e36369752819c387f0a32f30e863c727e9da25b773f6a","impliedFormat":1},{"version":"ed6f91479c0538f25686a80ac97d4b485a3f0f8b06937dcdbd85d458f183db4a","impliedFormat":1},{"version":"84e25d7608672366e55fe39acb592e228f6819686c208a7cb4dfe46ebdb1d6be","impliedFormat":1},{"version":"949ccaac85986e407f0fb6f02519070804470897d50f4c29fdea344f714acfe1","impliedFormat":1},{"version":"5e63b02f4474647dc7bc40d809695e3812af40a0a05b72f23729983d97d91c91","impliedFormat":1},{"version":"86e11b587490cd8365421eca18966a59d89cd4846d5a84a6a0572ee283513902","impliedFormat":1},{"version":"c3dc0d9cff2d4456c574888110720b7a9582282971b907865e323356786cfb42","impliedFormat":1},{"version":"952fcddfcc7b49df167140b9f81b7c62cc6ef29dcd4fa5f12dc0f4f13ae98240","impliedFormat":1},{"version":"e93d9a364b61d50b9ee14554b5f48ea46dd8c557b94bdd637b196afce4fb3e69","impliedFormat":1},{"version":"9d6b766c92985ca30cfc521ca650d1007c9986f8fb8b9dae720d9f55a0f3d351","impliedFormat":1},{"version":"7bf52da3f2b777152c701a9b4dc97008ab0a0f9db3311a2057fe041e021f5f35","impliedFormat":1},{"version":"42feeb1901957dfa282e8c1fe359fb42376abb894e609628dd9cb1edbcef7b5b","impliedFormat":1},{"version":"2e0840eadf33be01dc61f4f62887a8ebced1b8008610885b777265cd09b5a22c","impliedFormat":1},{"version":"f1bacabb70c87fe9d05595db6ec80afb0c16f0437e9b3c01c8e860e3de342a81","impliedFormat":1},{"version":"a82fcd992077e23a2b8f34a245a5785eae074a4c4cf00e295ffcc7e6fbf2b18e","impliedFormat":1},{"version":"7e847c37d924926f5540e2db0362e46e520334823cf889557d2c9a5c7fc7dde0","impliedFormat":1},{"version":"42738fe88686c67006137210788ff9013bcd961e494f015f3aef70ea663bd6e1","impliedFormat":1},{"version":"76703404ab0c7442e3e1920476f9540fd66c1367cde3e98bee8773d20e14d214","impliedFormat":1},{"version":"848670bf9aedb7ed67960ead4edb7a422a9add15e0f18ad3fbdfefbb47500d84","impliedFormat":1},{"version":"168150c074102ffe35603b43705a4dea7660cf01c88dd88740686b943a61acb0","impliedFormat":1},{"version":"900f3e87a9e7270634bbaadf57ec15dc3f02db69d25f9bb325c7c8f99303880e","impliedFormat":1},{"version":"aec5946f6fbf0fe023537cdf7f4f904ea76ffc8976d508d8409da52d0ba6e1fe","impliedFormat":1},{"version":"5b51d210d61b20c944cec24254d20110ef279b79c5e457c16d35395e979aa371","impliedFormat":1},{"version":"547bbc28cbca3e4e26af6b00ac131fad91fd0bef3ecd56e204ba1c66277a27f4","impliedFormat":1},{"version":"88730dd27c119094a269b3319036c4d60adacb10f819e9f0817ff1826709a42e","impliedFormat":1},{"version":"09efdecdb0a3f448be675d83b687d2f6e1d0f6bd756ec36fbf430b2c6840ee70","impliedFormat":1},{"version":"46a4c5544edc93b22ec2d704197c5cd684e6ac5ea491dd9b33ba531867e94e4a","impliedFormat":1},{"version":"a40299fb32c3e734190df64c5e577983616d988f9a0661d2d8092fd66db53634","impliedFormat":1},{"version":"5c568ac086f9156633b8fe8c85366e2d90de49914c81fecc8f0409605459a22e","impliedFormat":1},{"version":"072edfb9947a2eeaba872bea4a2b22a73ea932d51f8c9b19c71c7345a2a636dc","impliedFormat":1},{"version":"a88c164bbd33edea01c4934613ef625f946be8fb7e7df876c7518e8d8b258b11","impliedFormat":1},{"version":"11967bc391eb0ec437202643f3f8cbcdf5e97439cfb4af8ab5215f9be37abaac","impliedFormat":1},{"version":"cdd01be7d5d7cd2388607e6e89bad1dea3bd6d5024f67dd03bc9eabb8f8cc7b2","impliedFormat":1},{"version":"b0417940c1c63dca7f33dee7c7c0851b3443f0b5a12d385b562f1cb5c39720d1","impliedFormat":1},{"version":"cdcf2268514c3b52d909f39fea338b3d670b9b2145b66306e362e59ce921394f","impliedFormat":1},{"version":"0dc8fe7d045ef79a8d61e221b76dc5db793cfedeadaf8fa8bdbb4a717a6b978f","impliedFormat":1},{"version":"bc12f789eea7c7667dc8c1a6664600c696783cbfc854480db157d2b6b9ecdb59","impliedFormat":1},{"version":"75b4143645ee1d64a23f9d18a3ab534ff6682379dc2c239c947f0f83c0e45012","impliedFormat":1},{"version":"fd745003aebb0f7b47e684ba22a118e0d59cffffa86a097714933b4f613aa08f","impliedFormat":1},{"version":"0971815c5614f9c4d36d55a3d1d4a45f062e78cc9a3d97ef6a3b23c86b665475","impliedFormat":1},{"version":"76728d3561f3d4f3e8810fad1178ad402023d55e8a5c5da872303bc8e9c4d79a","impliedFormat":1},{"version":"4acb6230f22875f6defa3584d10c817831affb136ae94f5d2c0d9457b7050936","impliedFormat":1},{"version":"f4e5b51de3c73f0f093739ad5b4a1214d9d8ad3b3d6d01522f1ad6831d60f80b","impliedFormat":1},{"version":"4ade309af02a50dc157394ee7162c88476980b5efb0aa7304d6c618a0112a89e","impliedFormat":1},{"version":"2d3516a828f8ef63b2f2eb3ae1f0570265744df44d6eb9fbe8352bd5ab7f2a62","impliedFormat":1},{"version":"f78edac82d00a3d169adcf1fc70c705be387dd2c18be7d6a7c1e54ef084cd641","impliedFormat":1},{"version":"1f11139bcbbebe3283f0a33b647aafbf272afe86163d9554fad80f6c040b64bc","impliedFormat":1},{"version":"ee0fc780ee45cff7ee13c49ed43d4875c0155da4cd17735113611db6a1665b1b","impliedFormat":1},{"version":"b9e1050114f422013d0f534b4475cdab7126b7217af20f15bdf83cc734d1ead7","impliedFormat":1},{"version":"e231c9fb03ca8893b43f055c5d651d55e189b48ad9351bd2729720671790cd83","impliedFormat":1},{"version":"a97a804c84d0cb7b1c015bc06a005613e1ab5ce58c27528dc9f00fa6a8655f28","impliedFormat":1},{"version":"090eb938f60728f4bbb7f94f6ef48ce4481bf9205aee390c4223ea9acef7a780","impliedFormat":1},{"version":"2348b5c42c8dc9255e5ed9029c102c3f37d25f8289d84b4c711d6fcd3548a05a","impliedFormat":1},{"version":"3bf3b2e2a29b895dfb42b380f61bb60419ce9f733eb26f61809b589de790fe49","impliedFormat":1},{"version":"c8d3fc06cc42c173a363bbad4e392a325867812b47387d1dc2940ab555bfdadc","impliedFormat":1},{"version":"f8890f41d665b98dbc2cfce66719aa64c358af705b183a7f682a5229520e0fde","impliedFormat":1},{"version":"9cd88c0017d85f46e694a13c201bd75d7c404c5b07615b2de57739d645988618","impliedFormat":1},{"version":"f8dc4c538eff6d92330223253dbd66c4354324f411b39de2b7fa520fe41b658f","impliedFormat":1},{"version":"2407b5c4ed19bf2edb4a7459c672627003236d0912947e2a0b03a7fe353c85d9","impliedFormat":1},{"version":"506e91ebd08f2cc0b49a69568329a51bedb0d9bfe2a9417ed1a9b3481841ddac","impliedFormat":1},{"version":"f63da73a8d858871cc7aafaf3146347de5a3504ab99667324172edf79622ad45","impliedFormat":1},{"version":"b877adbe66d8db5350fd60ba62ffb7f9f1e185709f41cc6c79e26314656e7966","impliedFormat":1},{"version":"ff3d1594665d0ea1e8e3367ca1be065cb29e56b544a98ae990150806381e26e0","impliedFormat":1},{"version":"24dcc6ab1b47dbef6db80f0d0406029fe49a5803e6b3a6a2733ca097164839cc","impliedFormat":1},{"version":"76ee5e01370001a08093cb98e98beba007176e5c8c0af5b3b17ad1b8470d3c87","impliedFormat":1},{"version":"1f8822081ce52fdcf13d2ab47d840ff28216abc2ecdd8b3892b3d8dcb66ddf4c","impliedFormat":1},{"version":"e266998f32d1e7bb4127d9e87d48c84d6aa5200df46e1266065f54d969cfa699","impliedFormat":1},{"version":"742ec7d93e66311678aa6f558561245b2e12399fe6a98d849944f161ec6a857a","impliedFormat":1},{"version":"c953ca81f374296b0e0ad9307f854aec1cbd22240bd7676e852c31bbf84d33ab","impliedFormat":1},{"version":"d2380b72ed2f0e19af8291a6e1ac6aa7a60e6ad455d838705ee3b4bf667840b9","impliedFormat":1},{"version":"25d84120721134c846a8733a46e05903f3b109937dd819e5ec41ac8af893899b","impliedFormat":1},{"version":"09870b1892653e3854208cc345b6a7f055a875a06fafbff9a1888abc2ba1a404","impliedFormat":1},{"version":"437c2c7fb5da8738335aa9a739ff4e797039504fa6c5cd10664dcd1f30577095","impliedFormat":1},{"version":"a9d20cf42a783baf00f171b23f89bbc28e5101c2eba461f54708e16ee20a3d4d","impliedFormat":1},{"version":"e54407eec308c19f8e3992c66bcfc893f4b1f5aa478f05a55de3e348ee015c69","impliedFormat":1},{"version":"815a703ea91f25df5ea36696478f59b242f625f45fad37c6873c28c1591dc031","impliedFormat":1},{"version":"07af686616d30fe4caecd19ba83f2b5830e3633f5994e027de90daed22e07319","impliedFormat":1},{"version":"d476ad2c31b6a37660a3b0d90cdafa6cc70e6da342f70f92c8b8994da9606153","impliedFormat":1},{"version":"c601ed82e8c11c2d98fc04da79201eeeb8c6f95927e348d5497bc0c2ad85c6b5","impliedFormat":1},{"version":"7803117fcb92af605e9d0bf5aab04f8fd5959381e0b826ebb05365ece4868ae1","impliedFormat":1},{"version":"025a8cef62e0fdfa4c32995a93e3ddd4f9d6e726477e753781e99179662b6c58","impliedFormat":1},{"version":"dac9e0310cac6c0d3815208ed585b6ebb2a19ed44536d04ca5a2cb81188906d5","impliedFormat":1},{"version":"329dbb853695003974005f642063d2ab083d8c06f7d8f3bb2cbb15f68c892487","impliedFormat":1},{"version":"c1cbd9cd690158fefa1c7b8b285c1862d4064cc61eac7226d937e62ed01db785","impliedFormat":1},{"version":"1804788ef733867ea378a6e571eb60d92ea9ba87ce23f9aed8a6cc5a174f5471","impliedFormat":1},{"version":"d5c6618af14518cfeba225d4dc6180271a423e24bee7ab64eaef5c70bfe63992","impliedFormat":1},{"version":"2abd00c6b8e284cb92d2caf3f93f3170729d68cf4a51fb53ff92078b1455bfb9","impliedFormat":1},{"version":"c388233f176333d0ba84350a79cf88f1724bddd685b2eb9fd9d62533f39850a7","impliedFormat":1},{"version":"85388e4257101bfe0f0e5ffbba40fadea704e576d64f2e83ac1e8f042ec521ba","impliedFormat":1},{"version":"7ffec597c82ed1cfb06d7ffdc36d71d77a564bd55eee6a2cf9c72384736e3726","impliedFormat":1},{"version":"6d72cd0e28e6b157b2b21131891ba29ef596f9d3d0463316955a1ffc4a5c89dc","impliedFormat":1},{"version":"72037f13e369d619e0842119af97d6f6905fc470124ba627c44773aaacae9ba7","impliedFormat":1},{"version":"bf8c812958db10404d946309002674de28f9e300416d7b39a773c98bc51c7475","impliedFormat":1},{"version":"94f3baf5e3e2bacc4d21f9308045913aefa2ef87b44153422057d074d5f7084a","impliedFormat":1},{"version":"293d1aa6c28408e0bde5e4d0b55b9be782e00e2f702d4044530220314e382685","impliedFormat":1},{"version":"e79c77ecfd439075c20dcf9785bb7255706dee26ff6431673932309a2ae624a0","impliedFormat":1},{"version":"f18ba2828d2c1bfaedbcb734d561604784d65fda9d290fb93bdf71015549b920","impliedFormat":1},{"version":"eadc908b2f4e6e8edeaf0970ec92a47129c289d5b4e19bdbafd6d6f70bdc907c","impliedFormat":1},{"version":"407a11241e9056524e24ffb7899d73e819f8d44010db091d473acb4348a82cb7","impliedFormat":1},{"version":"60f9fe665ff16131a8f07a38d2b4277e96a7b11049deaa1c2ff85b8b2cb08abd","impliedFormat":1},{"version":"121ca5c164ad18f6fccd49dc61333dd06ee8e4984c4b127c59744c2d6ac953fa","impliedFormat":1},{"version":"da883f2b97696813d06993a22351cf2f402fcaa29dc446f62fd09b05bf12fef5","impliedFormat":1},{"version":"48964bec72afdd3809f8bc1d5df95f3270e29e03c8d315685db3636535e6d3d8","impliedFormat":1},{"version":"6e13dd30ba8a2a783d41ff51896cbf8a310ebad22d06b9206ebc8ea814d1c440","impliedFormat":1},{"version":"1174c675811ff10caaab514bfd3a7720bdc8cfba524a0eba62d8c1c9563adf80","impliedFormat":1},{"version":"2066017f176fb877854da8afa1585591c67963597af3bfb828974547894e850b","impliedFormat":1},{"version":"0fb7ade7ade491a02022472999f472f84f304f4738a19f2efccea1551a13101b","impliedFormat":1},{"version":"b38bfb03cc99b72e403ce60382cb45bc9467641181a1dc775ee4238dea847b5b","impliedFormat":1},{"version":"f0c93c00af504f52e837bdae5c8d0dd16eb0358372a90bc03fcd2096f22e1e93","impliedFormat":1},{"version":"89e015b6421345ff59eaeabd2ddfdf4d4efc53fadddd0dfa6fb08791d4bc5396","impliedFormat":1},{"version":"275c59e7cc724033d8d962a68b604a827ca1d93ca63da907622ba4cdfdd138d0","impliedFormat":1},{"version":"6529e78e442adf060c2bbc460d4c585d8fff553eb06a09b6b9d4defba6a3e4bc","impliedFormat":1},{"version":"64ccb0668db4982770ccd3eae9982e9236d997f7848549968a59c06cfb2a8c85","impliedFormat":1},{"version":"15f4992579aef55c498805517266560cae989c94570067eb6f0bb1fda8db3e1a","impliedFormat":1},{"version":"1a5cb4225b0e5e65222f89d3ac4f11e1341c84362c34f64573e59aafdec65232","impliedFormat":1},{"version":"85280c9fd80e289ca3fb7cc176e7c56bd1b59cc87153e35b4ad67343a16963e7","impliedFormat":1},{"version":"69ec7481d640752a71598ad9e0cc9c28fcaaf3128a8e56e9f22d09aa75e48aba","impliedFormat":1},{"version":"f1c203586ed60b44b1b54f2d3d6d5489a32a3d08cd9b8430c804edb09374e29d","impliedFormat":1},{"version":"396b9cfbf84f6d62c56eb78313118d33b2b4b112c65452856049b234e91ea782","impliedFormat":1},{"version":"beeb53644fb37efb6c8fc859d7df72d7bf9df52b027169ce087f8ddb8fe43c5e","impliedFormat":1},{"version":"0b10af13b23b16a86decbf9dced96c5412e742f1e1cbbc7e38521f3272699a18","impliedFormat":1},{"version":"5d8912088adc90f54b80df0454cd6b67c1a4a5c08b45e42f6306414f92179e58","impliedFormat":1},{"version":"2bf6f81bff3aec45692cf7df2ec4f6bb955c15db4d7a0b16f5fc0aca638642f0","impliedFormat":1},{"version":"5e1ac93dd33dabf032ae7d26e7d376e25dcff407b285ebed3f08bb440b5a21ca","impliedFormat":1},{"version":"9cfa1b7b61b310b77c8291afc7567f0269982273f5c1c056ea2a6594cc966d74","impliedFormat":1},"34a34be82c301bd36b11967f64793e25c452f683f66eb63a2c9b9382291013cb","212f48de57c8459697680ebcd00c6f6e3b4938a5868e0ee67d16120c06005fab","7a25c2a8996260ae0959bc33b7311de3a098a4e4c250b213ec425d1d038b6280","67faf30978b58f810624c8e9b2fa1e5758fe9b5b400f2419f166721b16e3282c","4d5e09bf879145dadc2707ff2c877c702cad5de8ea5b6e0eb4ec29d4fe9bd3f4","f489209d1449424ca707ef2852f4c732cf3e568c5aeab21cc37c67f4c401ef1f","34c2a35ec8db5ff54fa86d806b8540cd330792a1a977942ae2c203df2411ee44","e878d835f888a25df33826880ab51b23dc0f3a145ff522dcb6df86c19749b479","cea4f6104c14a2de217034c55d5e0c5d108800b8776791277bec0f3a491d6c7d","5d59f5b83155be3893bb5b8f6bd3df7a85157dc2184b21442b5c104603149ea1","aac543d234cd796c6a6ae3a76cd9961480d5b22cd00dc1a64c4a56025310c212","437755bf7362625845340e775422362c249132b5ce85bad8e0863de1442c1ea6","a2325ec154d19da8a7231b9bc4c615650417258d2f887edc0c91f9d9dbc255bb","b8e0a9ce934b5cbdaf505c3028677700753443e9766ff07734db197abf42200b","cee3a191eb553499713a69f5f4728d3b1e917ec9423ad976b4bb576dca530245","29771068febe7e8f360713fbb4f2d0142b7220f099a328759f3f5339dddc460b","100ebc14d3b3f2d9437681da4e37ce15eecf8d0bc50c562f61d43cbedfe9dd89","89e8081e7bb10a1985583264b6772b401c888f0da9efb63deb3dc671bc730900","83b2471c82779e1444b63942a2469bf40a155ed4e646dfc9e1583772ef1cf554","7121f8a3d7143ca81e758e5f4924bb60730a03268151ddc0688f144b03d427d2","df1170274f174c97b713e922dc2b14bd41978f0b128108c4f1d8b52c5ad750f9",{"version":"73a0ee6395819b063df4b148211985f2e1442945c1a057204cf4cf6281760dc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"d05d8c67116dceafc62e691c47ac89f8f10cf7313cd1b2fb4fe801c2bf1bb1a7","impliedFormat":1},{"version":"3c5bb5207df7095882400323d692957e90ec17323ccff5fd5f29a1ecf3b165d0","impliedFormat":1},"242d2da324880332769e3302925f3db9ae112f1fbee32b877f48ee86ad030891","fb402f271e513395909e4074fc569d1b15d1e06f343af3ee9571ffc25a3f047b","cf6141331e337e09f4fd6cd8297af4a54e606a9f9f26945a09302b335b03c2e1","0b5086f10b4c808eb6d57ffc8e682c7093b3b5172854fe2ca7497b48ad85b769","679a0f3e894d5d408147a6bf9e2112d47312b7d303d0dd27b403c62dc24ccac3","22544b339213bdd7af6899eee2730a28850900acec2117e7d237149d9cf45a6c","384d53819d8764fcf034acb61dd5e0b882a508a4be079e78a25622ef25c62f97","cca8499d96e4f5780d93adc94af96c4b5ae79e427ba0a9116a10a8ea00273562",{"version":"56cec9bef9b96ee62a7999a618a728d633cfade7c59ca0d56ff2704b69ec7c81","signature":"f4c779c77a4407baae32b009b3375f60f503f7796482b4e86d8391ef76bf04f1"},"a28136f26720706488db65c5c52f3645079dd581645d3ca810ea3072b6e6b6ab","99b36a6ea4e3ca84501d637d622a29a910ce014d8297be057c560557e128ba8c","c7fb0a48fcb8cb3a72d6cb6837ff92565cc42317729ec6aa0018990492e5b004","9ddc3dab94e0287994822df05f09bd9cf417563fe24b290decad01c0d2eb80ca",{"version":"52f5c39e78a90c1d8ed7db18f39d890b2e8464a3f44d4233617893f6648e317d","impliedFormat":1},{"version":"9891b4e49d435c7ac14fb3cc769e97077bbd946100c952df08eda117c3b5b68d","impliedFormat":99},{"version":"2d45f7ff55036e74513af142af1f414924ad337cc00e612bb37bb55473c70b30","impliedFormat":99},{"version":"3a6b10911970b0588c5a287642e4c6be91c16b96407a499c6dc81a96daf1085a","impliedFormat":99},{"version":"6392353adcff7db02a3f5dcacb5637b791dbbcb76125aac3075da2519af9785a","impliedFormat":99},{"version":"1f3952b74b8c766a2e602a0ba2db19d3d872d00bab4e01746c6b7229c585086c","impliedFormat":99},{"version":"19726a169a4000cba269c284b97043faa0593de45865c43553c233f6825af0fb","impliedFormat":1},"92f966f8184f9cc5f531fdaae3caeabde238a82d783e50713eb015d70e187914","9f44604e67cab8b4618fb0743d41ba9aceb886285f0fadf7fd6c6ef2f3ab913a","19e1a22fe32da3d48906bc7b8c517ada6b58ee44a030331d469155a8af66b348","23154637425b907a992c377203f4c618eee4d12421ac52cec263a83b8173572b",{"version":"1c97ee9a298f6c15c3e637015ee8ce3020a07329105d430d4ec45a5b6cecbb3c","impliedFormat":99},"f136e76a35d7b96a3f826ba6250b2dcf984aab4583006014e9e091d36fca490f","aa0e467a4a77ca517ff1ae8282f91f4ddb28c3acd441f93eedf1aabd07b68b41",{"version":"adf20cc38eff5b498d071cb684fef03bd46a419c65cd33ce39a2308e33cd84ca","impliedFormat":1},"31a5ddda427bd1fbb2c7fe1ca559db8bc393d7f42592452f29f4928603d6bd92","6020c483cbe9b111c42dc146f31f3c269fa44f9666a7bb289f33d4e1d415a5f4","c9d1b88aa2c8cb759d8592fa78e56015a156cc8fcef9acf694d49c646076eda0","a58068f7fc51a4d70f59eaa8d9f6b79440f71287c3988707f6d82e8493cd8c47","baf0f41a91dece70a701d19fd82b1b54c48a22eb94807f9bb0718f0252764aff","579b34fdf9e3f0a6229729e86cefa990d4c9653025a9260ba0b029d04e28696f","79acf870259d9ea9915fd272eb3ca5709361e8a86f80551588c1c97da9dd33b3","a4e143cf77873e6c0ae83b4015a892684338bacaf91ec384803fea0de1c8917b","a98f4bbc7a5f4f4f7df0f1f7cba27eedc34d3852bc4c8d6eaead40a106341848","9c3d1ca00d7911dcd4ad62ca95be97bc253099773a23f452d2f215d235c2a18f","08c8705cd2aba74079347b327a048c0f427024789f41cd6bf732a636f95d11e1","f4a266cbe60a450d84f26445962f7a62e52e73e2c82bfd2e642ebd07cc97f426","f1c8cbd870edf8abf542d3a9eaaf15540a37e9248e4ff06eb0643986e0f4d82c","de454fe663b6815d06e3512a1ca1af2a1f28a2534aa8a997b0ed2b5217dbe836","6fd221dedf75176a02b338de6a8bb4ec34ef023d84d5d95a534ae6d68b4c70d7",{"version":"6ee40b6eaba79cbc7afee85496d30aa48b50d23681582fdc1839642e8187e6ea","signature":"00a9b5ac39b55b2140b976966b2b3621a071dfb7cdae582cb8fa334abd0f7ac8"},"edb9845bc23f34e9718510206fed90eb7e010633a08e91bf92323d5c938435ee",{"version":"15cc4fe15f39c26f9d5d3294e113e29837ace90ad116d94b5bf771d7a0a8dd8b","signature":"0f0087e66c51c6c08c9b42c5f7019bb9c3631514fe60e23f21ee2675f157ac26"},{"version":"85e3edf11c7f4cd1fe2b2b86df607c87f437aafd43eced2141199736b7879dc0","signature":"2285b2cafd3f6800bbceb385b5283fdcba12da2954a3755709f3582e6211245e"},{"version":"c9c42d5948aa033c444cb6a3c188bcd925997bcc2bd8e97928af480ee356417f","impliedFormat":1},{"version":"f4bb2d3708ccd853dac13f97ede135d721bf5c2586f73ab8f1170f439e44b5b4","impliedFormat":1},{"version":"fd5649816766f52b1f86aa290fd07802d26cbb3b66df8ed788a0381494ebd5ed","impliedFormat":1},{"version":"269a13226bf6847c953f01ada5aefe59a3963a3a74f98c866ccbf08679d16b86","impliedFormat":1},{"version":"b769494ac41040c4c26eb6b268d519db4cc8853523d9d6863bee472a08f77f80","impliedFormat":1},{"version":"2fe42f88e2d318ede2a2f84283e36fdb9bd1448cd36b4a66f4ead846c48c1a33","impliedFormat":1},{"version":"cb403dfd16fdbdfd38aa13527bcbb7d15445374bc1c947cfcc3a9e6b514418ab","impliedFormat":1},{"version":"60810cf2adc328fa95c85a0ce2fd10842b8985c97a2832802656166950f8d164","impliedFormat":1},{"version":"de54c75cad3c584e18a8392a9a7e0668b735cd6b81a3f8433e18b5507fd68049","impliedFormat":1},{"version":"c477e5c4e8a805010af88a67996440ba61f826b1ced55e05423ad1b026338582","impliedFormat":1},{"version":"6b419ab45dc8cb943a1da4259a65f203b4bd1d4b67ac4522e43b40d2e424bdd6","impliedFormat":1},{"version":"a364ff73bf9b7b301c73730130aed0b3ca51454a4690922fc4ce0975b6e20a33","impliedFormat":1},{"version":"ef113fa4d5404c269863879ff8c9790aa238e577477d53c781cdae1e4552a0cf","impliedFormat":1},{"version":"5bfa561404d8a4b72b3ab8f2a9e218ab3ebb92a552811c88c878465751b72005","impliedFormat":1},{"version":"45a384db52cf8656860fc79ca496377b60ae93c0966ea65c7b1021d1d196d552","impliedFormat":1},{"version":"b2db0d237108fa98b859197d9fb1e9204915971239edbf63ed418b210e318fb8","impliedFormat":1},{"version":"93470daf956b2faa5f470b910d18b0876cfa3d1f5d7184e9aeafd8de86a30229","impliedFormat":1},{"version":"d472c153510dc0fd95624ad22711d264097ff0518059764981736f7aa94d0fa6","impliedFormat":1},{"version":"01fdef99a0d07e88a5f79d67e0142fc399302a8d679997aac07a901d4cf0fc83","impliedFormat":1},{"version":"ffcbdda683402303fa8845faf9a8fbb068723e08862b9689fc5a37c70ef989b8","impliedFormat":1},{"version":"208c5d0173b66b96c87c659d2decb774be70fb7a5d5af599a5d05f842b2e8d74","impliedFormat":1},{"version":"ec3b09b073a5e8a14fd5932cc4c33efaa0280c967d15bbc4c0c5b73a0d2f1a68","impliedFormat":1},{"version":"4b4c884e11985025294a651092f55dcbf588646d704e339674dfe51bdeead853","impliedFormat":1},{"version":"78c8b34f69c45078c6a3a3f10a24f1a03ea98495b6d75b945c1a3408a3ce5a26","impliedFormat":1},{"version":"0b1a08da571520eb288eb75843aad95d07fed423aba18b1149b5a0c767baf688","impliedFormat":1},{"version":"9c4708e703c8deb525e95946b3fdd8d5caaf724b3ac4a1cd6c2cab759b53f76f","impliedFormat":1},{"version":"ed14fb238769ed0b0dff6b78bef5263f0f50f403878ecd609fc71774b2113b12","impliedFormat":1},{"version":"59405847661d05bec9243efe9498211cb7e66d2620fe946e40750ffcb9e7d56a","impliedFormat":1},{"version":"ef95961bc90e8972bc9d88bee5264544d916929c0240e8c3c8ae220568b26ead","impliedFormat":1},{"version":"3f64230713c989e5f2d1d46c13fc8b2d9193b5dd59d393d5e70098c221894b1e","impliedFormat":1},{"version":"e49eeb0f93ea6a311a22f5b66a155c368e9cdb3585695fd951945df1a4192eb7","impliedFormat":1},{"version":"6f704837b406e4ac6ec5942018691ecc10e2d079cd64706d8ed1e86826d0671e","impliedFormat":1},{"version":"ee2229f4fc2d2306c864e5c2399aaa5958e4b3e1c964701fb8a84709237c9f47","impliedFormat":1},{"version":"6e5563614d424223f4748c6b714e1e197c8422824ff42fdc16f64484e1a863a6","impliedFormat":1},{"version":"8f31673ebf988cfc4b7ce2adb6a6c489dd748025600d8e2b7d922f952d7d21af","impliedFormat":1},{"version":"fd3715f87964b5fc26f4c333422969da8ca45e69e3fb6973ba6c806f437eb012","impliedFormat":1},{"version":"97b1e695f57dd56a6495f7bdca876981cc8db1cc4a555c3964aa14ce26e0f4de","impliedFormat":1},{"version":"cf32c06d23f373f81db3e93d47b7006f5bfc005df4d92bf5407b7792adcb3c47","impliedFormat":1},{"version":"eacc624e44f4b61dae0502e59ca5c0307dee65e7c257ee3eab4b2c8c6f156cd9","impliedFormat":1},{"version":"6041c1c22cb701abf3d98f153f878b12280f3b2213144588209b66ad5f5915dd","impliedFormat":1},{"version":"d95c6fb6552ca855ed11cdcaa5c68ad484bdc6325fd86fbadccdebfe57ed841b","impliedFormat":1},{"version":"0063b3ff097c4542be10322c67ca804e9e4504545b46ae8d620ceab59349ee84","impliedFormat":1},{"version":"9ff44b788f5d8d86f6fa34abf3faec8c425ecf1838248318acb0c5a4c88e62e7","impliedFormat":1},{"version":"4169cb216a6b361ba3caadf4a13670354e2a68ce055f4ec77ae7688902d2ab2d","impliedFormat":1},{"version":"e642a86d8e0956bb7c76aec21b83bde20409b19eb22786ed72ac5515aa9268c8","impliedFormat":1},{"version":"879e2a34d0139f04a32974fdfa44c5720619afd28f8bde0e5860f371d5f65d34","impliedFormat":1},{"version":"8e04860bdf072d4270b09b33b2b91ec4545297f23cc580041cad3e738f58d92c","impliedFormat":1},{"version":"bff595611ce25571f0cb50a83b7dcd7599559d6d3e98bf4fe87ad77b9c347664","impliedFormat":1},{"version":"2eced6af832d4e69811e353c7751f73bba07dc3b63189e0fa963e8264f341c12","impliedFormat":1},{"version":"a884b3560c8a29e5cb7f1263d880ff5c8b017991009edc20f450027c4a112b3f","impliedFormat":1},{"version":"6775c3e28d13ee126ec2c2e0827ec76422b0e11d9d5c2cfdfa7b982d48455fff","impliedFormat":1},{"version":"2ab0ffd4cdaff94c5cb8701f34442f8a018a2b62623528a66ad1ad8172ac6626","impliedFormat":1},{"version":"ea8215cf7cab1015579eac88e2f16fa1fabbe9f84ce4d2848c10f36d7df8ca1d","impliedFormat":1},{"version":"cc894fd562a73055ff72dcb7821729cef909b85bca4d0e2e2cbd0c1a2ecadeba","impliedFormat":1},{"version":"ab058bf3dbdbde6571f97a57a3b52b14be9d7e19f23190e9a551d5d6f6b6563f","impliedFormat":1},{"version":"142892cddebce23312318d79014de94e64a1085b8b0d73b942b4a6ce40a1b18d","impliedFormat":1},{"version":"db84257986e870ab22b304a80b02ea5e079c13a7f7be7891c0950bfd9e33f915","impliedFormat":1},{"version":"24cb43d567d33ac17daaad4e86cd52aba2bb8ff2196d8e1e7f0802faeeb39e95","impliedFormat":1},{"version":"dc6e0137694a7048ceba1ce02e6a57ab77573c38b1d41b36ae8e2e092b04ced2","impliedFormat":1},{"version":"aca624f59f59e63a55f8a5743f02fffc81dd270916e65fcd0edb3d4839641fbe","impliedFormat":1},{"version":"ce47b859c7ada1fbb72b66078a0cade8a234c7ae2ee966f39a21aada85b69dc0","impliedFormat":1},{"version":"389afe4c6734c505044a3a35477b118de0c54a1ae945ad454a065dc9446130a4","impliedFormat":1},{"version":"a44e6996f02661be9aa5c08bce6c2117b675211e92b6e552293e0682325f303e","impliedFormat":1},{"version":"b674f6631098d532a779f21fa6e9bdfca23718614f51d212089c355f27eea479","impliedFormat":1},{"version":"9dbc2b9b24df7b3a609c746eaada8bbc8a49a228d8801e076628d5a067ff3cc3","impliedFormat":1},{"version":"d6ea60339acf1584f623c91f5214be0ac654c0692c0c3abd69a601fe0ff0e165","impliedFormat":1},{"version":"d08badb0bbee55e449ea9ea7e7978cc94859804c49bdc7dc73e25d348337c0da","impliedFormat":1},{"version":"b116a03deacf70767f572c96a833e3c1adf01fff5c47f6c23e7bcb60c71359ba","impliedFormat":1},{"version":"023aedd02204fce1597fd16d7c0f1d7be13fcf4bc1ed28fb30a39587715ea000","impliedFormat":1},{"version":"b18adf3f8103e0711fbe633893cfbce2897f745554058cffa9273348366304d2","impliedFormat":1},{"version":"f41fbddb4a2c67dbf13863507b50f416c2645e7440895ea698605541d5038754","impliedFormat":1},{"version":"636a0fc7a5ee207de956241b8cc821305c8cc72b9f0bec69b9c9de15a9eafcfe","impliedFormat":1},{"version":"c326f85f762b14708a25b9f5c84691562f5cf39ae9148c00f990b8b4a2a4461a","impliedFormat":1},{"version":"caef5b191982cd88619282b10e1c52c3cde8c81d4eaf4650b4e62d73f77483d4","impliedFormat":1},{"version":"e038e10f5702f8e244cf0536b5a100c3f2b149f7631d5c9d0a7f928e26574a12","signature":"88eb3c3baa74c5f82d7e6cff269dff7bd5f50863ca782e91da07c3daace4811a"},"4e8edf729e0c2a04169b79534daf9b66f9976173a12c8f5339c80b9bc23367ff","d2a8f67c03a19b1a2756a9203f0f4b37cac1cb53800cd6c8153780f2ffcb837c",{"version":"9ff194a196707954313c197ff74831edf396ee89f6b6e50cd5fe9e07b8d7d46b","impliedFormat":1},{"version":"6bc6ff00765d1ae58ccf41ffe70ff858568151b80cb5d45937dd234725bddcb9","signature":"a6f8d34822a8be37deaf9d7fc95fefbe4947a85ee2f1853ee7bc757316dc5879"},"7e02783dd585896e4d934743044105b4bf7d98fe9ea128b3b2be8e7862cadb7e",{"version":"3312f7d9eb01483f9e392733e461f06755fdc624b5f2318e01f686a6a036ed7b","impliedFormat":1},{"version":"34491a67ae33c8bdacec1f4c07008f01d2ebe588ed8b7b1bd8f940f5fe953f2a","impliedFormat":1},{"version":"cc0e6f2705c8fd9eb831790840c08be6a3d3108d7c7043c4a1c0a97e3e9e289e","impliedFormat":1},{"version":"273928f388427cb6d6859c6b29d760de7612a110f8a50afe092d3a6440ed0cd3","impliedFormat":1},{"version":"54db43f6a831781a4587d81802277a9686bf34680c586fc0496e32088f2d8942","impliedFormat":1},{"version":"0f53259dab3f0531bfefb89211d4be171821c855980a843b396e9dcf06ab23a3","impliedFormat":1},{"version":"b1b1faeb576467d84ffaab5942f6bd5a024bb715dae28aaeeb22b37cc0f17030","impliedFormat":1},{"version":"a7380d88b8153951784d10b663b949986aa02c238d7aba129d378bc8f0bd2900","impliedFormat":1},{"version":"2110f6c3b26b0d0af8f4d0d7bf8fe89cafbe2a200cc2187db2e446c57628b67f","impliedFormat":1},{"version":"b2d0ca3686d89f74053a1d0d90e8088b9d48869c9814db2cce4554585c83094a","impliedFormat":1},{"version":"6491db94d895853640fd0c6814aa5decc2458a6085193abbd7a83a0a65736a30","impliedFormat":1},{"version":"ce8cd3fcda8947836cb52af1f9a5958fb9cea1ed5eb53466227a82c079ba5622","impliedFormat":1},{"version":"5a081b7e2596e450b5bbcd5c5556806b85bf2c0bdb6b7fbcd640dfa6339a0bb3","impliedFormat":1},{"version":"36022f5544b27ac66385e56350834423923403574cbe6efe1c982649f9452c54","impliedFormat":1},"bba6cfc527c19857aa23b84e8a2046f44b996307563a7ecc22a92fbf20010a14","62c0acd226346f4a785c9193c6c45545ec3fff1979ee8df3f588846f6d19c861","80053711b514e246668987e2ecf81e0d07cac02d4df0fca9349d93a8524c6eaa","e0eb841ca5a2734b2dca0fd51b36db487be2bcb099a86026c7618eb198b4428b","56795690506e9f971e99867981d6d70728826072ac326b5b42a84b32e83b7be3","b0cb22b5146d40d089e9237e00d20889285581a146d11b1673ff0477801f4250","22725615aa6f29bc460cf104925d37da934ce0a070a75ec2f27bfb904e44a42b","63847c8863d58d05b6de39372b3286da63c1848d142966fa4fae49a494b273bd","c8f48ba45f7cc5d21200a73e2299637e9a132be97fe32b5420b41c9083da8f26","5765ff58850bc8f51c7480818910df84df56d86c80a036e347d0d9a169a0be97","069f758baf9f6d57335d108a40043d61cfeb8258a68b1a9d9b9bc5923f26a95c","4dfe1b2c2c969247671df680b24a9c967a241ba8efb8f560d38efbaa68b69dcb","297ba6d7e4e8c638f366363cb8d85141fdb1c2daaa6b06ba257eac005ac978fb","a55b60d594c2c7ca9c2ec78557f60cf80afe36571bd0f17be3b75f22755a6457","403d308ff3ea1212bb55bbc619d813d03fc9515198e13e04dd224607eba4a75c","b8b7ed302e941989201e22112bb8b2c8edeeb9d3fe677f3ec3b155ad1bf067dc","de3f5544642634ae186a297e5f0f64c1ec8455fd0a9e6419c6a0215e2525e534","ea79deb2c6f4040dc55bd04e4a37ea36858d7e59ae354ebc0eccaa2698fcfeb5","91883e5a7e00b0bc6e87ac5989af4c21de2377268e6bc15379ec1eaae601db50","904206fa7cad3d3da7d04805aa61f9ad2438c6812bd7cfe494711195bb042f1f","29a5c6db1d280d9d1608f0445d11b9894d8b689a5464db6e6b9107ae12ef0a67","2985b5a8371b42b78a230fb9712cc3c53692cfb8490b75bd27e41f9f3ed3bdb8","a48607078976e0d9aa652912f678f0dc38782b0735d1e2e15f78addecd97a932","5134195fec4d019251817043345bf7280c10145fe777078f0b7b10d29af0833b","02465a9c5305147d02b7b8055622109c4a4aa06a7c2cbbe36c8d94d5113f492b","e9c20c57dd7f0282aead93fe090788a197d28817d47cc0ef9f5159b74abad69d",{"version":"8cbbefd9b10ebcb631fa5abbc471f7d14818664162210fa19d7125bcd451098f","signature":"e46f6452764da0f9887ede1a46a1151655285cb1205a46a8c2e1c71cf38ac604"},"132679bcb51ed20109bded99dfdc0a065b4c9037c2cacc4dfb4dea623830c17e","4d5c9922ad0be23e51e85f9d8f8b7e5d9a1962e98d7eebacfdbb9d8b8a1cd32f","bfd4b5cd77a389957c8aefef945b2dd6bae4cb79cf094c63cc5b6198e5213b05","9bbdca4053c688b71dd5a2cd64c6c3ded916be13360c723c8c6cee23d1978a13","e23fbb983beeaefb3a412da7b4fb0a44e2c35cb4b7afb09aa465f73f1daa974d","64f29be229c7719a5883a31911beda7970aff4336d375ad1feb4304278d3b828","6a8f4a5aa81b64b18130401a3266c15e74b46d8d06d20a19c4105c51672d3362","2cb2f33d92c9ba1402d1dea4a99e1c68ae5ab11c33e1d5c8743a1e49813d63d2","035d3e4f3d656d5427955191ffcb1ce1f8ee9443aba2fccefc0d8ce34328cba1","97b2b5bc1e1474b8d180a47999ae6fdfbff2366235b4f068917f514103ec8ade","2bf0208ac551b03a24141ab9dedf0fdd508290105fe5e7d1a6fa0ac4de014a1b","97584f8cc5c4e9d6bf87c6be28c4326750b7befce0702416ef2e58e269838fde","b57cc712fd0da58bfeffdee5b34a1732536c0a5fdfb588d7ff5e3105049c21af","8e7c8d0c43e90710a47330829989dd888115e708ecf2e93e131af642ff4d894d","f16582e71182d6e9a11d07efd60222ab148716432d333b229c66f9d26bec92a0","e70cb4b742890d3f9c1ae7965918f04cec997b7f339676b9a36bdc4c6a44c707","58eda13626bd8ccfd3069303532127ab52ddeb9f4bbfd6d5f133b83dfb188a0c","987ebc0d0cd29b95188a2b6cf4a1b69b4e780029f64f1de793f519e6f9f4b6ea","2f1f5761db10d675f86c4cdf82014c18a6feba42ffda5233014d031fa65d3270","ffa264a84c0af2ccb222dbfe84f0034c7c5182674d807c0a2c44741c85018959",{"version":"55a914fba7f17f73eb971e012bcb90221d5dca20751852c217428a5511db57a4","impliedFormat":99},{"version":"d9b54195cd22859480b70a2e287c41e654c812b0d3945652bd08c8943ddef78b","impliedFormat":99},{"version":"73b32be132963c6e06bb2f833ea0c21116581a3aafc8ac9145cc89a0b6f54bc0","impliedFormat":99},{"version":"73597a22736b6efce7cb30e380705cd6572d9e3f9816068130ec09550129996f","impliedFormat":99},{"version":"04504c465aabfed05529bf3b314df66c4eb449b188547c51edb962d8eb6069e0","impliedFormat":99},{"version":"09466b34e26295ee836861fa6348aff7b2275c6220cc0b41040c9949421e052f","impliedFormat":99},{"version":"242ce683695df72f1cdd40ae2ac06c569412e533528de95d956b26218cd195f5","impliedFormat":99},{"version":"d75a572cfd779c99cbdab5f8f44f6ce465367c057c07e33364d186de41ad9b14","impliedFormat":99},{"version":"8d12c3032607835687037e28dc245a4af486ef4aa6e6cb13744dcb0a3b074ab4","impliedFormat":99},{"version":"7ee2d1edc6f59a50eaeb12ac61a74ab4832f64661f795131df23ac8256df2329","impliedFormat":99},{"version":"8fea385f7e21a39e857e3fae89eabde7b0960083d205177430be507b38413579","impliedFormat":99},{"version":"7fdb8950d8a019940182ff1f50d02809a45832121b9a7899677a497aaba506ce","impliedFormat":99},{"version":"530e23db4425868edfc20e35fe2d8acf047af5b6f14afa46ee2e0e71e40c8df1","impliedFormat":99},{"version":"7cf421c4c6e223d2b648dae0ea51a134c4c8a5d8d55db1287372c4c1569c656f","impliedFormat":99},{"version":"ee662f8ffa58a60ca3ca8c141d4910043216efe63f696146b6fa0a455a4f9034","impliedFormat":99},{"version":"4eb4f2e56895129861a971177f8e9241ccf633daae3a6ac7343b92e973381c26","impliedFormat":99},{"version":"c75223aab2bfbe3fe85211fe56cfc844dd93d33e503e22e9911fd0d3e6f6538f","impliedFormat":99},{"version":"8fcea3d952a8129821d4060969f305a341706c256cb8002aba8e5b07088c24ed","impliedFormat":99},{"version":"2a6cef87ea83b5bdbc862e894329ba11002e76d5fb6ab24247502ecad2c6fbe7","impliedFormat":99},{"version":"39248c14bedc3e2d734739452408661523228ec790d7142a4de185ae88904da4","impliedFormat":99},{"version":"c14433af8654964ed33f9cc16f9369e05ae543d56bbc6a1c3b393fa7077f08a1","impliedFormat":99},{"version":"d867a5469eabe8abab25b27abb7125ef2ba019ef42dd1ca2b5d0871513042629","impliedFormat":99},{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"c031417387ddbb2923f41e3fc94b49157745785281c8949a221cd69368610086","impliedFormat":1},{"version":"73ef706b29d220404677226880137ad0da0145b6a2332d5427b9517dee295e70","impliedFormat":99},{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"27b14b091ccf309c79f3d2cf226edfa4d533b131f19bc0cbe855adebd464c285","impliedFormat":99},{"version":"50854b8ef4c29f3e952f170aaa045604a9d90360b680ddaeff542d1f5bb5fa8c","impliedFormat":99},{"version":"caa3a0be5c051f52e27b91642c8b31037c09ad0b65288498f4c55e33be7ea249","impliedFormat":99},{"version":"48020f2aa87dd71c26414f9afdf172159a6c31186705417da52add9d6cfe2153","impliedFormat":99},{"version":"f4e5a6883146482d6b49c1406f99a38b1ef883382b169bb5fc6cf7cf9f2ac70c","impliedFormat":99},{"version":"8b7b4f82a54a847a29fa481af4ea74372c19b75379bd27658c2a819149f21871","impliedFormat":99},{"version":"4f7faca5821e340342ea0feb3d478126659ece37d5dfdd6d9c9536bfd48def34","impliedFormat":99},{"version":"99878cc85152e70be715546f165826d83cf033547b4647cc3cc9cbd6d4df429a","impliedFormat":99},{"version":"7677f5595e7bdc2e6e42ebe8b4df4f4b520b28f6f175c839b73a208e6f3c8907","impliedFormat":99},{"version":"fd7faa9225e2e61a0a3d786a7a859af52dcb295c06bce7dfca140037655dc095","impliedFormat":99},{"version":"af0f7e3281ab0774f26ca8bc36d6aa37709f3510c8c1eb0ab122e7063159be01","impliedFormat":99},{"version":"960096f9e2ff9e9019e1c23a04916f2005d4c8dbd43f96b196d754b6c8a16700","impliedFormat":99},{"version":"c7c18305c761411b3c168f2b3376101b60d7a7d7c0505e81c6d8193a418f3d63","impliedFormat":99},{"version":"6b9a76dbc0ac3a427aa7370981cea9aea0e8286453b189dd03776f1034f7847c","impliedFormat":99},{"version":"3e48026dd0f58d4668dbfa9c6747302dcbc52e3aec373ec1f95c2ba78c308f33","impliedFormat":99},{"version":"053f54680ea9b4b1a8e9e5fe9f4a1fdcbc00f8f9b6d895109eb0d169915dfd11","impliedFormat":99},{"version":"3b0f440d9e4227285cec9159b1a472bc885687baf227a7b4126e2ba6dbef96fc","impliedFormat":99},{"version":"656e3a4ac005fcb1513ab1224eacfd55ae04b6f16d21d66c971dc901dad62c66","impliedFormat":99},{"version":"ea4891706f147e494a2a7028b2376110c2e85b7561b27448d51a7d1277c6fcf2","impliedFormat":99},{"version":"7f9bb3e6bb8d0607f94d1498c5fa8ac7445fcb4af52d0775a857d0986e0d0c84","impliedFormat":99},{"version":"c98c85d5b894c8955950338b1091f0febdc6c6702cf3b67a171d29d80fb2dfce","impliedFormat":99},{"version":"d00addf28fd877e3f8109b592b1918084cfb831268a0fd052fa72e6e01390cca","impliedFormat":99},{"version":"0cc0f30db3c4a2577606c6930eac2814d0463148d1bf02be9eaa318d6cb6d40e","impliedFormat":99},{"version":"21fb062824012292b09e9357aa7ac3231a0d683a7fbb9bc8e2b027346c7bcb32","impliedFormat":99},{"version":"9aa939dd1371c068dcda7d17c32fcbee08fa994890fefac8ad39d8cd5a294d92","impliedFormat":99},{"version":"8c0e829b03024d1905dba908ed55a5808d79159709770fe7a3b0395fa78125c6","impliedFormat":99},{"version":"15e6253aeb724521fcd0fd8bab60ac00b40e1b6c39aabb0de3b3e45ebe2d584a","impliedFormat":99},{"version":"4d3a0370e69c2d70d62a2eaeb40512474e38b4dff1a4e7ac98637f954ec5c143","impliedFormat":99},{"version":"b0094b81741504d0282359218e3659f5282b9748ad0e80d9a1c634bc1c88af4b","impliedFormat":99},{"version":"2c8e3d7848994c490cace467a6aae3fc4908e5b577b5ab0996200497062bb80b","impliedFormat":99},{"version":"6db32445cedcfaf6f6a4dbb922cdaf87e1cfc0422e4a31efeebef3fb0eb1a93b","impliedFormat":99},{"version":"b5102cfc507fe0c916a9ad45f4f52e00e3959b90eb90c5873e9527cb37eadb78","impliedFormat":99},{"version":"21e3abbcf80dc69638d138f5c6d07f596f8a162a8dca3bd71286403a96f8d0ab","impliedFormat":99},{"version":"20eab98ea24e9bf8834db1a339abb373e6f6a268537efa1fd571cd3809839eb1","impliedFormat":99},{"version":"796885a2efe76d5bef797516bd3a798b275f81075da8497fc1f6a9d3e085f2a8","impliedFormat":99},{"version":"b5a2192e328273da5a8279add3052bbc33b1adecb15f34a577c69c4dd2766d8e","impliedFormat":99},{"version":"20126c8c53f22550e68edb187f5d4d477b79a2effe7801fff3aa47949219d67b","impliedFormat":99},{"version":"8b63cf9a4a5bafaa3d2e157e6d07bb20d0d73fe0c5ddda715342a48d18534154","impliedFormat":99},{"version":"369dd195a978dcb88d63f1f1878e5dabb90bbc79b3e5fb0f16cf06209ab9e7aa","impliedFormat":99},{"version":"090b7d0fd37b238e003029b9137d5dff073791e21adaac556dd7524ed9ed977e","impliedFormat":99},{"version":"efedab846f4656f034814230fc05513b8cefb5f95994faee4f9b174c98bfef41","impliedFormat":99},{"version":"4f8876f00aa99ae0b39d6bca9da9e86f426dc6c458558773a647100a85fc3312","impliedFormat":99},{"version":"a13e1f68a2a1f29ceac30f51562e13677a5b8615377af952f0b7d1f9edff34f4","impliedFormat":99},{"version":"06f1e24d4146a779e7fd7a0f0cfdcdcb878da25e271e1e7d5d7f81d874f2dbec","impliedFormat":99},{"version":"0a3ede23be099f3ad266a10b4ad0cfb6efd446b9951f553274706348c3b56dae","impliedFormat":99},{"version":"c7b05cafd385f8988babecd476f4f9c817ecc68141dad54e2dd3ae458878a8f4","impliedFormat":99},{"version":"8fc8726fe9d96e0440518b06451181cabba87bdcb60a6e854b77e2b6dab52890","impliedFormat":99},{"version":"6cb381987d43f853d8d01c2fd5f32627e0c0f3a4dd1a11d5e3f94ff5832aff2b","impliedFormat":99},{"version":"ba0567434dbadd0fb8e80c4e00fb9c30449497f8bf07e82b2b857db0029f9b18","impliedFormat":99},{"version":"f72e417b7d49a5dec2d4f3857f6925ee78608cda1c42655d0179ccd38c66c15a","impliedFormat":99},{"version":"fdbb1158637d3ca4d209c7174270e5eb1414b4ee5324e9c33b1fae88e83bfc14","impliedFormat":99},{"version":"436cdc04f8ad3a54d2194b9926f52d564157ca162dcf3c9f71fa4711d057190b","impliedFormat":99},{"version":"73d9180a0b84dfb4c1a95bf72028103bd81472595617dd7ce788ea21639bcee4","impliedFormat":99},{"version":"55c1b951a4d7289a3056e2edea9855671a9d1f8f09632916ed1fb2aebb57b5c6","impliedFormat":99},{"version":"09b1271f73d90a01c889b4963a350825cff11493498b4141fde2399ce09de43a","impliedFormat":99},{"version":"bb9c7998d6def957496260f4c881ccc5b3d4eb4084ab00fbd8abc8c1e1ba67b7","impliedFormat":99},{"version":"340efc3f335a2a3ea2ca1899755906bcb6ebcbddf14306e66d0f16746db98273","impliedFormat":99},{"version":"6a691651e2748bf7792a251d820f00e8d9d3e4da1cdfbea91c33beda2bdd8b89","impliedFormat":99},{"version":"c3096b0c0f579462e17c525ee6835d82952c32b35061a1d32ac32d7e0f191da1","impliedFormat":99},{"version":"91b3c513f0ca4e2d0c5bc9ba1f43b169e1da7c49ff2cf5ffe730009c229f359f","impliedFormat":99},{"version":"ea0b435818ce832634961d1b65e972927f65a3c29a3e2c0cec3aafa0d7fe4ea0","impliedFormat":99},{"version":"50fe63347779cd2244429e0d54148fdb5d230dcc11f2bb8c7efc9d12c1e573d2","impliedFormat":99},{"version":"7adac175e5942f34a34f223d213bdd9869935ec6083dc6da836b996b7acdf7d5","impliedFormat":99},{"version":"2af0e322d1c39e8b16436cd9bd9c97b6013b75c179281df61afa10df0c722a1b","impliedFormat":99},{"version":"09b1271f73d90a01c889b4963a350825cff11493498b4141fde2399ce09de43a","impliedFormat":99},{"version":"0ef3eabd40fcec506413988e397ff7dcbed2aebfe4f88c486e2ba8dd1bc0ee0b","impliedFormat":99},{"version":"44dce86f2b5ef5e38fe6c068bc629afc04221adfa039f0dd649ae10f799f9ec8","impliedFormat":99},{"version":"5ad41356543df4a83b3ce069a7e628d2ba648399db0bdd4005bd1dfef26d34e2","impliedFormat":99},{"version":"0b448474270be29ded59bb946ac311c40c579ef0b9cf358a54750eef34359088","impliedFormat":99},{"version":"d7ddde645d6ca5b97f75923b3946e96495f81d7f4fd568201653f1939a3312a3","impliedFormat":99},{"version":"fb1148873f0d706261f8517b7ce3574b369c8213e8304c7c21cb9ca248b8dcc3","impliedFormat":99},{"version":"0637ec66edeed3f9ee0da72c0d5ab2c128db9e5a6226f8aca5672aa617db1726","impliedFormat":99},{"version":"ee49e1206cf12b67d5b72a98eaab773481130b87a9eeaa262086a4314d1cd991","impliedFormat":99},{"version":"9fa29d6f0b05ee8f619202c07680a46025b166da55e431a49c5badaa2983429b","impliedFormat":99},{"version":"f53857d23110842c0c62416b09caccb9286b3ba52fa2b6bbe254c58123d9bb09","impliedFormat":99},{"version":"89c02b0ad4fc44d10576b3e37c2c5262a37f2db171a486d2d5960ee60323bb96","impliedFormat":99},{"version":"59348badf356a43f7e1847364a8fdb8a914b9977a517b41f3ed206db36b875c1","impliedFormat":99},{"version":"ff0c09d8b0c8c0ffb09ef9250fac17c98eb4dd5a4f4955d53fc3880d6553b91b","impliedFormat":99},{"version":"07146d909fcbc1d33c5fc02f74dab3750d075a4de305a6c078fff8265e089c5e","impliedFormat":99},{"version":"b323496b42ebb7f2839ef1acb04947c74cc586c8ad20cc936c069d34b98a29ac","impliedFormat":99},{"version":"62159930f535b73f265f98f669c7f7bbdaef719ebc2de3a2bc4835e71ed68ba0","impliedFormat":99},{"version":"6ae1d121a8c1ff3398eff8af6e398868b631689d120076d7004c787479eacc61","impliedFormat":99},{"version":"d23bfd5a61fb32048f370f988a9772966651be1380c1a93c199d7cb25b7b0cf0","impliedFormat":99},{"version":"7344e1d823581d72124f6a328669abbeec44910c2045823bf7e7bef79ca49f73","impliedFormat":99},{"version":"af4a6e7559998dac4978f02c572d0f391928b6f40c62459c1e4ae5afc12995c7","impliedFormat":99},{"version":"b0a2a4c5ca7f6f874de72e39be8f470b348ec062c005cb5a7acc840fd7f67807","impliedFormat":99},{"version":"75083e759d8b09bcbf201a250c918a35221d05c7524cbb67b2b4d8959c919252","impliedFormat":99},{"version":"d89f7811a420d990b817f383c3fec421559063a7cb744fae619e8bba20dd151d","impliedFormat":99},{"version":"abd03428933117fdb9db45ac492eaac24d9a77c37c3944d26dba044b7fce6870","impliedFormat":99},{"version":"97050f022128934adae6a773a63be3c5bd5726f153fb72e9a8d34f2656135de2","impliedFormat":99},{"version":"3901f637d5f111593a5ea39a31d27e7a5f62195251f4ed6a50b77a020bc6e416","impliedFormat":99},{"version":"7edffa8d9c968f6a96b6ffc774be07717378ec619777e78510a7b6de4bfe67df","impliedFormat":99},{"version":"8f8d24c887f993b6c131075ac4f82cefbb246747b22c50491dc64ffd2cb340d9","impliedFormat":99},{"version":"5ffb8c07f5474d45bab306b6267ef2777ad786a841e0942416f485125cbd2385","impliedFormat":99},{"version":"e0d7a3cdfaa21621610dc3b74f8ccd59a5cd8617843ded1d610f05bf790adde6","impliedFormat":99},{"version":"b8f4165a3fa8fea167bb5016ad7629581d8fffb16447217d480c8a7ea438ed8d","impliedFormat":99},{"version":"b936b8e4ad57e3be1407c74e36645d31bebe7f1183d926a0c438cf416ec708f5","impliedFormat":99},{"version":"13fc27c27bc9a42e5e0c4cc08b64e7693b225c565bdab45ace16c179760f3cc9","impliedFormat":99},{"version":"8ff87eb5acdf565af022fb9145942b2207ac8cd0644917bc7d44efb91f4115d3","impliedFormat":99},{"version":"616ff480886a32cf50f73c4ee5fdd9672a5f21428eadcac34c41acb06035c214","impliedFormat":99},{"version":"f08e5842644a8e03da9efdbf89bf4eb61ea906a3bbc255bd7d7583756cb3dc61","impliedFormat":99},{"version":"562682efb4f43e58eb779a742f3e26c1fd796da0b785620de601202a38764785","impliedFormat":99},{"version":"264f935450101e4b000eb351cf75c9d799ca20a278b260a9e5770303b5f2b6a3","impliedFormat":99},{"version":"f6f171b23ae6db93454343f1b788960f799c8f37043904874a752c0990c6fca6","impliedFormat":99},{"version":"304e41926d3299c9b30bfd418c35fffd2bd9e5ac726d6f758fb4e0f40a738d51","impliedFormat":99},{"version":"7d3b1ddfce35445b76298090a9dcadee8acf20f4c281eb1f2ce14fc7232c9470","affectsGlobalScope":true,"impliedFormat":99},{"version":"02ab5dbcaa58da1d58c46c7cdfa7f94792c5ccf0fc7c0622ef33755fe415366c","impliedFormat":99},{"version":"e689cc8cd8a102d31c9d3a7b0db0028594202093c4aca25982b425e8ae744556","impliedFormat":99},{"version":"478e59ac0830a0f6360236632d0d589fb0211183aa1ab82292fbca529c0cce35","impliedFormat":99},{"version":"1b4ed9deaba72d4bc8495bf46db690dbf91040da0cb2401db10bad162732c0e2","impliedFormat":99},{"version":"cf60c9e69392dd40b81c02f9674792e8bc5b2aff91d1b468e3d19da8b18358f8","impliedFormat":99},{"version":"3e94295f73335c9122308a858445d2348949842579ac2bacd30728ab46fe75a7","impliedFormat":99},{"version":"8a778c0e0c2f0d9156ca87ab56556b7fd876a185960d829c7e9ed416d5be5fb4","impliedFormat":99},{"version":"b233a945227880b8100b0fec2a8916339fa061ccc23d2d9db4b4646a6cd9655f","impliedFormat":99},{"version":"54821272a9f633d5e8ec23714ece5559ae9a7acc576197fe255974ddbd9b05d6","impliedFormat":99},{"version":"e08685c946d49f555b523e481f4122b398c4444c55b164e5ac67c3ba878db8d1","impliedFormat":99},{"version":"3c99d5232a3c8b54016e5700502078af50fe917eb9cb4b6d9a75a0a3456fcd5d","impliedFormat":99},{"version":"9d8e34ec610435ee2708595564bbad809eab15c9e3fa01ad3746bbe9015faaed","impliedFormat":99},{"version":"7202a89bea0bdab87cc0ae60912b9e631a48f519b6a1f323dba8bc77a02a3481","impliedFormat":99},{"version":"f865343c121abc3516abf5b888d0c1b7596ec772229d8e4d4d796f89e8c9d0c0","impliedFormat":99},{"version":"77114bdbc7388aeeb188c85ebe27e38b1a6e29bc9fea6e09b7011bbb4d71ec41","impliedFormat":99},{"version":"3df489529e6dfe63250b187f1823a9d6006b86a7e9cac6b338944d5fc008db70","impliedFormat":99},{"version":"fe0d316062384b233b16caee26bf8c66f2efdcedcf497be08ad9bcea24bd2d2c","impliedFormat":99},{"version":"2f5846c85bd28a5e8ce93a6e8b67ad0fd6f5a9f7049c74e9c1f6628a0c10062a","impliedFormat":99},{"version":"7dfb517c06ecb1ca89d0b46444eae16ad53d0054e6ec9d82c38e3fbf381ff698","impliedFormat":99},{"version":"35999449fe3af6c7821c63cad3c41b99526113945c778f56c2ae970b4b35c490","impliedFormat":99},{"version":"1fff68ffb3b4a2bf1b6f7f4793f17d6a94c72ca8d67c1d0ac8a872483d23aaf2","impliedFormat":99},{"version":"6dd231d71a5c28f43983de7d91fb34c2c841b0d79c3be2e6bffeb2836d344f00","impliedFormat":99},{"version":"e6a96ceaa78397df35800bafd1069651832422126206e60e1046c3b15b6e5977","impliedFormat":99},{"version":"035dcab32722ff83675483f2608d21cb1ec7b0428b8dca87139f1b524c7fcdb5","impliedFormat":99},{"version":"605892c358273dffa8178aa455edf675c326c4197993f3d1287b120d09cee23f","impliedFormat":99},{"version":"a1caf633e62346bf432d548a0ae03d9288dc803c033412d52f6c4d065ef13c25","impliedFormat":99},{"version":"774f59be62f64cf91d01f9f84c52d9797a86ef7713ff7fc11c8815512be20d12","impliedFormat":99},{"version":"46fc114448951c7b7d9ed1f2cc314e8b9be05b655792ab39262c144c7398be9f","impliedFormat":99},{"version":"9be0a613d408a84fa06b3d748ca37fd83abf7448c534873633b7a1d473c21f76","impliedFormat":99},{"version":"f447ea732d033408efd829cf135cac4f920c4d2065fa926d7f019bff4e119630","impliedFormat":99},{"version":"09f1e21f95a70af0aa40680aaa7aadd7d97eb0ef3b61effd1810557e07e4f66a","impliedFormat":99},{"version":"a43ec5b51f6b4d3c53971d68d4522ef3d5d0b6727e0673a83a0a5d8c1ced6be2","impliedFormat":99},{"version":"c06578ae45a183ba9d35eee917b48ecfdec19bb43860ffc9947a7ab2145c8748","impliedFormat":99},{"version":"2a9b4fd6e99e31552e6c1861352c0f0f2efd6efb6eacf62aa22375b6df1684b1","impliedFormat":99},{"version":"ad9f4320035ac22a5d7f5346a38c9907d06ec35e28ec87e66768e336bc1b4d69","impliedFormat":99},{"version":"05a090d5fb9dc0b48e001b69dc13beaab56883d016e6c6835dbdaf4027d622d4","impliedFormat":99},{"version":"76edff84d1d0ad9cece05db594ebc8d55d6492c9f9cc211776d64b722f1908e0","impliedFormat":99},{"version":"ec7cef68bcd53fae06eecbf331bb3e7fdfbbf34ed0bbb1fb026811a3cd323cb4","impliedFormat":99},{"version":"36ea0d582c82f48990eea829818e7e84e1dd80c9dc26119803b735beac5ee025","impliedFormat":99},{"version":"9c3f927107fb7e1086611de817b1eb2c728da334812ddab9592580070c3d0754","impliedFormat":99},{"version":"eeae71425f0747a79f45381da8dd823d625a28c22c31dca659d62fcc8be159c2","impliedFormat":99},{"version":"d769fae4e2194e67a946d6c51bb8081cf7bd35688f9505951ad2fd293e570701","impliedFormat":99},{"version":"55ce8d5c56f615ae645811e512ddb9438168c0f70e2d536537f7e83cd6b7b4b0","impliedFormat":99},{"version":"fa1369ff60d8c69c1493e4d99f35f43089f0922531205d4040e540bb99c0af4f","impliedFormat":99},{"version":"a3382dd7ef2186ea109a6ee6850ca95db91293693c23f7294045034e7d4e3acf","impliedFormat":99},{"version":"2b1d213281f3aa615ae6c81397247800891be98deca0b8b2123681d736784374","impliedFormat":99},{"version":"c34e7a89ed828af658c88c87db249b579a61e116bea0c472d058e05a19bf5fa9","impliedFormat":99},{"version":"7ae166eb400af5825d3e89eea5783261627959809308d4e383f3c627f9dad3d8","impliedFormat":99},{"version":"69f64614a16f499e755db4951fcbb9cf6e6b722cc072c469b60d2ea9a7d3efe8","impliedFormat":99},{"version":"75df3b2101fc743f2e9443a99d4d53c462953c497497cce204d55fc1efb091e0","impliedFormat":99},{"version":"7dc0f40059b991a1624098161c88b4650644375cc748f4ac142888eb527e9ccd","impliedFormat":99},{"version":"a601809a87528d651b7e1501837d57bb840f47766f06e695949a85f3e58c6315","impliedFormat":99},{"version":"d64f68c9dbd079ad99ec9bae342e1b303da6ce5eac4160eb1ed2ef225a9e9b23","impliedFormat":99},{"version":"99c738354ecc1dba7f6364ed69b4e32f5b0ad6ec39f05e1ee485e1ee40b958eb","impliedFormat":99},{"version":"8cd2c3f1c7c15af539068573c2c77a35cc3a1c6914535275228b8ef934e93ae4","impliedFormat":99},{"version":"efb3ac710c156d408caa25dafd69ea6352257c4cebe80dba0f7554b9e903919c","impliedFormat":99},{"version":"260244548bc1c69fbb26f0a3bb7a65441ae24bcaee4fe0724cf0279596d97fb4","impliedFormat":99},{"version":"ce230ce8f34f70c65809e3ac64dfea499c5fd2f2e73cd2c6e9c7a2c5856215a8","impliedFormat":99},{"version":"0e154a7f40d689bd52af327dee00e988d659258af43ee822e125620bdd3e5519","impliedFormat":99},{"version":"cca506c38ef84e3f70e1a01b709dc98573044530807a74fe090798a8d4dc71ac","impliedFormat":99},{"version":"160dbb165463d553da188b8269b095a4636a48145b733acda60041de8fa0ae88","impliedFormat":99},{"version":"8b1deebfd2c3507964b3078743c1cb8dbef48e565ded3a5743063c5387dec62f","impliedFormat":99},{"version":"6a77c11718845ff230ac61f823221c09ec9a14e5edd4c9eae34eead3fc47e2c7","impliedFormat":99},{"version":"5a633dd8dcf5e35ee141c70e7c0a58df4f481fb44bce225019c75eed483be9be","impliedFormat":99},{"version":"f3fb008d3231c50435508ec6fd8a9e1fdc04dd75d4e56ec3879b08215da02e2c","impliedFormat":99},{"version":"9e4af21f88f57530eea7c963d5223b21de0ddccfd79550636e7618612cc33224","impliedFormat":99},{"version":"b48dd54bd70b7cf7310c671c2b5d21a4c50e882273787eeea62a430c378b041a","impliedFormat":99},{"version":"1302d4a20b1ce874c8c7c0af30051e28b7105dadaec0aebd45545fd365592f30","impliedFormat":99},{"version":"fd939887989692c614ea38129952e34eeca05802a0633cb5c85f3f3b00ce9dff","impliedFormat":99},{"version":"3040f5b3649c95d0df70ce7e7c3cce1d22549dd04ae05e655a40e54e4c6299de","impliedFormat":99},{"version":"de0bd5d5bd17ba2789f4a448964aba57e269a89d0499a521ccb08531d8892f55","impliedFormat":99},{"version":"921d42c7ec8dbefd1457f09466dadedb5855a71fa2637ad67f82ff1ed3ddc0d0","impliedFormat":99},{"version":"b0750451f8aec5c70df9e582ab794fab08dae83ea81bb96bf0b0976e0a2301ee","impliedFormat":99},{"version":"8ba931de83284a779d0524b6f8d6cf3956755fb41c8c8c41cd32caf464d27f05","impliedFormat":99},{"version":"4305804b3ae68aebb7ef164aabd7345c6b91aada8adda10db0227922b2c16502","impliedFormat":99},{"version":"96ae321ebb4b8dcdb57e9f8f92a3f8ddb50bdf534cf58e774281c7a90b502f66","impliedFormat":99},{"version":"934158ee729064a805c8d37713161fef46bf36aa9f0d0949f2cd665ded9e2444","impliedFormat":99},{"version":"6ef5957bb7e973ea49d2b04d739e8561bca5ae125925948491b3cfbd4bf6a553","impliedFormat":99},{"version":"6a32433315d54a605c4be53bf7248dfd784a051e8626aeb01a4e71294dd2747f","impliedFormat":99},{"version":"9476325d3457bfe059adfee87179a5c7d44ecbeec789ede9cfab8dc7b74c48db","impliedFormat":99},{"version":"4f1c9401c286c6fff7bbf2596feef20f76828c99e3ccb81f23d2bd33e72256aa","impliedFormat":99},{"version":"b711cdd39419677f7ca52dd050364d8f8d00ea781bb3252b19c71bdb7ec5423e","impliedFormat":99},{"version":"ee11e2318448babc4d95f7a31f9241823b0dfc4eada26c71ef6899ea06e6f46b","impliedFormat":99},{"version":"27a270826a46278ad5196a6dfc21cd6f9173481ca91443669199379772a32ae8","impliedFormat":99},{"version":"7c52f16314474cef2117a00f8b427dfa62c00e889e6484817dc4cabb9143ac73","impliedFormat":99},{"version":"6c72a60bb273bb1c9a03e64f161136af2eb8aacc23be0c29c8c3ece0ea75a919","impliedFormat":99},{"version":"6fa96d12a720bbad2c4e2c75ddffa8572ef9af4b00750d119a783e32aede3013","impliedFormat":99},{"version":"00128fe475159552deb7d2f8699974a30f25c848cf36448a20f10f1f29249696","impliedFormat":99},{"version":"e7bd1dc063eced5cd08738a5adbba56028b319b0781a8a4971472abf05b0efb4","impliedFormat":99},{"version":"2a92bdf4acbd620f12a8930f0e0ec70f1f0a90e3d9b90a5b0954aac6c1d2a39c","impliedFormat":99},{"version":"c8d08a1e9d91ad3f7d9c3862b30fa32ba4bc3ca8393adafdeeeb915275887b82","impliedFormat":99},{"version":"c0dd6b325d95454319f13802d291f4945556a3df50cf8eed54dbb6d0ade0de2f","impliedFormat":99},{"version":"0627ae8289f0107f1d8425904bb0daa9955481138ca5ba2f8b57707003c428d5","impliedFormat":99},{"version":"4d8c5cc34355bfb08441f6bc18bf31f416afbfa1c71b7b25255d66d349be7e14","impliedFormat":99},{"version":"b365233eaff00901f4709fa605ae164a8e1d304dc6c39b82f49dda3338bea2b0","impliedFormat":99},{"version":"456da89f7f4e0f3dc82afc7918090f550a8af51c72a3cfb9887cf7783d09a266","impliedFormat":99},{"version":"d9a2dcc08e20a9cf3cc56cd6e796611247a0e69aa51254811ec2eed5b63e4ba5","impliedFormat":99},{"version":"44abf5b087f6500ab9280da1e51a2682b985f110134488696ac5f84ae6be566c","impliedFormat":99},{"version":"ced7ef0f2429676d335307ad64116cd2cc727bb0ce29a070bb2992e675a8991e","impliedFormat":99},{"version":"0b73db1447d976759731255d45c5a6feff3d59b7856a1c4da057ab8ccf46dc84","impliedFormat":99},{"version":"3fc6f405e56a678370e4feb7a38afd909f77eb2e26fe153cdaea0fb3c42fbbee","impliedFormat":99},{"version":"2762ed7b9ceb45268b0a8023fd96f02df88f5eb2ad56851cbb3da110fd35fdb5","impliedFormat":99},{"version":"9c20802909ca00f79936c66d8315a5f7f2355d343359a1e51b521ec7a8cfa8bf","impliedFormat":99},{"version":"31ddfdf751c96959c458220cd417454b260ff5e88f66dddc33236343156eb22c","impliedFormat":99},{"version":"ec0339cf070b4dedf708aaed26b8da900a86b3396b30a4777afcd76e69462448","impliedFormat":99},{"version":"067eed0758f3e99f0b1cfe5e3948aa371cbb0f48a26db8c911772e50a9cc9283","impliedFormat":99},{"version":"7dfb9316cfbf2124903d9bc3721d6c19afbf5109dfbc2017ca8ae758f85178ab","impliedFormat":99},{"version":"919a7135fa54057cf42c8cd52165bf938baeb6df316b438bbf4d97f3174ff532","impliedFormat":99},{"version":"4a2957dfe878c8b49acb18299dfba2f72b8bf7a265b793916c0479b3d636b23b","impliedFormat":99},{"version":"fad6a11a73a787168630bf5276f8e8525ab56f897a6a0bf0d3795550201e9df5","impliedFormat":99},{"version":"0cc8d34354ec904617af9f1d569c29b90915634c06d61e7e74b74de26c9379d2","impliedFormat":99},{"version":"529b225f4de49eed08f5a8e5c0b3030699980a8ea130298ff9dfa385a99c2a76","impliedFormat":99},{"version":"77bb50ea87284de10139d000837e5cce037405ac2b699707e3f8766454a8c884","impliedFormat":99},{"version":"95c33ceea3574b974d7a2007fed54992c16b68472b25b426336ef9813e2e96e8","impliedFormat":99},{"version":"1ecb3c690b1bfdc8ea6aaa565415802e5c9012ec616a1d9fb6a2dbd15de7b9dc","impliedFormat":99},{"version":"57fc10e689d39484d5ae38b7fc5632c173d2d9f6f90196fc6a81d6087187ed03","impliedFormat":99},{"version":"f1fb180503fecd5b10428a872f284cc6de52053d4f81f53f7ec2df1c9760d0c0","impliedFormat":99},{"version":"d30d4de63fc781a5b9d8431a4b217cd8ca866d6dc7959c2ce8b7561d57a7213f","impliedFormat":99},{"version":"765896b848b82522a72b7f1837342f613d7c7d46e24752344e790d1f5b02810b","impliedFormat":99},{"version":"ee032efc2dd5c686680f097a676b8031726396a7a2083a4b0b0499b0d32a2aea","impliedFormat":99},{"version":"b76c65680c3160e6b92f5f32bc2e35bca72fedb854195126b26144fd191cd696","impliedFormat":99},{"version":"13e9a215593478bd90e44c1a494caf3c2079c426d5ad8023928261bfc4271c72","impliedFormat":99},{"version":"3e27476a10a715506f9bb196c9c8699a8fe952199233c5af428d801fdda56761","impliedFormat":99},{"version":"dbb9ad48b056876e59a7da5e1552c730b7fa27d59fcd5bf27fd7decc9d823bb8","impliedFormat":99},{"version":"4bd72a99a4273c273201ca6d1e4c77415d10aa24274089b7246d3d0e0084ca06","impliedFormat":99},{"version":"7ae03c4abb0c2d04f81d193895241b40355ae605ec16132c1f339c69552627c1","impliedFormat":99},{"version":"650eddf2807994621e8ca331a29cc5d4a093f5f7ff2f588c3bb7016d3fe4ae6a","impliedFormat":99},{"version":"615834ad3e9e9fe6505d8f657e1de837404a7366e35127fcb20e93e9a0fb1370","impliedFormat":99},{"version":"c3661daba5576b4255a3b157e46884151319d8a270ec37ca8f353c3546b12e9b","impliedFormat":99},{"version":"de4abffb7f7ba4fffbd5986f1fe1d9c73339793e9ac8175176f0d70d4e2c26d2","impliedFormat":99},{"version":"211513b39f80376a8428623bb4d11a8f7ef9cd5aa9adce243200698b84ce4dfb","impliedFormat":99},{"version":"9e8d2591367f2773368f9803f62273eb44ef34dd7dfdaa62ff2f671f30ee1165","impliedFormat":99},{"version":"0f3cef820a473cd90e8c4bdf43be376c7becfda2847174320add08d6a04b5e6e","impliedFormat":99},{"version":"20eed68bc1619806d1a8c501163873b760514b04fcf6a7d185c5595ff5baef65","impliedFormat":99},{"version":"620ef28641765cc6701be0d10d537b61868e6f54c9db153ae64d28187b51dbc0","impliedFormat":99},{"version":"341c8114357c0ec0b17a2a1a99aecbfc6bc0393df49ea6a66193d1e7a691b437","impliedFormat":99},{"version":"b01fe782d4c8efc30ab8f55fae1328898ad88a3b2362ba4daac2059bd30ef903","impliedFormat":99},{"version":"f8e8b33983efa33e28e045b68347341fc77f64821b7aabaac456d17b1781e5f4","impliedFormat":99},{"version":"8d3e416906fb559b9e4ad8b4c4a5f54aeadeb48702e4d0367ffba27483a2e822","impliedFormat":99},{"version":"47db572e8e1c12a37c9ac6bd7e3c88b38e169e3d7fd58cb8fb4a978651e3b121","impliedFormat":99},{"version":"a83a8785713569da150cded8e22c8c14b98b8802eb56167db5734157e23ee804","impliedFormat":99},{"version":"cce1c8b93d1e5ed8dcbaca2c4d346abb34da5c14fa51a1c2e5f93a31c214d8e9","impliedFormat":99},{"version":"213a867daad9eba39f37f264e72e7f2faa0bda9095837de58ab276046d61d97c","impliedFormat":99},{"version":"e1c2ba2ca44e3977d3a79d529940706cef16c9fdd9fd9cad836022643edff84f","impliedFormat":99},{"version":"d63bfe03c3113d5e5b6fcef0bed9cd905e391d523a222caa6d537e767f4e0127","impliedFormat":99},{"version":"4f0a99cb58b887865ae5eed873a34f24032b9a8d390aa27c11982e82f0560b0f","impliedFormat":99},{"version":"3c8a75636dc5639ebd8b0d9b27e5f99cdbc4e52df7f8144bc30e530a90310bbe","impliedFormat":99},{"version":"831ec85d8b9ce9460069612cb8ac6c1407ce45ccaa610a8ae53fe6398f4c1ffd","impliedFormat":99},{"version":"84a15a4f985193d563288b201cb1297f3b2e69cf24042e3f47ad14894bd38e74","impliedFormat":99},{"version":"ea9357f6a359e393d26d83d46f709bc9932a59da732e2c59ea0a46c7db70a8d2","impliedFormat":99},{"version":"2b26c09c593fea6a92facd6475954d4fba0bcc62fe7862849f0cc6073d2c6916","impliedFormat":99},{"version":"b56425afeb034738f443847132bcdec0653b89091e5ea836707338175e5cf014","impliedFormat":99},{"version":"7b3019addc0fd289ab1d174d00854502642f26bec1ae4dadd10ca04db0803a30","impliedFormat":99},{"version":"77883003a85bcfe75dc97d4bd07bd68f8603853d5aad11614c1c57a1204aaf03","impliedFormat":99},{"version":"a69755456ad2d38956b1e54b824556195497fbbb438052c9da5cce5a763a9148","impliedFormat":99},{"version":"c4ea7a4734875037bb04c39e9d9a34701b37784b2e83549b340c01e1851e9fca","impliedFormat":99},{"version":"bba563452954b858d18cc5de0aa8a343b70d58ec0369788b2ffd4c97aa8a8bd1","impliedFormat":99},{"version":"48dd38c566f454246dd0a335309bce001ab25a46be2b44b1988f580d576ae3b5","impliedFormat":99},{"version":"0362f8eccf01deee1ada6f9d899cf83e935970431d6b204a0a450b8a425f8143","impliedFormat":99},{"version":"942c02023b0411836b6d404fc290583309df4c50c0c3a5771051be8ecd832e8d","impliedFormat":99},{"version":"181655e54e8b288d671457be112383e6c51502cff5c4e39020c89f281a987307","impliedFormat":99},{"version":"27d7f5784622ac15e5f56c5d0be9aeefe069ed4855e36cc399c12f31818c40d4","impliedFormat":99},{"version":"0e5e37c5ee7966a03954ddcfc7b11c3faed715ee714a7d7b3f6aaf64173c9ac7","impliedFormat":99},{"version":"adcfd9aaf644eca652b521a4ebac738636c38e28826845dcd2e0dac2130ef539","impliedFormat":99},{"version":"fecc64892b1779fb8ee2f78682f7b4a981a10ed19868108d772bd5807c7fec4f","impliedFormat":99},{"version":"a68eb05fb9bfda476d616b68c2c37776e71cba95406d193b91e71a3369f2bbe7","impliedFormat":99},{"version":"0adf5fa16fe3c677bb0923bde787b4e7e1eb23bcc7b83f89d48d65a6eb563699","impliedFormat":99},{"version":"bf4a06264e6b80cc96fa5e6f11b05825126845563efbf5a68a5b18fddee833b1","impliedFormat":99},{"version":"560a6b3a1e8401fe5e947676dabca8bb337fa115dfd292e96a86f3561274a56d","impliedFormat":99},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"b2e451d7958fb4e559df8470e78cbabd17bcebdf694c3ac05440b00ae685aadb","impliedFormat":1},{"version":"435b214f224e0bd2daa15376b7663fd6f5cb0e2bb3a4042672d6396686f7967b","impliedFormat":99},{"version":"5ac787a4a245d99203a12f93f1004db507735a7f3f16f3bc41d21997ccf54256","impliedFormat":99},{"version":"767a9d1487a4a83e6dbe19a56310706b92a77dc0e6c400aa288f48891c8af8d3","impliedFormat":99},{"version":"198f2246a78930833c24db9c42da7ab40c084c2e2132a899f9c03dcbe59d207d","impliedFormat":99},{"version":"eb07eea29499b56357f7593fbdbc6d2312d8afc32c14396952db8d897ea0c4c2","impliedFormat":99},{"version":"06efe54b5ceaa113fbc649424419746efde6dcd5af2a7d4472efb62d751801b3","impliedFormat":99},{"version":"39613fd5250b0e6b48f03d2c994f0135c55d64060c6a0486ecfd6344d4a90a7f","impliedFormat":99},{"version":"8dfbc0d30d20c17f8a9a4487ca14ca8fab6b7d6e0432378ba50cc689d4c07a73","impliedFormat":99},{"version":"4b91040a9b0a06d098defafb39f7e6794789d39c6be0cfd95d73dd3635ca7961","impliedFormat":99},{"version":"66b67d15116c453abd384a1ec73ad2cb90b19fff4c08289360c4f3f573465838","impliedFormat":99},{"version":"5805f6ee9c3a5369ba7f37a809e226f0b217d2059d6f699cc242c9907671143f","impliedFormat":99},{"version":"2f0578c52f2b95a2a2187ad6d1d8fa4e835278871c81747c500bf04bbe0301a2","impliedFormat":99},{"version":"ee9811c1b947c37077408d66bf61ca0f7e6ffad850ecec1e246e643c51fbb5e3","impliedFormat":99},{"version":"4e919bdf4100bc0338598352ad2778d4750fb0d5facbd1bc7c5210340a1f756d","impliedFormat":99},{"version":"4b54813a405270d710da2c598f57cc0c512aad7b5f34f8d2e109862020568a58","impliedFormat":99},{"version":"ac29a9fe4dc4829c7f3f693c7667483f9903ead6ac67abf8d6a5744a5578a7a4","impliedFormat":99},{"version":"5429b7f938113b40fa315e0f100220a5801992497bc3eb05e3b395055033a93c","impliedFormat":99},{"version":"aac828f821e824489c3f10a5452e05b7abc084894dcf6cef1855fe44c88d8556","impliedFormat":99},{"version":"9dda93662ba9cc072a048ed9717df4869820cdc84ebd33db3db6e1ef354f521a","impliedFormat":99},{"version":"a769f4df15ce86d72fdc646ef33bf9ad634e2d7f544399ca030b61d61c781942","impliedFormat":99},{"version":"e1848b9ea5d00c149eae78db2141cb099cd5cd0573064c03f24fada82b2a0d94","impliedFormat":99},{"version":"535dc92c4a20901f7dad384f1fd2b19735bb33720fad67283f4c2b06c4735777","impliedFormat":99},{"version":"2aee0f37dd7974c93900bbda19ff133f2ae270938d99c50f3c6c944260d94ac2","impliedFormat":99},{"version":"e30accdbef6f904f20354b6f598d7f2f7ff29094fc5410c33f63b29b4832172a","impliedFormat":1},{"version":"d8e3ef4fff7d0d3ea72616214977dc2e8407716fb2075e48c61a930d40bfc003","impliedFormat":1},{"version":"9b7f0e34eebf9d3b7196bb340fb2b0013db8bd22fad1a5baaf394b1ad27a0adc","impliedFormat":1},{"version":"b1e5f3a55aa219247976db1b0c6af31d07673e8085197aef925f25ca08fe12c4","impliedFormat":1},{"version":"99d035e265fb5d783f128612f410c7341eac318c75a53cad0012cb2d2cf005f1","impliedFormat":99},{"version":"c609560ed4b5a840f9515229fdf7522440cfacaf2b6f21e1c3e6b46bfc4431c6","impliedFormat":99},{"version":"43980aaf3d50729108658c84a9325fb3341186024247f2af90a9114206577d06","impliedFormat":99},{"version":"a59b6920d3cd9ac94aa10df1c8f2aa9c76c91d73e4af0e745821424e73bbffc8","impliedFormat":99},{"version":"26de2510ef97324e48304cad246786f786be6b9d067746ba672724fe99eb4a76","impliedFormat":99},{"version":"8b57037ca744bd60066cb4daeb239264ae4bf833f87edb3db2d59b4ef3d745d3","impliedFormat":99},{"version":"ae650283eb740cc6f195b89c1d341c03eb93a2fbaf3f7dcd5d01e827e23cd3e3","impliedFormat":99},{"version":"a9422b34f43cc9ee3352838bcd6fc2aec4e388dd6af7f4909df84067ef5b827b","impliedFormat":99},{"version":"88729bf6ce9df1a17ce52112cfe4af935cf1463c9128d4c7dde0a11ad10cfcbe","impliedFormat":99},{"version":"3e0d929622db87b5431036fec53dcf6f98fef5c6dae84570ac1c0c7b3c005ffb","impliedFormat":99},{"version":"53090b74e67c3dde2e97a5f3deaf1f1d2184d5caba7124193ebfc3be2daa667d","impliedFormat":99},{"version":"269966782bfaa41f1f629936d53d6ac01020c60abde7a1f70196a4405018f0b2","impliedFormat":99},{"version":"a507cef707a17f4f58b0f106ed3bf5fb044a9cab3f7c24eaeed10e1fdbab6151","impliedFormat":99},{"version":"a14cb49589c589d4e1257bf7bb457548785b619d37e245fe2a6c1b942156584b","impliedFormat":99},{"version":"272f5f51201ffbd79dbb3533503dd3e20d7f8d1040ad42f33068bf9d0b163e7d","impliedFormat":99},{"version":"85a6e5140a3bf1abbba9e6184d732d25648d20007116cbf39bd3baa9312441f2","impliedFormat":99},{"version":"bb9e472d55badebf8969025cc126eb857874252c58795ee5c6e74d686700ed21","impliedFormat":99},{"version":"7be935d17f4f54e3263e1526bae0128ebd6b15835e6c22116a44d8e0ada5a74b","impliedFormat":99},{"version":"b4aece44eaa3781d058e4f0790aa4a4e1d2012a1d62c73ad05e6a5737a7ee293","impliedFormat":99},{"version":"8519f682ce37f2d021cd6072049a7ac2db5fdef449afa3a2a226d346c25d5962","impliedFormat":99},{"version":"a43478ba83037f64bb87ea8471a7e8a407efa910a75540b384593bcce2d38c48","impliedFormat":99},{"version":"9bc917d7e01d56dfae1f76108a8cad4957f961cb51aa23c5d2e69ef3db286e20","impliedFormat":99},{"version":"b0fc879036b6a62cc7cbd27ea444f6fbe57fbef1b1d039b0d566df2117ffb499","impliedFormat":99},{"version":"f321683ba426eff0d826901b147eabd2d23428147643c869ec99c51da801290d","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"0b4125a4b9bc524a75e880a6f31849624262d8c97cde4a5da1d34256c95f5bfe","impliedFormat":99},{"version":"0c95bbcf76de3e231a4288d81d9e897e10c73da899277da633b44a08eb8eefba","impliedFormat":99},{"version":"d0ca01ffa779f381a0ec9d9efe34ea3cc98b45e4056ab44b5268766d63aab647","impliedFormat":99},{"version":"b5738f6245eee46675619b44f6af0d70f7586be229fb360532a80c44b1b49ff9","impliedFormat":99},{"version":"517171e44831ae1b5c34ba7aa7c7f1dcb21902c31d3f7b2abb51e497a0b99e6f","impliedFormat":99},{"version":"e2e3cde2cec99e82ea98a82c5bd92ed12e4fea8cf402a6e035d5bd2a7cca281a","impliedFormat":99},{"version":"2639caf99c5969ac53c622f5fafed83ca12d53fa87f406aa2cb7467a1103877b","impliedFormat":99},{"version":"a23d0164a568e779958e7643d81d88dc9027e80ed65e3a54da2505af249d329b","impliedFormat":99},{"version":"2131b5fbfbb47e80581e06e8bd11c7bfefcda71f088aa5f1d137d289c20a2222","impliedFormat":99},{"version":"c0c57f6c7ed346d12352f55865e539621bdcad36045d2b9e71be0e168b1192aa","impliedFormat":99},{"version":"11fd3ff2c4379a9f482f0d7c8591fd679d4f8dcab82046db3a1812f8713f2373","impliedFormat":99},{"version":"36f2ab77365fd65ee3261475892dba15c0fe452077a93a19a63aaf2acb62fc98","impliedFormat":99},{"version":"bb9cd6cc3af0b5e3ffa70cb1de85fe6946b3a3f1f10ebed7ed8c772f7ae50466","impliedFormat":99},{"version":"5b3a8b45bba54d7ef198eefa8c61eed06ec95d267108353c1517742be9eecb88","impliedFormat":99},{"version":"8081faa1962486c7e9e5fc2dff88fae24d868c5a585cdb2c38ba1c15fce4deae","impliedFormat":99},{"version":"9f57322db1a5da7c827f95f23fc860c2296730373a87436ad2ee23644c3c86a3","impliedFormat":99},{"version":"1ee555a004b7194196d6d51cf73227cfc1c0f0d043da9a649e5e867a25d1a2fc","impliedFormat":99},{"version":"1d6201fba84d7d56be10c34ef4f816988da4bfd1548902300f3e031a4f482833","impliedFormat":99},{"version":"51e530ae5cf54f398bee91699fa140199f96f2f55b8fa23901815b02c9721fde","impliedFormat":99},{"version":"18cc29fdaa42892eb79f03b9f00bd4619a35bb6dbc1805a7c5f94d9b0e96bf6a","impliedFormat":99},{"version":"b00e3cca08af70a9cad820cfc0c78e477d67b3f72d5f2d6ca967172e3a971f8b","impliedFormat":99},{"version":"9151c2db5ef596dc764093003dc730d6d3d1f75eaf5fa117f6caa2474e98a634","impliedFormat":99},{"version":"12b545c39034ef75d9b4b66d21324cfd2d37ca0f33c563fdd7e32a9f02839ab6","impliedFormat":99},{"version":"a178ef7d260e3ae2d4bb5ef46000ac0ad00c79a454a80b1e03615ae4e410596a","impliedFormat":99},{"version":"bf48205fdc00bea0ed458cf81a57e4cdb09e740669370be0e17a92e0a89338fc","impliedFormat":99},{"version":"b5873d1c47eff986c60cb5d61878fc2734a8c3e8cc64b7e183fbcdae3676aec8","impliedFormat":99},{"version":"3d1354d536d8ea970fca6ea675d5932b2d5720ac458fa85afcdd80f3b708c763","impliedFormat":99},{"version":"a06839234f46aa66759cd492ce3f716a9f32fc30d9310e1b7618c1f5cc075a62","impliedFormat":99},{"version":"92929866d4c2be4b9510afc8ce088817d8a2f5b58398cc032aa3e587fb700a42","impliedFormat":99},{"version":"6483a445bd97d8cc1545cebe5b4b84e7611c5f2ac65adf4fba8188e1758cb1b1","impliedFormat":99},{"version":"4cdce6d44ef612092168edba4cb736735dda79314c8d816bb376d2d4a4aa7f0c","impliedFormat":99},{"version":"d8ef707d006fdf8e64a9ea3673c4748374cac72d794b632dd6868e7973de3b55","impliedFormat":99},{"version":"695dbe57a9f1686b727ff8112def7376b69da4a9f92a6b4660cfc7adfeb4fd57","impliedFormat":99},{"version":"e30accdbef6f904f20354b6f598d7f2f7ff29094fc5410c33f63b29b4832172a","impliedFormat":1},{"version":"5fd2267cea69c19286f0e90a9ba78c0e19c3782ab2580bfc2f5678c5326fb78a","impliedFormat":1},{"version":"2a628d887712c299dd78731d2e18e5d456ac03fb258b8e39f61b2478b02481ee","impliedFormat":1},{"version":"b1e5f3a55aa219247976db1b0c6af31d07673e8085197aef925f25ca08fe12c4","impliedFormat":1},{"version":"e9f80c5934982b97886eadab6684c073344a588d1758b12fba2d0184e6f450a2","impliedFormat":99},{"version":"c609560ed4b5a840f9515229fdf7522440cfacaf2b6f21e1c3e6b46bfc4431c6","impliedFormat":99},{"version":"43980aaf3d50729108658c84a9325fb3341186024247f2af90a9114206577d06","impliedFormat":99},{"version":"a59b6920d3cd9ac94aa10df1c8f2aa9c76c91d73e4af0e745821424e73bbffc8","impliedFormat":99},{"version":"26de2510ef97324e48304cad246786f786be6b9d067746ba672724fe99eb4a76","impliedFormat":99},{"version":"a822bb869dd9dfdb4b1b5c887b90373d5a1e900191772646b6211541a5ea13b8","impliedFormat":99},{"version":"ba56cf294acda8f40e97bdf8f102617b57c914664476e1f900db307ad0e8c3f2","impliedFormat":99},{"version":"92be2c8229c02b140324d56906af58882ffd87ead115a34380580e9dedea4a18","impliedFormat":99},{"version":"a507cef707a17f4f58b0f106ed3bf5fb044a9cab3f7c24eaeed10e1fdbab6151","impliedFormat":99},{"version":"a14cb49589c589d4e1257bf7bb457548785b619d37e245fe2a6c1b942156584b","impliedFormat":99},{"version":"272f5f51201ffbd79dbb3533503dd3e20d7f8d1040ad42f33068bf9d0b163e7d","impliedFormat":99},{"version":"85a6e5140a3bf1abbba9e6184d732d25648d20007116cbf39bd3baa9312441f2","impliedFormat":99},{"version":"bb9e472d55badebf8969025cc126eb857874252c58795ee5c6e74d686700ed21","impliedFormat":99},{"version":"7be935d17f4f54e3263e1526bae0128ebd6b15835e6c22116a44d8e0ada5a74b","impliedFormat":99},{"version":"b4aece44eaa3781d058e4f0790aa4a4e1d2012a1d62c73ad05e6a5737a7ee293","impliedFormat":99},{"version":"8519f682ce37f2d021cd6072049a7ac2db5fdef449afa3a2a226d346c25d5962","impliedFormat":99},{"version":"a43478ba83037f64bb87ea8471a7e8a407efa910a75540b384593bcce2d38c48","impliedFormat":99},{"version":"9bc917d7e01d56dfae1f76108a8cad4957f961cb51aa23c5d2e69ef3db286e20","impliedFormat":99},{"version":"b0fc879036b6a62cc7cbd27ea444f6fbe57fbef1b1d039b0d566df2117ffb499","impliedFormat":99},{"version":"69b3e0b9435c37d191bce1a4d38c8d18e8add8cb99835eab8f566b95ad9de828","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"0b4125a4b9bc524a75e880a6f31849624262d8c97cde4a5da1d34256c95f5bfe","impliedFormat":99},{"version":"0c95bbcf76de3e231a4288d81d9e897e10c73da899277da633b44a08eb8eefba","impliedFormat":99},{"version":"d0ca01ffa779f381a0ec9d9efe34ea3cc98b45e4056ab44b5268766d63aab647","impliedFormat":99},{"version":"b5738f6245eee46675619b44f6af0d70f7586be229fb360532a80c44b1b49ff9","impliedFormat":99},{"version":"517171e44831ae1b5c34ba7aa7c7f1dcb21902c31d3f7b2abb51e497a0b99e6f","impliedFormat":99},{"version":"e2e3cde2cec99e82ea98a82c5bd92ed12e4fea8cf402a6e035d5bd2a7cca281a","impliedFormat":99},{"version":"9382e32237e08424b2642d1d9ea4af3a76001cef48888273f769af0c95cf169b","impliedFormat":99},{"version":"45a95142d20916e8510b2d4c42b09aaa3d8ca3d0c3dbd7f915da870ad182380c","impliedFormat":99},{"version":"2131b5fbfbb47e80581e06e8bd11c7bfefcda71f088aa5f1d137d289c20a2222","impliedFormat":99},{"version":"c0c57f6c7ed346d12352f55865e539621bdcad36045d2b9e71be0e168b1192aa","impliedFormat":99},{"version":"11fd3ff2c4379a9f482f0d7c8591fd679d4f8dcab82046db3a1812f8713f2373","impliedFormat":99},{"version":"36f2ab77365fd65ee3261475892dba15c0fe452077a93a19a63aaf2acb62fc98","impliedFormat":99},{"version":"bb9cd6cc3af0b5e3ffa70cb1de85fe6946b3a3f1f10ebed7ed8c772f7ae50466","impliedFormat":99},{"version":"5b3a8b45bba54d7ef198eefa8c61eed06ec95d267108353c1517742be9eecb88","impliedFormat":99},{"version":"8081faa1962486c7e9e5fc2dff88fae24d868c5a585cdb2c38ba1c15fce4deae","impliedFormat":99},{"version":"9f57322db1a5da7c827f95f23fc860c2296730373a87436ad2ee23644c3c86a3","impliedFormat":99},{"version":"1ee555a004b7194196d6d51cf73227cfc1c0f0d043da9a649e5e867a25d1a2fc","impliedFormat":99},{"version":"1d6201fba84d7d56be10c34ef4f816988da4bfd1548902300f3e031a4f482833","impliedFormat":99},{"version":"51e530ae5cf54f398bee91699fa140199f96f2f55b8fa23901815b02c9721fde","impliedFormat":99},{"version":"18cc29fdaa42892eb79f03b9f00bd4619a35bb6dbc1805a7c5f94d9b0e96bf6a","impliedFormat":99},{"version":"b00e3cca08af70a9cad820cfc0c78e477d67b3f72d5f2d6ca967172e3a971f8b","impliedFormat":99},{"version":"9151c2db5ef596dc764093003dc730d6d3d1f75eaf5fa117f6caa2474e98a634","impliedFormat":99},{"version":"827f0158dcf51b4afd0bf7867d30ac9436535fb4422b891a16b88799f9caa6e8","impliedFormat":99},{"version":"a178ef7d260e3ae2d4bb5ef46000ac0ad00c79a454a80b1e03615ae4e410596a","impliedFormat":99},{"version":"6e477dd31a5483cbab13f1f907b29474b33a5140dd4e8672a7ebe00aa27984cf","impliedFormat":99},{"version":"b5873d1c47eff986c60cb5d61878fc2734a8c3e8cc64b7e183fbcdae3676aec8","impliedFormat":99},{"version":"3d1354d536d8ea970fca6ea675d5932b2d5720ac458fa85afcdd80f3b708c763","impliedFormat":99},{"version":"a06839234f46aa66759cd492ce3f716a9f32fc30d9310e1b7618c1f5cc075a62","impliedFormat":99},{"version":"92929866d4c2be4b9510afc8ce088817d8a2f5b58398cc032aa3e587fb700a42","impliedFormat":99},{"version":"6483a445bd97d8cc1545cebe5b4b84e7611c5f2ac65adf4fba8188e1758cb1b1","impliedFormat":99},{"version":"513d0b8895a905e579ed2baebdc817a23dae16e78ecd925400e3142a8096f33e","impliedFormat":99},"fce0bcc6a86782ed4eda9ed21c4843dfa3c0845db64634867034d249ac0933ea","51caf311b5397bb74553bc28cc85973db9f9a7a327c68866e7e7750b72dca42b","d392af7961eda9588aed6392908f014fa318daf9e8a952339ed3db69e9ce5273","2778747ec5f0fa749a66df42831ea70270ab3a17a94f1313e01905b794f92a47","925bb05a1ae6a8d137cf092bc8b31e54ebaa5559a444583eddcff605647d5544","01dd48041d3b0d86d198e58cb750852eea8f0a78d40cd52f7e50bf6f33a06dee",{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"27b14b091ccf309c79f3d2cf226edfa4d533b131f19bc0cbe855adebd464c285","impliedFormat":99},"d41171d9f336c406532c26d9706a7f3dbb54d757e4dd418d1f21623e8871c740",{"version":"5276ee82ef96770571bd5aae9f4f5cdd474c3d4c1a068f1e1d9ab9cf16529975","impliedFormat":1},{"version":"cdb1d174036ebdb04b5a61461ff523efaeefffd87b093f43fdf20196024b2003","impliedFormat":1},{"version":"23c2c70dd974c3b8b66be4f3d6c9351fd41235d9c038b4d57d334dda8f753819","impliedFormat":1},{"version":"dffa09d0911ebb2639cae47397e011cc195de4a3ad83b53efb2651cfa0e0b75e","impliedFormat":1},{"version":"7d2c1ce36b9370a3af266ca6c663fe62e82671f9cf41337bda0efd837a5e2de9","impliedFormat":1},{"version":"6e45f5dd809aca05301c8e1b9f526096fe89b3369da10fe34f9c037832f103a9","impliedFormat":1},{"version":"0db63cf288cd71a85b06be8065db706797fb7d368a2315bd34967070c880facc","impliedFormat":1},{"version":"755ee0128a813468af08c5e673655a068813c92f4179978fd37ac3df1688c2f8","impliedFormat":1},{"version":"f183da4c889c90d5060aacc1c247c6cd68cc0024b9891402bb1c07a492d18018","impliedFormat":1},{"version":"da1c8718353e2981fa5981328a2d5cf6bc70da59c51967924d032a06177bce50","impliedFormat":1},{"version":"cba87731af3b8e51151ab6b3ba2d9604739649cf132885dff49836d5369ae387","impliedFormat":1},{"version":"3965bb091883ba173f7742c16ec8efe81207d75774d3a809385edce6841adca0","impliedFormat":1},{"version":"108fd0cab464e528dfa511d982368df2c9d9964e1e66f8921ef40accce9dfcf7","impliedFormat":1},{"version":"8d48c98fca3f013fd2872810d7168a9c405c4037962637aaa0a094571e731757","impliedFormat":1},{"version":"9898a7c6ed78c9656079244ea2318282f42ffd1cb5d4aa5753decaa7f3eaafa2","impliedFormat":1},"010bd7696850423d70a40aa6a4968cde67ec4f7f1a113a107d0a7423eeb58dd2","92a71fd81ccd1c569d4922967f10b4bf8e680ee7e97b9caadb5426a70249263e","132279ec90347f347997306254f472ccf473cf7ec59e6cbc358c8b3e3d917dd0","283bbcc38c91737aea86f8d5362b4fb48894b64ae12a7341563a1ce7372eb39c","8c3a4923961d532c332df2f3915a4a70441449f099cea296ca91a02bf6b9f310",{"version":"b4f89206c8e318e5e65294ae7925a52a5bc13508809c5c699d7ebfa14e0509eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d51500cee65d776a8591b72c1019b0dada25d6f7ea39685130ccedad2e8b1eff","impliedFormat":1},{"version":"e733b8a7d2ecce20916d95d75a0c7cdfff7e8371879006902d77969da1550d65","impliedFormat":1},{"version":"d9d5884c0b7a87c6b0b319474eac7987f915f7460a04012d54689c14c800d69c","impliedFormat":1},{"version":"42739f43f21108aaa8b2e9d1246c537c88fc193694d5c3660b49ab5ed87bec60","impliedFormat":1},{"version":"8c4c212cbe640024a5076e006d5ed48c6856bf3a79880c52d0fe453495b84e7d","impliedFormat":1},{"version":"8dbd432facc1bfd211d58bbbf86a405dd55cdf04d6425037171282ae5e1bd5ae","impliedFormat":1},{"version":"bd0ae662720de3f141b078c64de498113fb13faec0c1cbec62f1630f7b8954a3","impliedFormat":1},{"version":"517fee0f998ca443a8eedaed7ad143753cd7ed6c9fc97a62200c09b21ea661d7","impliedFormat":1},{"version":"e94e5a0936bba407a0d0b7846ff8a7960667f09040b575b5035bc30298510781","impliedFormat":1},{"version":"f6a3229a9d452117bfc85b50e955b836c8c91b1244dd8d3413c2824333022982","impliedFormat":1},{"version":"75d3a0dcb75b27ae7f6d3bc06ebacc608c5145b2f403264b64d603d0be929bca","impliedFormat":1},{"version":"28732171a9e5a176e9d8b9bb417b32dc885591bc2642232389a44167bc5ec581","impliedFormat":1},{"version":"90ebe8ddee75b7e87baf030d45d49e13a91dea47fa4cd8494ac85e5ea35779c8","impliedFormat":1},{"version":"6ec1d690b2213c008b55d31778e6c4f13141487fe26749ee6a0b4c2b6f84f9c9","impliedFormat":1},{"version":"43ae0b1b0a836f113aa973b1a4d114e2867fd320125e43a80805d9a80ab07c4b","impliedFormat":1},{"version":"1b6d1aeb6a58db9a9702623d7edaa31eda44cb33fe66f349f6156b20db8b6211","impliedFormat":1},{"version":"5ee542acb0e360c539bcf027de4389536fdaae8653e47b33eb0445ba85bf223a","impliedFormat":1},{"version":"8a0a53613cfa756a769e4514632acac0e17d80631af21a888daa46ac01ccdd1d","impliedFormat":1},{"version":"e7f9e4cf51627c95fdddff062c58c6b1c4e22d1868acbf3e7e663ee95e3790b8","impliedFormat":1},{"version":"449d082b398ad2a53c5def35397b752d61c968a2acacffb935d564b5ff3aa19c","impliedFormat":1},{"version":"1a3aa0fb5f9a2dc05a33faa6246f85ecc52c8af7a5257d8639e724a12ebc92bf","impliedFormat":1},{"version":"6480e9b0877e389c96e3b89c43fb2e4d84bb6ae8cea22f8ea2bf30ac4a4c4136","impliedFormat":1},{"version":"9cd1a75410c01f48f43befd40b47a7d2d42565b5593d5cf02b7472b04a1d98c8","impliedFormat":1},{"version":"d0144e7240c7f26030468a13211194d192316099ebbcee7782c6005cc393c734","impliedFormat":1},{"version":"095a402135de9fbfda29ba7c984bf54b9e65757396b4165706d898e9baa83ed5","impliedFormat":99},{"version":"0b6471168629b8a0cbac9f8f67bbbba83a1d64cf1424cd7d299439b3af88129a","impliedFormat":99},{"version":"3e0fa3b04086663fd406499ea37f0714b0d7cbc296eb81e244f2bf0ba4938bb2","impliedFormat":99},{"version":"3d11abe325e68a5b76d9f53ecc0b4ea29685ccbd8690b279f2177e0750d87f8c","impliedFormat":99},{"version":"f1952d24cb1344241341230924197977764249edcde80605e96454f073ebb35a","impliedFormat":99},{"version":"3b5b37b56d81802168c5b8df2f1d4a7ee018d67e7463f221d49b6ea20af00060","impliedFormat":99},{"version":"f3a6db8faeb959400a4d0e1100b9d5c54eb494800e6dc9a2452bb2e00a27397c","impliedFormat":99},{"version":"d278699a1c7e06a195ecc065c4965d1bbfb5bc2d67176e63bebf58b273158023","impliedFormat":99},{"version":"261ffd2f7502d9387324715c7dcb9f3a30c8d044b6dc3abc7ff80737c366476c","impliedFormat":99},{"version":"28729ff7b2ea98a9ba6ca4490c5540be744a4d73b4199ff6094cb65c9db33607","impliedFormat":99},{"version":"6ac889647435812fb7ced7035daf90c1f307710056e4b496a3fd5cb97c87daed","impliedFormat":99},{"version":"29f60d17027d6bc8891797f6ed95ac84ee42313e6b03ddb49beff6f22f49f8c6","impliedFormat":99},{"version":"f71579228be8825267577e970c8f0ee2869cebae0bb7603b00644fec924c6717","impliedFormat":99},{"version":"e50f096cb424b63343ad5814622623f15cf3830f41710376bebb3c7f71554713","impliedFormat":99},{"version":"69ebae4354b59ff1ba38419d6033e22d0db6ffe6c1d562e78914f88f06ec517f","impliedFormat":99},{"version":"45f0aee62dc187cbde99b10987e1f8649a30bba8bf9c95957e37d1551d0626da","impliedFormat":99},{"version":"919b048385b82efca27e5adec2f61f17a2b219582f2deb8a13b4648c7c8fafbf","impliedFormat":99},{"version":"47747eabb3c64620a12f707bf30c7f7a211e25754a2da1f98267068f49bd0947","impliedFormat":99},{"version":"2dc1bcd6a132924a89f965b60edd5b5333aaa7eb28ba5af44a0a0a328756e9ad","impliedFormat":1},{"version":"ad117b97b2eb65daeeabf0adb13573a8f1d12d5ce21c312eb7eb588106b92560","impliedFormat":1},{"version":"683f7d52795b5e2c0a269c4a202f212d147eee850b6d74050af619cea7638605","impliedFormat":1},{"version":"bf338c88f9e91b1700029f806a2d8bb447f19d3e39fa57dbba16ce8bf43902c2","impliedFormat":1},{"version":"d3c9c7df6fe4c7905f73578af2542e2f303da2b0565abb10ccf8a75626da1bb5","impliedFormat":1},{"version":"a16c041923053317f99708de244e50f0c563de0ee22313739810b67cec8af89a","impliedFormat":1},{"version":"b64880a77efc0fba08ee595d277a52e7abbdef2dde51a163376f03d6d3a67c7a","impliedFormat":1},{"version":"817d7ba9b41a1f3f7d15e8c1067bc32ce0044aab0ba05e2794294ed25959cdf7","impliedFormat":1},{"version":"6e6d52eece8b335d10a436ca59f91cbf0727f9f2ac0521a0b0ffc32da2006948","impliedFormat":1},{"version":"98e70d3105aa56ac3e2a34a78f10c6d352ff9e3148b1bc2bb11c1787f0176d26","impliedFormat":1},{"version":"144ffc9e0632f167247b8ebc6c12b690555b27930cb2d92edceea7df51e54bbe","impliedFormat":1},{"version":"cb6b2bd587f4d8b0299840be7cedf422fb895d3c7f6cbd8c18c041518ba82fee","impliedFormat":1},{"version":"849b51d422f1a846684da755840ffe68f65701b7b7703ea9622847df65dfb2cb","impliedFormat":1},{"version":"3b17eebfd6fea2320c3d3ab55e26bee41e6745fe51432da7901e898249a8c186","impliedFormat":1},{"version":"5d9c054ecd5fad83e0ec5e117196acdcd4b1cc5b8d28f5df752a416c27052aa2","impliedFormat":1},{"version":"949c8eb79434b05b6d1c10d2010216fbd6c920ee376d08627f717d24b6572454","impliedFormat":1},{"version":"25495d26470692e2591e386c1dbffe4aa0b2d8c00af6ac9c8c69657818262dd5","impliedFormat":1},{"version":"abee0197420ed0849c7adbff50fc13f54ccb52f9a8c906e298c28321bf736cd9","impliedFormat":1},{"version":"3af7286265437a7488193d0ab0b56a6e20e1a5e08831a6c3fe0880212c2c6c75","impliedFormat":1},{"version":"d7eadcb936edf325912a70d1c4874c29b92463ba1eecdb302858763db6a68692","impliedFormat":1},{"version":"04fe6e4f5bd35c234cd04ea88ada66b718aec4b3edf611147b0ec9ea216b3cd7","impliedFormat":1},{"version":"7aa826d09dcfa85af6b2cfeeb6a7f340d417968632695fa8eacf4186fb71e8ac","impliedFormat":1},{"version":"ebbf2bf006f21fc203f1a555ff0fdcd8542d1546d7cab60aa835ff5902db0d2d","impliedFormat":1},{"version":"12aaf4e3c85225c710acd6a9f41532bf8e06bf180e54c1bedc60fa9b9c1a7d23","impliedFormat":1},{"version":"7814f653054116409bc9a36968b77c878c2013ef8d8873328e8f6fcd3348d8d9","impliedFormat":1},{"version":"ff4ade9606d1b3fe1a10bdf6ab944e1bb1d5ac86035228ddd3ecb5fbe51d4d47","impliedFormat":99},{"version":"608ffc65e122c3eeeff832a9007ecc00fe71bf1b03a3069a44e8c565ee8af368","impliedFormat":99},{"version":"40b54b241bc79a986a5ac364f7f11c60af8c68ac8d45c80501ed31af7e587a74","impliedFormat":1},{"version":"0d1a503605c35a53f49ff2b6506704b289bc33d9001d2244044c91fc82315c8a","impliedFormat":1},{"version":"96d1d70759af66ea4404f7c18130ef478e5052de8863e2bf4467cfbc2fc7176a","impliedFormat":1},{"version":"fcb4542949fbf132a400c60cc53b79dde681570147af3a5798aa732798c6b0f1","impliedFormat":1},{"version":"9332e2b6255fd361167671093522351ad5e2d0e3a78d9bf8f0959d779f6d3246","impliedFormat":1},{"version":"5be2e2b5ca39c4fc74b0273674a3e7705088513872fa3de1e4f75357a507a988","impliedFormat":1},{"version":"fc8bef71b44a15c1c6afe97e2ce74c7beb10d0a3c45d19dca5b9d53cf81cc744","impliedFormat":1},{"version":"41dd7695c5e11ca31e40bb8d9a2edc9c2b3e262d1007fc7471ecb91516874d98","impliedFormat":1},{"version":"262efb4650083ac514f3119534d502211d0270140057698e7d4978caaf4b6f97","impliedFormat":1},{"version":"b5e98f1f4e64ace252ae743df592ff0187aac817efaf58cd97c63e243fe15951","impliedFormat":1},{"version":"151f53de4563905919248ae634d857276a8491e62416b6f2cccbfebfe6794a72","impliedFormat":1},"8f7f0fe9723363d03731e2af36efe952b9c8dfae8c9c4feca85f917c8d38ee95","7ecd76861caed403cf1c2e800d380817179703bb003a7e94141e51e9e520a16e","dcfa51263066f8d4064c483762236b3257512c2d88434e8a2f1010fc8d77a729","9811c23f18ed827f5f95f59ac41d59c24e048811741bc97ef4751a6e4b588c93","764d3e4fb632118dd99a7e8109e64f2663f14cf970b4d45e8b9b74ba705f68c2","a993b6a3db6a2d2963115b8eb8e4e04ff6e4de394170571a5b703e482ff5314c","767f21b5b918baaab7627cedd23e90e96c6988f86477df1208b5111f41aee03d","51b6fd7947e721d16a909d057b5d9b008e7c467c94efb5cfbca51edaf10454f4","f846a25a6ad92fae372999fc49fb5fe1febd68ca3eea39ef83425a46cc016776","409ffeafca5a6a110031899b1ede663a3c3fa929124893367f4934e32700d68e","21adf40e2fb8b0a48342d2eaf4125363d94acb49cc59f5ac369749efe683990f","05da203db76a7efb938df54d8cf7db7946fb7c89099b5c41c78662d95b8f7fcb","79b4596a792ed6cc9300ab60c2d21d820f4a13717d14e573b55816cdfb245de2","6c96ec3120fd9f90fe1afc383f6b2f92b824907883c6f99268b5167185b0a3d8","4bb6f6bbc4448a16ffb70812aa37b20ca3941b27443ca36d9d3a499a8bf1d564","ced87fa12049ceb1366ca1f09f6513cc7eea164e6922411dc96af74f9d44cc3f","d2e4a17c63760596ff90b4309942c815d06024e25e7a60bea36d17393602bc79","21e7c97a4a252f6c062480252b3f885ec2e7b67ac56664d2779d4874d1d1916e","aba51eb73c16adbc21fd09bf64b6014e84c469284c501a3c9aacf242aa29279d","26b123b60d4d748e6ad048813295f4c368d46faef228690732d8d289a1a5af8d","5d83ba0eae0798f047802f636c62c4189ef4079f2d017f33b14086fae18b0fd9","1d568d68dad90166c8e322e3a301441095b2e149d458f411209fe6e29f0ec1c2","2d995c15bd75d777ddb5e05b3e838750a7a0e229d9503204984aac0e36d886b6","6cad528e6075009933bc7ec3a49f1d4574995a45e5f1fdfe04a0c38dc693ef57","8c504f40166472fe55bb138187ade1677c14699b70731d3d862d5d19193814a7","7d1e53d013ca549fa99df6bb961822493e2878f2f2ba935e95210c9b7a24cd68",{"version":"5276ee82ef96770571bd5aae9f4f5cdd474c3d4c1a068f1e1d9ab9cf16529975","impliedFormat":1},{"version":"cdb1d174036ebdb04b5a61461ff523efaeefffd87b093f43fdf20196024b2003","impliedFormat":1},{"version":"23c2c70dd974c3b8b66be4f3d6c9351fd41235d9c038b4d57d334dda8f753819","impliedFormat":1},{"version":"dffa09d0911ebb2639cae47397e011cc195de4a3ad83b53efb2651cfa0e0b75e","impliedFormat":1},{"version":"26168183003371ceac063f0cdf62be889d0515a193444a99b176094565dabb0a","impliedFormat":1},{"version":"7fc99221160c51281d2b9095552be2b24b600b3b6fe305cfd068bf501f623ef2","impliedFormat":1},{"version":"e36eeb1297210f99ef4644a5028caa2f222cee56f5f577909470aae77924b7fc","impliedFormat":1},{"version":"755ee0128a813468af08c5e673655a068813c92f4179978fd37ac3df1688c2f8","impliedFormat":1},{"version":"f183da4c889c90d5060aacc1c247c6cd68cc0024b9891402bb1c07a492d18018","impliedFormat":1},{"version":"da1c8718353e2981fa5981328a2d5cf6bc70da59c51967924d032a06177bce50","impliedFormat":1},{"version":"b4b9c09ebf50026552009c501feafa8d69c58dd29cfee93f54d5783f8fc6d2b9","impliedFormat":1},{"version":"3965bb091883ba173f7742c16ec8efe81207d75774d3a809385edce6841adca0","impliedFormat":1},{"version":"c1eb69b3ec8f1080980c25c8244c4ba093af729f4dac451758e69026b20c50a7","impliedFormat":1},{"version":"f67870591872110fd6a97ec0d933972f21ccf433bfb9d8ed1f044740958c4e43","impliedFormat":1},"70d4ad847cb64eb83528a594bc5eba51fe712394c7b5c1de540dbfa1fbb252a6","0a598b4c856c45b4847ceb8cbf5e4dfb8eb164053ee407775363fad2b3689893",{"version":"a28e6fadb0b6e7a95cfcd29366f2b72a8e3193270d3f2b673e1876edf0159c7b","impliedFormat":99},"16db379ab816c2dcb506ece1955925fad9cf7e60a27e192f0ae274abeab0e4e5","c24ff7cbdbc36ed2758430652fd2c208c35f23a69b0204b07d6f3ed016eed9f6",{"version":"9be0dc6f4c5ebff5d838dc0d059f25e5a6ab1d224d5adc7ef46887ce8549e897","impliedFormat":99},{"version":"32aa20fd978847e617304582657723f0dcd1809de9b087ed0ad5b7090b1a47c1","impliedFormat":99},{"version":"1f37db92ea78f4d197a201f80a3c52ce6e2b759b19d3a1e9de5aab0c9026fe3f","impliedFormat":99},{"version":"c07898a85c15b3b636506443e88fe6d85bbd568c0bb504a9ae5cb371d58f6319","impliedFormat":99},{"version":"795d467a57e3a7c4aa3d645fa2edae9a2d0d44dde435bd1b222ab533da6fce44","impliedFormat":99},{"version":"bfc5aa7977557874fcbe1e96f7a06e46b3b568b955c82b74a85cc8f6c62060a5","impliedFormat":99},{"version":"f20bb3ae0de20cd6a4b73155cb506bae39e904b7e5ea4f618f5bda7b3ae474fc","impliedFormat":99},{"version":"44c5d9f47e85552ea141ddc1b0af65903297624f0ff2227372d5ce31ff0380c6","impliedFormat":99},"6bfb9aeb01e1f2a8f2b6196412ce85dc2b7cdc8dcf1962f2e1b6516093e8269c","e4a4f02927024f5fbf9e91abffcec93c3771168b5bc36dea3091b152d5f3186d",{"version":"a896cee6bbf43009c05e9ee4b0cfb1147ae49a4ffc2d814c6d7465806d76fe72","impliedFormat":99},{"version":"6bd987ccf12886137d96b81e48f65a7a6fa940085753c4e212c91f51555f13e5","impliedFormat":1},"8151759f968a478356f66626323955df04679687e8bded20e1ee7b29027fc8a2","476bb552263792befe628d5b588cfee6310e91d27d8e5e3135e3c64cfdf661d6","249a206e642fb5f7539f5127d3a5c6a49de3b802ca604e2b5fff4f38f844bfe3","4a9e0a7891dc98c602bfcdd97d00bfebe517011e39a0f88926cf619ee24d9aa1","4fab487193cffe755885c698cc1bdc01b00ecf4dcca0dddfc447d88970681c97","401cbeffc1cbc3427fc85070bb0dd35df981fcf82a30318e9b468a660a95f743","c84078b0f3b82c13b2e97be494c0f1071a89df00858c9035ea5444924a263884","7293106d19cf62705dc6f168cdb00e7e4c37d57f1019d73eab5e5633f002abfb","8bc0222adfdb85b62b1a3f1ac9fafb8e1116c6494cc86782ac2a7fb6d13bd09b","1de97be13cb6d21a4a1da963d41b6141b27f05786ffdb35713bf378328eac097","e538c60f67d9e7d463ce9fc6299a9c1e436fea994f03f14e436871f69659854f","19b53283228e93ccee1500899e42b4d22853555d91fb8f2efa3f82922cdbdc41","9c93d91720155376e598da843b36a77a24890972270195940569950846c0c7d2","8236d0455cdc0c5df74726e2fc7011e4d133b7df6180be669bad5e025d727308","3be0ff06250bdce15bd08cb9eda008ccabd85aa331a784dfb6d81838c470eae0","8278755295ae2604e765676713fb773b43b8a4c8b98b2bf33693c068b916ccf6","10d43e25bfdaf81335aa875387740a9e952a7f5e2f47f9bf6e473c42a7187564","22a90b05fdc32fa4ff466a5819128275749dee90a305858ef353246e723a2d85","51d4f6415cae0357ae923f7110e6f6962690e44c701589a65f2d95903e40e368","cb838c5fdd46f7f469fefa566e2b5c2fafe02be638ef02177bc1c7cbbd3bf879","53fa54de6d9b14ec6a35ac2c6e7c5dcf47ac17eb74741c57d6948db7a2ccc489","1a947f95ecc0f6a6e2ea8122470d6881b5dfb2592051b68ee8f72f8f8ee36d5f","bbdbdb42b704a60fa5d7177ef83346be726578ccf95e26add73999c1148dafea","71b2f6191be093ac9d84c9286a609f3414390ff88be50e2f01c9bcdb85d3287f","35635edf9f859027af3be25cd38a5d42e52c1258a1a3ced5703842d177dd805f","e5357f120b95cc70b91bff28981d75e63d381f96ddd12df8c6274ce209040c52","1142ae3be3921a530a00fbd2f4aa5e511375891f625fa098e2618ffbb804d3c9","3d93128631bbfed8da5aa5960e91a88249a6bfc7bd00dedc04f4d18cbffaf5ef","32377265da5db06811fb10303adbb6759f1dc0796f11c3509f8c368a394c89e7","6a374c778084795fc7a2aa1c15d20e461b1d8ace2990ecdf6ac8baaf25072b7c","90dec2351372005d3ccfe8cdcf628bee17dc7c48a6bacb3c58d13f376aa92abc","b889c9ec0f1e55e0129ce9d06f0cf10daa320f0161b7c992db8bb1ba99adb36f","f310657015f5c7accfa816f290a474674eedbbe3c79a15477d344da54f4c1c56","ca8aa1a3dec921d461a781d9f529d814dc6aff720b10f2e458cb2e0cc7058536","016017c4c67f193e806011e0f76de65cb3c4771f37a0197447ae00f4ec3d675c","f07b219d7d1e1cbe8d95d8a6e0decb00a1b6087ae186c5ebee9896e2ff413ac2","aaddc268703ab388bf6c44617543cc939831ad85d5dc0aa1984c26a6077e7d6d","1eccc6cef0e7c37d47eb03a97ace30d00bf819de8461786360bf7209960ea3ea","eb431d32ffc7698839b93fb185bd7748ce804f6ba334b5a0f84c926ca374223a",{"version":"3d708b76940e1051d77827e6a8a02b2527288c6d4d1c23b5adaa16730f1f4009","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"5dbe51f917f9a0e623f6d4e85168f0fb54590db471edb9a959f1f9c51af279b9","62ab67147a9b8fd96a09da8fdc2471a1ca66d1aecc0f02ef58277f52e4b7c00a","02488bf52002565e729cd29363490adbdfa45672e042fa65325f761e5a69e55b",{"version":"b3b660c3d033dc9ef4ad8cb72ef53689a9553d164d863df70a016388dc720563","signature":"73e6a02a6e9410391b3fd5c1fea87f7099b6b0cfea1638aa7724b53dcc2fa9ee"},"5cc05c76b2616468da6647bba3164da3a43a5072957a361f8fd83443f70ed19b",{"version":"8f8b4bf72768215e198c9d23a2e57e658df831e89db050638e8392bfd1496d79","signature":"12e293340c7477ac5806055b16f1e6ef5d1328c7f9dbaf1dbd822179d6bd7c02"},"7823de72ea86749463b18871158db12e33e7d452c2da17e770fe14f983ec8acd",{"version":"fb0c6ec6d7932a3a1dc83f0eed33ab793fac1e0640bf91dc909c30cd0f0c8285","signature":"2c20df07430d1520f4242b99d6bb3cd2bbabc30cb2c16d9d710fb5780e779135"},{"version":"c17f9ed4e1c43d6bdf74de055df4b42366ffbdd52c818e0ae7ce0f20f849c2f7","signature":"b37e21f2bd859bd153abb0eb031e1148211b994f773f3341c9ed443828b92930"},{"version":"b3a161ee261f5909ff7415f9ab59719b21c5c8d7d6a1dabde90f804ac49fa0da","signature":"f19416898947362b3d6d3c0eeb67fee0a86bbbf51de1d6df6285962defbee9d3"},"eab87a5108d9732a2508991e58ea5c32b90aa3d6b959eb62b4e29cbb7322bf9c","28d3f60af41a48022385a5619c49a4c799284ebadad30d987ec1f67ef84a1ffe","747e4ce9c28359c400ab94e506648be05de64c9d991b349123a4a8fc48b84b73","1b3f557087d532489d56388c31dd4195b775cc3f735975a4589d2f54aba467c7","4aeae8d8887e81c7698be984c3505a7099f25ee58a6ae215aa5276089924918c","593be32ac4f8fe372a6bd9ea4859ca1a84d6dc84fa630e24616cf24120d68da6","afcd168776c141a058fadc66872e0765bef97fb1c7fbf8a480454bdf30b84186","6da63471ad0749bf97b1e481c0bfe6a43ca8f3daba53269568f033fed989ddf2","8a15db08fb7d7b2ab4717156081b95d4ed32a770e4624b0722e8606e91c3df4b","ff10c6742f17c4ad02e6e18981c646eb136f034df6c6da769ce518bef035dac7","386502117ad2cf606bc88655cb9195b4644bcb8f97cd1e8c5c322ac7e4006c05","ab58c363da9bc405eb1f6810b28b3add09b3f610425615360e311c1198ebd73a","0873fbc7f9d6ab783ed2e6a73403a079cab3d122c7eea69392889eb706d5297a","593be32ac4f8fe372a6bd9ea4859ca1a84d6dc84fa630e24616cf24120d68da6","9e98458ea2d271f13b0d0b5d0a492005fb0ca454d24a2645e129a42a0ce5f3fb","7a912902c1c09e09ec8f2638a4d52f6fca012d1a4402753a604c310f680263f6","a4d0dbc0f6fcba705be0aa16752ba7df2a9a4cc98d03adcf0a70d2b70d0db7c3","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","118fed45cbddb3c9b4a4dab8c83967bd4f61d7b0afd8f148045b4287a4cef9a9","2a100a93d6afbe9e3363df7d206b8a3ce61e2c174e5417f825986bc8d21ffc69","8ea16a7310e3501565e2d32de8b9f985f79e462f655686dcab7d6b230fa655b9","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","b60413abb20bdbfafe6b5326d2b4e05f63dfdcf5d9b1246a3f86ece2ad562d86","b4478b686216adcc7a6255a930d419f33075d942195a00707d9cfe03e373e8b9","c36744b2651a62f52866b47c74545de84fdf6991e0a96920e0004642e4830524","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","2049bb071060b81c49c6cf96872f23632d6e4fa7f9a1c93e007dec52d77f8a70","907a3d799649a512646f1e6b70591b137a5f5923669ccf8673003ad498c42e75","b82efd290a7dd61bddb329a05b5d622ec9927cfc8c27b8178676c85875460266","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","6204a985b097ba214229d512959870ec0d74c7b6708b5bebd9f7c270d9ba3f42","234efca8a392e60b9c4d5f5ae51b20c7e593706ed542033427d7123f9ac00047","a21ce57317e583912540dad2b34d2762431c9f603a480affc58b03e6b5e8a369","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","ce0d2754f32697babe3c5ebccd63d627bc2fe2c47d02edc8fb52aefd67bf20ff","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","320bec3745b17fe114b018d64b01f1463b34ab3d0196319c3261710e908d3541","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","b48a58724e886fc741cbc9db68909d87f8102cdd102b34b8d011f40263f2eff6","481f5f7de3521edad947b39300f2978debd136ab602433d014e44f6e119dc242","87223c92d8c9f0f6d2163674475be7c4d2c8a4439c31fcf04d01a873c255361e","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","292d1124dff7d7313ac9d6ec5879a113e09acaf4226ab127cb024fd7d0d2131e","9bb30ee6833cc37825294772c9c67863ebf61c3913eb92abb3f259444c274498","693c946a6f66734a59fcb7a131f1f744645b92ba919aac02893161d5b7633964","aea1e4628bba7c088db32011bc0c10cef5543824a882f5e7abc9d480ed900b61","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","c52f0a0c1ada7b92b2dc03e2d68cede5dd7d0c3d5f6564dfbf8bc23c5dce603c","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","6983b0c80cc42153db35b6a4dc27c916c15ef43f07c5444754aa99d211e31f82","a09132cf4896ca4a291b30f07e0c2dfa420d4e71b5802f5d130123d20fe976d7","b223502c32cb7040a9ccc12fd30e4a5da2334cd9823920f33e449713eca4d435","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","e3bfcb48c23f5e17495e0050deddcfae71a2ead167760132a4c68bca3ea19f3a","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","9e544e6dfc01035c7f28297d2e7d966a655ef1869f6ef4a8a613cf0810113bfc","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","40a717506493221f42ea61f37615fe241827f16309699a4f00d397742db73cb4","c34fa140427f097c7bf3b5b428756fdc790df61bf7c5826008107e2e772f2d1c","aadb12cc5f8c3160aac0f9dc62daa4386c30386ca82223d283f5ce64b486e81e","7b00f5001a9cc73872657547eaf8d736a5ee7d86a82281099111cb56078c45bf","4b80774707d45b293e210ad51549d26e73e44ffafb80874d1a16c232cb47a28a","1423249be76c3ea1e9f13797229a3f813675589513a4b6989e0291e5efd2fed4","f896934a55f792e6e48635ad510db4f9c8cf62d59ccb9076e3ddaaa058eb2299","c9d0eb2d0e962a44edbff2d4ef0d1bba177815b032347c6ca687199569391c16","3e4e710ea86a17244a493dd90c8540cae7c9c14902d004a9a5af29c33ae956a0","44c0d53011f4b029ae82ccf4b1ae9f79b50756aa374e66f63772d661348ef5b3","cef52f035785e353e67a7589e972cebb9768a1c7dee644e2048f14124222bb20","af47ec042fb2136af93235422654247a3988acf6407b643cf9e4c82a6223938d","6fb1d409092b2c60d495bcd219fbd259432787812615d018d34e3095a9779661","86d7666fdb51a41a2eec4b622ebb4e386827f51525d1c0eb39f142a3043cb939","1140fa6ed9e972caad948398ac3f0c66f7f1c3eedac3aebf5666dbf1e08c9984",{"version":"81663ff17585d1c4a17b9aa2b458664ecf1c6391e267c889398cad61d37b0040","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"65e8f650d059a9f6866c8d21277eb75f109c179e6662635e31c73f7314a15b47","973c1d4a8e79b6956e68a922cb0a17d5a73e0f97b9e83ddd320cfd4734260fea","f7047e6358933c7805013ebb85901582f04a55fcc40e9502c32f97513bf78412","8cdcb4c784cb0572917238dcefe583009adbf7797d4c4886ad4039982b5a21fb","07516dc144bbd2ca6c851b2c633c0531f07a8481c1b751e53572b36b4972f463","d1970db5ca2441b07bf3573094ee46114427df80ec4931ace0bdcf77aba69fe5","6dbf76049317057ff152b0491fe3252229cb9443bab1e44802735492727377b9","74e1e40bd50b34196d8a33446cd965f40bb47e5805ffdb95b3eab8a554646752","7747dc051cafcc0b8577ee408f4daf15c9be9259d88c26f2209a96f9eb546a13","f9fb06981b946167276f069cf5bab3d9c731443e9c13fc7d0b92176e5a214343",{"version":"b885c790a4f3f1beb0e09d7fa97fe250c4a13d7ca92180e595d2c7c7ad6e5c28","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},{"version":"d1d20f87f975a3aa646bfc3a3ad2e92c63c0ba0ee750a4888672ea95b26cc970","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},{"version":"59af31c3bbe3a06bd0939a09b7005b28964e2965d3f689f18e3c4eb3134afd45","signature":"cb1e6ba186da71055d2f6caf7a39125a8a4037e52ba9bb93186805ac4f509aca"},{"version":"4f49015b77c7fe35daaf2b89eca2943e0984803e00afd832328d4eb105f8c8f5","signature":"3c8efa8e9645ead1e435495d44b35ddebc17f004ada835934dab1b92cb9b59b6"},{"version":"fa426c5e9f0c7214b9e21310f044ca81eb25140dacc1dbf84724bd6008a0017e","signature":"0cc6e5a587d4df8d4114597aea1c36dc2b96aeedf9723c21b5ca7af97c16fa61"},{"version":"bf5d835b23a254e2f21f3b2a8d02504739f5f06f6fb957b8e851d9ea0b87ded0","signature":"b16f5a4e537eadbbf83dd27af4be91487d5870105bd733d3adca9509af620148"},{"version":"ea5b38c298ce08bae20be60938e0719918d96aa9817dc037a60c951bf6425fd3","signature":"e7d5a49ab2bc5dbc7ca62e8864ac27943b3730bfad2edab3b779d9e854a027e9"},{"version":"a91b3fd4b3fe11073176b237083ff9889a0f3889925809a414fa232ec11acd08","signature":"ac0a53833caa5539e428bcc74f2e7fd12b70658401ac64dcca932ef5075a131f"},{"version":"8e114a6e59773df9747822fbd19f9db6af0b3ec399c908cca4b7f75fd2a8a6f8","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"3793b3c429626f29cee5acbc1bd7ebd20dcff7f8e8b34e05e5fe73850944ad91","89a26c835c143998a3155eedd1b997fd3d5e319200db92d76970f4b82b52f785",{"version":"fed576c57aa64fd36c153f5d9257f687dcd5fff21f33103c9f6685d9b63520c4","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"71336d2b229dfe87d375349ad48e56b50497bbe016aa6c5f5ab474c332a47fc4","b3d64e107af520235489c6ae5f27c4ed2d5b1e20bf14400a318459319372fb92","f570553cc117a5b10246f1baa14980d501e86fe29a3e3eb92a4ebc8bb5b586fb","b8a7c792da78d7c358243bc909f2386ded97ee47397aad6fbee8b81cc139e916","fbffe3cd9ee84ff85c569c2099baa96d7795df06c22940c10545488dd1a6fa96","ac02c5780d20a8bdcf91bec4a7d7f67c6ce3027cf25e1ffbc46780c379e499f4",{"version":"d20cbef7830eb4e327bf0e3693940ed8fc53bdf3e7166a90ff60b7fcd2acdee0","signature":"366a59a451462d2e3a0ed38fc2751207da1a81af2d78459d5e3b8d6910915c5d"},"89c67a901ab5e00abb6ae1ca5c97ab9da40d2bdef92413d730e8ada3da2449ab","b84bf8850597b6296f984612ea2775f6c17a51056c78dd05e037d7c5cb1b5c84","1d5613198f43052f404ec0d41155a8a33d6ec11ca3f7c3762422b123a3d79912","d65ee52c5f6a97afc1182e45dd4c0306a4b23935cd959162af0c45f95fbb6506","716c3c72272c620c83b73b7f3331e591b245dd1963a3f56b890202dc35e4a922","e929970d3b5f26baa81520defcb14d5736b906bd97c1944117c0b701774fe6b9","039c083e305f3bd6d2a1a79fadefa34e309ffa714a5b6d28d5e466176409fe32","908563083b6bc71fa2c9d13cdf89642cfc2bb2e25bf7ac0c5075c6b7ec0538e8","949ad82b645e715938818b7e88a461b0f449436248cfaf11041e194dcbe55df5","dd51bfc79ecaf436d787354b727c38477d7668799f537ce52c304ef7b7386b44","e2c3158e8c5b09e261905bb377ed06562ace98b9365e327544c925d72980ab95",{"version":"6873402982dc22d2d4435250816d960d1e83f3b33d368a3d172de4267f936591","impliedFormat":99},{"version":"35edf813ed85141ce1d820bcbbde57af69c2c5f295ac4ef3ea227948325e2f83","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"989ef2ce7e7d2b5fb7cb27c624b244ca3212adb649454146293af2dd3f47faec","6a6cbaccf66ec3a6ca2e2011da79a56aeef182f896d668d180372d03a4f15c74","8f0ff0f7f53aa0d040927159e547d2e201d6bf5bf80a9eccbf49b61fcf102f65","c4914ffabcf525b9bb8a93deb96740f8472b0f1657e17e8a674ecbf8ef6daa40","f81feb8c38d8e187025bbfd52bb52cbf250a736fd38570372ae9bbb5ee3e35d9","ba233f0f876ade2fb846230915b0f2e2cd7f2f9c850d0ae5031240b90adc9320","0800cf2618838a7259300ad750a6082625acceab6ae570f3cc86b894fdd8ac2e","82c7ebad97b9e7ea28d09327522976affdf6137d903127b3224943519fdbbeaf","638c696aee97d0a7c2c56599043f24d53e740439da60dc0d1c2656171fad84c8","a823842f755ebb9a5f53f17a1bf58af08e82d025489a738b294ccfe4cdb64f90","43ec53da0e417894fdae2f84ca2861ee785f9cc8054b1355cad458e32e758790","ee1712609c030f93f0193104a41e472b3b17838da6067fa7805478e81332b98c","20d70bea5782e468fb89759369709d156829e090b355915ff28730a506e1e2a1","d3b610f24e0d08a1079f42b995138866ce6f2681ed0b2d435e134d469cb8f67b","efc09ca98d6b6e72bc69f8bbdbfcdb01c16f24ee4fcda39e3add30a3416166dd","ce8f04f229a40d31b90a740e7b74aca3ed76b03b7f1585ca1323f1b80d6f7006","dbe95686b188aeb09b4f3041b2509d5cf543314b57e725372f351eaea25971ee","976c05f92fabbf396a18651da480b6b2d23195b3c9b5b6f37f27c1b5fb286b54","aa6aad25b2e56284705f8594a304ac31b2e74e6db9f67209b149c5882e4b89dd","e05a47f523b7792fa063e687e327bac6f00011da01c032003225c815eca79497","ae0ba394411502f58ba43cfffbbe5d12dbd312c833b3969b16bf1a94ec90e530","d15e9b66b65a440157551cde22c910c2e2b186e6c7f44324e895f291d629117c",{"version":"ada4a6a5564bb66bc51c9e13bd452d47027a0f18b20d05e4c532d6bdf705f5b2","signature":"380904696347ace20b4c234ebc25319249f3a9bb99b04a3398156c41d8ea6365"},"084e034e45167d15d154b2e7811a281d94885c71b3b01d4769a44f55c0f6f952",{"version":"111e12ab1b89cb2cdad21ca59ea9de523ac39bd79490149cea43d1f91697b8e0","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"71860f1efab600e8405761b577df7e870dbfb8415d7899696d3b2128fd00a931","474f6272ee75a64d1e98271ae5b83cf4862adf6c141726433296b463a1c130a3","fe5a46c46f3dea2fb31b76edc5fdc14e3ee051bf4fa95cdf32c97d1b9518ff53","e10eafaac3c15258ed78fbef15a3f8692196f971d53f137e60315e5adf7459a3","39492b021fb0e38a2277b43b075781b34e6f4f189ea5f53ed082372ea96c1dcb","906e1e7266f5495194c95064d02829511c0fced58fb5811180488d7158b3ccb0","4c09210b68020d99169d29a1185e9ce81943bd1e313b703546f652ca02b873ec","95c9f7b62d0b74f41b6f1430b4236e8999b46853d380187bd93df3377aa01048","ecb2768de4faee213a791aa8de3dc951e150ee6c2b7969c33eabe2fadf557caf",{"version":"7d23e15d7633ee7073067050aacd89c45c7259d21e60c0a990782fdbc1caa4e4","signature":"27d7e240e20b2da0070ab6469a8d6400672264db6d8d04470c8e3acd3e233ac6"},"f45cfe5a4f8c43c95c9c11d87a58b105cd216f1ae3f59ec2a1aaa598a9cf52c6","68020d3d42f720106a089dca5c168cf04e5d349089fbc191c36f9cccabcb3c3a","94e34c7d90e04bd1de26495f460aaf1f00e7bb004ffec8797f617ea29ae837a5","7f863c4a7c54be9ac30b0575f918420a38ff2edde87b808e59c4c8902e2fe93e","0043c0a8c6d450739b60f14cf684806ae4241c91f3fca50f172665dd9adfde90","9ec2d2c25f1f8befa23ba16b01c401d73da979dcdda8532aa0600f37edbf743b","7232de6a2a92489a070d7701bc60ae747fb40107563e87eb59096c540c4c40ad","1103186962bccc2e2100b1135a8e288f614bce6617ed8a85170e06a3b69cebf8","16d86d734dd6e6ff0ddc33e0e599da535de9bbc5b63abe3b35050f41c00892a3","cd8ffeab689cf8a4b893cdf152bae8be5526afaa8c2eb4a0819dd3db60e14602","7d9e7e04b576f76dfafbb03eccc7781d7b545450be3b4df7015369a4901090a7","3f08732c3a69da9b77f7e626163bb2b84afad459b844e629e01282312c53d82d","de936b6eabc0ac5efe7656dcadf07e5b3baff23ac51c8ef8d301fe5f0647dcbb","44ee0be70278c636f36b993c239c08f0f01c71e16d083b0be9a70f9a66efff09","1b8cacc68f25d13d3bfff13b9dbf773d52e40dca350697b0c19ceb0bd913c22e","ddfbc2e8c681833765607dcbc38a0fa7c768ed7a7d82cfaab528a049b3a55642","05dea9aecec291ee09237f125cc938c48eb38938eef3b05f18e09da94003d2e7",{"version":"d2c13e6de6161ee47ad9edd275f03910121f6d3488a8d36a63e16c6635634bd8","affectsGlobalScope":true},{"version":"ea8a445ae856033c4027b52f3ed2a225ad841dde1248b9d2f58283671dce372d","affectsGlobalScope":true},"73bd4ebe9409ec75ebb1a8f91f1564b92ee28695c995ea15095fc51e830405ab",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"b8caba62c0d2ef625f31cbb4fde09d851251af2551086ccf068611b0a69efd81","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"e3cf0611709328b449ec13f8c436712d62003620ce480139fae46ce001c2ee9f","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"bf6402a3cfff440801c3ea5835f08784aac18087016534b48741adbcee931921","impliedFormat":1},{"version":"71b110829b8f5e7653352a132544ece2b9a10e93ba1c77453187673bd46f13ee","impliedFormat":1},{"version":"7c0ace9de3109ecdd8ad808dd40a052b82681786c66bb0bff6d848c1fc56a7c4","impliedFormat":1},{"version":"1223780c318ef42fd33ac772996335ed92d57cf7c0fc73178acab5e154971aab","impliedFormat":1},{"version":"0d04cbe88c8a25c2debd2eef03ec5674563e23ca9323fa82ede3577822653bd2","impliedFormat":1},{"version":"aaa70439f135c3fa0a34313de49e94cae3db954c8b8d6af0d56a46c998c2923f","impliedFormat":1},{"version":"4ace083580c1b77eb8ddf4ea915cde605af1a96e426c4c04b897feef1acdb534","impliedFormat":1},{"version":"daf07c1ca8ccfb21ad958833546a4f414c418fe096dcebdbb90b02e12aa5c3a2","impliedFormat":1},{"version":"89ac5224feeb2de76fc52fc2a91c5f6448a98dbe4e8d726ecb1730fa64cd2d30","impliedFormat":1},{"version":"7feb39ba69b3fc6d55faca4f91f06d77d15ffedd3931b0ef7740e8b6fd488b15","impliedFormat":1},{"version":"acf00cfabe8c4de18bea655754ea39c4d04140257556bbf283255b695d00e36f","impliedFormat":1},{"version":"39b70d5f131fcfdeba404ee63aba25f26d8376a73bacd8275fb5a9f06219ac77","impliedFormat":1},{"version":"cdae26c737cf4534eeec210e42eab2d5f0c3855240d8dde3be4aee9194e4e781","impliedFormat":1},{"version":"5aa0c50083d0d9a423a46afaef78c7f42420759cfa038ad40e8b9e6cafc38831","impliedFormat":1},{"version":"10d6a49a99a593678ba4ea6073d53d005adfc383df24a9e93f86bf47de6ed857","impliedFormat":1},{"version":"1b7ea32849a7982047c2e5d372300a4c92338683864c9ab0f5bbd1acadae83a3","impliedFormat":1},{"version":"224083e6fcec1d300229da3d1dafc678c642863996cbfed7290df20954435a55","impliedFormat":1},{"version":"4248ac3167b1a1ce199fda9307abc314b3132527aeb94ec30dbcfe4c6a417b1b","impliedFormat":1},{"version":"633cb8c2c51c550a63bda0e3dec0ad5fa1346d1682111917ad4bc7005d496d8c","impliedFormat":1},{"version":"ca055d26105248f745ea6259b4c498ebeed18c9b772e7f2b3a16f50226ff9078","impliedFormat":1},{"version":"ea6b2badb951d6dfa24bb7d7eb733327e5f9a15fc994d6dc1c54b2c7a83b6a0b","impliedFormat":1},{"version":"03fdf8dba650d830388b9985750d770dd435f95634717f41cea814863a9ac98b","impliedFormat":1},{"version":"6fd08e3ef1568cd0dc735c9015f6765e25143a4a0331d004a29c51b50eec402a","impliedFormat":1},{"version":"2e988cd4d24edac4936449630581c79686c8adac10357eb0cdb410c24f47c7f0","impliedFormat":1},{"version":"b813f62a37886ed986b0f6f8c5bf323b3fcae32c1952b71d75741e74ea9353cf","impliedFormat":1},{"version":"44a1a722038365972b1b52841e1132785bf5d75839dbc6cc1339f2d36f8507a1","impliedFormat":1},{"version":"83fe1053701101ac6d25364696fea50d2ceb2f81d1456bc11e682a20aaeac52e","impliedFormat":1},{"version":"4f228cb2089a5a135a1a8cefe612d5aebcef8258f7dbe3b7c4dad4e26a81ec08","impliedFormat":1},{"version":"7870becb94cbc11d2d01b77c4422589adcba4d8e59f726246d40cd0d129784d8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f70b8328a15ca1d10b1436b691e134a49bc30dcf3183a69bfaa7ba77e1b78ecd","impliedFormat":1},{"version":"d9030fc0c412a31e7e13d189b9ad032b5177c20217add0f24fd3fff0cf272882","impliedFormat":99},{"version":"2be2227c3810dfd84e46674fd33b8d09a4a28ad9cb633ed536effd411665ea1e","impliedFormat":99},{"version":"7f9c8c4fd31e6e0f137ded52f026f97934abcc4624db1c9c8120b91a170798e0","impliedFormat":1},{"version":"957a44f864ab3c182edc747428e8eec1765257deee7fac86c1147eeac897d832","impliedFormat":1},{"version":"3feec212c0aeb91e5a6e62caaf9f128954590210f8c302910ea377c088f6b61a","impliedFormat":99},{"version":"d27eadfc7a0c340fbbb62294e70eb5cf27751e1dcf47ee688ca38dd64d15502c","impliedFormat":99},{"version":"86d818ada2f5f0cfffca153af94205b67ba50f8e36524a413d66652f34ef19af","impliedFormat":99},{"version":"40afd49a15d0bafef682b42664ff21c274e02dcc60052f2df85dd53c70d9394f","impliedFormat":99},{"version":"5a5b1dd91662e93efae28d985e0e44d10f6a7e3c2c2ae8abc29bcfc406cb5310","impliedFormat":99},{"version":"66d0a61b3b0df6c9c2eb09dbe26e3c2aef71d9043fed17cd56de6669cb706325","impliedFormat":99},{"version":"f6692c3a1847d846bc4b7a690ef2ba096b2ca56bea5818f073eb8193ce33b5e1","impliedFormat":99},{"version":"1e4d27cf43aa16d164e958a220fee3c225b9dd146b1912cbc12083263f157ca9","impliedFormat":99},{"version":"a46147f499d4246998d1e44b43beecd2ee04c0a330c35863eaeccc827a737fdf","impliedFormat":1},{"version":"390140c96dcaf0831d24b5408d19af017e3a8f150fed140791d976ac20dd2da7","impliedFormat":99},{"version":"886c87489e99cbe6af5b1d83f147b04f96a2ae499d4302de7f9e4478cb93ccca","impliedFormat":99},{"version":"13e7c1f8ddda39d034935e667f3a314ec8b89b8be18fbd4cd987ea4312b4221f","impliedFormat":99},{"version":"370a3bbb8117e32fd7ae37d318e28cf63251013fe015c5dd382599614a3d5d59","impliedFormat":99},{"version":"daf09fb2571ee9e9251b08237852ed26b67257cb7997358935608f63f9fd2ecb","impliedFormat":99},{"version":"768fd34f23de8dc5f5df6cd45f044bb4193105b5964e4ef734dbfc1a1f8e6223","impliedFormat":1},{"version":"dc18b19797fbc286f2bd51e14eca66fb46bd07c0c567cb40fc04e6e805533850","impliedFormat":99},{"version":"5903ab9ed38b4d4f878e507f76020f75b7fc2285515ebdb7596393ce196eee2f","impliedFormat":99},{"version":"58395463e3fd8b466d5801cd73027f82bbf12e3d90cb4b27538e61ee9ff3427c","impliedFormat":99},{"version":"4d4804f5da06e47254d253a07e82d400c55964ea097016753dbd4372ce0eaab0","impliedFormat":99},{"version":"cf76eeea2b4ec3fe26520cd129cfc32352d1ddb22b6d4ff0c6a709656a4b1b37","impliedFormat":1},{"version":"fea0cb28540b473977c722853998d39d28575fa12e31b3371fcf1f324e3a9fb7","impliedFormat":1},{"version":"ee4ee9bf6c6d276343e7f0bce3a5374800eb4ec6b2d7c70fab6ae3ef840d9777","impliedFormat":1},{"version":"571ba264349552a1111ac0d6a5ed580a41c390aac43a70546c3a7374c77faa71","impliedFormat":1},"06f5c2408e959ccebcbef2989bce4a528a531aeddb4f3c7fb2324c03a00b9b19"],"root":[89,107,[124,146],[1401,1421],[1425,1437],[1445,1448],1450,1451,[1453,1471],[1546,1548],1550,1551,[1566,1612],[2076,2081],2084,[2100,2104],[2186,2211],2226,2227,2229,2230,2239,2240,[2243,2462],2651],"options":{"allowImportingTsExtensions":true,"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[2460,1],[2459,2],[89,3],[92,4],[91,5],[1035,6],[1029,5],[1033,6],[1032,7],[1028,6],[1027,5],[1036,8],[1034,7],[1030,7],[1031,7],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[177,9],[178,9],[179,9],[180,9],[181,9],[182,9],[183,9],[184,9],[185,9],[186,9],[187,9],[188,9],[189,9],[190,9],[191,9],[192,9],[193,9],[194,9],[195,9],[196,9],[197,9],[198,9],[199,9],[200,9],[201,9],[202,9],[203,9],[204,9],[205,9],[206,9],[207,9],[208,9],[209,9],[210,9],[211,9],[212,9],[213,9],[214,9],[215,9],[216,9],[217,9],[218,9],[219,9],[220,9],[221,9],[222,9],[223,9],[224,9],[225,9],[226,9],[227,9],[228,9],[229,9],[230,9],[231,9],[232,9],[233,9],[234,9],[235,9],[236,9],[237,9],[238,9],[239,9],[240,9],[241,9],[242,9],[243,9],[244,9],[245,9],[246,9],[247,9],[248,9],[249,9],[250,9],[251,9],[252,9],[253,9],[254,9],[255,9],[256,9],[257,9],[258,9],[259,9],[260,9],[261,9],[262,9],[263,9],[264,9],[265,9],[266,9],[267,9],[268,9],[269,9],[270,9],[271,9],[272,9],[273,9],[274,9],[275,9],[276,9],[277,9],[278,9],[279,9],[280,9],[281,9],[282,9],[283,9],[284,9],[285,9],[286,9],[287,9],[288,9],[289,9],[290,9],[291,9],[292,9],[293,9],[294,9],[295,9],[296,9],[297,9],[298,9],[299,9],[300,9],[301,9],[302,9],[303,9],[304,9],[305,9],[306,9],[307,9],[459,10],[308,9],[309,9],[310,9],[311,9],[312,9],[313,9],[314,9],[315,9],[316,9],[317,9],[318,9],[319,9],[320,9],[321,9],[322,9],[323,9],[324,9],[325,9],[326,9],[327,9],[328,9],[329,9],[330,9],[331,9],[332,9],[333,9],[334,9],[335,9],[336,9],[337,9],[338,9],[339,9],[340,9],[341,9],[342,9],[343,9],[344,9],[345,9],[346,9],[347,9],[348,9],[349,9],[350,9],[351,9],[352,9],[353,9],[354,9],[355,9],[356,9],[357,9],[358,9],[359,9],[360,9],[361,9],[362,9],[363,9],[364,9],[365,9],[366,9],[367,9],[368,9],[369,9],[370,9],[371,9],[372,9],[373,9],[374,9],[375,9],[376,9],[377,9],[378,9],[379,9],[380,9],[381,9],[382,9],[383,9],[384,9],[385,9],[386,9],[387,9],[388,9],[389,9],[390,9],[391,9],[392,9],[393,9],[394,9],[395,9],[396,9],[397,9],[398,9],[399,9],[400,9],[401,9],[402,9],[403,9],[404,9],[405,9],[406,9],[407,9],[408,9],[409,9],[410,9],[411,9],[412,9],[413,9],[414,9],[415,9],[416,9],[417,9],[418,9],[419,9],[420,9],[421,9],[422,9],[423,9],[424,9],[425,9],[426,9],[427,9],[428,9],[429,9],[430,9],[431,9],[432,9],[433,9],[434,9],[435,9],[436,9],[437,9],[438,9],[439,9],[440,9],[441,9],[442,9],[443,9],[444,9],[445,9],[446,9],[447,9],[448,9],[449,9],[450,9],[451,9],[452,9],[453,9],[454,9],[455,9],[456,9],[457,9],[458,9],[460,11],[986,12],[988,13],[985,5],[987,5],[2241,9],[1931,14],[1927,15],[1914,5],[1930,16],[1923,17],[1921,18],[1920,18],[1919,17],[1916,18],[1917,17],[1925,19],[1918,18],[1915,17],[1922,18],[1928,20],[1929,21],[1924,22],[1926,18],[826,23],[822,24],[809,5],[825,25],[818,26],[816,27],[815,27],[814,26],[811,27],[812,26],[820,28],[813,27],[810,26],[817,27],[823,29],[824,30],[819,31],[821,27],[2098,32],[2095,33],[2094,34],[2085,5],[2086,5],[2088,35],[2087,5],[2097,36],[2089,34],[2090,37],[2093,38],[2091,5],[2092,34],[2096,5],[1639,39],[1613,9],[1614,40],[1615,9],[1616,9],[1617,41],[2017,42],[1635,5],[1638,5],[1636,43],[1991,44],[1990,45],[1989,5],[1973,46],[1972,9],[1975,47],[1976,48],[1974,49],[1978,50],[1977,5],[1981,51],[1982,52],[1980,51],[1979,5],[2011,53],[2010,9],[1983,9],[2013,54],[1993,55],[1992,9],[1984,5],[1986,56],[1985,5],[1988,57],[1987,49],[1995,9],[2009,58],[2008,59],[2007,9],[1994,9],[1998,9],[2002,60],[2000,61],[2001,9],[1999,9],[1997,62],[1996,5],[2004,63],[2003,5],[2006,64],[2005,9],[1955,5],[2015,65],[2014,9],[2016,66],[1964,67],[1963,68],[1962,69],[1968,70],[1965,9],[1966,71],[1967,71],[1969,72],[1970,73],[1961,74],[1971,75],[2012,5],[1825,76],[1760,77],[1761,78],[1762,79],[1763,80],[1764,81],[1765,82],[1766,83],[1767,84],[1768,85],[1769,86],[1770,87],[1771,88],[1772,89],[1773,90],[1774,91],[1775,92],[1815,93],[1776,94],[1777,95],[1778,96],[1779,97],[1780,98],[1781,99],[1782,100],[1783,101],[1784,102],[1785,103],[1786,104],[1787,105],[1788,106],[1789,107],[1790,108],[1791,109],[1792,110],[1793,111],[1794,112],[1795,113],[1796,114],[1797,115],[1798,116],[1799,117],[1800,118],[1801,119],[1802,120],[1803,121],[1804,122],[1805,123],[1806,124],[1807,125],[1808,126],[1809,127],[1810,128],[1811,129],[1812,130],[1813,131],[1814,132],[1824,133],[1749,5],[1755,134],[1757,135],[1759,136],[1816,137],[1817,136],[1818,136],[1819,138],[1823,139],[1820,136],[1821,136],[1822,136],[1826,140],[1827,141],[1828,142],[1829,142],[1830,143],[1831,142],[1832,142],[1833,144],[1834,142],[1835,145],[1836,145],[1837,145],[1838,146],[1839,145],[1840,147],[1841,142],[1842,145],[1843,143],[1844,146],[1845,142],[1846,142],[1847,143],[1848,146],[1849,146],[1850,143],[1851,142],[1852,148],[1853,149],[1854,143],[1855,143],[1856,145],[1857,142],[1858,142],[1859,143],[1860,142],[1877,150],[1861,142],[1862,141],[1863,141],[1864,141],[1865,145],[1866,145],[1867,146],[1868,146],[1869,143],[1870,141],[1871,141],[1872,151],[1873,152],[1874,142],[1875,141],[1876,153],[1913,154],[1751,76],[1883,155],[1878,156],[1879,156],[1880,156],[1881,157],[1882,158],[1754,159],[1753,159],[1758,148],[1884,160],[1752,76],[1888,161],[1885,162],[1886,162],[1887,163],[1889,141],[1756,164],[1890,145],[1891,146],[1892,5],[1893,5],[1894,5],[1895,5],[1896,5],[1897,5],[1912,165],[1898,5],[1899,5],[1900,5],[1901,5],[1902,5],[1903,5],[1904,5],[1905,5],[1906,5],[1907,5],[1908,5],[1909,5],[1910,5],[1911,5],[1933,166],[1934,167],[1935,168],[1939,166],[1940,169],[1941,170],[1747,171],[1746,172],[1750,173],[1748,174],[1936,175],[1937,176],[1938,177],[1942,178],[1948,179],[1943,9],[1944,9],[1945,180],[1946,181],[1947,180],[2225,182],[2222,183],[2221,184],[2212,5],[2213,5],[2215,185],[2214,5],[2224,186],[2216,184],[2217,187],[2220,188],[2218,5],[2219,184],[2223,5],[2567,5],[2148,5],[471,189],[472,189],[473,189],[474,189],[475,189],[476,189],[477,189],[478,189],[479,189],[480,189],[481,189],[482,189],[483,189],[484,189],[485,189],[486,189],[487,189],[488,189],[489,189],[490,189],[491,189],[492,189],[493,189],[494,189],[495,189],[496,189],[497,189],[498,189],[499,189],[500,189],[501,189],[502,189],[503,189],[504,189],[505,189],[506,189],[507,189],[508,189],[509,189],[510,189],[511,189],[512,189],[513,189],[514,189],[515,189],[516,189],[517,189],[518,189],[519,189],[520,189],[521,189],[522,189],[523,189],[524,189],[525,189],[526,189],[527,189],[528,189],[529,189],[530,189],[531,189],[532,189],[533,189],[534,189],[535,189],[536,189],[537,189],[538,189],[539,189],[540,189],[541,189],[542,189],[543,189],[544,189],[545,189],[546,189],[547,189],[548,189],[549,189],[550,189],[551,189],[552,189],[553,189],[554,189],[555,189],[556,189],[557,189],[558,189],[559,189],[560,189],[561,189],[562,189],[563,189],[564,189],[565,189],[566,189],[567,189],[775,190],[568,189],[569,189],[570,189],[571,189],[572,189],[573,189],[574,189],[575,189],[576,189],[577,189],[578,189],[579,189],[580,189],[581,189],[582,189],[583,189],[584,189],[585,189],[586,189],[587,189],[588,189],[589,189],[590,189],[591,189],[592,189],[593,189],[594,189],[595,189],[596,189],[597,189],[598,189],[599,189],[600,189],[601,189],[602,189],[603,189],[604,189],[605,189],[606,189],[607,189],[608,189],[609,189],[610,189],[611,189],[612,189],[613,189],[614,189],[615,189],[616,189],[617,189],[618,189],[619,189],[620,189],[621,189],[622,189],[623,189],[624,189],[625,189],[626,189],[627,189],[628,189],[629,189],[630,189],[631,189],[632,189],[633,189],[634,189],[635,189],[636,189],[637,189],[638,189],[639,189],[640,189],[641,189],[642,189],[643,189],[644,189],[645,189],[646,189],[647,189],[648,189],[649,189],[650,189],[651,189],[652,189],[653,189],[654,189],[655,189],[656,189],[657,189],[658,189],[659,189],[660,189],[661,189],[662,189],[663,189],[664,189],[665,189],[666,189],[667,189],[668,189],[669,189],[670,189],[671,189],[672,189],[673,189],[674,189],[675,189],[676,189],[677,189],[678,189],[679,189],[680,189],[681,189],[682,189],[683,189],[684,189],[685,189],[686,189],[687,189],[688,189],[689,189],[690,189],[691,189],[692,189],[693,189],[694,189],[695,189],[696,189],[697,189],[698,189],[699,189],[700,189],[701,189],[702,189],[703,189],[704,189],[705,189],[706,189],[707,189],[708,189],[709,189],[710,189],[711,189],[712,189],[713,189],[714,189],[715,189],[716,189],[717,189],[718,189],[719,189],[720,189],[721,189],[722,189],[723,189],[724,189],[725,189],[726,189],[727,189],[728,189],[729,189],[730,189],[731,189],[732,189],[733,189],[734,189],[735,189],[736,189],[737,189],[738,189],[739,189],[740,189],[741,189],[742,189],[743,189],[744,189],[745,189],[746,189],[747,189],[748,189],[749,189],[750,189],[751,189],[752,189],[753,189],[754,189],[755,189],[756,189],[757,189],[758,189],[759,189],[760,189],[761,189],[762,189],[763,189],[764,189],[765,189],[766,189],[767,189],[768,189],[769,189],[770,189],[771,189],[772,189],[773,189],[774,189],[470,191],[2513,192],[2514,192],[2515,193],[2468,194],[2516,195],[2517,196],[2518,197],[2463,5],[2466,198],[2464,5],[2465,5],[2519,199],[2520,200],[2521,201],[2522,202],[2523,203],[2524,204],[2525,204],[2526,205],[2527,206],[2528,207],[2529,208],[2469,5],[2467,5],[2530,209],[2531,210],[2532,211],[2566,212],[2533,213],[2534,5],[2535,214],[2536,215],[2537,216],[2538,217],[2539,218],[2540,219],[2541,220],[2542,221],[2543,222],[2544,222],[2545,223],[2546,5],[2547,224],[2548,225],[2550,226],[2549,227],[2551,228],[2552,229],[2553,230],[2554,231],[2555,232],[2556,233],[2557,234],[2558,235],[2559,236],[2560,237],[2561,238],[2562,239],[2563,240],[2470,5],[2471,5],[2472,5],[2510,241],[2511,5],[2512,5],[2564,242],[2565,243],[2648,244],[2174,245],[2173,245],[2632,246],[2629,247],[2631,248],[2630,249],[93,250],[94,251],[2627,252],[95,253],[96,254],[98,255],[90,5],[779,256],[105,257],[778,9],[104,9],[2152,258],[2166,259],[2167,260],[2168,261],[2172,262],[2153,263],[2179,264],[2180,265],[2171,266],[2157,267],[2161,268],[2151,269],[2159,270],[2160,271],[2158,266],[2156,269],[2154,272],[2170,273],[2155,274],[2176,275],[2177,276],[2175,277],[2150,278],[2169,5],[2181,279],[2183,280],[2184,281],[2109,5],[2107,5],[2108,3],[2105,5],[2182,5],[2106,5],[1145,282],[1144,5],[110,5],[1452,5],[97,5],[869,5],[868,283],[867,5],[2149,5],[2232,284],[2234,285],[1441,286],[2236,287],[1443,288],[2238,289],[2231,290],[2233,290],[1440,290],[1442,5],[2235,290],[2237,290],[1439,5],[795,291],[794,292],[793,293],[799,294],[796,295],[797,296],[798,297],[804,298],[802,9],[803,299],[801,300],[800,301],[1392,302],[1391,303],[1390,304],[843,305],[839,306],[841,307],[833,308],[840,309],[834,310],[842,311],[847,312],[844,9],[845,313],[846,314],[851,315],[848,316],[849,317],[850,318],[858,319],[853,320],[856,321],[852,295],[855,322],[854,322],[857,323],[865,324],[862,325],[863,326],[859,327],[861,328],[860,329],[864,330],[874,331],[866,316],[870,332],[871,333],[872,334],[873,335],[878,336],[875,316],[876,337],[877,338],[885,339],[880,316],[883,340],[879,316],[882,341],[881,340],[884,342],[892,343],[889,344],[890,345],[891,346],[888,347],[887,348],[886,349],[1004,350],[1001,351],[1002,352],[1003,353],[1007,354],[1006,355],[1005,356],[1014,357],[1013,358],[1011,359],[1010,360],[1009,361],[1008,358],[1012,362],[1017,363],[1016,364],[1015,365],[1026,366],[1025,9],[1024,367],[1019,368],[1022,369],[1018,370],[1021,371],[1020,371],[1023,372],[1040,373],[1039,374],[1038,375],[1037,376],[1050,377],[1049,378],[1048,379],[1090,380],[1086,381],[1087,382],[1088,383],[1089,384],[1096,385],[1092,9],[1091,9],[1093,9],[1094,9],[1095,9],[1099,386],[1098,387],[1097,388],[1113,389],[1108,390],[1111,391],[1112,392],[1110,393],[1109,394],[1117,395],[1115,396],[1116,397],[1114,398],[1121,399],[1120,316],[1119,400],[1118,401],[1056,402],[1055,390],[1051,403],[1053,404],[1052,405],[1054,405],[1124,406],[1123,407],[1122,408],[1127,409],[1126,410],[1125,411],[1137,412],[1135,413],[1136,9],[1131,414],[1132,415],[1133,416],[1134,417],[1141,418],[1138,316],[1139,419],[1140,420],[1154,421],[1148,422],[1147,423],[1152,424],[1143,425],[1151,426],[1153,427],[1149,428],[1150,422],[1146,429],[1142,430],[1130,431],[1129,432],[1128,433],[1157,434],[1156,435],[1155,436],[1160,437],[1159,438],[1158,439],[1393,440],[1374,441],[1373,9],[1163,442],[1162,443],[1161,444],[1167,445],[1164,446],[1165,447],[1166,448],[808,449],[805,450],[806,451],[807,452],[1062,453],[1061,454],[1060,455],[1379,456],[1378,457],[1376,458],[1377,457],[1375,459],[1366,460],[1363,461],[1365,462],[1364,463],[1362,5],[1177,464],[1175,465],[1171,9],[1174,466],[1170,467],[1173,468],[1168,469],[1172,316],[1176,5],[1169,470],[1382,471],[1380,472],[1381,473],[1059,474],[1058,475],[1057,476],[1385,477],[1384,478],[1383,479],[1179,480],[1178,481],[1182,482],[1181,483],[1180,484],[1185,485],[1184,9],[1183,316],[1188,486],[1187,487],[1186,488],[1389,489],[1388,9],[1387,490],[1386,491],[838,492],[835,493],[830,9],[827,494],[837,495],[836,496],[829,497],[828,498],[832,499],[831,500],[1191,501],[1190,502],[1189,503],[1199,504],[1198,505],[1195,506],[1194,507],[1197,508],[1196,505],[1193,509],[1192,510],[1202,511],[1201,512],[1200,513],[1205,514],[1204,515],[1203,516],[1209,517],[1208,9],[1207,518],[1206,519],[1076,520],[1075,9],[1071,521],[1070,522],[1073,523],[1072,524],[1074,524],[1361,525],[1360,526],[1359,527],[1358,5],[1234,528],[1225,529],[1221,530],[1219,5],[1224,531],[1222,532],[1223,533],[1233,534],[1232,9],[1226,316],[1231,535],[1229,536],[1228,537],[1230,538],[1227,539],[1239,540],[1238,541],[1237,542],[1236,543],[1235,544],[1245,545],[1243,546],[1244,547],[1241,316],[1242,548],[1240,549],[1249,550],[1247,9],[1246,551],[1248,552],[1372,553],[1371,554],[1370,555],[1369,556],[1368,557],[1367,9],[1252,558],[1251,559],[1250,560],[1258,561],[1256,562],[1255,563],[1254,564],[1253,565],[1257,5],[1261,566],[1260,567],[1259,568],[1294,569],[1284,9],[1273,570],[1264,571],[1293,572],[1274,573],[1281,574],[1276,575],[1271,576],[1279,577],[1282,578],[1272,579],[1280,580],[1290,581],[1289,582],[1278,583],[1287,584],[1286,585],[1269,586],[1288,587],[1262,5],[1266,588],[1275,589],[1270,590],[1277,570],[1285,5],[1292,591],[1265,592],[1268,593],[1283,594],[1267,595],[1263,596],[1291,597],[1085,598],[1081,599],[1064,600],[1063,601],[1079,602],[1069,602],[1083,603],[1080,604],[1065,605],[1066,606],[1082,607],[1067,608],[1084,609],[1068,610],[1302,611],[1301,612],[1298,613],[1297,614],[1299,615],[1296,616],[1295,617],[1300,618],[1000,619],[999,620],[998,621],[1305,622],[1303,623],[1304,624],[1107,625],[1101,626],[1100,627],[1104,628],[1105,629],[1102,630],[1106,631],[1103,632],[1308,633],[1307,634],[1306,635],[1313,636],[1311,637],[1310,638],[1309,316],[1312,639],[1047,640],[1046,641],[1043,642],[1042,643],[1045,644],[1044,645],[1041,646],[1357,647],[1351,648],[1355,649],[1356,650],[1354,651],[1353,652],[1352,653],[1319,654],[1316,655],[1314,656],[1318,657],[1317,656],[1331,658],[1329,659],[1330,660],[1336,661],[1335,662],[1334,663],[1333,664],[1332,665],[1328,666],[1326,667],[1323,668],[1322,669],[1320,670],[1327,5],[1324,671],[1321,672],[1325,673],[1347,674],[1337,675],[1346,9],[1341,676],[1340,677],[1345,678],[1344,679],[1343,680],[1342,681],[1339,682],[1338,683],[1220,684],[1217,685],[1218,686],[1213,687],[1214,688],[1212,688],[1210,5],[1216,9],[1215,687],[1211,689],[1350,690],[1349,691],[1348,692],[147,5],[152,5],[148,5],[149,5],[153,5],[150,5],[151,5],[1394,693],[1395,9],[1398,694],[1078,695],[1396,9],[1397,9],[997,696],[996,9],[893,9],[894,9],[994,9],[990,9],[982,316],[895,697],[896,9],[995,316],[979,5],[989,698],[993,459],[897,9],[983,9],[978,459],[981,9],[965,699],[967,700],[968,9],[969,316],[966,9],[991,9],[980,9],[972,494],[970,9],[971,9],[973,5],[992,623],[974,9],[975,9],[976,5],[977,5],[984,9],[1400,701],[964,702],[899,5],[900,5],[901,5],[902,5],[903,5],[904,5],[905,5],[906,5],[907,5],[908,5],[909,5],[910,5],[898,5],[911,5],[912,5],[913,5],[914,5],[915,5],[916,5],[917,5],[918,5],[919,5],[920,5],[921,5],[922,5],[923,5],[924,5],[925,5],[926,5],[927,5],[928,5],[929,5],[930,5],[931,5],[932,5],[933,5],[934,5],[935,5],[936,5],[937,5],[938,5],[939,5],[940,5],[941,5],[942,5],[943,5],[944,5],[945,5],[946,5],[947,5],[948,5],[949,5],[950,5],[951,5],[952,5],[953,5],[954,5],[955,5],[956,5],[957,5],[958,5],[959,5],[960,5],[106,5],[962,5],[963,5],[961,5],[1399,703],[777,704],[780,697],[158,5],[163,5],[159,5],[164,705],[160,5],[161,5],[162,9],[790,5],[781,5],[782,253],[783,5],[792,706],[791,5],[784,707],[785,5],[786,5],[787,253],[789,5],[788,253],[154,708],[165,5],[461,709],[469,710],[463,711],[468,712],[156,713],[157,714],[155,5],[464,9],[465,715],[462,9],[466,716],[467,9],[2572,5],[2242,717],[1449,5],[1473,718],[1474,719],[1472,5],[1528,720],[1480,721],[1482,722],[1475,718],[1529,723],[1481,724],[1486,725],[1487,724],[1488,726],[1489,724],[1490,727],[1491,726],[1492,724],[1493,724],[1525,728],[1520,729],[1521,724],[1522,724],[1494,724],[1495,724],[1523,724],[1496,724],[1516,724],[1519,724],[1518,724],[1517,724],[1497,724],[1498,724],[1499,725],[1500,724],[1501,724],[1514,724],[1503,724],[1502,724],[1526,724],[1505,724],[1524,724],[1504,724],[1515,724],[1507,728],[1508,724],[1510,726],[1509,724],[1511,724],[1527,724],[1512,724],[1513,724],[1478,730],[1477,5],[1483,731],[1485,732],[1479,5],[1484,733],[1506,733],[1476,734],[1531,735],[1538,736],[1539,736],[1541,737],[1540,736],[1530,738],[1544,739],[1533,740],[1535,741],[1543,742],[1536,743],[1534,744],[1542,745],[1537,746],[1532,747],[2178,5],[1960,748],[1959,749],[1956,5],[1957,750],[1958,751],[2600,5],[2636,5],[1545,5],[776,752],[2625,5],[2633,5],[1077,5],[1741,5],[109,753],[2589,754],[2587,755],[2588,756],[2576,757],[2577,755],[2584,758],[2575,759],[2580,760],[2590,5],[2581,761],[2586,762],[2592,763],[2591,764],[2574,765],[2582,766],[2583,767],[2578,768],[2585,754],[2579,769],[1742,770],[1745,771],[1743,171],[1744,772],[2569,773],[2568,774],[2613,775],[2594,5],[2614,776],[2596,777],[2621,778],[2615,5],[2617,779],[2618,779],[2619,780],[2616,5],[2620,781],[2599,782],[2597,5],[2598,783],[2612,784],[2595,5],[2610,785],[2601,786],[2602,787],[2603,787],[2604,786],[2611,788],[2605,787],[2606,785],[2607,786],[2608,787],[2609,786],[2163,789],[2162,790],[2165,791],[2164,792],[2110,790],[2129,793],[2122,5],[2113,794],[2111,790],[2114,790],[2112,795],[2115,790],[2117,790],[2116,790],[2119,790],[2118,790],[2121,790],[2120,790],[2123,796],[2124,790],[2128,797],[2125,798],[2126,790],[2127,790],[2145,799],[2131,799],[2139,799],[2130,5],[2147,800],[2141,801],[2143,5],[2146,802],[2134,803],[2135,803],[2137,803],[2133,804],[2140,805],[2136,803],[2132,803],[2142,799],[2144,806],[2138,807],[2573,5],[2637,808],[1932,809],[1565,810],[1552,5],[1562,5],[1558,5],[1559,5],[1553,5],[1563,5],[1564,5],[1561,5],[1557,5],[1556,5],[1560,811],[1554,5],[1555,5],[1626,812],[1625,9],[1671,9],[1620,9],[1621,5],[1622,813],[1690,9],[1691,814],[1692,9],[1694,815],[1693,9],[1627,9],[1695,9],[1696,9],[1724,816],[1725,817],[1720,9],[1697,818],[1698,818],[1700,819],[1699,820],[1701,9],[1702,818],[1726,9],[1728,821],[1704,822],[1703,9],[1715,9],[1716,818],[1717,818],[1718,818],[1729,816],[1705,9],[1633,823],[1630,9],[1631,824],[1632,5],[1624,825],[1623,5],[1672,9],[1719,9],[1727,826],[1643,827],[1641,828],[1642,829],[1670,830],[1722,5],[1723,831],[1708,832],[1675,833],[1676,834],[1677,820],[1678,835],[1730,9],[1731,836],[1679,820],[1680,837],[1681,838],[1732,820],[1733,839],[1734,840],[1735,841],[1668,842],[1669,843],[1709,820],[1710,844],[1736,845],[1737,846],[1649,9],[1682,820],[1684,847],[1683,820],[1685,848],[1687,849],[1619,850],[1739,851],[1738,852],[1950,853],[1949,854],[1740,5],[1952,855],[1951,826],[1711,856],[1712,857],[1629,858],[1628,9],[1689,859],[1688,820],[1714,860],[1713,861],[1953,862],[1954,863],[1634,864],[1674,865],[1673,866],[1706,867],[1721,868],[1707,5],[1655,830],[1661,5],[1660,869],[1664,5],[1648,5],[1650,845],[1658,870],[1659,5],[1646,871],[1647,872],[1637,5],[1644,873],[1667,874],[1652,875],[1618,5],[1640,876],[1657,5],[1663,877],[1662,9],[1645,826],[1656,878],[1653,5],[1651,5],[1666,879],[1654,830],[1665,5],[1686,5],[80,5],[81,5],[15,5],[13,5],[14,5],[19,5],[18,5],[2,5],[20,5],[21,5],[22,5],[23,5],[24,5],[25,5],[26,5],[27,5],[3,5],[28,5],[29,5],[4,5],[30,5],[34,5],[31,5],[32,5],[33,5],[35,5],[36,5],[37,5],[5,5],[38,5],[39,5],[40,5],[41,5],[6,5],[45,5],[42,5],[43,5],[44,5],[46,5],[7,5],[47,5],[52,5],[53,5],[48,5],[49,5],[50,5],[51,5],[8,5],[57,5],[54,5],[55,5],[56,5],[58,5],[9,5],[59,5],[60,5],[61,5],[63,5],[62,5],[64,5],[65,5],[10,5],[66,5],[67,5],[68,5],[11,5],[69,5],[70,5],[71,5],[72,5],[73,5],[1,5],[74,5],[75,5],[12,5],[78,5],[77,5],[82,5],[76,5],[79,5],[17,5],[16,5],[2626,5],[2488,880],[2498,881],[2487,880],[2508,882],[2479,883],[2478,884],[2507,244],[2501,885],[2506,886],[2481,887],[2495,888],[2480,889],[2504,890],[2476,891],[2475,244],[2505,892],[2477,893],[2482,894],[2483,5],[2486,894],[2473,5],[2509,895],[2499,896],[2490,897],[2491,898],[2493,899],[2489,900],[2492,901],[2502,244],[2484,902],[2485,903],[2494,904],[2474,905],[2497,896],[2496,894],[2500,5],[2503,906],[2638,907],[2634,908],[2635,909],[2640,910],[2641,911],[2639,5],[2645,912],[2644,913],[2646,914],[2643,915],[2647,916],[2649,917],[2650,916],[88,918],[2624,919],[2571,920],[2570,921],[84,921],[83,5],[85,922],[86,5],[87,923],[2622,924],[2593,5],[2623,925],[2228,5],[1315,5],[1438,9],[108,9],[1444,926],[102,9],[103,927],[2628,249],[99,928],[100,929],[2185,9],[2642,5],[101,572],[2099,39],[2083,39],[2082,5],[2050,930],[2049,931],[2048,5],[2032,932],[2031,9],[2034,933],[2035,934],[2033,935],[2037,936],[2036,5],[2040,937],[2041,938],[2039,937],[2038,5],[2070,939],[2069,9],[2042,9],[2072,940],[2052,941],[2051,9],[2043,5],[2045,942],[2044,5],[2047,943],[2046,935],[2054,9],[2068,944],[2067,945],[2066,9],[2053,9],[2057,9],[2061,946],[2059,947],[2060,9],[2058,9],[2056,948],[2055,5],[2063,949],[2062,5],[2065,950],[2064,9],[2018,5],[2074,951],[2073,9],[2075,952],[2027,953],[2026,954],[2025,955],[2028,956],[2029,957],[2024,958],[2030,959],[2071,5],[2023,960],[2022,961],[2019,5],[2020,962],[2021,963],[112,964],[113,965],[111,966],[114,967],[115,968],[116,969],[117,970],[118,971],[119,972],[120,973],[121,974],[122,975],[123,976],[1424,5],[1423,977],[1422,5],[1549,978],[1579,979],[1597,979],[1587,979],[1588,979],[1598,979],[1599,979],[1435,979],[1600,979],[1581,979],[1589,979],[1427,979],[1425,979],[1431,979],[1453,980],[1590,979],[1550,979],[1467,979],[1591,979],[1434,979],[1601,979],[1602,979],[1461,979],[1603,979],[1604,979],[1605,979],[1592,979],[1593,979],[1594,979],[1595,979],[1606,979],[1607,979],[1608,979],[1609,979],[146,979],[1610,979],[1611,979],[1596,979],[1433,979],[1612,979],[127,981],[1583,982],[2077,983],[2078,984],[2100,985],[1582,986],[2101,987],[2102,988],[2103,989],[2104,988],[2192,990],[2193,991],[2194,988],[2195,992],[2197,993],[2198,994],[2196,995],[2199,996],[2201,997],[2202,998],[2200,999],[2205,1000],[2203,998],[2206,1001],[2204,998],[2208,1002],[2187,1003],[2188,1004],[2190,1005],[2191,1006],[2189,988],[1468,1007],[2209,1008],[2210,988],[2211,987],[2186,1009],[1471,1010],[1470,999],[2076,1011],[1546,1012],[1455,1013],[2226,1014],[124,999],[134,999],[107,999],[128,999],[125,999],[126,999],[2227,1015],[2207,999],[1415,572],[143,1016],[1436,572],[139,1017],[2229,1018],[2230,1019],[1585,572],[2239,1020],[2240,1021],[2243,1022],[2245,1023],[2247,1024],[2248,572],[1416,1025],[140,1026],[141,1025],[142,987],[1403,1027],[144,1028],[145,1025],[1402,1029],[1404,1030],[137,1031],[138,1032],[1410,1033],[1405,1034],[1407,1035],[1408,1036],[1409,1037],[1411,1038],[1586,1039],[1584,1040],[2246,1017],[2249,1041],[1573,1042],[1572,1043],[2244,1044],[1580,1045],[130,1046],[136,1047],[133,1048],[132,1049],[1446,999],[131,999],[2079,999],[2080,999],[2250,999],[1469,999],[1568,572],[2251,999],[1401,1050],[2252,572],[1457,1051],[2084,999],[1454,1052],[1437,1053],[1576,1054],[1574,1055],[1578,1056],[1575,1057],[135,1058],[2081,999],[1406,1059],[129,999],[1577,999],[1419,999],[1420,1060],[1418,1061],[1417,1062],[2253,1063],[2254,1064],[2255,1065],[2256,1066],[2257,1067],[2258,1068],[2259,1069],[2260,1070],[2261,1071],[2262,1072],[2263,1073],[2269,1074],[2267,1075],[2266,1076],[2265,1077],[2268,1078],[2264,1079],[2271,1080],[2270,1081],[2272,1080],[2273,1080],[2274,1082],[2275,1083],[2276,1084],[2277,1085],[2278,1086],[2279,991],[2280,1085],[2281,1087],[2282,1088],[2283,1089],[2284,1090],[2290,1091],[1464,999],[2287,1091],[2288,1092],[1465,1093],[2285,1094],[2286,1095],[2289,1096],[2291,1097],[2292,1098],[2300,1099],[2296,1100],[2301,1101],[2294,988],[1429,1102],[2302,1103],[2295,1099],[2297,1104],[2298,1105],[2304,1106],[2305,1104],[2306,1107],[2303,1108],[2308,1109],[2309,1110],[2310,1111],[2307,999],[2312,1112],[2313,1113],[2314,1114],[2311,999],[1428,999],[2316,1115],[2317,1116],[2318,1117],[2315,999],[2320,1118],[2321,1119],[2322,1120],[2319,999],[2324,1121],[2325,1122],[2326,1123],[2323,999],[2328,1124],[2329,1125],[2330,1126],[2327,999],[2332,1127],[2333,988],[2334,1128],[2331,999],[2336,1129],[2337,1130],[2335,999],[2339,1131],[2340,988],[2341,1132],[2338,999],[2343,1133],[2344,1134],[2345,1135],[2342,999],[2347,1136],[2348,988],[2349,1137],[2346,999],[2350,1138],[2293,1139],[1430,1140],[2352,1141],[2351,987],[2353,1142],[2299,1143],[2355,1144],[2358,1145],[2356,1146],[2357,1147],[2354,1148],[2359,1149],[2360,1150],[1426,1151],[2361,1152],[2362,1149],[1414,1153],[1413,1153],[1412,1154],[2363,1155],[1432,1156],[2364,1157],[2365,1158],[2366,1159],[2374,1160],[2375,1161],[2367,1162],[2372,1163],[2369,1164],[2368,1165],[2370,1166],[2371,1167],[2373,1168],[2376,1169],[2377,1169],[2378,1170],[2379,1171],[2380,1172],[2382,1088],[2381,1173],[2383,1174],[2384,1169],[2385,999],[2386,1175],[2387,1176],[2388,988],[2389,1177],[2390,1178],[2391,1179],[2392,1180],[2393,1181],[2394,1182],[2395,1183],[2396,1184],[2397,1185],[1462,1186],[2398,1187],[2399,1188],[2400,1189],[2401,1190],[2402,1191],[2403,1192],[2404,1193],[2405,1194],[2407,1195],[2406,5],[2408,1196],[2409,1197],[2410,1196],[2411,1198],[2412,1199],[2413,1200],[2414,1201],[2415,1202],[2416,1203],[2417,1204],[2418,1205],[2419,1206],[2420,1207],[2421,1208],[2422,1209],[2423,1210],[2424,1211],[2425,1212],[2426,1213],[2427,1214],[2428,1215],[2429,1216],[2430,1217],[2431,1218],[2432,1219],[2433,1220],[2437,1221],[2436,1222],[2439,1223],[2434,988],[2435,1224],[2438,1222],[2442,1225],[2440,1226],[2441,1227],[2443,1228],[1551,1229],[1460,1230],[1459,1231],[1566,1232],[2445,1233],[1456,1234],[1448,1235],[1447,1236],[1445,1237],[2446,1091],[2447,1091],[1458,1238],[1570,1239],[1569,1240],[1466,1241],[1451,1242],[1450,1243],[2448,1244],[1463,1091],[1548,1245],[1547,1246],[2444,1247],[1567,1248],[1571,1249],[2449,1250],[2450,988],[2451,1251],[2452,988],[2453,988],[2454,988],[2455,988],[2456,1252],[2457,1253],[1421,1254],[2458,1255],[2461,5],[2462,1256],[2651,1257]],"semanticDiagnosticsPerFile":[[1432,[{"start":1799,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type '\"\" | \"danger\" | \"info\"' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type '\"\"' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]},{"start":7767,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[1450,[{"start":4562,"length":16,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4647,"length":12,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4725,"length":9,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4800,"length":9,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":5010,"length":19,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554}]],[2078,[{"start":1300,"length":5,"messageText":"'attrs' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.","category":1,"code":7022}]],[2079,[{"start":10172,"length":13,"code":2339,"category":1,"messageText":"Property 'captureStream' does not exist on type 'HTMLVideoElement'."}]],[2192,[{"start":888,"length":28,"code":7016,"category":1,"messageText":{"messageText":"Could not find a declaration file for module '@wangeditor/editor-for-vue'. 'D:/web/zyt/admin/node_modules/.pnpm/@wangeditor+editor-for-vue@_d49ef1161b4f4b880c450fdbfe3a0001/node_modules/@wangeditor/editor-for-vue/dist/index.esm.js' implicitly has an 'any' type.","category":1,"code":7016,"next":[{"info":{"moduleReference":"@wangeditor/editor-for-vue","mode":99}}]}}]],[2259,[{"start":8667,"length":6,"code":2339,"category":1,"messageText":"Property 'remark' does not exist on type 'never'."}]],[2286,[{"start":96679,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ name: any; code: any; children: any; }[]' is not assignable to type 'never[]'.","category":1,"code":2322,"next":[{"messageText":"Type '{ name: any; code: any; children: any; }' is not assignable to type 'never'.","category":1,"code":2322}]}},{"start":96947,"length":989,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":97951,"length":471,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":98437,"length":471,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":98923,"length":803,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":107436,"length":17,"messageText":"Cannot find name 'searchPatientsAPI'.","category":1,"code":2304},{"start":60888,"length":6,"code":2322,"category":1,"messageText":{"messageText":"Type '(value: string[]) => void' is not assignable to type '(value: CascaderValue | null | undefined) => any'.","category":1,"code":2322,"next":[{"messageText":"Types of parameters 'value' and 'value' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'CascaderValue | null | undefined' is not assignable to type 'string[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'undefined' is not assignable to type 'string[]'.","category":1,"code":2322}]}]}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.vue.d.ts","start":2156,"length":8,"messageText":"The expected type comes from property 'onChange' which is declared here on type '__VLS_NormalizeComponentEvent; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]},{"start":51818,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":64632,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":101188,"length":1,"messageText":"Parameter 'r' implicitly has an 'any' type.","category":1,"code":7006}]],[2292,[{"start":153496,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: any; label: any; code: any; children: any; }[]' is not assignable to type 'never[]'.","category":1,"code":2322,"next":[{"messageText":"Type '{ value: any; label: any; code: any; children: any; }' is not assignable to type 'never'.","category":1,"code":2322}]}},{"start":217157,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./src/api/tcm.ts","start":16728,"length":15,"messageText":"The expected type comes from property 'medication_days' which is declared here on type '{ id: number; dose_count?: number | undefined; medication_days?: number | undefined; }'","category":3,"code":6500}]},{"start":14551,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type 'unknown[]' is not assignable to type 'TreeNodeData[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'unknown' is not assignable to type 'TreeNodeData'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":27789,"length":4,"messageText":"The expected type comes from property 'data' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]},{"start":30726,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":213900,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":31214,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":238033,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":31670,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":213900,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":32150,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":238914,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":32596,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":222042,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33061,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; diagnosis_id?: number | undefined; pay_order_ids?: number[] | undefined; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; diagnosis_id?: number | undefined; pay_order_ids?: number[] | undefined; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":234641,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33521,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":237664,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33975,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":229818,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":92405,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":104708,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":140602,"length":1,"messageText":"Parameter 'r' implicitly has an 'any' type.","category":1,"code":7006}]],[2304,[{"start":325,"length":8,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ modelValue: any; }' is not assignable to parameter of type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Record<...>'.","category":1,"code":2345,"next":[{"messageText":"Property 'itemData' is missing in type '{ modelValue: any; }' but required in type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'.","category":1,"code":2741,"canonicalHead":{"code":2322,"messageText":"Type '{ modelValue: any; }' is not assignable to type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'."}}]},"relatedInformation":[{"file":"./src/views/decoration/component/tabbar/pc/menu-set.vue","start":4006,"length":8,"messageText":"'itemData' is declared here.","category":3,"code":2728}]},{"start":454,"length":8,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ modelValue: any; }' is not assignable to parameter of type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Record<...>'.","category":1,"code":2345,"next":[{"messageText":"Property 'itemData' is missing in type '{ modelValue: any; }' but required in type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'.","category":1,"code":2741,"canonicalHead":{"code":2322,"messageText":"Type '{ modelValue: any; }' is not assignable to type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'."}}]},"relatedInformation":[{"file":"./src/views/decoration/component/tabbar/pc/menu-set.vue","start":4006,"length":8,"messageText":"'itemData' is declared here.","category":3,"code":2728}]}]],[2317,[{"start":195,"length":6,"code":2339,"category":1,"messageText":"Property 'height' does not exist on type '{}'."}]],[2359,[{"start":5709,"length":5,"messageText":"Parameter 'depts' implicitly has an 'any' type.","category":1,"code":7006},{"start":5738,"length":6,"messageText":"Variable 'result' implicitly has type 'any[]' in some locations where its type cannot be determined.","category":1,"code":7034},{"start":5777,"length":4,"messageText":"Parameter 'dept' implicitly has an 'any' type.","category":1,"code":7006},{"start":5946,"length":6,"messageText":"Variable 'result' implicitly has an 'any[]' type.","category":1,"code":7005},{"start":6044,"length":6,"messageText":"Variable 'result' implicitly has an 'any[]' type.","category":1,"code":7005}]],[2362,[{"start":10278,"length":47,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 3, '(callbackfn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, initialValue: unknown): unknown', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'total' and 'previousValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]},{"messageText":"Overload 2 of 3, '(callbackfn: (previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number, initialValue: number): number', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'count' and 'currentValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]}]},"relatedInformation":[]},{"start":10485,"length":47,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 3, '(callbackfn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, initialValue: unknown): unknown', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'total' and 'previousValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]},{"messageText":"Overload 2 of 3, '(callbackfn: (previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number, initialValue: number): number', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'count' and 'currentValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]}]},"relatedInformation":[]},{"start":4702,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]},{"start":6901,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[2364,[{"start":7613,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"success\" | \"danger\" | \"primary\" | \"info\" | \"warning\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[2390,[{"start":397,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type '(opts?: { silent?: boolean; }) => Promise' is not assignable to type '(name: TabPaneName) => any'.","category":1,"code":2322,"next":[{"messageText":"Types of parameters 'opts' and 'name' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'TabPaneName' is not assignable to type '{ silent?: boolean | undefined; } | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' has no properties in common with type '{ silent?: boolean | undefined; }'.","category":1,"code":2559}]}]}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tabs.d.ts","start":7614,"length":11,"messageText":"The expected type comes from property 'onTabChange' which is declared here on type '__VLS_NormalizeComponentEvent; readonly closable: boolean; readonly tabindex: EpPropMergeType; ... 4 more ...; readonly addable: boolean; }>...'","category":3,"code":6500}]}]],[2393,[{"start":56480,"length":34,"messageText":"This comparison appears to be unintentional because the types '\"supplement\"' and '\"normal\"' have no overlap.","category":1,"code":2367},{"start":20344,"length":28,"messageText":"This comparison appears to be unintentional because the types '\"supplement\"' and '\"normal\"' have no overlap.","category":1,"code":2367}]],[2394,[{"start":723,"length":5,"code":2353,"category":1,"messageText":"Object literal may only specify known properties, and 'value' does not exist in type 'TreeOptionProps'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":25072,"length":5,"messageText":"The expected type comes from property 'props' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2399,[{"start":1732,"length":5,"code":2353,"category":1,"messageText":"Object literal may only specify known properties, and 'value' does not exist in type 'TreeOptionProps'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":25072,"length":5,"messageText":"The expected type comes from property 'props' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2440,[{"start":5402,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type 'unknown[]' is not assignable to type 'TreeNodeData[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'unknown' is not assignable to type 'TreeNodeData'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":27789,"length":4,"messageText":"The expected type comes from property 'data' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2443,[{"start":31652,"length":6,"code":2349,"category":1,"messageText":{"messageText":"This expression is not callable.","category":1,"code":2349,"next":[{"messageText":"Type 'String' has no call signatures.","category":1,"code":2757}]},"relatedInformation":[{"start":31652,"length":6,"messageText":"Are you missing a semicolon?","category":1,"code":2734}]},{"start":32437,"length":2,"code":2349,"category":1,"messageText":{"messageText":"This expression is not callable.","category":1,"code":2349,"next":[{"messageText":"Type 'String' has no call signatures.","category":1,"code":2757}]},"relatedInformation":[{"start":32437,"length":2,"messageText":"Are you missing a semicolon?","category":1,"code":2734}]}]],[2445,[{"start":14749,"length":34,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type 'number'."}]],[2458,[{"start":24819,"length":1,"messageText":"Parameter 'd' implicitly has an 'any' type.","category":1,"code":7006}]]],"affectedFilesPendingEmit":[1579,1597,1587,1588,1598,1599,1435,1600,1581,1589,1427,1425,1431,1453,1590,1550,1467,1591,1434,1601,1602,1461,1603,1604,1605,1592,1593,1594,1595,1606,1607,1608,1609,146,1610,1611,1596,1433,1612,127,1583,2077,2078,2100,1582,2101,2102,2103,2104,2192,2193,2194,2195,2197,2198,2196,2199,2201,2202,2200,2205,2203,2206,2204,2208,2187,2188,2190,2191,2189,1468,2209,2210,2211,2186,1471,1470,2076,1546,1455,2226,124,134,107,128,125,126,2227,2207,1415,143,1436,139,2229,2230,1585,2239,2240,2243,2245,2247,2248,1416,140,141,142,1403,144,145,1402,1404,137,138,1410,1405,1407,1408,1409,1411,1586,1584,2246,2249,1573,1572,2244,1580,130,136,133,132,1446,131,2079,2080,2250,1469,1568,2251,1401,2252,1457,2084,1454,1437,1576,1574,1578,135,2081,1406,129,1577,1419,1420,1418,1417,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2269,2267,2266,2265,2268,2264,2271,2270,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2290,1464,2287,2288,1465,2285,2286,2289,2291,2292,2300,2296,2301,2294,1429,2302,2295,2297,2298,2304,2305,2306,2303,2308,2309,2310,2307,2312,2313,2314,2311,1428,2316,2317,2318,2315,2320,2321,2322,2319,2324,2325,2326,2323,2328,2329,2330,2327,2332,2333,2334,2331,2336,2337,2335,2339,2340,2341,2338,2343,2344,2345,2342,2347,2348,2349,2346,2350,2293,1430,2352,2351,2353,2299,2355,2358,2356,2357,2354,2359,2360,1426,2361,2362,1414,1413,1412,2363,1432,2364,2365,2366,2374,2375,2367,2372,2369,2368,2370,2371,2373,2376,2377,2378,2379,2380,2382,2381,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,1462,2398,2399,2400,2401,2402,2403,2404,2405,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2437,2436,2439,2434,2435,2438,2442,2440,2441,2443,1551,1460,1459,1566,2445,1456,1448,1447,1445,2446,2447,1458,1570,1569,1466,1451,1450,2448,1463,1548,1547,2444,1567,1571,2449,2450,2451,2452,2453,2454,2455,2456,2457,1421,2458,2651],"emitSignatures":[107,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1445,1446,1447,1448,1450,1451,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1546,1547,1548,1550,1551,1566,1567,1568,1569,1570,1571,1572,1573,1574,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,2076,2077,2078,2079,2080,2081,2084,2100,2101,2102,2103,2104,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2226,2227,2229,2230,2239,2240,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2651],"version":"5.7.3"}
\ No newline at end of file
+{"fileNames":["./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es5.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.full.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/hmrpayload.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/customevent.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/hot.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/importglob.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/importmeta.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/client.d.ts","./global.d.ts","./node_modules/.pnpm/@vue+shared@3.5.33/node_modules/@vue/shared/dist/shared.d.ts","./node_modules/.pnpm/@babel+types@7.29.0/node_modules/@babel/types/lib/index.d.ts","./node_modules/.pnpm/@babel+parser@7.29.3/node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/.pnpm/@vue+compiler-core@3.5.33/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","./node_modules/.pnpm/@vue+compiler-dom@3.5.33/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","./node_modules/.pnpm/@vue+reactivity@3.5.33/node_modules/@vue/reactivity/dist/reactivity.d.ts","./node_modules/.pnpm/@vue+runtime-core@3.5.33/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","./node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","./node_modules/.pnpm/@vue+runtime-dom@3.5.33/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/dist/vue.d.mts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/jsx-runtime/index.d.ts","./node_modules/.vue-global-types/vue_3.5_0_0_0.d.ts","./node_modules/.pnpm/vue-router@4.6.4_vue@3.5.33_typescript@5.7.3_/node_modules/vue-router/dist/router-cwonjprp.d.mts","./node_modules/.pnpm/vue-router@4.6.4_vue@3.5.33_typescript@5.7.3_/node_modules/vue-router/dist/vue-router.d.mts","./node_modules/.pnpm/@vueuse+shared@12.7.0_typescript@5.7.3/node_modules/@vueuse/shared/index.d.mts","./node_modules/.pnpm/@vueuse+core@12.7.0_typescript@5.7.3/node_modules/@vueuse/core/index.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-cn.d.ts","./src/enums/appenums.ts","./node_modules/.pnpm/vue-demi@0.14.10_vue@3.5.33_typescript@5.7.3_/node_modules/vue-demi/lib/index.d.ts","./node_modules/.pnpm/pinia@2.3.1_typescript@5.7.3_vue@3.5.33_typescript@5.7.3_/node_modules/pinia/dist/pinia.d.ts","./node_modules/.pnpm/axios@1.16.0/node_modules/axios/index.d.ts","./node_modules/@types/lodash/common/common.d.ts","./node_modules/@types/lodash/common/array.d.ts","./node_modules/@types/lodash/common/collection.d.ts","./node_modules/@types/lodash/common/date.d.ts","./node_modules/@types/lodash/common/function.d.ts","./node_modules/@types/lodash/common/lang.d.ts","./node_modules/@types/lodash/common/math.d.ts","./node_modules/@types/lodash/common/number.d.ts","./node_modules/@types/lodash/common/object.d.ts","./node_modules/@types/lodash/common/seq.d.ts","./node_modules/@types/lodash/common/string.d.ts","./node_modules/@types/lodash/common/util.d.ts","./node_modules/@types/lodash/index.d.ts","./src/config/index.ts","./src/enums/pageenum.ts","./src/enums/requestenums.ts","./src/api/user.ts","./src/enums/cacheenums.ts","./src/utils/validate.ts","./src/stores/modules/multipletabs.ts","./src/utils/cache.ts","./src/utils/auth.ts","./src/stores/modules/user.ts","./src/config/setting.ts","./src/utils/theme.ts","./src/stores/modules/setting.ts","./src/layout/default/components/setting/drawer.vue","./src/layout/default/components/setting/index.vue","./src/hooks/usewatchroute.ts","./src/layout/default/components/header/breadcrumb.vue","./src/layout/default/components/header/fold.vue","./src/layout/default/components/header/full-screen.vue","./src/hooks/usemultipletabs.ts","./src/layout/default/components/header/multiple-tabs.vue","./src/layout/default/components/header/refresh.vue","./src/api/setting/system.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/aria.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/date.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/event.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/key.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/size.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/column-alignment.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/constants/form.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/typescript.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/runtime.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/aria.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/event.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/position.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/scroll.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/style.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/element.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/dom/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/global-node.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/add-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/aim.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/alarm-clock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/apple.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-down-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-down.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-left-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-right-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-up-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/arrow-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/avatar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/back.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/baseball.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/basketball.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bell-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bell.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bicycle.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bottom.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/bowl.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/briefcase.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/brush-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/brush.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/burger.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/calendar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/camera-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/camera.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-bottom.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/caret-top.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cellphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-dot-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-dot-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-line-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-line-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chat-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/check.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cherry.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chicken.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/chrome-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-check-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-check.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-close-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-close.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-plus-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/circle-plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/clock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/close-bold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/close.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coffee-cup.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coffee.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coin.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cold-drink.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/collection-tag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/collection.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/comment.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/compass.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/connection.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/coordinate.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/copy-document.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/cpu.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/credit-card.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/crop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-arrow-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-arrow-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/d-caret.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-analysis.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-board.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/data-line.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dessert.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/discount.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dish-dot.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/dish.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-add.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-copy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document-remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/document.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/download.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/drizzling.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/edit-pen.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/edit.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/eleme-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/eleme.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/element-plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/expand.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/failed.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/female.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/files.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/film.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/filter.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/finished.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/first-aid-kit.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/flag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fold.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-add.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-checked.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-delete.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-opened.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder-remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/folder.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/food.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/football.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fork-spoon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/fries.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/full-screen.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-square-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goblet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/gold-medal.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goods-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/goods.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/grape.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/grid.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/guide.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/handbag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/headset.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/help-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/help.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/hide.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/histogram.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/home-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/hot-water.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/house.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream-round.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream-square.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-cream.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-drink.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ice-tea.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/info-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/iphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/key.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/knife-fork.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lightning.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/link.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/list.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/loading.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location-information.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/lollipop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/magic-stick.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/magnet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/male.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/management.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/map-location.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/medal.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/memo.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/menu.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/message-box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/message.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mic.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/microphone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/milk-tea.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/minus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/money.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/monitor.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/moon-night.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/moon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/more-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/more.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mostly-cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mouse.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mug.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mute-notification.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/mute.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/no-smoking.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/notebook.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/notification.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/odometer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/office-building.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/open.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/operation.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/opportunity.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/orange.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/paperclip.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/partly-cloudy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pear.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/phone-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/phone.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture-rounded.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/picture.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pie-chart.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/place.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/platform.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/plus.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pointer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/position.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/postcard.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/pouring.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/present.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/price-tag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/printer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/promotion.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/quartz-watch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/question-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/rank.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/reading-lamp.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/reading.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refresh.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/refrigerator.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/remove-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/remove.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/scale-to-original.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/school.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/scissor.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/search.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/select.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sell.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/semi-select.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/service.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/set-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/setting.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/share.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ship.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shop.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-bag.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-cart-full.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-cart.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/shopping-trolley.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/smoking.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/soccer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sold-out.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort-down.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort-up.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sort.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/stamp.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/star-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/star.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/stopwatch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/success-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sugar.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/suitcase-line.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/suitcase.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunny.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunrise.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/sunset.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch-button.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/switch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/takeaway-box.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/ticket.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/tickets.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/timer.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/toilet-paper.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/tools.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top-left.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top-right.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/top.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trend-charts.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trophy-base.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/trophy.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/turn-off.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/umbrella.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/unlock.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/upload-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/upload.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/user-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/user.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/van.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-camera-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-camera.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-pause.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/video-play.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/view.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wallet-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wallet.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warn-triangle-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warning-filled.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/warning.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/watch.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/watermelon.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/wind-power.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/zoom-in.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/zoom-out.vue.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/components/index.d.ts","./node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.33_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/types/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/typescript.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/install.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/refs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/size.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/validator.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/vnode.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/props/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/vue/index.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/index.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/add.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/after.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ary.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assign.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assignin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assigninwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/assignwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/at.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/attempt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/before.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bind.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bindall.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/bindkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/camelcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/capitalize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/castarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ceil.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/chain.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/chunk.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clamp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clone.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonedeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonedeepwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/clonewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/compact.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/concat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/cond.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/conforms.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/conformsto.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/constant.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/countby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/create.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/curry.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/curryright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/debounce.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/deburr.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaults.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaultsdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defaultto.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/defer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/delay.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/difference.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/differenceby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/differencewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/divide.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/drop.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/dropright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/droprightwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/dropwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/each.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/eachright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/endswith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/entries.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/entriesin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/eq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/escape.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/escaperegexp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/every.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/extend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/extendwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/fill.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/filter.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/find.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlast.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlastindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/findlastkey.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/first.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmapdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatmapdepth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flatten.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flattendeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flattendepth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/floor.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flow.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/flowright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/foreach.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/foreachright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forinright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forown.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/forownright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/frompairs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/functions.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/functionsin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/get.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/groupby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/gt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/gte.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/has.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/hasin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/head.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/identity.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/includes.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/indexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/initial.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/inrange.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersection.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersectionby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/intersectionwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invert.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invertby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invoke.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/invokemap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarguments.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraybuffer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraylike.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isarraylikeobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isboolean.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isbuffer.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isdate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iselement.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isempty.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isequal.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isequalwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iserror.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isfinite.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isfunction.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/islength.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismatch.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ismatchwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnan.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnative.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnil.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnull.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isnumber.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isobjectlike.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isplainobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isregexp.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/issafeinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isstring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/issymbol.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/istypedarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isundefined.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isweakmap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/isweakset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/iteratee.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/join.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/kebabcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keyby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keys.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/keysin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/last.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lastindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lowercase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lowerfirst.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lt.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/lte.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/map.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mapkeys.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mapvalues.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/matches.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/matchesproperty.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/max.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/maxby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mean.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/meanby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/memoize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/merge.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mergewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/method.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/methodof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/min.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/minby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/mixin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/multiply.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/negate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/noop.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/now.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/nth.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/ntharg.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/omit.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/omitby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/once.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/orderby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/over.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/overargs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/overevery.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/oversome.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pad.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/padend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/padstart.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/parseint.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partial.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partialright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/partition.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pick.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pickby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/property.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/propertyof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pull.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullall.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullallby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullallwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/pullat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/random.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/range.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rangeright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rearg.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reduce.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reduceright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/remove.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/repeat.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/replace.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/rest.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/result.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/reverse.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/round.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sample.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/samplesize.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/set.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/setwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/shuffle.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/size.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/slice.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/snakecase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/some.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindexby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindex.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindexby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sortedlastindexof.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sorteduniq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sorteduniqby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/split.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/spread.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/startcase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/startswith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubfalse.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubstring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/stubtrue.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/subtract.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sum.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/sumby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tail.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/take.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takeright.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takerightwhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/takewhile.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/template.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/templatesettings.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/throttle.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/thru.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/times.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toarray.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tofinite.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tointeger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tolength.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tolower.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tonumber.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topairs.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topairsin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/topath.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toplainobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tosafeinteger.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/tostring.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/toupper.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/transform.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trim.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trimend.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/trimstart.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/truncate.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unary.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unescape.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/union.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unionby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unionwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniq.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqueid.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uniqwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unset.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unzip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/unzipwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/update.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/updatewith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/uppercase.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/upperfirst.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/values.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/valuesin.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/without.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/words.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/wrap.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xor.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xorby.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/xorwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zip.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipobject.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipobjectdeep.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/zipwith.d.ts","./node_modules/.pnpm/@types+lodash-es@4.17.12/node_modules/@types/lodash-es/index.d.ts","./node_modules/.pnpm/lodash-unified@1.0.3_@types_168785b94d783e1b7a7274df40d5f9d9/node_modules/lodash-unified/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/arrays.d.ts","./node_modules/.pnpm/@vueuse+shared@12.0.0_typescript@5.7.3/node_modules/@vueuse/shared/index.d.mts","./node_modules/.pnpm/@vueuse+core@12.0.0_typescript@5.7.3/node_modules/@vueuse/core/index.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/browser.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/error.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/functions.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/i18n.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/objects.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/raf.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/rand.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/strings.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/throttlebyraf.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/easings.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/numbers.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/utils/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/src/affix.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/src/affix.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/affix/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/alert.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/alert.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/alert/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor-link.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/src/anchor-link.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/anchor/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/input.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/input.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/enums.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/popperoffsets.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/flip.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/hide.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/offset.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/eventlisteners.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/computestyles.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/arrow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/preventoverflow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/applystyles.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/types.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/modifiers/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/utils/detectoverflow.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/createpopper.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/popper-lite.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/popper.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/lib/index.d.ts","./node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/popper.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/popper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/arrow.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/trigger.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/trigger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/arrow.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popper/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar-group-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/avatar-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/avatar/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/backtop.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/backtop.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/backtop/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/badge.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/badge.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/badge/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/breadcrumb-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/src/instances.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/breadcrumb/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/button-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/button/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/calendar.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/locale/types.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/locale/index.d.ts","./node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/calendar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/date-table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/date-table.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/calendar/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/card.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/card.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/card/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/carousel-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/carousel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/node.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/menu.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/config.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/index.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-attrs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-calc-input-width/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-deprecated/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-draggable/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-focus/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/en.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/af.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ar-eg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/az.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/bg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/bn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ca.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ckb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/cs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/da.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/de.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/el.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/eo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/es.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/et.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/eu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fa.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/fr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/he.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/hy-am.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/id.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/it.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ja.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/kk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/km.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ko.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ku.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ky.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lt.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/lv.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/mg.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/mn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ms.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/my.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/nb-no.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/nl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/no.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pa.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pt-br.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/pt.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ro.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ru.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sl.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sv.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/sw.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ta.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/te.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/th.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/tk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/tr.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/ug-cn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/uk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/uz-uz.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/vi.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-tw.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-hk.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/lang/zh-mo.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/locale/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-locale/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-namespace/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-lockscreen/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-modal/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-model-toggle/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-prevent-global/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-prop/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-popper/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-same-target/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-teleport/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-throttle-render/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-timeout/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-transition-fallthrough/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-id/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-escape-keydown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-popper-container/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-intermediate-render/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-delayed-toggle/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-forward-ref/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-z-index/index.d.ts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts","./node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts","./node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-floating/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-cursor/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-ordered-children/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-size/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-focus-controller/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-composition/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-empty-values/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/use-aria/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/hooks/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/instances.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/src/check-tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/src/check-tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/check-tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/src/checkbox-button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/checkbox/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/src/col.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/src/col.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/col/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/collapse-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse-transition/src/collapse-transition.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/collapse-transition/index.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/interfaces.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/index.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/css-color-names.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/readability.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/to-ms-filter.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/from-ratio.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/format-input.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/random.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/conversion.d.ts","./node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/public_api.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/utils/color.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/src/color-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/trigger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/tooltip.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/tooltip.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tooltip/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/src/color-picker.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/src/color-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/color-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog-content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/dialog.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/use-dialog.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dialog/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/src/message.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/src/message.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/src/link.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/src/link.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/link/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/store/tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/store/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-header/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-layout.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-column/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/scrollbar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/scrollbar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/thumb.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/thumb.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/util.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/scrollbar/index.d.ts","./node_modules/.pnpm/normalize-wheel-es@1.2.0/node_modules/normalize-wheel-es/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/mousewheel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-body/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-footer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/h-helper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/table-column/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/src/tablecolumn.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/config-provider-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/config-provider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/src/hooks/use-global-config.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/config-provider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/container.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/aside.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/footer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/header.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/src/main.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/container/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/src/countdown.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/src/countdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/countdown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/common/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/common/picker.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/utils.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/composables/use-common-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/src/time-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/props/date-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/date-picker-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker-panel/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/date-picker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/date-picker/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/src/description-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/descriptions/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/src/divider.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/src/divider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/divider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/src/drawer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/src/drawer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/drawer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/src/icon.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/src/icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/icon/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/src/dropdown-menu.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/dropdown/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/empty.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/empty.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/empty/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/utils.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form.d.ts","./node_modules/.pnpm/async-validator@4.2.5/node_modules/async-validator/dist-types/interface.d.ts","./node_modules/.pnpm/async-validator@4.2.5/node_modules/async-validator/dist-types/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/use-form-common-props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/use-form-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/form-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/src/hooks/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/form/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/src/image-viewer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/src/image-viewer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image-viewer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/src/image.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/src/image.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/image/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/input-tag.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/input-tag.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-tag/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/sub-menu.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/menu-item-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/menu/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/overlay/src/overlay.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/overlay/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/src/page-header.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/src/page-header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/page-header/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/src/pagination.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/pagination/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/src/popconfirm.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/src/popconfirm.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popconfirm/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/src/progress.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/src/progress.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/progress/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-button.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-button.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/radio-group.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/radio/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/src/rate.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/src/rate.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/rate/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/src/result.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/src/result.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/result/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/row.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/row/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/fixed-size-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/dynamic-size-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/fixed-size-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/props.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/hooks/use-cache.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/builders/build-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/src/components/dynamic-size-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select.types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/virtual-list/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select-dropdown.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/token.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/useprops.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/src/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/select.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/token.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/src/option-group.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/select-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/src/skeleton-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/skeleton/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/slider.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/marker.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/slider.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/composables/use-marks.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/slider/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/space.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/src/use-space.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/space/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/src/statistic.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/src/statistic.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/statistic/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/steps.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/steps.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/steps/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/src/switch.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/src/switch.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/switch/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/common.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table-grid.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-scrollbar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-columns.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/header.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/sort-icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/expand-icon.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/table-v2.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/auto-resizer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/private.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-row.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-data.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-styles.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/use-auto-resize.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/composables/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/use-table.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/renderers/header-cell.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/src/components/auto-resizer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/table-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-pane.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-pane.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-bar.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-bar.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tab-nav.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tabs.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/src/text.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/src/text.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/text/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/src/time-select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/src/time-select.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/time-select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline-item.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/timeline-item.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/timeline/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer-panel.vue.d.ts","./node_modules/.pnpm/vue-component-type-helpers@3.2.8/node_modules/vue-component-type-helpers/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/src/transfer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/transfer/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/usedragnode.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/tree-store.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/model/node.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tree.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/src/tokens.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/virtual-tree.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/tree.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/src/instance.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-v2/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/ajax.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-content.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-list.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-list.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-dragger.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/upload-dragger.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/src/constants.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/upload/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/src/watermark.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/src/watermark.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/watermark/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/content.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/tour.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/tour.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/step.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/src/step.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tour/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/segmented.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/src/segmented.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/segmented/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/helper.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/mention.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/src/mention.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/mention/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/splitter.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/splitter.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/split-panel.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/src/split-panel.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/splitter/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/infinite-scroll/src/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/infinite-scroll/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/types.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/loading.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/service.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/src/directive.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/loading/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/src/message-box.type.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/src/messagebox.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/message-box/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/src/notification.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/src/notification.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/notification/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/popover.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/popover.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/src/directive.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/popover/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/src/autocomplete.vue.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/src/autocomplete.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/autocomplete/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/defaults.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/click-outside/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/repeat-click/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/trap-focus/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/directives/index.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/make-installer.d.ts","./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/index.d.ts","./src/utils/feedback.ts","./src/layout/default/components/header/user-drop-down.vue","./src/layout/default/components/header/index.vue","./src/layout/default/components/main.vue","./src/layout/default/components/sidebar/logo.vue","./src/utils/util.ts","./src/layout/default/components/sidebar/menu-item.vue","./src/layout/default/components/sidebar/menu.vue","./src/layout/default/components/sidebar/side.vue","./src/layout/default/components/sidebar/index.vue","./src/layout/default/index.vue","./src/views/error/components/error.vue","./src/views/error/404.vue","./src/views/error/403.vue","./src/hooks/uselockfn.ts","./src/layout/components/footer.vue","./src/views/account/login.vue","./src/views/account/change-password.vue","./src/utils/wecomoauthpostmessage.ts","./src/views/account/bind-work-wechat.vue","./src/views/user/setting.vue","./node_modules/dayjs/locale/types.d.ts","./node_modules/dayjs/locale/index.d.ts","./node_modules/dayjs/index.d.ts","./src/api/doctor.ts","./src/views/doctor/progress.vue","./src/api/decoration.ts","./src/views/decoration/component/widgets/index.ts","./src/views/decoration/component/pages/preview-pc.vue","./src/views/decoration/pc_details.vue","./src/api/fans.ts","./src/views/fans/h5.vue","./src/api/tcm.ts","./src/api/order.ts","./src/api/channel/weapp.ts","./src/hooks/usepaging.ts","./src/utils/perm.ts","./node_modules/.pnpm/vue-demi@0.13.11_vue@3.5.33_typescript@5.7.3_/node_modules/vue-demi/lib/index.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/shared.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/core.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/core.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/echarts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/index.d.ts","./node_modules/.pnpm/vue-echarts@6.7.3_@vue+runt_9e349b8fe817591c55152dc2c2ed6abf/node_modules/vue-echarts/dist/index.d.ts","./src/views/tcm/diagnosis/components/diagnosistodolist.vue","./src/utils/blood-thresholds.ts","./src/views/tcm/diagnosis/components/dailymatrix.vue","./src/views/tcm/diagnosis/components/caserecordlist.vue","./node_modules/.pnpm/hls.js@1.6.19/node_modules/hls.js/dist/hls.d.mts","./src/views/tcm/diagnosis/components/recordingvideoplayer.vue","./src/views/tcm/diagnosis/components/recordingplaybackblock.vue","./node_modules/.pnpm/cos-js-sdk-v5@1.10.1/node_modules/cos-js-sdk-v5/index.d.ts","./src/api/file.ts","./src/utils/oss-direct-upload.ts","./src/components/upload/index.vue","./src/views/tcm/diagnosis/components/callrecordpanel.vue","./src/utils/im-business-message-parse.ts","./src/views/tcm/diagnosis/components/imchatrecordpanel.vue","./src/views/tcm/diagnosis/components/assignlogpanel.vue","./src/views/tcm/diagnosis/components/appointmentrecordpanel.vue","./src/api/patient.ts","./src/views/patient/reception/components/notetimeline.vue","./src/views/tcm/diagnosis/components/trackingnotetimeline.vue","./src/views/consumer/prescription/components/prescription-order-utils.ts","./src/views/consumer/prescription/components/prescriptionorderdetaildrawer.vue","./src/views/tcm/diagnosis/components/patientorderlist.vue","./src/api/medicine.ts","./src/components/medicine-name-select/index.vue","./src/utils/diabetes-discovery-display.ts","./src/components/prescription-slip/utils.ts","./src/components/prescription-slip/index.vue","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/logger.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/cache-storage.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/core/context.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/layout/bounds.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/document-cloner.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/syntax/tokenizer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/syntax/parser.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/ipropertydescriptor.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-clip.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/itypedescriptor.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/color.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/length-percentage.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-origin.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-repeat.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/background-size.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-radius.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-style.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/border-width.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/direction.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/display.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/float.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/letter-spacing.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/line-break.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-image.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/list-style-type.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/overflow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/overflow-wrap.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-align.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/position.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/types/length.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-shadow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-transform.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/transform.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/transform-origin.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/visibility.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/word-break.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/z-index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/opacity.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/text-decoration-line.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-family.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-weight.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-variant.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/font-style.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/content.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/counter-increment.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/counter-reset.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/duration.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/quotes.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/box-shadow.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/paint-order.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/css/layout/text.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/text-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/vector.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/bezier-curve.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/path.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/bound-curves.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/effects.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/stacking-context.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/canvas-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/image-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/svg-element-container.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/dom/replaced-elements/index.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/renderer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/render/canvas/canvas-renderer.d.ts","./node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/types/index.d.ts","./node_modules/.pnpm/jspdf@2.5.2/node_modules/jspdf/types/index.d.ts","./src/components/tcm-prescription/index.vue","./src/views/tcm/diagnosis/edit.vue","./src/views/tcm/diagnosis/detail.vue","./node_modules/dayjs/plugin/isoweek.d.ts","./src/api/first_visit.ts","./src/views/tcm/diagnosis/appointment.vue","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/cdn-streaming/cdn-streaming.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/device-detector/device-detector.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/virtual-background/virtual-background.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/watermark/watermark.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/beauty/beauty.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/basic-beauty/basic-beauty.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/cross-room/cross-room.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/custom-encryption/custom-encryption.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/video-effect/video-mixer/video-mixer.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/small-stream-auto-switcher/small-stream-auto-switcher.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/chorus/chorus.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/lebplayer/lebplayer.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/plugins/realtime-transcriber/realtime-transcriber.esm.d.ts","./node_modules/.pnpm/trtc-sdk-v5@5.17.1/node_modules/trtc-sdk-v5/index.d.ts","./src/views/tcm/diagnosis/components/assistantwatchcalldialog.vue","./src/views/tcm/diagnosis/index_h5.vue","./src/utils/diag-display.ts","./src/views/tcm/diagnosis/components/patientinfocard.vue","./src/views/tcm/diagnosis/components/patientcasecard.vue","./src/views/tcm/diagnosis/readonly.vue","./src/router/routes.ts","./src/router/index.ts","./src/utils/request/cancel.ts","./src/utils/request/type.d.ts","./src/utils/request/axios.ts","./src/utils/wecombindguard.ts","./src/utils/request/index.ts","./src/api/app.ts","./src/stores/modules/app.ts","./src/api/chat.ts","./src/components/chat-notify-toast/index.vue","./src/app.vue","./src/permission.ts","./src/install/index.ts","./src/main.ts","./src/api/article.ts","./src/api/asset.ts","./src/api/consumer.ts","./src/api/finance.ts","./src/api/message.ts","./src/api/pharmacy.ts","./src/api/qywx-msg.ts","./src/api/qywx.ts","./src/api/self_input_stats.ts","./src/api/stats.ts","./src/api/app/recharge.ts","./src/api/channel/h5.ts","./src/api/channel/open_setting.ts","./src/api/channel/wx_oa.ts","./src/api/org/department.ts","./src/api/org/post.ts","./src/api/perms/admin.ts","./src/api/perms/menu.ts","./src/api/perms/role.ts","./src/api/setting/dict.ts","./src/api/setting/pay.ts","./src/api/setting/search.ts","./src/api/setting/storage.ts","./src/api/setting/user.ts","./src/api/setting/website.ts","./src/api/tools/code.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chat/chat.vue.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/chatheader.vue.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/hooks/usechatheader.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/components/chatheader/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/login.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/loginstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/avatar/avatar.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/avatar/constants/avatar.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/avatar/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/userpicker/type.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/userpicker/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/basecomp/view/view.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/basecomp/view/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/chatsetting/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/uikitmodalstate/uikitmodalstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/uikitmodalstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/type.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/uikitmodal.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/useroommodal/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/uikitmodal/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/common/base.d.ts","./node_modules/.pnpm/@tencentcloud+chat@3.5.9/node_modules/@tencentcloud/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+tuiroom-engine-js@3.5.2/node_modules/@tencentcloud/tuiroom-engine-js/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/device.d.ts","./node_modules/.pnpm/@tencentcloud+chat@3.6.7/node_modules/@tencentcloud/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-engine@2.5.8/node_modules/@tencentcloud/chat-uikit-engine/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/message.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/useofflinepushinfo.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/hooks/useofflinepushinfo/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/engine.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/search.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/contact.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/conversation.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/call.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/chatsetting.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/types.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/live.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/stream.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/videomixer.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/audience.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/seat.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/monitor.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/coguest.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/cohost.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/battle.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/barrage.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/room.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/participant.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/beauty.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/virtualbackground.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/user.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/devicestate/devicestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/devicestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/hooks/useroomengine.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/audiosettingpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/videosettingpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/common/rtc.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/common/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/barragestate/barragestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/barragestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/battlestate/battlestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/battlestate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/cogueststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/cohoststate/cohoststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/cohoststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/liveaudiencestate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/liveliststate/liveliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/liveliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/livemonitorstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/utils/eventcenter.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/liveseatstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/videomixerstate/videomixerstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/videomixerstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/barrageinput/barrageinputh5.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/barrageinput/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/barragelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/camerabutton/index.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/camerabutton/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/coguestpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/cohostpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/liveaudiencelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/livelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/livemonitorview/livemonitorview.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/livemonitorview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/livescenepanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/liveview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/micbutton/index.vue.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/micbutton/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/streammixer/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/live/live.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/types/asr.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/asrstate/asrstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/freebeautystate/freebeautystate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/freebeautystate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/roomparticipantstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/roomstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/virtualbackgroundstate/virtualbackgroundstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/virtualbackgroundstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/roomparticipantlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/roomparticipantview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/roomview/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/scheduleroompanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/virtualbackgroundpanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/freebeautypanel/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/room/room.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/i18n/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/contactlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/conversationlist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/messageinput/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/hooks/usemessageactions.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/messagelist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/components/search/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/c2csettingstate/c2csettingstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/c2csettingstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/contactliststate/contactliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/contactliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/conversationliststate/conversationliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/conversationliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/groupsettingstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/groupsettingstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageactionstate/messageactionstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageactionstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/type.d.ts","./node_modules/.pnpm/orderedmap@2.1.1/node_modules/orderedmap/dist/index.d.ts","./node_modules/.pnpm/prosemirror-model@1.25.4/node_modules/prosemirror-model/dist/index.d.ts","./node_modules/.pnpm/prosemirror-transform@1.12.0/node_modules/prosemirror-transform/dist/index.d.ts","./node_modules/.pnpm/prosemirror-view@1.41.8/node_modules/prosemirror-view/dist/index.d.ts","./node_modules/.pnpm/prosemirror-state@1.4.4/node_modules/prosemirror-state/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/state/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/model/dist/index.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/view/dist/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/eventemitter.d.ts","./node_modules/.pnpm/@tiptap+pm@2.27.2/node_modules/@tiptap/pm/transform/dist/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/node.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/mark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extension.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/types.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensionmanager.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/nodepos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/clipboardtextserializer.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/blur.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/clearcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/clearnodes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/command.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/createparagraphnear.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/cut.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deletecurrentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deletenode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deleterange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/deleteselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/enter.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/exitcode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/extendmarkrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/first.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/focus.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/foreach.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/insertcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/insertcontentat.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/join.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/joinitembackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/joinitemforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/jointextblockbackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/jointextblockforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/keyboardshortcut.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/lift.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/liftemptyblock.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/liftlistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/newlineincode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/resetattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/scrollintoview.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectall.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectnodebackward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectnodeforward.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selectparentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selecttextblockend.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/selecttextblockstart.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setmark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setmeta.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/setnodeselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/settextselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/sinklistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/splitblock.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/splitlistitem.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglelist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglemark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglenode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/togglewrap.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/undoinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/unsetallmarks.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/unsetmark.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/updateattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/wrapin.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/wrapinlist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commands/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/commands.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/drop.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/editable.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/focusevents.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/keymap.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/paste.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/tabindex.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/extensions/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/editor.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/commandmanager.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/combinetransactionsteps.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createchainablestate.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createdocument.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/createnodefromcontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/defaultblockat.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findchildren.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findchildreninrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findparentnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/findparentnodeclosesttopos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatehtml.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatejson.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/generatetext.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getattributesfromextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getchangedranges.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getdebugjson.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getextensionfield.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gethtmlfromfragment.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarkattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarkrange.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarksbetween.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getmarktype.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodeatposition.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodeattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getnodetype.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getrenderedattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschema.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschemabyresolvedextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschematypebyname.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getschematypenamebyname.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/getsplittedattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettext.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextbetween.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextcontentfromnodes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/gettextserializersfromschema.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/injectextensionattributestoparserule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isatendofnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isatstartofnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isextensionrulesenabled.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/islist.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/ismarkactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeactive.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeempty.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/isnodeselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/istextselection.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/postodomrect.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/resolvefocusposition.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/rewriteunknowncontent.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/selectiontoinsertionend.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/splitextensions.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/helpers/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/markinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/nodeinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/textblocktypeinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/textinputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/wrappinginputrule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/inputrules/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/nodeview.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/markpasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/nodepasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/textpasterule.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/pasterules/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/tracker.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/callorreturn.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/caninsertnode.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/createstyletag.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/deleteprops.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/elementfromstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/escapeforregex.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/findduplicates.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/fromstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isemptyobject.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isfunction.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isios.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/ismacos.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isnumber.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isplainobject.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isregexp.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/issafari.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/isstring.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/mergeattributes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/mergedeep.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/minmax.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/objectincludes.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/removeduplicates.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/utilities/index.d.ts","./node_modules/.pnpm/@tiptap+core@2.27.2_@tiptap+pm@2.27.2/node_modules/@tiptap/core/dist/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperoffsets.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventlisteners.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computestyles.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventoverflow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applystyles.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/types.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectoverflow.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createpopper.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper-lite.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/index.d.ts","./node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/index.d.ts","./node_modules/.pnpm/tippy.js@6.3.7/node_modules/tippy.js/index.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/bubble-menu-plugin.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/bubble-menu.d.ts","./node_modules/.pnpm/@tiptap+extension-bubble-me_cb4d88b0b911ecd5388577427968ef89/node_modules/@tiptap/extension-bubble-menu/dist/index.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/bubblemenu.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/editor.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/editorcontent.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/floating-menu-plugin.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/floating-menu.d.ts","./node_modules/.pnpm/@tiptap+extension-floating-_8ade271869755387a8482cceb81d75f6/node_modules/@tiptap/extension-floating-menu/dist/index.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/floatingmenu.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/nodeviewcontent.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/nodeviewwrapper.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/useeditor.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/vuenodeviewrenderer.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/vuerenderer.d.ts","./node_modules/.pnpm/@tiptap+vue-3@2.27.2_@tipta_58f9c9cb8880c604b8226ea71b48e5d0/node_modules/@tiptap/vue-3/dist/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/messageinputstate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageinputstate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageliststate/messageliststate.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/states/messageliststate/index.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/chat/chat.d.ts","./node_modules/.pnpm/tuikit-atomicx-vue3@4.5.7_@_1b2bb943b496f0826b0d1190c2b9611b/node_modules/tuikit-atomicx-vue3/dist/subentry/chat/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/constants/interface.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/helpers.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/options.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/typescript/t.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/index.d.ts","./node_modules/.pnpm/i18next@23.15.1/node_modules/i18next/index.d.mts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/i18n/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/uselanguageprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/languageprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/interface.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/stylepresetprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/usestylepresetprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/stylepresetprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/uikitprovider.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/useuikitprovider.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/dialog.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/dropdownitem.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/icon/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/en-us/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/zh-cn/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/select/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/option/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/types.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/slider/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/swiperitem.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/type.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.vue.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/usecomponent.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/utils/utils.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/loading/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/index.d.ts","./node_modules/.pnpm/@tencentcloud+uikit-base-co_be75d70b544ed9dfda482c36cc733d1c/node_modules/@tencentcloud/uikit-base-component-vue3/dist/index.d.ts","./node_modules/.pnpm/@tencentcloud+chat-uikit-vu_9fd9fcdfcee31e157ce6c6ef7e26af46/node_modules/@tencentcloud/chat-uikit-vue3/dist/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/constants/interface.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/helpers.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/options.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/typescript/t.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/node_modules/i18next/index.d.mts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/i18n/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/uselanguageprovider.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/languageprovider.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/languageprovider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/uikitprovider.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/contexts/uikitprovider/useuikitprovider.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/providers/uikitprovider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/button/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/dialog.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dialog/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/drawer/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/dropdownitem.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/dropdown/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/icon/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/en-us/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/zh-cn/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/i18n/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/messagebox/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/badge/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/input/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/select/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/option/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/types.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/switch/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/slider/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/swiperitem.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/swiper/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/toast/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/watermark/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/type.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.vue.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/popup/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/usecomponent.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/hooks/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/utils/utils.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/components/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/loading/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/directives/index.d.ts","./node_modules/@tencentcloud/uikit-base-component-vue3/dist/index.d.ts","./src/components/sidetab.vue","./src/components/app-link/index.vue","./src/components/chat-dialog/chatmessageitem.vue","./src/utils/call-local-recorder.ts","./src/utils/call-video-screenshot.ts","./src/utils/tuicall-error.ts","./node_modules/@tencentcloud/chat/index.d.ts","./node_modules/@tencentcloud/chat-uikit-engine/index.d.ts","./src/utils/im-call-hangup-detect.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/call.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/error.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/log.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/const/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/icallservice.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/icallstore.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/ituiglobal.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/ituistore.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/interface/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/callservice/uidesign.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/callservice/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/locales/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/tuicallservice/index.d.ts","./node_modules/.pnpm/@tencentcloud+call-uikit-vue@4.0.12/node_modules/@tencentcloud/call-uikit-vue/types/index.d.ts","./node_modules/@tencentcloud/call-engine-js/index.d.ts","./src/components/chat-dialog/index.vue","./src/components/color-picker/index.vue","./src/components/daterange-picker/index.vue","./src/components/del-wrap/index.vue","./src/components/dict-value/index.vue","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/browser-polyfill.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/node-polyfill.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/locale/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/register-builtin-modules/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/init-default-config/index.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/create-editor.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/element.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/node.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/editor.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/location.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/operation.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/path.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/path-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/point.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/point-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/range.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/range-ref.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/custom-types.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/interfaces/text.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/general.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/node.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/selection.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/text.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/transforms/index.d.ts","./node_modules/.pnpm/slate@0.72.0/node_modules/slate/dist/index.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/htmldomapi.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/helpers/attachto.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/style.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/eventlisteners.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/attributes.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/class.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/props.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/dataset.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/vnode.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/hooks.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/modules/module.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/init.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/thunk.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/is.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/tovnode.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/h.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/jsx.d.ts","./node_modules/.pnpm/snabbdom@3.6.3/node_modules/snabbdom/build/index.d.ts","./node_modules/.pnpm/@types+event-emitter@0.3.5/node_modules/@types/event-emitter/index.d.ts","./node_modules/.pnpm/dom7@3.0.0/node_modules/dom7/dom7.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/utils/dom.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/config/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/editor/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/render/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/to-html/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/parse-html/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/bar/toolbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/register.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/panel-and-modal/baseclass.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/panel-and-modal/modal.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/index.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/history.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/history-editor.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/with-history.d.ts","./node_modules/.pnpm/slate-history@0.66.0_slate@0.72.0/node_modules/slate-history/dist/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/create-editor.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/create-toolbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/create/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/utils/key.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/text-area/textarea.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/menus/bar/hoverbar.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/editor/dom-editor.d.ts","./node_modules/.pnpm/@uppy+utils@4.1.3/node_modules/@uppy/utils/types/index.d.ts","./node_modules/.pnpm/@uppy+core@2.3.4/node_modules/@uppy/core/types/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/interface.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/createuploader.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/upload/index.d.ts","./node_modules/.pnpm/i18next@20.4.0/node_modules/i18next/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/i18n/index.d.ts","./node_modules/.pnpm/@wangeditor+core@1.1.19_@up_585ce3e2c6aab8ba5d7bc1a654d2a2a0/node_modules/@wangeditor/core/dist/core/src/index.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/boot.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/utils/dom.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/create.d.ts","./node_modules/.pnpm/@wangeditor+editor@5.1.23/node_modules/@wangeditor/editor/dist/editor/src/index.d.ts","./node_modules/.pnpm/vuedraggable@4.1.0_vue@3.5.33_typescript@5.7.3_/node_modules/vuedraggable/src/vuedraggable.d.ts","./src/components/popup/index.vue","./src/components/material/file.vue","./src/components/material/hook.ts","./src/components/material/preview.vue","./src/components/material/index.vue","./src/components/material/picker.vue","./src/components/editor/index.vue","./src/components/export-data/index.vue","./src/components/footer-btns/index.vue","./src/components/icon/index.ts","./src/components/icon/svg-icon.vue","./src/components/icon/index.vue","./src/components/icon/picker.vue","./src/components/image-contain/index.vue","./src/components/link/index.ts","./src/components/link/article-list.vue","./src/components/link/custom-link.vue","./src/components/link/mini-program.vue","./src/components/link/shop-pages.vue","./src/components/link/index.vue","./src/components/link/picker.vue","./src/hooks/uselisttimefilter.ts","./src/components/list-time-filter/index.vue","./src/components/overflow-tooltip/index.vue","./src/components/pagination/index.vue","./src/components/popover-input/index.vue","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/call.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/error.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/log.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/const/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/icallservice.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/icallstore.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/ituiglobal.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/ituistore.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/interface/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/callservice/uidesign.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/callservice/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/locales/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/tuicallservice/index.d.ts","./node_modules/.pnpm/@trtc+calls-uikit-vue@4.5.0/node_modules/@trtc/calls-uikit-vue/types/index.d.ts","./src/components/video-call/index.vue","./src/hooks/usedictoptions.ts","./node_modules/.pnpm/vue-clipboard3@2.0.0/node_modules/vue-clipboard3/dist/esm/index.d.ts","./src/install/directives/copy.ts","./src/install/directives/perms.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/charts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/charts.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/components.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/components.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/features.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/features.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/types/dist/renderers.d.ts","./node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/renderers.d.ts","./src/install/plugins/echart.ts","./src/install/plugins/element.ts","./node_modules/.pnpm/@highlightjs+vue-plugin@2.1_297347e077cdaa3fb4c77d862f4e02c2/node_modules/@highlightjs/vue-plugin/dist/vue.d.ts","./node_modules/.pnpm/highlight.js@11.11.1/node_modules/highlight.js/types/index.d.ts","./src/install/plugins/hljs.ts","./src/stores/index.ts","./src/install/plugins/pinia.ts","./src/router/guard/index.ts","./src/install/plugins/router.ts","./src/install/plugins/tuikit.ts","./src/router/guard/init.ts","./src/utils/checkhttps.ts","./src/utils/env.ts","./src/utils/getexposetype.ts","./src/views/app/recharge/index.vue","./src/views/article/column/edit.vue","./src/views/article/column/index.vue","./src/views/article/lists/edit.vue","./src/views/article/lists/index.vue","./src/views/asset/resource/index.vue","./src/views/asset/user/index.vue","./src/views/channel/h5.vue","./src/views/channel/open_setting.vue","./src/views/channel/weapp.vue","./src/views/channel/wx_oa/config.vue","./src/views/channel/wx_oa/menu_com/usemenuoa.ts","./src/views/channel/wx_oa/menu_com/oa-menu-form.vue","./src/views/channel/wx_oa/menu_com/oa-menu-form-edit.vue","./src/views/channel/wx_oa/menu_com/oa-attr.vue","./src/views/channel/wx_oa/menu_com/oa-phone.vue","./src/views/channel/wx_oa/menu.vue","./src/views/channel/wx_oa/reply/edit.vue","./src/views/channel/wx_oa/reply/default_reply.vue","./src/views/channel/wx_oa/reply/follow_reply.vue","./src/views/channel/wx_oa/reply/keyword_reply.vue","./src/views/chat/components/messagebubble.vue","./src/views/chat/components/sendpanel.vue","./src/views/chat/index.vue","./src/views/consumer/assistant/edit.vue","./src/views/consumer/assistant/index.vue","./src/views/consumer/components/account-adjust.vue","./src/views/consumer/doctor/edit.vue","./src/views/consumer/doctor/index.vue","./src/views/consumer/doctor/paiban.vue","./src/views/consumer/lists/detail.vue","./src/views/consumer/lists/index.vue","./src/views/consumer/prescription/guahao.vue","./src/views/consumer/prescription/index.vue","./src/views/consumer/prescription/components/prescriptionaibatchgeneratedialog.vue","./src/views/consumer/prescription/components/prescriptionaireportdialog.vue","./src/views/consumer/prescription/list.vue","./src/views/consumer/prescription/components/gancaosubmissionreconcilebutton.vue","./src/views/consumer/prescription/order_list.vue","./src/views/consumer/prescription/order_list_h5.vue","./src/views/decoration/pc.vue","./src/views/decoration/component/pages/menu.vue","./src/views/decoration/component/tabbar/mobile/attr.vue","./src/views/decoration/component/decoration-img.vue","./src/views/decoration/component/tabbar/mobile/content.vue","./src/views/decoration/component/tabbar/mobile/index.ts","./src/views/decoration/tabbar.vue","./src/views/decoration/component/add-nav.vue","./src/views/decoration/component/pages/attr-setting.vue","./src/views/decoration/component/pages/preview.vue","./src/views/decoration/component/tabbar/pc/menu-set.vue","./src/views/decoration/component/tabbar/pc/attr.vue","./src/views/decoration/component/tabbar/pc/content.vue","./src/views/decoration/component/tabbar/pc/index.ts","./src/views/decoration/component/widgets/banner/options.ts","./src/views/decoration/component/widgets/banner/attr.vue","./src/views/decoration/component/widgets/banner/content.vue","./src/views/decoration/component/widgets/banner/index.ts","./src/views/decoration/component/widgets/customer-service/options.ts","./src/views/decoration/component/widgets/customer-service/attr.vue","./src/views/decoration/component/widgets/customer-service/content.vue","./src/views/decoration/component/widgets/customer-service/index.ts","./src/views/decoration/component/widgets/middle-banner/options.ts","./src/views/decoration/component/widgets/middle-banner/attr.vue","./src/views/decoration/component/widgets/middle-banner/content.vue","./src/views/decoration/component/widgets/middle-banner/index.ts","./src/views/decoration/component/widgets/my-service/options.ts","./src/views/decoration/component/widgets/my-service/attr.vue","./src/views/decoration/component/widgets/my-service/content.vue","./src/views/decoration/component/widgets/my-service/index.ts","./src/views/decoration/component/widgets/nav/options.ts","./src/views/decoration/component/widgets/nav/attr.vue","./src/views/decoration/component/widgets/nav/content.vue","./src/views/decoration/component/widgets/nav/index.ts","./src/views/decoration/component/widgets/news/options.ts","./src/views/decoration/component/widgets/news/attr.vue","./src/views/decoration/component/widgets/news/content.vue","./src/views/decoration/component/widgets/news/index.ts","./src/views/decoration/component/widgets/page-meta/options.ts","./src/views/decoration/component/widgets/page-meta/attr.vue","./src/views/decoration/component/widgets/page-meta/content.vue","./src/views/decoration/component/widgets/page-meta/index.ts","./src/views/decoration/component/widgets/pc-banner/options.ts","./src/views/decoration/component/widgets/pc-banner/content.vue","./src/views/decoration/component/widgets/pc-banner/index.ts","./src/views/decoration/component/widgets/search/options.ts","./src/views/decoration/component/widgets/search/attr.vue","./src/views/decoration/component/widgets/search/content.vue","./src/views/decoration/component/widgets/search/index.ts","./src/views/decoration/component/widgets/user-banner/options.ts","./src/views/decoration/component/widgets/user-banner/attr.vue","./src/views/decoration/component/widgets/user-banner/content.vue","./src/views/decoration/component/widgets/user-banner/index.ts","./src/views/decoration/component/widgets/user-info/options.ts","./src/views/decoration/component/widgets/user-info/attr.vue","./src/views/decoration/component/widgets/user-info/content.vue","./src/views/decoration/component/widgets/user-info/index.ts","./src/views/decoration/pages/index.vue","./src/views/decoration/style/components/theme-picker.vue","./src/views/decoration/style/components/mobile-style.vue","./src/views/decoration/style/style.vue","./src/views/dev_tools/components/relations-add.vue","./src/views/dev_tools/code/edit.vue","./src/views/dev_tools/components/code-preview.vue","./src/views/dev_tools/components/data-table.vue","./src/views/dev_tools/code/index.vue","./src/views/doctor/dept-tongji.vue","./src/views/doctor/medicine.vue","./src/views/doctor/roster.vue","./src/views/doctor/tongji.vue","./src/views/fans/commission-settlement.vue","./src/views/fans/index.vue","./src/views/fans/qywx.vue","./src/views/fans/yeji.vue","./src/views/finance/balance_details.vue","./src/views/finance/mubiao-dept-node.vue","./src/views/finance/mubiao-dept-card.vue","./src/views/finance/mubiao.vue","./src/views/finance/recharge_record.vue","./src/views/finance/component/refund-log.vue","./src/views/finance/refund_record.vue","./src/views/finance/account_cost/edit.vue","./src/views/finance/account_cost/index.vue","./src/views/first_visit/conversion/index.vue","./src/views/first_visit/doctor_dashboard/index.vue","./src/views/first_visit/my_patients/components/order-actions.ts","./src/views/first_visit/my_patients/components/orderactionhost.vue","./src/views/first_visit/my_patients/components/orderpanel.vue","./src/views/first_visit/my_patients/components/progresspanel.vue","./src/views/first_visit/my_patients/components/paibanpanel.vue","./src/views/first_visit/my_patients/index.vue","./src/views/first_visit/registration_stats/index.vue","./src/views/first_visit/wecom_promotion/components/wecom-widget-templates.ts","./src/views/first_visit/wecom_promotion/components/wecomfloatingwidgetbuilder.vue","./src/views/first_visit/wecom_promotion/index.vue","./src/views/material/index.vue","./src/views/message/notice/edit.vue","./src/views/message/notice/index.vue","./src/views/message/short_letter/edit.vue","./src/views/message/short_letter/index.vue","./src/views/order/index.vue","./src/views/organization/department/edit.vue","./src/views/organization/department/index.vue","./src/views/organization/post/edit.vue","./src/views/organization/post/index.vue","./src/views/patient/reception/index.vue","./src/views/permission/admin/edit.vue","./src/views/permission/admin/index.vue","./src/views/permission/menu/edit.vue","./src/views/permission/menu/index.vue","./src/views/permission/role/auth.vue","./src/views/permission/role/edit.vue","./src/views/permission/role/index.vue","./src/views/pharmacy/medicine_mapping/latest-request.d.mts","./src/views/pharmacy/medicine_mapping/index.vue","./src/views/setting/dict/data/edit.vue","./src/views/setting/dict/data/index.vue","./src/views/setting/dict/type/edit.vue","./src/views/setting/dict/type/index.vue","./src/views/setting/pay/config/edit.vue","./src/views/setting/pay/config/index.vue","./src/views/setting/pay/method/index.vue","./src/views/setting/search/index.vue","./src/views/setting/storage/edit.vue","./src/views/setting/storage/index.vue","./src/views/setting/system/cache.vue","./src/views/setting/system/environment.vue","./src/views/setting/system/journal.vue","./src/views/setting/system/scheduled_task/edit.vue","./src/views/setting/system/scheduled_task/index.vue","./src/views/setting/user/login_register.vue","./src/views/setting/user/setup.vue","./src/views/setting/website/filing.vue","./src/views/setting/website/information.vue","./src/views/setting/website/protocol.vue","./src/views/setting/website/statistics.vue","./src/views/stats/assistant-performance/index.vue","./src/views/stats/auto_assign_log/index.vue","./src/views/stats/conversion/index.vue","./src/views/stats/performance-dashboard/index.vue","./src/views/stats/revisit_rate/index.vue","./src/views/stats/self_input/mediasourceselect.vue","./src/views/stats/self_input/usemediasourceoptions.ts","./src/views/stats/self_input/cost-edit.vue","./src/views/stats/self_input/account_cost.vue","./src/views/stats/self_input/yeji-edit.vue","./src/views/stats/self_input/index.vue","./src/views/tcm/appointment/list.vue","./src/views/tcm/appointment/list_h5.vue","./src/views/tcm/appointment/components/prescription-drawer.vue","./src/views/tcm/diagnosis/add.vue","./src/views/tcm/diagnosis/index.vue","./src/views/tcm/diagnosis/components/bloodrecordlist.vue","./src/views/tcm/diagnosis/components/dietrecordlist.vue","./src/views/tcm/diagnosis/components/exerciserecordlist.vue","./src/views/tcm/diagnosis/components/trackingmatrix.vue","./src/views/tcm/follow/index.vue","./src/views/template/component/file.vue","./src/views/template/component/icon.vue","./src/views/template/component/link.vue","./src/views/template/component/overflow.vue","./src/views/template/component/popover_input.vue","./src/views/template/component/rich_text.vue","./src/views/template/component/upload.vue","./src/views/test/patient-call.vue","./src/views/workbench/index.vue","./components.d.ts","./auto-imports.d.ts","./typings/index.d.ts","./typings/router.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/index.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.typedarray.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.buffer.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/events.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","./node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/storage.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert/strict.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/async_hooks.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/child_process.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/cluster.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/console.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/constants.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/crypto.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dgram.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/domain.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/events.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http2.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/https.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.generated.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/module.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/net.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/os.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/path.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/perf_hooks.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/process.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/punycode.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/querystring.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/repl.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sea.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sqlite.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/consumers.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/web.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/string_decoder.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/test.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers/promises.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tls.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/trace_events.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tty.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/url.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/util.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/v8.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/vm.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/wasi.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/worker_threads.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/zlib.d.ts","./node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/index.d.ts","./node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","./node_modules/.pnpm/rollup@4.60.3/node_modules/rollup/dist/rollup.d.ts","./node_modules/.pnpm/rollup@4.60.3/node_modules/rollup/dist/parseast.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/modulerunnertransport.d-dj_me5sf.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/module-runner.d.ts","./node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/lib/main.d.ts","./node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/previous-map.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/input.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/declaration.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/root.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/warning.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/lazy-result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/no-work-result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/processor.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/result.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/document.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/rule.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/node.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/comment.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/container.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/at-rule.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/list.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/postcss.d.ts","./node_modules/.pnpm/postcss@8.5.14/node_modules/postcss/lib/postcss.d.mts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/deprecations.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/util/promise_or.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/importer.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/source_location.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/source_span.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/logger/index.d.ts","./node_modules/.pnpm/immutable@4.3.8/node_modules/immutable/dist/immutable.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/boolean.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/calculation.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/color.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/function.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/list.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/map.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/mixin.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/number.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/string.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/argument_list.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/value/index.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/options.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/compile.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/exception.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/exception.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/plugin_this.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/function.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/importer.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/options.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/legacy/render.d.ts","./node_modules/.pnpm/sass@1.79.6/node_modules/sass/types/index.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/types/metadata.d.ts","./node_modules/.pnpm/vite@6.4.2_@types+node@22.1_8f5e549addd5aa700368df43e00a64dc/node_modules/vite/dist/node/index.d.ts","./node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.d.mts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/typescript.d.ts","./node_modules/.pnpm/@vue+compiler-sfc@3.5.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts","./node_modules/.pnpm/vue@3.5.33_typescript@5.7.3/node_modules/vue/compiler-sfc/index.d.mts","./node_modules/.pnpm/@vitejs+plugin-vue@5.2.1_vi_26ff37bca32818ba6abc2479b735c8c5/node_modules/@vitejs/plugin-vue/dist/index.d.mts","./node_modules/.pnpm/@vue+babel-plugin-resolve-type@1.5.0_@babel+core@7.29.0/node_modules/@vue/babel-plugin-resolve-type/dist/index.d.mts","./node_modules/.pnpm/@vue+babel-plugin-jsx@1.5.0_@babel+core@7.29.0/node_modules/@vue/babel-plugin-jsx/dist/index.d.mts","./node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.1._15604a3242b44866a4c8e668a8c2b0af/node_modules/@vitejs/plugin-vue-jsx/dist/index.d.mts","./node_modules/.pnpm/mlly@1.8.2/node_modules/mlly/dist/index.d.ts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/shared/unimport.cavrr9sh.d.mts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/shared/unimport.czoa5cgj.d.mts","./node_modules/.pnpm/js-tokens@9.0.1/node_modules/js-tokens/index.d.ts","./node_modules/.pnpm/strip-literal@3.1.0/node_modules/strip-literal/dist/index.d.mts","./node_modules/.pnpm/unimport@4.1.1/node_modules/unimport/dist/index.d.mts","./node_modules/.pnpm/unplugin-utils@0.2.5/node_modules/unplugin-utils/dist/index.d.ts","./node_modules/.pnpm/unplugin-auto-import@19.1.0_6f0c1011f66a70c739aaa005d5971cab/node_modules/unplugin-auto-import/dist/types.d.ts","./node_modules/.pnpm/unplugin-auto-import@19.1.0_6f0c1011f66a70c739aaa005d5971cab/node_modules/unplugin-auto-import/dist/vite.d.ts","./node_modules/.pnpm/webpack-virtual-modules@0.6.2/node_modules/webpack-virtual-modules/lib/index.d.ts","./node_modules/.pnpm/unplugin@2.2.0/node_modules/unplugin/dist/index.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/types.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/resolvers.d.ts","./node_modules/.pnpm/unplugin-vue-components@28._94a912e1594e219e37a7871a02240417/node_modules/unplugin-vue-components/dist/vite.d.ts","./node_modules/.pnpm/vite-plugin-style-import@2._963cef04d855493cf45de9418d5fb104/node_modules/vite-plugin-style-import/dist/index.d.ts","./node_modules/.pnpm/@types+svgo@2.6.4/node_modules/@types/svgo/index.d.ts","./node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_832c8c32224a985848ba91788e93a372/node_modules/vite-plugin-svg-icons/dist/index.d.ts","./node_modules/.pnpm/vite-plugin-vue-setup-exten_dfd817fabadf21a508603ce199129005/node_modules/vite-plugin-vue-setup-extend/dist/index.d.ts","./vite.config.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/common.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/array.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/collection.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/date.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/function.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/lang.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/math.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/number.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/object.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/seq.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/string.d.ts","./node_modules/.pnpm/@types+lodash@4.17.24/node_modules/@types/lodash/common/util.d.ts"],"fileIdsList":[[99,103,109,868,1400,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1400,1423,1455,1468,1471,1546,1582,2076,2077,2078,2100,2101,2102,2103,2104,2186,2187,2189,2190,2191,2192,2193,2194,2196,2197,2198,2199,2201,2202,2203,2204,2205,2206,2208,2209,2210,2211,2226,2462,2468,2516,2533,2534],[88,868,1423,2468,2516,2533,2534],[91,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534],[868,1027,1423,2468,2516,2533,2534],[868,1028,1423,2468,2516,2533,2534],[868,1027,1028,1029,1030,1031,1032,1033,1034,1035,1423,2468,2516,2533,2534],[99,103,109,868,1423,2459,2468,2516,2533,2534],[166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,868,1423,2468,2516,2533,2534],[459,868,1423,2468,2516,2533,2534],[868,985,1423,2468,2516,2533,2534],[868,986,987,1423,2468,2516,2533,2534],[868,1423,1930,2468,2516,2533,2534],[868,1423,1924,1926,2468,2516,2533,2534],[868,1423,1914,1924,1925,1927,1928,1929,2468,2516,2533,2534],[868,1423,1924,2468,2516,2533,2534],[868,1423,1914,1924,2468,2516,2533,2534],[868,1423,1915,1916,1917,1918,1919,1920,1921,1922,1923,2468,2516,2533,2534],[868,1423,1915,1919,1920,1923,1924,1927,2468,2516,2533,2534],[868,1423,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1927,1928,2468,2516,2533,2534],[868,1423,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,2468,2516,2533,2534],[825,868,1423,2468,2516,2533,2534],[819,821,868,1423,2468,2516,2533,2534],[809,819,820,822,823,824,868,1423,2468,2516,2533,2534],[819,868,1423,2468,2516,2533,2534],[809,819,868,1423,2468,2516,2533,2534],[810,811,812,813,814,815,816,817,818,868,1423,2468,2516,2533,2534],[810,814,815,818,819,822,868,1423,2468,2516,2533,2534],[810,811,812,813,814,815,816,817,818,819,820,822,823,868,1423,2468,2516,2533,2534],[809,810,811,812,813,814,815,816,817,818,868,1423,2468,2516,2533,2534],[868,1423,2097,2468,2516,2533,2534],[868,1423,2088,2089,2093,2094,2468,2516,2533,2534],[868,1423,2088,2468,2516,2533,2534],[868,1423,2085,2086,2087,2468,2516,2533,2534],[868,1423,2088,2095,2096,2468,2516,2533,2534],[868,1423,2088,2093,2468,2516,2533,2534],[868,1423,2089,2090,2091,2092,2468,2516,2533,2534],[868,1423,1638,2468,2516,2533,2534],[868,1423,1613,2468,2516,2533,2534],[868,1423,1615,1616,2468,2516,2533,2534],[868,1423,1614,1617,1954,2016,2468,2516,2533,2534],[868,1423,1635,2468,2516,2533,2534],[99,103,109,868,1423,1989,1990,2459,2468,2516,2533,2534],[99,103,109,868,1423,1989,2459,2468,2516,2533,2534],[99,103,109,868,1423,1972,2459,2468,2516,2533,2534],[99,103,109,868,1423,1974,2459,2468,2516,2533,2534],[99,103,109,868,1423,1974,1975,2459,2468,2516,2533,2534],[868,1423,1972,2468,2516,2533,2534],[99,103,109,868,1423,1977,2459,2468,2516,2533,2534],[99,103,109,868,1423,1979,2459,2468,2516,2533,2534],[99,103,109,868,1423,1979,1980,1981,2459,2468,2516,2533,2534],[868,1423,2010,2468,2516,2533,2534],[868,1423,1973,1976,1978,1982,1983,1988,1991,1993,1994,1995,1997,1998,2002,2004,2006,2009,2011,2012,2468,2516,2533,2534],[99,103,109,868,1423,1992,2459,2468,2516,2533,2534],[868,1423,1984,1985,2468,2516,2533,2534],[868,1423,1986,1987,2468,2516,2533,2534],[868,1423,2007,2008,2468,2516,2533,2534],[99,103,109,868,1423,2007,2459,2468,2516,2533,2534],[868,1423,1999,2000,2001,2468,2516,2533,2534],[99,103,109,868,1423,1999,2459,2468,2516,2533,2534],[99,103,109,868,1423,1996,2459,2468,2516,2533,2534],[99,103,109,868,1423,2003,2459,2468,2516,2533,2534],[99,103,109,868,1423,2005,2459,2468,2516,2533,2534],[99,103,109,868,1423,2014,2459,2468,2516,2533,2534],[868,1423,1961,1971,2013,2015,2468,2516,2533,2534],[868,1423,1962,1963,2468,2516,2533,2534],[99,103,109,868,1423,1962,2459,2468,2516,2533,2534],[99,103,109,868,1423,1960,1961,2459,2468,2516,2533,2534],[868,1423,1965,1966,1967,2468,2516,2533,2534],[99,103,109,868,1423,1965,2459,2468,2516,2533,2534],[99,103,109,868,1423,1955,1964,1968,2459,2468,2516,2533,2534],[99,103,109,868,1423,1955,1960,1967,2459,2468,2516,2533,2534],[868,1423,1960,2468,2516,2533,2534],[868,1423,1968,1969,1970,2468,2516,2533,2534],[868,1423,1746,1756,1824,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1746,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1813,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1814,1913,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1913,2468,2516,2533,2534],[868,1423,1746,1747,1748,1749,1756,1757,1758,1823,2468,2516,2533,2534],[868,1423,1746,1751,1752,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1746,1747,1748,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1755,2468,2516,2533,2534],[868,1423,1755,1815,2468,2516,2533,2534],[868,1423,1746,1755,2468,2516,2533,2534],[868,1423,1759,1816,1817,1818,1819,1820,1821,1822,2468,2516,2533,2534],[868,1423,1746,1747,1750,2468,2516,2533,2534],[868,1423,1746,2468,2516,2533,2534],[868,1423,1747,1756,2468,2516,2533,2534],[868,1423,1747,2468,2516,2533,2534],[868,1423,1742,1746,1756,2468,2516,2533,2534],[868,1423,1756,2468,2516,2533,2534],[868,1423,1746,1747,2468,2516,2533,2534],[868,1423,1750,1756,2468,2516,2533,2534],[868,1423,1747,1756,1824,2468,2516,2533,2534],[868,1423,1747,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2468,2516,2533,2534],[868,1423,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,2468,2516,2533,2534],[868,1423,1748,2468,2516,2533,2534],[868,1423,1746,1747,1756,2468,2516,2533,2534],[868,1423,1753,1754,1755,1756,2468,2516,2533,2534],[868,1423,1751,1752,1753,1754,1755,1756,1758,1823,1824,1825,1877,1883,1884,1888,1889,1912,2468,2516,2533,2534],[868,1423,1878,1879,1880,1881,1882,2468,2516,2533,2534],[868,1423,1747,1751,1756,2468,2516,2533,2534],[868,1423,1751,2468,2516,2533,2534],[868,1423,1747,1751,1756,1824,2468,2516,2533,2534],[868,1423,1746,1747,1751,1752,1753,1754,1755,1756,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1748,1756,1824,2468,2516,2533,2534],[868,1423,1885,1886,1887,2468,2516,2533,2534],[868,1423,1747,1752,1756,2468,2516,2533,2534],[868,1423,1752,2468,2516,2533,2534],[868,1423,1746,1747,1748,1750,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1824,1913,2468,2516,2533,2534],[868,1423,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,2468,2516,2533,2534],[868,1423,1746,1748,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1933,2468,2516,2533,2534],[868,1423,1933,1934,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1939,2468,2516,2533,2534],[868,1423,1939,1940,2468,2516,2533,2534],[868,1423,1742,2468,2516,2533,2534],[868,1423,1745,2468,2516,2533,2534],[868,1423,1743,2468,2516,2533,2534],[868,1423,1744,2468,2516,2533,2534],[99,103,109,868,1423,1744,1745,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,1935,2459,2468,2516,2533,2534],[99,103,109,868,1423,1746,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2459,2468,2516,2533,2534],[99,103,109,868,1423,1937,2459,2468,2516,2533,2534],[99,103,109,868,1423,1744,1745,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1932,1941,2459,2468,2516,2533,2534],[868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1936,1937,1938,1942,1943,1944,1945,1946,1947,2468,2516,2533,2534],[99,103,109,868,1423,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,1937,2459,2468,2516,2533,2534],[99,103,109,868,1423,1747,1748,1753,1754,1755,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1913,2459,2468,2516,2533,2534],[868,1423,2224,2468,2516,2533,2534],[868,1423,2215,2216,2220,2221,2468,2516,2533,2534],[868,1423,2215,2468,2516,2533,2534],[868,1423,2212,2213,2214,2468,2516,2533,2534],[868,1423,2215,2222,2223,2468,2516,2533,2534],[868,1423,2215,2220,2468,2516,2533,2534],[868,1423,2216,2217,2218,2219,2468,2516,2533,2534],[123,868,1423,2468,2516,2533,2534],[471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663],[868,1423,2468,2513,2514,2516,2533,2534],[868,1423,2468,2515,2516,2533,2534],[868,1423,2516,2533,2534],[868,1423,2468,2516,2521,2533,2534,2551],[868,1423,2468,2516,2517,2522,2527,2533,2534,2536,2548,2559],[868,1423,2468,2516,2517,2518,2527,2533,2534,2536],[868,1423,2463,2464,2465,2468,2516,2533,2534],[868,1423,2468,2516,2519,2533,2534,2560],[868,1423,2468,2516,2520,2521,2528,2533,2534,2537],[868,1423,2468,2516,2521,2533,2534,2548,2556],[868,1423,2468,2516,2522,2524,2527,2533,2534,2536],[868,1423,2468,2515,2516,2523,2533,2534],[868,1423,2468,2516,2524,2525,2533,2534],[868,1423,2468,2516,2526,2527,2533,2534],[868,1423,2468,2515,2516,2527,2533,2534],[868,1423,2468,2516,2527,2528,2529,2533,2534,2548,2559],[868,1423,2468,2516,2527,2528,2529,2533,2534,2543,2548,2551],[868,1423,2468,2509,2516,2524,2527,2530,2533,2534,2536,2548,2559],[868,1423,2468,2516,2527,2528,2530,2531,2533,2534,2536,2548,2556,2559],[868,1423,2468,2516,2530,2532,2533,2534,2548,2556,2559],[868,1423,2466,2467,2468,2469,2470,2471,2472,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565],[868,1423,2468,2516,2527,2533,2534],[868,1423,2468,2516,2533,2534,2535,2559],[868,1423,2468,2516,2524,2527,2533,2534,2536,2548],[868,1423,2468,2516,2533,2534,2537],[868,1423,2468,2516,2533,2534,2538],[868,1423,2468,2515,2516,2533,2534,2539],[868,1423,2468,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565],[868,1423,2468,2516,2533,2534,2541],[868,1423,2468,2516,2533,2534,2542],[868,1423,2468,2516,2527,2533,2534,2543,2544],[868,1423,2468,2516,2533,2534,2543,2545,2560,2562],[868,1423,2468,2516,2528,2533,2534],[868,1423,2468,2516,2527,2533,2534,2548,2549,2551],[868,1423,2468,2516,2533,2534,2550,2551],[868,1423,2468,2516,2533,2534,2548,2549],[868,1423,2468,2516,2533,2534,2551],[868,1423,2468,2516,2533,2534,2552],[868,1423,2468,2513,2516,2533,2534,2548,2553,2559],[868,1423,2468,2516,2527,2533,2534,2554,2555],[868,1423,2468,2516,2533,2534,2554,2555],[868,1423,2468,2516,2521,2533,2534,2536,2548,2556],[868,1423,2468,2516,2533,2534,2557],[868,1423,2468,2516,2533,2534,2536,2558],[868,1423,2468,2516,2530,2533,2534,2542,2559],[868,1423,2468,2516,2521,2533,2534,2560],[868,1423,2468,2516,2533,2534,2548,2561],[868,1423,2468,2516,2533,2534,2535,2562],[868,1423,2468,2516,2533,2534,2563],[868,1423,2468,2509,2516,2533,2534],[868,1423,2468,2509,2516,2527,2529,2533,2534,2539,2548,2551,2559,2561,2562,2564],[868,1423,2468,2516,2533,2534,2548,2565],[868,1423,2468,2516,2533,2534,2566],[868,1423,2173,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2624,2631],[868,1423,2468,2516,2533,2534,2624,2628],[91,868,1423,2468,2516,2533,2534,2630],[868,1423,2468,2516,2533,2534,2627],[90,91,92,868,1423,2468,2516,2533,2534],[93,868,1423,2468,2516,2533,2534],[91,92,93,868,1423,2468,2516,2533,2534,2592,2625,2626],[90,868,1423,2468,2516,2533,2534],[90,95,96,98,868,1423,2468,2516,2533,2534],[95,96,97,98,868,1423,2468,2516,2533,2534],[99,103,109,778,868,1423,2459,2468,2516,2533,2534],[99,103,104,109,868,1423,2459,2468,2516,2533,2534],[868,1423,2129,2151,2153,2468,2516,2533,2534],[868,1423,2129,2150,2152,2153,2165,2468,2516,2533,2534],[868,1423,2150,2152,2153,2157,2468,2516,2533,2534],[868,1423,2166,2167,2468,2516,2533,2534],[868,1423,2129,2150,2153,2157,2169,2170,2171,2468,2516,2533,2534],[868,1423,2129,2148,2150,2151,2152,2468,2516,2533,2534],[868,1423,2178,2468,2516,2533,2534],[88,868,1423,2152,2153,2154,2155,2156,2161,2168,2172,2177,2179,2468,2516,2533,2534],[868,1423,2151,2468,2516,2533,2534],[868,1423,2150,2151,2152,2468,2516,2533,2534],[868,1423,2151,2157,2158,2160,2468,2516,2533,2534],[868,1423,2129,2150,2153,2468,2516,2533,2534],[868,1423,2150,2153,2468,2516,2533,2534],[868,1423,2150,2151,2153,2159,2468,2516,2533,2534],[868,1423,2129,2147,2153,2468,2516,2533,2534],[868,1423,2150,2468,2516,2533,2534],[868,1423,2129,2153,2468,2516,2533,2534],[868,1423,2174,2175,2468,2516,2533,2534],[868,1423,2175,2176,2468,2516,2533,2534],[868,1423,2174,2468,2516,2533,2534],[868,1423,2149,2468,2516,2533,2534],[868,1423,2180,2468,2516,2533,2534],[868,1423,2129,2180,2182,2468,2516,2533,2534],[88,868,1423,2107,2108,2109,2129,2180,2181,2183,2468,2516,2533,2534],[868,1144,1423,2468,2516,2533,2534],[867,1423,2468,2516,2533,2534],[868,1423,2231,2468,2516,2533,2534],[868,1423,2233,2468,2516,2533,2534],[868,1423,1440,2468,2516,2533,2534],[868,1423,2235,2468,2516,2533,2534],[868,1423,1442,2468,2516,2533,2534],[868,1423,2237,2468,2516,2533,2534],[868,1423,1439,2468,2516,2533,2534],[462,792,793,794,868,1423,2468,2516,2533,2534],[97,99,103,109,154,157,792,793,868,1423,2459,2468,2516,2533,2534],[97,99,103,109,794,868,1423,2459,2468,2516,2533,2534],[462,792,796,797,798,868,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,796,868,1423,2459,2468,2516,2533,2534],[797,868,1423,2468,2516,2533,2534],[462,792,800,801,803,868,1423,2468,2516,2533,2534],[99,103,109,802,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,800,868,1423,2459,2468,2516,2533,2534],[99,103,109,801,868,1423,2459,2468,2516,2533,2534],[462,792,868,1390,1391,1423,2468,2516,2533,2534],[99,103,109,154,157,792,805,808,838,868,1043,1047,1315,1390,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1045,1047,1391,1423,2459,2468,2516,2533,2534],[462,792,833,834,839,840,841,842,868,1423,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,829,838,868,1400,1423,2459,2468,2516,2533,2534],[97,99,103,109,151,154,157,461,792,868,1423,2459,2468,2516,2533,2534],[97,99,103,109,833,868,1423,2459,2468,2516,2533,2534],[99,103,109,833,868,1423,2459,2468,2516,2533,2534],[840,841,868,1423,2468,2516,2533,2534],[462,792,844,845,846,868,1423,2468,2516,2533,2534],[99,103,109,844,868,1423,2459,2468,2516,2533,2534],[845,868,1423,2468,2516,2533,2534],[462,792,848,849,850,868,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,848,868,1423,2459,2468,2516,2533,2534],[849,868,1423,2468,2516,2533,2534],[462,792,852,853,854,855,856,857,868,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1423,2459,2462,2468,2516,2533,2534],[99,103,109,853,868,1423,2459,2462,2468,2516,2533,2534],[99,103,109,852,868,1423,2459,2468,2516,2533,2534],[855,856,868,1423,2468,2516,2533,2534],[462,792,859,860,861,863,864,868,1423,2468,2516,2533,2534],[99,103,109,792,859,868,1423,2459,2468,2516,2533,2534],[99,103,109,862,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,859,868,1423,2459,2468,2516,2533,2534],[99,103,109,859,868,1423,2459,2468,2516,2533,2534],[861,863,868,1423,2468,2516,2533,2534],[462,792,866,868,870,873,1423,2468,2516,2533,2534],[99,103,109,866,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,871,1423,2459,2468,2516,2533,2534],[868,870,872,1423,2468,2516,2533,2534],[462,792,868,875,876,877,1423,2468,2516,2533,2534],[99,103,109,868,875,1423,2459,2468,2516,2533,2534],[868,876,1423,2468,2516,2533,2534],[462,792,868,879,880,881,882,883,884,1423,2468,2516,2533,2534],[99,103,109,868,880,1423,2459,2468,2516,2533,2534],[99,103,109,868,879,1423,2459,2468,2516,2533,2534],[868,882,883,1423,2468,2516,2533,2534],[154,462,792,868,886,887,889,890,891,1423,2468,2516,2533,2534],[99,103,109,157,792,868,886,1423,2459,2468,2516,2533,2534],[99,103,109,868,886,887,889,891,1423,2459,2468,2516,2533,2534],[868,888,890,1423,2468,2516,2533,2534],[99,103,109,868,886,887,1423,2459,2468,2516,2533,2534],[868,886,1423,2468,2516,2533,2534],[99,103,109,154,792,868,887,1423,2459,2468,2516,2533,2534],[462,792,868,1001,1002,1003,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,886,887,889,892,995,997,999,1000,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,838,868,886,887,891,892,1001,1423,2459,2468,2516,2533,2534],[868,1002,1423,2468,2516,2533,2534],[462,792,868,1005,1006,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1005,1423,2459,2468,2516,2533,2534],[99,103,109,868,1006,1423,2459,2468,2516,2533,2534],[462,792,868,1008,1009,1010,1011,1012,1013,1423,2468,2516,2533,2534],[99,103,109,868,1009,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,996,997,1009,1010,1423,2459,2468,2516,2533,2534],[99,103,109,868,1009,1011,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,996,997,1008,1423,2459,2468,2516,2533,2534],[99,103,109,868,1011,1423,2459,2468,2516,2533,2534],[462,792,868,1015,1016,1423,2468,2516,2533,2534],[99,103,109,154,157,792,868,1015,1423,2459,2468,2516,2533,2534],[99,103,109,868,1016,1423,2459,2468,2516,2533,2534],[462,792,868,1025,1423,2468,2516,2533,2534],[462,792,868,1018,1019,1020,1021,1022,1023,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1018,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1019,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,868,1018,1423,2459,2468,2516,2533,2534],[868,1021,1022,1423,2468,2516,2533,2534],[462,792,868,1038,1039,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1036,1037,1038,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1037,1039,1423,2459,2468,2516,2533,2534],[868,1036,1423,2468,2516,2533,2534],[462,792,868,1048,1049,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,995,996,997,1036,1043,1047,1048,1423,2459,2468,2516,2533,2534],[99,103,109,868,1037,1049,1423,2459,2468,2516,2533,2534],[462,792,868,1086,1087,1088,1089,1423,2468,2516,2533,2534],[99,103,109,157,792,859,865,868,875,878,964,1053,1056,1058,1059,1061,1062,1067,1085,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,859,868,875,964,1053,1058,1059,1061,1067,1086,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1086,1423,2459,2468,2516,2533,2534],[99,103,109,779,868,965,997,1086,1088,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1091,1092,1093,1094,1095,1423,2468,2516,2533,2534],[462,792,868,1097,1098,1423,2468,2516,2533,2534],[99,103,109,157,792,868,869,1097,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1098,1423,2459,2468,2516,2533,2534],[462,792,868,1108,1109,1110,1111,1112,1423,2468,2516,2533,2534],[99,103,109,868,966,997,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1100,1107,1109,1400,1423,2459,2468,2516,2533,2534],[868,1111,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1100,1107,1109,1423,2459,2468,2516,2533,2534],[868,869,1423,2468,2516,2533,2534],[462,792,868,1114,1115,1116,1423,2468,2516,2533,2534],[99,100,103,109,157,792,838,868,1100,1107,1109,1113,1400,1423,2459,2468,2516,2533,2534],[868,1115,1423,2468,2516,2533,2534],[99,103,109,157,792,838,868,1100,1107,1109,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1118,1119,1120,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1118,1423,2459,2468,2516,2533,2534],[99,103,109,868,1119,1423,2459,2468,2516,2533,2534],[462,792,868,1052,1053,1054,1055,1423,2468,2516,2533,2534],[99,103,109,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1051,1052,1423,2459,2468,2516,2533,2534],[99,103,109,868,1053,1423,2459,2468,2516,2533,2534],[462,792,868,1122,1123,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1122,1423,2459,2468,2516,2533,2534],[99,103,109,868,1123,1423,2459,2468,2516,2533,2534],[462,792,868,1125,1126,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1053,1056,1125,1423,2459,2468,2516,2533,2534],[99,103,109,868,1053,1056,1126,1423,2459,2468,2516,2533,2534],[462,792,868,1131,1132,1133,1134,1135,1136,1423,2468,2516,2533,2534],[99,103,109,157,462,792,868,1129,1400,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,826,827,829,838,859,865,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,461,462,792,827,829,838,859,862,863,865,868,965,997,1041,1043,1045,1047,1071,1076,1129,1130,1400,1423,2459,2468,2516,2533,2534],[868,1132,1423,2468,2516,2533,2534],[99,103,109,829,838,868,1423,2459,2468,2516,2533,2534],[462,792,868,1138,1139,1140,1423,2468,2516,2533,2534],[99,103,109,868,1138,1423,2459,2468,2516,2533,2534],[868,1139,1423,2468,2516,2533,2534],[462,792,868,1143,1146,1147,1148,1149,1150,1151,1152,1153,1423,2468,2516,2533,2534],[99,103,109,868,1146,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,792,868,1146,1423,2459,2468,2516,2533,2534],[99,103,109,868,1146,1147,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,792,868,1146,1147,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1143,1146,1147,1423,2459,2468,2516,2533,2534],[868,1149,1150,1423,2468,2516,2533,2534],[99,103,109,151,779,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,779,792,868,1142,1143,1145,1147,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1146,1147,1423,2459,2468,2516,2533,2534],[462,792,868,1128,1129,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1128,1423,2459,2468,2516,2533,2534],[99,103,109,868,1129,1423,2459,2468,2516,2533,2534],[462,792,868,1155,1156,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1155,1423,2459,2468,2516,2533,2534],[99,103,109,868,1156,1423,2459,2468,2516,2533,2534],[462,792,868,1158,1159,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1158,1423,2459,2468,2516,2533,2534],[99,103,109,868,1156,1157,1159,1423,2459,2468,2516,2533,2534],[154,794,795,796,798,799,801,804,805,807,808,827,829,830,831,832,833,834,835,836,837,838,839,842,843,844,846,847,848,850,851,852,853,854,857,858,859,860,864,865,866,868,873,874,875,877,878,879,880,881,884,885,886,887,889,891,892,999,1000,1001,1003,1004,1006,1007,1009,1011,1012,1014,1016,1017,1018,1019,1020,1023,1024,1026,1039,1040,1041,1043,1045,1046,1047,1049,1050,1053,1054,1055,1056,1058,1059,1061,1062,1067,1069,1071,1073,1074,1075,1076,1085,1086,1087,1088,1089,1090,1096,1098,1099,1100,1101,1102,1103,1105,1107,1108,1109,1110,1112,1113,1114,1116,1117,1119,1120,1121,1123,1124,1126,1127,1129,1130,1131,1133,1134,1137,1138,1140,1141,1143,1146,1147,1148,1149,1150,1154,1156,1157,1159,1160,1162,1163,1164,1166,1167,1168,1169,1170,1171,1172,1175,1176,1177,1178,1179,1181,1182,1183,1184,1185,1187,1188,1190,1191,1193,1195,1197,1198,1199,1201,1202,1204,1205,1207,1208,1209,1211,1212,1213,1214,1215,1217,1218,1220,1222,1225,1227,1229,1230,1233,1234,1236,1238,1239,1242,1244,1245,1246,1247,1248,1249,1251,1252,1254,1256,1257,1258,1260,1261,1262,1263,1265,1267,1283,1284,1285,1292,1294,1296,1298,1299,1300,1301,1302,1303,1305,1307,1308,1309,1311,1312,1313,1318,1319,1320,1321,1324,1326,1327,1328,1329,1331,1335,1336,1339,1341,1343,1345,1346,1347,1349,1350,1351,1352,1354,1355,1357,1360,1361,1362,1365,1366,1369,1371,1372,1374,1375,1376,1377,1378,1379,1380,1382,1384,1385,1387,1389,1391,1392,1423,2468,2516,2533,2534],[99,103,109,462,792,868,1373,1423,2459,2468,2516,2533,2534],[462,792,868,1161,1162,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1161,1423,2459,2468,2516,2533,2534],[99,103,109,868,1162,1423,2459,2468,2516,2533,2534],[462,792,868,1164,1165,1166,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,999,1000,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,868,1164,1400,1423,2459,2468,2516,2533,2534],[868,1165,1423,2468,2516,2533,2534],[462,792,805,806,807,868,1423,2468,2516,2533,2534],[99,103,109,151,154,157,461,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,805,868,1423,2459,2468,2516,2533,2534],[806,868,1423,2468,2516,2533,2534],[462,792,868,1060,1061,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1060,1423,2459,2468,2516,2533,2534],[99,103,109,868,1061,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1376,1377,1378,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1376,1423,2459,2468,2516,2533,2534],[99,103,109,868,1375,1423,2459,2468,2516,2533,2534],[99,103,109,779,868,1423,2459,2468,2516,2533,2534],[462,792,868,1362,1364,1365,1423,2468,2516,2533,2534],[868,1362,1423,2468,2516,2533,2534],[99,103,109,154,157,792,805,808,838,868,1043,1047,1315,1362,1363,1364,1423,2459,2468,2516,2533,2534],[99,103,109,807,808,868,1045,1047,1362,1365,1423,2459,2468,2516,2533,2534],[462,792,868,1168,1169,1170,1171,1172,1173,1174,1175,1176,1423,2468,2516,2533,2534],[868,1168,1172,1173,1174,1423,2468,2516,2533,2534],[99,103,109,868,1171,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1169,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1169,1170,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1169,1423,2459,2462,2468,2516,2533,2534],[99,103,109,868,1168,1423,2459,2462,2468,2516,2533,2534],[462,792,868,1380,1381,1423,2468,2516,2533,2534],[99,103,109,151,154,792,805,859,865,868,1423,2459,2468,2516,2533,2534],[868,1380,1423,2468,2516,2533,2534],[462,792,868,1058,1423,2468,2516,2533,2534],[99,103,109,154,157,461,792,868,1057,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1058,1423,2459,2468,2516,2533,2534],[462,792,868,1384,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1383,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1384,1423,2459,2468,2516,2533,2534],[97,99,103,109,157,792,868,1178,1423,2459,2468,2516,2533,2534],[97,99,103,109,157,792,868,1423,2459,2468,2516,2533,2534],[462,792,868,1180,1181,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1180,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1181,1423,2459,2468,2516,2533,2534],[462,792,868,1183,1184,1423,2468,2516,2533,2534],[462,792,868,1186,1187,1423,2468,2516,2533,2534],[99,103,109,157,461,792,827,829,859,865,868,1041,1043,1047,1186,1400,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,859,865,868,1187,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1386,1387,1388,1423,2468,2516,2533,2534],[99,103,109,154,157,792,826,829,838,868,1041,1043,1047,1386,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,829,838,868,1041,1047,1387,1400,1423,2459,2468,2516,2533,2534],[462,792,826,827,828,829,830,831,832,835,836,837,868,1423,2468,2516,2533,2534],[99,103,109,157,792,830,868,1423,2459,2468,2516,2533,2534],[99,103,109,826,868,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,826,827,829,835,836,868,1423,2459,2468,2516,2533,2534],[99,103,109,826,829,837,838,868,1400,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,828,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,829,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,831,868,1423,2459,2468,2516,2533,2534],[99,103,109,827,832,868,1423,2459,2468,2516,2533,2534],[462,792,868,1189,1190,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1189,1423,2459,2468,2516,2533,2534],[99,103,109,868,1190,1423,2459,2468,2516,2533,2534],[462,792,868,1192,1193,1194,1195,1196,1197,1198,1423,2468,2516,2533,2534],[99,103,109,868,1197,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1193,1194,1423,2459,2468,2516,2533,2534],[99,103,109,868,1195,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1196,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1192,1423,2459,2468,2516,2533,2534],[99,103,109,868,1193,1423,2459,2468,2516,2533,2534],[462,792,868,1200,1201,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1200,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1201,1423,2459,2468,2516,2533,2534],[462,792,868,1203,1204,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1203,1423,2459,2468,2516,2533,2534],[99,103,109,868,1204,1423,2459,2468,2516,2533,2534],[462,792,868,1206,1207,1208,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1206,1423,2459,2468,2516,2533,2534],[99,103,109,868,1207,1423,2459,2468,2516,2533,2534],[462,792,868,1070,1071,1073,1074,1075,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1070,1423,2459,2468,2516,2533,2534],[99,103,109,868,1071,1423,2459,2468,2516,2533,2534],[99,103,109,868,1072,1423,2459,2468,2516,2533,2534],[99,103,109,868,1073,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1358,1360,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,792,868,1315,1358,1359,1423,2459,2468,2516,2533,2534],[99,103,109,868,1358,1360,1423,2459,2468,2516,2533,2534],[462,792,868,1222,1224,1225,1423,2468,2516,2533,2534],[99,103,109,157,462,792,829,838,868,1219,1223,1224,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1212,1213,1219,1220,1423,2459,2468,2516,2533,2534],[99,100,103,109,154,157,462,779,792,829,838,868,999,1000,1041,1043,1045,1047,1129,1130,1219,1221,1223,1225,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1045,1047,1219,1225,1423,2459,2468,2516,2533,2534],[99,103,109,868,1222,1423,2459,2468,2516,2533,2534],[462,792,868,1227,1228,1229,1230,1231,1232,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1227,1423,2459,2468,2516,2533,2534],[99,103,109,157,462,792,829,838,868,1223,1228,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,462,779,792,829,838,868,999,1000,1041,1043,1045,1047,1071,1076,1129,1130,1219,1223,1227,1229,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1227,1423,2459,2468,2516,2533,2534],[99,103,109,868,1226,1229,1423,2459,2468,2516,2533,2534],[462,792,868,1235,1236,1237,1238,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1237,1423,2459,2468,2516,2533,2534],[99,103,109,868,1238,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,975,997,1235,1423,2459,2468,2516,2533,2534],[99,103,109,868,1236,1423,2459,2468,2516,2533,2534],[462,792,868,1240,1242,1244,1423,2468,2516,2533,2534],[99,103,109,868,1241,1242,1423,2459,2468,2516,2533,2534],[99,103,109,868,1242,1243,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,826,868,1240,1241,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,838,868,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1246,1247,1248,1423,2468,2516,2533,2534],[97,99,103,109,154,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1246,1423,2459,2468,2516,2533,2534],[462,792,868,1368,1369,1370,1371,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1370,1423,2459,2468,2516,2533,2534],[99,103,109,868,1371,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1367,1368,1423,2459,2468,2516,2533,2534],[99,103,109,868,1367,1369,1423,2459,2468,2516,2533,2534],[462,792,868,1250,1251,1423,2468,2516,2533,2534],[99,103,109,157,792,868,869,1250,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1251,1423,2459,2468,2516,2533,2534],[462,792,868,1253,1254,1255,1256,1257,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1255,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1254,1256,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1253,1423,2459,2468,2516,2533,2534],[99,103,109,868,1254,1423,2459,2468,2516,2533,2534],[462,792,868,1259,1260,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,868,1259,1423,2459,2468,2516,2533,2534],[99,103,109,868,1260,1423,2459,2468,2516,2533,2534],[462,792,868,1262,1263,1265,1267,1283,1284,1285,1292,1293,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,2459,2468,2516,2533,2534],[99,103,109,868,1273,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1272,1423,2459,2468,2516,2533,2534],[99,103,109,868,1275,1423,2459,2468,2516,2533,2534],[99,100,103,109,868,1263,1264,1270,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1264,1277,1278,1423,2459,2468,2516,2533,2534],[868,1271,1272,1274,1276,1279,1280,1281,1423,2468,2516,2533,2534],[99,100,103,109,157,792,868,1263,1264,1265,1423,2459,2468,2516,2533,2534],[99,103,109,868,1262,1423,2459,2468,2516,2533,2534],[868,1211,1269,1278,1286,1287,1288,1289,1423,2468,2516,2533,2534],[99,103,109,868,1284,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1267,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1267,1286,1423,2459,2468,2516,2533,2534],[99,103,109,868,966,997,1263,1265,1266,1267,1268,1423,2459,2468,2516,2533,2534],[99,103,109,868,1211,1220,1267,1268,1423,2459,2468,2516,2533,2534],[99,103,109,868,1267,1278,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1220,1263,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,1263,1264,1423,2459,2468,2516,2533,2534],[99,103,109,868,965,966,997,1267,1271,1282,1291,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1263,1264,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1211,1218,1220,1263,1264,1266,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1211,1262,1263,1264,1265,1266,1267,1269,1271,1272,1282,1400,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1262,1263,1264,1265,1266,1423,2459,2468,2516,2533,2534],[99,103,109,152,868,1262,1423,2459,2468,2516,2533,2534],[99,103,109,868,1211,1263,1265,1266,1267,1268,1269,1290,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1067,1069,1082,1083,1084,1423,2468,2516,2533,2534],[99,103,109,868,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,868,965,997,1063,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1067,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1067,1068,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1009,1010,1013,1014,1045,1067,1069,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1066,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,965,997,1009,1010,1013,1014,1064,1066,1067,1069,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1064,1065,1067,1069,1423,2459,2468,2516,2533,2534],[99,103,109,151,157,462,776,792,868,965,997,1009,1010,1013,1045,1063,1064,1065,1066,1067,1069,1071,1076,1078,1079,1080,1081,1400,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,792,868,1064,1066,1068,1069,1423,2459,2468,2516,2533,2534],[868,1083,1423,2468,2516,2533,2534],[99,103,109,868,1045,1047,1067,1069,1423,2459,2468,2516,2533,2534],[462,792,868,1295,1296,1298,1299,1300,1301,1423,2468,2516,2533,2534],[99,103,109,868,1296,1299,1300,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1297,1301,1423,2459,2468,2516,2533,2534],[99,103,109,868,1298,1301,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,868,1298,1301,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1295,1423,2459,2468,2516,2533,2534],[99,103,109,868,1296,1423,2459,2468,2516,2533,2534],[99,100,103,109,154,157,792,868,1299,1301,1423,2459,2468,2516,2533,2534],[462,792,868,998,999,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,998,1423,2459,2468,2516,2533,2534],[99,103,109,868,999,1423,2459,2468,2516,2533,2534],[462,792,868,1303,1304,1423,2468,2516,2533,2534],[99,103,109,151,157,792,868,1423,2459,2468,2516,2533,2534],[99,103,109,151,868,1303,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1100,1101,1102,1103,1105,1106,1423,2468,2516,2533,2534],[99,103,109,157,792,826,868,869,1100,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,826,838,868,869,1423,2459,2468,2516,2533,2534],[99,103,109,868,869,1100,1423,2459,2468,2516,2533,2534],[99,103,109,868,1104,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,869,1423,2459,2468,2516,2533,2534],[99,100,103,109,157,792,838,868,1100,1400,1423,2459,2468,2516,2533,2534],[868,869,1100,1423,2468,2516,2533,2534],[462,792,868,1306,1307,1423,2468,2516,2533,2534],[99,103,109,151,157,461,792,829,838,868,995,997,1306,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,829,868,1307,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1309,1310,1311,1312,1423,2468,2516,2533,2534],[99,103,109,157,461,792,868,1310,1423,2459,2468,2516,2533,2534],[99,103,109,868,1311,1423,2459,2468,2516,2533,2534],[99,103,109,868,1309,1423,2459,2468,2516,2533,2534],[462,792,868,1041,1043,1044,1045,1046,1423,2468,2516,2533,2534],[99,103,109,154,792,868,1041,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,829,837,838,868,982,996,997,1042,1423,2459,2468,2516,2533,2534],[99,103,109,829,837,838,868,1043,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,827,829,835,838,868,969,997,1041,1043,1044,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,829,838,868,1041,1043,1045,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,827,832,838,868,1423,2459,2468,2516,2533,2534],[462,792,868,1351,1352,1353,1354,1355,1356,1423,2468,2516,2533,2534],[99,103,109,157,792,868,988,1423,2459,2468,2516,2533,2534],[99,103,109,157,461,792,868,988,1351,1352,1423,2459,2468,2516,2533,2534],[99,103,109,868,988,1352,1355,1423,2459,2468,2516,2533,2534],[99,103,109,157,461,792,868,988,1351,1352,1353,1423,2459,2468,2516,2533,2534],[99,103,109,868,988,1352,1354,1400,1423,2459,2468,2516,2533,2534],[99,103,109,859,865,868,1423,2459,2468,2516,2533,2534],[462,792,868,1317,1318,1423,2468,2516,2533,2534],[99,103,109,792,868,1314,1315,1318,1423,2459,2468,2516,2533,2534],[99,103,109,868,1316,1318,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1315,1317,1423,2459,2468,2516,2533,2534],[462,792,868,1329,1330,1423,2468,2516,2533,2534],[868,1229,1233,1326,1328,1423,2468,2516,2533,2534],[99,103,109,157,792,829,838,868,1229,1233,1321,1328,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1334,1335,1423,2468,2516,2533,2534],[868,1334,1423,2468,2516,2533,2534],[99,103,109,868,1009,1211,1220,1321,1333,1400,1423,2459,2468,2516,2533,2534],[99,103,109,461,792,868,1332,1423,2459,2468,2516,2533,2534],[99,103,109,792,868,1014,1321,1333,1423,2459,2468,2516,2533,2534],[462,792,868,1320,1321,1324,1325,1326,1327,1423,2468,2516,2533,2534],[868,1325,1423,2468,2516,2533,2534],[154,792,868,1321,1322,1423,2468,2516,2533,2534],[868,1321,1323,1423,2468,2516,2533,2534],[99,103,109,868,1321,1322,1323,1324,1423,2459,2468,2516,2533,2534],[99,103,109,157,462,792,868,1321,1323,1423,2459,2468,2516,2533,2534],[99,103,109,868,1320,1322,1323,1324,1423,2459,2468,2516,2533,2534],[99,103,109,151,154,157,462,792,868,965,997,1009,1010,1013,1129,1320,1321,1322,1323,1400,1423,2459,2468,2516,2533,2534],[462,792,868,1338,1339,1341,1343,1345,1346,1423,2468,2516,2533,2534],[868,1339,1423,2468,2516,2533,2534],[99,103,109,154,157,792,868,1337,1339,1340,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1337,1339,1341,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1344,1423,2459,2468,2516,2533,2534],[99,103,109,868,1345,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1339,1342,1423,2459,2468,2516,2533,2534],[99,103,109,868,1339,1343,1423,2459,2468,2516,2533,2534],[99,103,109,154,157,792,868,1337,1338,1423,2459,2468,2516,2533,2534],[99,103,109,154,792,868,1339,1423,2459,2468,2516,2533,2534],[868,1211,1212,1213,1214,1215,1217,1218,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1215,1216,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1217,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1423,2459,2468,2516,2533,2534],[99,103,109,157,792,868,1211,1400,1423,2459,2468,2516,2533,2534],[99,103,109,868,1210,1423,2459,2468,2516,2533,2534],[462,792,868,1348,1349,1423,2468,2516,2533,2534],[99,103,109,157,792,868,1348,1423,2459,2468,2516,2533,2534],[99,103,109,868,1349,1423,2459,2468,2516,2533,2534],[99,103,109,868,1088,1393,1423,2459,2468,2516,2533,2534],[868,1078,1395,1396,1397,1423,2468,2516,2533,2534],[99,103,109,868,1077,1423,2459,2468,2516,2533,2534],[868,893,894,895,896,897,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,989,990,991,992,993,994,995,996,1423,2468,2516,2533,2534],[779,868,1423,2468,2516,2533,2534],[99,103,109,868,988,1423,2459,2468,2516,2533,2534],[99,103,109,154,779,792,868,898,964,1423,2459,2468,2516,2533,2534],[99,103,109,868,966,1423,2459,2468,2516,2533,2534],[99,103,109,147,148,149,150,151,152,153,154,794,795,796,798,799,801,804,805,807,808,827,829,830,831,832,833,834,835,836,837,838,839,842,843,844,846,847,848,850,851,852,853,854,857,858,859,860,864,865,866,868,869,873,874,875,877,878,879,880,881,884,885,886,887,889,891,892,893,894,895,896,897,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,989,990,991,992,993,994,995,996,997,999,1000,1001,1003,1004,1006,1007,1009,1011,1012,1014,1016,1017,1018,1019,1020,1023,1024,1026,1039,1040,1041,1043,1045,1046,1047,1049,1050,1053,1054,1055,1056,1058,1059,1061,1062,1067,1069,1071,1073,1074,1075,1076,1078,1085,1086,1087,1088,1089,1090,1096,1098,1099,1100,1101,1102,1103,1105,1107,1108,1109,1110,1112,1113,1114,1116,1117,1119,1120,1121,1123,1124,1126,1127,1129,1130,1131,1133,1134,1137,1138,1140,1141,1143,1146,1147,1148,1149,1150,1154,1156,1157,1159,1160,1162,1163,1164,1166,1167,1168,1169,1170,1171,1172,1175,1176,1177,1178,1179,1181,1182,1183,1184,1185,1187,1188,1190,1191,1193,1195,1197,1198,1199,1201,1202,1204,1205,1207,1208,1209,1211,1212,1213,1214,1215,1217,1218,1222,1225,1227,1229,1230,1233,1234,1236,1238,1239,1242,1244,1245,1246,1247,1248,1249,1251,1252,1254,1256,1257,1258,1260,1261,1262,1263,1265,1267,1283,1284,1285,1292,1294,1296,1298,1299,1300,1301,1302,1303,1305,1307,1308,1309,1311,1312,1313,1318,1319,1320,1321,1324,1326,1327,1328,1329,1331,1335,1336,1339,1341,1343,1345,1346,1347,1349,1350,1351,1352,1354,1355,1357,1360,1361,1362,1365,1366,1369,1371,1372,1374,1375,1376,1377,1378,1379,1380,1382,1384,1385,1387,1389,1391,1392,1393,1394,1395,1396,1397,1398,1399,1423,2459,2468,2516,2533,2534],[106,868,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,1423,2468,2516,2533,2534],[99,103,109,868,1088,1090,1423,2459,2468,2516,2533,2534],[776,868,1423,2468,2516,2533,2534],[158,159,160,161,162,163,868,1423,2468,2516,2533,2534],[154,155,156,157,158,159,160,161,162,163,164,165,461,462,463,464,465,466,467,469,777,780,781,782,783,784,785,786,787,788,789,790,791,868,1423,2468,2516,2533,2534],[90,154,792,868,1423,2468,2516,2533,2534],[97,868,1423,2468,2516,2533,2534],[99,103,109,460,868,1423,2459,2468,2516,2533,2534],[155,156,157,165,461,462,463,464,465,466,467,468,868,1423,2468,2516,2533,2534],[99,103,109,462,868,1423,2459,2468,2516,2533,2534],[155,156,157,868,1423,2468,2516,2533,2534],[99,103,109,157,868,1423,2459,2468,2516,2533,2534],[99,103,109,155,156,868,1423,2459,2468,2516,2533,2534],[151,868,1423,2468,2516,2533,2534],[148,151,868,1423,2468,2516,2533,2534],[868,1423,2242,2468,2516,2533,2534],[868,1423,1474,2468,2516,2533,2534],[868,1423,1472,1473,1475,2468,2516,2533,2534],[868,1423,1474,1478,1481,1483,1484,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,2468,2516,2533,2534],[868,1423,1474,1478,1479,2468,2516,2533,2534],[868,1423,1474,1478,2468,2516,2533,2534],[868,1423,1474,1475,1528,2468,2516,2533,2534],[868,1423,1480,2468,2516,2533,2534],[868,1423,1480,1485,2468,2516,2533,2534],[868,1423,1480,1484,2468,2516,2533,2534],[868,1423,1477,1480,1484,2468,2516,2533,2534],[868,1423,1480,1483,1506,2468,2516,2533,2534],[868,1423,1478,1480,2468,2516,2533,2534],[868,1423,1477,2468,2516,2533,2534],[868,1423,1474,1482,2468,2516,2533,2534],[868,1423,1478,1482,1483,1484,2468,2516,2533,2534],[868,1423,1477,1478,2468,2516,2533,2534],[868,1423,1474,1475,2468,2516,2533,2534],[868,1423,1474,1475,1528,1530,2468,2516,2533,2534],[868,1423,1474,1531,2468,2516,2533,2534],[868,1423,1538,1539,1540,2468,2516,2533,2534],[868,1423,1474,1528,1529,2468,2516,2533,2534],[868,1423,1474,1476,1543,2468,2516,2533,2534],[868,1423,1532,1534,2468,2516,2533,2534],[868,1423,1531,1534,2468,2516,2533,2534],[868,1423,1474,1483,1492,1528,1529,1530,1531,1534,1535,1536,1537,1541,1542,2468,2516,2533,2534],[868,1423,1509,1534,2468,2516,2533,2534],[868,1423,1532,1533,2468,2516,2533,2534],[868,1423,1474,1543,2468,2516,2533,2534],[868,1423,1531,1535,1536,2468,2516,2533,2534],[868,1423,1534,2468,2516,2533,2534],[868,1423,1956,1957,1958,1959,2468,2516,2533,2534],[868,1423,1956,1957,1958,2468,2516,2533,2534],[868,1423,1956,2468,2516,2533,2534],[868,1423,1956,1957,2468,2516,2533,2534],[775,868,1423,2468,2516,2533,2534],[99,103,108,868,1423,2459,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2588],[868,1423,2468,2516,2533,2534,2586,2588],[868,1423,2468,2516,2533,2534,2577,2585,2586,2587,2589,2591],[868,1423,2468,2516,2533,2534,2575],[868,1423,2468,2516,2533,2534,2578,2583,2588,2591],[868,1423,2468,2516,2533,2534,2574,2591],[868,1423,2468,2516,2533,2534,2578,2579,2582,2583,2584,2591],[868,1423,2468,2516,2533,2534,2578,2579,2580,2582,2583,2591],[868,1423,2468,2516,2533,2534,2575,2576,2577,2578,2579,2583,2584,2585,2587,2588,2589,2591],[868,1423,2468,2516,2533,2534,2591],[868,1423,2468,2516,2533,2534,2573,2575,2576,2577,2578,2579,2580,2582,2583,2584,2585,2586,2587,2588,2589,2590],[868,1423,2468,2516,2533,2534,2573,2591],[868,1423,2468,2516,2533,2534,2578,2580,2581,2583,2584,2591],[868,1423,2468,2516,2533,2534,2582,2591],[868,1423,2468,2516,2533,2534,2583,2584,2588,2591],[868,1423,2468,2516,2533,2534,2576,2586],[868,1423,1741,2468,2516,2533,2534],[868,1423,1742,1743,1744,2468,2516,2533,2534],[868,1423,1742,1743,1745,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2568,2623,2624],[868,1423,2468,2516,2533,2534,2567,2568],[868,1423,2468,2516,2533,2534,2573,2612],[868,1423,2468,2516,2533,2534,2599],[868,1423,2468,2516,2533,2534,2595,2612],[868,1423,2468,2516,2533,2534,2594,2595,2596,2599,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620],[868,1423,2468,2516,2533,2534,2616],[868,1423,2468,2516,2533,2534,2594,2596,2599,2617,2618],[868,1423,2468,2516,2533,2534,2615,2619],[868,1423,2468,2516,2533,2534,2594,2597,2598],[868,1423,2468,2516,2533,2534,2597],[868,1423,2468,2516,2533,2534,2594,2595,2596,2599,2611],[868,1423,2468,2516,2533,2534,2600,2605,2611],[868,1423,2468,2516,2533,2534,2611],[868,1423,2468,2516,2533,2534,2600,2611],[868,1423,2468,2516,2533,2534,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610],[868,1423,2129,2162,2468,2516,2533,2534],[868,1423,2129,2468,2516,2533,2534],[868,1423,2162,2163,2164,2468,2516,2533,2534],[868,1423,2129,2163,2468,2516,2533,2534],[868,1423,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2128,2468,2516,2533,2534],[868,1423,2111,2112,2129,2468,2516,2533,2534],[868,1423,2111,2129,2468,2516,2533,2534],[868,1423,2122,2129,2468,2516,2533,2534],[868,1423,2124,2125,2126,2127,2468,2516,2533,2534],[868,1423,2113,2129,2468,2516,2533,2534],[868,1423,2138,2468,2516,2533,2534],[868,1423,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2468,2516,2533,2534],[868,1423,2130,2138,2140,2468,2516,2533,2534],[868,1423,2136,2138,2145,2468,2516,2533,2534],[868,1423,2140,2468,2516,2533,2534],[868,1423,2138,2140,2468,2516,2533,2534],[868,1423,2139,2468,2516,2533,2534],[868,1423,2130,2138,2468,2516,2533,2534],[868,1423,2131,2132,2133,2134,2135,2136,2137,2139,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2636],[868,1423,1931,2468,2516,2533,2534],[868,1423,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,2468,2516,2533,2534],[868,1423,1565,2468,2516,2533,2534],[868,1423,1625,2468,2516,2533,2534],[868,1423,1620,1621,2468,2516,2533,2534],[99,103,109,868,1423,1690,2459,2468,2516,2533,2534],[868,1423,1693,2468,2516,2533,2534],[99,103,109,868,1423,1639,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1622,1639,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1723,2459,2468,2516,2533,2534],[868,1423,1699,2468,2516,2533,2534],[99,103,109,868,1423,1667,2459,2468,2516,2533,2534],[99,103,109,868,1423,1723,1727,2459,2468,2516,2533,2534],[868,1423,1703,2468,2516,2533,2534],[868,1423,1631,1632,2468,2516,2533,2534],[868,1423,1630,2468,2516,2533,2534],[99,103,109,868,1423,1623,2459,2468,2516,2533,2534],[99,103,109,868,1423,1644,2459,2468,2516,2533,2534],[868,1423,1641,1642,2468,2516,2533,2534],[868,1423,1644,2468,2516,2533,2534],[868,1423,1641,2468,2516,2533,2534],[868,1423,1636,2468,2516,2533,2534],[868,1423,1667,1674,1706,1721,1722,1953,2468,2516,2533,2534],[99,103,109,868,1423,1707,2459,2468,2516,2533,2534],[99,103,109,868,1423,1636,1661,2459,2468,2516,2533,2534],[868,1423,1675,2468,2516,2533,2534],[868,1423,1677,2468,2516,2533,2534],[868,1423,1730,2468,2516,2533,2534],[99,103,109,868,1423,1636,1667,2459,2468,2516,2533,2534],[868,1423,1680,2468,2516,2533,2534],[868,1423,1732,2468,2516,2533,2534],[99,103,109,868,1423,1639,1667,2459,2468,2516,2533,2534],[868,1423,1734,2468,2516,2533,2534],[99,103,109,868,1423,1636,1637,1667,2459,2468,2516,2533,2534],[868,1423,1668,2468,2516,2533,2534],[868,1423,1709,2468,2516,2533,2534],[868,1423,1649,2468,2516,2533,2534],[868,1423,1736,2468,2516,2533,2534],[868,1423,1683,2468,2516,2533,2534],[99,103,109,868,1423,1667,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1636,1656,1686,1723,2459,2468,2516,2533,2534],[99,103,109,868,1423,1618,2459,2468,2516,2533,2534],[868,1423,1738,2468,2516,2533,2534],[99,103,109,868,1423,1641,1644,2459,2468,2516,2533,2534],[868,1423,1949,2468,2516,2533,2534],[99,103,109,868,1423,1643,1644,1740,1948,2459,2468,2516,2533,2534],[868,1423,1951,2468,2516,2533,2534],[868,1423,1663,2468,2516,2533,2534],[868,1423,1662,2468,2516,2533,2534],[868,1423,1628,2468,2516,2533,2534],[868,1423,1688,2468,2516,2533,2534],[868,1423,1713,2468,2516,2533,2534],[99,103,109,868,1423,1665,2459,2468,2516,2533,2534],[868,1423,1626,1627,1640,1644,1645,1646,1647,1648,1650,1724,1725,1726,1727,1728,1729,1731,1733,1735,1737,1739,1950,1952,2468,2516,2533,2534],[868,1423,1619,1622,1624,1640,1644,1645,1646,1647,1648,1650,1953,2468,2516,2533,2534],[868,1423,1619,1622,1624,1629,1633,2468,2516,2533,2534],[868,1423,1634,1673,2468,2516,2533,2534],[868,1423,1669,1670,1671,1672,2468,2516,2533,2534],[868,1423,1676,1678,1679,1681,1682,1684,1685,1687,1689,1691,1692,1694,1695,1696,1697,1698,1700,1701,1702,1704,1705,2468,2516,2533,2534],[868,1423,1708,1710,1711,1712,1714,1715,1716,1717,1718,1719,1720,2468,2516,2533,2534],[868,1423,1656,2468,2516,2533,2534],[868,1423,1655,2468,2516,2533,2534],[99,103,109,868,1423,1639,1644,2459,2468,2516,2533,2534],[99,103,109,868,1423,1622,1639,1644,1646,2459,2468,2516,2533,2534],[868,1423,1639,1643,2468,2516,2533,2534],[868,1423,1618,1637,1640,1644,1645,1646,1647,1648,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,2468,2516,2533,2534],[868,1423,1651,2468,2516,2533,2534],[868,1423,1639,2468,2516,2533,2534],[99,103,109,868,1423,1637,1662,2459,2468,2516,2533,2534],[868,1423,1637,2468,2516,2533,2534],[99,103,109,868,1423,1637,1651,2459,2468,2516,2533,2534],[868,1423,2468,2481,2485,2516,2533,2534,2559],[868,1423,2468,2481,2516,2533,2534,2548,2559],[868,1423,2468,2476,2516,2533,2534],[868,1423,2468,2478,2481,2516,2533,2534,2556,2559],[868,1423,2468,2516,2533,2534,2536,2556],[868,1423,2468,2476,2516,2533,2534,2566],[868,1423,2468,2478,2481,2516,2533,2534,2536,2559],[868,1423,2468,2473,2474,2477,2480,2516,2527,2533,2534,2548,2559],[868,1423,2468,2481,2488,2516,2533,2534],[868,1423,2468,2473,2479,2516,2533,2534],[868,1423,2468,2481,2502,2503,2516,2533,2534],[868,1423,2468,2477,2481,2516,2533,2534,2551,2559,2566],[868,1423,2468,2502,2516,2533,2534,2566],[868,1423,2468,2475,2476,2516,2533,2534,2566],[868,1423,2468,2481,2516,2533,2534],[868,1423,2468,2475,2476,2477,2478,2479,2480,2481,2482,2483,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2503,2504,2505,2506,2507,2508,2516,2533,2534],[868,1423,2468,2481,2496,2516,2533,2534],[868,1423,2468,2481,2488,2489,2516,2533,2534],[868,1423,2468,2479,2481,2489,2490,2516,2533,2534],[868,1423,2468,2480,2516,2533,2534],[868,1423,2468,2473,2476,2481,2516,2533,2534],[868,1423,2468,2481,2485,2489,2490,2516,2533,2534],[868,1423,2468,2485,2516,2533,2534],[868,1423,2468,2479,2481,2484,2516,2533,2534,2559],[868,1423,2468,2473,2478,2481,2488,2516,2533,2534],[868,1423,2468,2516,2533,2534,2548],[868,1423,2468,2476,2481,2502,2516,2533,2534,2564,2566],[868,1423,2468,2516,2533,2534,2625,2633,2634,2635,2637],[868,1423,2468,2516,2533,2534,2625,2633],[868,1423,2468,2516,2533,2534,2634],[868,1423,2468,2516,2533,2534,2638,2639],[868,1423,2468,2516,2533,2534,2638,2639,2640],[868,1423,2468,2516,2533,2534,2639,2643,2644],[868,1423,2468,2516,2533,2534,2639,2643],[868,1423,2468,2516,2533,2534,2624,2639,2643,2644],[868,1423,2468,2516,2533,2534,2568,2572,2623,2624,2642],[868,1423,2468,2516,2533,2534,2624],[868,1423,2468,2516,2533,2534,2624,2648],[87,868,1423,2468,2516,2533,2534],[83,84,86,868,1423,2468,2516,2527,2528,2530,2531,2532,2533,2534,2536,2548,2556,2559,2565,2566,2568,2569,2570,2571,2572,2592,2593,2622,2623,2624],[83,84,85,868,1423,2468,2516,2533,2534,2570],[83,868,1423,2468,2516,2533,2534],[84,868,1423,2468,2516,2533,2534],[85,86,868,1423,2468,2516,2533,2534],[868,1423,2468,2516,2533,2534,2621],[868,1423,2468,2516,2533,2534,2568,2624],[99,103,109,868,1423,1438,1439,1441,1442,1443,2459,2468,2516,2533,2534],[99,102,103,109,868,1423,2459,2468,2516,2533,2534],[94,98,868,1423,2468,2516,2533,2534],[98,868,1423,2468,2516,2533,2534],[868,1423,2082,2468,2516,2533,2534],[99,103,109,868,1423,2048,2049,2459,2468,2516,2533,2534],[99,103,109,868,1423,2048,2459,2468,2516,2533,2534],[99,103,109,868,1423,2031,2459,2468,2516,2533,2534],[99,103,109,868,1423,2033,2459,2468,2516,2533,2534],[99,103,109,868,1423,2033,2034,2459,2468,2516,2533,2534],[868,1423,2031,2468,2516,2533,2534],[99,103,109,868,1423,2036,2459,2468,2516,2533,2534],[99,103,109,868,1423,2038,2459,2468,2516,2533,2534],[99,103,109,868,1423,2038,2039,2040,2459,2468,2516,2533,2534],[868,1423,2069,2468,2516,2533,2534],[868,1423,2032,2035,2037,2041,2042,2047,2050,2052,2053,2054,2056,2057,2061,2063,2065,2068,2070,2071,2468,2516,2533,2534],[99,103,109,868,1423,2051,2459,2468,2516,2533,2534],[868,1423,2043,2044,2468,2516,2533,2534],[868,1423,2045,2046,2468,2516,2533,2534],[868,1423,2066,2067,2468,2516,2533,2534],[99,103,109,868,1423,2066,2459,2468,2516,2533,2534],[868,1423,2058,2059,2060,2468,2516,2533,2534],[99,103,109,868,1423,2058,2459,2468,2516,2533,2534],[99,103,109,868,1423,2055,2459,2468,2516,2533,2534],[99,103,109,868,1423,2062,2459,2468,2516,2533,2534],[99,103,109,868,1423,2064,2459,2468,2516,2533,2534],[99,103,109,868,1423,2073,2459,2468,2516,2533,2534],[868,1423,2024,2030,2072,2074,2468,2516,2533,2534],[868,1423,2025,2026,2468,2516,2533,2534],[99,103,109,868,1423,2025,2459,2468,2516,2533,2534],[99,103,109,868,1423,2023,2024,2459,2468,2516,2533,2534],[99,103,109,868,1423,2018,2027,2459,2468,2516,2533,2534],[99,103,109,868,1423,2018,2023,2459,2468,2516,2533,2534],[868,1423,2023,2468,2516,2533,2534],[868,1423,2028,2029,2468,2516,2533,2534],[868,1423,2019,2020,2021,2022,2468,2516,2533,2534],[868,1423,2019,2020,2021,2468,2516,2533,2534],[868,1423,2019,2468,2516,2533,2534],[868,1423,2019,2020,2468,2516,2533,2534],[111,113,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[112,113,114,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,115,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,116,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,117,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,118,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,119,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,120,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,121,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,122,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,121,123,868,1423,2468,2516,2533,2534],[111,112,113,114,115,116,117,118,119,120,121,122,868,1423,2468,2516,2533,2534],[868,1422,2468,2516,2533,2534],[868,1423,1424,2468,2516,2533,2534],[100,868,1423,1578,2468,2516,2533,2534],[100,124,126,132,868,1423,1578,1580,2468,2516,2533,2534],[100,124,868,1423,1578,2468,2516,2533,2534],[99,100,101,103,105,106,107,109,133,136,868,1423,1580,1582,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,129,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1457,2017,2459,2468,2516,2533,2534],[88,99,100,101,103,109,133,460,868,1401,1423,1433,1453,1461,1639,2017,2078,2079,2080,2081,2082,2084,2098,2099,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1581,2459,2462,2468,2516,2533,2534],[99,100,101,103,105,109,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2103,2459,2468,2516,2533,2534],[88,99,100,101,103,109,868,1406,1423,2184,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,2186,2459,2468,2516,2533,2534],[100,460,868,1423,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2195,2196,2197,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1400,1423,2195,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1406,1423,2196,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1436,1587,2200,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2200,2459,2468,2516,2533,2534],[100,868,1423,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2200,2201,2202,2203,2204,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2186,2200,2205,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2207,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2187,2459,2468,2516,2533,2534],[99,100,103,109,868,1400,1401,1423,1436,1453,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2187,2188,2189,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1401,1423,1453,1580,2185,2186,2187,2189,2190,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1467,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1400,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1470,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2017,2075,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1433,1467,1468,1469,1471,1544,1545,1579,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,124,126,133,868,1400,1401,1423,1454,1455,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,2081,2225,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,1579,2459,2468,2516,2533,2534],[100,130,136,868,1423,2468,2516,2533,2534],[100,103,868,1423,2462,2468,2516,2533,2534],[100,868,1401,1423,2228,2468,2516,2533,2534],[99,100,103,109,133,868,1423,2459,2468,2516,2533,2534],[100,868,1423,1441,2232,2234,2236,2238,2468,2516,2533,2534],[99,100,103,109,460,868,1423,2459,2468,2516,2533,2534],[88,99,100,103,109,868,1423,2241,2242,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,2244,2459,2468,2516,2533,2534],[99,100,103,109,868,1423,1573,2246,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,139,868,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,105,109,136,138,140,141,142,144,145,868,1402,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,130,139,143,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,133,146,868,1401,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,130,136,868,1423,1580,2459,2468,2516,2533,2534],[88,99,100,101,103,105,109,136,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,137,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,868,1409,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,129,868,1406,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1407,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,136,868,1405,1408,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1403,1404,1410,1423,2459,2468,2516,2533,2534],[88,99,100,103,109,868,1423,1579,1583,1584,1585,2459,2468,2516,2533,2534],[100,103,124,125,129,130,132,133,868,1423,1572,1573,2462,2468,2516,2533,2534],[100,103,868,1423,1580,2462,2468,2516,2533,2534],[100,103,107,129,133,868,1423,1572,2462,2468,2516,2533,2534],[100,103,125,868,1411,1413,1414,1417,1418,1420,1421,1423,1426,1430,1432,1567,1571,2462,2468,2516,2533,2534],[100,109,868,1423,2468,2516,2533,2534],[100,109,124,868,1423,1579,2468,2516,2533,2534],[100,103,109,125,129,868,1423,2462,2468,2516,2533,2534],[90,100,109,128,131,134,135,868,1423,2468,2516,2533,2534],[100,103,109,125,127,128,131,132,868,1423,1573,2462,2468,2516,2533,2534],[100,128,130,131,133,868,1423,1573,2468,2516,2533,2534],[100,868,1376,1400,1423,2468,2516,2533,2534],[100,868,1423,1424,2468,2516,2533,2534],[100,868,1423,1452,1453,2468,2516,2533,2534],[100,133,868,1423,2468,2516,2533,2534],[100,110,123,126,868,1423,1574,1575,2468,2516,2533,2534],[100,110,868,1423,1575,2468,2516,2533,2534],[100,110,123,124,125,126,132,868,1401,1423,1573,1575,1576,1577,2468,2516,2533,2534],[110,868,1423,1575,2468,2516,2533,2534],[100,868,1423,2461,2468,2516,2533,2534],[90,100,123,868,1423,2468,2516,2533,2534],[99,100,101,103,109,125,127,132,133,460,868,1400,1416,1419,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,125,127,132,133,868,1400,1415,1416,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,125,127,128,131,133,460,868,1400,1415,1416,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1597,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1587,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1587,2254,2459,2468,2516,2533,2534],[99,100,101,103,109,143,868,1400,1423,1587,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1587,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1455,1588,2191,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1588,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1598,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1599,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1435,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1580,1600,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2264,2267,2268,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2264,2265,2266,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2265,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,2264,2459,2468,2516,2533,2534],[99,100,101,103,109,136,868,1423,2264,2459,2468,2516,2533,2534],[99,100,103,109,868,1400,1401,1423,1600,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1600,2270,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1600,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1406,1423,1593,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1453,1593,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1406,1423,1436,1593,2274,2275,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1579,1601,1602,1603,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,2277,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,2280,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1424,1425,1433,1549,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1589,2279,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1423,1436,1573,1589,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,133,868,1401,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1464,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1425,1433,1436,1579,2102,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1437,1467,1468,1471,1544,1545,1547,1579,1605,2102,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,868,1400,1401,1423,1433,1436,1468,2287,2288,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1464,1465,1471,1544,1545,1547,1579,1601,2207,2208,2290,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1436,1464,1471,1544,1545,1547,1579,1601,2207,2208,2290,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,2185,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,460,775,868,1423,1428,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2459,2468,2516,2533,2534],[100,868,1423,2295,2297,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2303,2459,2468,2516,2533,2534],[100,868,1423,2304,2305,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2459,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2307,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2307,2459,2468,2516,2533,2534],[100,868,1423,2307,2308,2309,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2311,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2311,2459,2468,2516,2533,2534],[100,868,1423,2311,2312,2313,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2315,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2315,2459,2468,2516,2533,2534],[100,868,1423,2315,2316,2317,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2300,2319,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2319,2459,2468,2516,2533,2534],[100,868,1423,2319,2320,2321,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2300,2323,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2323,2459,2468,2516,2533,2534],[100,868,1423,2323,2324,2325,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2327,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2327,2459,2468,2516,2533,2534],[100,868,1423,2327,2328,2329,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2331,2459,2468,2516,2533,2534],[100,868,1423,2331,2332,2333,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2186,2335,2459,2468,2516,2533,2534],[100,868,1423,2335,2336,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2338,2459,2468,2516,2533,2534],[100,868,1423,2338,2339,2340,2468,2516,2533,2534],[99,100,101,103,109,775,868,1401,1423,2185,2342,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2296,2342,2459,2468,2516,2533,2534],[100,868,1423,2342,2343,2344,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2346,2459,2468,2516,2533,2534],[100,868,1423,2346,2347,2348,2468,2516,2533,2534],[99,100,101,103,109,868,1406,1423,1427,1428,2294,2301,2302,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1427,1429,2459,2468,2516,2533,2534],[99,100,101,103,105,109,868,1423,2351,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2352,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1427,2294,2298,2459,2468,2516,2533,2534],[99,100,101,103,109,123,868,1400,1401,1423,1604,1606,1612,2227,2354,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1612,2251,2356,2357,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,2228,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1612,2186,2210,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1612,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1425,2459,2468,2516,2533,2534],[99,100,101,103,109,132,460,868,1400,1401,1423,1467,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1423,1424,1425,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1424,1425,1549,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1412,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1424,1431,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1424,1431,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1436,1594,2459,2468,2516,2533,2534],[99,100,101,103,109,110,460,868,1400,1423,1433,1437,1444,1575,1590,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1590,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2207,2208,2374,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1436,1590,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1590,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,2368,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1590,2368,2369,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1590,2372,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1444,1550,2459,2468,2516,2533,2534],[100,868,1423,1437,1464,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1465,1550,2378,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1436,1550,2378,2379,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1424,1436,1550,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1433,1435,1436,1437,1547,1550,1551,2380,2381,2382,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1550,2385,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1550,2386,2459,2468,2516,2533,2534],[99,100,101,103,109,123,143,868,1400,1401,1423,1591,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1436,1573,1591,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1591,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1591,2391,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,1434,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1601,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1601,2394,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1602,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1602,2396,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1437,1461,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1425,1433,1447,1461,1462,1469,1547,1568,1569,1570,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1601,1602,1603,1605,2186,2227,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1603,1605,2227,2399,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1400,1406,1423,1573,1604,2186,2459,2468,2516,2533,2534],[99,100,101,103,107,109,868,1400,1401,1423,1436,1604,2401,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1406,1423,1604,1605,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1605,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1605,2403,2404,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1592,2406,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1606,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1606,2408,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1606,2410,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1415,1423,1607,2252,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1607,2252,2412,2459,2468,2516,2533,2534],[99,100,101,103,109,123,868,1423,1607,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1608,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1609,2186,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1609,2416,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1401,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1423,1436,2459,2468,2516,2533,2534],[99,100,101,103,109,143,146,868,1400,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,146,868,1401,1423,1436,1573,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1610,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1610,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1580,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1611,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1436,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1444,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1437,1465,1547,1596,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1595,1601,2207,2208,2434,2435,2436,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1423,1595,2186,2434,2435,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1436,1573,1595,1601,2434,2435,2438,2459,2468,2516,2533,2534],[100,868,1423,1595,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1433,1468,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1425,1433,1435,1436,1437,1461,1469,1546,1547,1579,1601,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1425,1433,1435,1436,1437,1461,1469,1546,1547,1579,2100,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1401,1423,1433,1579,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1424,1425,1433,1549,1550,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1425,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1565,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1443,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1451,1455,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1401,1423,1433,1437,1444,1445,1446,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1400,1401,1423,1433,1437,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1400,1423,1424,1433,1457,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1446,1469,1568,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1568,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1401,1423,1433,1436,1464,1465,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1450,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1449,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1446,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1433,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1401,1423,1433,1437,1447,1448,1456,1458,1459,1460,1461,1462,1463,1466,1546,1579,1580,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1546,1547,1548,1551,1566,1579,2102,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1546,1547,1548,1551,1566,1579,2459,2468,2516,2533,2534],[99,100,101,103,109,460,868,1423,1433,1437,1447,1456,1458,1459,1460,1461,1462,1466,1568,1569,1570,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1401,1423,1424,1425,1433,1434,1435,1436,1437,1547,1548,1551,1566,1579,1601,2459,2462,2468,2516,2533,2534],[99,100,101,103,109,868,1423,2195,2197,2459,2468,2516,2533,2534],[99,100,101,103,109,868,1423,1455,2459,2468,2516,2533,2534],[99,100,101,103,109,133,460,868,1400,1423,1578,2098,2459,2468,2516,2533,2534],[99,100,101,103,109,127,133,460,868,1400,1401,1419,1423,2459,2468,2516,2533,2534],[99,100,101,103,109,136,460,868,1406,1423,1433,1434,1444,1579,2252,2459,2468,2516,2533,2534],[103,868,1423,2462,2468,2516,2533,2534],[100,868,1423,2468,2516,2528,2533,2534,2538,2559,2624,2629,2632,2641,2645,2646,2647,2649,2650]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"19efad8495a7a6b064483fccd1d2b427403dd84e67819f86d1c6ee3d7abf749c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eef826bc4a19de22155487984e345a34c9cd511dd1170edc7a447cb8231dd4a","affectsGlobalScope":true,"impliedFormat":99},"424faf9241dd699dda995b367ed36665732da1e6ec1f33b2fd40394488ecac92",{"version":"f468b74459f1ad4473b36a36d49f2b255f3c6b5d536c81239c2b2971df089eaf","impliedFormat":1},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"524a409ad72186b7f6cb16898c349465cfa876f641d6cb6137b3123d5cfca619","impliedFormat":1},{"version":"ebe84ad8344962b7117a3b95065f47383215020eaf1b626463863b45b4d16e62","impliedFormat":1},{"version":"dc0c80f91a4d46c5c4f625a35601ff3c815e2395e6680bacfa12970fc6d49c93","impliedFormat":1},{"version":"3e74c6f34a28b7c948bfdaf19172000d589093660b3605f8c21c1b30173c729b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"88ad1af02cacc61bf79683b021d326eeafc91231660a06495c5046d4649ec3a2","impliedFormat":1},{"version":"c0191592be8eb7906f99ac4b8798d80a585b94001ea1a5f50d6ce5b0d13a5c62","impliedFormat":99},{"version":"318d19118bf6bf8d088441c948990f53cafc79ed581b78f3d41a0f7a3f5f145c","impliedFormat":1},{"version":"549d2a340dc2ac41cf361e10d14d3a2cecd425ffd6fc6f764964c5c4ee0b63d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"860814185d89237c84a6bd1e4f108c2c0b2401609a74a33bc7cab14ea4ee9f21","impliedFormat":99},{"version":"e1ddcbacb7658bf0683bca4ebd31bd05f64823712651263bfc75128a45f00ff7","impliedFormat":99},{"version":"cd0e1f0599b6d8fdd60dc96fdc8527cc60d903e8dffe0b93b7a3527e09e23d49","impliedFormat":99},{"version":"4d643a0df06c8a561870a279ccf6ff9d29a1f04e2c9378eba501eb0e058e13fa","impliedFormat":99},{"version":"e3a0a9032e3ce3945446b33b6329405565aaf5d0e7c115250b972f02dc64d0ae","impliedFormat":1},"6ef27fa41da37327fdb938f081d14851cc26dda0ea642190a0c5f9577a9f1edf",{"version":"52f5c39e78a90c1d8ed7db18f39d890b2e8464a3f44d4233617893f6648e317d","impliedFormat":1},{"version":"a69e8bce30aea7ec98f3b6ddfbc378c92826fede01aafbaec703057c2503ea51","impliedFormat":1},{"version":"b7e91960129ba8a3c22f2402dc8d901b07a44fd11085309ba4780ea044f08323","impliedFormat":99},{"version":"380b919bfa0516118edaf25b99e45f855e7bc3fd75ce4163a1cfe4a666388804","impliedFormat":1},{"version":"40de86ced5175a6ffe84a52abe6ac59ac0efbc604a5975a8c6476c3ddc682ff1","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"5a0b15210129310cee9fa6af9200714bb4b12af4a04d890e15f34dbea1cf1852","impliedFormat":1},{"version":"0244119dbcbcf34faf3ffdae72dab1e9bc2bc9efc3c477b2240ffa94af3bca56","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"49c36529ee09ea9ce19525af5bb84985ea8e782cb7ee8c493d9e36d027a3d019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},"e0f525d113db44555dd40d6e1fd5e2708f6626c28ed93fa5a3e7864343a4e0b9","d6d50f70ef4224b378ff4a44a6772a5d6c71185869a1dca5dd69198552e33c38","4d85921513f6d9f0e98515890c56d6f150d1caa17cf2cdab54fa0837fa48be58","d287164f84628dcbf023783cfbaccecc0277307f30884afd734c778aaff927c0","56c90889c4d093f8a990ccd3f941cf0bd6b78404aa181416c6d856e3b70115f2","8fe156b1d07c194843a01048c28f920fb155943097eec7b3e06c23fa238cf29f","1249c8a45fe697d72e57c06af96b5b1b1fd02fe0ecdeaa24b5e42676e1686b39","d25f406cdc96422dc6e297a4fc1ea5f08a64ac5f917a70d634bb336e9faf2bd4","c066f545f56d4a7ceb40c7ba6f65af579295560016fd32cef080ac44e9a1437f","fef37fa42bdf34c9082bbdc575cc7e6f13eb9bb57752aa627aad29a648a540c8","7cac9e7dc9264c05eb8b8bd22289f2a4452f97a06daf49b306b76d3106b523c8","fe33311e48e4bcfb8618123fb0134917d3e5f282de6febbfb711c91a2af4f8e0","138ce2f3a7361fe0151dc4fa5720981e62631e3a6503f18d8f4adec58be90da7","fcd22ca9951b617db6b7e805e4dd290a925da6df49e8cbe4818b557bc4ba72c8","41c71bd48f563ed0c2643897c7580c3473a2c45de816131c7f497ada25aa4aca","d3bd74d3efb3eedf8ef3202bd4633e0078a2f0c071347b84ee5e9655c72ec842","396cba6f686e1e46bab41d2796f030d2005694313bd86b0199711eb811661237","3227f8860dca1346c30b08a6b2d66749d65f6ffaab10bc1f1bbad9db23583ac5","1e6bcca7dec48f12c2eb622d3e75a503abd1a8786b28e4c5ab9aeeabaa4db520","817f82dc697d9df3ad46d5790d6fffa3fa490c77a88488f64ab6cad508d5a94f","e18396704db58a17a9b6bc0203e69648d35e23bcb5d654183ff5aa3ebe0cfcc7","c73047306842c0bf13cd3f7b3be3af76e8d58ad16ab549a8812c4f51e4b7f76f","7faca21e2c4e0119f1386f27695516fabc4bceca350e96f6e5c37a45605779bf",{"version":"922d92b500c5359d96b1eff81fe281d1f5350120db253773a3f1c85985c4a9bf","impliedFormat":1},{"version":"ac4efaa37cc9798679da23050bd4e374affb69acda810572d73b11fce731308a","impliedFormat":1},{"version":"c477f69ebfcd6153946ce95799cf49b1c7bce11cec250dab336516b5ad27d72b","impliedFormat":1},{"version":"6355649c4afa3e56a8dd808c3330952154d900bdab5a078dbaffe3974c7baab2","impliedFormat":1},{"version":"5e7185c89a21a5406274b1f010bdce770ad45e7cf09a8b8b346bac352939164a","impliedFormat":1},{"version":"9e9df7677da806cf5eabc7899cb66f6eb075f6c20ed1761a2e882c46883d1ce6","impliedFormat":1},{"version":"633a12dbfb5225a7284b1fa29993f681edf1fe4b36178650d6b4ea1962307f07","impliedFormat":1},{"version":"31ba0d4593007ba73ea1cff32896f6ba551a5794a880c032df2d10aecbc82fe6","impliedFormat":1},{"version":"b4f9fb54a352a0319f6de11eb784b8c9be6aa7b0c65e2fbc8e6822c8f4622ec5","impliedFormat":1},{"version":"24fd9b011d5f800715009959e4c9fcf8dc8a458d4d72e762380e8031f16be8cc","impliedFormat":1},{"version":"bd9462141e563c72110be58bc0e62ca260a62abe07cb4c951d64e636eee9fa60","impliedFormat":1},{"version":"1147ac71b3cfc8d6e9ebf4bf06435bd0a5b6d72a5457b7b00428f218bd01c2e7","impliedFormat":1},{"version":"9a643956e978408cff58f04e3001a41384ed0b4b6f43eeb2a9f91a70f56d2131","impliedFormat":1},{"version":"94d96cc9eb83bf3f3b67497f77d53298fed988c2a00899ba18bc23a8455a6064","impliedFormat":1},{"version":"446d5326728f7110b6180431f407bd8a8344129621fb22130cfdb618aa62e514","impliedFormat":1},{"version":"025b16217c6d980741432fc156bdcbe22b1084f8d1f3f472f6601f09f7853415","impliedFormat":1},{"version":"afb4fe76ed12d1b7b8724321e0f13aab912e633899f7c3e37074035ee9cff91e","impliedFormat":1},{"version":"490621c395bfa973fa6a8c4afc16ccb196a5aac60b55c61d98050ce4990520a5","impliedFormat":1},{"version":"c38e7e1b936c9a8e3f01e291dbc228232c9b61ce96bdfeb78dbc3b74f987c49c","impliedFormat":1},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"9984ee56114b71935ce5877a2eedba93a8f1c2eabc2cabbf88bfec7c955d4a75","impliedFormat":99},{"version":"e720c8a37b87f5713093ed04015dbc647996545ffc0fdf07885f444af738dcff","impliedFormat":99},{"version":"f73b596cb4b4860fd0a3ea8cab67a42ad344d95a392ca986ca4588f59ea8c2cf","impliedFormat":99},{"version":"29b9ed9e1bccc6eff19b59c3f361ee102d8a77f4409fdb56a642a09cd4142d80","impliedFormat":1},{"version":"219afaff7dd670d2b610e23f8ea09d4982a947516074fb55b7f8f2f218f8da31","impliedFormat":1},{"version":"f3233f848276835085121850b21375b1ae23b1d558e12b520c42e99f19517b05","impliedFormat":1},{"version":"12395b35d56e3162be3e6ff07945f8c385351af536c735958eba430c387fbb3f","impliedFormat":1},{"version":"9bb4778628c37e1e4f0f8379339dcd75bfae5d47fc1fb96673b4fe3f8b328197","impliedFormat":1},{"version":"73a4f0c06fbb2a75e748dae42517c062ad303b0a43d302e8fc2ff89e92f0ecde","impliedFormat":1},{"version":"1f8cd888d94150cec2d0c3b5c734caaabaa418cd10d25463c82718979ec3bec8","impliedFormat":1},{"version":"c6a6c807ba136407c33e425c37a02550b3d729deb0a4a5bb8e7cdef29eea6814","impliedFormat":1},{"version":"ddd271c30afbb3ad41466f9dd0702c868ef992912684162952b976f436dde50c","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"cf93e7b09b66e142429611c27ba2cbf330826057e3c793e1e2861e976fae3940","impliedFormat":99},{"version":"90e727d145feb03695693fdc9f165a4dc10684713ee5f6aa81e97a6086faa0f8","impliedFormat":99},{"version":"ee2c6ec73c636c9da5ab4ce9227e5197f55a57241d66ea5828f94b69a4a09a2d","impliedFormat":99},{"version":"afaf64477630c7297e3733765046c95640ab1c63f0dfb3c624691c8445bc3b08","impliedFormat":99},{"version":"5aa03223a53ad03171988820b81a6cae9647eabcebcb987d1284799de978d8e3","impliedFormat":99},{"version":"7f50c8914983009c2b940923d891e621db624ba32968a51db46e0bf480e4e1cb","impliedFormat":99},{"version":"90fc18234b7d2e19d18ac026361aaf2f49d27c98dc30d9f01e033a9c2b01c765","impliedFormat":99},{"version":"a980e4d46239f344eb4d5442b69dcf1d46bd2acac8d908574b5a507181f7e2a1","impliedFormat":99},{"version":"bbbfa4c51cdaa6e2ef7f7be3ae199b319de6b31e3b5afa7e5a2229c14bb2568a","impliedFormat":99},{"version":"bc7bfe8f48fa3067deb3b37d4b511588b01831ba123a785ea81320fe74dd9540","impliedFormat":99},{"version":"fd60c0aaf7c52115f0e7f367d794657ac18dbb257255777406829ab65ca85746","impliedFormat":99},{"version":"15c17866d58a19f4a01a125f3f511567bd1c22235b4fd77bf90c793bf28388c3","impliedFormat":99},{"version":"51301a76264b1e1b4046f803bda44307fba403183bc274fe9e7227252d7315cb","impliedFormat":99},{"version":"ddef23e8ace6c2b2ddf8d8092d30b1dd313743f7ff47b2cbb43f36c395896008","impliedFormat":99},{"version":"9e42df47111429042b5e22561849a512ad5871668097664b8fb06a11640140ac","impliedFormat":99},{"version":"391fcc749c6f94c6c4b7f017c6a6f63296c1c9ae03fa639f99337dddb9cc33fe","impliedFormat":99},{"version":"ac4706eb1fb167b19f336a93989763ab175cd7cc6227b0dcbfa6a7824c6ba59a","impliedFormat":99},{"version":"633220dc1e1a5d0ccf11d3c3e8cadc9124daf80fef468f2ff8186a2775229de3","impliedFormat":99},{"version":"6de22ad73e332e513454f0292275155d6cb77f2f695b73f0744928c4ebb3a128","impliedFormat":99},{"version":"ebe0e3c77f5114b656d857213698fade968cff1b3a681d1868f3cfdd09d63b75","impliedFormat":99},{"version":"22c27a87488a0625657b52b9750122814c2f5582cac971484cda0dcd7a46dc3b","impliedFormat":99},{"version":"7e7a817c8ec57035b2b74df8d5dbcc376a4a60ad870b27ec35463536158e1156","impliedFormat":99},{"version":"0e2061f86ca739f34feae42fd7cce27cc171788d251a587215b33eaec456e786","impliedFormat":99},{"version":"91659b2b090cadffdb593736210910508fc5b77046d4ce180b52580b14b075ec","impliedFormat":99},{"version":"d0f6c657c45faaf576ca1a1dc64484534a8dc74ada36fd57008edc1aab65a02b","impliedFormat":99},{"version":"ce0c52b1ebc023b71d3c1fe974804a2422cf1d85d4af74bb1bced36ff3bff8b5","impliedFormat":99},{"version":"9c6acb4a388887f9a5552eda68987ee5d607152163d72f123193a984c48157c9","impliedFormat":99},{"version":"90d0a9968cbb7048015736299f96a0cceb01cf583fd2e9a9edbc632ac4c81b01","impliedFormat":99},{"version":"49abec0571c941ab6f095885a76828d50498511c03bb326eec62a852e58000c5","impliedFormat":99},{"version":"8eeb4a4ff94460051173d561749539bca870422a6400108903af2fb7a1ffe3d7","impliedFormat":99},{"version":"49e39b284b87452fed1e27ac0748ba698f5a27debe05084bc5066b3ecf4ed762","impliedFormat":99},{"version":"59dcf835762f8df90fba5a3f8ba87941467604041cf127fb456543c793b71456","impliedFormat":99},{"version":"33e0c4c683dcaeb66bedf5bb6cc35798d00ac58d7f3bc82aadb50fa475781d60","impliedFormat":99},{"version":"605839abb6d150b0d83ed3712e1b3ffbeb309e382770e7754085d36bc2d84a4c","impliedFormat":99},{"version":"a862dcb740371257e3dae1ab379b0859edcb5119484f8359a5e6fb405db9e12e","impliedFormat":99},{"version":"0f0a16a0e8037c17e28f537028215e87db047eba52281bd33484d5395402f3c1","impliedFormat":99},{"version":"cf533aed4c455b526ddccbb10dae7cc77e9269c3d7862f9e5cedbd4f5c92e05e","impliedFormat":99},{"version":"f8a60ca31702a0209ef217f8f3b4b32f498813927df2304787ac968c78d8560d","impliedFormat":99},{"version":"530192961885d3ddad87bf9c4390e12689fa29ff515df57f17a57c9125fc77c3","impliedFormat":99},{"version":"165ba9e775dd769749e2177c383d24578e3b212e4774b0a72ad0f6faee103b68","impliedFormat":99},{"version":"61448f238fdfa94e5ccce1f43a7cced5e548b1ea2d957bec5259a6e719378381","impliedFormat":99},{"version":"69fa523e48131ced0a52ab1af36c3a922c5fd7a25e474d82117329fe051f5b85","impliedFormat":99},{"version":"fa10b79cd06f5dd03435e184fb05cc5f0d02713bfb4ee9d343db527501be334c","impliedFormat":99},{"version":"c6fb591e363ee4dea2b102bb721c0921485459df23a2d2171af8354cacef4bce","impliedFormat":99},{"version":"ea7e1f1097c2e61ed6e56fa04a9d7beae9d276d87ac6edb0cd39a3ee649cddfe","impliedFormat":99},{"version":"e8cf2659d87462aae9c7647e2a256ac7dcaf2a565a9681bfb49328a8a52861e8","impliedFormat":99},{"version":"7e374cb98b705d35369b3c15444ef2ff5ff983bd2fbb77a287f7e3240abf208c","impliedFormat":99},{"version":"ca75ba1519f9a426b8c512046ebbad58231d8627678d054008c93c51bc0f3fa5","impliedFormat":99},{"version":"ff63760147d7a60dcfc4ac16e40aa2696d016b9ffe27e296b43655dfa869d66b","impliedFormat":99},{"version":"4d434123b16f46b290982907a4d24675442eb651ca95a5e98e4c274be16f1220","impliedFormat":99},{"version":"57263d6ba38046e85f499f3c0ab518cfaf0a5f5d4f53bdae896d045209ab4aff","impliedFormat":99},{"version":"d3a535f2cd5d17f12b1abf0b19a64e816b90c8c10a030b58f308c0f7f2acfe2c","impliedFormat":99},{"version":"be26d49bb713c13bd737d00ae8a61aa394f0b76bc2d5a1c93c74f59402eb8db3","impliedFormat":99},{"version":"c7012003ac0c9e6c9d3a6418128ddebf6219d904095180d4502b19c42f46a186","impliedFormat":99},{"version":"d58c55750756bcf73f474344e6b4a9376e5381e4ba7d834dc352264b491423b6","impliedFormat":99},{"version":"01e2aabfabe22b4bf6d715fc54d72d32fa860a3bd1faa8974e0d672c4b565dfe","impliedFormat":99},{"version":"ba2c489bb2566c16d28f0500b3d98013917e471c40a4417c03991460cb248e88","impliedFormat":99},{"version":"39f94b619f0844c454a6f912e5d6868d0beb32752587b134c3c858b10ecd7056","impliedFormat":99},{"version":"0d2d8b0477b1cf16b34088e786e9745c3e8145bc8eea5919b700ad054e70a095","impliedFormat":99},{"version":"2a5e963b2b8f33a50bb516215ba54a20801cb379a8e9b1ae0b311e900dc7254c","impliedFormat":99},{"version":"d8307f62b55feeb5858529314761089746dce957d2b8fd919673a4985fa4342a","impliedFormat":99},{"version":"bf449ec80fc692b2703ad03e64ae007b3513ecd507dc2ab77f39be6f578e6f5c","impliedFormat":99},{"version":"f780213dd78998daf2511385dd51abf72905f709c839a9457b6ba2a55df57be7","impliedFormat":99},{"version":"2b7843e8a9a50bdf511de24350b6d429a3ee28430f5e8af7d3599b1e9aa7057f","impliedFormat":99},{"version":"05d95be6e25b4118c2eb28667e784f0b25882f6a8486147788df675c85391ab7","impliedFormat":99},{"version":"62d2721e9f2c9197c3e2e5cffeb2f76c6412121ae155153179049890011eb785","impliedFormat":99},{"version":"ff5668fb7594c02aca5e7ba7be6c238676226e450681ca96b457f4a84898b2d9","impliedFormat":99},{"version":"59fd37ea08657fef36c55ddea879eae550ffe21d7e3a1f8699314a85a30d8ae9","impliedFormat":99},{"version":"84e23663776e080e18b25052eb3459b1a0486b5b19f674d59b96347c0cb7312a","impliedFormat":99},{"version":"43e5934c7355731eec20c5a2aa7a859086f19f60a4e5fcd80e6684228f6fb767","impliedFormat":99},{"version":"a49c210c136c518a7c08325f6058fc648f59f911c41c93de2026db692bba0e47","impliedFormat":99},{"version":"1a92f93597ebc451e9ef4b158653c8d31902de5e6c8a574470ecb6da64932df4","impliedFormat":99},{"version":"256513ad066ac9898a70ca01e6fbdb3898a4e0fe408fbf70608fdc28ac1af224","impliedFormat":99},{"version":"d9835850b6cc05c21e8d85692a8071ebcf167a4382e5e39bf700c4a1e816437e","impliedFormat":99},{"version":"e5ab7190f818442e958d0322191c24c2447ddceae393c4e811e79cda6bd49836","impliedFormat":99},{"version":"91b4b77ef81466ce894f1aade7d35d3589ddd5c9981109d1dea11f55a4b807a0","impliedFormat":99},{"version":"03abb209bed94c8c893d9872639e3789f0282061c7aa6917888965e4047a8b5f","impliedFormat":99},{"version":"e97a07901de562219f5cba545b0945a1540d9663bd9abce66495721af3903eec","impliedFormat":99},{"version":"bf39ed1fdf29bc8178055ec4ff32be6725c1de9f29c252e31bdc71baf5c227e6","impliedFormat":99},{"version":"985eabf06dac7288fc355435b18641282f86107e48334a83605739a1fe82ac15","impliedFormat":99},{"version":"6112d33bcf51e3e6f6a81e419f29580e2f8e773529d53958c7c1c99728d4fb2e","impliedFormat":99},{"version":"89e9f7e87a573504acc2e7e5ad727a110b960330657d1b9a6d3526e77c83d8be","impliedFormat":99},{"version":"44bbb88abe9958c7c417e8687abf65820385191685009cc4b739c2d270cb02e9","impliedFormat":99},{"version":"ab4b506b53d2c4aec4cc00452740c540a0e6abe7778063e95c81a5cd557c19eb","impliedFormat":99},{"version":"858757bde6d615d0d1ee474c972131c6d79c37b0b61897da7fbd7110beb8af12","impliedFormat":99},{"version":"60b9dea33807b086a1b4b4b89f72d5da27ad0dd36d6436a6e306600c47438ac4","impliedFormat":99},{"version":"409c963b1166d0c1d49fdad1dfeb4de27fd2d6662d699009857de9baf43ca7c3","impliedFormat":99},{"version":"b7674ecfeb5753e965404f7b3d31eec8450857d1a23770cb867c82f264f546ab","impliedFormat":99},{"version":"c9800b9a9ad7fcdf74ed8972a5928b66f0e4ff674d55fd038a3b1c076911dcbe","impliedFormat":99},{"version":"99864433e35b24c61f8790d2224428e3b920624c01a6d26ea8b27ee1f62836bb","impliedFormat":99},{"version":"c391317b9ff8f87d28c6bfe4e50ed92e8f8bfab1bb8a03cd1fe104ff13186f83","impliedFormat":99},{"version":"42bdc3c98446fdd528e2591213f71ce6f7008fb9bb12413bd57df60d892a3fb5","impliedFormat":99},{"version":"542d2d689b58c25d39a76312ccaea2fcd10a45fb27b890e18015399c8032e2d9","impliedFormat":99},{"version":"97d1656f0a563dbb361d22b3d7c2487427b0998f347123abd1c69a4991326c96","impliedFormat":99},{"version":"d4f53ed7960c9fba8378af3fa28e3cc483d6c0b48e4a152a83ff0973d507307d","impliedFormat":99},{"version":"0665de5280d65ec32776dc55fb37128e259e60f389cde5b9803cf9e81ad23ce0","impliedFormat":99},{"version":"b6dc8fd1c6092da86725c338ca6c263d1c6dd3073046d3ec4eb2d68515062da2","impliedFormat":99},{"version":"d9198a0f01f00870653347560e10494efeca0bfa2de0988bd5d883a9d2c47edb","impliedFormat":99},{"version":"d4279865b926d7e2cfe8863b2eae270c4c035b6e923af8f9d7e6462d68679e07","impliedFormat":99},{"version":"73b6945448bb3425b764cfe7b1c4b0b56c010cc66e5f438ef320c53e469797eb","impliedFormat":99},{"version":"cf72fd8ffa5395f4f1a26be60246ec79c5a9ad201579c9ba63fd2607b5daf184","impliedFormat":99},{"version":"301a458744666096f84580a78cc3f6e8411f8bab92608cdaa33707546ca2906f","impliedFormat":99},{"version":"711e70c0916ff5f821ea208043ecd3e67ed09434b8a31d5616286802b58ebebe","impliedFormat":99},{"version":"e1f2fd9f88dd0e40c358fbf8c8f992211ab00a699e7d6823579b615b874a8453","impliedFormat":99},{"version":"17db3a9dcb2e1689ff7ace9c94fa110c88da64d69f01dc2f3cec698e4fc7e29e","impliedFormat":99},{"version":"73fb07305106bb18c2230890fcacf910fd1a7a77d93ac12ec40bc04c49ee5b8e","impliedFormat":99},{"version":"2c5f341625a45530b040d59a4bc2bc83824d258985ede10c67005be72d3e21d0","impliedFormat":99},{"version":"c4a262730d4277ecaaf6f6553dabecc84dcca8decaebbf2e16f1df8bbd996397","impliedFormat":99},{"version":"c23c533d85518f3358c55a7f19ab1a05aad290251e8bba0947bd19ea3c259467","impliedFormat":99},{"version":"5d0322a0b8cdc67b8c71e4ccaa30286b0c8453211d4c955a217ac2d3590e911f","impliedFormat":99},{"version":"f5e4032b6e4e116e7fec5b2620a2a35d0b6b8b4a1cc9b94a8e5ee76190153110","impliedFormat":99},{"version":"9ab26cb62a0e86ab7f669c311eb0c4d665457eb70a103508aa39da6ccee663da","impliedFormat":99},{"version":"5f64d1a11d8d4ce2c7ee3b72471df76b82d178a48964a14cdfdc7c5ef7276d70","impliedFormat":99},{"version":"24e2fbc48f65814e691d9377399807b9ec22cd54b51d631ba9e48ee18c5939dd","impliedFormat":99},{"version":"bfa2648b2ee90268c6b6f19e84da3176b4d46329c9ec0555d470e647d0568dfb","impliedFormat":99},{"version":"75ef3cb4e7b3583ba268a094c1bd16ce31023f2c3d1ac36e75ca65aca9721534","impliedFormat":99},{"version":"3be6b3304a81d0301838860fd3b4536c2b93390e785808a1f1a30e4135501514","impliedFormat":99},{"version":"da66c1b3e50ef9908e31ce7a281b137b2db41423c2b143c62524f97a536a53d9","impliedFormat":99},{"version":"3ada1b216e45bb9e32e30d8179a0a95870576fe949c33d9767823ccf4f4f4c97","impliedFormat":99},{"version":"1ace2885dffab849f7c98bffe3d1233260fbf07ee62cb58130167fd67a376a65","impliedFormat":99},{"version":"2126e5989c0ca5194d883cf9e9c10fe3e5224fbd3e4a4a6267677544e8be0aae","impliedFormat":99},{"version":"41a6738cf3c756af74753c5033e95c5b33dfc1f6e1287fa769a1ac4027335bf5","impliedFormat":99},{"version":"6e8630be5b0166cbc9f359b9f9e42801626d64ff1702dcb691af811149766154","impliedFormat":99},{"version":"e36b77c04e00b4a0bb4e1364f2646618a54910c27f6dc3fc558ca2ced8ca5bc5","impliedFormat":99},{"version":"2c4ea7e9f95a558f46c89726d1fedcb525ef649eb755a3d7d5055e22b80c2904","impliedFormat":99},{"version":"4875d65190e789fad05e73abd178297b386806b88b624328222d82e455c0f2e7","impliedFormat":99},{"version":"bf5302ecfaacee37c2316e33703723d62e66590093738c8921773ee30f2ecc38","impliedFormat":99},{"version":"62684064fe034d54b87f62ad416f41b98a405dee4146d0ec03b198c3634ea93c","impliedFormat":99},{"version":"be02cbdb1688c8387f8a76a9c6ed9d75d8bb794ec5b9b1d2ba3339a952a00614","impliedFormat":99},{"version":"cefaff060473a5dbf4939ee1b52eb900f215f8d6249dc7c058d6b869d599983c","impliedFormat":99},{"version":"b2797235a4c1a7442a6f326f28ffb966226c3419399dbb33634b8159af2c712f","impliedFormat":99},{"version":"164d633bbd4329794d329219fc173c3de85d5ad866d44e5b5f0fb60c140e98f2","impliedFormat":99},{"version":"b74300dd0a52eaf564b3757c07d07e1d92def4e3b8708f12eedb40033e4cafe9","impliedFormat":99},{"version":"a792f80b1e265b06dce1783992dbee2b45815a7bdc030782464b8cf982337cf2","impliedFormat":99},{"version":"8816b4b3a87d9b77f0355e616b38ed5054f993cc4c141101297f1914976a94b1","impliedFormat":99},{"version":"0f35e4da974793534c4ca1cdd9491eab6993f8cf47103dadfc048b899ed9b511","impliedFormat":99},{"version":"0ccdfcaebf297ec7b9dde20bbbc8539d5951a3d8aaa40665ca469da27f5a86e1","impliedFormat":99},{"version":"7fcb05c8ce81f05499c7b0488ae02a0a1ac6aebc78c01e9f8c42d98f7ba68140","impliedFormat":99},{"version":"81c376c9e4d227a4629c7fca9dde3bbdfa44bd5bd281aee0ed03801182368dc5","impliedFormat":99},{"version":"0f2448f95110c3714797e4c043bbc539368e9c4c33586d03ecda166aa9908843","impliedFormat":99},{"version":"b2f1a443f7f3982d7325775906b51665fe875c82a62be3528a36184852faa0bb","impliedFormat":99},{"version":"7568ff1f23363d7ee349105eb936e156d61aea8864187a4c5d85c60594b44a25","impliedFormat":99},{"version":"8c4d1d9a4eba4eac69e6da0f599a424b2689aee55a455f0b5a7f27a807e064db","impliedFormat":99},{"version":"e1beb9077c100bdd0fc8e727615f5dae2c6e1207de224569421907072f4ec885","impliedFormat":99},{"version":"3dda13836320ec71b95a68cd3d91a27118b34c05a2bfda3e7e51f1d8ca9b960b","impliedFormat":99},{"version":"fedc79cb91f2b3a14e832d7a8e3d58eb02b5d5411c843fcbdc79e35041316b36","impliedFormat":99},{"version":"99f395322ffae908dcdfbaa2624cc7a2a2cb7b0fbf1a1274aca506f7b57ebcb5","impliedFormat":99},{"version":"5e1f7c43e8d45f2222a5c61cbc88b074f4aaf1ca4b118ac6d6123c858efdcd71","impliedFormat":99},{"version":"7388273ab71cb8f22b3f25ffd8d44a37d5740077c4d87023da25575204d57872","impliedFormat":99},{"version":"0a48ceb01a0fdfc506aa20dfd8a3563edbdeaa53a8333ddf261d2ee87669ea7b","impliedFormat":99},{"version":"3182d06b874f31e8e55f91ea706c85d5f207f16273480f46438781d0bd2a46a1","impliedFormat":99},{"version":"ccd47cab635e8f71693fa4e2bbb7969f559972dae97bd5dbd1bbfee77a63b410","impliedFormat":99},{"version":"89770fa14c037f3dc3882e6c56be1c01bb495c81dec96fa29f868185d9555a5d","impliedFormat":99},{"version":"7048c397f08c54099c52e6b9d90623dc9dc6811ea142f8af3200e40d66a972e1","impliedFormat":99},{"version":"512120cd6f026ce1d3cf686c6ab5da80caa40ef92aa47466ec60ba61a48b5551","impliedFormat":99},{"version":"6cd0cb7f999f221e984157a7640e7871960131f6b221d67e4fdc2a53937c6770","impliedFormat":99},{"version":"f48b84a0884776f1bc5bf0fcf3f69832e97b97dc55d79d7557f344de900d259b","impliedFormat":99},{"version":"dca490d986411644b0f9edf6ea701016836558e8677c150dca8ad315178ec735","impliedFormat":99},{"version":"a028a04948cf98c1233166b48887dad324e8fe424a4be368a287c706d9ccd491","impliedFormat":99},{"version":"3046ed22c701f24272534b293c10cfd17b0f6a89c2ec6014c9a44a90963dfa06","impliedFormat":99},{"version":"394da10397d272f19a324c95bea7492faadf2263da157831e02ae1107bd410f5","impliedFormat":99},{"version":"0580595a99248b2d30d03f2307c50f14eb21716a55beb84dd09d240b1b087a42","impliedFormat":99},{"version":"a7da9510150f36a9bea61513b107b59a423fdff54429ad38547c7475cd390e95","impliedFormat":99},{"version":"659615f96e64361af7127645bb91f287f7b46c5d03bea7371e6e02099226d818","impliedFormat":99},{"version":"1f2a42974920476ce46bb666cd9b3c1b82b2072b66ccd0d775aa960532d78176","impliedFormat":99},{"version":"500b3ae6095cbab92d81de0b40c9129f5524d10ad955643f81fc07d726c5a667","impliedFormat":99},{"version":"a957ad4bd562be0662fb99599dbcf0e16d1631f857e5e1a83a3f3afb6c226059","impliedFormat":99},{"version":"e57a4915266a6a751c6c172e8f30f6df44a495608613e1f1c410196207da9641","impliedFormat":99},{"version":"7a12e57143b7bc5a52a41a8c4e6283a8f8d59a5e302478185fb623a7157fff5e","impliedFormat":99},{"version":"17b3426162e1d9cb0a843e8d04212aabe461d53548e671236de957ed3ae9471b","impliedFormat":99},{"version":"f38e86eb00398d63180210c5090ef6ed065004474361146573f98b3c8a96477d","impliedFormat":99},{"version":"231d9e32382d3971f58325e5a85ba283a2021243651cb650f82f87a1bf62d649","impliedFormat":99},{"version":"6532e3e87b87c95f0771611afce929b5bad9d2c94855b19b29b3246937c9840b","impliedFormat":99},{"version":"65704bbb8f0b55c73871335edd3c9cead7c9f0d4b21f64f5d22d0987c45687f0","impliedFormat":99},{"version":"787232f574af2253ac860f22a445c755d57c73a69a402823ae81ba0dfdd1ce23","impliedFormat":99},{"version":"5e63903cd5ebce02486b91647d951d61a16ad80d65f9c56581cd624f39a66007","impliedFormat":99},{"version":"bcc89a120d8f3c02411f4df6b1d989143c01369314e9b0e04794441e6b078d22","impliedFormat":99},{"version":"d17531ef42b7c76d953f63bd5c5cd927c4723e62a7e0b2badf812d5f35f784eb","impliedFormat":99},{"version":"6d4ee1a8e3a97168ea4c4cc1c68bb61a3fd77134f15c71bb9f3f63df3d26b54c","impliedFormat":99},{"version":"1eb04fea6b47b16922ed79625d90431a8b2fc7ba9d5768b255e62df0c96f1e3a","impliedFormat":99},{"version":"de0c2eece83bd81b8682f4496f558beb728263e17e74cbc4910e5c9ce7bef689","impliedFormat":99},{"version":"98866542d45306dab48ecc3ddd98ee54fa983353bc3139dfbc619df882f54d90","impliedFormat":99},{"version":"9e04c7708917af428c165f1e38536ddb2e8ecd576f55ed11a97442dc34b6b010","impliedFormat":99},{"version":"31fe6f6d02b53c1a7c34b8d8f8c87ee9b6dd4b67f158cbfff3034b4f3f69c409","impliedFormat":99},{"version":"2e1d853f84188e8e002361f4bfdd892ac31c68acaeac426a63cd4ff7abf150d0","impliedFormat":99},{"version":"666b5289ec8a01c4cc0977c62e3fd32e89a8e3fd9e97c8d8fd646f632e63c055","impliedFormat":99},{"version":"a1107bbb2b10982dba1f7958a6a5cf841e1a19d6976d0ecdc4c43269c7b0eaf2","impliedFormat":99},{"version":"07fa6122f7495331f39167ec9e4ebd990146a20f99c16c17bc0a98aa81f63b27","impliedFormat":99},{"version":"39c1483481b35c2123eaab5094a8b548a0c3f1e483ab7338102c3291f1ab18bf","impliedFormat":99},{"version":"b73e6242c13796e7d5fba225bf1c07c8ee66d31b7bb65f45be14226a9ae492d2","impliedFormat":99},{"version":"f2931608d541145d189390d6cfb74e1b1e88f73c0b9a80c4356a4daa7fa5e005","impliedFormat":99},{"version":"8684656fe3bf1425a91bd62b8b455a1c7ec18b074fd695793cfae44ae02e381a","impliedFormat":99},{"version":"ccf0b9057dd65c7fb5e237de34f706966ebc30c6d3669715ed05e76225f54fbd","impliedFormat":99},{"version":"d930f077da575e8ea761e3d644d4c6279e2d847bae2b3ea893bbd572315acc21","impliedFormat":99},{"version":"19b0616946cb615abde72c6d69049f136cc4821b784634771c1d73bec8005f73","impliedFormat":99},{"version":"553312560ad0ef97b344b653931935d6e80840c2de6ab90b8be43cbacf0d04cf","impliedFormat":99},{"version":"1225cf1910667bfd52b4daa9974197c3485f21fe631c3ce9db3b733334199faa","impliedFormat":99},{"version":"f7cb9e46bd6ab9d620d68257b525dbbbbc9b0b148adf500b819d756ebc339de0","impliedFormat":99},{"version":"e46d6c3120aca07ae8ec3189edf518c667d027478810ca67a62431a0fa545434","impliedFormat":99},{"version":"9d234b7d2f662a135d430d3190fc21074325f296273125244b2bf8328b5839a0","impliedFormat":99},{"version":"0554ef14d10acea403348c53436b1dd8d61e7c73ef5872e2fe69cc1c433b02f8","impliedFormat":99},{"version":"2f6ae5538090db60514336bd1441ca208a8fab13108cfa4b311e61eaca5ff716","impliedFormat":99},{"version":"17bf4ce505a4cff88fb56177a8f7eb48aa55c22ccc4cce3e49cc5c8ddc54b07d","impliedFormat":99},{"version":"3d735f493d7da48156b79b4d8a406bf2bbf7e3fe379210d8f7c085028143ee40","impliedFormat":99},{"version":"41de1b3ddd71bd0d9ed7ac217ca1b15b177dd731d5251cde094945c20a715d03","impliedFormat":99},{"version":"17d9c562a46c6a25bc2f317c9b06dd4e8e0368cbe9bdf89be6117aeafd577b36","impliedFormat":99},{"version":"ded799031fe18a0bb5e78be38a6ae168458ff41b6c6542392b009d2abe6a6f32","impliedFormat":99},{"version":"ed48d467a7b25ee1a2769adebc198b647a820e242c96a5f96c1e6c27a40ab131","impliedFormat":99},{"version":"b914114df05f286897a1ae85d2df39cfd98ed8da68754d73cf830159e85ddd15","impliedFormat":99},{"version":"73881e647da3c226f21e0b80e216feaf14a5541a861494c744e9fbe1c3b3a6af","impliedFormat":99},{"version":"d79e1d31b939fa99694f2d6fbdd19870147401dbb3f42214e84c011e7ec359ab","impliedFormat":99},{"version":"4f71097eae7aa37941bab39beb2e53e624321fd341c12cc1d400eb7a805691ff","impliedFormat":99},{"version":"58ebb4f21f3a90dda31a01764462aa617849fdb1b592f3a8d875c85019956aff","impliedFormat":99},{"version":"a8e8d0e6efff70f3c28d3e384f9d64530c7a7596a201e4879a7fd75c7d55cbb5","impliedFormat":99},{"version":"df5cbb80d8353bf0511a4047cc7b8434b0be12e280b6cf3de919d5a3380912c0","impliedFormat":99},{"version":"256eb0520e822b56f720962edd7807ed36abdf7ea23bcadf4a25929a3317c8cf","impliedFormat":99},{"version":"9cf2cbc9ceb5f718c1705f37ce5454f14d3b89f690d9864394963567673c1b5c","impliedFormat":99},{"version":"07d3dd790cf1e66bb6fc9806d014dd40bb2055f8d6ca3811cf0e12f92ba4cb9a","impliedFormat":99},{"version":"1f99fd62e9cff9b50c36f368caf3b9fb79fc6f6c75ca5d3c2ec4afaea08d9109","impliedFormat":99},{"version":"6558faaacba5622ef7f1fdfb843cd967af2c105469b9ff5c18a81ce85178fca7","impliedFormat":99},{"version":"34e7f17ae9395b0269cd3f2f0af10709e6dc975c5b44a36b6b70442dc5e25a38","impliedFormat":99},{"version":"a4295111b54f84c02c27e46b0855b02fad3421ae1d2d7e67ecf16cb49538280a","impliedFormat":99},{"version":"ce9746b2ceae2388b7be9fe1f009dcecbc65f0bdbc16f40c0027fab0fb848c3b","impliedFormat":99},{"version":"35ce823a59f397f0e85295387778f51467cea137d787df385be57a2099752bfb","impliedFormat":99},{"version":"2e5acd3ec67bc309e4f679a70c894f809863c33b9572a8da0b78db403edfa106","impliedFormat":99},{"version":"1872f3fcea0643d5e03b19a19d777704320f857d1be0eb4ee372681357e20c88","impliedFormat":99},{"version":"9689628941205e40dcbb2706d1833bd00ce7510d333b2ef08be24ecbf3eb1a37","impliedFormat":99},{"version":"0317a72a0b63094781476cf1d2d27585d00eb2b0ca62b5287124735912f3d048","impliedFormat":99},{"version":"6ce4c0ab3450a4fff25d60a058a25039cffd03141549589689f5a17055ad0545","impliedFormat":99},{"version":"9153ec7b0577ae77349d2c5e8c5dd57163f41853b80c4fb5ce342c7a431cbe1e","impliedFormat":99},{"version":"f490dfa4619e48edd594a36079950c9fca1230efb3a82aaf325047262ba07379","impliedFormat":99},{"version":"674f00085caff46d2cbc76fc74740fd31f49d53396804558573421e138be0c12","impliedFormat":99},{"version":"41d029194c4811f09b350a1e858143c191073007a9ee836061090ed0143ad94f","impliedFormat":99},{"version":"44a6259ffd6febd8510b9a9b13a700e1d022530d8b33663f0735dbb3bee67b3d","impliedFormat":99},{"version":"6f4322500aff8676d9b8eef7711c7166708d4a0686b792aa4b158e276ed946a7","impliedFormat":99},{"version":"e829ff9ecffa3510d3a4d2c3e4e9b54d4a4ccfef004bacbb1d6919ce3ccca01f","impliedFormat":99},{"version":"62e6fec9dbd012460b47af7e727ec4cd34345b6e4311e781f040e6b640d7f93e","impliedFormat":99},{"version":"4d180dd4d0785f2cd140bc069d56285d0121d95b53e4348feb4f62db2d7035d3","impliedFormat":99},{"version":"f1142cbba31d7f492d2e7c91d82211a8334e6642efe52b71d9a82cb95ba4e8ae","impliedFormat":99},{"version":"279cac827be5d48c0f69fe319dc38c876fdd076b66995d9779c43558552d8a50","impliedFormat":99},{"version":"a70ff3c65dc0e7213bfe0d81c072951db9f5b1e640eb66c1eaed0737879c797b","impliedFormat":99},{"version":"f75d3303c1750f4fdacd23354657eca09aae16122c344e65b8c14c570ff67df5","impliedFormat":99},{"version":"3ebae6a418229d4b303f8e0fdb14de83f39fba9f57b39d5f213398bca72137c7","impliedFormat":99},{"version":"21ba07e33265f59d52dece5ac44f933b2b464059514587e64ad5182ddf34a9b0","impliedFormat":99},{"version":"2d3d96efba00493059c460fd55e6206b0667fc2e73215c4f1a9eb559b550021f","impliedFormat":99},{"version":"d23d4a57fff5cec5607521ba3b72f372e3d735d0f6b11a4681655b0bdd0505f4","impliedFormat":99},{"version":"395c1f3da7e9c87097c8095acbb361541480bf5fd7fa92523985019fef7761dd","impliedFormat":99},{"version":"d61f3d719293c2f92a04ba73d08536940805938ecab89ac35ceabc8a48ccb648","impliedFormat":99},{"version":"ca693235a1242bcd97254f43a17592aa84af66ccb7497333ccfea54842fde648","impliedFormat":99},{"version":"cd41cf040b2e368382f2382ec9145824777233730e3965e9a7ba4523a6a4698e","impliedFormat":99},{"version":"2e7a9dba6512b0310c037a28d27330520904cf5063ca19f034b74ad280dbfe71","impliedFormat":99},{"version":"9f2a38baf702e6cb98e0392fa39d25a64c41457a827b935b366c5e0980a6a667","impliedFormat":99},{"version":"c1dc37f0e7252928f73d03b0d6b46feb26dea3d8737a531ca4c0ec4105e33120","impliedFormat":99},{"version":"25126b80243fb499517e94fc5afe5c9c5df3a0105618e33581fb5b2f2622f342","impliedFormat":99},{"version":"d332c2ddcb64012290eb14753c1b49fe3eee9ca067204efba1cf31c1ce1ee020","impliedFormat":99},{"version":"1be8da453470021f6fe936ba19ee0bfebc7cfa2406953fa56e78940467c90769","impliedFormat":99},{"version":"7c9f2d62d83f1292a183a44fb7fb1f16eb9037deb05691d307d4017ac8af850a","impliedFormat":99},{"version":"d0163ab7b0de6e23b8562af8b5b4adea4182884ca7543488f7ac2a3478f3ae6e","impliedFormat":99},{"version":"05224e15c6e51c4c6cd08c65f0766723f6b39165534b67546076c226661db691","impliedFormat":99},{"version":"a5f7158823c7700dd9fc1843a94b9edc309180c969fbfa6d591aeb0b33d3b514","impliedFormat":99},{"version":"7d30937f8cf9bb0d4b2c2a8fb56a415d7ef393f6252b24e4863f3d7b84285724","impliedFormat":99},{"version":"e04d074584483dc9c59341f9f36c7220f16eed09f7af1fa3ef9c64c26095faec","impliedFormat":99},{"version":"619697e06cbc2c77edda949a83a62047e777efacde1433e895b904fe4877c650","impliedFormat":99},{"version":"88d9a8593d2e6aee67f7b15a25bda62652c77be72b79afbee52bea61d5ffb39e","impliedFormat":99},{"version":"044d7acfc9bd1af21951e32252cf8f3a11c8b35a704169115ddcbde9fd717de2","impliedFormat":99},{"version":"a4ca8f13a91bd80e6d7a4f013b8a9e156fbf579bbec981fe724dad38719cfe01","impliedFormat":99},{"version":"5a216426a68418e37e55c7a4366bc50efc99bda9dc361eae94d7e336da96c027","impliedFormat":99},{"version":"13b65b640306755096d304e76d4a237d21103de88b474634f7ae13a2fac722d5","impliedFormat":99},{"version":"7478bd43e449d3ce4e94f3ed1105c65007b21f078b3a791ea5d2c47b30ea6962","impliedFormat":99},{"version":"601d3e8e71b7d6a24fc003aca9989a6c25fa2b3755df196fd0aaee709d190303","impliedFormat":99},{"version":"168e0850fcc94011e4477e31eca81a8a8a71e1aed66d056b7b50196b877e86c8","impliedFormat":99},{"version":"37ba82d63f5f8c6b4fc9b756f24902e47f62ea66aae07e89ace445a54190a86e","impliedFormat":99},{"version":"f5b66b855f0496bc05f1cd9ba51a6a9de3d989b24aa36f6017257f01c8b65a9f","impliedFormat":99},{"version":"823b16d378e8456fcc5503d6253c8b13659be44435151c6b9f140c4a38ec98c1","impliedFormat":99},{"version":"b58b254bf1b586222844c04b3cdec396e16c811463bf187615bb0a1584beb100","impliedFormat":99},{"version":"a367c2ccfb2460e222c5d10d304e980bd172dd668bcc02f6c2ff626e71e90d75","impliedFormat":99},{"version":"0718623262ac94b016cb0cfd8d54e4d5b7b1d3941c01d85cf95c25ec1ba5ed8d","impliedFormat":99},{"version":"d4f3c9a0bd129e9c7cbfac02b6647e34718a2b81a414d914e8bd6b76341172e0","impliedFormat":99},{"version":"824306df6196f1e0222ff775c8023d399091ada2f10f2995ce53f5e3d4aff7a4","impliedFormat":99},{"version":"84ca07a8d57f1a6ba8c0cf264180d681f7afae995631c6ca9f2b85ec6ee06c0f","impliedFormat":99},{"version":"35755e61e9f4ec82d059efdbe3d1abcccc97a8a839f1dbf2e73ac1965f266847","impliedFormat":99},{"version":"64a918a5aa97a37400ec085ffeea12a14211aa799cd34e5dc828beb1806e95bb","impliedFormat":99},{"version":"0c8f5489ba6af02a4b1d5ba280e7badd58f30dc8eb716113b679e9d7c31185e5","impliedFormat":99},{"version":"7b574ca9ae0417203cdfa621ab1585de5b90c4bc6eea77a465b2eb8b92aa5380","impliedFormat":99},{"version":"3334c03c15102700973e3e334954ac1dffb7be7704c67cc272822d5895215c93","impliedFormat":99},{"version":"aabcb169451df7f78eb43567fab877a74d134a0a6d9850aa58b38321374ab7c0","impliedFormat":99},{"version":"1b5effdd8b4e8d9897fc34ab4cd708a446bf79db4cb9a3467e4a30d55b502e14","impliedFormat":99},{"version":"d772776a7aea246fd72c5818de72c3654f556b2cf0d73b90930c9c187cc055fc","impliedFormat":99},{"version":"dbd4bd62f433f14a419e4c6130075199eb15f2812d2d8e7c9e1f297f4daac788","impliedFormat":99},{"version":"427df949f5f10c73bcc77b2999893bc66c17579ad073ee5f5270a2b30651c873","impliedFormat":99},{"version":"c4c1a5565b9b85abfa1d663ca386d959d55361e801e8d49155a14dd6ca41abe1","impliedFormat":99},{"version":"7a45a45c277686aaff716db75a8157d0458a0d854bacf072c47fee3d499d7a99","impliedFormat":99},{"version":"57005b72bce2dc26293e8924f9c6be7ee3a2c1b71028a680f329762fa4439354","impliedFormat":99},{"version":"8f53b1f97c53c3573c16d0225ee3187d22f14f01421e3c6da1a26a1aace32356","impliedFormat":99},{"version":"810fdc0e554ed7315c723b91f6fa6ef3a6859b943b4cd82879641563b0e6c390","impliedFormat":99},{"version":"87a36b177b04d23214aa4502a0011cd65079e208cd60654aefc47d0d65da68ea","impliedFormat":99},{"version":"28a1c17fcbb9e66d7193caca68bbd12115518f186d90fc729a71869f96e2c07b","impliedFormat":99},{"version":"cc2d2abbb1cc7d6453c6fee760b04a516aa425187d65e296a8aacff66a49598a","impliedFormat":99},{"version":"d2413645bc4ab9c3f3688c5281232e6538684e84b49a57d8a1a8b2e5cf9f2041","impliedFormat":99},{"version":"4e6e21a0f9718282d342e66c83b2cd9aa7cd777dfcf2abd93552da694103b3dc","impliedFormat":99},{"version":"9006cc15c3a35e49508598a51664aa34ae59fc7ab32d6cc6ea2ec68d1c39448e","impliedFormat":99},{"version":"74467b184eadee6186a17cac579938d62eceb6d89c923ae67d058e2bcded254e","impliedFormat":99},{"version":"4169b96bb6309a2619f16d17307da341758da2917ff40c615568217b14357f5e","impliedFormat":99},{"version":"4a94d6146b38050de0830019a1c6a7820c2e2b90eba1a5ee4e4ab3bc30a72036","impliedFormat":99},{"version":"48a35ece156203abf19864daa984475055bbed4dc9049d07f4462100363f1e85","impliedFormat":99},{"version":"2a80ab285da5ec06299594edb456abd51ee69a7506278cca24e1ab494a86952b","impliedFormat":99},{"version":"5cd9fd926e2034c7eeec3de6138e18bafe092e0672f8bccdc1a0669393af60db","impliedFormat":1},{"version":"13d7630be2b4951d99f5ac0bd83e07b4ab9e8b4f3a97e9ad5210ea6eed86fd82","impliedFormat":99},{"version":"a8edf6901be3952dd6ce40004267994165eeb9a51dd48363f43f206a5afc4547","impliedFormat":99},{"version":"865e26608ad2160d9ffcb981dc4649119471855f0467893934e3ab7c22b132e9","impliedFormat":1},{"version":"2bf40a9b2a42dc6f0e2a740fbc1c88c1998d25727b87ed0cf885284cb1e16c44","impliedFormat":1},{"version":"678ce9e1aaba570c9e5bcb5ecfac009720a60ec616bbbc9825fd04d63b53b751","impliedFormat":1},{"version":"b79cc2fb1ad4a842bbb8eecdc632a7f18ee303bd3fa58e972fa3720189859132","impliedFormat":1},{"version":"44338602a65a3e3fc8dfb35b09e6116d05d2c8019e90c8d0237b203cb3b5beb6","impliedFormat":1},{"version":"b2af1e9faa4f6750ca01407fadd7a90eac3f4615df984170cc53f6d7902d3250","impliedFormat":1},{"version":"690872b554003d24a4f905afd2a7bdd6ca9e3f1ea3276eb3dfa43290e7fa57c5","impliedFormat":1},{"version":"20b1ec36566c5915f77b422691e3ce8e467c195af9c9fe2adee1b9f95cfe59ff","impliedFormat":1},{"version":"54e9dbc82c0d74af574f927f8cd1b567be6d275b23984bd1ac602b3f0d385a63","impliedFormat":1},{"version":"ad53bd475d89e449c6539258e64745d35a8ad4eb75ed20c52b2979ba27eb799d","impliedFormat":1},{"version":"fa46c917a8cd50fe346b4646a7b52d9d9223b1d746056bfdac0153f4ea7c62e3","impliedFormat":1},{"version":"95bb7829186cdf1f69e548c9a5cdfa7776e85322ead227812293702128b7e45b","impliedFormat":1},{"version":"fe656648cc1b58e401fa0d0492bf16c0883663c82a819feef879483d20a04da7","impliedFormat":1},{"version":"dae408255bd416b2717a0be18188a64a4530a9440a662b9b470b0a136c75965b","impliedFormat":1},{"version":"1180af664bda92e8c27b788976e0b3c7483201b27efe6f64300c8fd5dfdb7089","impliedFormat":1},{"version":"6d0a1eb807e4f7c63f42c1b164d2c44f7ded4b058ae9232221f14af24869a5d2","impliedFormat":1},{"version":"2b6891c13b74886d1bb32cae8b8531997717eb279cbb147932bf204220db1f69","impliedFormat":1},{"version":"7a7cf51c1625984c330021ca597a88cbf727ab2643f7db8a3bfe22aa84084942","impliedFormat":1},{"version":"ff4b5d69e379c7d2763d952ffcd1e38d95c697658224c7f612735c0c67811834","impliedFormat":1},{"version":"513299726fe81a4e8b949fc555495cc40808bbfa84cde96534773cfdcf459ba7","impliedFormat":1},{"version":"33a29f53161aa4d0778b333128b8687b743fc77173f8ade3f73c13659cf14134","impliedFormat":1},{"version":"98b9efc8d590ecc3762c6c93735bf24266c7f1bfc06f983b5098578352075b64","impliedFormat":1},{"version":"748bc14a2fb8c21ff58b57c87a21bdb9d049bb0266525050d35384c30c44bbde","impliedFormat":1},{"version":"59ee3a45a164d5c29d135c8e713c484f154f421141c614b72b3c8103bff2f816","impliedFormat":1},{"version":"de346ee3e7c0e57a62ee18acd9b9cda57c596eca1fd7162cee0323f55366c0fb","impliedFormat":1},{"version":"df6163feb8cc511ace0d25009ed44f526e91f74b8eac78986bf3a56fccbdadac","impliedFormat":1},{"version":"d559cc752ef17b882fef1b5a2cf5cef76669620f28a0d6098e57b4b5da5eb6de","impliedFormat":1},{"version":"752c7d54e9d328c8aa47c89520fdb38c99ef0132e089cb7bde73bbcddc0b48ed","impliedFormat":1},{"version":"731160a68d1380ca76430a673f064d1b9b567524807f6015b477cd64d36c51fe","impliedFormat":1},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"486ce5135771d0b249145f0a1560d8766b35e5e215c0be86eff8b41f80bbcb9e","impliedFormat":1},{"version":"53c917a6d42ee959dfa8f842d612b59f5ac03a72905371fbd5371b1131d7d48d","impliedFormat":1},{"version":"2dc807c070380e3e5402f2f5ff635482e6f9fb43c244bd3a66c682a4aab7a2f8","impliedFormat":1},{"version":"39b4475e6e998885a7a0e69dc1c67ee6facced3ec7234109cefadfc7ef31e276","impliedFormat":1},{"version":"7f4bc4c6f05fa992e11f8b335db63589c556cf683a822f071c01a46d59912e49","impliedFormat":1},{"version":"b38cfb3dc5ce58b0993a9686064c31ca5b8ced1781043249089d171fa1c4fd70","impliedFormat":1},{"version":"e787c7a8b0854d8cb32d48450f95b3737b61a8be697c65d1241ba445b4261e70","impliedFormat":1},{"version":"61359565523e1c4e5b7f8af67e9a69ef177aae2903fc55db2029efa71c42f295","impliedFormat":1},{"version":"973fa3744879daa9ed6a4095b8da2cdd2bc4acd6007aaa87be9b2eab1d6ddc15","impliedFormat":1},{"version":"5cdecf081bf87b64f0afc929d9bf6ddd8731e550f6eb1846dd4513b441301890","impliedFormat":1},{"version":"65d5005eae8ea5af10b8416979cb6fcaaca374d3bc753fefb2aa0ad951e2351f","impliedFormat":1},{"version":"86feb3cb6b01919550f5c846eeae1b36707fe420d16ff7b603d27e53af450e70","impliedFormat":1},{"version":"115619837222e0263791637a3bf476060a93c7236c2b00109b0f0ab33cd6c7c8","impliedFormat":1},{"version":"e4b7cc0c48b817e78119edc65f0607d535bd537ba8a77a2937405f86393b08bd","impliedFormat":1},{"version":"6af30731a08e7b04632d135097de6b5e180bbc447d21771208415fab7489e4e4","impliedFormat":1},{"version":"12388dc354e536eba298cb55914496c389ef554ea1ab749e6b7aa6f39c74bb94","impliedFormat":1},{"version":"d1980619beb34b5b0fd0cdd3cd98c32fd38035127b4c2720b43b002a3377a842","impliedFormat":1},{"version":"46a7f13ac080593e33d76cf5de4fc9db639a9122a6a085bd12d2f3e61c9c46cd","impliedFormat":1},{"version":"efd20c2f4fe04f9965905ad50fd35e5ab0d3611ab9a077bfc1b12eab6f9cb9a3","impliedFormat":1},{"version":"316edc2773a5c40f66de00cca4f35ba671206988e31ea8c1df8e8ff871973917","impliedFormat":1},{"version":"2ae22d6b87836aeb67c823c619e0c66403ae028651f14f34d3cf0430f8fa9ec3","impliedFormat":1},{"version":"c2641eef9519484b19625ff9b9e71310da39600963da25dc0f0de11a8073612e","impliedFormat":1},{"version":"00d2e6fca85d766650ff9de68c0306afa4964823912a4dccc8e7bec80f38fd58","impliedFormat":1},{"version":"d2889f3ed0406f47012b39d59f2a9872b65465d0168f240296a6aaa23ba0e14e","impliedFormat":1},{"version":"99fcc7416501b8dca3e40581e320ef4c72e173317a539d895a2e8cf2640987b7","impliedFormat":1},{"version":"31dea6e70acd25ff078d08104eb2ae41eac598dcc305f7aeac2fbc7859246fff","impliedFormat":1},{"version":"3e3f11e1874771d8d75b18b9bbffffd2b464d2a44b3dcff3325041a7001ff62a","impliedFormat":1},{"version":"b53b302fd7ec7c441269b5cfd4a58de0bdf0e2847c9f8292b133c7c6dbecffee","impliedFormat":1},{"version":"3354fb95230a3d2f23bb4e086ab9fa29bb1fd4ade71ed7e4e15bd7fd175f08da","impliedFormat":1},{"version":"db03c5d3709cbc3f89024de53d0319e49fab02a016c9d3aef5308b44041afc77","impliedFormat":1},{"version":"5c2ebf20d132caae1c4b35d28bacf76384275937924cf72e4efbc2bcbba3cad3","impliedFormat":1},{"version":"054790666d9ed7c5a3cf292503e6a61780f7169fe3863e970d35702cb428e501","impliedFormat":1},{"version":"3095e62f6d48235298dcb23cda5fce12ac58d636b0f7d4ffbc80c84f694c5d70","impliedFormat":1},{"version":"25df3178f9bac06afb08eb57b6bc94989f5354f4ff4d1c43afc3627864446247","impliedFormat":1},{"version":"e3b4b27ff971ec37a4c0a6e1c9c044c206d68f57dabffffa71f2df80b5c8daa0","impliedFormat":1},{"version":"bed7c28681ba3141a429aa0d2660fbb6449f9bf4d7bf368efd4137a8c538c7f3","impliedFormat":1},{"version":"236c2a6aee18331ff39e29a6285aec02350cb1bddf3ca5d1e1235d6b0f059ac9","impliedFormat":1},{"version":"aa192bb83edaae4348184eaf12294dd4c1ed228cbad6da008a01369a557b097a","impliedFormat":1},{"version":"d6eeac6c763ef772e8626bc335568c325851afe57f9674c153046103d13e8569","impliedFormat":1},{"version":"5926e2e5298a0746ce33aa7c33200cf089e684b277f3e3b75cc190d145d3b78f","impliedFormat":1},{"version":"73a0ee6395819b063df4b148211985f2e1442945c1a057204cf4cf6281760dc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"d05d8c67116dceafc62e691c47ac89f8f10cf7313cd1b2fb4fe801c2bf1bb1a7","impliedFormat":1},{"version":"3c5bb5207df7095882400323d692957e90ec17323ccff5fd5f29a1ecf3b165d0","impliedFormat":1},{"version":"49a9fbfd1234674cb80daec73633a563d386b24af63e5297974cc2837a99e49b","impliedFormat":1},{"version":"293c077ae541a6628006aa6f6c2b31738387c4e8d033df81835656ed86655127","impliedFormat":1},{"version":"02e07de42da88aa986b2f47e9e0bd4573133a2240d42817f307440c700a7f04f","impliedFormat":1},{"version":"a5ecc724406ce58a8cf1dd766a2b75ac198730611a909374828fee9ca2c03b24","impliedFormat":1},{"version":"0f3b25a4a58bfbc81497a2560835ba48eb0e0d2cd00d976ac10cefb2214bcb2d","impliedFormat":1},{"version":"1c39cded7dede5be5fe3450179489d7e892e5e81590f5ca0305b063f85b04b8c","impliedFormat":1},{"version":"c94cd94329d2283c7ffaee91f3f9da4789060bfd12c18b1c87ca502dfe2e7e04","impliedFormat":1},{"version":"f82b4c8ad1a1bbad19bd2efefc6a4d80546f7ef1ea4500f2981e3d33a8844cf7","impliedFormat":1},{"version":"b15ae6501af260d0300f8148d9f6e356b16e72aad494b4d90817a60f794099dc","impliedFormat":1},{"version":"e689c521980a119665fbc52e3e9cebf182d76ba18f437710f421252b3f5d39db","impliedFormat":1},{"version":"575e8d070210e93cbb4ac3c18cea6d48b54d64aa8f658496296622d199c34e9a","impliedFormat":1},{"version":"ccfcb0348e378f0423e3b5b74eb23fea9893f9ed5396477a7f6b970c5c627063","impliedFormat":1},{"version":"171effe51e3f90facef73d7d9f3c43fb6723bf44df01740dc4d52c83a47fb70f","impliedFormat":1},{"version":"78d8ce9cc33fc80ba9339bf8018f282e1162d7bb8fd834ad4255cd111c208b4b","impliedFormat":1},{"version":"35a89ca4a11a983694a529c3c8bca9b2604dd39f1ce3be5812760c5d6bca4fcd","impliedFormat":1},{"version":"3343e2df866cc321345b51d3befd4f292fb00450f2e4cd530e6d979af1d3eae3","impliedFormat":1},{"version":"f02cac4bb6d304ead3570c7f78264af2d1fc2a5282fc8b4042dc1c1a8d0f4e61","impliedFormat":1},{"version":"cbc65ab4e61043907dc08a4062423da6e7d33109fda8a219ceda2ec98d0580e8","impliedFormat":1},{"version":"b22c5a59fad638037971add23c11d5b3fcb20b73b7687b595d57cb7c6c858c48","impliedFormat":1},{"version":"a36113daf1c07c21a0978bf3ea716d258eb8d13887c9a3bb394b4042989c1440","impliedFormat":1},{"version":"dfb8609c400499e11485d5933bb6a94029faa73626456f15b137d672f7ed3f0f","impliedFormat":1},{"version":"a1c564e2773dfb7d3bec40de87407ef36af9614ab36c23a2b20e9d07b175484c","impliedFormat":1},{"version":"974a296ae48132c94b948fefc6c41e766e75331f460fff1cac13fca48560f4da","impliedFormat":1},{"version":"8ed68c18be279b40d265f023f989dfe9bcd6334f65d5c35d15dc32e8929cfaa7","impliedFormat":1},{"version":"877353a33cf7651621d4a8d59b0e5d42745dffaa86f863fbad84a3afd3d0353b","impliedFormat":1},{"version":"6a6125d9da9c3516e5cdf26aa7e846ebbbd49cd7a964521074f85902f8df7d45","impliedFormat":1},{"version":"0462b4ed0e09fdb48ff4a70e895b563d75b413ba024f4479ef87760281b81830","impliedFormat":1},{"version":"23ace85c3d01c7d82bedd8fb95b7a7902237929b72a2a1b767fb563a24f2a323","impliedFormat":1},{"version":"53c8221dd71e9c0799e47a7b05bef62baba100e956d4e777c9617afae447aae7","impliedFormat":1},{"version":"f1361e3ed8ce7c3ed2aa9c9d0760a76a35391047e48e98685b04cbcf3d050c42","impliedFormat":1},{"version":"9f213f9495ee1bcbc95691a30711bc2274bb8b6407d55e139f7b551906de54c6","impliedFormat":1},{"version":"61d402fd5dc33411646456348996cd7d608ecf4e696c3a43ef476e64bc41d003","impliedFormat":1},{"version":"5f3f8d803300ea21de99a4e84c60af1ff808dabd9c7feffac2f0093fad064bc8","impliedFormat":1},{"version":"dbf286c3bf2c1ea48dd3d97d3d3265c36c51fd7fcef8fdc52624e5c4162d6ee6","impliedFormat":1},{"version":"e403a118d7064bd836299d296df2a1d4fdb3d35afcabc9c3e6ea9a5151b47afd","impliedFormat":1},{"version":"fd9e3764702b2863636ff175122790c065e39449fd2d2ab66c05c2452a444447","impliedFormat":1},{"version":"a2788a6aef1c55e94d8a3a51c53be474f7f766c3c3e4856940be9e689e7845da","impliedFormat":1},{"version":"57acd378108b9b4ed2a50beb0068a4ec6548a44284e2431f529225fe1c119568","impliedFormat":1},{"version":"ec4fb6bada4aa2161e89b82f1d19c23c9069a0967b3e41469b60fb1ef2a947b9","impliedFormat":1},{"version":"47ca5f288b6d09c737f95e75c952ec80601e425eb5e32a51cff2ec2b235025ed","impliedFormat":1},{"version":"3d53fcdcfc5e04cdc803c4f652f1ed7cadabccbf70b13c6f248da3ddd1fb588b","impliedFormat":1},{"version":"f6384fbd628e78839ed1d4eac7d30c438490e8501fce2671461101dc08cfb561","impliedFormat":1},{"version":"b48fe4141f082032b504b0bbf90e90200e72d26e130acdac7d4728b6d5cf9927","impliedFormat":1},{"version":"ceb82c3f651bbd2e8112df5c9101d18ecd81110157540b729f2d91fd2476af22","impliedFormat":1},{"version":"56dd0a3de5847ec09014c58e99e85b110730e9359a2927a543976625aa521ee2","impliedFormat":1},{"version":"1a996dbaf0bdd2acfeac97fbac98dba2046ec5692326099a51460c4d0f5ae9a1","impliedFormat":1},{"version":"cfc287e2eab581b5aef74288ab12a38dfedad4c7f86da8f9de05866b971260d4","impliedFormat":1},{"version":"b55a10a07d9e89f3fbc84f5adf660106de38c1632187ee89ce4722e3114bab1e","impliedFormat":1},{"version":"b76aa5f6ae4f664f6698f457d512a43424d0b89ecfae92f3862b11a59c356c96","impliedFormat":1},{"version":"7aeadcd6f891a60cbd7398d4efa6bfa8c6abf0d0d3b1c0957271b14835223add","impliedFormat":1},{"version":"ef808080f524a438cee5c18a3037659f772d77d868184073536ee14e505cfefd","impliedFormat":1},{"version":"789e37de9d9be63d4a831c44e1872c0d9973969710622c73e85e5ee488e46bc1","impliedFormat":1},{"version":"aa59e48528cf4a7f0de9db27f8fb1279a57831c87db377494dfd9909d5edd460","impliedFormat":1},{"version":"a7e9abded6309efc8a2dcad525ad862570a55344dcd96bf0e75726139ea46371","impliedFormat":1},{"version":"94095684562e04c69a3c508c15a4e379910a38781301bd05a098f563d1b2077f","impliedFormat":1},{"version":"b909d40ae0a49dc8cf12bef3675e7540f74eaf0f19a9b2fc310b91d0ac95b003","impliedFormat":1},{"version":"18517e95a9b285fa18c0218a1a6dce13c1e02584c4315710f4c29a36a87a4984","impliedFormat":1},{"version":"1554b903cb17787aed9b5dcea80358d6ea248c58933ee515aeb98c830b566347","impliedFormat":1},{"version":"758463ca4e500e663796adbf74833192d3b7b8de4854b63f45bd008f8a85e5a4","impliedFormat":1},{"version":"7731e44e65a7b3e20f506f6342e873ccae6129eecc0cbc02d1b3d30510642981","impliedFormat":1},{"version":"cb13dff5aa56155ed496db2cf084fc6a6e062d33fb0a8b72f2606e12cc3b1bba","impliedFormat":1},{"version":"dedbbcaff7747f2ea2677450351d36e7cfa30a56960a7fd261667eea2d4531aa","impliedFormat":1},{"version":"49620a7bb5ead5e646a697e4ab417a540a57b150efb8a107629eac48b13eb161","impliedFormat":1},{"version":"f07d892242e5d82ac0ed9a58ffe4056cdfbbfe8c4eebd2580e27635d7be65f66","impliedFormat":1},{"version":"2d48cb08bb8a13dc0fb00c829dae31d3ebe48bb060cdcc99a0079b4ac05c673e","impliedFormat":1},{"version":"8ad7581069b5fea9c14f35fa273b79c1eeed3248c15d8e3b3cc3014a60990622","impliedFormat":1},{"version":"96d049cb9f1a5fa296e00be2680394ac6ae91bcc848d98cfc374a469852ec23b","impliedFormat":1},{"version":"554dc5a72dea714b595395a4c12d519efccef1ce0dd5d7f41ae484401e50ff37","impliedFormat":1},{"version":"59dfd66db064bdc4a8167a4d5e6cba56213e94157fa89071f0289f07e3d95b5b","impliedFormat":1},{"version":"d69d5cbcb746e136acdd8e81ccfe00182dd9617bfd6c6c344e09a895e09eeed6","impliedFormat":1},{"version":"0a6182ba6bcbced44384aad64ced03428a44068db6e396627902d55452b63a14","impliedFormat":1},{"version":"f636e08e2de274463127a2adc5e8ca24304a2cd6ee5fe9483e35c8164bf35712","impliedFormat":1},{"version":"437f4518a56c655ee150fb75f821fd0684be16e6459204907fe8eb80ccc48cb2","impliedFormat":1},{"version":"dae796cfb059d6636e718f5e326c8f6243050c6d13f02b30e89522a05798dc96","impliedFormat":1},{"version":"852919a8c9f948a1120e26665877f445c5e979229cd9690926a4c1056ecb67ae","impliedFormat":1},{"version":"a533a88c900177a8bd724a8716d902609e7ab790e77afcdae1043ce882d6214c","impliedFormat":1},{"version":"61921a01ae678fc55f80344dc8770e257e8c3574abf42d94a0fb114439a360b6","impliedFormat":1},{"version":"620d192a20a0fdbb5f75562b2fb174e0df6762c53e0b3f3f9a905000983770f0","impliedFormat":1},{"version":"0d3d5ad7978ea95c0329ace8fc70d541f115393631c56b89b094edf9cc0e0267","impliedFormat":1},{"version":"9c4ff4b26953272dfd3fd9e37d46dbc5a1efa4ded8626b8f0bc79fafe2dcfc98","impliedFormat":1},{"version":"feb35d74e120494bfbc4c4c823da971a5b4b96e663513f68fe3c349fb8a592bc","impliedFormat":1},{"version":"c121aa1a348e834f829fd317dc6944f98169e0698c15f7db107798be1e0da78f","impliedFormat":1},{"version":"e751b5fdb543639ac55a0ad688e74c82ef24b9e712c9f1000399b63d7fc284bb","impliedFormat":1},{"version":"a3f6163afb8f4458c2a935747b1dfb384fa03f4f399a46b162e48d8b92aeb369","impliedFormat":1},{"version":"115dc68151cc74405c37a5199c2d42e5592d594c4788663c74bda8fc5bf0730a","impliedFormat":1},{"version":"d0c62b638bbf6104e0d50483239e212601576e246030b01d1b4b40918e7febab","impliedFormat":1},{"version":"de4227d3f974cb37120411c592819624c9da2bcabbb58082cde7df8dce2a89d7","impliedFormat":1},{"version":"a5c48a6fbf1358a5fe9b947a525fb353498792caa599ef33cb618b92eadcaf86","impliedFormat":1},{"version":"eafa5d831783eb6262f72363582b5a6f0e3a5ce7bcefcdafdaf372b54edcde3c","impliedFormat":1},{"version":"33d2092b9488d738d8c7a733d63affa819fb02773ba3212cf3426f4513e91eed","impliedFormat":1},{"version":"3a81f7ba793511be763ef2fc529b0779ad68aa1a4d8ff061f5b31ffe5338ade9","impliedFormat":1},{"version":"db92169fcf279dc7b08bafe78bbcffc4fe4e5e0fc66d00ea403b740e7a81b46b","impliedFormat":1},{"version":"11916ebd92fb285e5aaa3ad36c3df329057b53097370d884729507ebff0f8332","impliedFormat":1},{"version":"2ed240886fdad836469258df5fecc174ccc8823d619a07b0b0dbbc1a1616e48f","impliedFormat":1},{"version":"0b9214f3b1fe766c6e8ac26c685f5cd54155619f0e163c4e1a60118a7fc3419f","impliedFormat":1},{"version":"69b78d12bbf6f3f26065075189308104c8987988bf9ee57118670ef23c91c0a1","impliedFormat":1},{"version":"b11ec773a6f06effa0e041aec31cace90f3ed3f952d031a3f4e654bf8a313636","impliedFormat":1},{"version":"a9df4cac8ad59067b0bcf991f48ef9dd98f7fc3e7d1e3a36c3fb58073e1eac4c","impliedFormat":1},{"version":"f7e0529012b0baf35c8864fd60994e829a60acf05fb8a206deb405815a731b40","impliedFormat":1},{"version":"17831f179acf5e3b1a81da11b9b6fbae22e0f4eb996ffbac6667bac607fcd121","impliedFormat":1},{"version":"6a312ba9dcdcc637b946bb3d0ba6cc34b26cdc36f582167241e66a15a155512d","impliedFormat":1},{"version":"d10f6923085f763958dbfcedfbee643dd784a2a1489adab40825b7336d095d1a","impliedFormat":1},{"version":"1bb4ddb08f558faa5ada460dc8456be86a1f1e922a680fa37320ea24486a30e3","impliedFormat":1},{"version":"04b1eee9cd36515fc7e7c5ea54086c335c752c110f52e4f73e4f0cdde2cc3087","impliedFormat":1},{"version":"a236a69e4c0d1447040588861899788c718b4cf7d6254a3120a2ebcee95fb3d3","impliedFormat":1},{"version":"44a4531588aecec33f47aa6006da8a679340937d96e03013d05fdee5d8c2e81d","impliedFormat":1},{"version":"5ddef1c7f4524767aeeeda30bf8280d4b01d2c24c87735d0e8fc51455cef3c5e","impliedFormat":1},{"version":"dc31857a04afe1b49ff3fb722e8b4678210a1357003b626b9318448edf8f4880","impliedFormat":1},{"version":"00f09f305a5c82ff104a1b3c58360b4cd2557cff9ff37cfee6d5ed718a2077eb","impliedFormat":1},{"version":"ab57460a0acaa740c9a47c8fd19f22406eaab943992bdb27008eeb819da32d89","impliedFormat":1},{"version":"8776163e9a5556d318fe81de8cf8bb892e4b74d433ebd04edb8ca4856dda236a","impliedFormat":1},{"version":"2414ffd43aa41911f4a88803340a55bfd0e124a13a1a2d7dbe8eb3c619aa904d","impliedFormat":1},{"version":"163f6c701bb1665196f3b4cf5e3d1ca719f35e359c2812f186f3c86e495a13fc","impliedFormat":1},{"version":"4a1d0b807917c0c94767c261008fa1913304cbe959f44bba375dc1e60a74e7a1","impliedFormat":1},{"version":"90d3fc3f0fb18babdf4de1451ca218e36b30edb3105a58700954e33568075dd1","impliedFormat":1},{"version":"2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0","impliedFormat":99},{"version":"38d4cff03e87dc58bfd50ffe5a3fb25e6e6d4136a1282883285baf71d35967c5","impliedFormat":99},{"version":"5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2","impliedFormat":99},{"version":"6ea9c8bf2ae4d47a0dbc2a1f9ac1e36c639b2ac9225c4d271c2f63a2faf24831","impliedFormat":99},{"version":"a2a6960ef524509846b1ad24f36f6d9ea7e5ec7f0e55f943f8db09a598d99391","impliedFormat":1},{"version":"3d76957cf49167aaf2df848fcb2d95db411523d0025e9bc414006f641f407e17","impliedFormat":1},{"version":"594895eb74bdfe0a5174b5fd7811a8c912f2121347d773e56c28b7fb98642610","impliedFormat":1},{"version":"cf39c3aa36608091ba07df403bfb6fe43265a10b6ca43237ca5cd8dc2215c50b","impliedFormat":1},{"version":"ba7c1fd630f5175e41e24b44e2510aac50e98a2605d55bb4727e52c8bbc61505","impliedFormat":1},{"version":"a1c8b811348d3806581f7c5830d0d663eb910a828a69b5f49b7e3d219f6f200d","impliedFormat":1},{"version":"5fc020e4d3e29a0158977caa3b4ada841116bca7e95f1e3bd81972a973fa3e52","impliedFormat":1},{"version":"2a1f679af017f22773696f5f8a50be7889a256796e1e9c4639bb9683b85eee94","impliedFormat":1},{"version":"5c0896b0a5d08e905ebf5e5d644fcfceeef6b981864241ce87ad44c6d38b7037","impliedFormat":1},{"version":"33082e49dfc7aa882cac44fc860c9a0df4e71b869cdea78920a87c5f9ada3f35","impliedFormat":1},{"version":"37c9b58a44c587bba5fb17937cc009f7c8b11c5e1d034adbb6149fc7edf8f194","impliedFormat":1},{"version":"7a591b347f2956a5fdff47763b18e81f199d59ac4214a0eb10b527f668af3a14","impliedFormat":1},{"version":"18f8fbcb5964b00f0b9a59b9a20818140d256a0c13c40b27a84cf45039cd7ae3","impliedFormat":1},{"version":"7ca3766a7b61700680621bcaddd75095b2f6f1d5fd54054d455963e0b01a5271","impliedFormat":1},{"version":"3c210d785849c58fe7876040224d842318acc311170b36fa1fdecf6705e90b2e","impliedFormat":1},{"version":"931d881e641f8c6205ce766b5b0f4c334b4e44b400ddbd58a65f4225d6e55ae5","impliedFormat":1},{"version":"10b5802a62730e203b023f17e4aa7db9c8bac2fa557c0284362eeb85dd3db33c","impliedFormat":1},{"version":"ac6eb3be3381810472a2fc7056a9f736288f4492acb5e245804ee5275e12fa9e","impliedFormat":1},{"version":"1c7ddf03f8b22aafca004e06eb11ef870c6c48bb210cddf8f723dd634fc4b82b","impliedFormat":1},{"version":"8a62958b8a7962aa876a6554db15b6a40491e28b9772fd939254756dbd69d600","impliedFormat":1},{"version":"9354e4dbaf9540cfffa55762429274f2491c52780856a69df5f2bf1953638a7b","impliedFormat":1},{"version":"597d714b88fb4838f4eaf380e288889686168d0eb4335b03084fed54d71717ea","impliedFormat":1},{"version":"be7f71bc32c002bb28c81860665ac30fdafd9bf8631d3110f2ed5e9cf64806dd","impliedFormat":1},{"version":"ab5265c757bf45df980370183488884c0e6b04ecafd4476d07336fbbfff4a3c0","impliedFormat":1},{"version":"1b95d53b3cf18c5cb3998105b4e2d2db7f786406e194a935f7a4be03e3c98b3b","impliedFormat":1},{"version":"8dcacb13baeb9e2b3f548b81493d484f2bb95a6384e6aa311ead14fb87a7b14c","impliedFormat":1},{"version":"2b924655747dc77d6173bb706d427b89233969c68886301b97f0ec22d38cb948","impliedFormat":1},{"version":"cd532224c54d4c8df7e7fe6df04b9db97bba3c764ec06307f8063923d0ada85b","impliedFormat":1},{"version":"5ab9aca80383397243ab240ebc38ccadf85b566f670b980aed6e777eb3bab1e2","impliedFormat":1},{"version":"1a8452dc75d92ee4fa82455bdecede05171b837b023f374052f58f1bcf5b4da1","impliedFormat":1},{"version":"5290bcde06d2a1d393225c2464ef8a7cf6e3b68ae3ece13c4a48c10f0dbac1c0","impliedFormat":1},{"version":"9dc2e706663c027d2047a7371608bd1aaa0f76a974940f85e101a9f3dcf77f99","impliedFormat":1},{"version":"1a2f03003d76f913c21a1105408fb3af3184ab55dacdd7866e1fb5eb1f4a2934","impliedFormat":1},{"version":"25fed060cca7fcb097bc0a62dc5a71f60ccfbd3efa1bb3584e4b38d441ec9ac1","impliedFormat":1},{"version":"b636d739980b2e9a24b4e73251adf464e2ec0457ba998007b89ce7977ac2ce7b","impliedFormat":1},{"version":"411ed25e4d8e230ee295227a763e32a395bf1eb250e20af71a9c06a7e96a5ceb","impliedFormat":1},{"version":"8fb43d72aa54443abd069be799aec92b354ad28990f5f5f1acd7857773b54bd7","impliedFormat":1},{"version":"fe8e8c8df9218e3e0a418ddb058a81e895bc2ea5b548571b79594eec7d573628","impliedFormat":1},{"version":"2070abe224a2071f224fd7783212d020ee6d3f71c6f48405070a0b2fd9bfe479","impliedFormat":1},{"version":"a18875ee326a56d20c87ea0e86ff11a9d767cdee9cd5feaf60dd61c5b64caae6","impliedFormat":1},{"version":"df9d5f06a1692717762ca9f368917924fdaccfdfced152804d768eff9baeb352","impliedFormat":1},{"version":"34fec0d3b9abe499f5d53f1ae7a6c28d34ac289e5cff6f17587da846823cecb0","impliedFormat":1},{"version":"9ea3742314159f08b93e3dccb7fdba67637ba75736c12923d4df3ec9f40590ab","impliedFormat":1},{"version":"bc55f374f2b27277afd0ebdf0e503faa20ac18e81d15ac106e443ab354d3e892","impliedFormat":1},{"version":"ffc7343ac667843634241465fd8bb2fe5000964873434558f82c0e670d2b7d1b","impliedFormat":1},{"version":"e35562032ca67f79d83bb8e2b86b61dfcbac6a914ce15b0e2235e6626dbd49f7","impliedFormat":1},{"version":"0810fe9c952efed2e4372b734baaaa946c975c7e3114b9cb1e31179bca9662f2","impliedFormat":1},{"version":"18b2b9e3a3c86ebd23ac27a8f966b1870b8ab29a2857dc1c524a08a49b3aedf4","impliedFormat":1},{"version":"7078f3696ec34e21ccdddfd668eb9f679478964b739082f1d2f4ec286e27e324","impliedFormat":1},{"version":"2ef538c8ab12d795cfb3759aab16593d97bf8d1f491ce4a7cec2f452c30d312e","impliedFormat":1},{"version":"7ffbadcb4cd98d917e23f35a803795404e302f2e5ed3c69fbdddcbbd0190d2eb","impliedFormat":1},{"version":"8de84288a2bb7428bb031ba2a5b6ccf5415a06826b902f704dbfe0fbd8c60745","impliedFormat":1},{"version":"d5da81f56f3189ba0a2f7fc2c38915b741a5d4f9c1d56749bae3cd821eb11dbf","impliedFormat":1},{"version":"ba6514678ba39cd24e45efb38e18d25274787fb031b49b7f9dc2ef5857330ecd","impliedFormat":1},{"version":"2dd0a4aeef324625f4ff674e2cfa14e0e3a45202ae2d2c2ab882ec164589ecb1","impliedFormat":1},{"version":"6c9e1fdd65d24d365a746e8a47f8f367650dac5e9436ef0c0f20237e204e072d","impliedFormat":1},{"version":"7f79adbfc34dc2e7fdbb76ed579a4e1944076baa68b62cab9c05a81780088c36","impliedFormat":1},{"version":"b5979ba9077be6b986d0a6c8b6904fb32ebacf0d58fe66f5595a83af055c9f23","impliedFormat":1},{"version":"a883088486a65513998935f6444e0448820478b0f4783171138e3b8d3e92ed9a","impliedFormat":1},{"version":"1a09ea0b80210733d1c5fc284ab10291e9cc2d6c4b70764d05cfdfbe4116e71a","impliedFormat":1},{"version":"3da00f0c6f5f4bca013ced5172164a08e83f33ddf969b893c9cca734f97abfca","impliedFormat":1},{"version":"2ee1fb806f0b0f44313b46de861b55649634ebd9757c5514c3ea93cf1255d45f","impliedFormat":1},{"version":"580f7dd2752bb6468e1eae47c8465d681e8016614cd2d20bad21680401381560","impliedFormat":1},{"version":"3e6c1a8e7d9a2fa9e6e515cbf2eac07eee953a6ecc134e8fc565ed914d288a05","impliedFormat":1},{"version":"aefc07a7a75a93e46eabf563f85ccf13fc5674fb2575433dced13d86cce102d6","impliedFormat":1},{"version":"39593c50b59d3f35738f1d04978755d746aafd90d90f2f088ae072e38c98d753","impliedFormat":1},{"version":"e09e37a97deb2318bcc307e56eec9e74307bf4e185c5028cd61fb7b7a415091e","impliedFormat":1},{"version":"d58164beed48baed6bd4e8b4f1d6d35379bdcb50d79874efc906db8177e99dcc","impliedFormat":1},{"version":"fd4d66024e28ba8eac39b0d79e9932c1e7ab2cce39c3c8d776a10c2d8d550c95","impliedFormat":1},{"version":"0bf65d13cc32a5456a5983b40038f2df29676c568219ed7a173d322a7a7a1046","impliedFormat":1},{"version":"0e174986b721b6f8e0ae71473e8ecabcd27a72a1eb0c6a5b245641c92eb1f548","impliedFormat":1},{"version":"5195fba3a9190c1ab07ebdce0c43ef1215513fceee989230ba26b560db68b9b1","impliedFormat":1},{"version":"6e888892c110c9d9f5dea5cea9d73a7ffdc9539ef33e2c909c71aedb89ad6306","impliedFormat":1},{"version":"e98b949511cf978e1416c23635e4a7af49fb7e906a3aaad78639d0354ca3f91f","impliedFormat":1},{"version":"9fb0f57f4aaa5a7f6f47999bfc60d46fc8624174e5ec1db2eee681e7a7c5b7ac","impliedFormat":1},{"version":"6e5f47bfa10432c13f71a1f65d4c22fdac37f5b466250b200be575b044e466a0","impliedFormat":1},{"version":"9f902e8b6ab7cf1195f7dfd4ba76ab1761d27dde27140d8e4334d664ff5095a1","impliedFormat":1},{"version":"b6597583353a27878d178eff7cef1df25cd47b52318fc8c1df887778f39fb5b3","impliedFormat":1},{"version":"89499fdc926291e337e6befdfd4b3796a5090c8f7d88f670186a3478f287e049","impliedFormat":1},{"version":"f90e0e3dd84b892c1166fee0c4d07fefe1c975aa335249369198e9e303150c8c","impliedFormat":1},{"version":"0dfb0943c928ae130a9b563a0d95d19a654149c63afc5eaeb0bdab22a2e4cf92","impliedFormat":1},{"version":"f1acea90ee99fa895bfc2be16d42d010afccf581f0a4fd81af05c1e33ba52d30","impliedFormat":1},{"version":"eb7f78707b148715913878ab073771c2711636f81d9edacdc23741c5c4676409","impliedFormat":1},{"version":"69b302f58e27871aa18c35c9f6e54e182c7b5e093d680e90dcb271ac206f65b1","impliedFormat":1},{"version":"6bbdaf306a56f31d1780c457a169c54856444cd0e38bea9302ee7f719216320c","impliedFormat":1},{"version":"3764e1710ae3be641878c48688a6064b50f88bdfab8270477421e0ed0370c20e","impliedFormat":1},{"version":"b4039afc53de6f76bfe17e9667c52903e2c3522cf7e2adb48bdb0e9801c53ae2","impliedFormat":1},{"version":"0097a7bca0c500ea9ea03fbe979b864aba32f8add469ab5755f9ca20bffe146b","impliedFormat":1},{"version":"e4128e408464f38961eb93e466b10f0b70a5347bed31a306567de8a9d2cfa2e2","impliedFormat":1},{"version":"6c2913d56a401a786605facc3696159a4334fdde5e3cf3cc99606d63eacfd77f","impliedFormat":1},{"version":"ba9d942ce82486a429051ed695bbdc82922154b1867968bc3cd528fef4b1db0d","impliedFormat":1},{"version":"5065d8794b4d58da06eba6c467c5ce628227fcee5b378bcb513928e5f4351d3d","impliedFormat":1},{"version":"d96916253cf5b59873d497bda35bf1f60ca574a7611c288416903f6da67dadbe","impliedFormat":1},{"version":"1f08d836cb44ad9eb02e5437333eea1422bec0fbeedbe2ee637ba5f85c776df9","impliedFormat":1},{"version":"747978ad044367d203290e385379ba6fa13094707cdf93e7c46a28b557d5ec55","impliedFormat":1},{"version":"085986a624337952d77da5b7f4606715ff736293c0cd1ab2bd3bcaad20948100","impliedFormat":1},{"version":"42052a992a6973092850f23f4010d7137d202c1f56a8e8c515afa5de03b38506","impliedFormat":1},{"version":"80aa8bd81499eeab329bf5cd4cdb47cb6a1e55ce8c381c73ca0b34504dc98c31","impliedFormat":1},{"version":"73041c005eaace48167bab34c90c22873c23cfe7143a8a1e4830325611b8a432","impliedFormat":1},{"version":"1b8e481079ddfa96fa74e13195d09a3042427deeaef5e489c6953d033790e0c8","impliedFormat":1},{"version":"fd8c6a9b6efe0982844a362276267f4a8a0d0eac3f6c0105e07ae448baa089b2","impliedFormat":1},{"version":"671375a441525dfd1dd0d6205596b89cd5e36e43f5d5bd55241a5ebb1f9f8536","impliedFormat":1},{"version":"0ddf0a53aac62bec6bfbb70acd8ec414e4cd406e456d90b927d68589a1bc11fa","impliedFormat":1},{"version":"6b67e49174c6d0b293d10173bd4a1cc03006e5e34982a27e411474d6ad4ab08b","impliedFormat":1},{"version":"bbe077c6b64b00be512cf103a2b162d07e062bd192d27a80e6af5e640883efa2","impliedFormat":1},{"version":"6d8c163fa3b2767df0be2f34a5766f2f84400f855004dee35978668ea8c643d6","impliedFormat":1},{"version":"67901cbfa0e5b836fff44d6433d388ee08d49e861dce861c46089e85db76d1b8","impliedFormat":1},{"version":"cd3637aed7763ba22d12a386349eaa3ac394187d7e62ac5ac2f2b21959f2c92e","impliedFormat":1},{"version":"182e6dc43d9db5b02d97da9ad1a1f33511698690d075aa094a323e5596ee4151","impliedFormat":1},{"version":"03daceaa4fc85ddb4578c3e00c76d06b08354f67d3488fc0d3ba70f5b7bebe5b","impliedFormat":1},{"version":"a61a2b837dd119f4bb6328ddc2a75d2991268ad3f3c7fb057f5647659e8f7a0d","impliedFormat":1},{"version":"1d56fda4de62aa710b03933ed8886600db20fed547fc82fdb1e3172890b911fa","impliedFormat":1},{"version":"cdda9aef8ea456f57dbc7a1dbc992775635f35d1f16bc6ba5eec62582eb95c97","impliedFormat":1},{"version":"809f7de42db29764819db01936dd61260c36bb46da14a2dfd0d9cff433119c97","impliedFormat":1},{"version":"5f5a37e3d8f88da4365d633ba046b4a6fb20295417527e553f64a4b09e3fe7c3","impliedFormat":1},{"version":"5b76ebb3f054e884e915f113277a51baf59e648c63704aecd893b03d59f1a1c7","impliedFormat":1},{"version":"94db31e5feb97be7603749e699e2c7a149c1757ef3a7f9409527a11be2886780","impliedFormat":1},{"version":"80bd39fb5dac4905e90d9d2d2ec1bba058e4c5e65606263d76fbcef5499745fc","impliedFormat":1},{"version":"c814167f5da5cf413798dd7364096bdc04e1880118cd0d6fc7b1c8a13cdade31","impliedFormat":1},{"version":"ddca3180cc80853cbd1fd0ff049b4c174243110a4a2f231ac52f808369e10fb0","impliedFormat":1},{"version":"fdbff9f09e335506a85070891d2a7d370c151b50733742e4d2a7fc16900e4a95","impliedFormat":1},{"version":"b2b44b7e7d9e497466c0af940cb970eeca779ab831550078a0520aedc0ac3460","impliedFormat":1},{"version":"86dc4fb96df154d94b170e083ca293c38c12b9db881d04a4da308b7116fb75df","impliedFormat":1},{"version":"964e5c21c9795282e320431952f8399a76cc9c680516bc05940f6521f82c8495","impliedFormat":1},{"version":"35c15cf54be7051ef44f508d9da9c27c547f6e81d52bf477b0f809e2327ee8d9","impliedFormat":1},{"version":"b8d0deccc242126e1550a2ea3cc2661d7b174ea120559e1918e06b9270285ba6","impliedFormat":1},{"version":"2e52952ef8cf48a372827fa45cdc5fb094c91421f4feab9c803129ee078edb8f","impliedFormat":1},{"version":"a9337ad54903029d34c273ee605be5716e7832e281f6fb66715f661a93c10776","impliedFormat":1},{"version":"d907dd40369128bd18eee0e92d883b919aae330aef5edad23b8bc267c46e1ecb","impliedFormat":1},{"version":"7b877947ac19bfe5039233596c2a10b10f773acbf9857c8354e47e16b319e1c2","impliedFormat":1},{"version":"73ebc746aa0a19fe29c826702d37419fba934262c4c1a3b04d37ed2a20fc15b5","impliedFormat":1},{"version":"a7a1e121728c2e212f90d8d2f305f472b5a88c30dedfdef781ed9c75f2c8b3a4","impliedFormat":1},{"version":"e5531569cb6d4fc5ba2eccbb67ce8f8bca6f569c6f0702a625d5bfd0ef364854","impliedFormat":1},{"version":"5fcb4b897e8ea1ef4d40a6f42a93c329685f29b4c6a3639a02176d9ca9cb4686","impliedFormat":1},{"version":"e8dc672b15bf2e1e35a81e45140d830be8c98111325530e5f0eb7c5863245e82","impliedFormat":1},{"version":"9e8fd5b597e56e984d9ace2f8b5036c52ce3db8bd99c9d0a0e2a6be437eadc85","impliedFormat":1},{"version":"5a4a8f7317fc4821e7a46178c217733bdcf29c915a4919289292438e15de4607","impliedFormat":1},{"version":"5e238dda917cd2472b4f01de26b108974e55284bb214a4bfad978a5be34be7cc","impliedFormat":1},{"version":"5125b5b048d60035522ae201ccf7525e2f6a2ac5b2e68b6607ae54c715c66900","impliedFormat":1},{"version":"f55b6c21681fb9bb17f61ff9368fbd4e71a79693ce295a14151b4f325413b0a4","impliedFormat":1},{"version":"a5b2f909b4117accaca01cabe73871cb9077b9f93d292dd232f10892d146de43","impliedFormat":1},{"version":"9618adb3ebc25306662e030f883eba7057eaf4bb2c6d5879dfd6676129815c02","impliedFormat":1},{"version":"01270a9f63529e308eddd085993c4f25c1cb594e69f47ed3b289fb097af55a6d","impliedFormat":1},{"version":"d92d2527e59d91387d208c266a49524fc263cda8f6d54beb9b85f98b75493617","impliedFormat":1},{"version":"de0d38c21863792de0659e01e8e76615be53fa586ac1dd5b54f6042ec6348feb","impliedFormat":1},{"version":"a55439c4098a852a7dff67fcc3309065f8bf6009e02273e0cf7f6e165fc959c7","impliedFormat":1},{"version":"3e2f969b9fae540fcefdbdd76fd18c9743a369759730c66c775bd7dea5c151e9","impliedFormat":1},{"version":"fd1aa5b5f3c10cb19d3e0ead864d193a5fcc7efb837e47212255bcab2847a173","impliedFormat":1},{"version":"3abe9c7635bdd2ddbbd9f1a4d98ff44c2ebf780e13e17187adc98ec82ad0c7fb","impliedFormat":1},{"version":"ba6fdc7d3a3d6fc4236d491103cdb8b132c151b2dda4b06fbd38698ac0e3d2e4","impliedFormat":1},{"version":"32a3a19d049ef0b2539e525c862760158d6d16345835f2bd541e8f9a45380b50","impliedFormat":1},{"version":"7fa7fb68cea5734bfe2091ff218d302f0a3066f4a78ba26078322358765cca8e","impliedFormat":1},{"version":"11248c1e632fadd67c22d561754c30265e785edd66cdbfbecb227c3a9b1ebf99","impliedFormat":1},{"version":"93b6da74507103bee98e39f0d02cf6849c0cadbfc813f26804bf9ae5d0d3f75c","impliedFormat":1},{"version":"29675992f9e94f7f721674c8d07bc2042ea7a6bb8cf602b0ded185edd0c557a5","impliedFormat":1},{"version":"daec5d2d52be233262c80013e18d57be920152412de99ddb637700410ee7fa7d","impliedFormat":1},{"version":"e1e1837b07bbeb81a00d1b0b7edebf8f3e2b44ad148d5faff905ba17a0005813","impliedFormat":1},{"version":"c01d685b9634c875d18f81b643cc1fa5c01a1c740ad19a2578811aaa8f12f414","impliedFormat":1},{"version":"a896dd450b58d96d34a2b565c4d0db365eebd39cebe6e34fffbb2e01065d3013","impliedFormat":1},{"version":"7fc08eaeb2ac34f87eb2336270f2368e66eb83796d5bee2a96438f01d088cf68","impliedFormat":1},{"version":"d6d4654b5db43b43d857d245c054f359b8aaccf6004bbc4324f320ff2a507a87","impliedFormat":1},{"version":"628cc9debf7b2c1828d01d134506fae17eb26b0196d82184df3b6d9494b43ca1","impliedFormat":1},{"version":"a3d8178c385250d74effd5936477f4d5d2ebb9afb5a342bae1b928f621af63b1","impliedFormat":1},{"version":"02124f773917b14404ea6b1c87bd84e701136ecf91ea1a447cf93ede4bf04983","impliedFormat":1},{"version":"e4d4ed8aab4e61f8ed7656baa565ef07cb0e6f8418d81766721cf2b591845243","impliedFormat":1},{"version":"e2a7ef3681c1d61e11203e8dbfd77e25f23d7560c8fcdfa37490899d037c0ee7","impliedFormat":1},{"version":"8bcac2d5ace8feaeba195f476351a0f09841ba69a1b6175ab6574300fd70c9d0","impliedFormat":1},{"version":"53ccb10a74e6de7b5ee83cb44a12834f823fb78ea0ab3ce51475cee1779a8d9a","impliedFormat":1},{"version":"88751f9db85c13a404f3fd8348ba1ffd606715ac60572aa7b20de442049b0fff","impliedFormat":1},{"version":"d82aa6e7f1decca5179d57d12f94a9ca9b3f7f77048aa20ca98e154c3019c1fc","impliedFormat":1},{"version":"444a93f528d1b023dd00c1b46dd3d474a0339b50599b2e819ab13fb6b2c915cb","impliedFormat":1},{"version":"70c415e2ed25afac403f2828c67743154a8252945ef24e9343e6a3a55431de7a","impliedFormat":1},{"version":"86add54a494cb66d630e4554b9a2552fa2488b491549cbc2a7ca0e538e1d9f1d","impliedFormat":1},{"version":"3039c7975bb1035041e6abac5c71cfd0c2531ac20f8a3c521891d18d21b831ac","impliedFormat":1},{"version":"6a8111e8e43cffcaf41372315ae6cbc11d8596cec0cff4c6c70b27da75cbdd25","impliedFormat":1},{"version":"e75a6771bec31aeb2e8258df9f6c6652d1659648eb53dea7773562660a6fb5ca","impliedFormat":1},{"version":"4c3438e7cc5515323f5846d72b84fec9fe2e6d5fef50a517542c7a9bdc51dbf0","impliedFormat":1},{"version":"1d86876dc1a10218bcc482d392b3b86a61ebd4ae5f591a4755beb074099e4e95","impliedFormat":1},{"version":"80ca9dfd51ef8727912344fa6dceb3ffbda52c4a2ffb2182b704480a5fd7ee8c","impliedFormat":1},{"version":"770c2dd0ac11667883a3ebc682899c068c48ebd57663e4c50949e5652dad80fa","impliedFormat":1},{"version":"feb908fca7ebf8a474b20dcd1aee71d49ecde939d2f9d6dc9e8c9de589cfcfca","impliedFormat":1},{"version":"50849d34df4de824de2907e963279d49ab22f1914d47135cbca6fcb5685d49e8","impliedFormat":1},{"version":"7dc02705f75ddc71b0e2f18351d3696e41f6e07d790c18afe5b78c89e67ad387","impliedFormat":1},{"version":"79ca6338c68397a7e0f0b7ddaa3350c9764b8a2c4f4638251d316f72cccdf1cc","impliedFormat":1},{"version":"d4268aa638387a5d8219b3f8ebf0973ecaa4b2814f4e036248bd189654e510dc","impliedFormat":1},{"version":"7e6aa259bd4b2bfea6fbee6aad9811aa9b0c40ba71cd53e9db77073f41ff3aeb","impliedFormat":1},{"version":"4d19bf8ff0030c8c06c5b006baf9f7627e9f76216138eb45966583d0d5724b13","impliedFormat":1},{"version":"59a25169e290be34736885c06d5e29b2c2af1d6bb0afda1c3126a57a87c0dc4c","impliedFormat":1},{"version":"16adda3678b1f885104505504ff3f705f92cb071152b6826143a6578b18a12da","impliedFormat":1},{"version":"b773a29e6618e4ece53d0984eb455fca116799a6f658f4ab9de40c58d71f2dcd","impliedFormat":1},{"version":"f3b403e6482d63c3f00d1a5e77f8dc02c85bb324fbc35689f94f657ff678cf3e","impliedFormat":1},{"version":"eb1dc31de2323373220ddaa9e35f12eb2e2528ba2ddba760496b5e02f94e83fa","impliedFormat":1},{"version":"80d5e377dbe2d879fd58b903c81cf8051794a2457346783ccc5219088af95229","impliedFormat":1},{"version":"2f011e16e37f62fd4a7a00986fe5678fd7318af48b733274adebc2a1096f4701","impliedFormat":1},{"version":"7af34691e03a05e1cc3ab659fa0eb97df924dc12219b9e0d42df1b1b4944556b","impliedFormat":1},{"version":"d179af5c4c1785302bdf44967a0298b40a055290cbdf49b8b1f6821b5ac45d13","impliedFormat":1},{"version":"715c6cfb5c918ebaf7a4ac12fe7036354c7737ee53f27e953b0c6b32ea5c7fed","impliedFormat":1},{"version":"c14033543f143ff973b992b5cc84a8ec179fbb26c55d021625400bce08693062","impliedFormat":1},{"version":"e0b68ef2073c5ca07054a7569bd426b18eba0a13bfeebd987edbc1c08e9858ef","impliedFormat":1},{"version":"79122f57117b9579f963bf6db860c90f43c61fb3695b7b9709733dd36caacb53","impliedFormat":1},{"version":"4f1ac03c089109e65116ab3c7d6cab25fdb6a39de4261276224e87daad49a416","impliedFormat":1},{"version":"668f9948d2ac4073c890e9085c0a0121e91829b12e7dfff1bc97c2b22febab66","impliedFormat":1},{"version":"95d3f7dbf440ee15105ed62b06ffeece7c6b2e9c8d7cafcf926a02732b0651bb","impliedFormat":1},{"version":"08c35dd9786948e567228b7981fd7fa898635f0ad07dd474d19315a4e4cf8752","impliedFormat":1},{"version":"7c95d753ce060546ccb96db36e36bdc1ee5527a99b81deae23537cc059b728b9","impliedFormat":1},{"version":"f02a70ce1d93ea668934465feb287fdae9fb9fd89ffb175e3641b505d123f1b4","impliedFormat":1},{"version":"ecfa1490baf58bb547cbffd35055a8d37350e5a4555541ef9ca594f296adf0e6","impliedFormat":1},{"version":"17fc7881515e746d2d626fe263fc89224c51c87d12cdd1de0ea18faf297b29b6","impliedFormat":1},{"version":"2676d7da626cfa5bd5c71bb1bebc049e6f2a2b68aeaa3759e052dacaddec2e7a","impliedFormat":1},{"version":"1f252a0e6a399dfcb9c151462a942d3c3640aa024748e2357bc2e50b525dc66c","impliedFormat":1},{"version":"76163722f8e959ab91ff15bec1df8b2af77e12c975a41fe696f3a14fd3850da6","impliedFormat":1},{"version":"121237ae57eaac5ebf646f81cde270eb093e12ee4d3954f9d8595eacdcfd9cb6","impliedFormat":1},{"version":"9a84eebd6e526afc2fc38392b0c507b9c373159bf9565b5a192d53abe9cca1ba","impliedFormat":1},{"version":"1745ce89aa62ddb61b342a63c563575d750207b9951f256c42c15cb825e5df99","impliedFormat":1},{"version":"6762da06aef84aee250f90a6e8d65ffa470c6b5bf7c7a2d4de68077858605417","impliedFormat":1},{"version":"88782e4ead68723b1353d3cbd8eeecb2b88577809d6920714ca3d61f755b6e14","impliedFormat":1},{"version":"95448492f7f7db2368809190d29c7472ed3f6f898614360ec2ded6cd710c5bf6","impliedFormat":1},{"version":"638fd06e4ac9a0f7f80cb59b2acb9ad82d90d4595b791576078500da430cd691","impliedFormat":1},{"version":"532fbe381f6980f5f96c526f5fbb6e2393093ec4a6947af24b2ce4f0c64d464d","impliedFormat":1},{"version":"59262b81348ab6c3b8648eb84d869d359ae5c2ad69a4e0022fd917e936389f9a","impliedFormat":1},{"version":"980bc0f948c0b2cdcdcfce30cb6a67ac7357e9a04a5a5377a4b603ec5ff3ed44","impliedFormat":1},{"version":"08dfa3925bcaf3217ad1cb48e967b334371258446f410a2bfc0647ead3b53958","impliedFormat":1},{"version":"c4de9078f00e95ecf7eae1756d21022683889dc2f7dc359ac1a401eebbccfca5","impliedFormat":1},{"version":"cc0a459bdc4e9cd5fe034a62fa83a8737486b0bf40b11190e82ed4a0d803cd55","impliedFormat":1},{"version":"e159fd8868a308bda44f504d5804f730bbc7f35c7c163c9d3f04d36a1f3eccd5","impliedFormat":1},{"version":"48c16c377d293408b0b9f8ad3822c543728924dc82caaad11d271cb5a43c8b0d","impliedFormat":1},{"version":"a35768b4aa61e5cd551016c91f2da9666c485fd32cb85063a395f55a74932df5","impliedFormat":1},{"version":"60c94b45d32c09deec9a19ba3f7d8f680767992c1724e20386d786ded16668a5","impliedFormat":1},{"version":"d8815d7ac98bac1d4d476b6de5c837913368a909f1d417738c621be550483037","impliedFormat":1},{"version":"efe5226c10cdbdf02bcccdd55ab7eaa546d9d20f8631b71eac14a171b6856115","impliedFormat":1},{"version":"25182a16410182f105e3d4f7ce47704868692d82b810145a1fd9214dd68e39fc","impliedFormat":1},{"version":"5d802fdd246b92e92cceae486384778d2e70099364e3060458ebca3db6c9537d","impliedFormat":1},{"version":"25911651d3fd103da84f2da6089c5796c2cd3bc9b885de8d518538ee0b2502d7","impliedFormat":1},{"version":"b1d4486f4041635f978e24b6aa7aa26a8b1df81ff6d7fe82e8315d436ce4ea4a","impliedFormat":1},{"version":"697ee35ed13099d7b2a3bb7828a581d2b6d1b23574a4213802620429c973ec27","impliedFormat":1},{"version":"595c172dc0edb928be05bac0fc3010d9fe5da4fa92e404083f2749e693138882","impliedFormat":1},{"version":"573082b6780a37ef0f3c4507fa954e09f748f710bc50754437f0394639402520","impliedFormat":1},{"version":"7ae49abce785a8816bbb49dd5fb301ee5522f02014aad1095639a342a4aabb26","impliedFormat":1},{"version":"c8ea14372521ab27bcc17db148bad457dc802b6a7aa95a3e67efabe67831143b","impliedFormat":1},{"version":"8e4209d2c93131a8ea06006841fb7c08043a444071f094927b2e160d67ed3ecc","impliedFormat":1},{"version":"72618877b1e15de4275dfda49102c6240811bcec30e4c9f8bfce889edf18187e","impliedFormat":1},{"version":"3a699715c6b195cd9b7fe96bc4c6482710c5026380ec32ddd49e60a42cd8b9a1","impliedFormat":1},{"version":"13e631d64e1710522bd93bb90235dfbae228d2b6fb762dcf9cba641bd748829b","impliedFormat":1},{"version":"e965e9e03bcb2366b03337dcb8c82a7217eab605f3db90ee942302bf98db340a","impliedFormat":1},{"version":"e384122e4fb7bd3ca8e36b92825508beb73784446e40adc1f747dd331074c35a","impliedFormat":1},{"version":"b331bafdaccff6ab5ea40b3526457cf25f80e3a418958f8b8737450df8ac95cc","impliedFormat":1},{"version":"bc756ad9380c772b2a0090e370516abc6566781684d87560fdc69fd746a22eac","impliedFormat":1},{"version":"8acf5e34281b6896a32f263576144711a1e0c5aec82deb593d8675c18147f546","impliedFormat":1},{"version":"b9876d7df3a4ec58dafa1eeb1e5ae104d3326e5d0ea50fd34e8e67b58e52e98b","impliedFormat":1},{"version":"213891ead7f95efed458988204d6d328fbfa6680dbd071a833e8e8ece091c162","impliedFormat":1},{"version":"42ded6282e32871a3f09fb7a75c5a4fe7b15b567ed26240a9423a66d4b86d208","impliedFormat":1},{"version":"e96ca53a2b2ad48b5bf88acae2eca9b0abc169fc5247ff50b859bcbb1decf17d","impliedFormat":1},{"version":"e498682b4351711ddaef48cf3188cfdecc0283f4f5f73bffdb9cf362a3e7e050","impliedFormat":1},{"version":"ca483bc36f5d4562f841c69ef35ffd4aea406b4279ed20731f09585610e0a802","impliedFormat":1},{"version":"60481d85fed75823dda60351102d97dc8a9da90fa02e3d0a99b87a0bab04e435","impliedFormat":1},{"version":"ee3ed2930c509a2c67f2d5cf2674d4a6492bc76732b3fc68fa7130685e9c8b01","impliedFormat":1},{"version":"321df1633735c87d46c5eff22d8088cff4bc306d1d2ed4ad4dc7a86da66f58ec","impliedFormat":1},{"version":"0d88fdcd81ecbe69ca9653d9d539cdbdb9149c581a21b4baf57de562f8cbecc8","impliedFormat":1},{"version":"fd5dbcb25c0b40f7cef69a0978cb5d0dd024354e8563fbc99ad60ff022b40737","impliedFormat":1},{"version":"0d9e9751713270c684dfd3d0f60d4fb5903ae06ddf5bdfa0f2661b37093f8bee","impliedFormat":1},{"version":"1275c436f0b1b256189ce3a87019fee89f1c7c6194df24f25658ef92d2a75727","impliedFormat":1},{"version":"37fd9ef1c7c0650bf00c918fcee22d682ef3c6976edd858d63d74309afb37f3d","impliedFormat":1},{"version":"ac14166d41facb50f3ef111f7b9e66a5fbb2010724d8bacc3aef62d28c1c981b","impliedFormat":1},{"version":"1b542dc311c5c6c197920545b5d997095d4f81f41fedbab1658ab244db05410e","impliedFormat":1},{"version":"39bb8abea90bd4f0e0f196b26fce0fa7dad2e84d09ebd55cf26f66ed085d4c1e","impliedFormat":1},{"version":"15c3d2438362bc387bc7d7d4f8465d12b292d59d4ae45eb6a5f3a3714aca0533","impliedFormat":1},{"version":"98c26ed17796f720fd2ae16640a41139d13989848387eb78dc1dd4b3fd0c732c","impliedFormat":1},{"version":"1e875cc927e244f0c29c70bab63d90f20e71064565049b8ebffc90552f12776e","impliedFormat":1},{"version":"6129817d361cd2300a08ee34f5fa2b777a4fc90c3febb79c918ed1c40f7a25b1","impliedFormat":1},{"version":"d62158cb30f91935a8d0a410a869a70a6a0940cc2e98177616d74f037688bf92","impliedFormat":1},{"version":"427ffa97d275e77497fad3d24fa95fab369c2cf4709f27620a8673c22d0c151e","impliedFormat":1},{"version":"1a6b8d2e110bc4f4589963c97a3dc4a08b662e59738d59dca2565f7c3b35dd9b","impliedFormat":1},{"version":"451554fa5b756b144bedd2950aef7795728c37e619b141f18ba5efe721aa34fa","impliedFormat":1},{"version":"f63e5fffe7540b043e714c2d9cc1be520fb6fe5b9f8b709eac7523af40195186","impliedFormat":1},{"version":"0315812a5654097cc200625d27fa287f9447b750075cc2d33705198a14066e3e","impliedFormat":1},{"version":"8d0abb60d6f019de7726b136a8276990dbed686409953ad2cf6d79ee8b90d3b2","impliedFormat":1},{"version":"56badaca43104914e6e299612de820bc66a69e43ca7fafd1f340ed70c09cfdbb","impliedFormat":1},{"version":"203d186ddc779e35e7dfa7193735254529d252ef7f52e813f259e6ed479e9507","impliedFormat":1},{"version":"4386fccebced3e526ea7e601e54cfd712b1ad1ac40c21158d053d4bb1e55b951","impliedFormat":1},{"version":"cd965101939d557c184a81cf8e773e31146873382cf1547d035cb5e6cb57dff9","impliedFormat":1},{"version":"c037102606e032569c026474a95c31a63f7d752cfe6d5123e71c09b9fa636d56","impliedFormat":1},{"version":"77588f8d6566b6bac03479322cf55570e8f9eeb8f27ba8b5af2ab907b573fc45","impliedFormat":1},{"version":"522129a86f52ecd6236a4e59be4542a8b2c6a452ec6317e53c82b6ef5840ba89","impliedFormat":1},{"version":"4d1fef84811f86e8ba66ee6af1c97ec67a94d9b74e7e1e8f21a23e47f65b56af","impliedFormat":1},{"version":"3ae84bacbf3da888f2e9faeeec5b1adb9755acaed2a4cde11f2ed34b64201864","impliedFormat":1},{"version":"6df7a162ffc842b6695684de0ee5184aa970fb570a38e702d200df659808fa66","impliedFormat":1},{"version":"7557a2a4e6b0b6a6545d5d65284ebb38bb67d53bd2c0f5e99ad54dea57f67500","impliedFormat":1},{"version":"0d93012bbf9e0a40727e36369752819c387f0a32f30e863c727e9da25b773f6a","impliedFormat":1},{"version":"ed6f91479c0538f25686a80ac97d4b485a3f0f8b06937dcdbd85d458f183db4a","impliedFormat":1},{"version":"84e25d7608672366e55fe39acb592e228f6819686c208a7cb4dfe46ebdb1d6be","impliedFormat":1},{"version":"949ccaac85986e407f0fb6f02519070804470897d50f4c29fdea344f714acfe1","impliedFormat":1},{"version":"5e63b02f4474647dc7bc40d809695e3812af40a0a05b72f23729983d97d91c91","impliedFormat":1},{"version":"86e11b587490cd8365421eca18966a59d89cd4846d5a84a6a0572ee283513902","impliedFormat":1},{"version":"c3dc0d9cff2d4456c574888110720b7a9582282971b907865e323356786cfb42","impliedFormat":1},{"version":"952fcddfcc7b49df167140b9f81b7c62cc6ef29dcd4fa5f12dc0f4f13ae98240","impliedFormat":1},{"version":"e93d9a364b61d50b9ee14554b5f48ea46dd8c557b94bdd637b196afce4fb3e69","impliedFormat":1},{"version":"9d6b766c92985ca30cfc521ca650d1007c9986f8fb8b9dae720d9f55a0f3d351","impliedFormat":1},{"version":"7bf52da3f2b777152c701a9b4dc97008ab0a0f9db3311a2057fe041e021f5f35","impliedFormat":1},{"version":"42feeb1901957dfa282e8c1fe359fb42376abb894e609628dd9cb1edbcef7b5b","impliedFormat":1},{"version":"2e0840eadf33be01dc61f4f62887a8ebced1b8008610885b777265cd09b5a22c","impliedFormat":1},{"version":"f1bacabb70c87fe9d05595db6ec80afb0c16f0437e9b3c01c8e860e3de342a81","impliedFormat":1},{"version":"a82fcd992077e23a2b8f34a245a5785eae074a4c4cf00e295ffcc7e6fbf2b18e","impliedFormat":1},{"version":"7e847c37d924926f5540e2db0362e46e520334823cf889557d2c9a5c7fc7dde0","impliedFormat":1},{"version":"42738fe88686c67006137210788ff9013bcd961e494f015f3aef70ea663bd6e1","impliedFormat":1},{"version":"76703404ab0c7442e3e1920476f9540fd66c1367cde3e98bee8773d20e14d214","impliedFormat":1},{"version":"848670bf9aedb7ed67960ead4edb7a422a9add15e0f18ad3fbdfefbb47500d84","impliedFormat":1},{"version":"168150c074102ffe35603b43705a4dea7660cf01c88dd88740686b943a61acb0","impliedFormat":1},{"version":"900f3e87a9e7270634bbaadf57ec15dc3f02db69d25f9bb325c7c8f99303880e","impliedFormat":1},{"version":"aec5946f6fbf0fe023537cdf7f4f904ea76ffc8976d508d8409da52d0ba6e1fe","impliedFormat":1},{"version":"5b51d210d61b20c944cec24254d20110ef279b79c5e457c16d35395e979aa371","impliedFormat":1},{"version":"547bbc28cbca3e4e26af6b00ac131fad91fd0bef3ecd56e204ba1c66277a27f4","impliedFormat":1},{"version":"88730dd27c119094a269b3319036c4d60adacb10f819e9f0817ff1826709a42e","impliedFormat":1},{"version":"09efdecdb0a3f448be675d83b687d2f6e1d0f6bd756ec36fbf430b2c6840ee70","impliedFormat":1},{"version":"46a4c5544edc93b22ec2d704197c5cd684e6ac5ea491dd9b33ba531867e94e4a","impliedFormat":1},{"version":"a40299fb32c3e734190df64c5e577983616d988f9a0661d2d8092fd66db53634","impliedFormat":1},{"version":"5c568ac086f9156633b8fe8c85366e2d90de49914c81fecc8f0409605459a22e","impliedFormat":1},{"version":"072edfb9947a2eeaba872bea4a2b22a73ea932d51f8c9b19c71c7345a2a636dc","impliedFormat":1},{"version":"a88c164bbd33edea01c4934613ef625f946be8fb7e7df876c7518e8d8b258b11","impliedFormat":1},{"version":"11967bc391eb0ec437202643f3f8cbcdf5e97439cfb4af8ab5215f9be37abaac","impliedFormat":1},{"version":"cdd01be7d5d7cd2388607e6e89bad1dea3bd6d5024f67dd03bc9eabb8f8cc7b2","impliedFormat":1},{"version":"b0417940c1c63dca7f33dee7c7c0851b3443f0b5a12d385b562f1cb5c39720d1","impliedFormat":1},{"version":"cdcf2268514c3b52d909f39fea338b3d670b9b2145b66306e362e59ce921394f","impliedFormat":1},{"version":"0dc8fe7d045ef79a8d61e221b76dc5db793cfedeadaf8fa8bdbb4a717a6b978f","impliedFormat":1},{"version":"bc12f789eea7c7667dc8c1a6664600c696783cbfc854480db157d2b6b9ecdb59","impliedFormat":1},{"version":"75b4143645ee1d64a23f9d18a3ab534ff6682379dc2c239c947f0f83c0e45012","impliedFormat":1},{"version":"fd745003aebb0f7b47e684ba22a118e0d59cffffa86a097714933b4f613aa08f","impliedFormat":1},{"version":"0971815c5614f9c4d36d55a3d1d4a45f062e78cc9a3d97ef6a3b23c86b665475","impliedFormat":1},{"version":"76728d3561f3d4f3e8810fad1178ad402023d55e8a5c5da872303bc8e9c4d79a","impliedFormat":1},{"version":"4acb6230f22875f6defa3584d10c817831affb136ae94f5d2c0d9457b7050936","impliedFormat":1},{"version":"f4e5b51de3c73f0f093739ad5b4a1214d9d8ad3b3d6d01522f1ad6831d60f80b","impliedFormat":1},{"version":"4ade309af02a50dc157394ee7162c88476980b5efb0aa7304d6c618a0112a89e","impliedFormat":1},{"version":"2d3516a828f8ef63b2f2eb3ae1f0570265744df44d6eb9fbe8352bd5ab7f2a62","impliedFormat":1},{"version":"f78edac82d00a3d169adcf1fc70c705be387dd2c18be7d6a7c1e54ef084cd641","impliedFormat":1},{"version":"1f11139bcbbebe3283f0a33b647aafbf272afe86163d9554fad80f6c040b64bc","impliedFormat":1},{"version":"ee0fc780ee45cff7ee13c49ed43d4875c0155da4cd17735113611db6a1665b1b","impliedFormat":1},{"version":"b9e1050114f422013d0f534b4475cdab7126b7217af20f15bdf83cc734d1ead7","impliedFormat":1},{"version":"e231c9fb03ca8893b43f055c5d651d55e189b48ad9351bd2729720671790cd83","impliedFormat":1},{"version":"a97a804c84d0cb7b1c015bc06a005613e1ab5ce58c27528dc9f00fa6a8655f28","impliedFormat":1},{"version":"090eb938f60728f4bbb7f94f6ef48ce4481bf9205aee390c4223ea9acef7a780","impliedFormat":1},{"version":"2348b5c42c8dc9255e5ed9029c102c3f37d25f8289d84b4c711d6fcd3548a05a","impliedFormat":1},{"version":"3bf3b2e2a29b895dfb42b380f61bb60419ce9f733eb26f61809b589de790fe49","impliedFormat":1},{"version":"c8d3fc06cc42c173a363bbad4e392a325867812b47387d1dc2940ab555bfdadc","impliedFormat":1},{"version":"f8890f41d665b98dbc2cfce66719aa64c358af705b183a7f682a5229520e0fde","impliedFormat":1},{"version":"9cd88c0017d85f46e694a13c201bd75d7c404c5b07615b2de57739d645988618","impliedFormat":1},{"version":"f8dc4c538eff6d92330223253dbd66c4354324f411b39de2b7fa520fe41b658f","impliedFormat":1},{"version":"2407b5c4ed19bf2edb4a7459c672627003236d0912947e2a0b03a7fe353c85d9","impliedFormat":1},{"version":"506e91ebd08f2cc0b49a69568329a51bedb0d9bfe2a9417ed1a9b3481841ddac","impliedFormat":1},{"version":"f63da73a8d858871cc7aafaf3146347de5a3504ab99667324172edf79622ad45","impliedFormat":1},{"version":"b877adbe66d8db5350fd60ba62ffb7f9f1e185709f41cc6c79e26314656e7966","impliedFormat":1},{"version":"ff3d1594665d0ea1e8e3367ca1be065cb29e56b544a98ae990150806381e26e0","impliedFormat":1},{"version":"24dcc6ab1b47dbef6db80f0d0406029fe49a5803e6b3a6a2733ca097164839cc","impliedFormat":1},{"version":"76ee5e01370001a08093cb98e98beba007176e5c8c0af5b3b17ad1b8470d3c87","impliedFormat":1},{"version":"1f8822081ce52fdcf13d2ab47d840ff28216abc2ecdd8b3892b3d8dcb66ddf4c","impliedFormat":1},{"version":"e266998f32d1e7bb4127d9e87d48c84d6aa5200df46e1266065f54d969cfa699","impliedFormat":1},{"version":"742ec7d93e66311678aa6f558561245b2e12399fe6a98d849944f161ec6a857a","impliedFormat":1},{"version":"c953ca81f374296b0e0ad9307f854aec1cbd22240bd7676e852c31bbf84d33ab","impliedFormat":1},{"version":"d2380b72ed2f0e19af8291a6e1ac6aa7a60e6ad455d838705ee3b4bf667840b9","impliedFormat":1},{"version":"25d84120721134c846a8733a46e05903f3b109937dd819e5ec41ac8af893899b","impliedFormat":1},{"version":"09870b1892653e3854208cc345b6a7f055a875a06fafbff9a1888abc2ba1a404","impliedFormat":1},{"version":"437c2c7fb5da8738335aa9a739ff4e797039504fa6c5cd10664dcd1f30577095","impliedFormat":1},{"version":"a9d20cf42a783baf00f171b23f89bbc28e5101c2eba461f54708e16ee20a3d4d","impliedFormat":1},{"version":"e54407eec308c19f8e3992c66bcfc893f4b1f5aa478f05a55de3e348ee015c69","impliedFormat":1},{"version":"815a703ea91f25df5ea36696478f59b242f625f45fad37c6873c28c1591dc031","impliedFormat":1},{"version":"07af686616d30fe4caecd19ba83f2b5830e3633f5994e027de90daed22e07319","impliedFormat":1},{"version":"d476ad2c31b6a37660a3b0d90cdafa6cc70e6da342f70f92c8b8994da9606153","impliedFormat":1},{"version":"c601ed82e8c11c2d98fc04da79201eeeb8c6f95927e348d5497bc0c2ad85c6b5","impliedFormat":1},{"version":"7803117fcb92af605e9d0bf5aab04f8fd5959381e0b826ebb05365ece4868ae1","impliedFormat":1},{"version":"025a8cef62e0fdfa4c32995a93e3ddd4f9d6e726477e753781e99179662b6c58","impliedFormat":1},{"version":"dac9e0310cac6c0d3815208ed585b6ebb2a19ed44536d04ca5a2cb81188906d5","impliedFormat":1},{"version":"329dbb853695003974005f642063d2ab083d8c06f7d8f3bb2cbb15f68c892487","impliedFormat":1},{"version":"c1cbd9cd690158fefa1c7b8b285c1862d4064cc61eac7226d937e62ed01db785","impliedFormat":1},{"version":"1804788ef733867ea378a6e571eb60d92ea9ba87ce23f9aed8a6cc5a174f5471","impliedFormat":1},{"version":"d5c6618af14518cfeba225d4dc6180271a423e24bee7ab64eaef5c70bfe63992","impliedFormat":1},{"version":"2abd00c6b8e284cb92d2caf3f93f3170729d68cf4a51fb53ff92078b1455bfb9","impliedFormat":1},{"version":"c388233f176333d0ba84350a79cf88f1724bddd685b2eb9fd9d62533f39850a7","impliedFormat":1},{"version":"85388e4257101bfe0f0e5ffbba40fadea704e576d64f2e83ac1e8f042ec521ba","impliedFormat":1},{"version":"7ffec597c82ed1cfb06d7ffdc36d71d77a564bd55eee6a2cf9c72384736e3726","impliedFormat":1},{"version":"6d72cd0e28e6b157b2b21131891ba29ef596f9d3d0463316955a1ffc4a5c89dc","impliedFormat":1},{"version":"72037f13e369d619e0842119af97d6f6905fc470124ba627c44773aaacae9ba7","impliedFormat":1},{"version":"bf8c812958db10404d946309002674de28f9e300416d7b39a773c98bc51c7475","impliedFormat":1},{"version":"94f3baf5e3e2bacc4d21f9308045913aefa2ef87b44153422057d074d5f7084a","impliedFormat":1},{"version":"293d1aa6c28408e0bde5e4d0b55b9be782e00e2f702d4044530220314e382685","impliedFormat":1},{"version":"e79c77ecfd439075c20dcf9785bb7255706dee26ff6431673932309a2ae624a0","impliedFormat":1},{"version":"f18ba2828d2c1bfaedbcb734d561604784d65fda9d290fb93bdf71015549b920","impliedFormat":1},{"version":"eadc908b2f4e6e8edeaf0970ec92a47129c289d5b4e19bdbafd6d6f70bdc907c","impliedFormat":1},{"version":"407a11241e9056524e24ffb7899d73e819f8d44010db091d473acb4348a82cb7","impliedFormat":1},{"version":"60f9fe665ff16131a8f07a38d2b4277e96a7b11049deaa1c2ff85b8b2cb08abd","impliedFormat":1},{"version":"121ca5c164ad18f6fccd49dc61333dd06ee8e4984c4b127c59744c2d6ac953fa","impliedFormat":1},{"version":"da883f2b97696813d06993a22351cf2f402fcaa29dc446f62fd09b05bf12fef5","impliedFormat":1},{"version":"48964bec72afdd3809f8bc1d5df95f3270e29e03c8d315685db3636535e6d3d8","impliedFormat":1},{"version":"6e13dd30ba8a2a783d41ff51896cbf8a310ebad22d06b9206ebc8ea814d1c440","impliedFormat":1},{"version":"1174c675811ff10caaab514bfd3a7720bdc8cfba524a0eba62d8c1c9563adf80","impliedFormat":1},{"version":"2066017f176fb877854da8afa1585591c67963597af3bfb828974547894e850b","impliedFormat":1},{"version":"0fb7ade7ade491a02022472999f472f84f304f4738a19f2efccea1551a13101b","impliedFormat":1},{"version":"b38bfb03cc99b72e403ce60382cb45bc9467641181a1dc775ee4238dea847b5b","impliedFormat":1},{"version":"f0c93c00af504f52e837bdae5c8d0dd16eb0358372a90bc03fcd2096f22e1e93","impliedFormat":1},{"version":"89e015b6421345ff59eaeabd2ddfdf4d4efc53fadddd0dfa6fb08791d4bc5396","impliedFormat":1},{"version":"275c59e7cc724033d8d962a68b604a827ca1d93ca63da907622ba4cdfdd138d0","impliedFormat":1},{"version":"6529e78e442adf060c2bbc460d4c585d8fff553eb06a09b6b9d4defba6a3e4bc","impliedFormat":1},{"version":"64ccb0668db4982770ccd3eae9982e9236d997f7848549968a59c06cfb2a8c85","impliedFormat":1},{"version":"15f4992579aef55c498805517266560cae989c94570067eb6f0bb1fda8db3e1a","impliedFormat":1},{"version":"1a5cb4225b0e5e65222f89d3ac4f11e1341c84362c34f64573e59aafdec65232","impliedFormat":1},{"version":"85280c9fd80e289ca3fb7cc176e7c56bd1b59cc87153e35b4ad67343a16963e7","impliedFormat":1},{"version":"69ec7481d640752a71598ad9e0cc9c28fcaaf3128a8e56e9f22d09aa75e48aba","impliedFormat":1},{"version":"f1c203586ed60b44b1b54f2d3d6d5489a32a3d08cd9b8430c804edb09374e29d","impliedFormat":1},{"version":"396b9cfbf84f6d62c56eb78313118d33b2b4b112c65452856049b234e91ea782","impliedFormat":1},{"version":"beeb53644fb37efb6c8fc859d7df72d7bf9df52b027169ce087f8ddb8fe43c5e","impliedFormat":1},{"version":"0b10af13b23b16a86decbf9dced96c5412e742f1e1cbbc7e38521f3272699a18","impliedFormat":1},{"version":"5d8912088adc90f54b80df0454cd6b67c1a4a5c08b45e42f6306414f92179e58","impliedFormat":1},{"version":"2bf6f81bff3aec45692cf7df2ec4f6bb955c15db4d7a0b16f5fc0aca638642f0","impliedFormat":1},{"version":"5e1ac93dd33dabf032ae7d26e7d376e25dcff407b285ebed3f08bb440b5a21ca","impliedFormat":1},{"version":"9cfa1b7b61b310b77c8291afc7567f0269982273f5c1c056ea2a6594cc966d74","impliedFormat":1},"34a34be82c301bd36b11967f64793e25c452f683f66eb63a2c9b9382291013cb","212f48de57c8459697680ebcd00c6f6e3b4938a5868e0ee67d16120c06005fab","7a25c2a8996260ae0959bc33b7311de3a098a4e4c250b213ec425d1d038b6280","67faf30978b58f810624c8e9b2fa1e5758fe9b5b400f2419f166721b16e3282c","4d5e09bf879145dadc2707ff2c877c702cad5de8ea5b6e0eb4ec29d4fe9bd3f4","f489209d1449424ca707ef2852f4c732cf3e568c5aeab21cc37c67f4c401ef1f","34c2a35ec8db5ff54fa86d806b8540cd330792a1a977942ae2c203df2411ee44","e878d835f888a25df33826880ab51b23dc0f3a145ff522dcb6df86c19749b479","cea4f6104c14a2de217034c55d5e0c5d108800b8776791277bec0f3a491d6c7d","5d59f5b83155be3893bb5b8f6bd3df7a85157dc2184b21442b5c104603149ea1","aac543d234cd796c6a6ae3a76cd9961480d5b22cd00dc1a64c4a56025310c212","437755bf7362625845340e775422362c249132b5ce85bad8e0863de1442c1ea6","a2325ec154d19da8a7231b9bc4c615650417258d2f887edc0c91f9d9dbc255bb","b8e0a9ce934b5cbdaf505c3028677700753443e9766ff07734db197abf42200b","cee3a191eb553499713a69f5f4728d3b1e917ec9423ad976b4bb576dca530245","29771068febe7e8f360713fbb4f2d0142b7220f099a328759f3f5339dddc460b","100ebc14d3b3f2d9437681da4e37ce15eecf8d0bc50c562f61d43cbedfe9dd89","89e8081e7bb10a1985583264b6772b401c888f0da9efb63deb3dc671bc730900","83b2471c82779e1444b63942a2469bf40a155ed4e646dfc9e1583772ef1cf554","7121f8a3d7143ca81e758e5f4924bb60730a03268151ddc0688f144b03d427d2","df1170274f174c97b713e922dc2b14bd41978f0b128108c4f1d8b52c5ad750f9",{"version":"73a0ee6395819b063df4b148211985f2e1442945c1a057204cf4cf6281760dc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"d05d8c67116dceafc62e691c47ac89f8f10cf7313cd1b2fb4fe801c2bf1bb1a7","impliedFormat":1},{"version":"3c5bb5207df7095882400323d692957e90ec17323ccff5fd5f29a1ecf3b165d0","impliedFormat":1},"242d2da324880332769e3302925f3db9ae112f1fbee32b877f48ee86ad030891","fb402f271e513395909e4074fc569d1b15d1e06f343af3ee9571ffc25a3f047b","cf6141331e337e09f4fd6cd8297af4a54e606a9f9f26945a09302b335b03c2e1","0b5086f10b4c808eb6d57ffc8e682c7093b3b5172854fe2ca7497b48ad85b769","679a0f3e894d5d408147a6bf9e2112d47312b7d303d0dd27b403c62dc24ccac3","22544b339213bdd7af6899eee2730a28850900acec2117e7d237149d9cf45a6c","384d53819d8764fcf034acb61dd5e0b882a508a4be079e78a25622ef25c62f97","cca8499d96e4f5780d93adc94af96c4b5ae79e427ba0a9116a10a8ea00273562","56cec9bef9b96ee62a7999a618a728d633cfade7c59ca0d56ff2704b69ec7c81","a28136f26720706488db65c5c52f3645079dd581645d3ca810ea3072b6e6b6ab","99b36a6ea4e3ca84501d637d622a29a910ce014d8297be057c560557e128ba8c","c7fb0a48fcb8cb3a72d6cb6837ff92565cc42317729ec6aa0018990492e5b004","9ddc3dab94e0287994822df05f09bd9cf417563fe24b290decad01c0d2eb80ca",{"version":"52f5c39e78a90c1d8ed7db18f39d890b2e8464a3f44d4233617893f6648e317d","impliedFormat":1},{"version":"9891b4e49d435c7ac14fb3cc769e97077bbd946100c952df08eda117c3b5b68d","impliedFormat":99},{"version":"2d45f7ff55036e74513af142af1f414924ad337cc00e612bb37bb55473c70b30","impliedFormat":99},{"version":"3a6b10911970b0588c5a287642e4c6be91c16b96407a499c6dc81a96daf1085a","impliedFormat":99},{"version":"6392353adcff7db02a3f5dcacb5637b791dbbcb76125aac3075da2519af9785a","impliedFormat":99},{"version":"1f3952b74b8c766a2e602a0ba2db19d3d872d00bab4e01746c6b7229c585086c","impliedFormat":99},{"version":"19726a169a4000cba269c284b97043faa0593de45865c43553c233f6825af0fb","impliedFormat":1},"92f966f8184f9cc5f531fdaae3caeabde238a82d783e50713eb015d70e187914","9f44604e67cab8b4618fb0743d41ba9aceb886285f0fadf7fd6c6ef2f3ab913a","19e1a22fe32da3d48906bc7b8c517ada6b58ee44a030331d469155a8af66b348","23154637425b907a992c377203f4c618eee4d12421ac52cec263a83b8173572b",{"version":"e6d3677b68ec40e2898974e8cf7eb3599c35012d2cf5236289d762ac64909aa3","impliedFormat":99},{"version":"f136e76a35d7b96a3f826ba6250b2dcf984aab4583006014e9e091d36fca490f","signature":"d2022ef4d860a53606f63435b93c0a7547990e8d8b88862bd2eee8ee9a4ace0c"},"aa0e467a4a77ca517ff1ae8282f91f4ddb28c3acd441f93eedf1aabd07b68b41",{"version":"adf20cc38eff5b498d071cb684fef03bd46a419c65cd33ce39a2308e33cd84ca","impliedFormat":1},"31a5ddda427bd1fbb2c7fe1ca559db8bc393d7f42592452f29f4928603d6bd92","6020c483cbe9b111c42dc146f31f3c269fa44f9666a7bb289f33d4e1d415a5f4","c9d1b88aa2c8cb759d8592fa78e56015a156cc8fcef9acf694d49c646076eda0","a58068f7fc51a4d70f59eaa8d9f6b79440f71287c3988707f6d82e8493cd8c47","baf0f41a91dece70a701d19fd82b1b54c48a22eb94807f9bb0718f0252764aff","579b34fdf9e3f0a6229729e86cefa990d4c9653025a9260ba0b029d04e28696f","79acf870259d9ea9915fd272eb3ca5709361e8a86f80551588c1c97da9dd33b3","a4e143cf77873e6c0ae83b4015a892684338bacaf91ec384803fea0de1c8917b","a98f4bbc7a5f4f4f7df0f1f7cba27eedc34d3852bc4c8d6eaead40a106341848","9c3d1ca00d7911dcd4ad62ca95be97bc253099773a23f452d2f215d235c2a18f","08c8705cd2aba74079347b327a048c0f427024789f41cd6bf732a636f95d11e1","f4a266cbe60a450d84f26445962f7a62e52e73e2c82bfd2e642ebd07cc97f426","f1c8cbd870edf8abf542d3a9eaaf15540a37e9248e4ff06eb0643986e0f4d82c","de454fe663b6815d06e3512a1ca1af2a1f28a2534aa8a997b0ed2b5217dbe836","6fd221dedf75176a02b338de6a8bb4ec34ef023d84d5d95a534ae6d68b4c70d7","6ee40b6eaba79cbc7afee85496d30aa48b50d23681582fdc1839642e8187e6ea","edb9845bc23f34e9718510206fed90eb7e010633a08e91bf92323d5c938435ee","15cc4fe15f39c26f9d5d3294e113e29837ace90ad116d94b5bf771d7a0a8dd8b","85e3edf11c7f4cd1fe2b2b86df607c87f437aafd43eced2141199736b7879dc0",{"version":"c9c42d5948aa033c444cb6a3c188bcd925997bcc2bd8e97928af480ee356417f","impliedFormat":1},{"version":"f4bb2d3708ccd853dac13f97ede135d721bf5c2586f73ab8f1170f439e44b5b4","impliedFormat":1},{"version":"fd5649816766f52b1f86aa290fd07802d26cbb3b66df8ed788a0381494ebd5ed","impliedFormat":1},{"version":"269a13226bf6847c953f01ada5aefe59a3963a3a74f98c866ccbf08679d16b86","impliedFormat":1},{"version":"b769494ac41040c4c26eb6b268d519db4cc8853523d9d6863bee472a08f77f80","impliedFormat":1},{"version":"2fe42f88e2d318ede2a2f84283e36fdb9bd1448cd36b4a66f4ead846c48c1a33","impliedFormat":1},{"version":"cb403dfd16fdbdfd38aa13527bcbb7d15445374bc1c947cfcc3a9e6b514418ab","impliedFormat":1},{"version":"60810cf2adc328fa95c85a0ce2fd10842b8985c97a2832802656166950f8d164","impliedFormat":1},{"version":"de54c75cad3c584e18a8392a9a7e0668b735cd6b81a3f8433e18b5507fd68049","impliedFormat":1},{"version":"c477e5c4e8a805010af88a67996440ba61f826b1ced55e05423ad1b026338582","impliedFormat":1},{"version":"6b419ab45dc8cb943a1da4259a65f203b4bd1d4b67ac4522e43b40d2e424bdd6","impliedFormat":1},{"version":"a364ff73bf9b7b301c73730130aed0b3ca51454a4690922fc4ce0975b6e20a33","impliedFormat":1},{"version":"ef113fa4d5404c269863879ff8c9790aa238e577477d53c781cdae1e4552a0cf","impliedFormat":1},{"version":"5bfa561404d8a4b72b3ab8f2a9e218ab3ebb92a552811c88c878465751b72005","impliedFormat":1},{"version":"45a384db52cf8656860fc79ca496377b60ae93c0966ea65c7b1021d1d196d552","impliedFormat":1},{"version":"b2db0d237108fa98b859197d9fb1e9204915971239edbf63ed418b210e318fb8","impliedFormat":1},{"version":"93470daf956b2faa5f470b910d18b0876cfa3d1f5d7184e9aeafd8de86a30229","impliedFormat":1},{"version":"d472c153510dc0fd95624ad22711d264097ff0518059764981736f7aa94d0fa6","impliedFormat":1},{"version":"01fdef99a0d07e88a5f79d67e0142fc399302a8d679997aac07a901d4cf0fc83","impliedFormat":1},{"version":"ffcbdda683402303fa8845faf9a8fbb068723e08862b9689fc5a37c70ef989b8","impliedFormat":1},{"version":"208c5d0173b66b96c87c659d2decb774be70fb7a5d5af599a5d05f842b2e8d74","impliedFormat":1},{"version":"ec3b09b073a5e8a14fd5932cc4c33efaa0280c967d15bbc4c0c5b73a0d2f1a68","impliedFormat":1},{"version":"4b4c884e11985025294a651092f55dcbf588646d704e339674dfe51bdeead853","impliedFormat":1},{"version":"78c8b34f69c45078c6a3a3f10a24f1a03ea98495b6d75b945c1a3408a3ce5a26","impliedFormat":1},{"version":"0b1a08da571520eb288eb75843aad95d07fed423aba18b1149b5a0c767baf688","impliedFormat":1},{"version":"9c4708e703c8deb525e95946b3fdd8d5caaf724b3ac4a1cd6c2cab759b53f76f","impliedFormat":1},{"version":"ed14fb238769ed0b0dff6b78bef5263f0f50f403878ecd609fc71774b2113b12","impliedFormat":1},{"version":"59405847661d05bec9243efe9498211cb7e66d2620fe946e40750ffcb9e7d56a","impliedFormat":1},{"version":"ef95961bc90e8972bc9d88bee5264544d916929c0240e8c3c8ae220568b26ead","impliedFormat":1},{"version":"3f64230713c989e5f2d1d46c13fc8b2d9193b5dd59d393d5e70098c221894b1e","impliedFormat":1},{"version":"e49eeb0f93ea6a311a22f5b66a155c368e9cdb3585695fd951945df1a4192eb7","impliedFormat":1},{"version":"6f704837b406e4ac6ec5942018691ecc10e2d079cd64706d8ed1e86826d0671e","impliedFormat":1},{"version":"ee2229f4fc2d2306c864e5c2399aaa5958e4b3e1c964701fb8a84709237c9f47","impliedFormat":1},{"version":"6e5563614d424223f4748c6b714e1e197c8422824ff42fdc16f64484e1a863a6","impliedFormat":1},{"version":"8f31673ebf988cfc4b7ce2adb6a6c489dd748025600d8e2b7d922f952d7d21af","impliedFormat":1},{"version":"fd3715f87964b5fc26f4c333422969da8ca45e69e3fb6973ba6c806f437eb012","impliedFormat":1},{"version":"97b1e695f57dd56a6495f7bdca876981cc8db1cc4a555c3964aa14ce26e0f4de","impliedFormat":1},{"version":"cf32c06d23f373f81db3e93d47b7006f5bfc005df4d92bf5407b7792adcb3c47","impliedFormat":1},{"version":"eacc624e44f4b61dae0502e59ca5c0307dee65e7c257ee3eab4b2c8c6f156cd9","impliedFormat":1},{"version":"6041c1c22cb701abf3d98f153f878b12280f3b2213144588209b66ad5f5915dd","impliedFormat":1},{"version":"d95c6fb6552ca855ed11cdcaa5c68ad484bdc6325fd86fbadccdebfe57ed841b","impliedFormat":1},{"version":"0063b3ff097c4542be10322c67ca804e9e4504545b46ae8d620ceab59349ee84","impliedFormat":1},{"version":"9ff44b788f5d8d86f6fa34abf3faec8c425ecf1838248318acb0c5a4c88e62e7","impliedFormat":1},{"version":"4169cb216a6b361ba3caadf4a13670354e2a68ce055f4ec77ae7688902d2ab2d","impliedFormat":1},{"version":"e642a86d8e0956bb7c76aec21b83bde20409b19eb22786ed72ac5515aa9268c8","impliedFormat":1},{"version":"879e2a34d0139f04a32974fdfa44c5720619afd28f8bde0e5860f371d5f65d34","impliedFormat":1},{"version":"8e04860bdf072d4270b09b33b2b91ec4545297f23cc580041cad3e738f58d92c","impliedFormat":1},{"version":"bff595611ce25571f0cb50a83b7dcd7599559d6d3e98bf4fe87ad77b9c347664","impliedFormat":1},{"version":"2eced6af832d4e69811e353c7751f73bba07dc3b63189e0fa963e8264f341c12","impliedFormat":1},{"version":"a884b3560c8a29e5cb7f1263d880ff5c8b017991009edc20f450027c4a112b3f","impliedFormat":1},{"version":"6775c3e28d13ee126ec2c2e0827ec76422b0e11d9d5c2cfdfa7b982d48455fff","impliedFormat":1},{"version":"2ab0ffd4cdaff94c5cb8701f34442f8a018a2b62623528a66ad1ad8172ac6626","impliedFormat":1},{"version":"ea8215cf7cab1015579eac88e2f16fa1fabbe9f84ce4d2848c10f36d7df8ca1d","impliedFormat":1},{"version":"cc894fd562a73055ff72dcb7821729cef909b85bca4d0e2e2cbd0c1a2ecadeba","impliedFormat":1},{"version":"ab058bf3dbdbde6571f97a57a3b52b14be9d7e19f23190e9a551d5d6f6b6563f","impliedFormat":1},{"version":"142892cddebce23312318d79014de94e64a1085b8b0d73b942b4a6ce40a1b18d","impliedFormat":1},{"version":"db84257986e870ab22b304a80b02ea5e079c13a7f7be7891c0950bfd9e33f915","impliedFormat":1},{"version":"24cb43d567d33ac17daaad4e86cd52aba2bb8ff2196d8e1e7f0802faeeb39e95","impliedFormat":1},{"version":"dc6e0137694a7048ceba1ce02e6a57ab77573c38b1d41b36ae8e2e092b04ced2","impliedFormat":1},{"version":"aca624f59f59e63a55f8a5743f02fffc81dd270916e65fcd0edb3d4839641fbe","impliedFormat":1},{"version":"ce47b859c7ada1fbb72b66078a0cade8a234c7ae2ee966f39a21aada85b69dc0","impliedFormat":1},{"version":"389afe4c6734c505044a3a35477b118de0c54a1ae945ad454a065dc9446130a4","impliedFormat":1},{"version":"a44e6996f02661be9aa5c08bce6c2117b675211e92b6e552293e0682325f303e","impliedFormat":1},{"version":"b674f6631098d532a779f21fa6e9bdfca23718614f51d212089c355f27eea479","impliedFormat":1},{"version":"9dbc2b9b24df7b3a609c746eaada8bbc8a49a228d8801e076628d5a067ff3cc3","impliedFormat":1},{"version":"d6ea60339acf1584f623c91f5214be0ac654c0692c0c3abd69a601fe0ff0e165","impliedFormat":1},{"version":"d08badb0bbee55e449ea9ea7e7978cc94859804c49bdc7dc73e25d348337c0da","impliedFormat":1},{"version":"b116a03deacf70767f572c96a833e3c1adf01fff5c47f6c23e7bcb60c71359ba","impliedFormat":1},{"version":"023aedd02204fce1597fd16d7c0f1d7be13fcf4bc1ed28fb30a39587715ea000","impliedFormat":1},{"version":"b18adf3f8103e0711fbe633893cfbce2897f745554058cffa9273348366304d2","impliedFormat":1},{"version":"f41fbddb4a2c67dbf13863507b50f416c2645e7440895ea698605541d5038754","impliedFormat":1},{"version":"636a0fc7a5ee207de956241b8cc821305c8cc72b9f0bec69b9c9de15a9eafcfe","impliedFormat":1},{"version":"c326f85f762b14708a25b9f5c84691562f5cf39ae9148c00f990b8b4a2a4461a","impliedFormat":1},{"version":"caef5b191982cd88619282b10e1c52c3cde8c81d4eaf4650b4e62d73f77483d4","impliedFormat":1},"e038e10f5702f8e244cf0536b5a100c3f2b149f7631d5c9d0a7f928e26574a12","4e8edf729e0c2a04169b79534daf9b66f9976173a12c8f5339c80b9bc23367ff","d2a8f67c03a19b1a2756a9203f0f4b37cac1cb53800cd6c8153780f2ffcb837c",{"version":"9ff194a196707954313c197ff74831edf396ee89f6b6e50cd5fe9e07b8d7d46b","impliedFormat":1},"6bc6ff00765d1ae58ccf41ffe70ff858568151b80cb5d45937dd234725bddcb9","7e02783dd585896e4d934743044105b4bf7d98fe9ea128b3b2be8e7862cadb7e",{"version":"3312f7d9eb01483f9e392733e461f06755fdc624b5f2318e01f686a6a036ed7b","impliedFormat":1},{"version":"34491a67ae33c8bdacec1f4c07008f01d2ebe588ed8b7b1bd8f940f5fe953f2a","impliedFormat":1},{"version":"cc0e6f2705c8fd9eb831790840c08be6a3d3108d7c7043c4a1c0a97e3e9e289e","impliedFormat":1},{"version":"273928f388427cb6d6859c6b29d760de7612a110f8a50afe092d3a6440ed0cd3","impliedFormat":1},{"version":"54db43f6a831781a4587d81802277a9686bf34680c586fc0496e32088f2d8942","impliedFormat":1},{"version":"0f53259dab3f0531bfefb89211d4be171821c855980a843b396e9dcf06ab23a3","impliedFormat":1},{"version":"b1b1faeb576467d84ffaab5942f6bd5a024bb715dae28aaeeb22b37cc0f17030","impliedFormat":1},{"version":"a7380d88b8153951784d10b663b949986aa02c238d7aba129d378bc8f0bd2900","impliedFormat":1},{"version":"2110f6c3b26b0d0af8f4d0d7bf8fe89cafbe2a200cc2187db2e446c57628b67f","impliedFormat":1},{"version":"b2d0ca3686d89f74053a1d0d90e8088b9d48869c9814db2cce4554585c83094a","impliedFormat":1},{"version":"6491db94d895853640fd0c6814aa5decc2458a6085193abbd7a83a0a65736a30","impliedFormat":1},{"version":"ce8cd3fcda8947836cb52af1f9a5958fb9cea1ed5eb53466227a82c079ba5622","impliedFormat":1},{"version":"5a081b7e2596e450b5bbcd5c5556806b85bf2c0bdb6b7fbcd640dfa6339a0bb3","impliedFormat":1},{"version":"36022f5544b27ac66385e56350834423923403574cbe6efe1c982649f9452c54","impliedFormat":1},"bba6cfc527c19857aa23b84e8a2046f44b996307563a7ecc22a92fbf20010a14","62c0acd226346f4a785c9193c6c45545ec3fff1979ee8df3f588846f6d19c861","80053711b514e246668987e2ecf81e0d07cac02d4df0fca9349d93a8524c6eaa","e0eb841ca5a2734b2dca0fd51b36db487be2bcb099a86026c7618eb198b4428b","56795690506e9f971e99867981d6d70728826072ac326b5b42a84b32e83b7be3","b0cb22b5146d40d089e9237e00d20889285581a146d11b1673ff0477801f4250","22725615aa6f29bc460cf104925d37da934ce0a070a75ec2f27bfb904e44a42b","63847c8863d58d05b6de39372b3286da63c1848d142966fa4fae49a494b273bd","c8f48ba45f7cc5d21200a73e2299637e9a132be97fe32b5420b41c9083da8f26","5765ff58850bc8f51c7480818910df84df56d86c80a036e347d0d9a169a0be97","069f758baf9f6d57335d108a40043d61cfeb8258a68b1a9d9b9bc5923f26a95c","4dfe1b2c2c969247671df680b24a9c967a241ba8efb8f560d38efbaa68b69dcb","297ba6d7e4e8c638f366363cb8d85141fdb1c2daaa6b06ba257eac005ac978fb","a55b60d594c2c7ca9c2ec78557f60cf80afe36571bd0f17be3b75f22755a6457","403d308ff3ea1212bb55bbc619d813d03fc9515198e13e04dd224607eba4a75c","b8b7ed302e941989201e22112bb8b2c8edeeb9d3fe677f3ec3b155ad1bf067dc","de3f5544642634ae186a297e5f0f64c1ec8455fd0a9e6419c6a0215e2525e534","ea79deb2c6f4040dc55bd04e4a37ea36858d7e59ae354ebc0eccaa2698fcfeb5","91883e5a7e00b0bc6e87ac5989af4c21de2377268e6bc15379ec1eaae601db50","904206fa7cad3d3da7d04805aa61f9ad2438c6812bd7cfe494711195bb042f1f","29a5c6db1d280d9d1608f0445d11b9894d8b689a5464db6e6b9107ae12ef0a67","2985b5a8371b42b78a230fb9712cc3c53692cfb8490b75bd27e41f9f3ed3bdb8","a48607078976e0d9aa652912f678f0dc38782b0735d1e2e15f78addecd97a932","5134195fec4d019251817043345bf7280c10145fe777078f0b7b10d29af0833b","02465a9c5305147d02b7b8055622109c4a4aa06a7c2cbbe36c8d94d5113f492b","e9c20c57dd7f0282aead93fe090788a197d28817d47cc0ef9f5159b74abad69d","8cbbefd9b10ebcb631fa5abbc471f7d14818664162210fa19d7125bcd451098f","132679bcb51ed20109bded99dfdc0a065b4c9037c2cacc4dfb4dea623830c17e","4d5c9922ad0be23e51e85f9d8f8b7e5d9a1962e98d7eebacfdbb9d8b8a1cd32f","bfd4b5cd77a389957c8aefef945b2dd6bae4cb79cf094c63cc5b6198e5213b05","9bbdca4053c688b71dd5a2cd64c6c3ded916be13360c723c8c6cee23d1978a13","e23fbb983beeaefb3a412da7b4fb0a44e2c35cb4b7afb09aa465f73f1daa974d","64f29be229c7719a5883a31911beda7970aff4336d375ad1feb4304278d3b828","6a8f4a5aa81b64b18130401a3266c15e74b46d8d06d20a19c4105c51672d3362","2cb2f33d92c9ba1402d1dea4a99e1c68ae5ab11c33e1d5c8743a1e49813d63d2","035d3e4f3d656d5427955191ffcb1ce1f8ee9443aba2fccefc0d8ce34328cba1","97b2b5bc1e1474b8d180a47999ae6fdfbff2366235b4f068917f514103ec8ade","2bf0208ac551b03a24141ab9dedf0fdd508290105fe5e7d1a6fa0ac4de014a1b","97584f8cc5c4e9d6bf87c6be28c4326750b7befce0702416ef2e58e269838fde","b57cc712fd0da58bfeffdee5b34a1732536c0a5fdfb588d7ff5e3105049c21af","8e7c8d0c43e90710a47330829989dd888115e708ecf2e93e131af642ff4d894d","f16582e71182d6e9a11d07efd60222ab148716432d333b229c66f9d26bec92a0","e70cb4b742890d3f9c1ae7965918f04cec997b7f339676b9a36bdc4c6a44c707","58eda13626bd8ccfd3069303532127ab52ddeb9f4bbfd6d5f133b83dfb188a0c","987ebc0d0cd29b95188a2b6cf4a1b69b4e780029f64f1de793f519e6f9f4b6ea","2f1f5761db10d675f86c4cdf82014c18a6feba42ffda5233014d031fa65d3270","ffa264a84c0af2ccb222dbfe84f0034c7c5182674d807c0a2c44741c85018959",{"version":"55a914fba7f17f73eb971e012bcb90221d5dca20751852c217428a5511db57a4","impliedFormat":99},{"version":"d9b54195cd22859480b70a2e287c41e654c812b0d3945652bd08c8943ddef78b","impliedFormat":99},{"version":"73b32be132963c6e06bb2f833ea0c21116581a3aafc8ac9145cc89a0b6f54bc0","impliedFormat":99},{"version":"73597a22736b6efce7cb30e380705cd6572d9e3f9816068130ec09550129996f","impliedFormat":99},{"version":"04504c465aabfed05529bf3b314df66c4eb449b188547c51edb962d8eb6069e0","impliedFormat":99},{"version":"09466b34e26295ee836861fa6348aff7b2275c6220cc0b41040c9949421e052f","impliedFormat":99},{"version":"242ce683695df72f1cdd40ae2ac06c569412e533528de95d956b26218cd195f5","impliedFormat":99},{"version":"d75a572cfd779c99cbdab5f8f44f6ce465367c057c07e33364d186de41ad9b14","impliedFormat":99},{"version":"8d12c3032607835687037e28dc245a4af486ef4aa6e6cb13744dcb0a3b074ab4","impliedFormat":99},{"version":"7ee2d1edc6f59a50eaeb12ac61a74ab4832f64661f795131df23ac8256df2329","impliedFormat":99},{"version":"8fea385f7e21a39e857e3fae89eabde7b0960083d205177430be507b38413579","impliedFormat":99},{"version":"7fdb8950d8a019940182ff1f50d02809a45832121b9a7899677a497aaba506ce","impliedFormat":99},{"version":"530e23db4425868edfc20e35fe2d8acf047af5b6f14afa46ee2e0e71e40c8df1","impliedFormat":99},{"version":"7cf421c4c6e223d2b648dae0ea51a134c4c8a5d8d55db1287372c4c1569c656f","impliedFormat":99},{"version":"ee662f8ffa58a60ca3ca8c141d4910043216efe63f696146b6fa0a455a4f9034","impliedFormat":99},{"version":"4eb4f2e56895129861a971177f8e9241ccf633daae3a6ac7343b92e973381c26","impliedFormat":99},{"version":"c75223aab2bfbe3fe85211fe56cfc844dd93d33e503e22e9911fd0d3e6f6538f","impliedFormat":99},{"version":"8fcea3d952a8129821d4060969f305a341706c256cb8002aba8e5b07088c24ed","impliedFormat":99},{"version":"2a6cef87ea83b5bdbc862e894329ba11002e76d5fb6ab24247502ecad2c6fbe7","impliedFormat":99},{"version":"39248c14bedc3e2d734739452408661523228ec790d7142a4de185ae88904da4","impliedFormat":99},{"version":"c14433af8654964ed33f9cc16f9369e05ae543d56bbc6a1c3b393fa7077f08a1","impliedFormat":99},{"version":"d867a5469eabe8abab25b27abb7125ef2ba019ef42dd1ca2b5d0871513042629","impliedFormat":99},{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"c031417387ddbb2923f41e3fc94b49157745785281c8949a221cd69368610086","impliedFormat":1},{"version":"73ef706b29d220404677226880137ad0da0145b6a2332d5427b9517dee295e70","impliedFormat":99},{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"27b14b091ccf309c79f3d2cf226edfa4d533b131f19bc0cbe855adebd464c285","impliedFormat":99},{"version":"50854b8ef4c29f3e952f170aaa045604a9d90360b680ddaeff542d1f5bb5fa8c","impliedFormat":99},{"version":"caa3a0be5c051f52e27b91642c8b31037c09ad0b65288498f4c55e33be7ea249","impliedFormat":99},{"version":"48020f2aa87dd71c26414f9afdf172159a6c31186705417da52add9d6cfe2153","impliedFormat":99},{"version":"f4e5a6883146482d6b49c1406f99a38b1ef883382b169bb5fc6cf7cf9f2ac70c","impliedFormat":99},{"version":"8b7b4f82a54a847a29fa481af4ea74372c19b75379bd27658c2a819149f21871","impliedFormat":99},{"version":"4f7faca5821e340342ea0feb3d478126659ece37d5dfdd6d9c9536bfd48def34","impliedFormat":99},{"version":"99878cc85152e70be715546f165826d83cf033547b4647cc3cc9cbd6d4df429a","impliedFormat":99},{"version":"7677f5595e7bdc2e6e42ebe8b4df4f4b520b28f6f175c839b73a208e6f3c8907","impliedFormat":99},{"version":"fd7faa9225e2e61a0a3d786a7a859af52dcb295c06bce7dfca140037655dc095","impliedFormat":99},{"version":"af0f7e3281ab0774f26ca8bc36d6aa37709f3510c8c1eb0ab122e7063159be01","impliedFormat":99},{"version":"960096f9e2ff9e9019e1c23a04916f2005d4c8dbd43f96b196d754b6c8a16700","impliedFormat":99},{"version":"c7c18305c761411b3c168f2b3376101b60d7a7d7c0505e81c6d8193a418f3d63","impliedFormat":99},{"version":"6b9a76dbc0ac3a427aa7370981cea9aea0e8286453b189dd03776f1034f7847c","impliedFormat":99},{"version":"3e48026dd0f58d4668dbfa9c6747302dcbc52e3aec373ec1f95c2ba78c308f33","impliedFormat":99},{"version":"053f54680ea9b4b1a8e9e5fe9f4a1fdcbc00f8f9b6d895109eb0d169915dfd11","impliedFormat":99},{"version":"3b0f440d9e4227285cec9159b1a472bc885687baf227a7b4126e2ba6dbef96fc","impliedFormat":99},{"version":"656e3a4ac005fcb1513ab1224eacfd55ae04b6f16d21d66c971dc901dad62c66","impliedFormat":99},{"version":"ea4891706f147e494a2a7028b2376110c2e85b7561b27448d51a7d1277c6fcf2","impliedFormat":99},{"version":"7f9bb3e6bb8d0607f94d1498c5fa8ac7445fcb4af52d0775a857d0986e0d0c84","impliedFormat":99},{"version":"c98c85d5b894c8955950338b1091f0febdc6c6702cf3b67a171d29d80fb2dfce","impliedFormat":99},{"version":"d00addf28fd877e3f8109b592b1918084cfb831268a0fd052fa72e6e01390cca","impliedFormat":99},{"version":"0cc0f30db3c4a2577606c6930eac2814d0463148d1bf02be9eaa318d6cb6d40e","impliedFormat":99},{"version":"21fb062824012292b09e9357aa7ac3231a0d683a7fbb9bc8e2b027346c7bcb32","impliedFormat":99},{"version":"9aa939dd1371c068dcda7d17c32fcbee08fa994890fefac8ad39d8cd5a294d92","impliedFormat":99},{"version":"8c0e829b03024d1905dba908ed55a5808d79159709770fe7a3b0395fa78125c6","impliedFormat":99},{"version":"15e6253aeb724521fcd0fd8bab60ac00b40e1b6c39aabb0de3b3e45ebe2d584a","impliedFormat":99},{"version":"4d3a0370e69c2d70d62a2eaeb40512474e38b4dff1a4e7ac98637f954ec5c143","impliedFormat":99},{"version":"b0094b81741504d0282359218e3659f5282b9748ad0e80d9a1c634bc1c88af4b","impliedFormat":99},{"version":"2c8e3d7848994c490cace467a6aae3fc4908e5b577b5ab0996200497062bb80b","impliedFormat":99},{"version":"6db32445cedcfaf6f6a4dbb922cdaf87e1cfc0422e4a31efeebef3fb0eb1a93b","impliedFormat":99},{"version":"b5102cfc507fe0c916a9ad45f4f52e00e3959b90eb90c5873e9527cb37eadb78","impliedFormat":99},{"version":"21e3abbcf80dc69638d138f5c6d07f596f8a162a8dca3bd71286403a96f8d0ab","impliedFormat":99},{"version":"20eab98ea24e9bf8834db1a339abb373e6f6a268537efa1fd571cd3809839eb1","impliedFormat":99},{"version":"796885a2efe76d5bef797516bd3a798b275f81075da8497fc1f6a9d3e085f2a8","impliedFormat":99},{"version":"b5a2192e328273da5a8279add3052bbc33b1adecb15f34a577c69c4dd2766d8e","impliedFormat":99},{"version":"20126c8c53f22550e68edb187f5d4d477b79a2effe7801fff3aa47949219d67b","impliedFormat":99},{"version":"8b63cf9a4a5bafaa3d2e157e6d07bb20d0d73fe0c5ddda715342a48d18534154","impliedFormat":99},{"version":"369dd195a978dcb88d63f1f1878e5dabb90bbc79b3e5fb0f16cf06209ab9e7aa","impliedFormat":99},{"version":"090b7d0fd37b238e003029b9137d5dff073791e21adaac556dd7524ed9ed977e","impliedFormat":99},{"version":"efedab846f4656f034814230fc05513b8cefb5f95994faee4f9b174c98bfef41","impliedFormat":99},{"version":"4f8876f00aa99ae0b39d6bca9da9e86f426dc6c458558773a647100a85fc3312","impliedFormat":99},{"version":"a13e1f68a2a1f29ceac30f51562e13677a5b8615377af952f0b7d1f9edff34f4","impliedFormat":99},{"version":"06f1e24d4146a779e7fd7a0f0cfdcdcb878da25e271e1e7d5d7f81d874f2dbec","impliedFormat":99},{"version":"0a3ede23be099f3ad266a10b4ad0cfb6efd446b9951f553274706348c3b56dae","impliedFormat":99},{"version":"c7b05cafd385f8988babecd476f4f9c817ecc68141dad54e2dd3ae458878a8f4","impliedFormat":99},{"version":"8fc8726fe9d96e0440518b06451181cabba87bdcb60a6e854b77e2b6dab52890","impliedFormat":99},{"version":"6cb381987d43f853d8d01c2fd5f32627e0c0f3a4dd1a11d5e3f94ff5832aff2b","impliedFormat":99},{"version":"ba0567434dbadd0fb8e80c4e00fb9c30449497f8bf07e82b2b857db0029f9b18","impliedFormat":99},{"version":"f72e417b7d49a5dec2d4f3857f6925ee78608cda1c42655d0179ccd38c66c15a","impliedFormat":99},{"version":"fdbb1158637d3ca4d209c7174270e5eb1414b4ee5324e9c33b1fae88e83bfc14","impliedFormat":99},{"version":"436cdc04f8ad3a54d2194b9926f52d564157ca162dcf3c9f71fa4711d057190b","impliedFormat":99},{"version":"73d9180a0b84dfb4c1a95bf72028103bd81472595617dd7ce788ea21639bcee4","impliedFormat":99},{"version":"55c1b951a4d7289a3056e2edea9855671a9d1f8f09632916ed1fb2aebb57b5c6","impliedFormat":99},{"version":"09b1271f73d90a01c889b4963a350825cff11493498b4141fde2399ce09de43a","impliedFormat":99},{"version":"bb9c7998d6def957496260f4c881ccc5b3d4eb4084ab00fbd8abc8c1e1ba67b7","impliedFormat":99},{"version":"340efc3f335a2a3ea2ca1899755906bcb6ebcbddf14306e66d0f16746db98273","impliedFormat":99},{"version":"6a691651e2748bf7792a251d820f00e8d9d3e4da1cdfbea91c33beda2bdd8b89","impliedFormat":99},{"version":"c3096b0c0f579462e17c525ee6835d82952c32b35061a1d32ac32d7e0f191da1","impliedFormat":99},{"version":"91b3c513f0ca4e2d0c5bc9ba1f43b169e1da7c49ff2cf5ffe730009c229f359f","impliedFormat":99},{"version":"ea0b435818ce832634961d1b65e972927f65a3c29a3e2c0cec3aafa0d7fe4ea0","impliedFormat":99},{"version":"50fe63347779cd2244429e0d54148fdb5d230dcc11f2bb8c7efc9d12c1e573d2","impliedFormat":99},{"version":"7adac175e5942f34a34f223d213bdd9869935ec6083dc6da836b996b7acdf7d5","impliedFormat":99},{"version":"2af0e322d1c39e8b16436cd9bd9c97b6013b75c179281df61afa10df0c722a1b","impliedFormat":99},{"version":"09b1271f73d90a01c889b4963a350825cff11493498b4141fde2399ce09de43a","impliedFormat":99},{"version":"0ef3eabd40fcec506413988e397ff7dcbed2aebfe4f88c486e2ba8dd1bc0ee0b","impliedFormat":99},{"version":"44dce86f2b5ef5e38fe6c068bc629afc04221adfa039f0dd649ae10f799f9ec8","impliedFormat":99},{"version":"5ad41356543df4a83b3ce069a7e628d2ba648399db0bdd4005bd1dfef26d34e2","impliedFormat":99},{"version":"0b448474270be29ded59bb946ac311c40c579ef0b9cf358a54750eef34359088","impliedFormat":99},{"version":"d7ddde645d6ca5b97f75923b3946e96495f81d7f4fd568201653f1939a3312a3","impliedFormat":99},{"version":"fb1148873f0d706261f8517b7ce3574b369c8213e8304c7c21cb9ca248b8dcc3","impliedFormat":99},{"version":"0637ec66edeed3f9ee0da72c0d5ab2c128db9e5a6226f8aca5672aa617db1726","impliedFormat":99},{"version":"ee49e1206cf12b67d5b72a98eaab773481130b87a9eeaa262086a4314d1cd991","impliedFormat":99},{"version":"9fa29d6f0b05ee8f619202c07680a46025b166da55e431a49c5badaa2983429b","impliedFormat":99},{"version":"f53857d23110842c0c62416b09caccb9286b3ba52fa2b6bbe254c58123d9bb09","impliedFormat":99},{"version":"89c02b0ad4fc44d10576b3e37c2c5262a37f2db171a486d2d5960ee60323bb96","impliedFormat":99},{"version":"59348badf356a43f7e1847364a8fdb8a914b9977a517b41f3ed206db36b875c1","impliedFormat":99},{"version":"ff0c09d8b0c8c0ffb09ef9250fac17c98eb4dd5a4f4955d53fc3880d6553b91b","impliedFormat":99},{"version":"07146d909fcbc1d33c5fc02f74dab3750d075a4de305a6c078fff8265e089c5e","impliedFormat":99},{"version":"b323496b42ebb7f2839ef1acb04947c74cc586c8ad20cc936c069d34b98a29ac","impliedFormat":99},{"version":"62159930f535b73f265f98f669c7f7bbdaef719ebc2de3a2bc4835e71ed68ba0","impliedFormat":99},{"version":"6ae1d121a8c1ff3398eff8af6e398868b631689d120076d7004c787479eacc61","impliedFormat":99},{"version":"d23bfd5a61fb32048f370f988a9772966651be1380c1a93c199d7cb25b7b0cf0","impliedFormat":99},{"version":"7344e1d823581d72124f6a328669abbeec44910c2045823bf7e7bef79ca49f73","impliedFormat":99},{"version":"af4a6e7559998dac4978f02c572d0f391928b6f40c62459c1e4ae5afc12995c7","impliedFormat":99},{"version":"b0a2a4c5ca7f6f874de72e39be8f470b348ec062c005cb5a7acc840fd7f67807","impliedFormat":99},{"version":"75083e759d8b09bcbf201a250c918a35221d05c7524cbb67b2b4d8959c919252","impliedFormat":99},{"version":"d89f7811a420d990b817f383c3fec421559063a7cb744fae619e8bba20dd151d","impliedFormat":99},{"version":"abd03428933117fdb9db45ac492eaac24d9a77c37c3944d26dba044b7fce6870","impliedFormat":99},{"version":"97050f022128934adae6a773a63be3c5bd5726f153fb72e9a8d34f2656135de2","impliedFormat":99},{"version":"3901f637d5f111593a5ea39a31d27e7a5f62195251f4ed6a50b77a020bc6e416","impliedFormat":99},{"version":"7edffa8d9c968f6a96b6ffc774be07717378ec619777e78510a7b6de4bfe67df","impliedFormat":99},{"version":"8f8d24c887f993b6c131075ac4f82cefbb246747b22c50491dc64ffd2cb340d9","impliedFormat":99},{"version":"5ffb8c07f5474d45bab306b6267ef2777ad786a841e0942416f485125cbd2385","impliedFormat":99},{"version":"e0d7a3cdfaa21621610dc3b74f8ccd59a5cd8617843ded1d610f05bf790adde6","impliedFormat":99},{"version":"b8f4165a3fa8fea167bb5016ad7629581d8fffb16447217d480c8a7ea438ed8d","impliedFormat":99},{"version":"b936b8e4ad57e3be1407c74e36645d31bebe7f1183d926a0c438cf416ec708f5","impliedFormat":99},{"version":"13fc27c27bc9a42e5e0c4cc08b64e7693b225c565bdab45ace16c179760f3cc9","impliedFormat":99},{"version":"8ff87eb5acdf565af022fb9145942b2207ac8cd0644917bc7d44efb91f4115d3","impliedFormat":99},{"version":"616ff480886a32cf50f73c4ee5fdd9672a5f21428eadcac34c41acb06035c214","impliedFormat":99},{"version":"f08e5842644a8e03da9efdbf89bf4eb61ea906a3bbc255bd7d7583756cb3dc61","impliedFormat":99},{"version":"562682efb4f43e58eb779a742f3e26c1fd796da0b785620de601202a38764785","impliedFormat":99},{"version":"264f935450101e4b000eb351cf75c9d799ca20a278b260a9e5770303b5f2b6a3","impliedFormat":99},{"version":"f6f171b23ae6db93454343f1b788960f799c8f37043904874a752c0990c6fca6","impliedFormat":99},{"version":"304e41926d3299c9b30bfd418c35fffd2bd9e5ac726d6f758fb4e0f40a738d51","impliedFormat":99},{"version":"7d3b1ddfce35445b76298090a9dcadee8acf20f4c281eb1f2ce14fc7232c9470","affectsGlobalScope":true,"impliedFormat":99},{"version":"02ab5dbcaa58da1d58c46c7cdfa7f94792c5ccf0fc7c0622ef33755fe415366c","impliedFormat":99},{"version":"e689cc8cd8a102d31c9d3a7b0db0028594202093c4aca25982b425e8ae744556","impliedFormat":99},{"version":"478e59ac0830a0f6360236632d0d589fb0211183aa1ab82292fbca529c0cce35","impliedFormat":99},{"version":"1b4ed9deaba72d4bc8495bf46db690dbf91040da0cb2401db10bad162732c0e2","impliedFormat":99},{"version":"cf60c9e69392dd40b81c02f9674792e8bc5b2aff91d1b468e3d19da8b18358f8","impliedFormat":99},{"version":"3e94295f73335c9122308a858445d2348949842579ac2bacd30728ab46fe75a7","impliedFormat":99},{"version":"8a778c0e0c2f0d9156ca87ab56556b7fd876a185960d829c7e9ed416d5be5fb4","impliedFormat":99},{"version":"b233a945227880b8100b0fec2a8916339fa061ccc23d2d9db4b4646a6cd9655f","impliedFormat":99},{"version":"54821272a9f633d5e8ec23714ece5559ae9a7acc576197fe255974ddbd9b05d6","impliedFormat":99},{"version":"e08685c946d49f555b523e481f4122b398c4444c55b164e5ac67c3ba878db8d1","impliedFormat":99},{"version":"3c99d5232a3c8b54016e5700502078af50fe917eb9cb4b6d9a75a0a3456fcd5d","impliedFormat":99},{"version":"9d8e34ec610435ee2708595564bbad809eab15c9e3fa01ad3746bbe9015faaed","impliedFormat":99},{"version":"7202a89bea0bdab87cc0ae60912b9e631a48f519b6a1f323dba8bc77a02a3481","impliedFormat":99},{"version":"f865343c121abc3516abf5b888d0c1b7596ec772229d8e4d4d796f89e8c9d0c0","impliedFormat":99},{"version":"77114bdbc7388aeeb188c85ebe27e38b1a6e29bc9fea6e09b7011bbb4d71ec41","impliedFormat":99},{"version":"3df489529e6dfe63250b187f1823a9d6006b86a7e9cac6b338944d5fc008db70","impliedFormat":99},{"version":"fe0d316062384b233b16caee26bf8c66f2efdcedcf497be08ad9bcea24bd2d2c","impliedFormat":99},{"version":"2f5846c85bd28a5e8ce93a6e8b67ad0fd6f5a9f7049c74e9c1f6628a0c10062a","impliedFormat":99},{"version":"7dfb517c06ecb1ca89d0b46444eae16ad53d0054e6ec9d82c38e3fbf381ff698","impliedFormat":99},{"version":"35999449fe3af6c7821c63cad3c41b99526113945c778f56c2ae970b4b35c490","impliedFormat":99},{"version":"1fff68ffb3b4a2bf1b6f7f4793f17d6a94c72ca8d67c1d0ac8a872483d23aaf2","impliedFormat":99},{"version":"6dd231d71a5c28f43983de7d91fb34c2c841b0d79c3be2e6bffeb2836d344f00","impliedFormat":99},{"version":"e6a96ceaa78397df35800bafd1069651832422126206e60e1046c3b15b6e5977","impliedFormat":99},{"version":"035dcab32722ff83675483f2608d21cb1ec7b0428b8dca87139f1b524c7fcdb5","impliedFormat":99},{"version":"605892c358273dffa8178aa455edf675c326c4197993f3d1287b120d09cee23f","impliedFormat":99},{"version":"a1caf633e62346bf432d548a0ae03d9288dc803c033412d52f6c4d065ef13c25","impliedFormat":99},{"version":"774f59be62f64cf91d01f9f84c52d9797a86ef7713ff7fc11c8815512be20d12","impliedFormat":99},{"version":"46fc114448951c7b7d9ed1f2cc314e8b9be05b655792ab39262c144c7398be9f","impliedFormat":99},{"version":"9be0a613d408a84fa06b3d748ca37fd83abf7448c534873633b7a1d473c21f76","impliedFormat":99},{"version":"f447ea732d033408efd829cf135cac4f920c4d2065fa926d7f019bff4e119630","impliedFormat":99},{"version":"09f1e21f95a70af0aa40680aaa7aadd7d97eb0ef3b61effd1810557e07e4f66a","impliedFormat":99},{"version":"a43ec5b51f6b4d3c53971d68d4522ef3d5d0b6727e0673a83a0a5d8c1ced6be2","impliedFormat":99},{"version":"c06578ae45a183ba9d35eee917b48ecfdec19bb43860ffc9947a7ab2145c8748","impliedFormat":99},{"version":"2a9b4fd6e99e31552e6c1861352c0f0f2efd6efb6eacf62aa22375b6df1684b1","impliedFormat":99},{"version":"ad9f4320035ac22a5d7f5346a38c9907d06ec35e28ec87e66768e336bc1b4d69","impliedFormat":99},{"version":"05a090d5fb9dc0b48e001b69dc13beaab56883d016e6c6835dbdaf4027d622d4","impliedFormat":99},{"version":"76edff84d1d0ad9cece05db594ebc8d55d6492c9f9cc211776d64b722f1908e0","impliedFormat":99},{"version":"ec7cef68bcd53fae06eecbf331bb3e7fdfbbf34ed0bbb1fb026811a3cd323cb4","impliedFormat":99},{"version":"36ea0d582c82f48990eea829818e7e84e1dd80c9dc26119803b735beac5ee025","impliedFormat":99},{"version":"9c3f927107fb7e1086611de817b1eb2c728da334812ddab9592580070c3d0754","impliedFormat":99},{"version":"eeae71425f0747a79f45381da8dd823d625a28c22c31dca659d62fcc8be159c2","impliedFormat":99},{"version":"d769fae4e2194e67a946d6c51bb8081cf7bd35688f9505951ad2fd293e570701","impliedFormat":99},{"version":"55ce8d5c56f615ae645811e512ddb9438168c0f70e2d536537f7e83cd6b7b4b0","impliedFormat":99},{"version":"fa1369ff60d8c69c1493e4d99f35f43089f0922531205d4040e540bb99c0af4f","impliedFormat":99},{"version":"a3382dd7ef2186ea109a6ee6850ca95db91293693c23f7294045034e7d4e3acf","impliedFormat":99},{"version":"2b1d213281f3aa615ae6c81397247800891be98deca0b8b2123681d736784374","impliedFormat":99},{"version":"c34e7a89ed828af658c88c87db249b579a61e116bea0c472d058e05a19bf5fa9","impliedFormat":99},{"version":"7ae166eb400af5825d3e89eea5783261627959809308d4e383f3c627f9dad3d8","impliedFormat":99},{"version":"69f64614a16f499e755db4951fcbb9cf6e6b722cc072c469b60d2ea9a7d3efe8","impliedFormat":99},{"version":"75df3b2101fc743f2e9443a99d4d53c462953c497497cce204d55fc1efb091e0","impliedFormat":99},{"version":"7dc0f40059b991a1624098161c88b4650644375cc748f4ac142888eb527e9ccd","impliedFormat":99},{"version":"a601809a87528d651b7e1501837d57bb840f47766f06e695949a85f3e58c6315","impliedFormat":99},{"version":"d64f68c9dbd079ad99ec9bae342e1b303da6ce5eac4160eb1ed2ef225a9e9b23","impliedFormat":99},{"version":"99c738354ecc1dba7f6364ed69b4e32f5b0ad6ec39f05e1ee485e1ee40b958eb","impliedFormat":99},{"version":"8cd2c3f1c7c15af539068573c2c77a35cc3a1c6914535275228b8ef934e93ae4","impliedFormat":99},{"version":"efb3ac710c156d408caa25dafd69ea6352257c4cebe80dba0f7554b9e903919c","impliedFormat":99},{"version":"260244548bc1c69fbb26f0a3bb7a65441ae24bcaee4fe0724cf0279596d97fb4","impliedFormat":99},{"version":"ce230ce8f34f70c65809e3ac64dfea499c5fd2f2e73cd2c6e9c7a2c5856215a8","impliedFormat":99},{"version":"0e154a7f40d689bd52af327dee00e988d659258af43ee822e125620bdd3e5519","impliedFormat":99},{"version":"cca506c38ef84e3f70e1a01b709dc98573044530807a74fe090798a8d4dc71ac","impliedFormat":99},{"version":"160dbb165463d553da188b8269b095a4636a48145b733acda60041de8fa0ae88","impliedFormat":99},{"version":"8b1deebfd2c3507964b3078743c1cb8dbef48e565ded3a5743063c5387dec62f","impliedFormat":99},{"version":"6a77c11718845ff230ac61f823221c09ec9a14e5edd4c9eae34eead3fc47e2c7","impliedFormat":99},{"version":"5a633dd8dcf5e35ee141c70e7c0a58df4f481fb44bce225019c75eed483be9be","impliedFormat":99},{"version":"f3fb008d3231c50435508ec6fd8a9e1fdc04dd75d4e56ec3879b08215da02e2c","impliedFormat":99},{"version":"9e4af21f88f57530eea7c963d5223b21de0ddccfd79550636e7618612cc33224","impliedFormat":99},{"version":"b48dd54bd70b7cf7310c671c2b5d21a4c50e882273787eeea62a430c378b041a","impliedFormat":99},{"version":"1302d4a20b1ce874c8c7c0af30051e28b7105dadaec0aebd45545fd365592f30","impliedFormat":99},{"version":"fd939887989692c614ea38129952e34eeca05802a0633cb5c85f3f3b00ce9dff","impliedFormat":99},{"version":"3040f5b3649c95d0df70ce7e7c3cce1d22549dd04ae05e655a40e54e4c6299de","impliedFormat":99},{"version":"de0bd5d5bd17ba2789f4a448964aba57e269a89d0499a521ccb08531d8892f55","impliedFormat":99},{"version":"921d42c7ec8dbefd1457f09466dadedb5855a71fa2637ad67f82ff1ed3ddc0d0","impliedFormat":99},{"version":"b0750451f8aec5c70df9e582ab794fab08dae83ea81bb96bf0b0976e0a2301ee","impliedFormat":99},{"version":"8ba931de83284a779d0524b6f8d6cf3956755fb41c8c8c41cd32caf464d27f05","impliedFormat":99},{"version":"4305804b3ae68aebb7ef164aabd7345c6b91aada8adda10db0227922b2c16502","impliedFormat":99},{"version":"96ae321ebb4b8dcdb57e9f8f92a3f8ddb50bdf534cf58e774281c7a90b502f66","impliedFormat":99},{"version":"934158ee729064a805c8d37713161fef46bf36aa9f0d0949f2cd665ded9e2444","impliedFormat":99},{"version":"6ef5957bb7e973ea49d2b04d739e8561bca5ae125925948491b3cfbd4bf6a553","impliedFormat":99},{"version":"6a32433315d54a605c4be53bf7248dfd784a051e8626aeb01a4e71294dd2747f","impliedFormat":99},{"version":"9476325d3457bfe059adfee87179a5c7d44ecbeec789ede9cfab8dc7b74c48db","impliedFormat":99},{"version":"4f1c9401c286c6fff7bbf2596feef20f76828c99e3ccb81f23d2bd33e72256aa","impliedFormat":99},{"version":"b711cdd39419677f7ca52dd050364d8f8d00ea781bb3252b19c71bdb7ec5423e","impliedFormat":99},{"version":"ee11e2318448babc4d95f7a31f9241823b0dfc4eada26c71ef6899ea06e6f46b","impliedFormat":99},{"version":"27a270826a46278ad5196a6dfc21cd6f9173481ca91443669199379772a32ae8","impliedFormat":99},{"version":"7c52f16314474cef2117a00f8b427dfa62c00e889e6484817dc4cabb9143ac73","impliedFormat":99},{"version":"6c72a60bb273bb1c9a03e64f161136af2eb8aacc23be0c29c8c3ece0ea75a919","impliedFormat":99},{"version":"6fa96d12a720bbad2c4e2c75ddffa8572ef9af4b00750d119a783e32aede3013","impliedFormat":99},{"version":"00128fe475159552deb7d2f8699974a30f25c848cf36448a20f10f1f29249696","impliedFormat":99},{"version":"e7bd1dc063eced5cd08738a5adbba56028b319b0781a8a4971472abf05b0efb4","impliedFormat":99},{"version":"2a92bdf4acbd620f12a8930f0e0ec70f1f0a90e3d9b90a5b0954aac6c1d2a39c","impliedFormat":99},{"version":"c8d08a1e9d91ad3f7d9c3862b30fa32ba4bc3ca8393adafdeeeb915275887b82","impliedFormat":99},{"version":"c0dd6b325d95454319f13802d291f4945556a3df50cf8eed54dbb6d0ade0de2f","impliedFormat":99},{"version":"0627ae8289f0107f1d8425904bb0daa9955481138ca5ba2f8b57707003c428d5","impliedFormat":99},{"version":"4d8c5cc34355bfb08441f6bc18bf31f416afbfa1c71b7b25255d66d349be7e14","impliedFormat":99},{"version":"b365233eaff00901f4709fa605ae164a8e1d304dc6c39b82f49dda3338bea2b0","impliedFormat":99},{"version":"456da89f7f4e0f3dc82afc7918090f550a8af51c72a3cfb9887cf7783d09a266","impliedFormat":99},{"version":"d9a2dcc08e20a9cf3cc56cd6e796611247a0e69aa51254811ec2eed5b63e4ba5","impliedFormat":99},{"version":"44abf5b087f6500ab9280da1e51a2682b985f110134488696ac5f84ae6be566c","impliedFormat":99},{"version":"ced7ef0f2429676d335307ad64116cd2cc727bb0ce29a070bb2992e675a8991e","impliedFormat":99},{"version":"0b73db1447d976759731255d45c5a6feff3d59b7856a1c4da057ab8ccf46dc84","impliedFormat":99},{"version":"3fc6f405e56a678370e4feb7a38afd909f77eb2e26fe153cdaea0fb3c42fbbee","impliedFormat":99},{"version":"2762ed7b9ceb45268b0a8023fd96f02df88f5eb2ad56851cbb3da110fd35fdb5","impliedFormat":99},{"version":"9c20802909ca00f79936c66d8315a5f7f2355d343359a1e51b521ec7a8cfa8bf","impliedFormat":99},{"version":"31ddfdf751c96959c458220cd417454b260ff5e88f66dddc33236343156eb22c","impliedFormat":99},{"version":"ec0339cf070b4dedf708aaed26b8da900a86b3396b30a4777afcd76e69462448","impliedFormat":99},{"version":"067eed0758f3e99f0b1cfe5e3948aa371cbb0f48a26db8c911772e50a9cc9283","impliedFormat":99},{"version":"7dfb9316cfbf2124903d9bc3721d6c19afbf5109dfbc2017ca8ae758f85178ab","impliedFormat":99},{"version":"919a7135fa54057cf42c8cd52165bf938baeb6df316b438bbf4d97f3174ff532","impliedFormat":99},{"version":"4a2957dfe878c8b49acb18299dfba2f72b8bf7a265b793916c0479b3d636b23b","impliedFormat":99},{"version":"fad6a11a73a787168630bf5276f8e8525ab56f897a6a0bf0d3795550201e9df5","impliedFormat":99},{"version":"0cc8d34354ec904617af9f1d569c29b90915634c06d61e7e74b74de26c9379d2","impliedFormat":99},{"version":"529b225f4de49eed08f5a8e5c0b3030699980a8ea130298ff9dfa385a99c2a76","impliedFormat":99},{"version":"77bb50ea87284de10139d000837e5cce037405ac2b699707e3f8766454a8c884","impliedFormat":99},{"version":"95c33ceea3574b974d7a2007fed54992c16b68472b25b426336ef9813e2e96e8","impliedFormat":99},{"version":"1ecb3c690b1bfdc8ea6aaa565415802e5c9012ec616a1d9fb6a2dbd15de7b9dc","impliedFormat":99},{"version":"57fc10e689d39484d5ae38b7fc5632c173d2d9f6f90196fc6a81d6087187ed03","impliedFormat":99},{"version":"f1fb180503fecd5b10428a872f284cc6de52053d4f81f53f7ec2df1c9760d0c0","impliedFormat":99},{"version":"d30d4de63fc781a5b9d8431a4b217cd8ca866d6dc7959c2ce8b7561d57a7213f","impliedFormat":99},{"version":"765896b848b82522a72b7f1837342f613d7c7d46e24752344e790d1f5b02810b","impliedFormat":99},{"version":"ee032efc2dd5c686680f097a676b8031726396a7a2083a4b0b0499b0d32a2aea","impliedFormat":99},{"version":"b76c65680c3160e6b92f5f32bc2e35bca72fedb854195126b26144fd191cd696","impliedFormat":99},{"version":"13e9a215593478bd90e44c1a494caf3c2079c426d5ad8023928261bfc4271c72","impliedFormat":99},{"version":"3e27476a10a715506f9bb196c9c8699a8fe952199233c5af428d801fdda56761","impliedFormat":99},{"version":"dbb9ad48b056876e59a7da5e1552c730b7fa27d59fcd5bf27fd7decc9d823bb8","impliedFormat":99},{"version":"4bd72a99a4273c273201ca6d1e4c77415d10aa24274089b7246d3d0e0084ca06","impliedFormat":99},{"version":"7ae03c4abb0c2d04f81d193895241b40355ae605ec16132c1f339c69552627c1","impliedFormat":99},{"version":"650eddf2807994621e8ca331a29cc5d4a093f5f7ff2f588c3bb7016d3fe4ae6a","impliedFormat":99},{"version":"615834ad3e9e9fe6505d8f657e1de837404a7366e35127fcb20e93e9a0fb1370","impliedFormat":99},{"version":"c3661daba5576b4255a3b157e46884151319d8a270ec37ca8f353c3546b12e9b","impliedFormat":99},{"version":"de4abffb7f7ba4fffbd5986f1fe1d9c73339793e9ac8175176f0d70d4e2c26d2","impliedFormat":99},{"version":"211513b39f80376a8428623bb4d11a8f7ef9cd5aa9adce243200698b84ce4dfb","impliedFormat":99},{"version":"9e8d2591367f2773368f9803f62273eb44ef34dd7dfdaa62ff2f671f30ee1165","impliedFormat":99},{"version":"0f3cef820a473cd90e8c4bdf43be376c7becfda2847174320add08d6a04b5e6e","impliedFormat":99},{"version":"20eed68bc1619806d1a8c501163873b760514b04fcf6a7d185c5595ff5baef65","impliedFormat":99},{"version":"620ef28641765cc6701be0d10d537b61868e6f54c9db153ae64d28187b51dbc0","impliedFormat":99},{"version":"341c8114357c0ec0b17a2a1a99aecbfc6bc0393df49ea6a66193d1e7a691b437","impliedFormat":99},{"version":"b01fe782d4c8efc30ab8f55fae1328898ad88a3b2362ba4daac2059bd30ef903","impliedFormat":99},{"version":"f8e8b33983efa33e28e045b68347341fc77f64821b7aabaac456d17b1781e5f4","impliedFormat":99},{"version":"8d3e416906fb559b9e4ad8b4c4a5f54aeadeb48702e4d0367ffba27483a2e822","impliedFormat":99},{"version":"47db572e8e1c12a37c9ac6bd7e3c88b38e169e3d7fd58cb8fb4a978651e3b121","impliedFormat":99},{"version":"a83a8785713569da150cded8e22c8c14b98b8802eb56167db5734157e23ee804","impliedFormat":99},{"version":"cce1c8b93d1e5ed8dcbaca2c4d346abb34da5c14fa51a1c2e5f93a31c214d8e9","impliedFormat":99},{"version":"213a867daad9eba39f37f264e72e7f2faa0bda9095837de58ab276046d61d97c","impliedFormat":99},{"version":"e1c2ba2ca44e3977d3a79d529940706cef16c9fdd9fd9cad836022643edff84f","impliedFormat":99},{"version":"d63bfe03c3113d5e5b6fcef0bed9cd905e391d523a222caa6d537e767f4e0127","impliedFormat":99},{"version":"4f0a99cb58b887865ae5eed873a34f24032b9a8d390aa27c11982e82f0560b0f","impliedFormat":99},{"version":"3c8a75636dc5639ebd8b0d9b27e5f99cdbc4e52df7f8144bc30e530a90310bbe","impliedFormat":99},{"version":"831ec85d8b9ce9460069612cb8ac6c1407ce45ccaa610a8ae53fe6398f4c1ffd","impliedFormat":99},{"version":"84a15a4f985193d563288b201cb1297f3b2e69cf24042e3f47ad14894bd38e74","impliedFormat":99},{"version":"ea9357f6a359e393d26d83d46f709bc9932a59da732e2c59ea0a46c7db70a8d2","impliedFormat":99},{"version":"2b26c09c593fea6a92facd6475954d4fba0bcc62fe7862849f0cc6073d2c6916","impliedFormat":99},{"version":"b56425afeb034738f443847132bcdec0653b89091e5ea836707338175e5cf014","impliedFormat":99},{"version":"7b3019addc0fd289ab1d174d00854502642f26bec1ae4dadd10ca04db0803a30","impliedFormat":99},{"version":"77883003a85bcfe75dc97d4bd07bd68f8603853d5aad11614c1c57a1204aaf03","impliedFormat":99},{"version":"a69755456ad2d38956b1e54b824556195497fbbb438052c9da5cce5a763a9148","impliedFormat":99},{"version":"c4ea7a4734875037bb04c39e9d9a34701b37784b2e83549b340c01e1851e9fca","impliedFormat":99},{"version":"bba563452954b858d18cc5de0aa8a343b70d58ec0369788b2ffd4c97aa8a8bd1","impliedFormat":99},{"version":"48dd38c566f454246dd0a335309bce001ab25a46be2b44b1988f580d576ae3b5","impliedFormat":99},{"version":"0362f8eccf01deee1ada6f9d899cf83e935970431d6b204a0a450b8a425f8143","impliedFormat":99},{"version":"942c02023b0411836b6d404fc290583309df4c50c0c3a5771051be8ecd832e8d","impliedFormat":99},{"version":"181655e54e8b288d671457be112383e6c51502cff5c4e39020c89f281a987307","impliedFormat":99},{"version":"27d7f5784622ac15e5f56c5d0be9aeefe069ed4855e36cc399c12f31818c40d4","impliedFormat":99},{"version":"0e5e37c5ee7966a03954ddcfc7b11c3faed715ee714a7d7b3f6aaf64173c9ac7","impliedFormat":99},{"version":"adcfd9aaf644eca652b521a4ebac738636c38e28826845dcd2e0dac2130ef539","impliedFormat":99},{"version":"fecc64892b1779fb8ee2f78682f7b4a981a10ed19868108d772bd5807c7fec4f","impliedFormat":99},{"version":"a68eb05fb9bfda476d616b68c2c37776e71cba95406d193b91e71a3369f2bbe7","impliedFormat":99},{"version":"0adf5fa16fe3c677bb0923bde787b4e7e1eb23bcc7b83f89d48d65a6eb563699","impliedFormat":99},{"version":"bf4a06264e6b80cc96fa5e6f11b05825126845563efbf5a68a5b18fddee833b1","impliedFormat":99},{"version":"560a6b3a1e8401fe5e947676dabca8bb337fa115dfd292e96a86f3561274a56d","impliedFormat":99},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"b2e451d7958fb4e559df8470e78cbabd17bcebdf694c3ac05440b00ae685aadb","impliedFormat":1},{"version":"435b214f224e0bd2daa15376b7663fd6f5cb0e2bb3a4042672d6396686f7967b","impliedFormat":99},{"version":"5ac787a4a245d99203a12f93f1004db507735a7f3f16f3bc41d21997ccf54256","impliedFormat":99},{"version":"767a9d1487a4a83e6dbe19a56310706b92a77dc0e6c400aa288f48891c8af8d3","impliedFormat":99},{"version":"198f2246a78930833c24db9c42da7ab40c084c2e2132a899f9c03dcbe59d207d","impliedFormat":99},{"version":"eb07eea29499b56357f7593fbdbc6d2312d8afc32c14396952db8d897ea0c4c2","impliedFormat":99},{"version":"06efe54b5ceaa113fbc649424419746efde6dcd5af2a7d4472efb62d751801b3","impliedFormat":99},{"version":"39613fd5250b0e6b48f03d2c994f0135c55d64060c6a0486ecfd6344d4a90a7f","impliedFormat":99},{"version":"8dfbc0d30d20c17f8a9a4487ca14ca8fab6b7d6e0432378ba50cc689d4c07a73","impliedFormat":99},{"version":"4b91040a9b0a06d098defafb39f7e6794789d39c6be0cfd95d73dd3635ca7961","impliedFormat":99},{"version":"66b67d15116c453abd384a1ec73ad2cb90b19fff4c08289360c4f3f573465838","impliedFormat":99},{"version":"5805f6ee9c3a5369ba7f37a809e226f0b217d2059d6f699cc242c9907671143f","impliedFormat":99},{"version":"2f0578c52f2b95a2a2187ad6d1d8fa4e835278871c81747c500bf04bbe0301a2","impliedFormat":99},{"version":"ee9811c1b947c37077408d66bf61ca0f7e6ffad850ecec1e246e643c51fbb5e3","impliedFormat":99},{"version":"4e919bdf4100bc0338598352ad2778d4750fb0d5facbd1bc7c5210340a1f756d","impliedFormat":99},{"version":"4b54813a405270d710da2c598f57cc0c512aad7b5f34f8d2e109862020568a58","impliedFormat":99},{"version":"ac29a9fe4dc4829c7f3f693c7667483f9903ead6ac67abf8d6a5744a5578a7a4","impliedFormat":99},{"version":"5429b7f938113b40fa315e0f100220a5801992497bc3eb05e3b395055033a93c","impliedFormat":99},{"version":"aac828f821e824489c3f10a5452e05b7abc084894dcf6cef1855fe44c88d8556","impliedFormat":99},{"version":"9dda93662ba9cc072a048ed9717df4869820cdc84ebd33db3db6e1ef354f521a","impliedFormat":99},{"version":"a769f4df15ce86d72fdc646ef33bf9ad634e2d7f544399ca030b61d61c781942","impliedFormat":99},{"version":"e1848b9ea5d00c149eae78db2141cb099cd5cd0573064c03f24fada82b2a0d94","impliedFormat":99},{"version":"535dc92c4a20901f7dad384f1fd2b19735bb33720fad67283f4c2b06c4735777","impliedFormat":99},{"version":"2aee0f37dd7974c93900bbda19ff133f2ae270938d99c50f3c6c944260d94ac2","impliedFormat":99},{"version":"e30accdbef6f904f20354b6f598d7f2f7ff29094fc5410c33f63b29b4832172a","impliedFormat":1},{"version":"d8e3ef4fff7d0d3ea72616214977dc2e8407716fb2075e48c61a930d40bfc003","impliedFormat":1},{"version":"9b7f0e34eebf9d3b7196bb340fb2b0013db8bd22fad1a5baaf394b1ad27a0adc","impliedFormat":1},{"version":"b1e5f3a55aa219247976db1b0c6af31d07673e8085197aef925f25ca08fe12c4","impliedFormat":1},{"version":"99d035e265fb5d783f128612f410c7341eac318c75a53cad0012cb2d2cf005f1","impliedFormat":99},{"version":"c609560ed4b5a840f9515229fdf7522440cfacaf2b6f21e1c3e6b46bfc4431c6","impliedFormat":99},{"version":"43980aaf3d50729108658c84a9325fb3341186024247f2af90a9114206577d06","impliedFormat":99},{"version":"a59b6920d3cd9ac94aa10df1c8f2aa9c76c91d73e4af0e745821424e73bbffc8","impliedFormat":99},{"version":"26de2510ef97324e48304cad246786f786be6b9d067746ba672724fe99eb4a76","impliedFormat":99},{"version":"8b57037ca744bd60066cb4daeb239264ae4bf833f87edb3db2d59b4ef3d745d3","impliedFormat":99},{"version":"ae650283eb740cc6f195b89c1d341c03eb93a2fbaf3f7dcd5d01e827e23cd3e3","impliedFormat":99},{"version":"a9422b34f43cc9ee3352838bcd6fc2aec4e388dd6af7f4909df84067ef5b827b","impliedFormat":99},{"version":"88729bf6ce9df1a17ce52112cfe4af935cf1463c9128d4c7dde0a11ad10cfcbe","impliedFormat":99},{"version":"3e0d929622db87b5431036fec53dcf6f98fef5c6dae84570ac1c0c7b3c005ffb","impliedFormat":99},{"version":"53090b74e67c3dde2e97a5f3deaf1f1d2184d5caba7124193ebfc3be2daa667d","impliedFormat":99},{"version":"269966782bfaa41f1f629936d53d6ac01020c60abde7a1f70196a4405018f0b2","impliedFormat":99},{"version":"a507cef707a17f4f58b0f106ed3bf5fb044a9cab3f7c24eaeed10e1fdbab6151","impliedFormat":99},{"version":"a14cb49589c589d4e1257bf7bb457548785b619d37e245fe2a6c1b942156584b","impliedFormat":99},{"version":"272f5f51201ffbd79dbb3533503dd3e20d7f8d1040ad42f33068bf9d0b163e7d","impliedFormat":99},{"version":"85a6e5140a3bf1abbba9e6184d732d25648d20007116cbf39bd3baa9312441f2","impliedFormat":99},{"version":"bb9e472d55badebf8969025cc126eb857874252c58795ee5c6e74d686700ed21","impliedFormat":99},{"version":"7be935d17f4f54e3263e1526bae0128ebd6b15835e6c22116a44d8e0ada5a74b","impliedFormat":99},{"version":"b4aece44eaa3781d058e4f0790aa4a4e1d2012a1d62c73ad05e6a5737a7ee293","impliedFormat":99},{"version":"8519f682ce37f2d021cd6072049a7ac2db5fdef449afa3a2a226d346c25d5962","impliedFormat":99},{"version":"a43478ba83037f64bb87ea8471a7e8a407efa910a75540b384593bcce2d38c48","impliedFormat":99},{"version":"9bc917d7e01d56dfae1f76108a8cad4957f961cb51aa23c5d2e69ef3db286e20","impliedFormat":99},{"version":"b0fc879036b6a62cc7cbd27ea444f6fbe57fbef1b1d039b0d566df2117ffb499","impliedFormat":99},{"version":"f321683ba426eff0d826901b147eabd2d23428147643c869ec99c51da801290d","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"0b4125a4b9bc524a75e880a6f31849624262d8c97cde4a5da1d34256c95f5bfe","impliedFormat":99},{"version":"0c95bbcf76de3e231a4288d81d9e897e10c73da899277da633b44a08eb8eefba","impliedFormat":99},{"version":"d0ca01ffa779f381a0ec9d9efe34ea3cc98b45e4056ab44b5268766d63aab647","impliedFormat":99},{"version":"b5738f6245eee46675619b44f6af0d70f7586be229fb360532a80c44b1b49ff9","impliedFormat":99},{"version":"517171e44831ae1b5c34ba7aa7c7f1dcb21902c31d3f7b2abb51e497a0b99e6f","impliedFormat":99},{"version":"e2e3cde2cec99e82ea98a82c5bd92ed12e4fea8cf402a6e035d5bd2a7cca281a","impliedFormat":99},{"version":"2639caf99c5969ac53c622f5fafed83ca12d53fa87f406aa2cb7467a1103877b","impliedFormat":99},{"version":"a23d0164a568e779958e7643d81d88dc9027e80ed65e3a54da2505af249d329b","impliedFormat":99},{"version":"2131b5fbfbb47e80581e06e8bd11c7bfefcda71f088aa5f1d137d289c20a2222","impliedFormat":99},{"version":"c0c57f6c7ed346d12352f55865e539621bdcad36045d2b9e71be0e168b1192aa","impliedFormat":99},{"version":"11fd3ff2c4379a9f482f0d7c8591fd679d4f8dcab82046db3a1812f8713f2373","impliedFormat":99},{"version":"36f2ab77365fd65ee3261475892dba15c0fe452077a93a19a63aaf2acb62fc98","impliedFormat":99},{"version":"bb9cd6cc3af0b5e3ffa70cb1de85fe6946b3a3f1f10ebed7ed8c772f7ae50466","impliedFormat":99},{"version":"5b3a8b45bba54d7ef198eefa8c61eed06ec95d267108353c1517742be9eecb88","impliedFormat":99},{"version":"8081faa1962486c7e9e5fc2dff88fae24d868c5a585cdb2c38ba1c15fce4deae","impliedFormat":99},{"version":"9f57322db1a5da7c827f95f23fc860c2296730373a87436ad2ee23644c3c86a3","impliedFormat":99},{"version":"1ee555a004b7194196d6d51cf73227cfc1c0f0d043da9a649e5e867a25d1a2fc","impliedFormat":99},{"version":"1d6201fba84d7d56be10c34ef4f816988da4bfd1548902300f3e031a4f482833","impliedFormat":99},{"version":"51e530ae5cf54f398bee91699fa140199f96f2f55b8fa23901815b02c9721fde","impliedFormat":99},{"version":"18cc29fdaa42892eb79f03b9f00bd4619a35bb6dbc1805a7c5f94d9b0e96bf6a","impliedFormat":99},{"version":"b00e3cca08af70a9cad820cfc0c78e477d67b3f72d5f2d6ca967172e3a971f8b","impliedFormat":99},{"version":"9151c2db5ef596dc764093003dc730d6d3d1f75eaf5fa117f6caa2474e98a634","impliedFormat":99},{"version":"12b545c39034ef75d9b4b66d21324cfd2d37ca0f33c563fdd7e32a9f02839ab6","impliedFormat":99},{"version":"a178ef7d260e3ae2d4bb5ef46000ac0ad00c79a454a80b1e03615ae4e410596a","impliedFormat":99},{"version":"bf48205fdc00bea0ed458cf81a57e4cdb09e740669370be0e17a92e0a89338fc","impliedFormat":99},{"version":"b5873d1c47eff986c60cb5d61878fc2734a8c3e8cc64b7e183fbcdae3676aec8","impliedFormat":99},{"version":"3d1354d536d8ea970fca6ea675d5932b2d5720ac458fa85afcdd80f3b708c763","impliedFormat":99},{"version":"a06839234f46aa66759cd492ce3f716a9f32fc30d9310e1b7618c1f5cc075a62","impliedFormat":99},{"version":"92929866d4c2be4b9510afc8ce088817d8a2f5b58398cc032aa3e587fb700a42","impliedFormat":99},{"version":"6483a445bd97d8cc1545cebe5b4b84e7611c5f2ac65adf4fba8188e1758cb1b1","impliedFormat":99},{"version":"4cdce6d44ef612092168edba4cb736735dda79314c8d816bb376d2d4a4aa7f0c","impliedFormat":99},{"version":"d8ef707d006fdf8e64a9ea3673c4748374cac72d794b632dd6868e7973de3b55","impliedFormat":99},{"version":"695dbe57a9f1686b727ff8112def7376b69da4a9f92a6b4660cfc7adfeb4fd57","impliedFormat":99},{"version":"e30accdbef6f904f20354b6f598d7f2f7ff29094fc5410c33f63b29b4832172a","impliedFormat":1},{"version":"5fd2267cea69c19286f0e90a9ba78c0e19c3782ab2580bfc2f5678c5326fb78a","impliedFormat":1},{"version":"2a628d887712c299dd78731d2e18e5d456ac03fb258b8e39f61b2478b02481ee","impliedFormat":1},{"version":"b1e5f3a55aa219247976db1b0c6af31d07673e8085197aef925f25ca08fe12c4","impliedFormat":1},{"version":"e9f80c5934982b97886eadab6684c073344a588d1758b12fba2d0184e6f450a2","impliedFormat":99},{"version":"c609560ed4b5a840f9515229fdf7522440cfacaf2b6f21e1c3e6b46bfc4431c6","impliedFormat":99},{"version":"43980aaf3d50729108658c84a9325fb3341186024247f2af90a9114206577d06","impliedFormat":99},{"version":"a59b6920d3cd9ac94aa10df1c8f2aa9c76c91d73e4af0e745821424e73bbffc8","impliedFormat":99},{"version":"26de2510ef97324e48304cad246786f786be6b9d067746ba672724fe99eb4a76","impliedFormat":99},{"version":"a822bb869dd9dfdb4b1b5c887b90373d5a1e900191772646b6211541a5ea13b8","impliedFormat":99},{"version":"ba56cf294acda8f40e97bdf8f102617b57c914664476e1f900db307ad0e8c3f2","impliedFormat":99},{"version":"92be2c8229c02b140324d56906af58882ffd87ead115a34380580e9dedea4a18","impliedFormat":99},{"version":"a507cef707a17f4f58b0f106ed3bf5fb044a9cab3f7c24eaeed10e1fdbab6151","impliedFormat":99},{"version":"a14cb49589c589d4e1257bf7bb457548785b619d37e245fe2a6c1b942156584b","impliedFormat":99},{"version":"272f5f51201ffbd79dbb3533503dd3e20d7f8d1040ad42f33068bf9d0b163e7d","impliedFormat":99},{"version":"85a6e5140a3bf1abbba9e6184d732d25648d20007116cbf39bd3baa9312441f2","impliedFormat":99},{"version":"bb9e472d55badebf8969025cc126eb857874252c58795ee5c6e74d686700ed21","impliedFormat":99},{"version":"7be935d17f4f54e3263e1526bae0128ebd6b15835e6c22116a44d8e0ada5a74b","impliedFormat":99},{"version":"b4aece44eaa3781d058e4f0790aa4a4e1d2012a1d62c73ad05e6a5737a7ee293","impliedFormat":99},{"version":"8519f682ce37f2d021cd6072049a7ac2db5fdef449afa3a2a226d346c25d5962","impliedFormat":99},{"version":"a43478ba83037f64bb87ea8471a7e8a407efa910a75540b384593bcce2d38c48","impliedFormat":99},{"version":"9bc917d7e01d56dfae1f76108a8cad4957f961cb51aa23c5d2e69ef3db286e20","impliedFormat":99},{"version":"b0fc879036b6a62cc7cbd27ea444f6fbe57fbef1b1d039b0d566df2117ffb499","impliedFormat":99},{"version":"69b3e0b9435c37d191bce1a4d38c8d18e8add8cb99835eab8f566b95ad9de828","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"3c1183883c83dbb1be210210e1c11a878f87d60f8afc1b3972cc6388c87e7971","impliedFormat":99},{"version":"0b4125a4b9bc524a75e880a6f31849624262d8c97cde4a5da1d34256c95f5bfe","impliedFormat":99},{"version":"0c95bbcf76de3e231a4288d81d9e897e10c73da899277da633b44a08eb8eefba","impliedFormat":99},{"version":"d0ca01ffa779f381a0ec9d9efe34ea3cc98b45e4056ab44b5268766d63aab647","impliedFormat":99},{"version":"b5738f6245eee46675619b44f6af0d70f7586be229fb360532a80c44b1b49ff9","impliedFormat":99},{"version":"517171e44831ae1b5c34ba7aa7c7f1dcb21902c31d3f7b2abb51e497a0b99e6f","impliedFormat":99},{"version":"e2e3cde2cec99e82ea98a82c5bd92ed12e4fea8cf402a6e035d5bd2a7cca281a","impliedFormat":99},{"version":"9382e32237e08424b2642d1d9ea4af3a76001cef48888273f769af0c95cf169b","impliedFormat":99},{"version":"45a95142d20916e8510b2d4c42b09aaa3d8ca3d0c3dbd7f915da870ad182380c","impliedFormat":99},{"version":"2131b5fbfbb47e80581e06e8bd11c7bfefcda71f088aa5f1d137d289c20a2222","impliedFormat":99},{"version":"c0c57f6c7ed346d12352f55865e539621bdcad36045d2b9e71be0e168b1192aa","impliedFormat":99},{"version":"11fd3ff2c4379a9f482f0d7c8591fd679d4f8dcab82046db3a1812f8713f2373","impliedFormat":99},{"version":"36f2ab77365fd65ee3261475892dba15c0fe452077a93a19a63aaf2acb62fc98","impliedFormat":99},{"version":"bb9cd6cc3af0b5e3ffa70cb1de85fe6946b3a3f1f10ebed7ed8c772f7ae50466","impliedFormat":99},{"version":"5b3a8b45bba54d7ef198eefa8c61eed06ec95d267108353c1517742be9eecb88","impliedFormat":99},{"version":"8081faa1962486c7e9e5fc2dff88fae24d868c5a585cdb2c38ba1c15fce4deae","impliedFormat":99},{"version":"9f57322db1a5da7c827f95f23fc860c2296730373a87436ad2ee23644c3c86a3","impliedFormat":99},{"version":"1ee555a004b7194196d6d51cf73227cfc1c0f0d043da9a649e5e867a25d1a2fc","impliedFormat":99},{"version":"1d6201fba84d7d56be10c34ef4f816988da4bfd1548902300f3e031a4f482833","impliedFormat":99},{"version":"51e530ae5cf54f398bee91699fa140199f96f2f55b8fa23901815b02c9721fde","impliedFormat":99},{"version":"18cc29fdaa42892eb79f03b9f00bd4619a35bb6dbc1805a7c5f94d9b0e96bf6a","impliedFormat":99},{"version":"b00e3cca08af70a9cad820cfc0c78e477d67b3f72d5f2d6ca967172e3a971f8b","impliedFormat":99},{"version":"9151c2db5ef596dc764093003dc730d6d3d1f75eaf5fa117f6caa2474e98a634","impliedFormat":99},{"version":"827f0158dcf51b4afd0bf7867d30ac9436535fb4422b891a16b88799f9caa6e8","impliedFormat":99},{"version":"a178ef7d260e3ae2d4bb5ef46000ac0ad00c79a454a80b1e03615ae4e410596a","impliedFormat":99},{"version":"6e477dd31a5483cbab13f1f907b29474b33a5140dd4e8672a7ebe00aa27984cf","impliedFormat":99},{"version":"b5873d1c47eff986c60cb5d61878fc2734a8c3e8cc64b7e183fbcdae3676aec8","impliedFormat":99},{"version":"3d1354d536d8ea970fca6ea675d5932b2d5720ac458fa85afcdd80f3b708c763","impliedFormat":99},{"version":"a06839234f46aa66759cd492ce3f716a9f32fc30d9310e1b7618c1f5cc075a62","impliedFormat":99},{"version":"92929866d4c2be4b9510afc8ce088817d8a2f5b58398cc032aa3e587fb700a42","impliedFormat":99},{"version":"6483a445bd97d8cc1545cebe5b4b84e7611c5f2ac65adf4fba8188e1758cb1b1","impliedFormat":99},{"version":"513d0b8895a905e579ed2baebdc817a23dae16e78ecd925400e3142a8096f33e","impliedFormat":99},{"version":"fce0bcc6a86782ed4eda9ed21c4843dfa3c0845db64634867034d249ac0933ea","signature":"65fe0c4c818cbc60e5bfaa2e73af1833feee5840b682e0b36f5b6f033b5adf19"},"51caf311b5397bb74553bc28cc85973db9f9a7a327c68866e7e7750b72dca42b",{"version":"d392af7961eda9588aed6392908f014fa318daf9e8a952339ed3db69e9ce5273","signature":"0ceb4ef84ef078e260af63215f7878d2086590ac443fe35a3d510f1c8f792bdf"},"2778747ec5f0fa749a66df42831ea70270ab3a17a94f1313e01905b794f92a47","925bb05a1ae6a8d137cf092bc8b31e54ebaa5559a444583eddcff605647d5544","01dd48041d3b0d86d198e58cb750852eea8f0a78d40cd52f7e50bf6f33a06dee",{"version":"89fc4cad6ac7ac6d922523b3ab51462b050189ab335766149e5cc777483d4e1b","impliedFormat":1},{"version":"27b14b091ccf309c79f3d2cf226edfa4d533b131f19bc0cbe855adebd464c285","impliedFormat":99},"d41171d9f336c406532c26d9706a7f3dbb54d757e4dd418d1f21623e8871c740",{"version":"5276ee82ef96770571bd5aae9f4f5cdd474c3d4c1a068f1e1d9ab9cf16529975","impliedFormat":1},{"version":"cdb1d174036ebdb04b5a61461ff523efaeefffd87b093f43fdf20196024b2003","impliedFormat":1},{"version":"23c2c70dd974c3b8b66be4f3d6c9351fd41235d9c038b4d57d334dda8f753819","impliedFormat":1},{"version":"dffa09d0911ebb2639cae47397e011cc195de4a3ad83b53efb2651cfa0e0b75e","impliedFormat":1},{"version":"7d2c1ce36b9370a3af266ca6c663fe62e82671f9cf41337bda0efd837a5e2de9","impliedFormat":1},{"version":"6e45f5dd809aca05301c8e1b9f526096fe89b3369da10fe34f9c037832f103a9","impliedFormat":1},{"version":"0db63cf288cd71a85b06be8065db706797fb7d368a2315bd34967070c880facc","impliedFormat":1},{"version":"755ee0128a813468af08c5e673655a068813c92f4179978fd37ac3df1688c2f8","impliedFormat":1},{"version":"f183da4c889c90d5060aacc1c247c6cd68cc0024b9891402bb1c07a492d18018","impliedFormat":1},{"version":"da1c8718353e2981fa5981328a2d5cf6bc70da59c51967924d032a06177bce50","impliedFormat":1},{"version":"cba87731af3b8e51151ab6b3ba2d9604739649cf132885dff49836d5369ae387","impliedFormat":1},{"version":"3965bb091883ba173f7742c16ec8efe81207d75774d3a809385edce6841adca0","impliedFormat":1},{"version":"108fd0cab464e528dfa511d982368df2c9d9964e1e66f8921ef40accce9dfcf7","impliedFormat":1},{"version":"8d48c98fca3f013fd2872810d7168a9c405c4037962637aaa0a094571e731757","impliedFormat":1},{"version":"9898a7c6ed78c9656079244ea2318282f42ffd1cb5d4aa5753decaa7f3eaafa2","impliedFormat":1},{"version":"cd76d0f1eff1c892bd783f4a53efe2470746b892e810f60a5c82dc5a858d13c8","signature":"3bc043476397d7853285aa2c2c9563355245e633caa301ebe3dde1f24880f533"},"92a71fd81ccd1c569d4922967f10b4bf8e680ee7e97b9caadb5426a70249263e","132279ec90347f347997306254f472ccf473cf7ec59e6cbc358c8b3e3d917dd0","283bbcc38c91737aea86f8d5362b4fb48894b64ae12a7341563a1ce7372eb39c","8c3a4923961d532c332df2f3915a4a70441449f099cea296ca91a02bf6b9f310",{"version":"b4f89206c8e318e5e65294ae7925a52a5bc13508809c5c699d7ebfa14e0509eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d51500cee65d776a8591b72c1019b0dada25d6f7ea39685130ccedad2e8b1eff","impliedFormat":1},{"version":"e733b8a7d2ecce20916d95d75a0c7cdfff7e8371879006902d77969da1550d65","impliedFormat":1},{"version":"d9d5884c0b7a87c6b0b319474eac7987f915f7460a04012d54689c14c800d69c","impliedFormat":1},{"version":"42739f43f21108aaa8b2e9d1246c537c88fc193694d5c3660b49ab5ed87bec60","impliedFormat":1},{"version":"8c4c212cbe640024a5076e006d5ed48c6856bf3a79880c52d0fe453495b84e7d","impliedFormat":1},{"version":"8dbd432facc1bfd211d58bbbf86a405dd55cdf04d6425037171282ae5e1bd5ae","impliedFormat":1},{"version":"bd0ae662720de3f141b078c64de498113fb13faec0c1cbec62f1630f7b8954a3","impliedFormat":1},{"version":"517fee0f998ca443a8eedaed7ad143753cd7ed6c9fc97a62200c09b21ea661d7","impliedFormat":1},{"version":"e94e5a0936bba407a0d0b7846ff8a7960667f09040b575b5035bc30298510781","impliedFormat":1},{"version":"f6a3229a9d452117bfc85b50e955b836c8c91b1244dd8d3413c2824333022982","impliedFormat":1},{"version":"75d3a0dcb75b27ae7f6d3bc06ebacc608c5145b2f403264b64d603d0be929bca","impliedFormat":1},{"version":"28732171a9e5a176e9d8b9bb417b32dc885591bc2642232389a44167bc5ec581","impliedFormat":1},{"version":"90ebe8ddee75b7e87baf030d45d49e13a91dea47fa4cd8494ac85e5ea35779c8","impliedFormat":1},{"version":"6ec1d690b2213c008b55d31778e6c4f13141487fe26749ee6a0b4c2b6f84f9c9","impliedFormat":1},{"version":"43ae0b1b0a836f113aa973b1a4d114e2867fd320125e43a80805d9a80ab07c4b","impliedFormat":1},{"version":"1b6d1aeb6a58db9a9702623d7edaa31eda44cb33fe66f349f6156b20db8b6211","impliedFormat":1},{"version":"5ee542acb0e360c539bcf027de4389536fdaae8653e47b33eb0445ba85bf223a","impliedFormat":1},{"version":"8a0a53613cfa756a769e4514632acac0e17d80631af21a888daa46ac01ccdd1d","impliedFormat":1},{"version":"e7f9e4cf51627c95fdddff062c58c6b1c4e22d1868acbf3e7e663ee95e3790b8","impliedFormat":1},{"version":"449d082b398ad2a53c5def35397b752d61c968a2acacffb935d564b5ff3aa19c","impliedFormat":1},{"version":"1a3aa0fb5f9a2dc05a33faa6246f85ecc52c8af7a5257d8639e724a12ebc92bf","impliedFormat":1},{"version":"6480e9b0877e389c96e3b89c43fb2e4d84bb6ae8cea22f8ea2bf30ac4a4c4136","impliedFormat":1},{"version":"9cd1a75410c01f48f43befd40b47a7d2d42565b5593d5cf02b7472b04a1d98c8","impliedFormat":1},{"version":"d0144e7240c7f26030468a13211194d192316099ebbcee7782c6005cc393c734","impliedFormat":1},{"version":"095a402135de9fbfda29ba7c984bf54b9e65757396b4165706d898e9baa83ed5","impliedFormat":99},{"version":"0b6471168629b8a0cbac9f8f67bbbba83a1d64cf1424cd7d299439b3af88129a","impliedFormat":99},{"version":"3e0fa3b04086663fd406499ea37f0714b0d7cbc296eb81e244f2bf0ba4938bb2","impliedFormat":99},{"version":"3d11abe325e68a5b76d9f53ecc0b4ea29685ccbd8690b279f2177e0750d87f8c","impliedFormat":99},{"version":"f1952d24cb1344241341230924197977764249edcde80605e96454f073ebb35a","impliedFormat":99},{"version":"3b5b37b56d81802168c5b8df2f1d4a7ee018d67e7463f221d49b6ea20af00060","impliedFormat":99},{"version":"f3a6db8faeb959400a4d0e1100b9d5c54eb494800e6dc9a2452bb2e00a27397c","impliedFormat":99},{"version":"d278699a1c7e06a195ecc065c4965d1bbfb5bc2d67176e63bebf58b273158023","impliedFormat":99},{"version":"261ffd2f7502d9387324715c7dcb9f3a30c8d044b6dc3abc7ff80737c366476c","impliedFormat":99},{"version":"28729ff7b2ea98a9ba6ca4490c5540be744a4d73b4199ff6094cb65c9db33607","impliedFormat":99},{"version":"6ac889647435812fb7ced7035daf90c1f307710056e4b496a3fd5cb97c87daed","impliedFormat":99},{"version":"29f60d17027d6bc8891797f6ed95ac84ee42313e6b03ddb49beff6f22f49f8c6","impliedFormat":99},{"version":"f71579228be8825267577e970c8f0ee2869cebae0bb7603b00644fec924c6717","impliedFormat":99},{"version":"e50f096cb424b63343ad5814622623f15cf3830f41710376bebb3c7f71554713","impliedFormat":99},{"version":"69ebae4354b59ff1ba38419d6033e22d0db6ffe6c1d562e78914f88f06ec517f","impliedFormat":99},{"version":"45f0aee62dc187cbde99b10987e1f8649a30bba8bf9c95957e37d1551d0626da","impliedFormat":99},{"version":"919b048385b82efca27e5adec2f61f17a2b219582f2deb8a13b4648c7c8fafbf","impliedFormat":99},{"version":"47747eabb3c64620a12f707bf30c7f7a211e25754a2da1f98267068f49bd0947","impliedFormat":99},{"version":"2dc1bcd6a132924a89f965b60edd5b5333aaa7eb28ba5af44a0a0a328756e9ad","impliedFormat":1},{"version":"ad117b97b2eb65daeeabf0adb13573a8f1d12d5ce21c312eb7eb588106b92560","impliedFormat":1},{"version":"683f7d52795b5e2c0a269c4a202f212d147eee850b6d74050af619cea7638605","impliedFormat":1},{"version":"bf338c88f9e91b1700029f806a2d8bb447f19d3e39fa57dbba16ce8bf43902c2","impliedFormat":1},{"version":"d3c9c7df6fe4c7905f73578af2542e2f303da2b0565abb10ccf8a75626da1bb5","impliedFormat":1},{"version":"a16c041923053317f99708de244e50f0c563de0ee22313739810b67cec8af89a","impliedFormat":1},{"version":"b64880a77efc0fba08ee595d277a52e7abbdef2dde51a163376f03d6d3a67c7a","impliedFormat":1},{"version":"817d7ba9b41a1f3f7d15e8c1067bc32ce0044aab0ba05e2794294ed25959cdf7","impliedFormat":1},{"version":"6e6d52eece8b335d10a436ca59f91cbf0727f9f2ac0521a0b0ffc32da2006948","impliedFormat":1},{"version":"98e70d3105aa56ac3e2a34a78f10c6d352ff9e3148b1bc2bb11c1787f0176d26","impliedFormat":1},{"version":"144ffc9e0632f167247b8ebc6c12b690555b27930cb2d92edceea7df51e54bbe","impliedFormat":1},{"version":"cb6b2bd587f4d8b0299840be7cedf422fb895d3c7f6cbd8c18c041518ba82fee","impliedFormat":1},{"version":"849b51d422f1a846684da755840ffe68f65701b7b7703ea9622847df65dfb2cb","impliedFormat":1},{"version":"3b17eebfd6fea2320c3d3ab55e26bee41e6745fe51432da7901e898249a8c186","impliedFormat":1},{"version":"5d9c054ecd5fad83e0ec5e117196acdcd4b1cc5b8d28f5df752a416c27052aa2","impliedFormat":1},{"version":"949c8eb79434b05b6d1c10d2010216fbd6c920ee376d08627f717d24b6572454","impliedFormat":1},{"version":"25495d26470692e2591e386c1dbffe4aa0b2d8c00af6ac9c8c69657818262dd5","impliedFormat":1},{"version":"abee0197420ed0849c7adbff50fc13f54ccb52f9a8c906e298c28321bf736cd9","impliedFormat":1},{"version":"3af7286265437a7488193d0ab0b56a6e20e1a5e08831a6c3fe0880212c2c6c75","impliedFormat":1},{"version":"d7eadcb936edf325912a70d1c4874c29b92463ba1eecdb302858763db6a68692","impliedFormat":1},{"version":"04fe6e4f5bd35c234cd04ea88ada66b718aec4b3edf611147b0ec9ea216b3cd7","impliedFormat":1},{"version":"7aa826d09dcfa85af6b2cfeeb6a7f340d417968632695fa8eacf4186fb71e8ac","impliedFormat":1},{"version":"ebbf2bf006f21fc203f1a555ff0fdcd8542d1546d7cab60aa835ff5902db0d2d","impliedFormat":1},{"version":"12aaf4e3c85225c710acd6a9f41532bf8e06bf180e54c1bedc60fa9b9c1a7d23","impliedFormat":1},{"version":"7814f653054116409bc9a36968b77c878c2013ef8d8873328e8f6fcd3348d8d9","impliedFormat":1},{"version":"ff4ade9606d1b3fe1a10bdf6ab944e1bb1d5ac86035228ddd3ecb5fbe51d4d47","impliedFormat":99},{"version":"608ffc65e122c3eeeff832a9007ecc00fe71bf1b03a3069a44e8c565ee8af368","impliedFormat":99},{"version":"40b54b241bc79a986a5ac364f7f11c60af8c68ac8d45c80501ed31af7e587a74","impliedFormat":1},{"version":"0d1a503605c35a53f49ff2b6506704b289bc33d9001d2244044c91fc82315c8a","impliedFormat":1},{"version":"96d1d70759af66ea4404f7c18130ef478e5052de8863e2bf4467cfbc2fc7176a","impliedFormat":1},{"version":"fcb4542949fbf132a400c60cc53b79dde681570147af3a5798aa732798c6b0f1","impliedFormat":1},{"version":"9332e2b6255fd361167671093522351ad5e2d0e3a78d9bf8f0959d779f6d3246","impliedFormat":1},{"version":"5be2e2b5ca39c4fc74b0273674a3e7705088513872fa3de1e4f75357a507a988","impliedFormat":1},{"version":"fc8bef71b44a15c1c6afe97e2ce74c7beb10d0a3c45d19dca5b9d53cf81cc744","impliedFormat":1},{"version":"41dd7695c5e11ca31e40bb8d9a2edc9c2b3e262d1007fc7471ecb91516874d98","impliedFormat":1},{"version":"262efb4650083ac514f3119534d502211d0270140057698e7d4978caaf4b6f97","impliedFormat":1},{"version":"b5e98f1f4e64ace252ae743df592ff0187aac817efaf58cd97c63e243fe15951","impliedFormat":1},{"version":"151f53de4563905919248ae634d857276a8491e62416b6f2cccbfebfe6794a72","impliedFormat":1},"8f7f0fe9723363d03731e2af36efe952b9c8dfae8c9c4feca85f917c8d38ee95","7ecd76861caed403cf1c2e800d380817179703bb003a7e94141e51e9e520a16e","dcfa51263066f8d4064c483762236b3257512c2d88434e8a2f1010fc8d77a729","9811c23f18ed827f5f95f59ac41d59c24e048811741bc97ef4751a6e4b588c93","764d3e4fb632118dd99a7e8109e64f2663f14cf970b4d45e8b9b74ba705f68c2","a993b6a3db6a2d2963115b8eb8e4e04ff6e4de394170571a5b703e482ff5314c","767f21b5b918baaab7627cedd23e90e96c6988f86477df1208b5111f41aee03d","51b6fd7947e721d16a909d057b5d9b008e7c467c94efb5cfbca51edaf10454f4","f846a25a6ad92fae372999fc49fb5fe1febd68ca3eea39ef83425a46cc016776","409ffeafca5a6a110031899b1ede663a3c3fa929124893367f4934e32700d68e","21adf40e2fb8b0a48342d2eaf4125363d94acb49cc59f5ac369749efe683990f","05da203db76a7efb938df54d8cf7db7946fb7c89099b5c41c78662d95b8f7fcb","79b4596a792ed6cc9300ab60c2d21d820f4a13717d14e573b55816cdfb245de2","6c96ec3120fd9f90fe1afc383f6b2f92b824907883c6f99268b5167185b0a3d8","4bb6f6bbc4448a16ffb70812aa37b20ca3941b27443ca36d9d3a499a8bf1d564","ced87fa12049ceb1366ca1f09f6513cc7eea164e6922411dc96af74f9d44cc3f","d2e4a17c63760596ff90b4309942c815d06024e25e7a60bea36d17393602bc79","21e7c97a4a252f6c062480252b3f885ec2e7b67ac56664d2779d4874d1d1916e","aba51eb73c16adbc21fd09bf64b6014e84c469284c501a3c9aacf242aa29279d","26b123b60d4d748e6ad048813295f4c368d46faef228690732d8d289a1a5af8d","5d83ba0eae0798f047802f636c62c4189ef4079f2d017f33b14086fae18b0fd9","1d568d68dad90166c8e322e3a301441095b2e149d458f411209fe6e29f0ec1c2","2d995c15bd75d777ddb5e05b3e838750a7a0e229d9503204984aac0e36d886b6","6cad528e6075009933bc7ec3a49f1d4574995a45e5f1fdfe04a0c38dc693ef57","8c504f40166472fe55bb138187ade1677c14699b70731d3d862d5d19193814a7","7d1e53d013ca549fa99df6bb961822493e2878f2f2ba935e95210c9b7a24cd68",{"version":"5276ee82ef96770571bd5aae9f4f5cdd474c3d4c1a068f1e1d9ab9cf16529975","impliedFormat":1},{"version":"cdb1d174036ebdb04b5a61461ff523efaeefffd87b093f43fdf20196024b2003","impliedFormat":1},{"version":"23c2c70dd974c3b8b66be4f3d6c9351fd41235d9c038b4d57d334dda8f753819","impliedFormat":1},{"version":"dffa09d0911ebb2639cae47397e011cc195de4a3ad83b53efb2651cfa0e0b75e","impliedFormat":1},{"version":"26168183003371ceac063f0cdf62be889d0515a193444a99b176094565dabb0a","impliedFormat":1},{"version":"7fc99221160c51281d2b9095552be2b24b600b3b6fe305cfd068bf501f623ef2","impliedFormat":1},{"version":"e36eeb1297210f99ef4644a5028caa2f222cee56f5f577909470aae77924b7fc","impliedFormat":1},{"version":"755ee0128a813468af08c5e673655a068813c92f4179978fd37ac3df1688c2f8","impliedFormat":1},{"version":"f183da4c889c90d5060aacc1c247c6cd68cc0024b9891402bb1c07a492d18018","impliedFormat":1},{"version":"da1c8718353e2981fa5981328a2d5cf6bc70da59c51967924d032a06177bce50","impliedFormat":1},{"version":"b4b9c09ebf50026552009c501feafa8d69c58dd29cfee93f54d5783f8fc6d2b9","impliedFormat":1},{"version":"3965bb091883ba173f7742c16ec8efe81207d75774d3a809385edce6841adca0","impliedFormat":1},{"version":"c1eb69b3ec8f1080980c25c8244c4ba093af729f4dac451758e69026b20c50a7","impliedFormat":1},{"version":"f67870591872110fd6a97ec0d933972f21ccf433bfb9d8ed1f044740958c4e43","impliedFormat":1},"70d4ad847cb64eb83528a594bc5eba51fe712394c7b5c1de540dbfa1fbb252a6","0a598b4c856c45b4847ceb8cbf5e4dfb8eb164053ee407775363fad2b3689893",{"version":"a28e6fadb0b6e7a95cfcd29366f2b72a8e3193270d3f2b673e1876edf0159c7b","impliedFormat":99},"16db379ab816c2dcb506ece1955925fad9cf7e60a27e192f0ae274abeab0e4e5","c24ff7cbdbc36ed2758430652fd2c208c35f23a69b0204b07d6f3ed016eed9f6",{"version":"9be0dc6f4c5ebff5d838dc0d059f25e5a6ab1d224d5adc7ef46887ce8549e897","impliedFormat":99},{"version":"32aa20fd978847e617304582657723f0dcd1809de9b087ed0ad5b7090b1a47c1","impliedFormat":99},{"version":"1f37db92ea78f4d197a201f80a3c52ce6e2b759b19d3a1e9de5aab0c9026fe3f","impliedFormat":99},{"version":"c07898a85c15b3b636506443e88fe6d85bbd568c0bb504a9ae5cb371d58f6319","impliedFormat":99},{"version":"795d467a57e3a7c4aa3d645fa2edae9a2d0d44dde435bd1b222ab533da6fce44","impliedFormat":99},{"version":"bfc5aa7977557874fcbe1e96f7a06e46b3b568b955c82b74a85cc8f6c62060a5","impliedFormat":99},{"version":"f20bb3ae0de20cd6a4b73155cb506bae39e904b7e5ea4f618f5bda7b3ae474fc","impliedFormat":99},{"version":"44c5d9f47e85552ea141ddc1b0af65903297624f0ff2227372d5ce31ff0380c6","impliedFormat":99},"6bfb9aeb01e1f2a8f2b6196412ce85dc2b7cdc8dcf1962f2e1b6516093e8269c","e4a4f02927024f5fbf9e91abffcec93c3771168b5bc36dea3091b152d5f3186d",{"version":"a896cee6bbf43009c05e9ee4b0cfb1147ae49a4ffc2d814c6d7465806d76fe72","impliedFormat":99},{"version":"6bd987ccf12886137d96b81e48f65a7a6fa940085753c4e212c91f51555f13e5","impliedFormat":1},"8151759f968a478356f66626323955df04679687e8bded20e1ee7b29027fc8a2","476bb552263792befe628d5b588cfee6310e91d27d8e5e3135e3c64cfdf661d6","249a206e642fb5f7539f5127d3a5c6a49de3b802ca604e2b5fff4f38f844bfe3","4a9e0a7891dc98c602bfcdd97d00bfebe517011e39a0f88926cf619ee24d9aa1","4fab487193cffe755885c698cc1bdc01b00ecf4dcca0dddfc447d88970681c97","401cbeffc1cbc3427fc85070bb0dd35df981fcf82a30318e9b468a660a95f743","c84078b0f3b82c13b2e97be494c0f1071a89df00858c9035ea5444924a263884","7293106d19cf62705dc6f168cdb00e7e4c37d57f1019d73eab5e5633f002abfb","8bc0222adfdb85b62b1a3f1ac9fafb8e1116c6494cc86782ac2a7fb6d13bd09b","1de97be13cb6d21a4a1da963d41b6141b27f05786ffdb35713bf378328eac097","e538c60f67d9e7d463ce9fc6299a9c1e436fea994f03f14e436871f69659854f","19b53283228e93ccee1500899e42b4d22853555d91fb8f2efa3f82922cdbdc41","9c93d91720155376e598da843b36a77a24890972270195940569950846c0c7d2","8236d0455cdc0c5df74726e2fc7011e4d133b7df6180be669bad5e025d727308","3be0ff06250bdce15bd08cb9eda008ccabd85aa331a784dfb6d81838c470eae0","8278755295ae2604e765676713fb773b43b8a4c8b98b2bf33693c068b916ccf6","10d43e25bfdaf81335aa875387740a9e952a7f5e2f47f9bf6e473c42a7187564","22a90b05fdc32fa4ff466a5819128275749dee90a305858ef353246e723a2d85","51d4f6415cae0357ae923f7110e6f6962690e44c701589a65f2d95903e40e368","cb838c5fdd46f7f469fefa566e2b5c2fafe02be638ef02177bc1c7cbbd3bf879","53fa54de6d9b14ec6a35ac2c6e7c5dcf47ac17eb74741c57d6948db7a2ccc489","1a947f95ecc0f6a6e2ea8122470d6881b5dfb2592051b68ee8f72f8f8ee36d5f","bbdbdb42b704a60fa5d7177ef83346be726578ccf95e26add73999c1148dafea","71b2f6191be093ac9d84c9286a609f3414390ff88be50e2f01c9bcdb85d3287f","35635edf9f859027af3be25cd38a5d42e52c1258a1a3ced5703842d177dd805f","e5357f120b95cc70b91bff28981d75e63d381f96ddd12df8c6274ce209040c52","1142ae3be3921a530a00fbd2f4aa5e511375891f625fa098e2618ffbb804d3c9","3d93128631bbfed8da5aa5960e91a88249a6bfc7bd00dedc04f4d18cbffaf5ef","32377265da5db06811fb10303adbb6759f1dc0796f11c3509f8c368a394c89e7","6a374c778084795fc7a2aa1c15d20e461b1d8ace2990ecdf6ac8baaf25072b7c","90dec2351372005d3ccfe8cdcf628bee17dc7c48a6bacb3c58d13f376aa92abc","b889c9ec0f1e55e0129ce9d06f0cf10daa320f0161b7c992db8bb1ba99adb36f","f310657015f5c7accfa816f290a474674eedbbe3c79a15477d344da54f4c1c56","ca8aa1a3dec921d461a781d9f529d814dc6aff720b10f2e458cb2e0cc7058536","016017c4c67f193e806011e0f76de65cb3c4771f37a0197447ae00f4ec3d675c","f07b219d7d1e1cbe8d95d8a6e0decb00a1b6087ae186c5ebee9896e2ff413ac2","aaddc268703ab388bf6c44617543cc939831ad85d5dc0aa1984c26a6077e7d6d","1eccc6cef0e7c37d47eb03a97ace30d00bf819de8461786360bf7209960ea3ea","eb431d32ffc7698839b93fb185bd7748ce804f6ba334b5a0f84c926ca374223a","3d708b76940e1051d77827e6a8a02b2527288c6d4d1c23b5adaa16730f1f4009","5dbe51f917f9a0e623f6d4e85168f0fb54590db471edb9a959f1f9c51af279b9","62ab67147a9b8fd96a09da8fdc2471a1ca66d1aecc0f02ef58277f52e4b7c00a","02488bf52002565e729cd29363490adbdfa45672e042fa65325f761e5a69e55b","b3b660c3d033dc9ef4ad8cb72ef53689a9553d164d863df70a016388dc720563","5cc05c76b2616468da6647bba3164da3a43a5072957a361f8fd83443f70ed19b","8f8b4bf72768215e198c9d23a2e57e658df831e89db050638e8392bfd1496d79","7823de72ea86749463b18871158db12e33e7d452c2da17e770fe14f983ec8acd","fb0c6ec6d7932a3a1dc83f0eed33ab793fac1e0640bf91dc909c30cd0f0c8285","c17f9ed4e1c43d6bdf74de055df4b42366ffbdd52c818e0ae7ce0f20f849c2f7","b3a161ee261f5909ff7415f9ab59719b21c5c8d7d6a1dabde90f804ac49fa0da","eab87a5108d9732a2508991e58ea5c32b90aa3d6b959eb62b4e29cbb7322bf9c","28d3f60af41a48022385a5619c49a4c799284ebadad30d987ec1f67ef84a1ffe","747e4ce9c28359c400ab94e506648be05de64c9d991b349123a4a8fc48b84b73","1b3f557087d532489d56388c31dd4195b775cc3f735975a4589d2f54aba467c7","4aeae8d8887e81c7698be984c3505a7099f25ee58a6ae215aa5276089924918c","593be32ac4f8fe372a6bd9ea4859ca1a84d6dc84fa630e24616cf24120d68da6","afcd168776c141a058fadc66872e0765bef97fb1c7fbf8a480454bdf30b84186","6da63471ad0749bf97b1e481c0bfe6a43ca8f3daba53269568f033fed989ddf2","8a15db08fb7d7b2ab4717156081b95d4ed32a770e4624b0722e8606e91c3df4b","ff10c6742f17c4ad02e6e18981c646eb136f034df6c6da769ce518bef035dac7","386502117ad2cf606bc88655cb9195b4644bcb8f97cd1e8c5c322ac7e4006c05","ab58c363da9bc405eb1f6810b28b3add09b3f610425615360e311c1198ebd73a","0873fbc7f9d6ab783ed2e6a73403a079cab3d122c7eea69392889eb706d5297a","593be32ac4f8fe372a6bd9ea4859ca1a84d6dc84fa630e24616cf24120d68da6","9e98458ea2d271f13b0d0b5d0a492005fb0ca454d24a2645e129a42a0ce5f3fb","7a912902c1c09e09ec8f2638a4d52f6fca012d1a4402753a604c310f680263f6","a4d0dbc0f6fcba705be0aa16752ba7df2a9a4cc98d03adcf0a70d2b70d0db7c3","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","118fed45cbddb3c9b4a4dab8c83967bd4f61d7b0afd8f148045b4287a4cef9a9","2a100a93d6afbe9e3363df7d206b8a3ce61e2c174e5417f825986bc8d21ffc69","8ea16a7310e3501565e2d32de8b9f985f79e462f655686dcab7d6b230fa655b9","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","b60413abb20bdbfafe6b5326d2b4e05f63dfdcf5d9b1246a3f86ece2ad562d86","b4478b686216adcc7a6255a930d419f33075d942195a00707d9cfe03e373e8b9","c36744b2651a62f52866b47c74545de84fdf6991e0a96920e0004642e4830524","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","2049bb071060b81c49c6cf96872f23632d6e4fa7f9a1c93e007dec52d77f8a70","907a3d799649a512646f1e6b70591b137a5f5923669ccf8673003ad498c42e75","b82efd290a7dd61bddb329a05b5d622ec9927cfc8c27b8178676c85875460266","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","6204a985b097ba214229d512959870ec0d74c7b6708b5bebd9f7c270d9ba3f42","234efca8a392e60b9c4d5f5ae51b20c7e593706ed542033427d7123f9ac00047","a21ce57317e583912540dad2b34d2762431c9f603a480affc58b03e6b5e8a369","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","ce0d2754f32697babe3c5ebccd63d627bc2fe2c47d02edc8fb52aefd67bf20ff","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","320bec3745b17fe114b018d64b01f1463b34ab3d0196319c3261710e908d3541","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","b48a58724e886fc741cbc9db68909d87f8102cdd102b34b8d011f40263f2eff6","481f5f7de3521edad947b39300f2978debd136ab602433d014e44f6e119dc242","87223c92d8c9f0f6d2163674475be7c4d2c8a4439c31fcf04d01a873c255361e","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","292d1124dff7d7313ac9d6ec5879a113e09acaf4226ab127cb024fd7d0d2131e","9bb30ee6833cc37825294772c9c67863ebf61c3913eb92abb3f259444c274498","693c946a6f66734a59fcb7a131f1f744645b92ba919aac02893161d5b7633964","aea1e4628bba7c088db32011bc0c10cef5543824a882f5e7abc9d480ed900b61","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","c52f0a0c1ada7b92b2dc03e2d68cede5dd7d0c3d5f6564dfbf8bc23c5dce603c","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","6983b0c80cc42153db35b6a4dc27c916c15ef43f07c5444754aa99d211e31f82","a09132cf4896ca4a291b30f07e0c2dfa420d4e71b5802f5d130123d20fe976d7","b223502c32cb7040a9ccc12fd30e4a5da2334cd9823920f33e449713eca4d435","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","e3bfcb48c23f5e17495e0050deddcfae71a2ead167760132a4c68bca3ea19f3a","30c53f37fc9649f10cd59a98f43a9358878d7be661ace991325756c2d69eaebe","9e544e6dfc01035c7f28297d2e7d966a655ef1869f6ef4a8a613cf0810113bfc","4b3707ee5c02dfed26946147a17ad487d954cb648a352417f7305f3a8b0b091e","40a717506493221f42ea61f37615fe241827f16309699a4f00d397742db73cb4","c34fa140427f097c7bf3b5b428756fdc790df61bf7c5826008107e2e772f2d1c","aadb12cc5f8c3160aac0f9dc62daa4386c30386ca82223d283f5ce64b486e81e","7b00f5001a9cc73872657547eaf8d736a5ee7d86a82281099111cb56078c45bf","4b80774707d45b293e210ad51549d26e73e44ffafb80874d1a16c232cb47a28a","1423249be76c3ea1e9f13797229a3f813675589513a4b6989e0291e5efd2fed4","f896934a55f792e6e48635ad510db4f9c8cf62d59ccb9076e3ddaaa058eb2299","c9d0eb2d0e962a44edbff2d4ef0d1bba177815b032347c6ca687199569391c16","3e4e710ea86a17244a493dd90c8540cae7c9c14902d004a9a5af29c33ae956a0","44c0d53011f4b029ae82ccf4b1ae9f79b50756aa374e66f63772d661348ef5b3","cef52f035785e353e67a7589e972cebb9768a1c7dee644e2048f14124222bb20","af47ec042fb2136af93235422654247a3988acf6407b643cf9e4c82a6223938d","6fb1d409092b2c60d495bcd219fbd259432787812615d018d34e3095a9779661","86d7666fdb51a41a2eec4b622ebb4e386827f51525d1c0eb39f142a3043cb939","1140fa6ed9e972caad948398ac3f0c66f7f1c3eedac3aebf5666dbf1e08c9984","81663ff17585d1c4a17b9aa2b458664ecf1c6391e267c889398cad61d37b0040","65e8f650d059a9f6866c8d21277eb75f109c179e6662635e31c73f7314a15b47","973c1d4a8e79b6956e68a922cb0a17d5a73e0f97b9e83ddd320cfd4734260fea","f7047e6358933c7805013ebb85901582f04a55fcc40e9502c32f97513bf78412","8cdcb4c784cb0572917238dcefe583009adbf7797d4c4886ad4039982b5a21fb","07516dc144bbd2ca6c851b2c633c0531f07a8481c1b751e53572b36b4972f463","d1970db5ca2441b07bf3573094ee46114427df80ec4931ace0bdcf77aba69fe5","6dbf76049317057ff152b0491fe3252229cb9443bab1e44802735492727377b9","74e1e40bd50b34196d8a33446cd965f40bb47e5805ffdb95b3eab8a554646752","7747dc051cafcc0b8577ee408f4daf15c9be9259d88c26f2209a96f9eb546a13","f9fb06981b946167276f069cf5bab3d9c731443e9c13fc7d0b92176e5a214343",{"version":"c930c2e6784e31ee5013e8f754ab3cc4a44c34ab28039820fa2aac28eb046799","signature":"01fe9ce173f45a09b54f82b726959cff3d7af1f2e6596298f44b8476c86b1609"},"d1d20f87f975a3aa646bfc3a3ad2e92c63c0ba0ee750a4888672ea95b26cc970","59af31c3bbe3a06bd0939a09b7005b28964e2965d3f689f18e3c4eb3134afd45","4f49015b77c7fe35daaf2b89eca2943e0984803e00afd832328d4eb105f8c8f5","fa426c5e9f0c7214b9e21310f044ca81eb25140dacc1dbf84724bd6008a0017e","bf5d835b23a254e2f21f3b2a8d02504739f5f06f6fb957b8e851d9ea0b87ded0","ea5b38c298ce08bae20be60938e0719918d96aa9817dc037a60c951bf6425fd3","a91b3fd4b3fe11073176b237083ff9889a0f3889925809a414fa232ec11acd08","8e114a6e59773df9747822fbd19f9db6af0b3ec399c908cca4b7f75fd2a8a6f8","3793b3c429626f29cee5acbc1bd7ebd20dcff7f8e8b34e05e5fe73850944ad91","89a26c835c143998a3155eedd1b997fd3d5e319200db92d76970f4b82b52f785","fed576c57aa64fd36c153f5d9257f687dcd5fff21f33103c9f6685d9b63520c4","71336d2b229dfe87d375349ad48e56b50497bbe016aa6c5f5ab474c332a47fc4","b3d64e107af520235489c6ae5f27c4ed2d5b1e20bf14400a318459319372fb92","f570553cc117a5b10246f1baa14980d501e86fe29a3e3eb92a4ebc8bb5b586fb","b8a7c792da78d7c358243bc909f2386ded97ee47397aad6fbee8b81cc139e916","fbffe3cd9ee84ff85c569c2099baa96d7795df06c22940c10545488dd1a6fa96","ac02c5780d20a8bdcf91bec4a7d7f67c6ce3027cf25e1ffbc46780c379e499f4","d20cbef7830eb4e327bf0e3693940ed8fc53bdf3e7166a90ff60b7fcd2acdee0","89c67a901ab5e00abb6ae1ca5c97ab9da40d2bdef92413d730e8ada3da2449ab","b84bf8850597b6296f984612ea2775f6c17a51056c78dd05e037d7c5cb1b5c84","1d5613198f43052f404ec0d41155a8a33d6ec11ca3f7c3762422b123a3d79912",{"version":"15581a8f34749737f5c411504386961dbed015730e8959edbe92f898dcedf75a","signature":"39d8d99f59b29f0bb417d844fb0814f5ad47bc221fb502fa4d4a1b2abd8dd217"},"716c3c72272c620c83b73b7f3331e591b245dd1963a3f56b890202dc35e4a922","e929970d3b5f26baa81520defcb14d5736b906bd97c1944117c0b701774fe6b9","039c083e305f3bd6d2a1a79fadefa34e309ffa714a5b6d28d5e466176409fe32","908563083b6bc71fa2c9d13cdf89642cfc2bb2e25bf7ac0c5075c6b7ec0538e8","949ad82b645e715938818b7e88a461b0f449436248cfaf11041e194dcbe55df5","dd51bfc79ecaf436d787354b727c38477d7668799f537ce52c304ef7b7386b44","e2c3158e8c5b09e261905bb377ed06562ace98b9365e327544c925d72980ab95",{"version":"6873402982dc22d2d4435250816d960d1e83f3b33d368a3d172de4267f936591","impliedFormat":99},"35edf813ed85141ce1d820bcbbde57af69c2c5f295ac4ef3ea227948325e2f83","989ef2ce7e7d2b5fb7cb27c624b244ca3212adb649454146293af2dd3f47faec","6a6cbaccf66ec3a6ca2e2011da79a56aeef182f896d668d180372d03a4f15c74","8f0ff0f7f53aa0d040927159e547d2e201d6bf5bf80a9eccbf49b61fcf102f65","c4914ffabcf525b9bb8a93deb96740f8472b0f1657e17e8a674ecbf8ef6daa40","f81feb8c38d8e187025bbfd52bb52cbf250a736fd38570372ae9bbb5ee3e35d9","ba233f0f876ade2fb846230915b0f2e2cd7f2f9c850d0ae5031240b90adc9320","0800cf2618838a7259300ad750a6082625acceab6ae570f3cc86b894fdd8ac2e","82c7ebad97b9e7ea28d09327522976affdf6137d903127b3224943519fdbbeaf","638c696aee97d0a7c2c56599043f24d53e740439da60dc0d1c2656171fad84c8","a823842f755ebb9a5f53f17a1bf58af08e82d025489a738b294ccfe4cdb64f90","43ec53da0e417894fdae2f84ca2861ee785f9cc8054b1355cad458e32e758790","ee1712609c030f93f0193104a41e472b3b17838da6067fa7805478e81332b98c","20d70bea5782e468fb89759369709d156829e090b355915ff28730a506e1e2a1","d3b610f24e0d08a1079f42b995138866ce6f2681ed0b2d435e134d469cb8f67b","efc09ca98d6b6e72bc69f8bbdbfcdb01c16f24ee4fcda39e3add30a3416166dd","ce8f04f229a40d31b90a740e7b74aca3ed76b03b7f1585ca1323f1b80d6f7006","dbe95686b188aeb09b4f3041b2509d5cf543314b57e725372f351eaea25971ee","976c05f92fabbf396a18651da480b6b2d23195b3c9b5b6f37f27c1b5fb286b54","aa6aad25b2e56284705f8594a304ac31b2e74e6db9f67209b149c5882e4b89dd","e05a47f523b7792fa063e687e327bac6f00011da01c032003225c815eca79497","ae0ba394411502f58ba43cfffbbe5d12dbd312c833b3969b16bf1a94ec90e530","d15e9b66b65a440157551cde22c910c2e2b186e6c7f44324e895f291d629117c","ada4a6a5564bb66bc51c9e13bd452d47027a0f18b20d05e4c532d6bdf705f5b2","084e034e45167d15d154b2e7811a281d94885c71b3b01d4769a44f55c0f6f952","111e12ab1b89cb2cdad21ca59ea9de523ac39bd79490149cea43d1f91697b8e0","71860f1efab600e8405761b577df7e870dbfb8415d7899696d3b2128fd00a931","474f6272ee75a64d1e98271ae5b83cf4862adf6c141726433296b463a1c130a3","fe5a46c46f3dea2fb31b76edc5fdc14e3ee051bf4fa95cdf32c97d1b9518ff53","e10eafaac3c15258ed78fbef15a3f8692196f971d53f137e60315e5adf7459a3","39492b021fb0e38a2277b43b075781b34e6f4f189ea5f53ed082372ea96c1dcb","906e1e7266f5495194c95064d02829511c0fced58fb5811180488d7158b3ccb0","4c09210b68020d99169d29a1185e9ce81943bd1e313b703546f652ca02b873ec","95c9f7b62d0b74f41b6f1430b4236e8999b46853d380187bd93df3377aa01048","ecb2768de4faee213a791aa8de3dc951e150ee6c2b7969c33eabe2fadf557caf","7d23e15d7633ee7073067050aacd89c45c7259d21e60c0a990782fdbc1caa4e4","f45cfe5a4f8c43c95c9c11d87a58b105cd216f1ae3f59ec2a1aaa598a9cf52c6","68020d3d42f720106a089dca5c168cf04e5d349089fbc191c36f9cccabcb3c3a","94e34c7d90e04bd1de26495f460aaf1f00e7bb004ffec8797f617ea29ae837a5","7f863c4a7c54be9ac30b0575f918420a38ff2edde87b808e59c4c8902e2fe93e","0043c0a8c6d450739b60f14cf684806ae4241c91f3fca50f172665dd9adfde90","9ec2d2c25f1f8befa23ba16b01c401d73da979dcdda8532aa0600f37edbf743b","7232de6a2a92489a070d7701bc60ae747fb40107563e87eb59096c540c4c40ad","1103186962bccc2e2100b1135a8e288f614bce6617ed8a85170e06a3b69cebf8","16d86d734dd6e6ff0ddc33e0e599da535de9bbc5b63abe3b35050f41c00892a3","cd8ffeab689cf8a4b893cdf152bae8be5526afaa8c2eb4a0819dd3db60e14602","7d9e7e04b576f76dfafbb03eccc7781d7b545450be3b4df7015369a4901090a7","3f08732c3a69da9b77f7e626163bb2b84afad459b844e629e01282312c53d82d","de936b6eabc0ac5efe7656dcadf07e5b3baff23ac51c8ef8d301fe5f0647dcbb","44ee0be70278c636f36b993c239c08f0f01c71e16d083b0be9a70f9a66efff09","1b8cacc68f25d13d3bfff13b9dbf773d52e40dca350697b0c19ceb0bd913c22e","ddfbc2e8c681833765607dcbc38a0fa7c768ed7a7d82cfaab528a049b3a55642","124a30a1afcdb78c582a2cb0f2ab15fd604bc1c97cb5b38146090981b599df01",{"version":"b0237ee676f90a9a7545c1f005abc713c2d646946817b4ff939ae011209ca54b","affectsGlobalScope":true},{"version":"ea8a445ae856033c4027b52f3ed2a225ad841dde1248b9d2f58283671dce372d","affectsGlobalScope":true},"73bd4ebe9409ec75ebb1a8f91f1564b92ee28695c995ea15095fc51e830405ab",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"b8caba62c0d2ef625f31cbb4fde09d851251af2551086ccf068611b0a69efd81","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"e3cf0611709328b449ec13f8c436712d62003620ce480139fae46ce001c2ee9f","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"bf6402a3cfff440801c3ea5835f08784aac18087016534b48741adbcee931921","impliedFormat":1},{"version":"71b110829b8f5e7653352a132544ece2b9a10e93ba1c77453187673bd46f13ee","impliedFormat":1},{"version":"7c0ace9de3109ecdd8ad808dd40a052b82681786c66bb0bff6d848c1fc56a7c4","impliedFormat":1},{"version":"1223780c318ef42fd33ac772996335ed92d57cf7c0fc73178acab5e154971aab","impliedFormat":1},{"version":"0d04cbe88c8a25c2debd2eef03ec5674563e23ca9323fa82ede3577822653bd2","impliedFormat":1},{"version":"aaa70439f135c3fa0a34313de49e94cae3db954c8b8d6af0d56a46c998c2923f","impliedFormat":1},{"version":"4ace083580c1b77eb8ddf4ea915cde605af1a96e426c4c04b897feef1acdb534","impliedFormat":1},{"version":"daf07c1ca8ccfb21ad958833546a4f414c418fe096dcebdbb90b02e12aa5c3a2","impliedFormat":1},{"version":"89ac5224feeb2de76fc52fc2a91c5f6448a98dbe4e8d726ecb1730fa64cd2d30","impliedFormat":1},{"version":"7feb39ba69b3fc6d55faca4f91f06d77d15ffedd3931b0ef7740e8b6fd488b15","impliedFormat":1},{"version":"acf00cfabe8c4de18bea655754ea39c4d04140257556bbf283255b695d00e36f","impliedFormat":1},{"version":"39b70d5f131fcfdeba404ee63aba25f26d8376a73bacd8275fb5a9f06219ac77","impliedFormat":1},{"version":"cdae26c737cf4534eeec210e42eab2d5f0c3855240d8dde3be4aee9194e4e781","impliedFormat":1},{"version":"5aa0c50083d0d9a423a46afaef78c7f42420759cfa038ad40e8b9e6cafc38831","impliedFormat":1},{"version":"10d6a49a99a593678ba4ea6073d53d005adfc383df24a9e93f86bf47de6ed857","impliedFormat":1},{"version":"1b7ea32849a7982047c2e5d372300a4c92338683864c9ab0f5bbd1acadae83a3","impliedFormat":1},{"version":"224083e6fcec1d300229da3d1dafc678c642863996cbfed7290df20954435a55","impliedFormat":1},{"version":"4248ac3167b1a1ce199fda9307abc314b3132527aeb94ec30dbcfe4c6a417b1b","impliedFormat":1},{"version":"633cb8c2c51c550a63bda0e3dec0ad5fa1346d1682111917ad4bc7005d496d8c","impliedFormat":1},{"version":"ca055d26105248f745ea6259b4c498ebeed18c9b772e7f2b3a16f50226ff9078","impliedFormat":1},{"version":"ea6b2badb951d6dfa24bb7d7eb733327e5f9a15fc994d6dc1c54b2c7a83b6a0b","impliedFormat":1},{"version":"03fdf8dba650d830388b9985750d770dd435f95634717f41cea814863a9ac98b","impliedFormat":1},{"version":"6fd08e3ef1568cd0dc735c9015f6765e25143a4a0331d004a29c51b50eec402a","impliedFormat":1},{"version":"2e988cd4d24edac4936449630581c79686c8adac10357eb0cdb410c24f47c7f0","impliedFormat":1},{"version":"b813f62a37886ed986b0f6f8c5bf323b3fcae32c1952b71d75741e74ea9353cf","impliedFormat":1},{"version":"44a1a722038365972b1b52841e1132785bf5d75839dbc6cc1339f2d36f8507a1","impliedFormat":1},{"version":"83fe1053701101ac6d25364696fea50d2ceb2f81d1456bc11e682a20aaeac52e","impliedFormat":1},{"version":"4f228cb2089a5a135a1a8cefe612d5aebcef8258f7dbe3b7c4dad4e26a81ec08","impliedFormat":1},{"version":"7870becb94cbc11d2d01b77c4422589adcba4d8e59f726246d40cd0d129784d8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f70b8328a15ca1d10b1436b691e134a49bc30dcf3183a69bfaa7ba77e1b78ecd","impliedFormat":1},{"version":"d9030fc0c412a31e7e13d189b9ad032b5177c20217add0f24fd3fff0cf272882","impliedFormat":99},{"version":"2be2227c3810dfd84e46674fd33b8d09a4a28ad9cb633ed536effd411665ea1e","impliedFormat":99},{"version":"7f9c8c4fd31e6e0f137ded52f026f97934abcc4624db1c9c8120b91a170798e0","impliedFormat":1},{"version":"957a44f864ab3c182edc747428e8eec1765257deee7fac86c1147eeac897d832","impliedFormat":1},{"version":"3feec212c0aeb91e5a6e62caaf9f128954590210f8c302910ea377c088f6b61a","impliedFormat":99},{"version":"d27eadfc7a0c340fbbb62294e70eb5cf27751e1dcf47ee688ca38dd64d15502c","impliedFormat":99},{"version":"86d818ada2f5f0cfffca153af94205b67ba50f8e36524a413d66652f34ef19af","impliedFormat":99},{"version":"40afd49a15d0bafef682b42664ff21c274e02dcc60052f2df85dd53c70d9394f","impliedFormat":99},{"version":"5a5b1dd91662e93efae28d985e0e44d10f6a7e3c2c2ae8abc29bcfc406cb5310","impliedFormat":99},{"version":"66d0a61b3b0df6c9c2eb09dbe26e3c2aef71d9043fed17cd56de6669cb706325","impliedFormat":99},{"version":"f6692c3a1847d846bc4b7a690ef2ba096b2ca56bea5818f073eb8193ce33b5e1","impliedFormat":99},{"version":"1e4d27cf43aa16d164e958a220fee3c225b9dd146b1912cbc12083263f157ca9","impliedFormat":99},{"version":"a46147f499d4246998d1e44b43beecd2ee04c0a330c35863eaeccc827a737fdf","impliedFormat":1},{"version":"390140c96dcaf0831d24b5408d19af017e3a8f150fed140791d976ac20dd2da7","impliedFormat":99},{"version":"886c87489e99cbe6af5b1d83f147b04f96a2ae499d4302de7f9e4478cb93ccca","impliedFormat":99},{"version":"13e7c1f8ddda39d034935e667f3a314ec8b89b8be18fbd4cd987ea4312b4221f","impliedFormat":99},{"version":"370a3bbb8117e32fd7ae37d318e28cf63251013fe015c5dd382599614a3d5d59","impliedFormat":99},{"version":"daf09fb2571ee9e9251b08237852ed26b67257cb7997358935608f63f9fd2ecb","impliedFormat":99},{"version":"768fd34f23de8dc5f5df6cd45f044bb4193105b5964e4ef734dbfc1a1f8e6223","impliedFormat":1},{"version":"dc18b19797fbc286f2bd51e14eca66fb46bd07c0c567cb40fc04e6e805533850","impliedFormat":99},{"version":"5903ab9ed38b4d4f878e507f76020f75b7fc2285515ebdb7596393ce196eee2f","impliedFormat":99},{"version":"58395463e3fd8b466d5801cd73027f82bbf12e3d90cb4b27538e61ee9ff3427c","impliedFormat":99},{"version":"4d4804f5da06e47254d253a07e82d400c55964ea097016753dbd4372ce0eaab0","impliedFormat":99},{"version":"cf76eeea2b4ec3fe26520cd129cfc32352d1ddb22b6d4ff0c6a709656a4b1b37","impliedFormat":1},{"version":"fea0cb28540b473977c722853998d39d28575fa12e31b3371fcf1f324e3a9fb7","impliedFormat":1},{"version":"ee4ee9bf6c6d276343e7f0bce3a5374800eb4ec6b2d7c70fab6ae3ef840d9777","impliedFormat":1},{"version":"571ba264349552a1111ac0d6a5ed580a41c390aac43a70546c3a7374c77faa71","impliedFormat":1},"06f5c2408e959ccebcbef2989bce4a528a531aeddb4f3c7fb2324c03a00b9b19"],"root":[89,107,[124,146],[1401,1421],[1425,1437],[1445,1448],1450,1451,[1453,1471],[1546,1548],1550,1551,[1566,1612],[2076,2081],2084,[2100,2104],[2186,2211],2226,2227,2229,2230,2239,2240,[2243,2462],2651],"options":{"allowImportingTsExtensions":true,"composite":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[2460,1],[2459,2],[89,3],[92,4],[91,5],[1035,6],[1029,5],[1033,6],[1032,7],[1028,6],[1027,5],[1036,8],[1034,7],[1030,7],[1031,7],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[177,9],[178,9],[179,9],[180,9],[181,9],[182,9],[183,9],[184,9],[185,9],[186,9],[187,9],[188,9],[189,9],[190,9],[191,9],[192,9],[193,9],[194,9],[195,9],[196,9],[197,9],[198,9],[199,9],[200,9],[201,9],[202,9],[203,9],[204,9],[205,9],[206,9],[207,9],[208,9],[209,9],[210,9],[211,9],[212,9],[213,9],[214,9],[215,9],[216,9],[217,9],[218,9],[219,9],[220,9],[221,9],[222,9],[223,9],[224,9],[225,9],[226,9],[227,9],[228,9],[229,9],[230,9],[231,9],[232,9],[233,9],[234,9],[235,9],[236,9],[237,9],[238,9],[239,9],[240,9],[241,9],[242,9],[243,9],[244,9],[245,9],[246,9],[247,9],[248,9],[249,9],[250,9],[251,9],[252,9],[253,9],[254,9],[255,9],[256,9],[257,9],[258,9],[259,9],[260,9],[261,9],[262,9],[263,9],[264,9],[265,9],[266,9],[267,9],[268,9],[269,9],[270,9],[271,9],[272,9],[273,9],[274,9],[275,9],[276,9],[277,9],[278,9],[279,9],[280,9],[281,9],[282,9],[283,9],[284,9],[285,9],[286,9],[287,9],[288,9],[289,9],[290,9],[291,9],[292,9],[293,9],[294,9],[295,9],[296,9],[297,9],[298,9],[299,9],[300,9],[301,9],[302,9],[303,9],[304,9],[305,9],[306,9],[307,9],[459,10],[308,9],[309,9],[310,9],[311,9],[312,9],[313,9],[314,9],[315,9],[316,9],[317,9],[318,9],[319,9],[320,9],[321,9],[322,9],[323,9],[324,9],[325,9],[326,9],[327,9],[328,9],[329,9],[330,9],[331,9],[332,9],[333,9],[334,9],[335,9],[336,9],[337,9],[338,9],[339,9],[340,9],[341,9],[342,9],[343,9],[344,9],[345,9],[346,9],[347,9],[348,9],[349,9],[350,9],[351,9],[352,9],[353,9],[354,9],[355,9],[356,9],[357,9],[358,9],[359,9],[360,9],[361,9],[362,9],[363,9],[364,9],[365,9],[366,9],[367,9],[368,9],[369,9],[370,9],[371,9],[372,9],[373,9],[374,9],[375,9],[376,9],[377,9],[378,9],[379,9],[380,9],[381,9],[382,9],[383,9],[384,9],[385,9],[386,9],[387,9],[388,9],[389,9],[390,9],[391,9],[392,9],[393,9],[394,9],[395,9],[396,9],[397,9],[398,9],[399,9],[400,9],[401,9],[402,9],[403,9],[404,9],[405,9],[406,9],[407,9],[408,9],[409,9],[410,9],[411,9],[412,9],[413,9],[414,9],[415,9],[416,9],[417,9],[418,9],[419,9],[420,9],[421,9],[422,9],[423,9],[424,9],[425,9],[426,9],[427,9],[428,9],[429,9],[430,9],[431,9],[432,9],[433,9],[434,9],[435,9],[436,9],[437,9],[438,9],[439,9],[440,9],[441,9],[442,9],[443,9],[444,9],[445,9],[446,9],[447,9],[448,9],[449,9],[450,9],[451,9],[452,9],[453,9],[454,9],[455,9],[456,9],[457,9],[458,9],[460,11],[986,12],[988,13],[985,5],[987,5],[2241,9],[1931,14],[1927,15],[1914,5],[1930,16],[1923,17],[1921,18],[1920,18],[1919,17],[1916,18],[1917,17],[1925,19],[1918,18],[1915,17],[1922,18],[1928,20],[1929,21],[1924,22],[1926,18],[826,23],[822,24],[809,5],[825,25],[818,26],[816,27],[815,27],[814,26],[811,27],[812,26],[820,28],[813,27],[810,26],[817,27],[823,29],[824,30],[819,31],[821,27],[2098,32],[2095,33],[2094,34],[2085,5],[2086,5],[2088,35],[2087,5],[2097,36],[2089,34],[2090,37],[2093,38],[2091,5],[2092,34],[2096,5],[1639,39],[1613,9],[1614,40],[1615,9],[1616,9],[1617,41],[2017,42],[1635,5],[1638,5],[1636,43],[1991,44],[1990,45],[1989,5],[1973,46],[1972,9],[1975,47],[1976,48],[1974,49],[1978,50],[1977,5],[1981,51],[1982,52],[1980,51],[1979,5],[2011,53],[2010,9],[1983,9],[2013,54],[1993,55],[1992,9],[1984,5],[1986,56],[1985,5],[1988,57],[1987,49],[1995,9],[2009,58],[2008,59],[2007,9],[1994,9],[1998,9],[2002,60],[2000,61],[2001,9],[1999,9],[1997,62],[1996,5],[2004,63],[2003,5],[2006,64],[2005,9],[1955,5],[2015,65],[2014,9],[2016,66],[1964,67],[1963,68],[1962,69],[1968,70],[1965,9],[1966,71],[1967,71],[1969,72],[1970,73],[1961,74],[1971,75],[2012,5],[1825,76],[1760,77],[1761,78],[1762,79],[1763,80],[1764,81],[1765,82],[1766,83],[1767,84],[1768,85],[1769,86],[1770,87],[1771,88],[1772,89],[1773,90],[1774,91],[1775,92],[1815,93],[1776,94],[1777,95],[1778,96],[1779,97],[1780,98],[1781,99],[1782,100],[1783,101],[1784,102],[1785,103],[1786,104],[1787,105],[1788,106],[1789,107],[1790,108],[1791,109],[1792,110],[1793,111],[1794,112],[1795,113],[1796,114],[1797,115],[1798,116],[1799,117],[1800,118],[1801,119],[1802,120],[1803,121],[1804,122],[1805,123],[1806,124],[1807,125],[1808,126],[1809,127],[1810,128],[1811,129],[1812,130],[1813,131],[1814,132],[1824,133],[1749,5],[1755,134],[1757,135],[1759,136],[1816,137],[1817,136],[1818,136],[1819,138],[1823,139],[1820,136],[1821,136],[1822,136],[1826,140],[1827,141],[1828,142],[1829,142],[1830,143],[1831,142],[1832,142],[1833,144],[1834,142],[1835,145],[1836,145],[1837,145],[1838,146],[1839,145],[1840,147],[1841,142],[1842,145],[1843,143],[1844,146],[1845,142],[1846,142],[1847,143],[1848,146],[1849,146],[1850,143],[1851,142],[1852,148],[1853,149],[1854,143],[1855,143],[1856,145],[1857,142],[1858,142],[1859,143],[1860,142],[1877,150],[1861,142],[1862,141],[1863,141],[1864,141],[1865,145],[1866,145],[1867,146],[1868,146],[1869,143],[1870,141],[1871,141],[1872,151],[1873,152],[1874,142],[1875,141],[1876,153],[1913,154],[1751,76],[1883,155],[1878,156],[1879,156],[1880,156],[1881,157],[1882,158],[1754,159],[1753,159],[1758,148],[1884,160],[1752,76],[1888,161],[1885,162],[1886,162],[1887,163],[1889,141],[1756,164],[1890,145],[1891,146],[1892,5],[1893,5],[1894,5],[1895,5],[1896,5],[1897,5],[1912,165],[1898,5],[1899,5],[1900,5],[1901,5],[1902,5],[1903,5],[1904,5],[1905,5],[1906,5],[1907,5],[1908,5],[1909,5],[1910,5],[1911,5],[1933,166],[1934,167],[1935,168],[1939,166],[1940,169],[1941,170],[1747,171],[1746,172],[1750,173],[1748,174],[1936,175],[1937,176],[1938,177],[1942,178],[1948,179],[1943,9],[1944,9],[1945,180],[1946,181],[1947,180],[2225,182],[2222,183],[2221,184],[2212,5],[2213,5],[2215,185],[2214,5],[2224,186],[2216,184],[2217,187],[2220,188],[2218,5],[2219,184],[2223,5],[2567,5],[2148,5],[471,189],[472,189],[473,189],[474,189],[475,189],[476,189],[477,189],[478,189],[479,189],[480,189],[481,189],[482,189],[483,189],[484,189],[485,189],[486,189],[487,189],[488,189],[489,189],[490,189],[491,189],[492,189],[493,189],[494,189],[495,189],[496,189],[497,189],[498,189],[499,189],[500,189],[501,189],[502,189],[503,189],[504,189],[505,189],[506,189],[507,189],[508,189],[509,189],[510,189],[511,189],[512,189],[513,189],[514,189],[515,189],[516,189],[517,189],[518,189],[519,189],[520,189],[521,189],[522,189],[523,189],[524,189],[525,189],[526,189],[527,189],[528,189],[529,189],[530,189],[531,189],[532,189],[533,189],[534,189],[535,189],[536,189],[537,189],[538,189],[539,189],[540,189],[541,189],[542,189],[543,189],[544,189],[545,189],[546,189],[547,189],[548,189],[549,189],[550,189],[551,189],[552,189],[553,189],[554,189],[555,189],[556,189],[557,189],[558,189],[559,189],[560,189],[561,189],[562,189],[563,189],[564,189],[565,189],[566,189],[567,189],[775,190],[568,189],[569,189],[570,189],[571,189],[572,189],[573,189],[574,189],[575,189],[576,189],[577,189],[578,189],[579,189],[580,189],[581,189],[582,189],[583,189],[584,189],[585,189],[586,189],[587,189],[588,189],[589,189],[590,189],[591,189],[592,189],[593,189],[594,189],[595,189],[596,189],[597,189],[598,189],[599,189],[600,189],[601,189],[602,189],[603,189],[604,189],[605,189],[606,189],[607,189],[608,189],[609,189],[610,189],[611,189],[612,189],[613,189],[614,189],[615,189],[616,189],[617,189],[618,189],[619,189],[620,189],[621,189],[622,189],[623,189],[624,189],[625,189],[626,189],[627,189],[628,189],[629,189],[630,189],[631,189],[632,189],[633,189],[634,189],[635,189],[636,189],[637,189],[638,189],[639,189],[640,189],[641,189],[642,189],[643,189],[644,189],[645,189],[646,189],[647,189],[648,189],[649,189],[650,189],[651,189],[652,189],[653,189],[654,189],[655,189],[656,189],[657,189],[658,189],[659,189],[660,189],[661,189],[662,189],[663,189],[664,189],[665,189],[666,189],[667,189],[668,189],[669,189],[670,189],[671,189],[672,189],[673,189],[674,189],[675,189],[676,189],[677,189],[678,189],[679,189],[680,189],[681,189],[682,189],[683,189],[684,189],[685,189],[686,189],[687,189],[688,189],[689,189],[690,189],[691,189],[692,189],[693,189],[694,189],[695,189],[696,189],[697,189],[698,189],[699,189],[700,189],[701,189],[702,189],[703,189],[704,189],[705,189],[706,189],[707,189],[708,189],[709,189],[710,189],[711,189],[712,189],[713,189],[714,189],[715,189],[716,189],[717,189],[718,189],[719,189],[720,189],[721,189],[722,189],[723,189],[724,189],[725,189],[726,189],[727,189],[728,189],[729,189],[730,189],[731,189],[732,189],[733,189],[734,189],[735,189],[736,189],[737,189],[738,189],[739,189],[740,189],[741,189],[742,189],[743,189],[744,189],[745,189],[746,189],[747,189],[748,189],[749,189],[750,189],[751,189],[752,189],[753,189],[754,189],[755,189],[756,189],[757,189],[758,189],[759,189],[760,189],[761,189],[762,189],[763,189],[764,189],[765,189],[766,189],[767,189],[768,189],[769,189],[770,189],[771,189],[772,189],[773,189],[774,189],[470,191],[2513,192],[2514,192],[2515,193],[2468,194],[2516,195],[2517,196],[2518,197],[2463,5],[2466,198],[2464,5],[2465,5],[2519,199],[2520,200],[2521,201],[2522,202],[2523,203],[2524,204],[2525,204],[2526,205],[2527,206],[2528,207],[2529,208],[2469,5],[2467,5],[2530,209],[2531,210],[2532,211],[2566,212],[2533,213],[2534,5],[2535,214],[2536,215],[2537,216],[2538,217],[2539,218],[2540,219],[2541,220],[2542,221],[2543,222],[2544,222],[2545,223],[2546,5],[2547,224],[2548,225],[2550,226],[2549,227],[2551,228],[2552,229],[2553,230],[2554,231],[2555,232],[2556,233],[2557,234],[2558,235],[2559,236],[2560,237],[2561,238],[2562,239],[2563,240],[2470,5],[2471,5],[2472,5],[2510,241],[2511,5],[2512,5],[2564,242],[2565,243],[2648,244],[2174,245],[2173,245],[2632,246],[2629,247],[2631,248],[2630,249],[93,250],[94,251],[2627,252],[95,253],[96,254],[98,255],[90,5],[779,256],[105,257],[778,9],[104,9],[2152,258],[2166,259],[2167,260],[2168,261],[2172,262],[2153,263],[2179,264],[2180,265],[2171,266],[2157,267],[2161,268],[2151,269],[2159,270],[2160,271],[2158,266],[2156,269],[2154,272],[2170,273],[2155,274],[2176,275],[2177,276],[2175,277],[2150,278],[2169,5],[2181,279],[2183,280],[2184,281],[2109,5],[2107,5],[2108,3],[2105,5],[2182,5],[2106,5],[1145,282],[1144,5],[110,5],[1452,5],[97,5],[869,5],[868,283],[867,5],[2149,5],[2232,284],[2234,285],[1441,286],[2236,287],[1443,288],[2238,289],[2231,290],[2233,290],[1440,290],[1442,5],[2235,290],[2237,290],[1439,5],[795,291],[794,292],[793,293],[799,294],[796,295],[797,296],[798,297],[804,298],[802,9],[803,299],[801,300],[800,301],[1392,302],[1391,303],[1390,304],[843,305],[839,306],[841,307],[833,308],[840,309],[834,310],[842,311],[847,312],[844,9],[845,313],[846,314],[851,315],[848,316],[849,317],[850,318],[858,319],[853,320],[856,321],[852,295],[855,322],[854,322],[857,323],[865,324],[862,325],[863,326],[859,327],[861,328],[860,329],[864,330],[874,331],[866,316],[870,332],[871,333],[872,334],[873,335],[878,336],[875,316],[876,337],[877,338],[885,339],[880,316],[883,340],[879,316],[882,341],[881,340],[884,342],[892,343],[889,344],[890,345],[891,346],[888,347],[887,348],[886,349],[1004,350],[1001,351],[1002,352],[1003,353],[1007,354],[1006,355],[1005,356],[1014,357],[1013,358],[1011,359],[1010,360],[1009,361],[1008,358],[1012,362],[1017,363],[1016,364],[1015,365],[1026,366],[1025,9],[1024,367],[1019,368],[1022,369],[1018,370],[1021,371],[1020,371],[1023,372],[1040,373],[1039,374],[1038,375],[1037,376],[1050,377],[1049,378],[1048,379],[1090,380],[1086,381],[1087,382],[1088,383],[1089,384],[1096,385],[1092,9],[1091,9],[1093,9],[1094,9],[1095,9],[1099,386],[1098,387],[1097,388],[1113,389],[1108,390],[1111,391],[1112,392],[1110,393],[1109,394],[1117,395],[1115,396],[1116,397],[1114,398],[1121,399],[1120,316],[1119,400],[1118,401],[1056,402],[1055,390],[1051,403],[1053,404],[1052,405],[1054,405],[1124,406],[1123,407],[1122,408],[1127,409],[1126,410],[1125,411],[1137,412],[1135,413],[1136,9],[1131,414],[1132,415],[1133,416],[1134,417],[1141,418],[1138,316],[1139,419],[1140,420],[1154,421],[1148,422],[1147,423],[1152,424],[1143,425],[1151,426],[1153,427],[1149,428],[1150,422],[1146,429],[1142,430],[1130,431],[1129,432],[1128,433],[1157,434],[1156,435],[1155,436],[1160,437],[1159,438],[1158,439],[1393,440],[1374,441],[1373,9],[1163,442],[1162,443],[1161,444],[1167,445],[1164,446],[1165,447],[1166,448],[808,449],[805,450],[806,451],[807,452],[1062,453],[1061,454],[1060,455],[1379,456],[1378,457],[1376,458],[1377,457],[1375,459],[1366,460],[1363,461],[1365,462],[1364,463],[1362,5],[1177,464],[1175,465],[1171,9],[1174,466],[1170,467],[1173,468],[1168,469],[1172,316],[1176,5],[1169,470],[1382,471],[1380,472],[1381,473],[1059,474],[1058,475],[1057,476],[1385,477],[1384,478],[1383,479],[1179,480],[1178,481],[1182,482],[1181,483],[1180,484],[1185,485],[1184,9],[1183,316],[1188,486],[1187,487],[1186,488],[1389,489],[1388,9],[1387,490],[1386,491],[838,492],[835,493],[830,9],[827,494],[837,495],[836,496],[829,497],[828,498],[832,499],[831,500],[1191,501],[1190,502],[1189,503],[1199,504],[1198,505],[1195,506],[1194,507],[1197,508],[1196,505],[1193,509],[1192,510],[1202,511],[1201,512],[1200,513],[1205,514],[1204,515],[1203,516],[1209,517],[1208,9],[1207,518],[1206,519],[1076,520],[1075,9],[1071,521],[1070,522],[1073,523],[1072,524],[1074,524],[1361,525],[1360,526],[1359,527],[1358,5],[1234,528],[1225,529],[1221,530],[1219,5],[1224,531],[1222,532],[1223,533],[1233,534],[1232,9],[1226,316],[1231,535],[1229,536],[1228,537],[1230,538],[1227,539],[1239,540],[1238,541],[1237,542],[1236,543],[1235,544],[1245,545],[1243,546],[1244,547],[1241,316],[1242,548],[1240,549],[1249,550],[1247,9],[1246,551],[1248,552],[1372,553],[1371,554],[1370,555],[1369,556],[1368,557],[1367,9],[1252,558],[1251,559],[1250,560],[1258,561],[1256,562],[1255,563],[1254,564],[1253,565],[1257,5],[1261,566],[1260,567],[1259,568],[1294,569],[1284,9],[1273,570],[1264,571],[1293,572],[1274,573],[1281,574],[1276,575],[1271,576],[1279,577],[1282,578],[1272,579],[1280,580],[1290,581],[1289,582],[1278,583],[1287,584],[1286,585],[1269,586],[1288,587],[1262,5],[1266,588],[1275,589],[1270,590],[1277,570],[1285,5],[1292,591],[1265,592],[1268,593],[1283,594],[1267,595],[1263,596],[1291,597],[1085,598],[1081,599],[1064,600],[1063,601],[1079,602],[1069,602],[1083,603],[1080,604],[1065,605],[1066,606],[1082,607],[1067,608],[1084,609],[1068,610],[1302,611],[1301,612],[1298,613],[1297,614],[1299,615],[1296,616],[1295,617],[1300,618],[1000,619],[999,620],[998,621],[1305,622],[1303,623],[1304,624],[1107,625],[1101,626],[1100,627],[1104,628],[1105,629],[1102,630],[1106,631],[1103,632],[1308,633],[1307,634],[1306,635],[1313,636],[1311,637],[1310,638],[1309,316],[1312,639],[1047,640],[1046,641],[1043,642],[1042,643],[1045,644],[1044,645],[1041,646],[1357,647],[1351,648],[1355,649],[1356,650],[1354,651],[1353,652],[1352,653],[1319,654],[1316,655],[1314,656],[1318,657],[1317,656],[1331,658],[1329,659],[1330,660],[1336,661],[1335,662],[1334,663],[1333,664],[1332,665],[1328,666],[1326,667],[1323,668],[1322,669],[1320,670],[1327,5],[1324,671],[1321,672],[1325,673],[1347,674],[1337,675],[1346,9],[1341,676],[1340,677],[1345,678],[1344,679],[1343,680],[1342,681],[1339,682],[1338,683],[1220,684],[1217,685],[1218,686],[1213,687],[1214,688],[1212,688],[1210,5],[1216,9],[1215,687],[1211,689],[1350,690],[1349,691],[1348,692],[147,5],[152,5],[148,5],[149,5],[153,5],[150,5],[151,5],[1394,693],[1395,9],[1398,694],[1078,695],[1396,9],[1397,9],[997,696],[996,9],[893,9],[894,9],[994,9],[990,9],[982,316],[895,697],[896,9],[995,316],[979,5],[989,698],[993,459],[897,9],[983,9],[978,459],[981,9],[965,699],[967,700],[968,9],[969,316],[966,9],[991,9],[980,9],[972,494],[970,9],[971,9],[973,5],[992,623],[974,9],[975,9],[976,5],[977,5],[984,9],[1400,701],[964,702],[899,5],[900,5],[901,5],[902,5],[903,5],[904,5],[905,5],[906,5],[907,5],[908,5],[909,5],[910,5],[898,5],[911,5],[912,5],[913,5],[914,5],[915,5],[916,5],[917,5],[918,5],[919,5],[920,5],[921,5],[922,5],[923,5],[924,5],[925,5],[926,5],[927,5],[928,5],[929,5],[930,5],[931,5],[932,5],[933,5],[934,5],[935,5],[936,5],[937,5],[938,5],[939,5],[940,5],[941,5],[942,5],[943,5],[944,5],[945,5],[946,5],[947,5],[948,5],[949,5],[950,5],[951,5],[952,5],[953,5],[954,5],[955,5],[956,5],[957,5],[958,5],[959,5],[960,5],[106,5],[962,5],[963,5],[961,5],[1399,703],[777,704],[780,697],[158,5],[163,5],[159,5],[164,705],[160,5],[161,5],[162,9],[790,5],[781,5],[782,253],[783,5],[792,706],[791,5],[784,707],[785,5],[786,5],[787,253],[789,5],[788,253],[154,708],[165,5],[461,709],[469,710],[463,711],[468,712],[156,713],[157,714],[155,5],[464,9],[465,715],[462,9],[466,716],[467,9],[2572,5],[2242,717],[1449,5],[1473,718],[1474,719],[1472,5],[1528,720],[1480,721],[1482,722],[1475,718],[1529,723],[1481,724],[1486,725],[1487,724],[1488,726],[1489,724],[1490,727],[1491,726],[1492,724],[1493,724],[1525,728],[1520,729],[1521,724],[1522,724],[1494,724],[1495,724],[1523,724],[1496,724],[1516,724],[1519,724],[1518,724],[1517,724],[1497,724],[1498,724],[1499,725],[1500,724],[1501,724],[1514,724],[1503,724],[1502,724],[1526,724],[1505,724],[1524,724],[1504,724],[1515,724],[1507,728],[1508,724],[1510,726],[1509,724],[1511,724],[1527,724],[1512,724],[1513,724],[1478,730],[1477,5],[1483,731],[1485,732],[1479,5],[1484,733],[1506,733],[1476,734],[1531,735],[1538,736],[1539,736],[1541,737],[1540,736],[1530,738],[1544,739],[1533,740],[1535,741],[1543,742],[1536,743],[1534,744],[1542,745],[1537,746],[1532,747],[2178,5],[1960,748],[1959,749],[1956,5],[1957,750],[1958,751],[2600,5],[2636,5],[1545,5],[776,752],[2625,5],[2633,5],[1077,5],[1741,5],[109,753],[2589,754],[2587,755],[2588,756],[2576,757],[2577,755],[2584,758],[2575,759],[2580,760],[2590,5],[2581,761],[2586,762],[2592,763],[2591,764],[2574,765],[2582,766],[2583,767],[2578,768],[2585,754],[2579,769],[1742,770],[1745,771],[1743,171],[1744,772],[2569,773],[2568,774],[2613,775],[2594,5],[2614,776],[2596,777],[2621,778],[2615,5],[2617,779],[2618,779],[2619,780],[2616,5],[2620,781],[2599,782],[2597,5],[2598,783],[2612,784],[2595,5],[2610,785],[2601,786],[2602,787],[2603,787],[2604,786],[2611,788],[2605,787],[2606,785],[2607,786],[2608,787],[2609,786],[2163,789],[2162,790],[2165,791],[2164,792],[2110,790],[2129,793],[2122,5],[2113,794],[2111,790],[2114,790],[2112,795],[2115,790],[2117,790],[2116,790],[2119,790],[2118,790],[2121,790],[2120,790],[2123,796],[2124,790],[2128,797],[2125,798],[2126,790],[2127,790],[2145,799],[2131,799],[2139,799],[2130,5],[2147,800],[2141,801],[2143,5],[2146,802],[2134,803],[2135,803],[2137,803],[2133,804],[2140,805],[2136,803],[2132,803],[2142,799],[2144,806],[2138,807],[2573,5],[2637,808],[1932,809],[1565,810],[1552,5],[1562,5],[1558,5],[1559,5],[1553,5],[1563,5],[1564,5],[1561,5],[1557,5],[1556,5],[1560,811],[1554,5],[1555,5],[1626,812],[1625,9],[1671,9],[1620,9],[1621,5],[1622,813],[1690,9],[1691,814],[1692,9],[1694,815],[1693,9],[1627,9],[1695,9],[1696,9],[1724,816],[1725,817],[1720,9],[1697,818],[1698,818],[1700,819],[1699,820],[1701,9],[1702,818],[1726,9],[1728,821],[1704,822],[1703,9],[1715,9],[1716,818],[1717,818],[1718,818],[1729,816],[1705,9],[1633,823],[1630,9],[1631,824],[1632,5],[1624,825],[1623,5],[1672,9],[1719,9],[1727,826],[1643,827],[1641,828],[1642,829],[1670,830],[1722,5],[1723,831],[1708,832],[1675,833],[1676,834],[1677,820],[1678,835],[1730,9],[1731,836],[1679,820],[1680,837],[1681,838],[1732,820],[1733,839],[1734,840],[1735,841],[1668,842],[1669,843],[1709,820],[1710,844],[1736,845],[1737,846],[1649,9],[1682,820],[1684,847],[1683,820],[1685,848],[1687,849],[1619,850],[1739,851],[1738,852],[1950,853],[1949,854],[1740,5],[1952,855],[1951,826],[1711,856],[1712,857],[1629,858],[1628,9],[1689,859],[1688,820],[1714,860],[1713,861],[1953,862],[1954,863],[1634,864],[1674,865],[1673,866],[1706,867],[1721,868],[1707,5],[1655,830],[1661,5],[1660,869],[1664,5],[1648,5],[1650,845],[1658,870],[1659,5],[1646,871],[1647,872],[1637,5],[1644,873],[1667,874],[1652,875],[1618,5],[1640,876],[1657,5],[1663,877],[1662,9],[1645,826],[1656,878],[1653,5],[1651,5],[1666,879],[1654,830],[1665,5],[1686,5],[80,5],[81,5],[15,5],[13,5],[14,5],[19,5],[18,5],[2,5],[20,5],[21,5],[22,5],[23,5],[24,5],[25,5],[26,5],[27,5],[3,5],[28,5],[29,5],[4,5],[30,5],[34,5],[31,5],[32,5],[33,5],[35,5],[36,5],[37,5],[5,5],[38,5],[39,5],[40,5],[41,5],[6,5],[45,5],[42,5],[43,5],[44,5],[46,5],[7,5],[47,5],[52,5],[53,5],[48,5],[49,5],[50,5],[51,5],[8,5],[57,5],[54,5],[55,5],[56,5],[58,5],[9,5],[59,5],[60,5],[61,5],[63,5],[62,5],[64,5],[65,5],[10,5],[66,5],[67,5],[68,5],[11,5],[69,5],[70,5],[71,5],[72,5],[73,5],[1,5],[74,5],[75,5],[12,5],[78,5],[77,5],[82,5],[76,5],[79,5],[17,5],[16,5],[2626,5],[2488,880],[2498,881],[2487,880],[2508,882],[2479,883],[2478,884],[2507,244],[2501,885],[2506,886],[2481,887],[2495,888],[2480,889],[2504,890],[2476,891],[2475,244],[2505,892],[2477,893],[2482,894],[2483,5],[2486,894],[2473,5],[2509,895],[2499,896],[2490,897],[2491,898],[2493,899],[2489,900],[2492,901],[2502,244],[2484,902],[2485,903],[2494,904],[2474,905],[2497,896],[2496,894],[2500,5],[2503,906],[2638,907],[2634,908],[2635,909],[2640,910],[2641,911],[2639,5],[2645,912],[2644,913],[2646,914],[2643,915],[2647,916],[2649,917],[2650,916],[88,918],[2624,919],[2571,920],[2570,921],[84,921],[83,5],[85,922],[86,5],[87,923],[2622,924],[2593,5],[2623,925],[2228,5],[1315,5],[1438,9],[108,9],[1444,926],[102,9],[103,927],[2628,249],[99,928],[100,929],[2185,9],[2642,5],[101,572],[2099,930],[2083,39],[2082,5],[2050,931],[2049,932],[2048,5],[2032,933],[2031,9],[2034,934],[2035,935],[2033,936],[2037,937],[2036,5],[2040,938],[2041,939],[2039,938],[2038,5],[2070,940],[2069,9],[2042,9],[2072,941],[2052,942],[2051,9],[2043,5],[2045,943],[2044,5],[2047,944],[2046,936],[2054,9],[2068,945],[2067,946],[2066,9],[2053,9],[2057,9],[2061,947],[2059,948],[2060,9],[2058,9],[2056,949],[2055,5],[2063,950],[2062,5],[2065,951],[2064,9],[2018,5],[2074,952],[2073,9],[2075,953],[2027,954],[2026,955],[2025,956],[2028,957],[2029,958],[2024,959],[2030,960],[2071,5],[2023,961],[2022,962],[2019,5],[2020,963],[2021,964],[112,965],[113,966],[111,967],[114,968],[115,969],[116,970],[117,971],[118,972],[119,973],[120,974],[121,975],[122,976],[123,977],[1424,5],[1423,978],[1422,5],[1549,979],[1579,980],[1597,980],[1587,980],[1588,980],[1598,980],[1599,980],[1435,980],[1600,980],[1581,980],[1589,980],[1427,980],[1425,980],[1431,980],[1453,981],[1590,980],[1550,980],[1467,980],[1591,980],[1434,980],[1601,980],[1602,980],[1461,980],[1603,980],[1604,980],[1605,980],[1592,980],[1593,980],[1594,980],[1595,980],[1606,980],[1607,980],[1608,980],[1609,980],[146,980],[1610,980],[1611,980],[1596,980],[1433,980],[1612,980],[127,982],[1583,983],[2077,984],[2078,985],[2100,986],[1582,987],[2101,988],[2102,989],[2103,990],[2104,989],[2192,991],[2193,992],[2194,989],[2195,993],[2197,994],[2198,995],[2196,996],[2199,997],[2201,998],[2202,999],[2200,1000],[2205,1001],[2203,999],[2206,1002],[2204,999],[2208,1003],[2187,1004],[2188,1005],[2190,1006],[2191,1007],[2189,989],[1468,1008],[2209,1009],[2210,989],[2211,988],[2186,1010],[1471,1011],[1470,1000],[2076,1012],[1546,1013],[1455,1014],[2226,1015],[124,1000],[134,1000],[107,1000],[128,1000],[125,1000],[126,1000],[2227,1016],[2207,1000],[1415,572],[143,1017],[1436,572],[139,1018],[2229,1019],[2230,1020],[1585,572],[2239,1021],[2240,1022],[2243,1023],[2245,1024],[2247,1025],[2248,572],[1416,1026],[140,1027],[141,1026],[142,988],[1403,1028],[144,1029],[145,1026],[1402,1030],[1404,1031],[137,1032],[138,1033],[1410,1034],[1405,1035],[1407,1036],[1408,1037],[1409,1038],[1411,1039],[1586,1040],[1584,1041],[2246,1018],[2249,1042],[1573,1043],[1572,1044],[2244,1045],[1580,1046],[130,1047],[136,1048],[133,1049],[132,1050],[1446,1000],[131,1000],[2079,1000],[2080,1000],[2250,1000],[1469,1000],[1568,572],[2251,1000],[1401,1051],[2252,572],[1457,1052],[2084,1000],[1454,1053],[1437,1054],[1576,1055],[1574,1056],[1578,1057],[1575,1058],[135,1059],[2081,1000],[1406,1060],[129,1000],[1577,1000],[1419,1000],[1420,1061],[1418,1062],[1417,1063],[2253,1064],[2254,1065],[2255,1066],[2256,1067],[2257,1068],[2258,1069],[2259,1070],[2260,1071],[2261,1072],[2262,1073],[2263,1074],[2269,1075],[2267,1076],[2266,1077],[2265,1078],[2268,1079],[2264,1080],[2271,1081],[2270,1082],[2272,1081],[2273,1081],[2274,1083],[2275,1084],[2276,1085],[2277,1086],[2278,1087],[2279,992],[2280,1086],[2281,1088],[2282,1089],[2283,1090],[2284,1091],[2290,1092],[1464,1000],[2287,1092],[2288,1093],[1465,1094],[2285,1095],[2286,1096],[2289,1097],[2291,1098],[2292,1099],[2300,1100],[2296,1101],[2301,1102],[2294,989],[1429,1103],[2302,1104],[2295,1100],[2297,1105],[2298,1106],[2304,1107],[2305,1105],[2306,1108],[2303,1109],[2308,1110],[2309,1111],[2310,1112],[2307,1000],[2312,1113],[2313,1114],[2314,1115],[2311,1000],[1428,1000],[2316,1116],[2317,1117],[2318,1118],[2315,1000],[2320,1119],[2321,1120],[2322,1121],[2319,1000],[2324,1122],[2325,1123],[2326,1124],[2323,1000],[2328,1125],[2329,1126],[2330,1127],[2327,1000],[2332,1128],[2333,989],[2334,1129],[2331,1000],[2336,1130],[2337,1131],[2335,1000],[2339,1132],[2340,989],[2341,1133],[2338,1000],[2343,1134],[2344,1135],[2345,1136],[2342,1000],[2347,1137],[2348,989],[2349,1138],[2346,1000],[2350,1139],[2293,1140],[1430,1141],[2352,1142],[2351,988],[2353,1143],[2299,1144],[2355,1145],[2358,1146],[2356,1147],[2357,1148],[2354,1149],[2359,1150],[2360,1151],[1426,1152],[2361,1153],[2362,1150],[1414,1154],[1413,1154],[1412,1155],[2363,1156],[1432,1157],[2364,1158],[2365,1159],[2366,1160],[2374,1161],[2375,1162],[2367,1163],[2372,1164],[2369,1165],[2368,1166],[2370,1167],[2371,1168],[2373,1169],[2376,1170],[2377,1170],[2378,1171],[2379,1172],[2380,1173],[2382,1089],[2381,1174],[2383,1175],[2384,1170],[2385,1000],[2386,1176],[2387,1177],[2388,989],[2389,1178],[2390,1179],[2391,1180],[2392,1181],[2393,1182],[2394,1183],[2395,1184],[2396,1185],[2397,1186],[1462,1187],[2398,1188],[2399,1189],[2400,1190],[2401,1191],[2402,1192],[2403,1193],[2404,1194],[2405,1195],[2407,1196],[2406,5],[2408,1197],[2409,1198],[2410,1197],[2411,1199],[2412,1200],[2413,1201],[2414,1202],[2415,1203],[2416,1204],[2417,1205],[2418,1206],[2419,1207],[2420,1208],[2421,1209],[2422,1210],[2423,1211],[2424,1212],[2425,1213],[2426,1214],[2427,1215],[2428,1216],[2429,1217],[2430,1218],[2431,1219],[2432,1220],[2433,1221],[2437,1222],[2436,1223],[2439,1224],[2434,989],[2435,1225],[2438,1223],[2442,1226],[2440,1227],[2441,1228],[2443,1229],[1551,1230],[1460,1231],[1459,1232],[1566,1233],[2445,1234],[1456,1235],[1448,1236],[1447,1237],[1445,1238],[2446,1092],[2447,1092],[1458,1239],[1570,1240],[1569,1241],[1466,1242],[1451,1243],[1450,1244],[2448,1245],[1463,1092],[1548,1246],[1547,1247],[2444,1248],[1567,1249],[1571,1250],[2449,1251],[2450,989],[2451,1252],[2452,989],[2453,989],[2454,989],[2455,989],[2456,1253],[2457,1254],[1421,1255],[2458,1256],[2461,5],[2462,1257],[2651,1258]],"semanticDiagnosticsPerFile":[[1432,[{"start":1799,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type '\"\" | \"info\" | \"danger\"' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type '\"\"' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]},{"start":7767,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[1450,[{"start":4562,"length":16,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4647,"length":12,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4725,"length":9,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":4800,"length":9,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554},{"start":5010,"length":19,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554}]],[2078,[{"start":1300,"length":5,"messageText":"'attrs' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.","category":1,"code":7022}]],[2079,[{"start":10172,"length":13,"code":2339,"category":1,"messageText":"Property 'captureStream' does not exist on type 'HTMLVideoElement'."}]],[2192,[{"start":888,"length":28,"code":7016,"category":1,"messageText":{"messageText":"Could not find a declaration file for module '@wangeditor/editor-for-vue'. 'D:/web/zyt/admin/node_modules/.pnpm/@wangeditor+editor-for-vue@_d49ef1161b4f4b880c450fdbfe3a0001/node_modules/@wangeditor/editor-for-vue/dist/index.esm.js' implicitly has an 'any' type.","category":1,"code":7016,"next":[{"info":{"moduleReference":"@wangeditor/editor-for-vue","mode":99}}]}}]],[2259,[{"start":8667,"length":6,"code":2339,"category":1,"messageText":"Property 'remark' does not exist on type 'never'."}]],[2286,[{"start":96679,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ name: any; code: any; children: any; }[]' is not assignable to type 'never[]'.","category":1,"code":2322,"next":[{"messageText":"Type '{ name: any; code: any; children: any; }' is not assignable to type 'never'.","category":1,"code":2322}]}},{"start":96947,"length":989,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":97951,"length":471,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":98437,"length":471,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":98923,"length":803,"code":2322,"category":1,"messageText":"Type '{ name: string; children: { name: string; children: { name: string; }[]; }[]; }' is not assignable to type 'never'."},{"start":107436,"length":17,"messageText":"Cannot find name 'searchPatientsAPI'.","category":1,"code":2304},{"start":60888,"length":6,"code":2322,"category":1,"messageText":{"messageText":"Type '(value: string[]) => void' is not assignable to type '(value: CascaderValue | null | undefined) => any'.","category":1,"code":2322,"next":[{"messageText":"Types of parameters 'value' and 'value' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'CascaderValue | null | undefined' is not assignable to type 'string[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'undefined' is not assignable to type 'string[]'.","category":1,"code":2322}]}]}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/cascader/src/cascader.vue.d.ts","start":2156,"length":8,"messageText":"The expected type comes from property 'onChange' which is declared here on type '__VLS_NormalizeComponentEvent; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]},{"start":51818,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":64632,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":101188,"length":1,"messageText":"Parameter 'r' implicitly has an 'any' type.","category":1,"code":7006}]],[2292,[{"start":153496,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: any; label: any; code: any; children: any; }[]' is not assignable to type 'never[]'.","category":1,"code":2322,"next":[{"messageText":"Type '{ value: any; label: any; code: any; children: any; }' is not assignable to type 'never'.","category":1,"code":2322}]}},{"start":217157,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./src/api/tcm.ts","start":16728,"length":15,"messageText":"The expected type comes from property 'medication_days' which is declared here on type '{ id: number; dose_count?: number | undefined; medication_days?: number | undefined; }'","category":3,"code":6500}]},{"start":14551,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type 'unknown[]' is not assignable to type 'TreeNodeData[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'unknown' is not assignable to type 'TreeNodeData'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":27789,"length":4,"messageText":"The expected type comes from property 'data' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]},{"start":30726,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":213900,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":31214,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":238033,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":31670,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":213900,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":32150,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":238914,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":32596,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":222042,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33061,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; diagnosis_id?: number | undefined; pay_order_ids?: number[] | undefined; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; diagnosis_id?: number | undefined; pay_order_ids?: number[] | undefined; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":234641,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33521,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":237664,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":33975,"length":10,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'Record' is not assignable to parameter of type '{ id: number; }'.","category":1,"code":2345,"next":[{"messageText":"Property 'id' is missing in type 'Record' but required in type '{ id: number; }'.","category":1,"code":2741}]},"relatedInformation":[{"start":229818,"length":2,"messageText":"'id' is declared here.","category":3,"code":2728}]},{"start":92405,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":104708,"length":7,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | number | undefined' is not assignable to type 'number | null | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type 'number'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/input-number/src/input-number.d.ts","start":907,"length":10,"messageText":"The expected type comes from property 'modelValue' which is declared here on type '{ readonly id?: string | undefined; readonly step?: number | undefined; readonly stepStrictly?: boolean | undefined; readonly max?: number | undefined; readonly min?: number | undefined; ... 19 more ...; readonly \"onUpdate:modelValue\"?: ((val: number | undefined) => any) | undefined; } & VNodeProps & AllowedComponen...'","category":3,"code":6500}]},{"start":140602,"length":1,"messageText":"Parameter 'r' implicitly has an 'any' type.","category":1,"code":7006}]],[2304,[{"start":325,"length":8,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ modelValue: any; }' is not assignable to parameter of type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Record<...>'.","category":1,"code":2345,"next":[{"messageText":"Property 'itemData' is missing in type '{ modelValue: any; }' but required in type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'.","category":1,"code":2741,"canonicalHead":{"code":2322,"messageText":"Type '{ modelValue: any; }' is not assignable to type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'."}}]},"relatedInformation":[{"file":"./src/views/decoration/component/tabbar/pc/menu-set.vue","start":4006,"length":8,"messageText":"'itemData' is declared here.","category":3,"code":2728}]},{"start":454,"length":8,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ modelValue: any; }' is not assignable to parameter of type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Record<...>'.","category":1,"code":2345,"next":[{"messageText":"Property 'itemData' is missing in type '{ modelValue: any; }' but required in type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'.","category":1,"code":2741,"canonicalHead":{"code":2322,"messageText":"Type '{ modelValue: any; }' is not assignable to type '{ readonly modelValue: any[]; readonly max?: number | undefined; readonly min?: number | undefined; readonly itemData: any; readonly \"onUpdate:modelValue\"?: ((value: any) => any) | undefined; }'."}}]},"relatedInformation":[{"file":"./src/views/decoration/component/tabbar/pc/menu-set.vue","start":4006,"length":8,"messageText":"'itemData' is declared here.","category":3,"code":2728}]}]],[2317,[{"start":195,"length":6,"code":2339,"category":1,"messageText":"Property 'height' does not exist on type '{}'."}]],[2359,[{"start":5709,"length":5,"messageText":"Parameter 'depts' implicitly has an 'any' type.","category":1,"code":7006},{"start":5738,"length":6,"messageText":"Variable 'result' implicitly has type 'any[]' in some locations where its type cannot be determined.","category":1,"code":7034},{"start":5777,"length":4,"messageText":"Parameter 'dept' implicitly has an 'any' type.","category":1,"code":7006},{"start":5946,"length":6,"messageText":"Variable 'result' implicitly has an 'any[]' type.","category":1,"code":7005},{"start":6044,"length":6,"messageText":"Variable 'result' implicitly has an 'any[]' type.","category":1,"code":7005}]],[2362,[{"start":10278,"length":47,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 3, '(callbackfn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, initialValue: unknown): unknown', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'total' and 'previousValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]},{"messageText":"Overload 2 of 3, '(callbackfn: (previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number, initialValue: number): number', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'count' and 'currentValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]}]},"relatedInformation":[]},{"start":10485,"length":47,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 3, '(callbackfn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, initialValue: unknown): unknown', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'total' and 'previousValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]},{"messageText":"Overload 2 of 3, '(callbackfn: (previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number, initialValue: number): number', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '(total: number, count: number) => number' is not assignable to parameter of type '(previousValue: number, currentValue: unknown, currentIndex: number, array: unknown[]) => number'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters 'count' and 'currentValue' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type 'number'.","category":1,"code":2322}]}]}]}]},"relatedInformation":[]},{"start":4702,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]},{"start":6901,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[2364,[{"start":7613,"length":4,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type '\"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tag/src/tag.d.ts","start":414,"length":4,"messageText":"The expected type comes from property 'type' which is declared here on type '{ readonly type?: \"primary\" | \"success\" | \"warning\" | \"info\" | \"danger\" | undefined; readonly closable?: boolean | undefined; readonly disableTransitions?: boolean | undefined; ... 6 more ...; readonly onClose?: ((evt: MouseEvent) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & R...'","category":3,"code":6500}]}]],[2390,[{"start":397,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type '(opts?: { silent?: boolean; }) => Promise' is not assignable to type '(name: TabPaneName) => any'.","category":1,"code":2322,"next":[{"messageText":"Types of parameters 'opts' and 'name' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'TabPaneName' is not assignable to type '{ silent?: boolean | undefined; } | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' has no properties in common with type '{ silent?: boolean | undefined; }'.","category":1,"code":2559}]}]}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tabs/src/tabs.d.ts","start":7614,"length":11,"messageText":"The expected type comes from property 'onTabChange' which is declared here on type '__VLS_NormalizeComponentEvent; readonly closable: boolean; readonly tabindex: EpPropMergeType; ... 4 more ...; readonly addable: boolean; }>...'","category":3,"code":6500}]}]],[2393,[{"start":56480,"length":34,"messageText":"This comparison appears to be unintentional because the types '\"supplement\"' and '\"normal\"' have no overlap.","category":1,"code":2367},{"start":20344,"length":28,"messageText":"This comparison appears to be unintentional because the types '\"supplement\"' and '\"normal\"' have no overlap.","category":1,"code":2367}]],[2394,[{"start":723,"length":5,"code":2353,"category":1,"messageText":"Object literal may only specify known properties, and 'value' does not exist in type 'TreeOptionProps'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":25072,"length":5,"messageText":"The expected type comes from property 'props' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2399,[{"start":1732,"length":5,"code":2353,"category":1,"messageText":"Object literal may only specify known properties, and 'value' does not exist in type 'TreeOptionProps'.","relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":25072,"length":5,"messageText":"The expected type comes from property 'props' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2440,[{"start":5402,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type 'unknown[]' is not assignable to type 'TreeNodeData[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'unknown' is not assignable to type 'TreeNodeData'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./node_modules/.pnpm/element-plus@2.13.7_typescr_8dc22b845ba8de11448ecad5177e079a/node_modules/element-plus/es/components/tree-select/src/tree-select.vue.d.ts","start":27789,"length":4,"messageText":"The expected type comes from property 'data' which is declared here on type 'Partial<{ lazy: boolean; offset: number; teleported: EpPropMergeType; props: TreeOptionProps; effect: EpPropMergeType<...>; ... 48 more ...; cacheData: unknown[]; }> & Omit<...> & Record<...>'","category":3,"code":6500}]}]],[2443,[{"start":31652,"length":6,"code":2349,"category":1,"messageText":{"messageText":"This expression is not callable.","category":1,"code":2349,"next":[{"messageText":"Type 'String' has no call signatures.","category":1,"code":2757}]},"relatedInformation":[{"start":31652,"length":6,"messageText":"Are you missing a semicolon?","category":1,"code":2734}]},{"start":32437,"length":2,"code":2349,"category":1,"messageText":{"messageText":"This expression is not callable.","category":1,"code":2349,"next":[{"messageText":"Type 'String' has no call signatures.","category":1,"code":2757}]},"relatedInformation":[{"start":32437,"length":2,"messageText":"Are you missing a semicolon?","category":1,"code":2734}]}]],[2445,[{"start":14749,"length":34,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type 'number'."}]],[2458,[{"start":24819,"length":1,"messageText":"Parameter 'd' implicitly has an 'any' type.","category":1,"code":7006}]]],"affectedFilesPendingEmit":[1579,1597,1587,1588,1598,1599,1435,1600,1581,1589,1427,1425,1431,1453,1590,1550,1467,1591,1434,1601,1602,1461,1603,1604,1605,1592,1593,1594,1595,1606,1607,1608,1609,146,1610,1611,1596,1433,1612,127,1583,2077,2078,2100,1582,2101,2102,2103,2104,2192,2193,2194,2195,2197,2198,2196,2199,2201,2202,2200,2205,2203,2206,2204,2208,2187,2188,2190,2191,2189,1468,2209,2210,2211,2186,1471,1470,2076,1546,1455,2226,124,134,107,128,125,126,2227,2207,1415,143,1436,139,2229,2230,1585,2239,2240,2243,2245,2247,2248,1416,140,141,142,1403,144,145,1402,1404,137,138,1410,1405,1407,1408,1409,1411,1586,1584,2246,2249,1573,1572,2244,1580,130,136,133,132,1446,131,2079,2080,2250,1469,1568,2251,1401,2252,1457,2084,1454,1437,1576,1574,1578,135,2081,1406,129,1577,1419,1420,1418,1417,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2269,2267,2266,2265,2268,2264,2271,2270,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2290,1464,2287,2288,1465,2285,2286,2289,2291,2292,2300,2296,2301,2294,1429,2302,2295,2297,2298,2304,2305,2306,2303,2308,2309,2310,2307,2312,2313,2314,2311,1428,2316,2317,2318,2315,2320,2321,2322,2319,2324,2325,2326,2323,2328,2329,2330,2327,2332,2333,2334,2331,2336,2337,2335,2339,2340,2341,2338,2343,2344,2345,2342,2347,2348,2349,2346,2350,2293,1430,2352,2351,2353,2299,2355,2358,2356,2357,2354,2359,2360,1426,2361,2362,1414,1413,1412,2363,1432,2364,2365,2366,2374,2375,2367,2372,2369,2368,2370,2371,2373,2376,2377,2378,2379,2380,2382,2381,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,1462,2398,2399,2400,2401,2402,2403,2404,2405,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2437,2436,2439,2434,2435,2438,2442,2440,2441,2443,1551,1460,1459,1566,2445,1456,1448,1447,1445,2446,2447,1458,1570,1569,1466,1451,1450,2448,1463,1548,1547,2444,1567,1571,2449,2450,2451,2452,2453,2454,2455,2456,2457,1421,2458,2651],"emitSignatures":[107,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1445,1446,1447,1448,1450,1451,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1546,1547,1548,1550,1551,1566,1567,1568,1569,1570,1571,1572,1573,1574,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,2076,2077,2078,2079,2080,2081,2084,2100,2101,2102,2103,2104,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2226,2227,2229,2230,2239,2240,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2651],"version":"5.7.3"}
\ No newline at end of file
diff --git a/app/artifacts/patient_appointment_density/appointments_1024x640.png b/app/artifacts/patient_appointment_density/appointments_1024x640.png
index 48721e651..83cfc4cee 100644
Binary files a/app/artifacts/patient_appointment_density/appointments_1024x640.png and b/app/artifacts/patient_appointment_density/appointments_1024x640.png differ
diff --git a/app/artifacts/patient_appointment_density/appointments_1366x768.png b/app/artifacts/patient_appointment_density/appointments_1366x768.png
index 69243b17e..f927c4fa3 100644
Binary files a/app/artifacts/patient_appointment_density/appointments_1366x768.png and b/app/artifacts/patient_appointment_density/appointments_1366x768.png differ
diff --git a/app/artifacts/patient_appointment_density/patients_1024x640.png b/app/artifacts/patient_appointment_density/patients_1024x640.png
index 3671867c4..bec10d926 100644
Binary files a/app/artifacts/patient_appointment_density/patients_1024x640.png and b/app/artifacts/patient_appointment_density/patients_1024x640.png differ
diff --git a/app/artifacts/patient_appointment_density/patients_1366x768.png b/app/artifacts/patient_appointment_density/patients_1366x768.png
index 9d0cbf0d8..9a8e0100d 100644
Binary files a/app/artifacts/patient_appointment_density/patients_1366x768.png and b/app/artifacts/patient_appointment_density/patients_1366x768.png differ
diff --git a/app/artifacts/patient_appointment_density/patients_1486x920_dpr2.png b/app/artifacts/patient_appointment_density/patients_1486x920_dpr2.png
new file mode 100644
index 000000000..8e491a30f
Binary files /dev/null and b/app/artifacts/patient_appointment_density/patients_1486x920_dpr2.png differ
diff --git a/app/scripts/render_patient_appointment_density.py b/app/scripts/render_patient_appointment_density.py
index d4fd97486..588f38384 100644
--- a/app/scripts/render_patient_appointment_density.py
+++ b/app/scripts/render_patient_appointment_density.py
@@ -61,6 +61,7 @@ def _appointment_rows() -> list[dict[str, Any]]:
"id": 801 + index,
"diagnosis_id": 901 + index,
"patient_id": 401 + index,
+ "source_patient_id": 401 + index,
"patient_name": names[index % len(names)],
"patient_phone": f"1380013{8000 + index}",
"gender": 2 if index % 2 == 0 else 1,
@@ -77,6 +78,11 @@ def _appointment_rows() -> list[dict[str, Any]]:
"status_desc": "已挂号",
"revisit_time": "复诊" if index % 2 else "初诊",
"unserved_days": index,
+ "video_call_hint": (
+ {"state": "live", "label": "视频通话进行中"}
+ if index == 0
+ else {"state": "idle", "label": "等待医生发起"}
+ ),
}
)
return rows
@@ -161,15 +167,17 @@ def render() -> list[Path]:
raise RuntimeError(
f"appointment table only exposes {appointment_slots} ordinary rows"
)
- if width == 1024 and not appointments.video_panel.isHidden():
- raise RuntimeError("narrow appointment viewport did not collapse the video panel")
+ if appointments.content_layout.count() != 1:
+ raise RuntimeError("appointment list still reserves a secondary side panel")
+ if appointments.table_card.width() != appointments.content_host.width():
+ raise RuntimeError("appointment table does not fill the content viewport")
appointment_path = output / f"appointments_{width}x{height}.png"
if not shell.grab().save(str(appointment_path), "PNG"):
raise RuntimeError(f"failed to save {appointment_path}")
paths.append(appointment_path)
print(
f"{width}x{height}: patient_slots={patient_slots}, "
- f"appointment_slots={appointment_slots}, video_hidden={appointments.video_panel.isHidden()}"
+ f"appointment_slots={appointment_slots}, table_full_width=True"
)
shell.close()
application.processEvents()
diff --git a/app/src/doctor_workstation/services/api_client.py b/app/src/doctor_workstation/services/api_client.py
index 39a48e3a1..405988676 100644
--- a/app/src/doctor_workstation/services/api_client.py
+++ b/app/src/doctor_workstation/services/api_client.py
@@ -5,7 +5,8 @@ from __future__ import annotations
import json
import time
from collections.abc import Callable, Iterator, Mapping
-from threading import Lock, RLock
+from contextlib import contextmanager
+from threading import Condition, RLock
from typing import Any
from urllib.parse import urljoin, urlsplit, urlunsplit
@@ -23,15 +24,6 @@ from doctor_workstation.core.errors import (
WorkWechatBindingRequiredError,
)
-# One shared transport lock serializes every HTTP exchange in the process.
-# The GUI fires page loads, dialog bundles and polling timers from many
-# QThreadPool workers that all share a single ``httpx.Client``. Concurrent
-# TLS handshakes on one shared SSLContext have repeatedly crashed the
-# process inside libcrypto (access violation at a stable offset), so all
-# network traffic now goes through this single lock. Requests stay
-# off-thread, so the GUI never blocks; only the network itself is serialized.
-_HTTP_TRANSPORT_LOCK = Lock()
-
class ApiClient:
"""A small, testable client implementing the admin API contract.
@@ -42,6 +34,7 @@ class ApiClient:
"""
API_VERSION = "1.9.4"
+ DEFAULT_MAX_PARALLEL_REQUESTS = 8
def __init__(
self,
@@ -55,6 +48,7 @@ class ApiClient:
transport: httpx.BaseTransport | None = None,
client: httpx.Client | None = None,
sleep: Callable[[float], None] = time.sleep,
+ max_parallel_requests: int = DEFAULT_MAX_PARALLEL_REQUESTS,
) -> None:
"""Create a client without performing any network requests."""
@@ -64,6 +58,8 @@ class ApiClient:
raise ValueError("retry_backoff must be non-negative")
if client is not None and transport is not None:
raise ValueError("pass either client or transport, not both")
+ if max_parallel_requests <= 0:
+ raise ValueError("max_parallel_requests must be positive")
self.base_url = self.normalise_base_url(base_url)
self.timeout = timeout
self.max_retries = max_retries
@@ -71,10 +67,68 @@ class ApiClient:
self._sleep = sleep
self._token = token.strip()
self._lock = RLock()
+ self._transport_lock = RLock()
+ self._client_condition = Condition(RLock())
+ self._available_clients: list[httpx.Client] = []
+ self._pooled_clients: list[httpx.Client] = []
+ self._active_requests = 0
+ self._closing = False
+ self._closed = False
+ self._max_parallel_requests = max_parallel_requests
+ # Production requests use a bounded pool of independent clients. This
+ # permits unrelated patient requests to run concurrently without
+ # sharing the SSLContext that previously caused native TLS crashes.
+ # A pool also works across PySide QRunnable boundaries, where Python
+ # thread-local state is not retained reliably.
+ # Explicit clients/transports remain on one locked client because
+ # their ownership and thread-safety contracts are unknown.
+ self._uses_client_pool = client is None and transport is None
self._owns_client = client is None
self._stream_transport = transport
self._verify = verify
- self._client = client or httpx.Client(transport=transport, verify=verify)
+ self._client = (
+ None
+ if self._uses_client_pool
+ else client or httpx.Client(transport=transport, verify=verify)
+ )
+
+ @contextmanager
+ def _borrow_client(self) -> Iterator[httpx.Client]:
+ """Yield a safe synchronous client for the calling worker thread."""
+
+ if not self._uses_client_pool:
+ with self._transport_lock:
+ with self._client_condition:
+ if self._closing or self._closed:
+ raise RuntimeError("ApiClient is closed")
+ if self._client is None: # Defensive; this mode always has one.
+ raise RuntimeError("ApiClient transport is unavailable")
+ yield self._client
+ return
+
+ with self._client_condition:
+ while True:
+ if self._closing or self._closed:
+ raise RuntimeError("ApiClient is closed")
+ if self._available_clients:
+ pooled_client = self._available_clients.pop()
+ break
+ if len(self._pooled_clients) < self._max_parallel_requests:
+ pooled_client = httpx.Client(verify=self._verify)
+ self._pooled_clients.append(pooled_client)
+ break
+ self._client_condition.wait()
+ self._active_requests += 1
+ try:
+ yield pooled_client
+ finally:
+ with self._client_condition:
+ self._active_requests -= 1
+ self._available_clients.append(pooled_client)
+ if self._active_requests == 0:
+ self._client_condition.notify_all()
+ else:
+ self._client_condition.notify()
@staticmethod
def normalise_base_url(base_url: str) -> str:
@@ -184,9 +238,9 @@ class ApiClient:
) -> Iterator[dict[str, Any]]:
"""POST JSON and yield parsed server-sent events on an isolated client.
- Streaming deliberately does not use ``_HTTP_TRANSPORT_LOCK`` or the
- process-wide JSON client. A diagnosis response can remain open for
- more than a minute and must not block unrelated page requests.
+ Streaming deliberately does not use the bounded short-request client
+ pool. A diagnosis response can remain open for more than a minute and
+ must not consume capacity needed by unrelated page requests.
"""
url = self._endpoint_url(endpoint)
@@ -245,8 +299,8 @@ class ApiClient:
if parsed.scheme not in {"http", "https"} or not parsed.netloc:
raise ValueError("url must resolve to an absolute http(s) URL")
try:
- with _HTTP_TRANSPORT_LOCK:
- response = self._client.get(
+ with self._borrow_client() as client:
+ response = client.get(
target,
headers={"Accept": "image/*,application/octet-stream;q=0.8"},
timeout=self.timeout,
@@ -324,10 +378,10 @@ class ApiClient:
attempts = self.max_retries + 1 if verb == "GET" else 1
response: httpx.Response | None = None
request_timeout = self.timeout if timeout is None else timeout
- with _HTTP_TRANSPORT_LOCK:
+ with self._borrow_client() as client:
for attempt in range(attempts):
try:
- response = self._client.request(
+ response = client.request(
verb,
url,
params=dict(params) if params is not None else None,
@@ -360,9 +414,42 @@ class ApiClient:
def close(self) -> None:
"""Close the internally-created HTTP transport."""
- if self._owns_client:
- with _HTTP_TRANSPORT_LOCK:
- self._client.close()
+ with self._client_condition:
+ if self._closed:
+ return
+ if self._closing:
+ while not self._closed:
+ self._client_condition.wait()
+ return
+ self._closing = True
+ self._client_condition.notify_all()
+
+ clients: list[httpx.Client] = []
+ if self._uses_client_pool:
+ with self._client_condition:
+ while self._active_requests:
+ self._client_condition.wait()
+ clients = list(self._pooled_clients)
+ self._available_clients.clear()
+ self._pooled_clients.clear()
+ else:
+ with self._transport_lock:
+ if self._owns_client and self._client is not None:
+ clients = [self._client]
+
+ close_error: Exception | None = None
+ for client in clients:
+ try:
+ client.close()
+ except Exception as error: # Close every transport before surfacing one failure.
+ if close_error is None:
+ close_error = error
+ with self._client_condition:
+ self._closed = True
+ self._closing = False
+ self._client_condition.notify_all()
+ if close_error is not None:
+ raise close_error
def __enter__(self) -> ApiClient:
"""Return this client for use as a context manager."""
diff --git a/app/src/doctor_workstation/services/local_audio_queue.py b/app/src/doctor_workstation/services/local_audio_queue.py
new file mode 100644
index 000000000..eaeb58699
--- /dev/null
+++ b/app/src/doctor_workstation/services/local_audio_queue.py
@@ -0,0 +1,602 @@
+"""Persistent local-audio capture and COS upload queue.
+
+Local call recordings are medical records. They must survive application
+restarts and failed network requests, so the queue deliberately keeps the
+audio file after a successful upload as well as after a failed one.
+"""
+
+from __future__ import annotations
+
+import queue
+import sqlite3
+import threading
+from collections.abc import Callable
+from concurrent.futures import Future
+from contextlib import suppress
+from dataclasses import dataclass
+from datetime import UTC, datetime
+from os import PathLike
+from pathlib import Path
+from typing import Any
+from uuid import uuid4
+
+from platformdirs import user_data_path
+
+_MAX_UPLOAD_WORKERS = 3
+_RETRYABLE_STATUSES = {"pending", "failed"}
+_RECOVERY_LOCK = threading.Lock()
+_RECOVERED_DATABASES: set[Path] = set()
+_MANAGER_LOCK = threading.Lock()
+_MANAGERS: dict[tuple[int, Path], LocalAudioUploadManager] = {}
+
+
+def _utc_now() -> str:
+ return datetime.now(UTC).isoformat(timespec="seconds")
+
+
+def _clean_room_id(value: Any) -> str:
+ room_id = str(value or "").strip()
+ return "" if room_id == "0" else room_id
+
+
+def _clean_call_record_id(value: Any, *, required: bool) -> int | None:
+ if value in (None, "") and not required:
+ return None
+ try:
+ call_record_id = int(value)
+ except (TypeError, ValueError) as error:
+ raise ValueError("通话记录 ID 无效。") from error
+ if call_record_id <= 0:
+ raise ValueError("通话记录 ID 无效。")
+ return call_record_id
+
+
+def _default_root() -> Path:
+ return (
+ user_data_path(
+ "ZhenyangDoctorWorkstation",
+ appauthor="ZhenYangTang",
+ ensure_exists=True,
+ )
+ / "local-call-audio"
+ )
+
+
+@dataclass(frozen=True, slots=True)
+class LocalAudioRecord:
+ id: int
+ session_id: str
+ diagnosis_id: int
+ call_record_id: int | None
+ room_id: str
+ mime_type: str
+ file_path: Path
+ size_bytes: int
+ status: str
+ error_text: str
+ uploaded_url: str
+ attempts: int
+ created_at: str
+ updated_at: str
+ uploaded_at: str
+
+ @property
+ def exists(self) -> bool:
+ return self.file_path.is_file()
+
+
+class LocalAudioQueueStore:
+ """SQLite-backed manifest for durable local call recordings."""
+
+ def __init__(self, root: str | PathLike[str] | None = None) -> None:
+ self.root = Path(root).expanduser().resolve() if root else _default_root().resolve()
+ self.files_dir = self.root / "files"
+ self.files_dir.mkdir(parents=True, exist_ok=True)
+ self.database_path = self.root / "queue.sqlite3"
+ self._initialize()
+
+ def _connect(self) -> sqlite3.Connection:
+ connection = sqlite3.connect(self.database_path, timeout=10.0)
+ connection.row_factory = sqlite3.Row
+ connection.execute("PRAGMA busy_timeout = 10000")
+ return connection
+
+ def _initialize(self) -> None:
+ with self._connect() as connection:
+ connection.execute("PRAGMA journal_mode = WAL")
+ # Serialise schema inspection and ALTER TABLE across two workstation
+ # processes. The second process waits, then re-checks the columns.
+ connection.execute("BEGIN IMMEDIATE")
+ connection.execute(
+ """
+ CREATE TABLE IF NOT EXISTS local_audio_uploads (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ session_id TEXT NOT NULL UNIQUE,
+ diagnosis_id INTEGER NOT NULL,
+ call_record_id INTEGER,
+ room_id TEXT NOT NULL DEFAULT '',
+ mime_type TEXT NOT NULL,
+ file_path TEXT NOT NULL,
+ size_bytes INTEGER NOT NULL DEFAULT 0,
+ status TEXT NOT NULL,
+ error_text TEXT NOT NULL DEFAULT '',
+ uploaded_url TEXT NOT NULL DEFAULT '',
+ attempts INTEGER NOT NULL DEFAULT 0,
+ created_at TEXT NOT NULL,
+ updated_at TEXT NOT NULL,
+ uploaded_at TEXT NOT NULL DEFAULT ''
+ )
+ """
+ )
+ columns = {
+ str(row["name"])
+ for row in connection.execute(
+ "PRAGMA table_info(local_audio_uploads)"
+ ).fetchall()
+ }
+ if "room_id" not in columns:
+ connection.execute(
+ "ALTER TABLE local_audio_uploads "
+ "ADD COLUMN room_id TEXT NOT NULL DEFAULT ''"
+ )
+ connection.execute(
+ "CREATE INDEX IF NOT EXISTS idx_local_audio_diagnosis "
+ "ON local_audio_uploads(diagnosis_id, id DESC)"
+ )
+ # Recover interrupted work once per process. Creating the management
+ # dialog while a worker is active must not move that worker back to
+ # ``pending`` and accidentally upload the same medical file twice.
+ with _RECOVERY_LOCK:
+ if self.database_path in _RECOVERED_DATABASES:
+ return
+ with self._connect() as connection:
+ now = _utc_now()
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'pending',
+ error_text = '应用上次退出时上传尚未完成,可重试。',
+ updated_at = ?
+ WHERE status = 'uploading'
+ """,
+ (now,),
+ )
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'invalid',
+ error_text = '应用上次退出时录音尚未完成。',
+ updated_at = ?
+ WHERE status = 'recording'
+ """,
+ (now,),
+ )
+ _RECOVERED_DATABASES.add(self.database_path)
+
+ @staticmethod
+ def _from_row(row: sqlite3.Row) -> LocalAudioRecord:
+ raw_call_record_id = row["call_record_id"]
+ return LocalAudioRecord(
+ id=int(row["id"]),
+ session_id=str(row["session_id"]),
+ diagnosis_id=int(row["diagnosis_id"]),
+ call_record_id=(
+ int(raw_call_record_id) if raw_call_record_id not in (None, "") else None
+ ),
+ room_id=_clean_room_id(row["room_id"]),
+ mime_type=str(row["mime_type"]),
+ file_path=Path(str(row["file_path"])).resolve(),
+ size_bytes=int(row["size_bytes"] or 0),
+ status=str(row["status"]),
+ error_text=str(row["error_text"] or ""),
+ uploaded_url=str(row["uploaded_url"] or ""),
+ attempts=int(row["attempts"] or 0),
+ created_at=str(row["created_at"]),
+ updated_at=str(row["updated_at"]),
+ uploaded_at=str(row["uploaded_at"] or ""),
+ )
+
+ def begin_recording(
+ self,
+ *,
+ session_id: str,
+ diagnosis_id: int,
+ mime_type: str,
+ call_record_id: int | None = None,
+ room_id: str = "",
+ ) -> LocalAudioRecord:
+ suffix = ".ogg" if mime_type.startswith("audio/ogg") else ".webm"
+ timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
+ name = f"call-{int(diagnosis_id)}-{timestamp}-{uuid4().hex[:10]}{suffix}.part"
+ path = (self.files_dir / name).resolve()
+ now = _utc_now()
+ clean_call_record_id = _clean_call_record_id(call_record_id, required=False)
+ clean_room_id = _clean_room_id(room_id)
+ with self._connect() as connection:
+ cursor = connection.execute(
+ """
+ INSERT INTO local_audio_uploads (
+ session_id, diagnosis_id, call_record_id, room_id,
+ mime_type, file_path,
+ status, created_at, updated_at
+ ) VALUES (?, ?, ?, ?, ?, ?, 'recording', ?, ?)
+ """,
+ (
+ session_id,
+ int(diagnosis_id),
+ clean_call_record_id,
+ clean_room_id,
+ mime_type,
+ str(path),
+ now,
+ now,
+ ),
+ )
+ record_id = int(cursor.lastrowid)
+ record = self.get(record_id)
+ if record is None: # pragma: no cover - SQLite insert/read invariant.
+ raise RuntimeError("无法创建本地录音记录。")
+ return record
+
+ def finalize_recording(self, record_id: int, *, size_bytes: int) -> LocalAudioRecord:
+ record = self.require(record_id)
+ if record.status != "recording":
+ raise RuntimeError("本地录音记录状态不允许完成。")
+ if record.file_path.suffix == ".part":
+ final_path = record.file_path.with_suffix("")
+ record.file_path.replace(final_path)
+ else:
+ final_path = record.file_path
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET file_path = ?, size_bytes = ?, status = 'pending',
+ error_text = '', updated_at = ?
+ WHERE id = ?
+ """,
+ (str(final_path), int(size_bytes), now, int(record_id)),
+ )
+ return self.require(record_id)
+
+ def mark_invalid(self, record_id: int, message: str) -> LocalAudioRecord:
+ record = self.require(record_id)
+ size = record.file_path.stat().st_size if record.file_path.is_file() else 0
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET size_bytes = ?, status = 'invalid', error_text = ?, updated_at = ?
+ WHERE id = ?
+ """,
+ (size, str(message)[:1000], now, int(record_id)),
+ )
+ return self.require(record_id)
+
+ def bind_identity(
+ self,
+ record_id: int,
+ *,
+ call_record_id: int,
+ room_id: str = "",
+ ) -> LocalAudioRecord:
+ """Bind one recording to a call without overwriting a different identity."""
+
+ clean_call_record_id = _clean_call_record_id(call_record_id, required=True)
+ assert clean_call_record_id is not None
+ clean_room_id = _clean_room_id(room_id)
+ now = _utc_now()
+ with self._connect() as connection:
+ cursor = connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET call_record_id = CASE
+ WHEN call_record_id IS NULL THEN ?
+ ELSE call_record_id
+ END,
+ room_id = CASE
+ WHEN room_id = '' AND ? <> '' THEN ?
+ ELSE room_id
+ END,
+ updated_at = ?
+ WHERE id = ?
+ AND (call_record_id IS NULL OR call_record_id = ?)
+ AND (? = '' OR room_id = '' OR room_id = ?)
+ """,
+ (
+ clean_call_record_id,
+ clean_room_id,
+ clean_room_id,
+ now,
+ int(record_id),
+ clean_call_record_id,
+ clean_room_id,
+ clean_room_id,
+ ),
+ )
+ if cursor.rowcount != 1:
+ exists = connection.execute(
+ "SELECT 1 FROM local_audio_uploads WHERE id = ?",
+ (int(record_id),),
+ ).fetchone()
+ if exists is None:
+ raise LookupError("本地录音记录不存在。")
+ raise RuntimeError("本地录音的通话记录 ID 或房间号发生冲突。")
+ return self.require(record_id)
+
+ def set_call_record_id(self, record_id: int, call_record_id: int) -> None:
+ self.bind_identity(record_id, call_record_id=call_record_id)
+
+ def update_status(self, record_id: int, status: str, message: str = "") -> None:
+ if status not in {"pending", "uploading", "uploaded", "failed", "invalid"}:
+ raise ValueError("unsupported local-audio status")
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = ?, error_text = ?, updated_at = ?
+ WHERE id = ?
+ """,
+ (status, str(message)[:1000], now, int(record_id)),
+ )
+
+ def get(self, record_id: int) -> LocalAudioRecord | None:
+ with self._connect() as connection:
+ row = connection.execute(
+ "SELECT * FROM local_audio_uploads WHERE id = ?",
+ (int(record_id),),
+ ).fetchone()
+ return self._from_row(row) if row is not None else None
+
+ def require(self, record_id: int) -> LocalAudioRecord:
+ record = self.get(record_id)
+ if record is None:
+ raise LookupError("本地录音记录不存在。")
+ return record
+
+ def list_records(self, *, diagnosis_id: int | None = None) -> list[LocalAudioRecord]:
+ with self._connect() as connection:
+ if diagnosis_id is None:
+ rows = connection.execute(
+ "SELECT * FROM local_audio_uploads ORDER BY id DESC"
+ ).fetchall()
+ else:
+ rows = connection.execute(
+ """
+ SELECT * FROM local_audio_uploads
+ WHERE diagnosis_id = ?
+ ORDER BY id DESC
+ """,
+ (int(diagnosis_id),),
+ ).fetchall()
+ return [self._from_row(row) for row in rows]
+
+ def claim_upload(self, record_id: int) -> LocalAudioRecord | None:
+ now = _utc_now()
+ with self._connect() as connection:
+ cursor = connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'uploading', error_text = '', attempts = attempts + 1,
+ updated_at = ?
+ WHERE id = ? AND status IN ('pending', 'failed')
+ """,
+ (now, int(record_id)),
+ )
+ if cursor.rowcount != 1:
+ return None
+ return self.require(record_id)
+
+ def mark_uploaded(self, record_id: int, uploaded_url: str = "") -> None:
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'uploaded', uploaded_url = ?, error_text = '',
+ uploaded_at = ?, updated_at = ?
+ WHERE id = ?
+ """,
+ (str(uploaded_url)[:2000], now, now, int(record_id)),
+ )
+
+ def mark_failed(self, record_id: int, message: str) -> None:
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'failed', error_text = ?, updated_at = ?
+ WHERE id = ?
+ """,
+ (str(message)[:1000] or "上传失败。", now, int(record_id)),
+ )
+
+ def retry(self, record_id: int) -> LocalAudioRecord:
+ record = self.require(record_id)
+ if record.status not in {"failed", "pending"}:
+ raise RuntimeError("当前录音状态不允许重试上传。")
+ if not record.file_path.is_file() or record.file_path.stat().st_size <= 0:
+ raise RuntimeError("本地录音文件不存在或为空。")
+ now = _utc_now()
+ with self._connect() as connection:
+ connection.execute(
+ """
+ UPDATE local_audio_uploads
+ SET status = 'pending', error_text = '', updated_at = ?
+ WHERE id = ?
+ """,
+ (now, int(record_id)),
+ )
+ return self.require(record_id)
+
+
+def _upload_url(result: Any) -> str:
+ if not isinstance(result, dict):
+ return ""
+ data = result.get("data")
+ payload = data if isinstance(data, dict) else result
+ for key in ("file_url", "fileUrl", "url", "recording_url"):
+ value = payload.get(key)
+ if value:
+ return str(value)
+ return ""
+
+
+class LocalAudioUploadManager:
+ """Small daemon worker pool that uploads up to three recordings at once."""
+
+ def __init__(
+ self,
+ repository: Any,
+ store: LocalAudioQueueStore,
+ *,
+ max_workers: int = _MAX_UPLOAD_WORKERS,
+ ) -> None:
+ self.repository = repository
+ self.store = store
+ self.max_workers = max(1, min(int(max_workers), 8))
+ self._jobs: queue.Queue[tuple[int, Future[bool]]] = queue.Queue()
+ self._active: dict[int, Future[bool]] = {}
+ self._upload_listeners: set[Callable[[LocalAudioRecord], None]] = set()
+ self._lock = threading.Lock()
+ for index in range(self.max_workers):
+ threading.Thread(
+ target=self._worker,
+ name=f"local-audio-upload-{index + 1}",
+ daemon=True,
+ ).start()
+
+ def submit(self, record_id: int) -> Future[bool]:
+ record_id = int(record_id)
+ with self._lock:
+ existing = self._active.get(record_id)
+ if existing is not None:
+ return existing
+ future: Future[bool] = Future()
+ self._active[record_id] = future
+ self._jobs.put((record_id, future))
+ return future
+
+ def add_upload_listener(
+ self,
+ listener: Callable[[LocalAudioRecord], None],
+ ) -> None:
+ with self._lock:
+ self._upload_listeners.add(listener)
+
+ def remove_upload_listener(
+ self,
+ listener: Callable[[LocalAudioRecord], None],
+ ) -> None:
+ with self._lock:
+ self._upload_listeners.discard(listener)
+
+ def _notify_uploaded(self, record_id: int) -> None:
+ try:
+ record = self.store.require(record_id)
+ except Exception:
+ return
+ with self._lock:
+ listeners = tuple(self._upload_listeners)
+ for listener in listeners:
+ with suppress(Exception):
+ listener(record)
+
+ def submit_retryable(self, *, diagnosis_id: int | None = None) -> list[Future[bool]]:
+ futures: list[Future[bool]] = []
+ for record in self.store.list_records(diagnosis_id=diagnosis_id):
+ if record.status in _RETRYABLE_STATUSES:
+ futures.append(self.submit(record.id))
+ return futures
+
+ def submit_pending(self, *, diagnosis_id: int | None = None) -> list[Future[bool]]:
+ """Resume only queued work; failed uploads require an explicit retry."""
+
+ return [
+ self.submit(record.id)
+ for record in self.store.list_records(diagnosis_id=diagnosis_id)
+ if record.status == "pending"
+ ]
+
+ def _worker(self) -> None:
+ while True:
+ record_id, future = self._jobs.get()
+ try:
+ try:
+ succeeded = self._upload(record_id)
+ except Exception as error: # Defensive boundary around a daemon worker.
+ with suppress(Exception):
+ self.store.mark_failed(
+ record_id,
+ str(error) or "本地录音上传失败。",
+ )
+ succeeded = False
+ if not future.done():
+ future.set_result(succeeded)
+ finally:
+ with self._lock:
+ self._active.pop(record_id, None)
+ self._jobs.task_done()
+
+ def _upload(self, record_id: int) -> bool:
+ record = self.store.claim_upload(record_id)
+ if record is None:
+ current = self.store.get(record_id)
+ return bool(current and current.status == "uploaded")
+ if not record.file_path.is_file() or record.file_path.stat().st_size <= 0:
+ self.store.mark_failed(record.id, "本地录音文件不存在或为空。")
+ return False
+ if record.call_record_id is None or record.call_record_id <= 0:
+ self.store.mark_failed(record.id, "未保存对应的通话记录编号,暂不能上传。")
+ return False
+ upload = getattr(self.repository, "upload_call_recording", None)
+ if not callable(upload):
+ self.store.mark_failed(record.id, "当前服务未提供本地录音上传接口。")
+ return False
+ try:
+ result = upload(
+ path=record.file_path,
+ diagnosis_id=record.diagnosis_id,
+ call_record_id=record.call_record_id,
+ mime_type=record.mime_type,
+ )
+ except Exception as error:
+ self.store.mark_failed(record.id, str(error) or "本地录音上传 COS 失败。")
+ return False
+ uploaded_url = _upload_url(result)
+ if not uploaded_url:
+ self.store.mark_failed(record.id, "服务器未返回本地录音文件地址。")
+ return False
+ self.store.mark_uploaded(record.id, uploaded_url)
+ self._notify_uploaded(record.id)
+ return True
+
+
+def get_local_audio_upload_manager(
+ repository: Any,
+ store: LocalAudioQueueStore | None = None,
+) -> tuple[LocalAudioQueueStore, LocalAudioUploadManager]:
+ """Return one three-worker uploader per repository and manifest.
+
+ Video windows and the recording-management dialog may be opened many times
+ during a workstation session. Sharing the pool prevents each window from
+ creating another set of background threads while SQLite's atomic claim still
+ protects against duplicate uploads across processes.
+ """
+
+ resolved_store = store or LocalAudioQueueStore()
+ key = (id(repository), resolved_store.database_path)
+ with _MANAGER_LOCK:
+ manager = _MANAGERS.get(key)
+ if manager is None:
+ manager = LocalAudioUploadManager(
+ repository,
+ resolved_store,
+ max_workers=_MAX_UPLOAD_WORKERS,
+ )
+ _MANAGERS[key] = manager
+ return resolved_store, manager
diff --git a/app/src/doctor_workstation/services/mock_repository.py b/app/src/doctor_workstation/services/mock_repository.py
index ee1dfd5b6..6a1bc0ef5 100644
--- a/app/src/doctor_workstation/services/mock_repository.py
+++ b/app/src/doctor_workstation/services/mock_repository.py
@@ -2588,8 +2588,11 @@ class DemoDoctorRepository:
"room_id": "manual-upload",
"status": 2,
"status_text": "已结束",
- "recording_status_text": "待上传",
- "recording_urls_list": [],
+ "recording_status_text": "待上传",
+ "recording_urls_list": [],
+ "local_audio_status": 0,
+ "local_audio_status_text": "无本地录音",
+ "local_audio_urls_list": [],
"transcription_status": "not_started",
"transcription_status_text": "未生成文字",
"transcript_text": "",
@@ -2633,25 +2636,60 @@ class DemoDoctorRepository:
record["recording_status_text"] = "录制完成"
return deepcopy(record)
- def upload_call_recording(
- self,
- path: str | PathLike[str],
- diagnosis_id: int,
- *,
- call_record_id: int | None = None,
- ) -> dict[str, Any]:
- """Upload then attach a demo video using the production sequence."""
-
- file_url = self.upload_material(path, "video")
- target_id = call_record_id
- if target_id is None:
- target_id = int(self.create_manual_call_record(diagnosis_id)["id"])
- self.attach_local_call_recording(diagnosis_id, file_url, call_record_id=target_id)
- return {
- "diagnosis_id": diagnosis_id,
- "call_record_id": target_id,
- "file_url": file_url,
- }
+ def upload_call_recording(
+ self,
+ path: str | PathLike[str],
+ diagnosis_id: int,
+ *,
+ call_record_id: int | None = None,
+ mime_type: str = "audio/webm",
+ ) -> dict[str, Any]:
+ """Upload then attach a demo local-audio file using the production sequence."""
+
+ source_path = Path(path)
+ is_audio = source_path.suffix.lower() in {
+ ".ogg",
+ ".opus",
+ ".mp3",
+ ".wav",
+ ".m4a",
+ ".aac",
+ ".amr",
+ ".wma",
+ } or (
+ source_path.suffix.lower() == ".webm"
+ and str(mime_type or "").lower().startswith("audio/")
+ )
+ file_url = self.upload_material(path, "file" if is_audio else "video")
+ target_id = call_record_id
+ if target_id is None:
+ target_id = int(self.create_manual_call_record(diagnosis_id)["id"])
+ if is_audio:
+ with self._lock:
+ record = next(
+ (
+ row
+ for row in self._call_records.setdefault(diagnosis_id, [])
+ if int(row.get("id") or 0) == int(target_id)
+ ),
+ None,
+ )
+ if record is None:
+ raise RepositoryNotFoundError("call record not found")
+ urls = record.setdefault("local_audio_urls_list", [])
+ if file_url not in urls:
+ urls.append(file_url)
+ record["local_audio_status"] = 2
+ record["local_audio_status_text"] = "已保存"
+ else:
+ self.attach_local_call_recording(diagnosis_id, file_url, call_record_id=target_id)
+ return {
+ "diagnosis_id": diagnosis_id,
+ "call_record_id": target_id,
+ "file_url": file_url,
+ "media_kind": "local_audio" if is_audio else "video",
+ "completed": True,
+ }
def list_im_chat_messages(
self, diagnosis_id: int, *, only_archived: bool = True
@@ -2890,8 +2928,11 @@ class DemoDoctorRepository:
replay = {
**record,
"status_text": "呼叫中",
- "recording_status_text": "未录制",
- "recording_urls_list": [],
+ "recording_status_text": "未录制",
+ "recording_urls_list": [],
+ "local_audio_status": 0,
+ "local_audio_status_text": "无本地录音",
+ "local_audio_urls_list": [],
"transcription_status": "not_started",
"transcription_status_text": "未生成文字",
"transcript_text": "",
@@ -2903,13 +2944,21 @@ class DemoDoctorRepository:
self._call_records.setdefault(diagnosis_id, []).insert(0, replay)
return deepcopy(record)
- def end_call(self, diagnosis_id: int) -> dict[str, Any]:
+ def end_call(
+ self, diagnosis_id: int, *, call_record_id: int | str | None = None
+ ) -> dict[str, Any]:
"""Persistently mark the demo call record ended."""
with self._lock:
- record = self._calls.get(diagnosis_id)
- if record is None:
- raise RepositoryNotFoundError(f"active call for {diagnosis_id} not found")
+ record = self._calls.get(diagnosis_id)
+ if record is None:
+ raise RepositoryNotFoundError(f"active call for {diagnosis_id} not found")
+ if call_record_id is not None and str(record.get("id") or "") != str(
+ call_record_id
+ ):
+ raise RepositoryNotFoundError(
+ f"active call record {call_record_id} for {diagnosis_id} not found"
+ )
record["status"] = "ended"
record["ended_at"] = datetime.now().replace(microsecond=0).isoformat(sep=" ")
replay = next(
@@ -2930,15 +2979,27 @@ class DemoDoctorRepository:
)
return deepcopy(record)
- def bind_call_room(self, diagnosis_id: int, room_id: str) -> dict[str, Any]:
+ def bind_call_room(
+ self,
+ diagnosis_id: int,
+ room_id: str,
+ *,
+ call_record_id: int | str | None = None,
+ ) -> dict[str, Any]:
"""Persist the room identifier on the active demo call."""
if not room_id.strip():
raise ValueError("room_id is required")
with self._lock:
- record = self._calls.get(diagnosis_id)
- if record is None:
- raise RepositoryNotFoundError(f"active call for {diagnosis_id} not found")
+ record = self._calls.get(diagnosis_id)
+ if record is None:
+ raise RepositoryNotFoundError(f"active call for {diagnosis_id} not found")
+ if call_record_id is not None and str(record.get("id") or "") != str(
+ call_record_id
+ ):
+ raise RepositoryNotFoundError(
+ f"active call record {call_record_id} for {diagnosis_id} not found"
+ )
record["room_id"] = room_id.strip()
record["status"] = "connected"
replay = next(
@@ -2957,9 +3018,10 @@ class DemoDoctorRepository:
"status_text": "通话中",
}
)
- return {
- "diagnosis_id": diagnosis_id,
- "room_id": room_id.strip(),
+ return {
+ "diagnosis_id": diagnosis_id,
+ "call_record_id": record["id"],
+ "room_id": room_id.strip(),
"cloud_recording": {"started": False, "message": "演示模式不录制"},
}
diff --git a/app/src/doctor_workstation/services/repository.py b/app/src/doctor_workstation/services/repository.py
index 13a997b88..4d7c754db 100644
--- a/app/src/doctor_workstation/services/repository.py
+++ b/app/src/doctor_workstation/services/repository.py
@@ -2,16 +2,18 @@
from __future__ import annotations
-import mimetypes
-import re
-import time
+import mimetypes
+import re
+import time
from collections.abc import Callable, Iterator, Mapping, Sequence
-from contextlib import suppress
-from datetime import date
+from contextlib import suppress
+from datetime import date
+from inspect import Parameter, signature
from io import BytesIO
from os import PathLike
-from pathlib import Path
-from typing import Any, Final, Literal, Protocol
+from pathlib import Path
+from typing import Any, Final, Literal, Protocol
+from uuid import uuid4
from doctor_workstation.core.errors import (
ApiBusinessError,
@@ -631,14 +633,15 @@ class DoctorRepository(Protocol):
) -> Any:
"""Attach one uploaded replay URI to a call record."""
- def upload_call_recording(
- self,
- path: str | PathLike[str],
- diagnosis_id: int,
- *,
- call_record_id: int | None = None,
- ) -> dict[str, Any]:
- """Upload a local video then attach it to a real call record."""
+ def upload_call_recording(
+ self,
+ path: str | PathLike[str],
+ diagnosis_id: int,
+ *,
+ call_record_id: int | None = None,
+ mime_type: str = "audio/webm",
+ ) -> dict[str, Any]:
+ """Upload a locally captured call recording to a real call record."""
def list_im_chat_messages(
self, diagnosis_id: int, *, only_archived: bool = True
@@ -699,11 +702,19 @@ class DoctorRepository(Protocol):
def start_call(self, diagnosis_id: int, patient_id: int, *, call_type: int = 2) -> Any:
"""Create a call record."""
- def end_call(self, diagnosis_id: int) -> Any:
- """End the active diagnosis call."""
-
- def bind_call_room(self, diagnosis_id: int, room_id: str) -> Any:
- """Bind a TRTC room to the active call."""
+ def end_call(
+ self, diagnosis_id: int, *, call_record_id: int | str | None = None
+ ) -> Any:
+ """End the exact active call when its server identity is available."""
+
+ def bind_call_room(
+ self,
+ diagnosis_id: int,
+ room_id: str,
+ *,
+ call_record_id: int | str | None = None,
+ ) -> Any:
+ """Bind a TRTC room to the exact active call and start cloud recording."""
def start_call_transcription(
self,
@@ -2322,31 +2333,75 @@ class RemoteDoctorRepository:
body["call_record_id"] = call_record_id
return self.client.post("tcm.diagnosis/attachLocalCallRecording", body)
- def upload_call_recording(
- self,
- path: str | PathLike[str],
- diagnosis_id: int,
- *,
- call_record_id: int | None = None,
- ) -> dict[str, Any]:
- """Perform the same upload/create/attach sequence as ``CallRecordPanel``."""
-
- if diagnosis_id <= 0:
- raise ValueError("diagnosis_id must be positive")
- # Match the admin component exactly: upload first so a failed upload does
- # not leave behind an empty synthetic call record.
- file_url = self.upload_material(path, "video")
- target_id = call_record_id
- if target_id is None:
- target_id = int(self.create_manual_call_record(diagnosis_id).get("id") or 0)
- if target_id <= 0:
- raise ApiProtocolError("tcm.diagnosis/createManualCallRecord returned no id")
- self.attach_local_call_recording(diagnosis_id, file_url, call_record_id=target_id)
- return {
- "diagnosis_id": diagnosis_id,
- "call_record_id": target_id,
- "file_url": file_url,
- }
+ def upload_call_recording(
+ self,
+ path: str | PathLike[str],
+ diagnosis_id: int,
+ *,
+ call_record_id: int | None = None,
+ mime_type: str = "audio/webm",
+ ) -> dict[str, Any]:
+ """Chunk-upload one local audio recording and attach it atomically."""
+
+ if diagnosis_id <= 0:
+ raise ValueError("diagnosis_id must be positive")
+ if call_record_id is not None and call_record_id <= 0:
+ raise ValueError("call_record_id must be positive")
+ recording_path = Path(path).expanduser().resolve()
+ if not recording_path.is_file():
+ raise ValueError(f"recording file does not exist: {recording_path}")
+ file_size = recording_path.stat().st_size
+ if file_size <= 0:
+ raise ValueError("recording file must not be empty")
+
+ chunk_size = 4 * 1024 * 1024
+ chunk_total = (file_size + chunk_size - 1) // chunk_size
+ upload_id = f"local_audio_{uuid4().hex}"
+ file_name = recording_path.name
+ clean_mime = str(mime_type or "audio/webm").strip()[:120] or "audio/webm"
+ final_result: Mapping[str, Any] | None = None
+ bound_call_record_id = call_record_id
+ with recording_path.open("rb") as stream:
+ for chunk_index in range(chunk_total):
+ content = stream.read(chunk_size)
+ if not content:
+ raise ApiProtocolError("local recording ended before all chunks were read")
+ result = self.client.post_multipart(
+ "tcm.diagnosis/uploadCallRecording",
+ files={"file": (file_name, content, clean_mime)},
+ data={
+ "diagnosis_id": diagnosis_id,
+ "call_record_id": bound_call_record_id or 0,
+ "upload_id": upload_id,
+ "file_name": file_name,
+ "file_size": file_size,
+ "mime_type": clean_mime,
+ "chunk_index": chunk_index,
+ "chunk_total": chunk_total,
+ },
+ )
+ final_result = _require_mapping(
+ result,
+ "tcm.diagnosis/uploadCallRecording",
+ )
+ returned_id = int(final_result.get("call_record_id") or 0)
+ if returned_id <= 0:
+ raise ApiProtocolError(
+ "uploadCallRecording returned no call_record_id"
+ )
+ if bound_call_record_id is None:
+ bound_call_record_id = returned_id
+ elif returned_id != bound_call_record_id:
+ raise ApiProtocolError(
+ "uploadCallRecording returned a different call_record_id"
+ )
+
+ if final_result is None or not bool(final_result.get("completed")):
+ raise ApiProtocolError("uploadCallRecording did not complete the local audio upload")
+ file_url = str(final_result.get("file_url") or "").strip()
+ if not file_url:
+ raise ApiProtocolError("uploadCallRecording returned no COS file URL")
+ return dict(final_result)
def list_im_chat_messages(
self, diagnosis_id: int, *, only_archived: bool = True
@@ -2546,20 +2601,53 @@ class RemoteDoctorRepository:
)
return {"call_record_id": call_record_id}
- def end_call(self, diagnosis_id: int) -> Any:
- """End the active call/recording associated with a diagnosis."""
-
- return self.client.post("tcm.diagnosis/endCall", {"diagnosis_id": diagnosis_id})
-
- def bind_call_room(self, diagnosis_id: int, room_id: str) -> Any:
- """Bind the actual TRTC room to the active call record."""
-
- if not room_id.strip():
- raise ValueError("room_id is required")
- return self.client.post(
- "tcm.diagnosis/bindCallRoom",
- {"diagnosis_id": diagnosis_id, "room_id": room_id.strip()},
- )
+ @staticmethod
+ def _optional_call_record_id(call_record_id: int | str | None) -> int | str | None:
+ if call_record_id is None:
+ return None
+ if isinstance(call_record_id, bool) or not str(call_record_id).strip():
+ raise ValueError("call_record_id must be a positive identifier")
+ try:
+ normalized = int(str(call_record_id).strip())
+ except (TypeError, ValueError) as exc:
+ raise ValueError("call_record_id must be a positive identifier") from exc
+ if normalized <= 0:
+ raise ValueError("call_record_id must be a positive identifier")
+ return normalized
+
+ def end_call(
+ self, diagnosis_id: int, *, call_record_id: int | str | None = None
+ ) -> Any:
+ """Stop COS cloud recording and end the exact call record."""
+
+ body: dict[str, Any] = {"diagnosis_id": diagnosis_id}
+ normalized_id = self._optional_call_record_id(call_record_id)
+ if normalized_id is not None:
+ body["call_record_id"] = normalized_id
+ return self.client.post("tcm.diagnosis/endCall", body)
+
+ def bind_call_room(
+ self,
+ diagnosis_id: int,
+ room_id: str,
+ *,
+ call_record_id: int | str | None = None,
+ ) -> Any:
+ """Bind the actual TRTC room and auto-start COS cloud recording."""
+
+ if not room_id.strip():
+ raise ValueError("room_id is required")
+ body: dict[str, Any] = {
+ "diagnosis_id": diagnosis_id,
+ "room_id": room_id.strip(),
+ }
+ normalized_id = self._optional_call_record_id(call_record_id)
+ if normalized_id is not None:
+ body["call_record_id"] = normalized_id
+ return self.client.post(
+ "tcm.diagnosis/bindCallRoom",
+ body,
+ )
@staticmethod
def _transcription_identity(
@@ -2767,24 +2855,40 @@ def _require_mapping(value: object, endpoint: str) -> Mapping[str, Any]:
return value
-def _client_request(
+def _client_request(
client: Any,
method: str,
endpoint: str,
payload: Mapping[str, Any] | None = None,
*,
timeout: float | None = None,
-) -> Any:
- """Call get/post, ignoring timeout kwargs that test doubles do not accept."""
-
- fn = getattr(client, method)
- params = dict(payload or {})
- try:
- if timeout is None:
- return fn(endpoint, params)
- return fn(endpoint, params, timeout=timeout)
- except TypeError:
- return fn(endpoint, params)
+) -> Any:
+ """Call get/post once, omitting timeout for legacy test doubles.
+
+ Capability is determined before invocation. Catching ``TypeError`` from
+ the call itself is unsafe for POST because the transport may already have
+ submitted the write before raising, and a fallback call would duplicate it.
+ """
+
+ fn = getattr(client, method)
+ params = dict(payload or {})
+ if timeout is not None:
+ try:
+ parameters = signature(fn).parameters.values()
+ except (TypeError, ValueError):
+ parameters = ()
+ accepts_timeout = any(
+ parameter.kind is Parameter.VAR_KEYWORD
+ or (
+ parameter.name == "timeout"
+ and parameter.kind
+ in {Parameter.POSITIONAL_OR_KEYWORD, Parameter.KEYWORD_ONLY}
+ )
+ for parameter in parameters
+ )
+ if accepts_timeout:
+ return fn(endpoint, params, timeout=timeout)
+ return fn(endpoint, params)
def _material_kind(
diff --git a/app/src/doctor_workstation/ui/diagnosis_index_widgets.py b/app/src/doctor_workstation/ui/diagnosis_index_widgets.py
index 65acc17d4..b6e8abb30 100644
--- a/app/src/doctor_workstation/ui/diagnosis_index_widgets.py
+++ b/app/src/doctor_workstation/ui/diagnosis_index_widgets.py
@@ -260,11 +260,32 @@ def _appointment_status(record: Any) -> int:
return _as_int(status, -1)
-def _appointment_active(record: Any) -> bool:
- return _has_appointment(record) and _appointment_status(record) == 1
-
-
-def _single_cancellable_appointment(record: Any) -> Any | None:
+def _appointment_active(record: Any) -> bool:
+ return _has_appointment(record) and _appointment_status(record) == 1
+
+
+def video_call_state(record: Any) -> str:
+ """Return the server-owned state of the latest video-call session."""
+
+ return str(
+ first_value(
+ record,
+ "video_call_hint.state",
+ "video_hint.state",
+ "video_hint",
+ default="none",
+ )
+ or "none"
+ ).strip().lower()
+
+
+def video_call_is_live(record: Any) -> bool:
+ """Only a room already opened by the doctor may be joined from this list."""
+
+ return video_call_state(record) == "live"
+
+
+def _single_cancellable_appointment(record: Any) -> Any | None:
"""Return the sole cancellable appointment, never an ambiguous row-level fallback."""
if not _has_appointment(record) or _appointment_status(record) not in {1, 4}:
@@ -317,12 +338,34 @@ def _video_ids_complete(record: Any) -> bool:
)
-def _prescription_action_label(record: Any, *, force_open: bool = False) -> str:
- if force_open:
- return "开方"
- audit = _as_int(first_value(record, "prescription_audit_status", "audit_status"), -1)
- voided = _as_int(first_value(record, "prescription_void_status", "void_status"), 0)
- return "查看处方" if audit == 1 and voided != 1 else "开方"
+def prescription_action(record: Any, *, force_open: bool = False) -> tuple[str, str]:
+ """Return the label and immutable click intent for the current appointment."""
+
+ if force_open:
+ return "开方", "open"
+ audit = _as_int(first_value(record, "prescription_audit_status", "audit_status"), -1)
+ voided = _as_int(first_value(record, "prescription_void_status", "void_status"), 0)
+ explicit_current = first_value(record, "current_has_prescription", default=None)
+ if explicit_current is not None:
+ has_current = _as_bool(explicit_current)
+ elif _as_int(first_value(record, "current_prescription_id", default=0)) > 0:
+ has_current = True
+ else:
+ explicit_legacy = first_value(record, "has_prescription", default=None)
+ has_current = (
+ _as_bool(explicit_legacy)
+ if explicit_legacy is not None
+ else audit in {0, 1, 2}
+ )
+ if not has_current:
+ return "开方", "open"
+ if audit == 1 and voided != 1:
+ return "查看处方", "view"
+ return "编辑处方", "edit"
+
+
+def _prescription_action_label(record: Any, *, force_open: bool = False) -> str:
+ return prescription_action(record, force_open=force_open)[0]
class FlowLayout(QLayout):
@@ -1486,25 +1529,32 @@ class DiagnosisTableHost(QFrame):
layout.setContentsMargins(3, 2, 3, 2)
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
video_capable = self.action_policy.get("video_call", False)
- if video_capable and _appointment_active(record):
- button = QToolButton(host)
- button.setText("进入视频问诊")
- button.setProperty("rowLink", "primary")
- button.setCursor(Qt.CursorShape.PointingHandCursor)
- button.setToolTip("进入医生端视频问诊(将使用摄像头和麦克风)")
- button.setEnabled(_video_ids_complete(record))
- if not button.isEnabled():
- button.setToolTip("患者、诊单或挂号标识不完整,无法进入视频问诊")
- button.clicked.connect(
- lambda _checked=False, item=record: self.video_requested.emit(item)
- )
- layout.addWidget(button)
- else:
- status = "—"
- if video_capable:
- status = {3: "已完成", 4: "已过号"}.get(
- _appointment_status(record), "未挂号" if not _has_appointment(record) else "—"
- )
+ call_state = video_call_state(record)
+ if video_capable and _appointment_active(record) and call_state == "live":
+ button = QToolButton(host)
+ button.setText("进入视频问诊")
+ button.setProperty("rowLink", "primary")
+ button.setCursor(Qt.CursorShape.PointingHandCursor)
+ button.setToolTip("医生已发起视频会话,点击进入(将使用摄像头和麦克风)")
+ button.setEnabled(_video_ids_complete(record))
+ if not button.isEnabled():
+ button.setToolTip("患者、诊单或挂号标识不完整,无法进入视频问诊")
+ button.clicked.connect(
+ lambda _checked=False, item=record: self.video_requested.emit(item)
+ )
+ layout.addWidget(button)
+ else:
+ status = "—"
+ if video_capable:
+ if call_state == "pending_room":
+ status = "等待接通"
+ elif _appointment_active(record):
+ status = "暂无通话"
+ else:
+ status = {3: "已完成", 4: "已过号"}.get(
+ _appointment_status(record),
+ "未挂号" if not _has_appointment(record) else "—",
+ )
label = QLabel(display_text(status), host)
label.setProperty("fixedMuted", True)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
@@ -2201,7 +2251,8 @@ __all__ = [
"DiagnosisLoadingOverlay",
"DiagnosisPager",
"DiagnosisTableHost",
- "DiagnosisTableModel",
- "FlowLayout",
- "FlowWidget",
-]
+ "DiagnosisTableModel",
+ "FlowLayout",
+ "FlowWidget",
+ "prescription_action",
+]
diff --git a/app/src/doctor_workstation/ui/dialogs/ai_consult.py b/app/src/doctor_workstation/ui/dialogs/ai_consult.py
index 1e0b3721e..02d6ead99 100644
--- a/app/src/doctor_workstation/ui/dialogs/ai_consult.py
+++ b/app/src/doctor_workstation/ui/dialogs/ai_consult.py
@@ -3,7 +3,9 @@
from __future__ import annotations
import json
+import re
from collections.abc import Mapping, Sequence
+from collections import namedtuple
from datetime import datetime
from threading import Event
from typing import Any
@@ -214,6 +216,32 @@ QDialog#AiConsultDialog QLabel#AiConsultBody {
background-color: transparent;
font-size: 12px;
}
+QDialog#AiConsultDialog QLabel#AiConsultInsightMarker {
+ color: #5B67F1;
+ background-color: #EEF1FF;
+ border: 1px solid #DDE3FA;
+ border-radius: 9px;
+ min-width: 26px;
+ max-width: 26px;
+ min-height: 22px;
+ max-height: 22px;
+ font-size: 11px;
+ font-weight: 700;
+ padding: 0;
+}
+QDialog#AiConsultDialog QLabel#AiConsultInsightText {
+ color: #3F4E75;
+ background-color: transparent;
+ font-size: 12.5px;
+ padding: 1px 0;
+ line-height: 22px;
+}
+QDialog#AiConsultDialog QLabel#AiConsultInsightPlaceholder {
+ color: #8A94B3;
+ background-color: transparent;
+ font-size: 12px;
+ padding: 2px 0;
+}
QDialog#AiConsultDialog QLabel#AiConsultTag[level="high"] {
color: #F15B67;
background-color: #FFF1F3;
@@ -994,6 +1022,149 @@ def _analysis_markdown(analysis: Mapping[str, Any]) -> str:
return "\n\n".join(parts)
+_InsightItem = namedtuple("_InsightItem", "kind marker label text")
+
+_INSIGHT_LIST_RE = re.compile(r"^\s*(\d{1,2})\s*([\.、))]\s*)")
+_INSIGHT_LIST_LOOKAHEAD_RE = re.compile(r"(?:^|(?<=[::;;。\s]))(\d{1,2})\s*([\.、))])\s*")
+_INSIGHT_LABEL_RE = re.compile(r"^([\u4e00-\u9fa5A-Za-z()()·\s]{1,12})[::]\s*(.*)$")
+
+
+def _split_insight_segments(text: str) -> list[_InsightItem]:
+ """把较稠密的分析段落拆成结构化条目,便于分条阅读。
+
+ 识别模式:
+ - 数字编号开头 (1. / 2、 / 3) / 4)) 作为 list_item
+ - 文本中嵌入的编号列表 (如 "...阶段:1. 肾功评估:... 2. 代谢评估:...")
+ 也会被识别,编号前的内容视为序言
+ - "短中文标签:内容" 中含 已知事实 / 建议 / 信息缺口 / 综合推断 等
+ 可作为 lead_item, 标签部分加粗
+ - 其余按 。 / ; 分句, 每句成一个 plain_item
+
+ 每种类型都会渲染成独立 QLabel, 以改善阅读节奏。
+ """
+ raw = display_text(text, "").strip()
+ if not raw:
+ return []
+
+ # 检查是否包含嵌入式编号列表: 先找第一次出现 "。 数字。 " 或 "...:数字。 "
+ lookahead_match = _INSIGHT_LIST_LOOKAHEAD_RE.search(raw)
+ starts_with_list = _INSIGHT_LIST_RE.match(raw) is not None
+
+ if not starts_with_list and lookahead_match is not None:
+ # 切出序言 + 多个列表条目; 序言尽量停在最近的句末标点 / 冒号处
+ # 注意: lookahead 是 zero-width 的 lookbehind, 所以 start() 即编号数字位置
+ list_start = lookahead_match.start()
+ preamble_candidate = raw[:list_start].rstrip()
+ sentence_tail = re.search(r"[。;;][^。;;]*$", preamble_candidate)
+ if sentence_tail is not None:
+ preamble = preamble_candidate[: sentence_tail.end()].rstrip("。;;:: \t")
+ else:
+ preamble = preamble_candidate.rstrip(":: \t")
+ body = raw[list_start:].lstrip()
+ items: list[_InsightItem] = []
+ if preamble:
+ items.extend(_split_plain_paragraph(preamble))
+ items.extend(_split_numbered_list(body))
+ return items
+
+ if starts_with_list:
+ return _split_numbered_list(raw)
+
+ return _split_plain_paragraph(raw)
+
+
+def _split_numbered_list(text: str) -> list[_InsightItem]:
+ """把一段文本按编号列表解析;开头的非编号内容视为序言。"""
+ items: list[_InsightItem] = []
+ cursor = 0
+ length = len(text)
+ prefix_consumed = False
+ while cursor < length:
+ remainder = text[cursor:]
+ list_match = _INSIGHT_LIST_RE.match(remainder)
+ if list_match is None:
+ # 剩余部分按含序言的段落处理 (无编号前缀, 仍按句末分条)
+ tail = remainder.strip()
+ if tail and not prefix_consumed:
+ items.extend(_split_plain_paragraph(tail))
+ elif tail:
+ # 已消费过编号, 余下尾段按段落继续分条
+ items.extend(_split_plain_paragraph(tail))
+ break
+ prefix_consumed = True
+ marker = f"{list_match.group(1)}."
+ after_marker = remainder[list_match.end():]
+ # 在本条内找到最近的句末标点; 或下一个编号之前
+ sentence_match = re.search(r"[。;;\n]", after_marker)
+ candidate_ends: list[int] = []
+ if sentence_match is not None:
+ candidate_ends.append(sentence_match.end())
+ next_marker_match = re.search(
+ r"\s\d{1,2}\s*[\.、))]",
+ after_marker,
+ )
+ if next_marker_match is not None:
+ candidate_ends.append(next_marker_match.start() + 1)
+ if candidate_ends:
+ inner_end = min(candidate_ends)
+ else:
+ inner_end = len(after_marker)
+ segment = after_marker[:inner_end].strip("。;; \n").strip()
+ if segment:
+ items.append(_split_label_or_sentence(segment, marker=marker))
+ cursor += list_match.end() + inner_end
+ while cursor < length and text[cursor] in "。;;\n":
+ cursor += 1
+ return items
+
+
+def _split_plain_paragraph(text: str) -> list[_InsightItem]:
+ items: list[_InsightItem] = []
+ if not text.strip():
+ return items
+
+ cursor = 0
+ length = len(text)
+ while cursor < length:
+ remainder = text[cursor:]
+ sentence_match = re.search(r"[。;;\n]", remainder)
+ if sentence_match is not None:
+ segment = remainder[: sentence_match.start()].strip()
+ if segment:
+ items.append(_split_label_or_sentence(segment))
+ cursor += sentence_match.end()
+ continue
+ tail = remainder.strip()
+ if tail:
+ items.append(_split_label_or_sentence(tail))
+ break
+ return items
+
+
+def _split_label_or_sentence(segment: str, *, marker: str | None = None) -> _InsightItem:
+ """对单段片段进一步检查是否含 '标签:内容' 结构。"""
+ label_match = _INSIGHT_LABEL_RE.match(segment)
+ if label_match:
+ label = label_match.group(1).strip()
+ body = label_match.group(2).strip()
+ if label and body:
+ kind = "list" if marker else "lead"
+ return _InsightItem(kind=kind, marker=marker or "", label=label, text=body)
+ if marker:
+ return _InsightItem(kind="list", marker=marker, label="", text=segment)
+ return _InsightItem(kind="plain", marker="", label="", text=segment)
+
+
+def _escape_html(value: str) -> str:
+ """转义富文本片段,防止分析文本中带 HTML/Markdown 误伤样式。"""
+ return (
+ (value or "")
+ .replace("&", "&")
+ .replace("<", "<")
+ .replace(">", ">")
+ )
+
+
class _FlowRow(QWidget):
def __init__(self, parent: QWidget | None = None) -> None:
super().__init__(parent)
@@ -1059,7 +1230,7 @@ class _ChatBubble(QWidget):
) -> None:
super().__init__(parent)
row = QHBoxLayout(self)
- row.setContentsMargins(8, 4, 8, 4)
+ row.setContentsMargins(8, 6, 8, 6)
row.setSpacing(8)
avatar = QLabel("医" if role == "doctor" else "患" if role == "patient" else "AI")
avatar.setObjectName("AiConsultRole")
@@ -1383,7 +1554,7 @@ class AiConsultDialog(QDialog):
self.chat_host = QWidget()
self.chat_layout = QVBoxLayout(self.chat_host)
self.chat_layout.setContentsMargins(16, 16, 16, 8)
- self.chat_layout.setSpacing(10)
+ self.chat_layout.setSpacing(12)
self.chat_layout.addStretch(1)
self.chat_scroll.setWidget(self.chat_host)
scroll_bar = self.chat_scroll.verticalScrollBar()
@@ -1576,7 +1747,7 @@ class AiConsultDialog(QDialog):
insight_title.setObjectName("AiConsultSection")
layout.addWidget(insight_title)
self.insight_host = QVBoxLayout()
- self.insight_host.setSpacing(8)
+ self.insight_host.setSpacing(10)
layout.addLayout(self.insight_host)
tools_title = QLabel("快捷工具")
@@ -1708,27 +1879,78 @@ class AiConsultDialog(QDialog):
card = QFrame()
card.setObjectName("AiConsultInsightRow")
_style_surface(card)
- inner = QHBoxLayout(card)
- inner.setContentsMargins(10, 8, 10, 8)
- text = QVBoxLayout()
- text.setSpacing(2)
+ outer = QVBoxLayout(card)
+ outer.setContentsMargins(14, 12, 14, 14)
+ outer.setSpacing(10)
+
+ header_row = QHBoxLayout()
+ header_row.setSpacing(8)
+ header_row.setContentsMargins(0, 0, 0, 0)
heading = QLabel(title)
heading.setObjectName("AiConsultRecordTitle")
- body = QLabel(detail)
- body.setObjectName("AiConsultBody")
- body.setWordWrap(True)
- text.addWidget(heading)
- text.addWidget(body)
- inner.addLayout(text, 1)
+ header_row.addWidget(heading, 1)
badge = QLabel(tag)
badge.setObjectName("AiConsultTag")
_style_surface(badge)
badge.setProperty("level", level)
badge.style().unpolish(badge)
badge.style().polish(badge)
- inner.addWidget(badge, 0, Qt.AlignmentFlag.AlignTop)
+ header_row.addWidget(badge, 0, Qt.AlignmentFlag.AlignTop)
+ outer.addLayout(header_row)
+
+ body_host = QVBoxLayout()
+ body_host.setSpacing(8)
+ body_host.setContentsMargins(0, 0, 0, 0)
+ segments = _split_insight_segments(detail)
+ if not segments:
+ placeholder = QLabel(detail or "暂无数据")
+ placeholder.setObjectName("AiConsultInsightPlaceholder")
+ placeholder.setWordWrap(True)
+ body_host.addWidget(placeholder)
+ else:
+ for segment in segments:
+ body_host.addWidget(self._build_insight_item(segment))
+ outer.addLayout(body_host)
self.insight_host.addWidget(card)
+ def _build_insight_item(self, item: _InsightItem) -> QWidget:
+ row = QWidget()
+ layout = QHBoxLayout(row)
+ layout.setContentsMargins(0, 0, 0, 0)
+ layout.setSpacing(8)
+
+ marker_label: QLabel | None = None
+ if item.kind == "list" and item.marker:
+ marker_label = QLabel(item.marker)
+ marker_label.setObjectName("AiConsultInsightMarker")
+ marker_label.setAlignment(
+ Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignHCenter
+ )
+
+ text_label = QLabel()
+ text_label.setObjectName("AiConsultInsightText")
+ text_label.setWordWrap(True)
+ text_label.setTextInteractionFlags(
+ Qt.TextInteractionFlag.TextSelectableByMouse
+ )
+ text_label.setTextFormat(Qt.TextFormat.RichText)
+
+ if item.label:
+ html_label = _escape_html(item.label)
+ html_body = _escape_html(item.text or "")
+ text_label.setText(
+ f"{html_label}"
+ f":"
+ f"{html_body}"
+ )
+ else:
+ text_label.setText(_escape_html(item.text or ""))
+
+ if marker_label is not None:
+ layout.addWidget(marker_label, 0, Qt.AlignmentFlag.AlignTop)
+ layout.addWidget(text_label, 1)
+ return row
+
def _apply_header(
self,
payload: Mapping[str, Any],
diff --git a/app/src/doctor_workstation/ui/dialogs/diagnosis.py b/app/src/doctor_workstation/ui/dialogs/diagnosis.py
index aa03f91d1..cf8265e4d 100644
--- a/app/src/doctor_workstation/ui/dialogs/diagnosis.py
+++ b/app/src/doctor_workstation/ui/dialogs/diagnosis.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import re
+import sqlite3
from collections.abc import Mapping, Sequence
from contextlib import suppress
from typing import Any
@@ -69,6 +70,7 @@ from ..widgets import (
page_total,
run_async,
)
+from .local_audio_queue import LocalAudioQueueDialog
from .prescription_ai import can_open_diagnosis_ai_report, present_diagnosis_ai_report
_PHONE_PERMISSION = "tcm.diagnosis/phonePlain"
@@ -747,6 +749,7 @@ class DiagnosisDialog(QDialog):
"""
saved = Signal()
+ _local_audio_upload_completed = Signal(int, int)
def __init__(
self,
@@ -841,6 +844,10 @@ class DiagnosisDialog(QDialog):
self._recording_players: list[RecordingPlayerDialog] = []
self._inline_recording_cells: list[RecordingPlaybackCell] = []
self._last_order_detail_dialog: QDialog | None = None
+ self._local_audio_dialog: LocalAudioQueueDialog | None = None
+ self._local_audio_upload_manager: Any = None
+ self._local_audio_upload_listener: Any = None
+ self._video_reload_pending = False
self._orders_page = 1
self._orders_page_size = 10
self._orders_total = 0
@@ -868,6 +875,10 @@ class DiagnosisDialog(QDialog):
self._daily_panels: list[DailyRecordPanel] = []
self._owner = None
self._owner_filter_installed = False
+ self._local_audio_upload_completed.connect(
+ self._local_audio_upload_succeeded,
+ type=Qt.ConnectionType.QueuedConnection,
+ )
self.setObjectName("DiagnosisDialogRoot")
self.setWindowFlags(Qt.WindowType.Dialog | Qt.WindowType.FramelessWindowHint)
@@ -1433,6 +1444,11 @@ class DiagnosisDialog(QDialog):
hint.setWordWrap(True)
toolbar.addWidget(hint, 1)
toolbar.addStretch(1)
+ self.local_audio_queue_button = QPushButton("本机录音文件")
+ self.local_audio_queue_button.setObjectName("DiagnosisLocalAudioQueueButton")
+ self.local_audio_queue_button.setAccessibleName("查看本机录音文件及上传状态")
+ self.local_audio_queue_button.clicked.connect(self._open_local_audio_queue)
+ toolbar.addWidget(self.local_audio_queue_button)
self.video_upload_button = QPushButton("上传本地回放")
self.video_upload_button.setProperty("variant", "primary")
self.video_upload_button.clicked.connect(
@@ -1556,10 +1572,10 @@ class DiagnosisDialog(QDialog):
),
"video": (
("录制回放", 440),
+ ("房间号", 180),
("开始时间", 170),
("结束时间", 170),
("通话类型", 100),
- ("房间号", 180),
("时长", 110),
("状态", 90),
("录制 / 文字", 120),
@@ -1695,6 +1711,10 @@ class DiagnosisDialog(QDialog):
)
self.prescribe_button.setVisible(self._editable and self._can_prescribe)
self.video_upload_button.setVisible(self._editable and self._can_video_upload)
+ self.local_audio_queue_button.setVisible(self._can_video_upload)
+ self.local_audio_queue_button.setEnabled(
+ self._diagnosis_id > 0 and self._can_video_upload
+ )
offset_visible = self._editable and self._can_offset
self.order_offset.setVisible(offset_visible)
self.order_offset_save.setVisible(offset_visible)
@@ -1914,6 +1934,10 @@ class DiagnosisDialog(QDialog):
with suppress(RuntimeError):
self._last_order_detail_dialog.close()
self._last_order_detail_dialog = None
+ if self._local_audio_dialog is not None:
+ with suppress(RuntimeError):
+ self._local_audio_dialog.close()
+ self._local_audio_dialog = None
self._diagnosis_id = int(diagnosis_id)
self._patient_id = 0
self._editable = bool(
@@ -1939,6 +1963,7 @@ class DiagnosisDialog(QDialog):
self._tab_generations[key] += 1
self._loaded_tabs.clear()
self._loading_tabs.clear()
+ self._video_reload_pending = False
self._daily_todo_status = None
self._orders_page = 1
self._orders_total = 0
@@ -2208,6 +2233,8 @@ class DiagnosisDialog(QDialog):
self._ensure_tab_loaded(self._current_tab_key(), force=True)
def _invalidate_requests(self) -> None:
+ self._stop_watching_local_audio_uploads()
+ self._video_reload_pending = False
self._generation += 1
self._save_generation += 1
self._orders_generation += 1
@@ -2232,6 +2259,11 @@ class DiagnosisDialog(QDialog):
with suppress(RuntimeError):
order_dialog.close()
self._last_order_detail_dialog = None
+ local_audio_dialog = getattr(self, "_local_audio_dialog", None)
+ if local_audio_dialog is not None:
+ with suppress(RuntimeError):
+ local_audio_dialog.close()
+ self._local_audio_dialog = None
if hasattr(self, "readonly_loading"):
self.readonly_loading.hide()
if hasattr(self, "drawer_loading"):
@@ -2474,7 +2506,11 @@ class DiagnosisDialog(QDialog):
def _tab_changed(self, _index: int) -> None:
self._sync_save_button()
if self._authoritative_detail_loaded and not self._standalone_readonly:
- self._ensure_tab_loaded(self._current_tab_key())
+ key = self._current_tab_key()
+ if key == "video":
+ self._reload_video_records(self._diagnosis_id)
+ else:
+ self._ensure_tab_loaded(key)
def _load_visible_readonly_sections(self) -> None:
permission_map = {key: codes for key, _label, codes in _TAB_DEFINITIONS}
@@ -2635,6 +2671,8 @@ class DiagnosisDialog(QDialog):
panel.set_messages(rows)
if not self._standalone_readonly and self._current_tab_key() == key:
self._clear_message()
+ if key == "video":
+ self._flush_video_reload_if_pending(diagnosis_id)
def _tab_load_error(
self,
@@ -2650,6 +2688,8 @@ class DiagnosisDialog(QDialog):
self._set_tab_error(key, text)
if not self._standalone_readonly and self._current_tab_key() == key:
self._show_message(text, "danger", action_text="重试")
+ if key == "video":
+ self._flush_video_reload_if_pending(diagnosis_id)
def _load_daily_range(self, start: str, end: str, *, force: bool = False) -> None:
key = "daily"
@@ -3116,6 +3156,91 @@ class DiagnosisDialog(QDialog):
"video",
)
+ def _open_local_audio_queue(self) -> None:
+ if self._diagnosis_id <= 0 or not self._can_video_upload:
+ self._show_message("当前账号无本机录音上传权限或接口不可用。", "warning")
+ return
+ current = self._local_audio_dialog
+ if current is not None and current.isVisible():
+ current.raise_()
+ current.activateWindow()
+ return
+ try:
+ dialog = LocalAudioQueueDialog(
+ self.repository,
+ self._diagnosis_id,
+ self,
+ )
+ except (OSError, RuntimeError, sqlite3.Error) as error:
+ self._show_message(f"无法打开本机录音文件:{error}", "danger")
+ return
+ self._local_audio_dialog = dialog
+ opened_diagnosis_id = self._diagnosis_id
+ self._watch_local_audio_uploads(dialog.manager)
+
+ def clear_dialog(_result: int) -> None:
+ if self._local_audio_dialog is dialog:
+ self._local_audio_dialog = None
+
+ dialog.finished.connect(clear_dialog)
+ dialog.open()
+ # Opening the queue commonly follows a background upload that completed
+ # before this dialog existed, so also refresh the server-backed rows now.
+ self._reload_video_records(opened_diagnosis_id)
+
+ def _local_audio_upload_succeeded(
+ self,
+ diagnosis_id: int,
+ _call_record_id: int,
+ ) -> None:
+ if self._local_audio_upload_manager is None:
+ return
+ self._reload_video_records(diagnosis_id)
+
+ def _reload_video_records(self, diagnosis_id: int) -> None:
+ if int(diagnosis_id) != self._diagnosis_id:
+ return
+ if "video" in self._loading_tabs:
+ self._video_reload_pending = True
+ return
+ self._video_reload_pending = False
+ self._loaded_tabs.discard("video")
+ self._ensure_tab_loaded("video", force=True)
+
+ def _watch_local_audio_uploads(self, manager: Any) -> None:
+ if self._local_audio_upload_manager is manager:
+ return
+ self._stop_watching_local_audio_uploads()
+
+ def notify(record: Any) -> None:
+ with suppress(RuntimeError):
+ self._local_audio_upload_completed.emit(
+ int(record.diagnosis_id),
+ int(record.call_record_id or 0),
+ )
+
+ manager.add_upload_listener(notify)
+ self._local_audio_upload_manager = manager
+ self._local_audio_upload_listener = notify
+
+ def _stop_watching_local_audio_uploads(self) -> None:
+ manager = self._local_audio_upload_manager
+ listener = self._local_audio_upload_listener
+ self._local_audio_upload_manager = None
+ self._local_audio_upload_listener = None
+ if manager is not None and listener is not None:
+ with suppress(Exception):
+ manager.remove_upload_listener(listener)
+
+ def _flush_video_reload_if_pending(self, diagnosis_id: int) -> None:
+ if not self._video_reload_pending or diagnosis_id != self._diagnosis_id:
+ return
+ self._video_reload_pending = False
+ QTimer.singleShot(
+ 0,
+ lambda expected_id=diagnosis_id: self._reload_video_records(expected_id),
+ )
+
def _sync_chat_archive(self) -> None:
if not self._can_chat_sync or self._diagnosis_id <= 0:
self._show_message("当前账号无聊天归档同步权限或接口不可用。", "warning")
@@ -3616,6 +3741,7 @@ class DiagnosisDialog(QDialog):
self._stop_inline_recordings()
matrix: list[tuple[Any, ...]] = []
row_urls: list[list[str]] = []
+ row_audio_urls: list[list[str]] = []
record_ids: list[int] = []
transcripts: list[str] = []
for row in rows:
@@ -3629,6 +3755,22 @@ class DiagnosisDialog(QDialog):
if url and url not in normalized:
normalized.append(url)
row_urls.append(normalized)
+ raw_audio_urls = first_value(
+ row,
+ "local_audio_urls_list",
+ "local_audio_urls",
+ default=[],
+ ) or []
+ if isinstance(raw_audio_urls, str) or not isinstance(
+ raw_audio_urls, Sequence
+ ):
+ raw_audio_urls = [raw_audio_urls]
+ normalized_audio: list[str] = []
+ for candidate in raw_audio_urls:
+ url = str(candidate or "").strip()
+ if url and url not in normalized_audio:
+ normalized_audio.append(url)
+ row_audio_urls.append(normalized_audio)
record_ids.append(_int(first_value(row, "id", "call_record_id"), 0))
transcript = self._call_transcript_text(row)
transcripts.append(transcript)
@@ -3651,22 +3793,41 @@ class DiagnosisDialog(QDialog):
recording_status = first_value(
row, "recording_status_text", "record_status_text", "record_status"
)
+ local_audio_status = first_value(
+ row,
+ "local_audio_status_text",
+ default="本机录音已保存" if normalized_audio else "无本机录音",
+ )
transcript_status = first_value(
row,
"transcription_status_text",
"transcript_status_text",
default="文字已生成" if transcript else "未生成文字",
)
+ room_id = str(
+ first_value(
+ row,
+ "room_id_text",
+ "room_id",
+ "room_no",
+ default="",
+ )
+ or ""
+ ).strip()
matrix.append(
(
"" if normalized else "暂无录制回放",
+ room_id or "历史记录未保存",
first_value(row, "start_time_text", "start_time"),
first_value(row, "end_time_text", "end_time"),
call_type,
- first_value(row, "room_id", "room_no"),
first_value(row, "duration_text", "duration"),
status,
- f"{display_text(recording_status)}\n{display_text(transcript_status)}",
+ (
+ f"云端视频:{display_text(recording_status)}\n"
+ f"本机录音:{display_text(local_audio_status)}\n"
+ f"转写文字:{display_text(transcript_status)}"
+ ),
"",
)
)
@@ -3692,6 +3853,19 @@ class DiagnosisDialog(QDialog):
item.setText("")
call_record_id = record_ids[row_index]
actions: list[QPushButton] = []
+ audio_urls = row_audio_urls[row_index]
+ if audio_urls and call_record_id > 0:
+ play_audio = self._action_button(
+ "播放录音", f"播放通话记录 #{call_record_id} 的本机混音录音"
+ )
+ play_audio.setObjectName("DiagnosisLocalAudioPlayback")
+ play_audio.setProperty("callRecordId", call_record_id)
+ play_audio.clicked.connect(
+ lambda _checked=False, target=audio_urls[0]: self._open_recording_player(
+ target
+ )
+ )
+ actions.append(play_audio)
transcript = transcripts[row_index]
if transcript and call_record_id > 0:
view_transcript = self._action_button(
diff --git a/app/src/doctor_workstation/ui/dialogs/local_audio_queue.py b/app/src/doctor_workstation/ui/dialogs/local_audio_queue.py
new file mode 100644
index 000000000..dcc90add1
--- /dev/null
+++ b/app/src/doctor_workstation/ui/dialogs/local_audio_queue.py
@@ -0,0 +1,625 @@
+"""Local call-audio upload queue shown from a diagnosis video-history tab."""
+
+from __future__ import annotations
+
+from collections.abc import Mapping
+from datetime import datetime, timedelta, timezone
+from pathlib import Path
+from typing import Any
+
+from PySide6.QtCore import Qt, QTimer, QUrl
+from PySide6.QtGui import QColor, QDesktopServices
+from PySide6.QtWidgets import (
+ QAbstractItemView,
+ QDialog,
+ QFrame,
+ QHBoxLayout,
+ QHeaderView,
+ QLabel,
+ QPushButton,
+ QTableWidget,
+ QTableWidgetItem,
+ QVBoxLayout,
+ QWidget,
+)
+
+from ...services.local_audio_queue import (
+ LocalAudioQueueStore,
+ LocalAudioRecord,
+ LocalAudioUploadManager,
+ get_local_audio_upload_manager,
+)
+from ..widgets import run_async
+
+_STATUS_LABELS = {
+ "recording": "录制中",
+ "pending": "待上传",
+ "uploading": "上传中",
+ "uploaded": "已上传",
+ "failed": "上传失败",
+ "invalid": "无效录音",
+}
+_STATUS_COLORS = {
+ "recording": "#5364F5",
+ "pending": "#B26A00",
+ "uploading": "#2F6FEB",
+ "uploaded": "#07966B",
+ "failed": "#DC4054",
+ "invalid": "#7886AA",
+}
+_BUSINESS_TIMEZONE = timezone(timedelta(hours=8))
+
+_LOCAL_AUDIO_QSS = """
+QDialog#LocalAudioQueueDialog {
+ background: #F6F8FD;
+ color: #111F46;
+}
+QFrame#LocalAudioQueueHeader, QFrame#LocalAudioQueueSummary,
+QFrame#LocalAudioQueueTableCard, QFrame#LocalAudioQueueFooter {
+ background: #FFFFFF;
+ border: 1px solid #E2E7F4;
+ border-radius: 14px;
+}
+QLabel#LocalAudioQueueTitle {
+ color: #111F46;
+ font-size: 20px;
+ font-weight: 700;
+}
+QLabel#LocalAudioQueueSubtitle, QLabel#LocalAudioQueueHint {
+ color: #6E7C9F;
+ font-size: 13px;
+}
+QLabel[queueSummary="true"] {
+ background: #F3F5FB;
+ border: 1px solid #E6EAF5;
+ border-radius: 10px;
+ color: #3F4E75;
+ font-size: 13px;
+ font-weight: 600;
+ padding: 8px 12px;
+}
+QPushButton {
+ min-height: 34px;
+ border: 1px solid #D9E0F2;
+ border-radius: 9px;
+ background: #FFFFFF;
+ color: #354365;
+ padding: 0 14px;
+ font-weight: 600;
+}
+QPushButton:hover { background: #F1F3FF; border-color: #AEB8FF; }
+QPushButton:disabled { color: #A5AFC6; background: #F7F8FC; }
+QPushButton[variant="primary"] {
+ color: #FFFFFF;
+ background: #5661F4;
+ border-color: #5661F4;
+}
+QPushButton[variant="danger"] { color: #D83E51; background: #FFF6F7; }
+QTableWidget#LocalAudioQueueTable {
+ background: #FFFFFF;
+ alternate-background-color: #FAFBFE;
+ border: 0;
+ gridline-color: #E8ECF5;
+ color: #263452;
+ selection-background-color: #EEF1FF;
+ selection-color: #111F46;
+}
+QTableWidget#LocalAudioQueueTable::item { padding: 8px; }
+QHeaderView::section {
+ background: #F5F7FC;
+ color: #53617F;
+ border: 0;
+ border-bottom: 1px solid #E1E6F1;
+ padding: 10px 8px;
+ font-weight: 700;
+}
+"""
+
+
+def _human_size(size: int) -> str:
+ value = max(0, int(size))
+ if value < 1024:
+ return f"{value} B"
+ if value < 1024 * 1024:
+ return f"{value / 1024:.1f} KB"
+ return f"{value / 1024 / 1024:.1f} MB"
+
+
+def _display_time(value: str) -> str:
+ raw = str(value or "").strip()
+ if not raw:
+ return "—"
+ try:
+ parsed = datetime.fromisoformat(raw.replace("Z", "+00:00"))
+ except ValueError:
+ return raw.replace("T", " ")
+ if parsed.tzinfo is not None:
+ parsed = parsed.astimezone(_BUSINESS_TIMEZONE)
+ return parsed.strftime("%Y-%m-%d %H:%M:%S")
+
+
+class LocalAudioQueueDialog(QDialog):
+ """Persistent local-audio list with concurrent upload and retry."""
+
+ def __init__(
+ self,
+ repository: Any,
+ diagnosis_id: int | None,
+ parent: QWidget | None = None,
+ *,
+ store: LocalAudioQueueStore | None = None,
+ manager: LocalAudioUploadManager | None = None,
+ ) -> None:
+ super().__init__(parent)
+ self.repository = repository
+ self._global_scope = diagnosis_id is None
+ self.diagnosis_id = int(diagnosis_id) if diagnosis_id is not None else None
+ if manager is None:
+ self.store, self.manager = get_local_audio_upload_manager(repository, store)
+ else:
+ self.store = store or manager.store
+ self.manager = manager
+ self._signature: tuple[Any, ...] = ()
+ self._room_fetch_generation = 0
+ self._room_fetch_inflight: set[int] = set()
+ self._room_fetch_attempted: set[int] = set()
+ self._room_fetch_errors: dict[int, str] = {}
+ self._closed = False
+
+ self.setObjectName("LocalAudioQueueDialog")
+ self.setProperty("businessDialog", True)
+ self.setWindowTitle(
+ "本机录音上传管理" if self._global_scope else "本机录音文件"
+ )
+ self.setModal(True)
+ self.setMinimumSize(760, 480)
+ self.resize(1160, 620)
+ self.setStyleSheet(_LOCAL_AUDIO_QSS)
+ self._build_ui()
+
+ self.poll_timer = QTimer(self)
+ self.poll_timer.setInterval(500)
+ self.poll_timer.timeout.connect(self.refresh_records)
+ self.poll_timer.start()
+ self.manager.submit_pending(diagnosis_id=self.diagnosis_id)
+ self.refresh_records(force=True)
+
+ def _build_ui(self) -> None:
+ root = QVBoxLayout(self)
+ root.setContentsMargins(18, 18, 18, 18)
+ root.setSpacing(12)
+
+ header = QFrame()
+ header.setObjectName("LocalAudioQueueHeader")
+ header_layout = QVBoxLayout(header)
+ header_layout.setContentsMargins(18, 14, 18, 14)
+ header_layout.setSpacing(4)
+ self.title_label = QLabel(
+ "本机录音上传管理" if self._global_scope else "本机录音文件"
+ )
+ self.title_label.setObjectName("LocalAudioQueueTitle")
+ header_layout.addWidget(self.title_label)
+ if self._global_scope:
+ subtitle_text = (
+ "集中查看所有诊单的本机录音上传记录;成功文件和未成功文件都会保留。"
+ "最多同时上传 3 个文件,失败后可重试。"
+ )
+ else:
+ subtitle_text = (
+ "每次通话的本地录音会先保存在本机,再上传到 COS;最多同时上传 3 个文件。"
+ "上传失败不会删除文件,可随时重试。"
+ )
+ subtitle = QLabel(subtitle_text)
+ subtitle.setObjectName("LocalAudioQueueSubtitle")
+ subtitle.setWordWrap(True)
+ header_layout.addWidget(subtitle)
+ root.addWidget(header)
+
+ summary = QFrame()
+ summary.setObjectName("LocalAudioQueueSummary")
+ summary_layout = QHBoxLayout(summary)
+ summary_layout.setContentsMargins(12, 10, 12, 10)
+ summary_layout.setSpacing(8)
+ self.summary_total = self._summary_label()
+ self.summary_pending = self._summary_label()
+ self.summary_uploading = self._summary_label()
+ self.summary_uploaded = self._summary_label()
+ self.summary_failed = self._summary_label()
+ for label in (
+ self.summary_total,
+ self.summary_pending,
+ self.summary_uploading,
+ self.summary_uploaded,
+ self.summary_failed,
+ ):
+ summary_layout.addWidget(label)
+ summary_layout.addStretch(1)
+ self.upload_pending_button = QPushButton("上传待处理")
+ self.upload_pending_button.setObjectName("LocalAudioUploadPendingButton")
+ self.upload_pending_button.setProperty("variant", "primary")
+ self.upload_pending_button.clicked.connect(self._upload_pending)
+ summary_layout.addWidget(self.upload_pending_button)
+ self.retry_failed_button = QPushButton("重试全部失败")
+ self.retry_failed_button.setObjectName("LocalAudioRetryAllButton")
+ self.retry_failed_button.setProperty("variant", "danger")
+ self.retry_failed_button.clicked.connect(self._retry_all_failed)
+ summary_layout.addWidget(self.retry_failed_button)
+ refresh_button = QPushButton("刷新")
+ refresh_button.setObjectName("LocalAudioRefreshButton")
+ refresh_button.clicked.connect(self._manual_refresh)
+ summary_layout.addWidget(refresh_button)
+ root.addWidget(summary)
+
+ card = QFrame()
+ card.setObjectName("LocalAudioQueueTableCard")
+ card_layout = QVBoxLayout(card)
+ card_layout.setContentsMargins(1, 1, 1, 1)
+ headers = ["录制时间"]
+ if self._global_scope:
+ headers.append("诊单 ID")
+ headers.extend(
+ [
+ "通话记录 ID",
+ "房间号",
+ "音频文件",
+ "大小",
+ "上传状态",
+ "失败原因",
+ "操作",
+ ]
+ )
+ self._diagnosis_column = 1 if self._global_scope else None
+ self._call_column = 2 if self._global_scope else 1
+ self._room_column = 3 if self._global_scope else 2
+ self._file_column = 4 if self._global_scope else 3
+ self._size_column = 5 if self._global_scope else 4
+ self._status_column = 6 if self._global_scope else 5
+ self._error_column = 7 if self._global_scope else 6
+ self._action_column = 8 if self._global_scope else 7
+
+ self.table = QTableWidget(0, len(headers))
+ self.table.setObjectName("LocalAudioQueueTable")
+ self.table.setHorizontalHeaderLabels(headers)
+ self.table.verticalHeader().hide()
+ self.table.setAlternatingRowColors(True)
+ self.table.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
+ self.table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
+ self.table.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
+ self.table.setWordWrap(False)
+ header_view = self.table.horizontalHeader()
+ header_view.setSectionResizeMode(QHeaderView.ResizeMode.Interactive)
+ header_view.setSectionResizeMode(
+ self._file_column, QHeaderView.ResizeMode.Stretch
+ )
+ header_view.setSectionResizeMode(
+ self._error_column, QHeaderView.ResizeMode.Stretch
+ )
+ self.table.setColumnWidth(0, 160)
+ if self._diagnosis_column is not None:
+ self.table.setColumnWidth(self._diagnosis_column, 90)
+ self.table.setColumnWidth(self._call_column, 90)
+ self.table.setColumnWidth(self._room_column, 180)
+ self.table.setColumnWidth(self._size_column, 88)
+ self.table.setColumnWidth(self._status_column, 100)
+ self.table.setColumnWidth(self._action_column, 190)
+ card_layout.addWidget(self.table)
+ root.addWidget(card, 1)
+
+ footer = QFrame()
+ footer.setObjectName("LocalAudioQueueFooter")
+ footer_layout = QHBoxLayout(footer)
+ footer_layout.setContentsMargins(14, 9, 14, 9)
+ hint = QLabel("已上传文件仍保留在本机;请按机构的数据保留制度定期归档。")
+ hint.setObjectName("LocalAudioQueueHint")
+ footer_layout.addWidget(hint, 1)
+ close_button = QPushButton("关闭")
+ close_button.setObjectName("LocalAudioQueueCloseButton")
+ close_button.setProperty("variant", "primary")
+ close_button.clicked.connect(self.accept)
+ footer_layout.addWidget(close_button)
+ root.addWidget(footer)
+
+ @staticmethod
+ def _summary_label() -> QLabel:
+ label = QLabel()
+ label.setProperty("queueSummary", True)
+ return label
+
+ def _records(self) -> list[LocalAudioRecord]:
+ return self.store.list_records(diagnosis_id=self.diagnosis_id)
+
+ def refresh_records(self, *, force: bool = False) -> None:
+ records = self._records()
+ self._schedule_room_lookups(records)
+ signature = tuple(
+ (
+ record.id,
+ record.diagnosis_id,
+ record.status,
+ record.error_text,
+ record.call_record_id,
+ record.room_id,
+ record.size_bytes,
+ record.uploaded_url,
+ record.exists,
+ record.attempts,
+ self._room_fetch_state(record),
+ )
+ for record in records
+ )
+ if not force and signature == self._signature:
+ return
+ self._signature = signature
+ self._update_summary(records)
+ self.table.setRowCount(len(records))
+ for row, record in enumerate(records):
+ self.table.setRowHeight(row, 54)
+ self._set_item(row, 0, _display_time(record.created_at))
+ if self._diagnosis_column is not None:
+ self._set_item(row, self._diagnosis_column, str(record.diagnosis_id))
+ self._set_item(
+ row, self._call_column, str(record.call_record_id or "待关联")
+ )
+ room_text, room_tooltip = self._room_display(record)
+ room_item = self._set_item(row, self._room_column, room_text)
+ room_item.setToolTip(room_tooltip)
+ file_item = self._set_item(row, self._file_column, record.file_path.name)
+ file_item.setToolTip(str(record.file_path))
+ self._set_item(row, self._size_column, _human_size(record.size_bytes))
+ status_item = self._set_item(
+ row,
+ self._status_column,
+ _STATUS_LABELS.get(record.status, record.status),
+ )
+ status_item.setForeground(QColor(_STATUS_COLORS.get(record.status, "#53617F")))
+ status_item.setToolTip(
+ f"已尝试 {record.attempts} 次"
+ + (f"\nCOS:{record.uploaded_url}" if record.uploaded_url else "")
+ )
+ error_item = self._set_item(
+ row, self._error_column, record.error_text or "—"
+ )
+ error_item.setToolTip(record.error_text)
+ self.table.setCellWidget(row, self._action_column, self._actions(record))
+
+ def _room_fetch_state(self, record: LocalAudioRecord) -> str:
+ diagnosis_id = record.diagnosis_id
+ if record.room_id:
+ return record.room_id
+ if diagnosis_id in self._room_fetch_inflight:
+ return "loading"
+ if diagnosis_id in self._room_fetch_errors:
+ return f"error:{self._room_fetch_errors[diagnosis_id]}"
+ if diagnosis_id in self._room_fetch_attempted:
+ return "missing"
+ return "idle"
+
+ def _room_display(self, record: LocalAudioRecord) -> tuple[str, str]:
+ if record.room_id:
+ return record.room_id, record.room_id
+ if record.call_record_id is None:
+ return "—", "尚未关联通话记录,无法取得房间号。"
+ diagnosis_id = record.diagnosis_id
+ if diagnosis_id in self._room_fetch_inflight:
+ return "查询中…", "正在从服务端通话记录查询房间号。"
+ error = self._room_fetch_errors.get(diagnosis_id)
+ if error:
+ return "获取失败", error
+ return "未记录", "服务端通话记录未保存房间号。"
+
+ def _schedule_room_lookups(self, records: list[LocalAudioRecord]) -> None:
+ if self._closed:
+ return
+ method = getattr(self.repository, "list_call_records", None)
+ if not callable(method):
+ method = getattr(self.repository, "get_call_records", None)
+ if not callable(method):
+ return
+
+ target_ids: dict[int, set[int]] = {}
+ for record in records:
+ call_record_id = int(record.call_record_id or 0)
+ if record.room_id or call_record_id <= 0:
+ continue
+ target_ids.setdefault(record.diagnosis_id, set()).add(call_record_id)
+ diagnosis_ids = tuple(
+ sorted(
+ diagnosis_id
+ for diagnosis_id in target_ids
+ if diagnosis_id not in self._room_fetch_inflight
+ and diagnosis_id not in self._room_fetch_attempted
+ )
+ )
+ if not diagnosis_ids:
+ return
+
+ generation = self._room_fetch_generation
+ self._room_fetch_inflight.update(diagnosis_ids)
+ self._room_fetch_attempted.update(diagnosis_ids)
+
+ def load_rooms() -> tuple[dict[tuple[int, int], str], dict[int, str]]:
+ rooms: dict[tuple[int, int], str] = {}
+ errors: dict[int, str] = {}
+ for diagnosis_id in diagnosis_ids:
+ try:
+ payload = method(diagnosis_id)
+ rows = payload if isinstance(payload, list) else []
+ for row in rows:
+ if not isinstance(row, Mapping):
+ continue
+ raw_record_id = row.get("id", row.get("call_record_id"))
+ try:
+ call_record_id = int(raw_record_id or 0)
+ except (TypeError, ValueError):
+ continue
+ if call_record_id not in target_ids[diagnosis_id]:
+ continue
+ room_id = str(
+ row.get("room_id")
+ or row.get("roomId")
+ or row.get("room_id_text")
+ or row.get("room_no")
+ or ""
+ ).strip()
+ if room_id and room_id != "0":
+ rooms[(diagnosis_id, call_record_id)] = room_id
+ except Exception as error:
+ errors[diagnosis_id] = str(error)[:300] or "房间号获取失败。"
+ return rooms, errors
+
+ run_async(
+ load_rooms,
+ on_success=lambda result: self._apply_room_lookups(
+ generation,
+ diagnosis_ids,
+ result,
+ ),
+ on_error=lambda error: self._fail_room_lookups(
+ generation,
+ diagnosis_ids,
+ error,
+ ),
+ )
+
+ def _apply_room_lookups(
+ self,
+ generation: int,
+ diagnosis_ids: tuple[int, ...],
+ result: tuple[dict[tuple[int, int], str], dict[int, str]],
+ ) -> None:
+ if self._closed or generation != self._room_fetch_generation:
+ return
+ rooms, errors = result
+ self._room_fetch_inflight.difference_update(diagnosis_ids)
+ self._room_fetch_errors.update(errors)
+ records_by_key: dict[tuple[int, int], list[LocalAudioRecord]] = {}
+ for record in self._records():
+ if record.call_record_id is None:
+ continue
+ key = (record.diagnosis_id, record.call_record_id)
+ records_by_key.setdefault(key, []).append(record)
+ for key, room_id in rooms.items():
+ for record in records_by_key.get(key, []):
+ try:
+ self.store.bind_identity(
+ record.id,
+ call_record_id=key[1],
+ room_id=room_id,
+ )
+ except (LookupError, RuntimeError, ValueError) as error:
+ self._room_fetch_errors[key[0]] = str(error)[:300]
+ self.refresh_records(force=True)
+
+ def _fail_room_lookups(
+ self,
+ generation: int,
+ diagnosis_ids: tuple[int, ...],
+ error: Exception,
+ ) -> None:
+ if self._closed or generation != self._room_fetch_generation:
+ return
+ self._room_fetch_inflight.difference_update(diagnosis_ids)
+ message = str(error)[:300] or "房间号获取失败。"
+ self._room_fetch_errors.update(
+ {diagnosis_id: message for diagnosis_id in diagnosis_ids}
+ )
+ self.refresh_records(force=True)
+
+ def _manual_refresh(self) -> None:
+ self._room_fetch_generation += 1
+ self._room_fetch_inflight.clear()
+ self._room_fetch_attempted.clear()
+ self._room_fetch_errors.clear()
+ self.refresh_records(force=True)
+
+ def _set_item(self, row: int, column: int, text: str) -> QTableWidgetItem:
+ item = QTableWidgetItem(str(text))
+ item.setTextAlignment(Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft)
+ self.table.setItem(row, column, item)
+ return item
+
+ def _update_summary(self, records: list[LocalAudioRecord]) -> None:
+ counts = {status: 0 for status in _STATUS_LABELS}
+ for record in records:
+ counts[record.status] = counts.get(record.status, 0) + 1
+ self.summary_total.setText(f"全部 {len(records)}")
+ self.summary_pending.setText(f"待上传 {counts['pending']}")
+ self.summary_uploading.setText(f"上传中 {counts['uploading']}")
+ self.summary_uploaded.setText(f"已上传 {counts['uploaded']}")
+ self.summary_failed.setText(f"失败 {counts['failed']}")
+ self.upload_pending_button.setEnabled(counts["pending"] > 0)
+ self.retry_failed_button.setEnabled(counts["failed"] > 0)
+
+ def _actions(self, record: LocalAudioRecord) -> QWidget:
+ host = QWidget()
+ layout = QHBoxLayout(host)
+ layout.setContentsMargins(4, 5, 4, 5)
+ layout.setSpacing(5)
+ if record.status == "pending":
+ upload = QPushButton("上传")
+ upload.setAccessibleName(f"上传录音 {record.file_path.name}")
+ upload.clicked.connect(lambda _checked=False, record_id=record.id: self._upload_one(record_id))
+ layout.addWidget(upload)
+ elif record.status == "failed":
+ retry = QPushButton("重试")
+ retry.setProperty("variant", "danger")
+ retry.setAccessibleName(f"重试上传录音 {record.file_path.name}")
+ retry.clicked.connect(lambda _checked=False, record_id=record.id: self._retry_one(record_id))
+ layout.addWidget(retry)
+ elif record.status == "uploading":
+ busy = QPushButton("上传中")
+ busy.setEnabled(False)
+ layout.addWidget(busy)
+ if record.exists:
+ reveal = QPushButton("打开位置")
+ reveal.setAccessibleName(f"打开录音文件位置 {record.file_path.name}")
+ reveal.clicked.connect(
+ lambda _checked=False, path=record.file_path: self._open_location(path)
+ )
+ layout.addWidget(reveal)
+ layout.addStretch(1)
+ return host
+
+ def _upload_pending(self) -> None:
+ self.manager.submit_pending(diagnosis_id=self.diagnosis_id)
+ self.refresh_records(force=True)
+
+ def _upload_one(self, record_id: int) -> None:
+ self.manager.submit(record_id)
+ self.refresh_records(force=True)
+
+ def _retry_one(self, record_id: int) -> None:
+ try:
+ self.store.retry(record_id)
+ except (OSError, RuntimeError, LookupError) as error:
+ self._show_local_error(str(error))
+ return
+ self.manager.submit(record_id)
+ self.refresh_records(force=True)
+
+ def _retry_all_failed(self) -> None:
+ for record in self._records():
+ if record.status != "failed":
+ continue
+ try:
+ self.store.retry(record.id)
+ except (OSError, RuntimeError, LookupError):
+ continue
+ self.manager.submit(record.id)
+ self.refresh_records(force=True)
+
+ def _show_local_error(self, message: str) -> None:
+ self.summary_failed.setText(str(message)[:160])
+ self.summary_failed.setToolTip(str(message))
+
+ @staticmethod
+ def _open_location(path: Path) -> None:
+ target = path.parent if path.parent.is_dir() else path
+ QDesktopServices.openUrl(QUrl.fromLocalFile(str(target)))
+
+ def done(self, result: int) -> None:
+ self._closed = True
+ self._room_fetch_generation += 1
+ if hasattr(self, "poll_timer"):
+ self.poll_timer.stop()
+ super().done(result)
diff --git a/app/src/doctor_workstation/ui/dialogs/prescription_ai.py b/app/src/doctor_workstation/ui/dialogs/prescription_ai.py
index b512e2482..df9e153ce 100644
--- a/app/src/doctor_workstation/ui/dialogs/prescription_ai.py
+++ b/app/src/doctor_workstation/ui/dialogs/prescription_ai.py
@@ -8,7 +8,7 @@ from collections.abc import Callable
from dataclasses import dataclass, field
from typing import Any
-from PySide6.QtCore import Qt
+from PySide6.QtCore import QCoreApplication, QEvent, Qt
from PySide6.QtWidgets import (
QDialog,
QFrame,
@@ -1086,11 +1086,15 @@ class PrescriptionAiReportDialog(QDialog):
def _clear_host(self) -> None:
while self.host_layout.count():
- item = self.host_layout.takeAt(0)
- widget = item.widget()
- if widget is not None:
- widget.setParent(None)
- widget.deleteLater()
+ item = self.host_layout.takeAt(0)
+ widget = item.widget()
+ if widget is not None:
+ # Keep the parent until Qt processes the deferred deletion.
+ # Detaching a visible child promotes it to a native top-level
+ # window on Windows and causes a small title-bar window to flash.
+ widget.hide()
+ widget.deleteLater()
+ QCoreApplication.sendPostedEvents(widget, QEvent.Type.DeferredDelete)
def _add_label(
self,
diff --git a/app/src/doctor_workstation/ui/pages/appointments.py b/app/src/doctor_workstation/ui/pages/appointments.py
index 827a4e6b9..70e27acbb 100644
--- a/app/src/doctor_workstation/ui/pages/appointments.py
+++ b/app/src/doctor_workstation/ui/pages/appointments.py
@@ -9,8 +9,8 @@ from html import escape
from types import MappingProxyType
from typing import Any
-from PySide6.QtCore import QDate, QSize, Qt, QTimer, QUrl, Signal
-from PySide6.QtGui import QAction, QBrush, QColor, QDesktopServices, QPixmap
+from PySide6.QtCore import QDate, Qt, QTimer, QUrl, Signal
+from PySide6.QtGui import QBrush, QColor, QDesktopServices, QPixmap
from PySide6.QtWidgets import (
QAbstractItemView,
QButtonGroup,
@@ -21,10 +21,9 @@ from PySide6.QtWidgets import (
QDialogButtonBox,
QFrame,
QHBoxLayout,
+ QHeaderView,
QLabel,
QLineEdit,
- QListWidget,
- QListWidgetItem,
QMenu,
QMessageBox,
QPushButton,
@@ -104,8 +103,7 @@ APPOINTMENTS_LIGHT_QSS = """
border: 1px solid #E2E7F4;
border-radius: 10px;
}
-#AppointmentsPage QFrame#AppointmentMainCard,
-#AppointmentsPage QFrame#VideoConsultPanel {
+#AppointmentsPage QFrame#AppointmentMainCard {
background-color: #FFFFFF;
border: 1px solid #E2E7F4;
border-radius: 10px;
@@ -209,6 +207,34 @@ APPOINTMENTS_LIGHT_QSS = """
border-radius: 4px;
font-size: 10px;
}
+#AppointmentsPage QWidget[appointmentImHost="true"] {
+ background-color: transparent;
+}
+#AppointmentsPage QPushButton[appointmentImAction="true"] {
+ min-width: 74px;
+ min-height: 26px;
+ max-height: 26px;
+ padding: 0 9px;
+ color: #5265F6;
+ background-color: #F0F2FF;
+ border: 1px solid #D7DEFF;
+ border-radius: 7px;
+ font-size: 11px;
+ font-weight: 600;
+}
+#AppointmentsPage QPushButton[appointmentImAction="true"]:hover {
+ color: #FFFFFF;
+ background-color: #5265F6;
+ border-color: #5265F6;
+}
+#AppointmentsPage QPushButton[appointmentImAction="true"]:focus {
+ border-color: #8D9BFF;
+}
+#AppointmentsPage QPushButton[appointmentImAction="true"]:disabled {
+ color: #98A3BC;
+ background-color: #F7F8FC;
+ border-color: #E4E8F2;
+}
#AppointmentsPage QWidget[appointmentInfoHost="true"] {
background-color: #FFFFFF;
}
@@ -257,77 +283,6 @@ APPOINTMENTS_LIGHT_QSS = """
background-color: #EEF1FF;
border-bottom-color: #5265F6;
}
-#AppointmentsPage QLabel#VideoConsultTitle {
- color: #15224A;
- font-size: 16px;
- font-weight: 700;
-}
-#AppointmentsPage QListWidget#VideoConsultList {
- background-color: transparent;
- border: 0;
- border-radius: 0;
- outline: 0;
-}
-#AppointmentsPage QListWidget#VideoConsultList::item {
- min-height: 80px;
- margin: 0 0 7px 0;
- padding: 0;
- background-color: transparent;
- border: 0;
-}
-#AppointmentsPage QListWidget#VideoConsultList::item:hover {
- background-color: transparent;
-}
-#AppointmentsPage QListWidget#VideoConsultList::item:selected {
- background-color: transparent;
-}
-#AppointmentsPage QFrame[videoPatientCard="true"] {
- background-color: #FCFDFF;
- border: 1px solid #E1E6F1;
- border-radius: 9px;
-}
-#AppointmentsPage QFrame[videoPatientCard="true"]:hover {
- background-color: #F9FAFF;
- border-color: #C9D2FF;
-}
-#AppointmentsPage QLabel[videoStatus="true"] {
- min-height: 20px;
- max-height: 20px;
- padding: 0 7px;
- color: #5265F6;
- background-color: #EEF1FF;
- border-radius: 5px;
- font-size: 10px;
- font-weight: 600;
-}
-#AppointmentsPage QLabel[videoStatusKind="warning"] {
- color: #B97715;
- background-color: #FFF4DF;
-}
-#AppointmentsPage QLabel[videoIdentity="true"] {
- color: #24335E;
- font-size: 12px;
- font-weight: 600;
-}
-#AppointmentsPage QLabel[videoAssistant="true"] {
- color: #59698E;
- font-size: 11px;
-}
-#AppointmentsPage QPushButton[videoAction="true"] {
- min-height: 20px;
- max-height: 20px;
- padding: 0 5px;
- color: #5265F6;
- background-color: transparent;
- border: 0;
- border-radius: 4px;
- font-size: 10px;
-}
-#AppointmentsPage QPushButton[videoAction="true"]:hover {
- background-color: #EEF1FF;
-}
-#AppointmentsPage QPushButton[videoActionKind="success"] { color: #159C79; }
-#AppointmentsPage QPushButton[videoActionKind="warning"] { color: #C17A16; }
#AppointmentsPage QPushButton[filterChoice="true"] {
min-height: 28px;
max-height: 28px;
@@ -342,11 +297,6 @@ APPOINTMENTS_LIGHT_QSS = """
background-color: #F0F1FF;
border-color: #E0E4FF;
}
-#AppointmentsPage QPushButton#VideoMoreButton {
- min-height: 36px;
- color: #405074;
- background-color: #FFFFFF;
-}
"""
@@ -452,14 +402,37 @@ def _status_value(row: Any) -> int:
return _as_int(first_value(row, "status", default=0))
+_IM_CONSULT_ACTIVE_STATUSES = frozenset({1, 4})
+
+
+def _im_consult_status_error(row: Any) -> str:
+ """Return why a queue row cannot open the doctor's IM consultation."""
+
+ status = _status_value(row)
+ if status in _IM_CONSULT_ACTIVE_STATUSES:
+ return ""
+ if status == 2:
+ return "已取消的挂号不可进入 IM 问诊"
+ if status == 3:
+ return "已完成的挂号不可再进入 IM 问诊"
+ return "当前挂号状态不可进入 IM 问诊"
+
+
def prescription_action_label(row: Any) -> str:
audit = _as_int(first_value(row, "prescription_audit_status", "audit_status"), -1)
voided = _as_int(first_value(row, "prescription_void_status", "void_status"), 0)
- explicit = first_value(row, "has_prescription", default=None)
+ explicit = first_value(row, "current_has_prescription", default=None)
+ if explicit is None and _as_int(first_value(row, "current_prescription_id", default=0)) <= 0:
+ explicit = first_value(row, "has_prescription", default=None)
has_prescription = (
_as_bool(explicit)
if explicit is not None
- else _as_int(first_value(row, "prescription_id", default=0), 0) > 0 or audit in {0, 1, 2}
+ else _as_int(
+ first_value(row, "current_prescription_id", "prescription_id", default=0),
+ 0,
+ )
+ > 0
+ or audit in {0, 1, 2}
)
if not has_prescription:
return "开方"
@@ -689,7 +662,6 @@ class AppointmentsPage(QWidget):
self._dict_labels: dict[str, dict[str, str]] = {}
self._last_render_signature: tuple[Any, ...] | None = None
self._responsive_narrow: bool | None = None
- self._video_panel_user_open = False
self._can_plain_phone = _canonical_allowed(
permissions, "tcm.diagnosis/phonePlain", default=False
)
@@ -889,35 +861,9 @@ class AppointmentsPage(QWidget):
layout.setSpacing(4)
self.content_layout = layout
self.table_card = self._build_table_card()
- self.video_panel = self._build_video_panel()
- layout.addWidget(self.table_card, 3)
- layout.addWidget(self.video_panel, 1)
+ layout.addWidget(self.table_card, 1)
return host
- def _build_video_panel(self) -> QWidget:
- panel = QFrame()
- panel.setObjectName("VideoConsultPanel")
- panel.setMinimumWidth(0)
- panel.setMaximumWidth(420)
- layout = QVBoxLayout(panel)
- layout.setContentsMargins(14, 12, 14, 8)
- layout.setSpacing(8)
- title = QLabel("视频问诊")
- title.setObjectName("VideoConsultTitle")
- layout.addWidget(title)
- self.video_list = QListWidget()
- self.video_list.setObjectName("VideoConsultList")
- self.video_list.setSpacing(0)
- self.video_list.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
- self.video_list.currentRowChanged.connect(self._video_row_selected)
- self.video_list.itemDoubleClicked.connect(lambda _item: self._open_detail())
- layout.addWidget(self.video_list, 1)
- more = QPushButton("查看更多患者 ﹀")
- more.setObjectName("VideoMoreButton")
- more.clicked.connect(lambda: self.pager.next.click())
- layout.addWidget(more)
- return panel
-
def _build_table_card(self) -> QWidget:
card = QFrame()
card.setObjectName("AppointmentMainCard")
@@ -1004,12 +950,6 @@ class AppointmentsPage(QWidget):
self.toolbar_cancel_button.setEnabled(False)
self.toolbar_cancel_button.clicked.connect(self._cancel_selected)
actions.addWidget(self.toolbar_cancel_button)
- self.video_panel_button = QPushButton("视频问诊", card)
- self.video_panel_button.setCheckable(True)
- self.video_panel_button.setProperty("variant", "ghost")
- self.video_panel_button.setProperty("compactAction", True)
- self.video_panel_button.clicked.connect(self._toggle_video_panel)
- actions.addWidget(self.video_panel_button)
actions.addStretch(1)
refresh = QPushButton("刷新", card)
refresh.setProperty("variant", "ghost")
@@ -1034,13 +974,23 @@ class AppointmentsPage(QWidget):
TableColumn("assistant_name", "助理", 110),
TableColumn("has_prescription", "开方", 108, formatter=_prescription_cell),
TableColumn("unserved_days", "未服务天数", 112, formatter=_unserved_cell),
+ TableColumn(
+ "_im_consult",
+ "IM 问诊",
+ 104,
+ alignment=Qt.AlignmentFlag.AlignCenter,
+ ),
]
)
self.table.setObjectName("AppointmentTable")
self.table.setMinimumHeight(0)
self.table.setWordWrap(True)
self.table.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
- self.table.horizontalHeader().setFixedHeight(34)
+ header = self.table.horizontalHeader()
+ header.setFixedHeight(34)
+ header.setStretchLastSection(False)
+ header.setSectionResizeMode(4, QHeaderView.ResizeMode.Stretch)
+ header.setSectionResizeMode(10, QHeaderView.ResizeMode.Fixed)
self.table.verticalHeader().setDefaultSectionSize(60)
self.table.itemSelectionChanged.connect(self._selection_changed)
self.table.itemDoubleClicked.connect(lambda _item: self._open_detail())
@@ -1051,157 +1001,21 @@ class AppointmentsPage(QWidget):
layout.addWidget(self.pager)
return card
- def _toggle_video_panel(self, checked: bool) -> None:
- self._video_panel_user_open = checked
- self._apply_responsive_layout()
-
def _apply_responsive_layout(self) -> None:
- """Keep the table usable while retaining a video-list entry at low widths."""
+ """Collapse only the date filters when horizontal space is limited."""
- panel = getattr(self, "video_panel", None)
- button = getattr(self, "video_panel_button", None)
- if not isinstance(panel, QWidget) or not isinstance(button, QPushButton):
- return
narrow = self.width() < 1120
for preset in ("yesterday", "day_before", "tomorrow", "day_after"):
self.date_buttons[preset].setVisible(not narrow)
self.date_overflow_button.setVisible(narrow)
self.status_filter_label.setVisible(not narrow)
self.confirm_filter_label.setVisible(not narrow)
- if narrow:
- if self._responsive_narrow is not True:
- self._video_panel_user_open = False
- button.show()
- button.setChecked(self._video_panel_user_open)
- panel.setVisible(self._video_panel_user_open)
- if self._video_panel_user_open:
- panel.setFixedWidth(max(250, min(300, round(self.width() * 0.32))))
- else:
- button.hide()
- button.setChecked(False)
- panel.show()
- panel.setFixedWidth(max(300, min(420, round(self.width() * 0.30))))
self._responsive_narrow = narrow
def resizeEvent(self, event: Any) -> None:
super().resizeEvent(event)
self._apply_responsive_layout()
- def _sync_video_list(self, rows: Sequence[Any]) -> None:
- selected_id = (
- _appointment_id(self.video_list.currentItem().data(Qt.ItemDataRole.UserRole))
- if self.video_list.currentItem()
- else 0
- )
- self.video_list.clear()
- row_to_select = -1
- for index, row in enumerate(rows):
- status = display_text(first_value(row, "status_desc"), "已预约")
- name = display_text(first_value(row, "patient_name"), "患者")
- gender = gender_text(first_value(row, "gender", "gender_desc", default=None))
- age = first_value(row, "age", default="")
- identity = " · ".join(
- part
- for part in (name, gender, f"{age}岁" if age not in (None, "") else "")
- if part and part != "—"
- )
- assistant = display_text(first_value(row, "assistant_name"), "未分配")
- item = QListWidgetItem(
- f"{status} {identity} {assistant}\n"
- "进入视频问诊 查看 诊单 开方 预约 补全身份"
- )
- item.setData(Qt.ItemDataRole.UserRole, row)
- item.setSizeHint(QSize(0, 84))
- self.video_list.addItem(item)
- self.video_list.setItemWidget(item, self._build_video_patient_card(row))
- if selected_id and _appointment_id(row) == selected_id:
- row_to_select = index
- if row_to_select >= 0:
- self.video_list.setCurrentRow(row_to_select)
- else:
- self.video_list.setCurrentRow(-1)
- self.video_panel_button.setText(f"视频问诊 {len(rows)}")
-
- def _build_video_patient_card(self, row: Any) -> QWidget:
- card = QFrame()
- card.setProperty("videoPatientCard", True)
- layout = QVBoxLayout(card)
- layout.setContentsMargins(10, 7, 10, 6)
- layout.setSpacing(5)
-
- status_text = display_text(first_value(row, "status_desc"), "已预约")
- name = display_text(first_value(row, "patient_name"), "患者")
- gender = gender_text(first_value(row, "gender", "gender_desc", default=None))
- age = first_value(row, "age", default="")
- identity = " · ".join(
- part
- for part in (name, gender, f"{age}岁" if age not in (None, "") else "")
- if part and part != "—"
- )
- assistant = display_text(first_value(row, "assistant_name"), "未分配")
- heading = QHBoxLayout()
- heading.setContentsMargins(0, 0, 0, 0)
- heading.setSpacing(7)
- status = QLabel(status_text)
- status.setProperty("videoStatus", True)
- status.setProperty("videoStatusKind", "warning" if "挂号" in status_text else "primary")
- heading.addWidget(status)
- identity_label = QLabel(identity)
- identity_label.setProperty("videoIdentity", True)
- heading.addWidget(identity_label)
- heading.addStretch(1)
- assistant_label = QLabel(assistant)
- assistant_label.setProperty("videoAssistant", True)
- heading.addWidget(assistant_label)
- layout.addLayout(heading)
-
- actions = QHBoxLayout()
- actions.setContentsMargins(0, 0, 0, 0)
- actions.setSpacing(1)
-
- def add_action(
- label: str,
- callback: Any,
- permission: str | None = None,
- kind: str = "",
- ) -> None:
- if permission and not _canonical_allowed(self.permissions, permission, default=False):
- return
- button = QPushButton(label, card)
- button.setProperty("videoAction", True)
- if kind:
- button.setProperty("videoActionKind", kind)
- button.clicked.connect(
- lambda _checked=False, source=row, slot=callback: self._run_video_row_action(
- source, slot
- )
- )
- actions.addWidget(button)
-
- add_action(
- "进入视频问诊",
- self._request_video,
- "doctor.appointment/prescription",
- )
- add_action("查看", self._open_detail)
- add_action("诊单", self._edit_patient, "tcm.diagnosis/edit")
- if can_open_ai_consult(self.permissions):
- add_action("AI 分析", self._open_ai_consult)
- add_action("开方", self._open_prescription, "tcm.diagnosis/kaifang")
- add_action("二维码", self._request_video_qr, "tcm.diagnosis/videoQr", "success")
- more = QPushButton("更多", card)
- more.setProperty("videoAction", True)
- more.setProperty("videoActionKind", "warning")
- more.clicked.connect(
- lambda _checked=False, source=row, anchor=more: self._show_video_more_menu(
- anchor, source
- )
- )
- actions.addWidget(more)
- actions.addStretch(1)
- layout.addLayout(actions)
- return card
-
def _run_video_row_action(self, row: Any, callback: Any) -> None:
appointment_id = _appointment_id(row)
for row_index in range(self.table.rowCount()):
@@ -1214,47 +1028,6 @@ class AppointmentsPage(QWidget):
break
callback()
- def _show_video_more_menu(self, anchor: QPushButton, row: Any) -> None:
- menu = QMenu(anchor)
-
- def add_action(label: str, callback: Any, permission: str | None = None) -> None:
- if permission and not _canonical_allowed(self.permissions, permission, default=False):
- return
- action = QAction(label, menu)
- action.triggered.connect(
- lambda _checked=False, source=row, slot=callback: self._run_video_row_action(
- source, slot
- )
- )
- menu.addAction(action)
-
- add_action("完成问诊", self._complete_selected, "doctor.appointment/complete")
- add_action("查看病历", self._view_case, "tcm.diagnosis/kaifang")
- if can_open_ai_consult(self.permissions):
- add_action("AI 分析", self._open_ai_consult)
- if can_open_diagnosis_ai_report(self.permissions):
- add_action("AI 报告", self._open_ai_report)
- add_action("取消挂号", self._cancel_selected, "doctor.appointment/cancel")
- if menu.actions():
- menu.exec(anchor.mapToGlobal(anchor.rect().bottomLeft()))
-
- def _video_row_selected(self, index: int) -> None:
- if index < 0:
- return
- item = self.video_list.item(index)
- source = item.data(Qt.ItemDataRole.UserRole) if item is not None else None
- appointment_id = _appointment_id(source)
- if appointment_id <= 0:
- return
- for row_index in range(self.table.rowCount()):
- cell = self.table.item(row_index, 0)
- if (
- cell is not None
- and _appointment_id(cell.data(Qt.ItemDataRole.UserRole)) == appointment_id
- ):
- self.table.selectRow(row_index)
- break
-
def _action_button(
self,
label: str,
@@ -1484,7 +1257,7 @@ class AppointmentsPage(QWidget):
self.table.set_rows(rows)
self._install_table_selectors()
self._install_appointment_info_cells()
- self._sync_video_list(rows)
+ self._install_im_consult_actions()
self._fit_table_rows()
for row_index in range(self.table.rowCount()):
source_item = self.table.item(row_index, 0)
@@ -1634,6 +1407,67 @@ class AppointmentsPage(QWidget):
font.setBold(True)
patient.setFont(font)
+ def _install_im_consult_actions(self) -> None:
+ """Render a doctor-initiated IM entry for every appointment row."""
+
+ action_column = 10
+ has_permission = _canonical_allowed(
+ self.permissions,
+ "doctor.appointment/prescription",
+ default=False,
+ )
+ for row_index in range(self.table.rowCount()):
+ source_item = self.table.item(row_index, 0)
+ row = source_item.data(Qt.ItemDataRole.UserRole) if source_item is not None else None
+ host = QWidget(self.table)
+ host.setProperty("appointmentImHost", True)
+ host.setAttribute(Qt.WidgetAttribute.WA_StyledBackground, True)
+ layout = QHBoxLayout(host)
+ layout.setContentsMargins(5, 0, 5, 0)
+ layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
+
+ button = QPushButton("IM 问诊", host)
+ button.setObjectName("AppointmentImConsultButton")
+ button.setProperty("appointmentImAction", True)
+ patient_name = display_text(first_value(row, "patient_name"), "患者")
+ button.setAccessibleName(f"与{patient_name}进行 IM 问诊")
+
+ identifiers_ready = (
+ _appointment_id(row) > 0
+ and _diagnosis_id(row) > 0
+ and _video_patient_id(row) > 0
+ )
+ status_error = _im_consult_status_error(row)
+ enabled = (
+ has_permission
+ and self._native_video_capable
+ and identifiers_ready
+ and not status_error
+ )
+ button.setEnabled(enabled)
+ if not has_permission:
+ tooltip = "当前账号无 IM 问诊权限"
+ elif not self._native_video_capable:
+ tooltip = "当前工作站未配置完整的视频问诊能力"
+ elif not identifiers_ready:
+ tooltip = "患者、诊单或挂号标识不完整"
+ elif status_error:
+ tooltip = status_error
+ else:
+ tooltip = "打开患者 IM,可发送消息并从会话中发起视频"
+ button.setToolTip(tooltip)
+ button.clicked.connect(
+ lambda _checked=False, source=row: self._run_video_row_action(
+ source,
+ self._request_video,
+ )
+ )
+ layout.addWidget(button)
+ self.table.setCellWidget(row_index, action_column, host)
+ item = self.table.item(row_index, action_column)
+ if item is not None:
+ item.setText("")
+
def _fit_table_rows(self) -> None:
"""Give each appointment row enough height for its real line count."""
@@ -1685,7 +1519,12 @@ class AppointmentsPage(QWidget):
and _as_int(first_value(row, "doctor_id", default=0)) > 0
)
self.call_button.setEnabled(
- not_completed and self._native_video_capable and _appointment_id(row) > 0
+ has_row
+ and not _im_consult_status_error(row)
+ and self._native_video_capable
+ and _appointment_id(row) > 0
+ and _diagnosis_id(row) > 0
+ and _video_patient_id(row) > 0
)
self.complete_button.setEnabled(not_completed and _appointment_id(row) > 0)
self.prescription_button.setEnabled(has_row and _diagnosis_id(row) > 0)
@@ -1760,15 +1599,15 @@ class AppointmentsPage(QWidget):
row = self._current_row()
if row is None:
return
- status = _status_value(row)
- if status == 3:
- show_toast(self, "已完成的挂号不可再发起通话。", "warning")
+ status_error = _im_consult_status_error(row)
+ if status_error:
+ show_toast(self, f"{status_error}。", "warning")
return
appointment_id = _appointment_id(row)
diagnosis_id = _diagnosis_id(row)
patient_id = _video_patient_id(row)
if appointment_id <= 0 or diagnosis_id <= 0 or patient_id <= 0:
- show_toast(self, "患者、诊单或挂号标识不完整,无法进入视频问诊。", "warning")
+ show_toast(self, "患者、诊单或挂号标识不完整,无法进入 IM 问诊。", "warning")
return
self.video_requested.emit(
{
@@ -1777,6 +1616,8 @@ class AppointmentsPage(QWidget):
"patient_id": patient_id,
"diagnosis_id": diagnosis_id,
"patient_name": first_value(row, "patient_name", default="患者"),
+ # Open IM first. The doctor explicitly starts video from the
+ # conversation instead of requiring an already-live call.
"mode": "im",
"record": row,
}
@@ -2069,7 +1910,8 @@ class AppointmentsPage(QWidget):
if _diagnosis_id(row) <= 0 or _appointment_id(row) <= 0:
show_toast(self, "该预约缺少诊单信息,请先编辑患者。", "warning")
return
- self._begin_prescription_load(row)
+ mode = "view" if prescription_action_label(row) == "查看" else "open"
+ self._begin_prescription_load(row, mode=mode)
def _view_case(self) -> None:
if not _canonical_allowed(self.permissions, "tcm.diagnosis/kaifang", default=False):
@@ -2112,7 +1954,7 @@ class AppointmentsPage(QWidget):
dialog.diagnosis_requested.connect(self._open_diagnosis_id)
dialog.exec()
- def _begin_prescription_load(self, row: Any) -> None:
+ def _begin_prescription_load(self, row: Any, *, mode: str = "open") -> None:
snapshot = deepcopy(row)
self._prescription_generation += 1
generation = self._prescription_generation
@@ -2126,18 +1968,51 @@ class AppointmentsPage(QWidget):
"get_prescription_by_appointment",
appointment_id=appointment_id,
),
- on_success=lambda existing: self._prescription_loaded(existing, snapshot, generation),
+ on_success=lambda existing: self._prescription_loaded(
+ existing,
+ snapshot,
+ generation,
+ mode,
+ ),
on_error=lambda error: self._prescription_error(error, generation),
on_finished=lambda: self._prescription_finished(generation),
)
- def _prescription_loaded(self, existing: Any, row: Any, generation: int) -> None:
+ def _prescription_loaded(
+ self,
+ existing: Any,
+ row: Any,
+ generation: int,
+ mode: str = "open",
+ ) -> None:
if generation != self._prescription_generation:
return
self.banner.clear()
if existing is not None and _as_int(first_value(existing, "id", default=0)) > 0:
approved = _as_int(first_value(existing, "audit_status", "status"), -1) == 1
voided = _as_int(first_value(existing, "void_status", "is_void"), 0) == 1
+ actual_id = _as_int(first_value(existing, "id", "prescription_id", default=0))
+ expected_id = _as_int(
+ first_value(row, "current_prescription_id", default=0)
+ )
+ actual_appointment_id = _as_int(
+ first_value(existing, "appointment_id", default=0)
+ )
+ expected_appointment_id = _appointment_id(row)
+ identity_changed = (
+ (expected_id > 0 and actual_id != expected_id)
+ or (
+ actual_appointment_id > 0
+ and expected_appointment_id > 0
+ and actual_appointment_id != expected_appointment_id
+ )
+ )
+ if mode == "view" and (not approved or voided or identity_changed):
+ self.banner.show_message(
+ "当前挂号的处方状态已变化,请刷新列表后重试。",
+ "warning",
+ )
+ return
if not approved or voided:
self._open_existing_prescription_editor(existing)
else:
@@ -2151,6 +2026,12 @@ class AppointmentsPage(QWidget):
dialog.diagnosis_requested.connect(self._open_diagnosis_id)
dialog.exec()
return
+ if mode == "view":
+ self.banner.show_message(
+ "当前挂号没有可查看的处方,请刷新列表后重试。",
+ "warning",
+ )
+ return
self._begin_case_record_load(row)
def _open_existing_prescription_editor(self, prescription: Any) -> None:
diff --git a/app/src/doctor_workstation/ui/pages/consultations.py b/app/src/doctor_workstation/ui/pages/consultations.py
index 85fbd877f..5a7cc6404 100644
--- a/app/src/doctor_workstation/ui/pages/consultations.py
+++ b/app/src/doctor_workstation/ui/pages/consultations.py
@@ -45,6 +45,8 @@ from ..diagnosis_index_widgets import (
DiagnosisPager,
DiagnosisTableHost,
FlowWidget,
+ prescription_action,
+ video_call_is_live,
)
from ..dialogs import DiagnosisDialog
from ..dialogs.ai_consult import can_open_ai_consult, present_ai_consult
@@ -373,6 +375,9 @@ def _video_payload(record: Any) -> dict[str, Any]:
"patient_id": first_value(record, "patient_id", "source_patient_id"),
"diagnosis_id": first_value(record, "diagnosis_id", "id"),
"patient_name": first_value(record, "patient_name", default="患者"),
+ # This page is the assistant/admin receiver. IM mode logs in and waits
+ # for the doctor's existing invitation; it must never call startCall.
+ "mode": "im",
"record": record,
}
@@ -389,17 +394,7 @@ def is_diagnosis_confirmed(record: Any) -> bool:
def prescription_action_label(record: Any) -> str:
- audit = _as_int(first_value(record, "prescription_audit_status", "audit_status"), -1)
- voided = _as_int(first_value(record, "prescription_void_status", "void_status"), 0)
- explicit = first_value(record, "has_prescription", default=None)
- has_prescription = (
- _as_bool(explicit)
- if explicit is not None
- else _as_int(first_value(record, "prescription_id", default=0), 0) > 0 or audit in {0, 1, 2}
- )
- if not has_prescription:
- return "开方"
- return "查看处方" if audit == 1 and voided != 1 else "编辑处方"
+ return prescription_action(record)[0]
def can_void_prescription(record: Any) -> bool:
@@ -2931,10 +2926,21 @@ class ConsultationsPage(QWidget):
self.edit_button.setEnabled(has_record)
self.delete_button.setEnabled(has_record)
self.prescription_button.setText(
- prescription_action_label(record) if record is not None else "开方"
+ prescription_action(
+ record,
+ force_open=self.table_host.force_open_prescription,
+ )[0]
+ if record is not None
+ else "开方"
)
self.prescription_button.setEnabled(has_record and not self._prescription_busy)
- row_has_prescription = _as_bool(first_value(record, "has_prescription", default=False))
+ row_has_prescription = _as_bool(
+ first_value(
+ record,
+ "current_has_prescription",
+ default=first_value(record, "has_prescription", default=False),
+ )
+ )
self.void_button.setEnabled(
has_record
and row_has_prescription
@@ -2946,7 +2952,12 @@ class ConsultationsPage(QWidget):
_as_int(payload.get(key), 0) > 0
for key in ("appointment_id", "patient_id", "diagnosis_id")
)
- self.video_button.setEnabled(has_record and is_video_available(record) and valid_ids)
+ self.video_button.setEnabled(
+ has_record
+ and is_video_available(record)
+ and video_call_is_live(record)
+ and valid_ids
+ )
@property
def _diagnosis_dialog(self) -> DiagnosisDialog:
@@ -3076,7 +3087,11 @@ class ConsultationsPage(QWidget):
record = self.table.current_data()
if _as_int(first_value(record, "diagnosis_id", "id", default=0)) <= 0:
return
- self._begin_prescription_load(record, mode="open")
+ _label, mode = prescription_action(
+ record,
+ force_open=self.table_host.force_open_prescription,
+ )
+ self._begin_prescription_load(record, mode=mode)
def _void_selected_prescription(self) -> None:
if not _canonical_allowed(self.permissions, "tcm.diagnosis/kaifang"):
@@ -3114,6 +3129,28 @@ class ConsultationsPage(QWidget):
if existing is not None:
approved = _as_int(first_value(existing, "audit_status", "status"), -1) == 1
voided = _as_int(first_value(existing, "void_status", "is_void"), 0) == 1
+ actual_id = _as_int(first_value(existing, "id", "prescription_id", default=0))
+ expected_id = _as_int(
+ first_value(record, "current_prescription_id", default=0)
+ )
+ actual_appointment_id = _as_int(
+ first_value(existing, "appointment_id", default=0)
+ )
+ expected_appointment_id = _appointment_id(record)
+ identity_changed = (
+ (expected_id > 0 and actual_id != expected_id)
+ or (
+ actual_appointment_id > 0
+ and expected_appointment_id > 0
+ and actual_appointment_id != expected_appointment_id
+ )
+ )
+ if mode == "view" and (not approved or voided or identity_changed):
+ self.banner.show_message(
+ "当前挂号的处方状态已变化,请刷新列表后重试。",
+ "warning",
+ )
+ return
if not approved or voided:
self._open_existing_prescription_editor(existing)
else:
@@ -3127,6 +3164,12 @@ class ConsultationsPage(QWidget):
detail.diagnosis_requested.connect(self._open_diagnosis_id)
detail.exec()
return
+ if mode == "view":
+ self.banner.show_message(
+ "当前挂号没有可查看的处方,请刷新列表后重试。",
+ "warning",
+ )
+ return
self._begin_case_record_load(record)
def _open_existing_prescription_editor(self, prescription: Any) -> None:
@@ -3339,6 +3382,9 @@ class ConsultationsPage(QWidget):
if record is None or not is_video_available(record):
self.banner.show_message("仅当前“已预约”的挂号可进入视频问诊。", "warning")
return
+ if not video_call_is_live(record):
+ self.banner.show_message("医生尚未发起视频会话,请等待会话开始。", "warning")
+ return
payload = _video_payload(record)
if not all(
_as_int(payload.get(key), 0) > 0
diff --git a/app/src/doctor_workstation/ui/pages/patients.py b/app/src/doctor_workstation/ui/pages/patients.py
index a1309bdae..456b7e29f 100644
--- a/app/src/doctor_workstation/ui/pages/patients.py
+++ b/app/src/doctor_workstation/ui/pages/patients.py
@@ -1317,9 +1317,13 @@ class PatientListWorkspace(QWidget):
panel.setSpacing(6)
top_row = QHBoxLayout()
+ top_row.setObjectName("PatientFilterTopRow")
top_row.setContentsMargins(0, 0, 0, 0)
top_row.setSpacing(6)
+ top_row.setAlignment(Qt.AlignmentFlag.AlignLeft)
self.keyword_edit = QLineEdit()
+ self.keyword_edit.setObjectName("PatientKeywordInput")
+ self.keyword_edit.setMaximumWidth(620)
self.keyword_edit.setPlaceholderText("患者姓名 / 手机号 / 助理 / 医生")
self.keyword_edit.setClearButtonEnabled(True)
self.keyword_edit.returnPressed.connect(self.search)
@@ -1335,6 +1339,8 @@ class PatientListWorkspace(QWidget):
self.status_combo.addItem("已过号", "missed")
self.status_combo.hide()
self.status_host = QWidget()
+ self.status_host.setObjectName("PatientStatusFilterHost")
+ self.status_host.setMaximumWidth(440)
status_row = QHBoxLayout(self.status_host)
status_row.setContentsMargins(0, 0, 0, 0)
status_row.setSpacing(2)
@@ -1370,21 +1376,27 @@ class PatientListWorkspace(QWidget):
status_row.addWidget(button, 1)
self.status_buttons[""].setChecked(True)
top_row.addWidget(self.status_host, 2)
- search = QPushButton("查询")
- search.setProperty("variant", "primary")
- search.setProperty("patientSearchAction", True)
- search.clicked.connect(self.search)
- top_row.addWidget(search)
- reset = QPushButton("重置")
- reset.setProperty("variant", "ghost")
- reset.clicked.connect(self.reset_filters)
- top_row.addWidget(reset)
+ self.search_button = QPushButton("查询")
+ self.search_button.setObjectName("PatientSearchButton")
+ self.search_button.setProperty("variant", "primary")
+ self.search_button.setProperty("patientSearchAction", True)
+ self.search_button.clicked.connect(self.search)
+ top_row.addWidget(self.search_button)
+ self.reset_button = QPushButton("重置")
+ self.reset_button.setObjectName("PatientResetButton")
+ self.reset_button.setProperty("variant", "ghost")
+ self.reset_button.clicked.connect(self.reset_filters)
+ top_row.addWidget(self.reset_button)
panel.addLayout(top_row)
bottom_row = QHBoxLayout()
+ bottom_row.setObjectName("PatientFilterDateRow")
bottom_row.setContentsMargins(0, 0, 0, 0)
bottom_row.setSpacing(6)
+ bottom_row.setAlignment(Qt.AlignmentFlag.AlignLeft)
self.quick_host = QWidget()
+ self.quick_host.setObjectName("PatientQuickDateHost")
+ self.quick_host.setMaximumWidth(620)
quick = QHBoxLayout(self.quick_host)
quick.setContentsMargins(0, 0, 0, 0)
quick.setSpacing(2)
@@ -1411,10 +1423,13 @@ class PatientListWorkspace(QWidget):
bottom_row.addWidget(self.quick_host, 3)
self.date_host = QWidget()
+ self.date_host.setObjectName("PatientDateRangeHost")
+ self.date_host.setMaximumWidth(420)
dates = QHBoxLayout(self.date_host)
dates.setContentsMargins(0, 0, 0, 0)
dates.setSpacing(6)
self.start_date = QDateEdit(QDate.currentDate())
+ self.start_date.setObjectName("PatientStartDateEdit")
self.start_date.setCalendarPopup(True)
self.start_date.setDisplayFormat("yyyy-MM-dd")
self.start_date.setEnabled(False)
@@ -1425,22 +1440,26 @@ class PatientListWorkspace(QWidget):
separator.setProperty("role", "muted")
dates.addWidget(separator)
self.end_date = QDateEdit(QDate.currentDate())
+ self.end_date.setObjectName("PatientEndDateEdit")
self.end_date.setCalendarPopup(True)
self.end_date.setDisplayFormat("yyyy-MM-dd")
self.end_date.setEnabled(False)
self.end_date.editingFinished.connect(self._custom_date_changed)
dates.addWidget(self.end_date, 1)
bottom_row.addWidget(self.date_host, 2)
- custom = QPushButton("自定义")
- custom.setProperty("variant", "ghost")
- custom.clicked.connect(lambda: self.set_date_mode("custom"))
- bottom_row.addWidget(custom)
+ self.custom_date_button = QPushButton("自定义")
+ self.custom_date_button.setObjectName("PatientCustomDateButton")
+ self.custom_date_button.setProperty("variant", "ghost")
+ self.custom_date_button.clicked.connect(lambda: self.set_date_mode("custom"))
+ bottom_row.addWidget(self.custom_date_button)
panel.addLayout(bottom_row)
return card
def _build_summary(self) -> QHBoxLayout:
layout = QHBoxLayout()
+ layout.setObjectName("PatientSummaryRow")
layout.setSpacing(8)
+ layout.setAlignment(Qt.AlignmentFlag.AlignLeft)
self.summary_buttons: dict[str, QPushButton] = {}
for key, label, mode in (
("today", "今日预约", "today"),
@@ -1448,8 +1467,16 @@ class PatientListWorkspace(QWidget):
("day_after", "后天预约", "day_after"),
):
button = QPushButton(f"{label}\n0 人")
+ button.setObjectName(
+ {
+ "today": "PatientSummaryToday",
+ "tomorrow": "PatientSummaryTomorrow",
+ "day_after": "PatientSummaryDayAfter",
+ }[key]
+ )
button.setProperty("summaryCard", True)
button.setFixedHeight(42)
+ button.setMaximumWidth(420)
button.setIcon(_summary_calendar_icon())
button.setIconSize(QSize(34, 34))
button.clicked.connect(lambda _checked=False, value=mode: self.set_date_mode(value))
diff --git a/app/src/doctor_workstation/ui/pages/reception.py b/app/src/doctor_workstation/ui/pages/reception.py
index c2b790cbc..b64f902cb 100644
--- a/app/src/doctor_workstation/ui/pages/reception.py
+++ b/app/src/doctor_workstation/ui/pages/reception.py
@@ -10,9 +10,23 @@ from copy import deepcopy
from datetime import date, timedelta
from inspect import Parameter, signature
from pathlib import Path
+from threading import BoundedSemaphore, Event, Lock
from typing import Any
-from PySide6.QtCore import QDate, QPoint, QPointF, QRectF, QSize, Qt, QTimer, QUrl, Signal
+from PySide6.QtCore import (
+ QCoreApplication,
+ QDate,
+ QEvent,
+ QPoint,
+ QPointF,
+ QRectF,
+ QSize,
+ Qt,
+ QThreadPool,
+ QTimer,
+ QUrl,
+ Signal,
+)
from PySide6.QtGui import (
QBrush,
QColor,
@@ -91,6 +105,13 @@ NOTE_LIMIT = 500
MAX_NOTE_MEDIA = 99
AI_ANALYSIS_MODELS = ("qwen", "openai")
AI_ANALYSIS_MODEL_LABELS = {"qwen": "千问", "openai": "OpenAI"}
+_ASYNC_REQUEST_CANCELLED = object()
+_ASYNC_REQUEST_DEFERRED = object()
+_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS = 0.25
+_AI_AUTOMATIC_REQUEST_SLOTS = BoundedSemaphore(2)
+_AI_GENERATION_POOL = QThreadPool()
+_AI_GENERATION_POOL.setMaxThreadCount(4)
+_AI_GENERATION_POOL.setExpiryTimeout(30_000)
AI_MEDICAL_DISCLAIMER = (
"仅供临床辅助参考,不可替代医生诊断,不得直接用于开方、用药调整或其他医疗决策。"
"系统未对舌像、报告附件或视频画面进行视觉诊断;仅分析已录入、归档或转写的文字及附件元数据。"
@@ -238,7 +259,8 @@ QWidget#ReceptionPage QLabel#StatusBadge {
font-size: 11px;
font-weight: 500;
}
-QWidget#ReceptionPage QPushButton#ReceptionHistoryButton {
+QWidget#ReceptionPage QPushButton#ReceptionHistoryButton,
+QWidget#ReceptionPage QPushButton#ReceptionImButton {
min-height: 34px;
max-height: 34px;
padding: 0 13px;
@@ -260,7 +282,8 @@ QWidget#ReceptionPage QPushButton#ReceptionMoreButton {
font-size: 13px;
font-weight: 500;
}
-QWidget#ReceptionPage QPushButton#ReceptionHistoryButton:hover {
+QWidget#ReceptionPage QPushButton#ReceptionHistoryButton:hover,
+QWidget#ReceptionPage QPushButton#ReceptionImButton:hover {
color: #5469F0;
background-color: #F7F9FE;
border-color: #C5CEFF;
@@ -1008,20 +1031,28 @@ QDialog#ReceptionAiAnalysisDialog QLabel[dialogAiCaption="true"] {
color: #3F4E75;
font-size: 13px;
font-weight: 700;
+ padding-bottom: 2px;
}
QDialog#ReceptionAiAnalysisDialog QLabel[dialogAiBody="true"] {
color: #314165;
- font-size: 13px;
+ font-size: 13.5px;
font-weight: 400;
+ line-height: 1.85;
+}
+QDialog#ReceptionAiAnalysisDialog QLabel[dialogAiStructured="true"] {
+ color: #314165;
+ font-size: 13.5px;
+ font-weight: 400;
+ line-height: 175%;
}
QDialog#ReceptionAiAnalysisDialog QLabel[dialogAiRisk="true"] {
- min-height: 28px;
- padding: 4px 10px;
+ min-height: 30px;
+ padding: 5px 12px;
color: #B13E4D;
background-color: #FFF0F2;
border: 1px solid #F3D1D7;
- border-radius: 7px;
- font-size: 12px;
+ border-radius: 8px;
+ font-size: 12.5px;
font-weight: 600;
}
QDialog#ReceptionAiAnalysisDialog QLabel[dialogAiRisk="true"][riskLevel="medium"] {
@@ -1265,6 +1296,233 @@ def _ai_narrative_text(value: object) -> str:
return _normalize_ai_narrative_string(value)
+_AI_INSIGHT_LIST_RE = re.compile(r"^\s*(\d{1,2})\s*([\.、))]\s*)")
+_AI_INSIGHT_LIST_LOOKAHEAD_RE = re.compile(
+ r"(?:^|(?<=[::;;。\s]))(\d{1,2})\s*([\.、))])\s*"
+)
+_AI_INSIGHT_LABEL_RE = re.compile(
+ r"^([\u4e00-\u9fa5A-Za-z()()·\s]{1,12})[::]\s*(.*)$"
+)
+
+
+def _ai_escape_html(value: str) -> str:
+ """转义富文本片段,防止分析文本中带 HTML/Markdown 误伤样式。"""
+
+ return (
+ (value or "")
+ .replace("&", "&")
+ .replace("<", "<")
+ .replace(">", ">")
+ )
+
+
+def _ai_split_label_or_sentence(
+ segment: str,
+ *,
+ marker: str | None = None,
+) -> tuple[str, str, str, bool]:
+ """识别单段是否为 '标签:内容' 结构, 决定是否加粗展示。"""
+
+ label_match = _AI_INSIGHT_LABEL_RE.match(segment)
+ if label_match:
+ label = label_match.group(1).strip()
+ body = label_match.group(2).strip()
+ if label and body:
+ return marker or "", label, body, True
+ if marker:
+ return marker, "", segment, False
+ return "", "", segment, False
+
+
+def _ai_split_numbered_list(text: str) -> list[dict[str, str]]:
+ """把以 '1.'/'2、'/'3)' 开头的连续列表拆成独立项。"""
+
+ items: list[dict[str, str]] = []
+ cursor = 0
+ length = len(text)
+ while cursor < length:
+ remainder = text[cursor:]
+ list_match = _AI_INSIGHT_LIST_RE.match(remainder)
+ if not list_match:
+ tail = remainder.strip()
+ if tail:
+ marker, label, body, has_label = _ai_split_label_or_sentence(tail)
+ items.append(
+ {"marker": marker, "label": label, "body": body, "has_label": has_label}
+ )
+ break
+ marker = f"{list_match.group(1)}."
+ after_marker = remainder[list_match.end():]
+ sentence_match = re.search(r"[。;;\n]", after_marker)
+ candidate_ends: list[int] = []
+ if sentence_match is not None:
+ candidate_ends.append(sentence_match.end())
+ next_marker_match = re.search(r"\s\d{1,2}\s*[\.、))]", after_marker)
+ if next_marker_match is not None:
+ candidate_ends.append(next_marker_match.start() + 1)
+ inner_end = min(candidate_ends) if candidate_ends else len(after_marker)
+ segment = after_marker[:inner_end].strip("。;; \n").strip()
+ if segment:
+ inner_marker, inner_label, inner_body, has_label = _ai_split_label_or_sentence(
+ segment, marker=marker
+ )
+ items.append(
+ {
+ "marker": inner_marker,
+ "label": inner_label,
+ "body": inner_body,
+ "has_label": has_label,
+ }
+ )
+ cursor += list_match.end() + inner_end
+ while cursor < length and text[cursor] in "。;;\n":
+ cursor += 1
+ return items
+
+
+def _ai_split_plain_paragraph(text: str) -> list[dict[str, str]]:
+ """把密集段落按 。;拆成结构化条目, 每行一条更易阅读。"""
+
+ items: list[dict[str, str]] = []
+ if not text.strip():
+ return items
+ cursor = 0
+ length = len(text)
+ while cursor < length:
+ remainder = text[cursor:]
+ sentence_match = re.search(r"[。;;\n]", remainder)
+ if sentence_match is not None:
+ segment = remainder[: sentence_match.start()].strip()
+ if segment:
+ marker, label, body, has_label = _ai_split_label_or_sentence(segment)
+ items.append(
+ {"marker": marker, "label": label, "body": body, "has_label": has_label}
+ )
+ cursor += sentence_match.end()
+ continue
+ tail = remainder.strip()
+ if tail:
+ marker, label, body, has_label = _ai_split_label_or_sentence(tail)
+ items.append(
+ {"marker": marker, "label": label, "body": body, "has_label": has_label}
+ )
+ break
+ return items
+
+
+def _ai_split_into_segments(text: str) -> list[dict[str, str]]:
+ """对一段 AI 叙事文本进行结构化拆分, 便于分条阅读。
+
+ 识别三种模式:
+ - 编号开头 (1. / 2、 / 3) / 4)) -> list_item
+ - "短中文标签:内容" 形式 -> lead_item, 标签部分加粗
+ - 其余按 。 / ;分句 -> plain_item
+
+ 每种类型都会渲染成独立行, 改善阅读节奏。
+ """
+
+ raw = (text or "").strip()
+ if not raw:
+ return []
+
+ items: list[dict[str, str]] = []
+ paragraphs = [line.strip() for line in raw.split("\n") if line.strip()]
+ if not paragraphs:
+ return []
+
+ for paragraph in paragraphs:
+ lookahead_match = _AI_INSIGHT_LIST_LOOKAHEAD_RE.search(paragraph)
+ starts_with_list = _AI_INSIGHT_LIST_RE.match(paragraph) is not None
+ if not starts_with_list and lookahead_match is not None:
+ list_start = lookahead_match.start()
+ preamble_candidate = paragraph[:list_start].rstrip()
+ sentence_tail = re.search(r"[。;;][^。;;]*$", preamble_candidate)
+ if sentence_tail is not None:
+ preamble = preamble_candidate[: sentence_tail.end()].strip(
+ "。;;:: \t\n"
+ )
+ else:
+ preamble = re.sub(
+ r"\s*\d{1,2}\s*[\.、))]?\s*$",
+ "",
+ preamble_candidate,
+ ).strip("。;;:: \t\n")
+ body = paragraph[list_start:].lstrip()
+ if preamble:
+ items.extend(_ai_split_plain_paragraph(preamble))
+ items.extend(_ai_split_numbered_list(body))
+ elif starts_with_list:
+ items.extend(_ai_split_numbered_list(paragraph))
+ else:
+ items.extend(_ai_split_plain_paragraph(paragraph))
+ return items
+
+
+def _ai_segments_to_html(items: list[dict[str, str]]) -> str:
+ """把拆分出的条目渲染为 RichText HTML 片段, 用于布局层分段展示。"""
+
+ if not items:
+ return ""
+ fragments: list[str] = []
+ for item in items:
+ marker = _ai_escape_html(item.get("marker", ""))
+ label = _ai_escape_html(item.get("label", ""))
+ body = _ai_escape_html(item.get("body", ""))
+ has_label = bool(item.get("has_label")) and label
+ indent_open = ""
+ indent_close = ""
+ if marker or has_label:
+ indent_open = (
+ ''
+ )
+ indent_close = "
"
+ block_parts: list[str] = []
+ if marker:
+ block_parts.append(
+ ""
+ f"{marker}"
+ ""
+ )
+ label_html = label
+ body_html = body
+ if has_label:
+ inline = (
+ ""
+ f"{label_html}"
+ ""
+ ":"
+ f"{body_html}"
+ )
+ else:
+ inline = f"{body_html}"
+ block_parts.append(
+ ""
+ f"{inline}"
+ ""
+ )
+ fragments.append(indent_open + "".join(block_parts) + indent_close)
+ else:
+ fragments.append(
+ ""
+ f"{body}"
+ "
"
+ )
+ return "".join(fragments)
+
+
+def _ai_narrative_structured_html(value: object) -> str:
+ """把 AI 叙事文本先归一化, 再切成可阅读片段, 渲染为 HTML。"""
+
+ normalized = _ai_narrative_text(value)
+ if not normalized:
+ return ""
+ items = _ai_split_into_segments(normalized)
+ return _ai_segments_to_html(items)
+
+
def _queue_condition_summary(record: Any) -> str:
"""Build the queue's disease/complaint summary from scalar or nested DTOs."""
@@ -1783,15 +2041,22 @@ def _accepts_ai_model(method: Any) -> bool:
def _clear_ai_layout(layout: Any) -> None:
- """Detach dynamic AI labels immediately so model switches cannot duplicate them."""
+ """Hide dynamic AI labels before their deferred deletion.
+
+ Keeping the widget parented until ``deleteLater`` is delivered is important on
+ Windows. Reparenting a visible child to ``None`` promotes it to a native
+ top-level window, which can briefly flash a small title-bar window while a
+ patient or AI model is loading.
+ """
while layout.count():
item = layout.takeAt(0)
widget = item.widget()
child_layout = item.layout()
if widget is not None:
- widget.setParent(None)
+ widget.hide()
widget.deleteLater()
+ QCoreApplication.sendPostedEvents(widget, QEvent.Type.DeferredDelete)
elif child_layout is not None:
_clear_ai_layout(child_layout)
@@ -2438,7 +2703,7 @@ class _ReceptionAiAnalysisDialog(QDialog):
body.setObjectName("ReceptionAiAnalysisDialogBody")
body_layout = QVBoxLayout(body)
body_layout.setContentsMargins(18, 16, 18, 20)
- body_layout.setSpacing(12)
+ body_layout.setSpacing(14)
disclaimer = QLabel(AI_MEDICAL_DISCLAIMER, body)
disclaimer.setObjectName("ReceptionAiAnalysisDialogDisclaimer")
@@ -2448,6 +2713,8 @@ class _ReceptionAiAnalysisDialog(QDialog):
body_layout.addWidget(disclaimer)
self.disclaimer_label = disclaimer
+ self._structured_labels: dict[str, QLabel] = {}
+
def add_text_section(
caption: str,
tone: str,
@@ -2457,7 +2724,7 @@ class _ReceptionAiAnalysisDialog(QDialog):
section = QFrame(body)
section.setObjectName("ReceptionAiAnalysisDialogSection")
section_layout = QHBoxLayout(section)
- section_layout.setContentsMargins(14, 13, 16, 15)
+ section_layout.setContentsMargins(16, 14, 18, 16)
section_layout.setSpacing(11)
section_layout.addWidget(
_ReceptionAiSectionIcon(tone, section),
@@ -2466,7 +2733,7 @@ class _ReceptionAiAnalysisDialog(QDialog):
)
copy = QVBoxLayout()
copy.setContentsMargins(0, 0, 0, 0)
- copy.setSpacing(7)
+ copy.setSpacing(8)
caption_label = QLabel(caption, section)
caption_label.setProperty("dialogAiCaption", True)
copy.addWidget(caption_label)
@@ -2481,9 +2748,30 @@ class _ReceptionAiAnalysisDialog(QDialog):
QSizePolicy.Policy.Ignored,
QSizePolicy.Policy.Preferred,
)
+ # PlainText 标签仍然保留以兼容现有的 findChild 测试;
+ # 视觉上隐藏, 由下方的 RichText 结构化视图替代渲染。
+ value_label.setMaximumHeight(0)
+ value_label.hide()
copy.addWidget(value_label)
+
+ structured_label = QLabel("", section)
+ structured_label.setObjectName(object_name + "Structured")
+ structured_label.setProperty("dialogAiBody", True)
+ structured_label.setProperty("dialogAiStructured", True)
+ structured_label.setTextFormat(Qt.TextFormat.RichText)
+ structured_label.setWordWrap(True)
+ structured_label.setMinimumWidth(0)
+ structured_label.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
+ structured_label.setSizePolicy(
+ QSizePolicy.Policy.Ignored,
+ QSizePolicy.Policy.Preferred,
+ )
+ # 默认占位符 (后续 _render_model 会覆盖)
+ structured_label.setText("—")
+ copy.addWidget(structured_label)
section_layout.addLayout(copy, 1)
body_layout.addWidget(section)
+ self._structured_labels[object_name] = structured_label
return value_label
self.diagnosis_label = add_text_section(
@@ -2496,7 +2784,7 @@ class _ReceptionAiAnalysisDialog(QDialog):
risk_section = QFrame(body)
risk_section.setObjectName("ReceptionAiAnalysisDialogSection")
risk_layout = QHBoxLayout(risk_section)
- risk_layout.setContentsMargins(14, 13, 16, 15)
+ risk_layout.setContentsMargins(16, 14, 18, 16)
risk_layout.setSpacing(11)
risk_layout.addWidget(
_ReceptionAiSectionIcon("risk", risk_section),
@@ -2505,14 +2793,14 @@ class _ReceptionAiAnalysisDialog(QDialog):
)
risk_copy = QVBoxLayout()
risk_copy.setContentsMargins(0, 0, 0, 0)
- risk_copy.setSpacing(7)
+ risk_copy.setSpacing(9)
risk_caption = QLabel("风险评估", risk_section)
risk_caption.setProperty("dialogAiCaption", True)
risk_copy.addWidget(risk_caption)
risk_items = _AiFlowHost(
risk_section,
- horizontal_spacing=7,
- vertical_spacing=7,
+ horizontal_spacing=9,
+ vertical_spacing=9,
)
risk_items.setObjectName("ReceptionAiAnalysisDialogRiskItems")
risk_items_layout = risk_items.flow
@@ -2663,6 +2951,23 @@ class _ReceptionAiAnalysisDialog(QDialog):
self.treatment_label.setText(
_ai_narrative_text(_analysis_value(payload, "treatment_advice")) or "—"
)
+ # 同步刷新右侧 RichText 结构化视图 (左侧 PlainText 标签只在 findChild 测试中使用)
+ structured_diagnosis = self._structured_labels.get(
+ "ReceptionAiAnalysisDialogDiagnosisText"
+ )
+ if structured_diagnosis is not None:
+ diagnosis_html = _ai_narrative_structured_html(
+ _analysis_value(payload, "diagnosis_advice")
+ )
+ structured_diagnosis.setText(diagnosis_html or self.diagnosis_label.text())
+ structured_treatment = self._structured_labels.get(
+ "ReceptionAiAnalysisDialogTreatmentText"
+ )
+ if structured_treatment is not None:
+ treatment_html = _ai_narrative_structured_html(
+ _analysis_value(payload, "treatment_advice")
+ )
+ structured_treatment.setText(treatment_html or self.treatment_label.text())
_clear_ai_layout(self.risk_items_layout)
risks = _normalize_ai_risks(_analysis_value(payload, "risk_assessment"))
if not risks:
@@ -3009,9 +3314,12 @@ class QueueRow(QWidget):
default=STATUS_TEXT.get(status_number, status_number),
)
)
+ # The nested layouts are attached later. Parent widgets that are shown
+ # during construction so Windows never promotes them to transient HWNDs.
badge = StatusBadge(
status_text,
_queue_badge_kind(status_number, status_text),
+ parent=self,
)
badge.setMinimumWidth(max(54, badge.sizeHint().width()))
show_badge = _queue_shows_status_badge(status_number, status_text)
@@ -3022,7 +3330,7 @@ class QueueRow(QWidget):
0,
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTop,
)
- time_label = QLabel(_queue_time_text(record))
+ time_label = QLabel(_queue_time_text(record), self)
time_label.setObjectName("ReceptionQueueTime")
time_label.setVisible(not show_badge and bool(time_label.text()))
top.addWidget(time_label, 0, Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTop)
@@ -3040,7 +3348,8 @@ class QueueRow(QWidget):
self.glucose_drop = drop
bottom.addWidget(drop, 0, Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter)
metric_label = QLabel(
- f"{display_text(metric)} mmol/L" if metric not in (None, "") else ""
+ f"{display_text(metric)} mmol/L" if metric not in (None, "") else "",
+ self,
)
metric_label.setObjectName("ReceptionQueueMetric")
tone = _glucose_tone(metric)
@@ -3150,6 +3459,10 @@ class ReceptionDailyRecordsPanel(DailyRecordPanel):
self._patient_age = parsed if parsed is not None and parsed >= 0 else None
def clear_with_message(self, message: str) -> None:
+ # A stale range request is intentionally barred from touching the new
+ # patient. Reset the panel-owned flag here so that stale ``finished``
+ # is not also required to re-enable the controls.
+ self.set_loading(False)
super().clear()
self.state.show_message(message, "info")
@@ -3275,6 +3588,8 @@ class ReceptionPage(QWidget):
self._queue_query_key: tuple[Any, ...] | None = None
self._detail_loading = False
self._detail_requests: set[tuple[int, int]] = set()
+ self._detail_cancel_events: dict[tuple[int, int], Event] = {}
+ self._detail_failed_requests: set[tuple[int, int]] = set()
self._daily_generation = 0
self._daily_loading = False
self._daily_diagnosis_id: int | None = None
@@ -3293,7 +3608,19 @@ class ReceptionPage(QWidget):
self._ai_analysis_model_states = {model: "empty" for model in AI_ANALYSIS_MODELS}
self._ai_analysis_model_messages = {model: "" for model in AI_ANALYSIS_MODELS}
self._ai_analysis_requests: set[tuple[int, int, int, str]] = set()
+ self._ai_analysis_cancel_events: dict[tuple[int, int, int, str], Event] = {}
+ self._ai_analysis_started: set[tuple[int, int, int, str]] = set()
+ self._patient_ai_generation_requests: set[tuple[int, int, int, str]] = set()
+ self._patient_ai_generation_cancel_events: dict[
+ tuple[int, int, int, str], Event
+ ] = {}
+ self._patient_ai_generation_started: set[tuple[int, int, int, str]] = set()
self._patient_ai_list_requests: set[tuple[int, int, int]] = set()
+ self._patient_ai_list_cancel_events: dict[tuple[int, int, int], Event] = {}
+ self._patient_ai_list_started: set[tuple[int, int, int]] = set()
+ self._patient_ai_list_epochs: dict[tuple[int, int, int], int] = {}
+ self._patient_ai_mutation_epochs: dict[int, int] = {}
+ self._patient_ai_mutation_lock = Lock()
self._ai_analysis_active_model = "qwen"
self._ai_analysis_supports_models = True
self._ai_analysis_patient_flow = False
@@ -3513,11 +3840,16 @@ class ReceptionPage(QWidget):
self.history_button.setIconSize(QSize(14, 14))
self.history_button.clicked.connect(lambda: self.detail_tabs.setCurrentIndex(4))
patient_head.addWidget(self.history_button)
+ self.video_button = QPushButton("IM 问诊", hero)
+ self.video_button.setObjectName("ReceptionImButton")
+ self.video_button.setToolTip("打开患者 IM,可发送消息并从会话中发起视频")
+ self.video_button.setProperty("variant", "secondary")
+ self.video_button.clicked.connect(self._request_video)
+ patient_head.addWidget(self.video_button)
self.more_button = QPushButton("更多", hero)
self.more_button.setObjectName("ReceptionMoreButton")
more_menu = QMenu(self.more_button)
more_menu.addAction("通知医助").triggered.connect(self._notify_assistant)
- more_menu.addAction("IM 问诊").triggered.connect(self._request_video)
edit_action = more_menu.addAction("编辑病历")
edit_action.setVisible(self._can_edit)
edit_action.triggered.connect(self._edit_diagnosis)
@@ -3537,10 +3869,6 @@ class ReceptionPage(QWidget):
action_compat.move(-100, -100)
self.notify_button = QPushButton("通知医助", action_compat)
self.notify_button.clicked.connect(self._notify_assistant)
- self.video_button = QPushButton("IM 问诊", action_compat)
- self.video_button.setToolTip("打开患者 IM,可发送消息并从会话中发起视频")
- self.video_button.setProperty("variant", "secondary")
- self.video_button.clicked.connect(self._request_video)
self.edit_button = QPushButton("编辑病历", action_compat)
self.edit_button.setProperty("variant", "secondary")
self.edit_button.clicked.connect(self._edit_diagnosis)
@@ -4744,6 +5072,129 @@ class ReceptionPage(QWidget):
context = self._selection_context()
return context is not None and _same_id(context[3], patient_id)
+ def _patient_ai_request_pending(
+ self,
+ patient_id: int,
+ model: str | None = None,
+ ) -> bool:
+ """Return whether a live worker can settle this patient's model state.
+
+ A history request can only settle the qwen-first loading state. An
+ unrelated OpenAI generation must never keep qwen stuck in loading.
+ Patient-level workers are intentionally shared across A -> B -> A
+ selection generations, so matching is by stable patient id.
+ """
+
+ if model in {None, "qwen"}:
+ for request_key in self._patient_ai_list_requests:
+ _generation, _appointment_id, request_patient_id = request_key
+ if not _same_id(request_patient_id, patient_id):
+ continue
+ cancel_event = self._patient_ai_list_cancel_events.get(request_key)
+ if (
+ request_key in self._patient_ai_list_started
+ or cancel_event is None
+ or not cancel_event.is_set()
+ ):
+ return True
+ expected_model = "qwen" if model is None else model
+ for request_key in self._patient_ai_generation_requests:
+ (
+ _generation,
+ _request_appointment_id,
+ request_patient_id,
+ request_model,
+ ) = request_key
+ if not (
+ _same_id(request_patient_id, patient_id)
+ and request_model == expected_model
+ ):
+ continue
+ cancel_event = self._patient_ai_generation_cancel_events.get(request_key)
+ if (
+ request_key in self._patient_ai_generation_started
+ or cancel_event is None
+ or not cancel_event.is_set()
+ ):
+ return True
+ return False
+
+ def _current_patient_ai_context(
+ self,
+ patient_id: int,
+ ) -> tuple[int, int, int] | None:
+ """Return the active patient-report context, including attached retries."""
+
+ if not self._ai_analysis_patient_flow:
+ return None
+ context = self._selection_context()
+ if context is None or not _same_id(context[3], patient_id):
+ return None
+ return self._ai_analysis_generation, context[1], patient_id
+
+ def _patient_ai_mutation_epoch(self, patient_id: int) -> int:
+ with self._patient_ai_mutation_lock:
+ return self._patient_ai_mutation_epochs.get(patient_id, 0)
+
+ def _advance_patient_ai_mutation_epoch(self, patient_id: int) -> None:
+ with self._patient_ai_mutation_lock:
+ self._patient_ai_mutation_epochs[patient_id] = (
+ self._patient_ai_mutation_epochs.get(patient_id, 0) + 1
+ )
+
+ def _reconcile_stale_patient_ai_list(self, patient_id: int) -> None:
+ """Preserve newer writes and only retry an otherwise orphaned read."""
+
+ current_context = self._current_patient_ai_context(patient_id)
+ if current_context is None:
+ return
+ _generation, appointment_id, _patient_id = current_context
+ if (
+ self._ai_analysis_model_states.get("qwen") != "loading"
+ or "qwen" in self._ai_analysis_payloads
+ or self._patient_ai_request_pending(patient_id, "qwen")
+ ):
+ self._sync_ai_analysis_view()
+ return
+ self._load_patient_ai_reports(
+ patient_id,
+ appointment_id=appointment_id,
+ diagnosis_id=self._ai_analysis_diagnosis_id,
+ force=True,
+ )
+
+ def _diagnosis_ai_request_pending(
+ self,
+ request_generation: int,
+ appointment_id: int,
+ diagnosis_id: int,
+ model: str,
+ ) -> bool:
+ return (
+ request_generation,
+ appointment_id,
+ diagnosis_id,
+ model,
+ ) in self._ai_analysis_requests
+
+ def _finish_orphaned_ai_loading(self, model: str, message: str) -> None:
+ """Turn an unsupported loading state into a visible retryable error."""
+
+ regenerating = self._ai_analysis_regeneration_model == model
+ if regenerating:
+ self._ai_analysis_regenerating = False
+ self._ai_analysis_regeneration_model = None
+ if self._ai_analysis_model_states.get(model) != "loading" and not regenerating:
+ return
+ if model in self._ai_analysis_payloads:
+ self._ai_analysis_model_states[model] = "success"
+ self._ai_analysis_model_messages[model] = ""
+ self._ai_analysis_operation_error = message
+ else:
+ self._ai_analysis_model_states[model] = "error"
+ self._ai_analysis_model_messages[model] = message
+ self._sync_ai_analysis_view()
+
def _install_patient_ai_rows(
self,
rows: Sequence[Mapping[str, Any]],
@@ -4819,13 +5270,15 @@ class ReceptionPage(QWidget):
diagnosis_id: int | None,
force: bool,
) -> None:
- if (
- not force
- and _same_id(patient_id, self._ai_analysis_patient_id)
- and self._ai_analysis_model_states["qwen"]
- in {"loading", "success", "missing", "error", "permission"}
- ):
- return
+ if not force and _same_id(patient_id, self._ai_analysis_patient_id):
+ qwen_state = self._ai_analysis_model_states["qwen"]
+ if qwen_state == "loading":
+ if self._patient_ai_request_pending(
+ patient_id,
+ ):
+ return
+ elif qwen_state in {"success", "missing", "error", "permission"}:
+ return
self._ai_analysis_generation += 1
request_generation = self._ai_analysis_generation
self._ai_analysis_patient_flow = True
@@ -4846,10 +5299,60 @@ class ReceptionPage(QWidget):
"loading",
"正在查询该患者已保存的 AI 报告…",
)
+ # A patient-level read or qwen generation survives a temporary switch
+ # away from the patient. Reattach the current view instead of issuing
+ # a duplicate GET/POST when the doctor returns via A -> B -> A.
+ cancelled_reads = [
+ request_key
+ for request_key in self._patient_ai_list_requests
+ if _same_id(request_key[2], patient_id)
+ and request_key not in self._patient_ai_list_started
+ and (cancel_event := self._patient_ai_list_cancel_events.get(request_key))
+ is not None
+ and cancel_event.is_set()
+ ]
+ for cancelled_key in cancelled_reads:
+ self._patient_ai_list_requests.discard(cancelled_key)
+ self._patient_ai_list_cancel_events.pop(cancelled_key, None)
+ self._patient_ai_list_epochs.pop(cancelled_key, None)
+ if self._patient_ai_request_pending(patient_id, "qwen"):
+ self._sync_ai_analysis_view()
+ return
request_key = (request_generation, appointment_id, patient_id)
self._patient_ai_list_requests.add(request_key)
+ cancel_event = Event()
+ self._patient_ai_list_cancel_events[request_key] = cancel_event
+ self._patient_ai_list_epochs[request_key] = self._patient_ai_mutation_epoch(
+ patient_id
+ )
+
+ def request() -> Any:
+ if cancel_event.wait(_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS):
+ return _ASYNC_REQUEST_CANCELLED
+ if not self._patient_ai_context_current(
+ request_generation,
+ appointment_id,
+ patient_id,
+ ) or cancel_event.is_set():
+ return _ASYNC_REQUEST_CANCELLED
+ automatic_slot = _AI_AUTOMATIC_REQUEST_SLOTS.acquire(blocking=False)
+ if not automatic_slot:
+ return _ASYNC_REQUEST_DEFERRED
+ try:
+ self._patient_ai_list_started.add(request_key)
+ if not self._patient_ai_context_current(
+ request_generation,
+ appointment_id,
+ patient_id,
+ ) or cancel_event.is_set():
+ self._patient_ai_list_started.discard(request_key)
+ return _ASYNC_REQUEST_CANCELLED
+ return method(patient_id)
+ finally:
+ _AI_AUTOMATIC_REQUEST_SLOTS.release()
+
run_async(
- lambda: method(patient_id),
+ request,
on_success=lambda result: self._apply_patient_ai_report_list(
result,
request_generation,
@@ -4867,6 +5370,7 @@ class ReceptionPage(QWidget):
appointment_id,
patient_id,
),
+ priority=self._detail_generation,
)
def _apply_patient_ai_report_list(
@@ -4876,12 +5380,31 @@ class ReceptionPage(QWidget):
appointment_id: int,
patient_id: int,
) -> None:
- self._patient_ai_list_requests.discard(
- (request_generation, appointment_id, patient_id)
- )
- if not self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id)
+ authoritative = request_key in self._patient_ai_list_requests
+ request_epoch = self._patient_ai_list_epochs.pop(request_key, None)
+ self._patient_ai_list_requests.discard(request_key)
+ self._patient_ai_list_cancel_events.pop(request_key, None)
+ self._patient_ai_list_started.discard(request_key)
+ current_context = self._current_patient_ai_context(patient_id)
+ if current_context is None or not authoritative:
+ return
+ effective_generation, effective_appointment_id, _patient_id = current_context
+ if request_epoch != self._patient_ai_mutation_epoch(patient_id):
+ # A report POST began after this GET. The older read, including a
+ # cancellation result, must never clear the generated snapshot.
+ self._reconcile_stale_patient_ai_list(patient_id)
+ return
+ if result is _ASYNC_REQUEST_DEFERRED:
+ message = "患者报告查询任务较多,请稍后重试。"
+ if "qwen" in self._ai_analysis_payloads:
+ self._ai_analysis_operation_error = message
+ self._sync_ai_analysis_view()
+ else:
+ self._set_ai_analysis_state("error", message)
+ return
+ if result is _ASYNC_REQUEST_CANCELLED:
+ self._reconcile_stale_patient_ai_list(patient_id)
return
rows = _patient_report_rows(
result,
@@ -4922,9 +5445,10 @@ class ReceptionPage(QWidget):
self._ai_analysis_regeneration_model = "qwen"
self._request_patient_ai_generation(
"qwen",
- request_generation,
- appointment_id,
+ effective_generation,
+ effective_appointment_id,
patient_id,
+ settle_before_request=True,
)
def _patient_ai_report_list_error(
@@ -4934,16 +5458,25 @@ class ReceptionPage(QWidget):
appointment_id: int,
patient_id: int,
) -> None:
- self._patient_ai_list_requests.discard(
- (request_generation, appointment_id, patient_id)
- )
- if not self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id)
+ authoritative = request_key in self._patient_ai_list_requests
+ request_epoch = self._patient_ai_list_epochs.pop(request_key, None)
+ self._patient_ai_list_requests.discard(request_key)
+ self._patient_ai_list_cancel_events.pop(request_key, None)
+ self._patient_ai_list_started.discard(request_key)
+ if self._current_patient_ai_context(patient_id) is None or not authoritative:
+ return
+ if request_epoch != self._patient_ai_mutation_epoch(patient_id):
+ self._reconcile_stale_patient_ai_list(patient_id)
+ return
+ message = f"患者历史报告查询失败:{friendly_error(error)}"
+ if "qwen" in self._ai_analysis_payloads:
+ self._ai_analysis_operation_error = message
+ self._sync_ai_analysis_view()
return
self._set_ai_analysis_state(
"error",
- f"患者历史报告查询失败:{friendly_error(error)}",
+ message,
)
def _patient_ai_report_list_finished(
@@ -4952,12 +5485,19 @@ class ReceptionPage(QWidget):
appointment_id: int,
patient_id: int,
) -> None:
- self._patient_ai_list_requests.discard(
- (request_generation, appointment_id, patient_id)
- )
- if self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id)
+ self._patient_ai_list_requests.discard(request_key)
+ self._patient_ai_list_epochs.pop(request_key, None)
+ self._patient_ai_list_cancel_events.pop(request_key, None)
+ self._patient_ai_list_started.discard(request_key)
+ if self._current_patient_ai_context(patient_id) is not None:
+ if not self._patient_ai_request_pending(
+ patient_id,
+ ):
+ self._finish_orphaned_ai_loading(
+ "qwen",
+ "患者 AI 报告查询已结束但未返回有效结果,请重试。",
+ )
self._sync_ai_analysis_view()
def _request_patient_ai_generation(
@@ -4966,6 +5506,8 @@ class ReceptionPage(QWidget):
request_generation: int,
appointment_id: int,
patient_id: int,
+ *,
+ settle_before_request: bool = False,
) -> None:
if not self._patient_ai_context_current(
request_generation, appointment_id, patient_id
@@ -4991,9 +5533,6 @@ class ReceptionPage(QWidget):
)
return
request_key = (request_generation, appointment_id, patient_id, model)
- if request_key in self._ai_analysis_requests:
- return
- self._ai_analysis_requests.add(request_key)
self._ai_analysis_regenerating = True
self._ai_analysis_regeneration_model = model
self._ai_analysis_operation_error = ""
@@ -5001,14 +5540,63 @@ class ReceptionPage(QWidget):
self._ai_analysis_model_states[model] = "loading"
self._ai_analysis_model_messages[model] = ""
self._sync_ai_analysis_view()
+ cancelled_matches: list[tuple[int, int, int, str]] = []
+ for active_key in self._patient_ai_generation_requests:
+ _generation, _active_appointment_id, active_patient_id, active_model = active_key
+ if not (_same_id(active_patient_id, patient_id) and active_model == model):
+ continue
+ cancel_event = self._patient_ai_generation_cancel_events.get(active_key)
+ if (
+ active_key in self._patient_ai_generation_started
+ or cancel_event is None
+ or not cancel_event.is_set()
+ ):
+ return
+ cancelled_matches.append(active_key)
+ for cancelled_key in cancelled_matches:
+ self._patient_ai_generation_requests.discard(cancelled_key)
+ self._patient_ai_generation_cancel_events.pop(cancelled_key, None)
+ self._patient_ai_generation_requests.add(request_key)
+ cancel_event = Event()
+ self._patient_ai_generation_cancel_events[request_key] = cancel_event
+
+ def request() -> Any:
+ if settle_before_request and cancel_event.wait(
+ _AI_AUTOMATIC_GENERATION_SETTLE_SECONDS
+ ):
+ return _ASYNC_REQUEST_CANCELLED
+ if cancel_event.is_set() or self._current_patient_ai_context(patient_id) is None:
+ return _ASYNC_REQUEST_CANCELLED
+ automatic_slot = False
+ if settle_before_request:
+ automatic_slot = _AI_AUTOMATIC_REQUEST_SLOTS.acquire(blocking=False)
+ if not automatic_slot:
+ return _ASYNC_REQUEST_DEFERRED
+ try:
+ self._patient_ai_generation_started.add(request_key)
+ if (
+ cancel_event.is_set()
+ or self._current_patient_ai_context(patient_id) is None
+ ):
+ self._patient_ai_generation_started.discard(request_key)
+ return _ASYNC_REQUEST_CANCELLED
+ # From this point the write is authoritative and will be
+ # submitted; older history reads cannot replace it.
+ self._advance_patient_ai_mutation_epoch(patient_id)
+ return method(patient_id, model=model)
+ finally:
+ if automatic_slot:
+ _AI_AUTOMATIC_REQUEST_SLOTS.release()
+
run_async(
- lambda: method(patient_id, model=model),
+ request,
on_success=lambda result: self._apply_patient_ai_generation(
result,
request_generation,
appointment_id,
patient_id,
model,
+ settle_before_request,
),
on_error=lambda error: self._patient_ai_generation_error(
error,
@@ -5023,6 +5611,8 @@ class ReceptionPage(QWidget):
patient_id,
model,
),
+ pool=_AI_GENERATION_POOL,
+ priority=self._detail_generation,
)
def _apply_patient_ai_generation(
@@ -5032,13 +5622,52 @@ class ReceptionPage(QWidget):
appointment_id: int,
patient_id: int,
model: str,
+ settle_before_request: bool,
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, patient_id, model)
- )
- if not self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id, model)
+ authoritative = request_key in self._patient_ai_generation_requests
+ self._patient_ai_generation_requests.discard(request_key)
+ self._patient_ai_generation_cancel_events.pop(request_key, None)
+ self._patient_ai_generation_started.discard(request_key)
+ current_context = self._current_patient_ai_context(patient_id)
+ if current_context is None or not authoritative:
+ return
+ effective_generation, effective_appointment_id, _patient_id = current_context
+ if result is _ASYNC_REQUEST_DEFERRED:
+ if self._ai_analysis_regeneration_model == model:
+ self._ai_analysis_regenerating = False
+ self._ai_analysis_regeneration_model = None
+ label = AI_ANALYSIS_MODEL_LABELS.get(model, model)
+ message = f"{label}后台分析任务较多,请稍后点击重新分析。"
+ if model in self._ai_analysis_payloads:
+ self._ai_analysis_model_states[model] = "success"
+ self._ai_analysis_model_messages[model] = ""
+ self._ai_analysis_operation_error = message
+ else:
+ self._ai_analysis_model_states[model] = "error"
+ self._ai_analysis_model_messages[model] = message
+ self._sync_ai_analysis_view()
+ return
+ if result is _ASYNC_REQUEST_CANCELLED:
+ # The old worker reached its preflight while another patient was
+ # selected, then A became current again before signal delivery.
+ # Replace the cancelled single-flight instead of treating the
+ # sentinel as a malformed server response.
+ if (
+ model not in self._ai_analysis_payloads
+ and not self._patient_ai_request_pending(patient_id, model)
+ and (
+ self._ai_analysis_model_states.get(model) == "loading"
+ or self._ai_analysis_regeneration_model == model
+ )
+ ):
+ self._request_patient_ai_generation(
+ model,
+ effective_generation,
+ effective_appointment_id,
+ patient_id,
+ settle_before_request=settle_before_request,
+ )
return
generated = _generated_patient_report(
result,
@@ -5061,9 +5690,10 @@ class ReceptionPage(QWidget):
if model == "qwen":
self._request_patient_ai_generation(
"openai",
- request_generation,
- appointment_id,
+ effective_generation,
+ effective_appointment_id,
patient_id,
+ settle_before_request=True,
)
return
self._ai_analysis_regenerating = False
@@ -5079,12 +5709,12 @@ class ReceptionPage(QWidget):
patient_id: int,
model: str,
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, patient_id, model)
- )
- if not self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id, model)
+ authoritative = request_key in self._patient_ai_generation_requests
+ self._patient_ai_generation_requests.discard(request_key)
+ self._patient_ai_generation_cancel_events.pop(request_key, None)
+ self._patient_ai_generation_started.discard(request_key)
+ if self._current_patient_ai_context(patient_id) is None or not authoritative:
return
self._ai_analysis_regenerating = False
self._ai_analysis_regeneration_model = None
@@ -5107,12 +5737,20 @@ class ReceptionPage(QWidget):
patient_id: int,
model: str,
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, patient_id, model)
- )
- if self._patient_ai_context_current(
- request_generation, appointment_id, patient_id
- ):
+ request_key = (request_generation, appointment_id, patient_id, model)
+ self._patient_ai_generation_requests.discard(request_key)
+ self._patient_ai_generation_cancel_events.pop(request_key, None)
+ self._patient_ai_generation_started.discard(request_key)
+ if self._current_patient_ai_context(patient_id) is not None:
+ if not self._patient_ai_request_pending(
+ patient_id,
+ model,
+ ):
+ label = AI_ANALYSIS_MODEL_LABELS.get(model, model)
+ self._finish_orphaned_ai_loading(
+ model,
+ f"{label}报告请求已结束但未返回有效结果,请重试。",
+ )
self._sync_ai_analysis_view()
def _regenerate_patient_ai_reports(self) -> None:
@@ -5179,13 +5817,18 @@ class ReceptionPage(QWidget):
self._ai_analysis_patient_flow = False
self._ai_analysis_patient_id = patient_id
- if (
- not force
- and _same_id(diagnosis_id, self._ai_analysis_diagnosis_id)
- and self._ai_analysis_model_states["qwen"]
- in {"loading", "success", "error", "permission"}
- ):
- return
+ if not force and _same_id(diagnosis_id, self._ai_analysis_diagnosis_id):
+ qwen_state = self._ai_analysis_model_states["qwen"]
+ if qwen_state == "loading":
+ if self._diagnosis_ai_request_pending(
+ self._ai_analysis_generation,
+ appointment_id,
+ diagnosis_id,
+ "qwen",
+ ):
+ return
+ elif qwen_state in {"success", "error", "permission"}:
+ return
self._ai_analysis_generation += 1
request_generation = self._ai_analysis_generation
self._ai_analysis_diagnosis_id = diagnosis_id
@@ -5206,6 +5849,7 @@ class ReceptionPage(QWidget):
request_generation,
appointment_id,
diagnosis_id,
+ settle_before_request=not force,
)
def _request_ai_analysis_model(
@@ -5215,6 +5859,8 @@ class ReceptionPage(QWidget):
request_generation: int,
appointment_id: int,
diagnosis_id: int,
+ *,
+ settle_before_request: bool = False,
) -> None:
if not self._ai_analysis_context_current(
request_generation,
@@ -5238,14 +5884,43 @@ class ReceptionPage(QWidget):
if self._ai_analysis_model_states.get(model) == "success":
return
self._ai_analysis_requests.add(request_key)
+ cancel_event = Event()
+ self._ai_analysis_cancel_events[request_key] = cancel_event
self._ai_analysis_model_states[model] = "loading"
self._ai_analysis_model_messages[model] = ""
self._sync_ai_analysis_view()
def request() -> Any:
- if self._ai_analysis_supports_models:
- return method(diagnosis_id, model=model)
- return method(diagnosis_id)
+ if settle_before_request and cancel_event.wait(
+ _AI_AUTOMATIC_GENERATION_SETTLE_SECONDS
+ ):
+ return _ASYNC_REQUEST_CANCELLED
+ if not self._ai_analysis_context_current(
+ request_generation,
+ appointment_id,
+ diagnosis_id,
+ ) or cancel_event.is_set():
+ return _ASYNC_REQUEST_CANCELLED
+ automatic_slot = False
+ if settle_before_request:
+ automatic_slot = _AI_AUTOMATIC_REQUEST_SLOTS.acquire(blocking=False)
+ if not automatic_slot:
+ return _ASYNC_REQUEST_DEFERRED
+ try:
+ self._ai_analysis_started.add(request_key)
+ if not self._ai_analysis_context_current(
+ request_generation,
+ appointment_id,
+ diagnosis_id,
+ ) or cancel_event.is_set():
+ self._ai_analysis_started.discard(request_key)
+ return _ASYNC_REQUEST_CANCELLED
+ if self._ai_analysis_supports_models:
+ return method(diagnosis_id, model=model)
+ return method(diagnosis_id)
+ finally:
+ if automatic_slot:
+ _AI_AUTOMATIC_REQUEST_SLOTS.release()
run_async(
request,
@@ -5269,6 +5944,8 @@ class ReceptionPage(QWidget):
diagnosis_id,
model,
),
+ pool=_AI_GENERATION_POOL,
+ priority=self._detail_generation,
)
def _apply_ai_analysis(
@@ -5279,17 +5956,32 @@ class ReceptionPage(QWidget):
diagnosis_id: int,
model: str = "qwen",
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, diagnosis_id, model)
- )
+ request_key = (request_generation, appointment_id, diagnosis_id, model)
+ authoritative = request_key in self._ai_analysis_requests
+ self._ai_analysis_requests.discard(request_key)
+ self._ai_analysis_cancel_events.pop(request_key, None)
+ self._ai_analysis_started.discard(request_key)
if not self._ai_analysis_context_current(
request_generation,
appointment_id,
diagnosis_id,
- ):
+ ) or not authoritative:
return
if self._ai_analysis_model_states.get(model) != "loading":
return
+ if result is _ASYNC_REQUEST_CANCELLED:
+ self._finish_orphaned_ai_loading(
+ model,
+ f"{AI_ANALYSIS_MODEL_LABELS.get(model, model)}分析已取消,请重试。",
+ )
+ return
+ if result is _ASYNC_REQUEST_DEFERRED:
+ self._ai_analysis_model_states[model] = "error"
+ self._ai_analysis_model_messages[model] = (
+ f"{AI_ANALYSIS_MODEL_LABELS.get(model, model)}后台分析任务较多,请稍后重试。"
+ )
+ self._sync_ai_analysis_view()
+ return
payload: Mapping[str, Any] = result if isinstance(result, Mapping) else {}
returned_model = str(_analysis_value(payload, "model_key") or "").strip().lower()
if returned_model and returned_model != model:
@@ -5332,6 +6024,7 @@ class ReceptionPage(QWidget):
request_generation,
appointment_id,
diagnosis_id,
+ settle_before_request=True,
)
def _ai_analysis_error(
@@ -5342,9 +6035,10 @@ class ReceptionPage(QWidget):
diagnosis_id: int,
model: str = "qwen",
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, diagnosis_id, model)
- )
+ request_key = (request_generation, appointment_id, diagnosis_id, model)
+ self._ai_analysis_requests.discard(request_key)
+ self._ai_analysis_cancel_events.pop(request_key, None)
+ self._ai_analysis_started.discard(request_key)
if not self._ai_analysis_context_current(
request_generation,
appointment_id,
@@ -5368,15 +6062,27 @@ class ReceptionPage(QWidget):
diagnosis_id: int,
model: str = "qwen",
) -> None:
- self._ai_analysis_requests.discard(
- (request_generation, appointment_id, diagnosis_id, model)
- )
+ request_key = (request_generation, appointment_id, diagnosis_id, model)
+ self._ai_analysis_requests.discard(request_key)
+ self._ai_analysis_cancel_events.pop(request_key, None)
+ self._ai_analysis_started.discard(request_key)
if not self._ai_analysis_context_current(
request_generation,
appointment_id,
diagnosis_id,
):
return
+ if not self._diagnosis_ai_request_pending(
+ request_generation,
+ appointment_id,
+ diagnosis_id,
+ model,
+ ):
+ label = AI_ANALYSIS_MODEL_LABELS.get(model, model)
+ self._finish_orphaned_ai_loading(
+ model,
+ f"{label}分析请求已结束但未返回有效结果,请重试。",
+ )
self._sync_ai_analysis_view()
def _retry_ai_analysis(self) -> None:
@@ -5895,6 +6601,11 @@ class ReceptionPage(QWidget):
return
self._detail_generation += 1
generation = self._detail_generation
+ for cancel_event in self._detail_cancel_events.values():
+ cancel_event.set()
+ cancel_event = Event()
+ request_key = (generation, appointment_id)
+ self._detail_cancel_events[request_key] = cancel_event
self._selected_record = record
self._selected_appointment_id = appointment_id
if clear:
@@ -5904,21 +6615,31 @@ class ReceptionPage(QWidget):
if not silent:
self.detail_banner.show_message("正在加载患者详情…", "info")
self._detail_loading = True
- self._detail_requests.add((generation, appointment_id))
+ self._detail_requests.add(request_key)
run_async(
- lambda: self._fetch_detail_bundle(record, appointment_id),
+ lambda: self._fetch_detail_bundle(record, appointment_id, cancel_event),
on_success=lambda bundle: self._apply_detail(bundle, generation, appointment_id),
on_error=lambda error: self._detail_error(error, generation, appointment_id),
on_finished=lambda: self._detail_finished(generation, appointment_id),
+ priority=generation,
)
- def _fetch_detail_bundle(self, record: Any, appointment_id: int) -> dict[str, Any]:
+ def _fetch_detail_bundle(
+ self,
+ record: Any,
+ appointment_id: int,
+ cancel_event: Event | None = None,
+ ) -> dict[str, Any]:
+ if cancel_event is not None and cancel_event.is_set():
+ return {"cancelled": True}
detail = invoke(
self.repository,
"get_reception",
appointment_id=appointment_id,
id=appointment_id,
)
+ if cancel_event is not None and cancel_event.is_set():
+ return {"detail": detail, "cancelled": True}
if (
get_value(detail, "data", None) is not None
and get_value(detail, "appointment", None) is None
@@ -5940,8 +6661,10 @@ class ReceptionPage(QWidget):
embedded_tracking, (list, tuple)
) else ([embedded_tracking] if embedded_tracking else [])
warnings: list[str] = []
- if diagnosis_id is not None and callable(
- getattr(self.repository, "get_doctor_notes", None)
+ if (
+ (cancel_event is None or not cancel_event.is_set())
+ and diagnosis_id is not None
+ and callable(getattr(self.repository, "get_doctor_notes", None))
):
try:
notes = page_items(
@@ -5953,8 +6676,10 @@ class ReceptionPage(QWidget):
)
except Exception as error:
warnings.append(f"医生备注:{friendly_error(error)}")
- if diagnosis_id is not None and callable(
- getattr(self.repository, "get_tracking_window", None)
+ if (
+ (cancel_event is None or not cancel_event.is_set())
+ and diagnosis_id is not None
+ and callable(getattr(self.repository, "get_tracking_window", None))
):
end_date = date.today()
try:
@@ -5967,8 +6692,10 @@ class ReceptionPage(QWidget):
)
except Exception as error:
warnings.append(f"日常记录:{friendly_error(error)}")
- if diagnosis_id is not None and callable(
- getattr(self.repository, "list_tracking_notes", None)
+ if (
+ (cancel_event is None or not cancel_event.is_set())
+ and diagnosis_id is not None
+ and callable(getattr(self.repository, "list_tracking_notes", None))
):
try:
tracking_notes = page_items(
@@ -6021,13 +6748,23 @@ class ReceptionPage(QWidget):
self._daily_requests.add(request_key)
self.daily_panel.set_loading(True)
fallback_notes = list(self._daily_tracking_fallback)
- run_async(
- lambda: self._fetch_daily_bundle(
+
+ def request() -> dict[str, Any]:
+ if (
+ generation != self._daily_generation
+ or not _same_id(appointment_id, self._selected_appointment_id)
+ or diagnosis_id != self._daily_diagnosis_id
+ ):
+ return {"cancelled": True}
+ return self._fetch_daily_bundle(
diagnosis_id,
start,
end,
fallback_notes=fallback_notes,
- ),
+ )
+
+ run_async(
+ request,
on_success=lambda bundle: self._apply_daily_bundle(
bundle,
generation,
@@ -6045,6 +6782,7 @@ class ReceptionPage(QWidget):
appointment_id,
diagnosis_id,
),
+ priority=self._detail_generation,
)
def _fetch_daily_bundle(
@@ -6163,6 +6901,10 @@ class ReceptionPage(QWidget):
if not _same_id(actual_id, expected_id):
self._selected_detail = None
self._reset_detail_content(seed=self._selected_record)
+ self._detail_failed_requests.add((generation, expected_id))
+ self._render_detail_load_failure(
+ "患者详情校验失败,请重新选择患者后重试。"
+ )
self._stop_ai_analysis_after_detail_failure(
"患者详情校验失败,暂时无法生成 AI 智能分析。"
)
@@ -7271,6 +8013,12 @@ class ReceptionPage(QWidget):
show_toast(self, f"图片预览失败:{friendly_error(error)}", "danger", 5200)
def _reset_detail_content(self, seed: Any = None) -> None:
+ for cancel_event in self._patient_ai_generation_cancel_events.values():
+ cancel_event.set()
+ for cancel_event in self._patient_ai_list_cancel_events.values():
+ cancel_event.set()
+ for cancel_event in self._ai_analysis_cancel_events.values():
+ cancel_event.set()
patient_name = display_text(first_value(seed, "patient_name", "name", default="—"))
self.patient_name_label.setText(patient_name)
self.patient_avatar_label.setText(patient_name[:1] if patient_name != "—" else "患")
@@ -7338,6 +8086,41 @@ class ReceptionPage(QWidget):
self._render_notes([])
self._update_action_state(seed or {}, {})
+ def _render_detail_load_failure(self, message: str) -> None:
+ """Replace every transient detail placeholder with a terminal state."""
+
+ if not hasattr(self, "diagnosis_text"):
+ return
+ self.patient_meta_label.setText(message)
+ self._set_case_placeholder(message)
+ self.prescription_hint.setText("处方:患者详情加载失败")
+ self.prescription_hint.setProperty("casePrescriptionState", "unknown")
+ self.prescription_hint.style().unpolish(self.prescription_hint)
+ self.prescription_hint.style().polish(self.prescription_hint)
+ self._daily_generation += 1
+ self._daily_loading = False
+ self._daily_diagnosis_id = None
+ self._daily_tracking_fallback = []
+ self.daily_panel.set_error("患者详情加载失败,暂时无法读取日常记录。")
+ self.followup_text.setText("患者详情加载失败,暂时无法读取跟踪备注。")
+ self.health_summary_label.setText("患者详情加载失败,暂时无法读取健康数据。")
+ for label in self.case_labels.values():
+ label.setText("—")
+ for kind, caption in (
+ ("smoke", "吸烟"),
+ ("drink", "饮酒"),
+ ("exercise", "运动"),
+ ):
+ self.lifestyle_value_labels[kind].setText(f"{caption}:—")
+ for label in self.vital_labels.values():
+ label.setText("—")
+ for label in self.vital_unit_labels.values():
+ label.setVisible(False)
+ self.vital_bmi_state.setVisible(False)
+ for key, label in self.lab_labels.items():
+ label.setText("—")
+ self.lab_state_labels[key].setVisible(False)
+
def _update_action_state(self, appointment: Any, diagnosis: Any) -> None:
appointment_id = _record_id(appointment) or self._selected_appointment_id
diagnosis_id = _as_int(
@@ -7404,12 +8187,27 @@ class ReceptionPage(QWidget):
and expected_id is not None
and _same_id(expected_id, self._selected_appointment_id)
):
- self._selected_detail = None
+ request_key = (generation, expected_id)
+ self._detail_failed_requests.add(request_key)
+ cached_detail = self._selected_detail
+ if cached_detail is None:
+ self._render_detail_load_failure(
+ "患者详情加载失败,请重新选择患者或稍后重试。"
+ )
self._stop_ai_analysis_after_detail_failure(
"患者病历加载失败,暂时无法生成 AI 智能分析。"
)
self.detail_banner.show_message(friendly_error(error), "danger")
- self._update_action_state(self._selected_record or {}, {})
+ if cached_detail is None:
+ self._update_action_state(self._selected_record or {}, {})
+ else:
+ appointment = (
+ get_value(cached_detail, "appointment", None)
+ or self._selected_record
+ or {}
+ )
+ diagnosis = get_value(cached_detail, "diagnosis", None) or {}
+ self._update_action_state(appointment, diagnosis)
def _stop_ai_analysis_after_detail_failure(self, message: str) -> None:
"""Leave the AI card in a terminal, retryable state after detail failure."""
@@ -7448,7 +8246,9 @@ class ReceptionPage(QWidget):
self._set_ai_analysis_state("error", message)
def _detail_finished(self, generation: int, appointment_id: int) -> None:
- self._detail_requests.discard((generation, appointment_id))
+ request_key = (generation, appointment_id)
+ self._detail_requests.discard(request_key)
+ self._detail_cancel_events.pop(request_key, None)
current_request = (
self._detail_generation,
self._selected_appointment_id,
@@ -7456,7 +8256,25 @@ class ReceptionPage(QWidget):
self._detail_loading = (
current_request[1] is not None and current_request in self._detail_requests
)
- if not self._detail_loading and self._context_current(generation, appointment_id):
+ current = self._context_current(generation, appointment_id)
+ failed = request_key in self._detail_failed_requests
+ if (
+ current
+ and not self._detail_loading
+ and self._selected_detail is None
+ and not failed
+ ):
+ self._render_detail_load_failure(
+ "患者详情请求已结束但未返回有效结果,请重新选择患者后重试。"
+ )
+ self._stop_ai_analysis_after_detail_failure(
+ "患者病历未返回有效结果,暂时无法生成 AI 智能分析。"
+ )
+ self.detail_banner.show_message(
+ "患者详情请求未返回有效结果,请重新选择患者后重试。",
+ "danger",
+ )
+ if not self._detail_loading and current:
appointment = (
get_value(self._selected_detail, "appointment", None)
or self._selected_record
@@ -7464,9 +8282,13 @@ class ReceptionPage(QWidget):
)
diagnosis = get_value(self._selected_detail, "diagnosis", None) or {}
self._update_action_state(appointment, diagnosis)
+ self._detail_failed_requests.discard(request_key)
def _clear_selection(self) -> None:
self._detail_generation += 1
+ for cancel_event in self._detail_cancel_events.values():
+ cancel_event.set()
+ self._detail_loading = False
self._selected_record = None
self._selected_detail = None
self._selected_appointment_id = None
diff --git a/app/src/doctor_workstation/ui/shell.py b/app/src/doctor_workstation/ui/shell.py
index 17916471d..6aba8acfe 100644
--- a/app/src/doctor_workstation/ui/shell.py
+++ b/app/src/doctor_workstation/ui/shell.py
@@ -2,6 +2,7 @@
from __future__ import annotations
+import sqlite3
from collections.abc import Mapping, Sequence
from dataclasses import dataclass
from functools import wraps
@@ -22,6 +23,7 @@ from PySide6.QtGui import (
QShortcut,
)
from PySide6.QtWidgets import (
+ QApplication,
QButtonGroup,
QFrame,
QHBoxLayout,
@@ -38,6 +40,7 @@ from PySide6.QtWidgets import (
QWidget,
)
+from .dialogs.local_audio_queue import LocalAudioQueueDialog
from .pages import (
AppointmentsPage,
ConsultationsPage,
@@ -61,6 +64,25 @@ _SHELL_TOPBAR_HEIGHT = 62
_SHELL_TABS_HEIGHT = 0
_SHELL_OUTER_GUTTER = 13
_SHELL_PANEL_GAP = 0
+_SHELL_DESIGN_SIZE = QSize(1710, 920)
+_SHELL_MINIMUM_SIZE = QSize(1024, 640)
+
+
+def _bounded_initial_window_size(available_size: QSize | None) -> QSize:
+ """Fit the design viewport inside the screen's logical available geometry."""
+
+ if available_size is None or not available_size.isValid():
+ return QSize(_SHELL_DESIGN_SIZE.width(), _SHELL_DESIGN_SIZE.height())
+ return QSize(
+ max(
+ _SHELL_MINIMUM_SIZE.width(),
+ min(_SHELL_DESIGN_SIZE.width(), available_size.width()),
+ ),
+ max(
+ _SHELL_MINIMUM_SIZE.height(),
+ min(_SHELL_DESIGN_SIZE.height(), available_size.height()),
+ ),
+ )
# The references place the workspace at page-specific global x anchors while
# keeping a 13 px outer gutter. These are the actual rail widths inside that
@@ -660,24 +682,29 @@ class _PaintedIconButton(QToolButton):
self.setFixedSize(size, size)
self.setIcon(_painted_shell_icon(kind, icon_size))
self.setIconSize(QSize(icon_size, icon_size))
+ content_size = max(0, size - 2)
self.setStyleSheet(
- """
- QToolButton#ShellPaintedIconButton {
+ f"""
+ QToolButton#ShellPaintedIconButton {{
+ min-width: {content_size}px;
+ max-width: {content_size}px;
+ min-height: {content_size}px;
+ max-height: {content_size}px;
background: transparent;
border: 1px solid transparent;
border-radius: 9px;
- }
- QToolButton#ShellPaintedIconButton:hover {
+ }}
+ QToolButton#ShellPaintedIconButton:hover {{
background: #F0F3FC;
border-color: #E2E7F4;
- }
- QToolButton#ShellPaintedIconButton:pressed { background: #EEF1FF; }
- QToolButton#ShellPaintedIconButton:focus { border-color: #8D9BFF; }
- QToolButton#ShellPaintedIconButton[windowControl="close"]:hover {
+ }}
+ QToolButton#ShellPaintedIconButton:pressed {{ background: #EEF1FF; }}
+ QToolButton#ShellPaintedIconButton:focus {{ border-color: #8D9BFF; }}
+ QToolButton#ShellPaintedIconButton[windowControl="close"]:hover {{
background: #FFF0F2;
border-color: #F4C4CC;
- }
- QToolButton#ShellPaintedIconButton::menu-indicator { image: none; width: 0; }
+ }}
+ QToolButton#ShellPaintedIconButton::menu-indicator {{ image: none; width: 0; }}
"""
)
@@ -868,9 +895,12 @@ class ShellWindow(QMainWindow):
self._activation_page: QWidget | None = None
self._activation_generation = 0
self._activation_refreshed = False
+ self._local_audio_settings_dialog: LocalAudioQueueDialog | None = None
- self.setMinimumSize(1024, 640)
- self.resize(1710, 920)
+ self.setMinimumSize(_SHELL_MINIMUM_SIZE)
+ screen = self.screen() or QApplication.primaryScreen()
+ available_size = screen.availableGeometry().size() if screen is not None else None
+ self.resize(_bounded_initial_window_size(available_size))
canvas = _ShellCanvas(self)
canvas.setObjectName("AppCanvas")
@@ -1002,7 +1032,20 @@ class ShellWindow(QMainWindow):
font-weight: 700;
}
QPushButton#ShellAssistantButton:hover { background-color: #4658E8; }
- QLabel#ShellModelLabel { color: #8A95AF; font-size: 10px; }
+ QPushButton#ShellSettingsButton {
+ min-height: 42px;
+ color: #6E7C9F;
+ font-size: 11px;
+ font-weight: 600;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 10px;
+ }
+ QPushButton#ShellSettingsButton:hover {
+ color: #5265F6;
+ background-color: #EEF1FF;
+ }
+ QPushButton#ShellSettingsButton:focus { border-color: #8D9BFF; }
"""
)
layout = QVBoxLayout(sidebar)
@@ -1074,11 +1117,17 @@ class ShellWindow(QMainWindow):
outer_assistant.addWidget(self.assistant_card)
layout.addLayout(outer_assistant)
- self.model_label = QLabel("模型:GPT-4o 医疗版 ›", sidebar)
- self.model_label.setObjectName("ShellModelLabel")
- self.model_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
- self.model_label.setFixedHeight(76)
- layout.addWidget(self.model_label)
+ self.upload_settings_button = QPushButton("设置 ›", sidebar)
+ self.upload_settings_button.setObjectName("ShellSettingsButton")
+ self.upload_settings_button.setAccessibleName("本机录音上传设置")
+ self.upload_settings_button.setToolTip("查看本机录音上传记录")
+ self.upload_settings_button.setCursor(Qt.CursorShape.PointingHandCursor)
+ self.upload_settings_button.setFixedHeight(76)
+ self.upload_settings_button.clicked.connect(self._open_local_audio_settings)
+ # Keep the former attribute as a compatibility alias for integrations
+ # that inspect the bottom sidebar control.
+ self.model_label = self.upload_settings_button
+ layout.addWidget(self.upload_settings_button)
return sidebar
def _build_topbar(self) -> QWidget:
@@ -1095,10 +1144,6 @@ class ShellWindow(QMainWindow):
border-top-right-radius: 16px;
}
QFrame#ShellGlobalSearch {
- min-width: 265px;
- max-width: 265px;
- min-height: 36px;
- max-height: 36px;
background-color: #F8FAFF;
border: 1px solid #E2E7F4;
border-radius: 10px;
@@ -1112,6 +1157,23 @@ class ShellWindow(QMainWindow):
border: 0;
border-radius: 9px;
}
+ QLineEdit#ShellGlobalSearchInput QToolButton {
+ min-width: 22px;
+ max-width: 22px;
+ min-height: 18px;
+ max-height: 18px;
+ margin: 0;
+ padding: 0;
+ background-color: transparent;
+ border: 0;
+ border-radius: 0;
+ }
+ QLineEdit#ShellGlobalSearchInput QToolButton:hover,
+ QLineEdit#ShellGlobalSearchInput QToolButton:pressed,
+ QLineEdit#ShellGlobalSearchInput QToolButton:focus {
+ background-color: transparent;
+ border: 0;
+ }
QLabel#ShellShortcutHint {
color: #8A95AF;
background-color: #F0F3FC;
@@ -1207,7 +1269,9 @@ class ShellWindow(QMainWindow):
search_layout.addWidget(self.global_search, 1)
shortcut_hint = QLabel("Ctrl K", search_host)
shortcut_hint.setObjectName("ShellShortcutHint")
- search_layout.addWidget(shortcut_hint)
+ shortcut_hint.setAlignment(Qt.AlignmentFlag.AlignCenter)
+ shortcut_hint.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
+ search_layout.addWidget(shortcut_hint, 0, Qt.AlignmentFlag.AlignVCenter)
layout.addWidget(search_host)
self.context_label = QLabel("工作台", topbar)
@@ -1393,7 +1457,7 @@ class ShellWindow(QMainWindow):
)
self.brand_copy.setVisible(not self._sidebar_collapsed)
self.assistant_card.setVisible(not self._sidebar_collapsed)
- self.model_label.setVisible(not self._sidebar_collapsed)
+ self.upload_settings_button.setVisible(not self._sidebar_collapsed)
margins = (7, 14, 7, 0) if self._sidebar_collapsed else (12, 19, 12, 0)
self.nav_layout.setContentsMargins(*margins)
self.fold_button.kind = "expand" if self._sidebar_collapsed else "fold"
@@ -1486,6 +1550,26 @@ class ShellWindow(QMainWindow):
3600,
)
+ def _open_local_audio_settings(self) -> None:
+ current = self._local_audio_settings_dialog
+ if current is not None and current.isVisible():
+ current.raise_()
+ current.activateWindow()
+ return
+ try:
+ dialog = LocalAudioQueueDialog(self.repository, None, self)
+ except (OSError, RuntimeError, ValueError, sqlite3.Error) as error:
+ show_toast(self, f"无法打开本机录音上传设置:{error}", "error")
+ return
+ self._local_audio_settings_dialog = dialog
+
+ def clear_dialog(_result: int) -> None:
+ if self._local_audio_settings_dialog is dialog:
+ self._local_audio_settings_dialog = None
+
+ dialog.finished.connect(clear_dialog)
+ dialog.open()
+
def _tab_index_for_key(self, key: str) -> int:
for index in range(self.tab_bar.count()):
if self.tab_bar.tabData(index) == key:
diff --git a/app/src/doctor_workstation/ui/widgets.py b/app/src/doctor_workstation/ui/widgets.py
index de6f5d1d9..9d3a885d0 100644
--- a/app/src/doctor_workstation/ui/widgets.py
+++ b/app/src/doctor_workstation/ui/widgets.py
@@ -312,9 +312,14 @@ def run_async(
on_error: Callable[[Exception], None] | None = None,
on_finished: Callable[[], None] | None = None,
pool: QThreadPool | None = None,
+ priority: int = 0,
**kwargs: Any,
) -> Worker:
- """Run ``function`` off the GUI thread and return its Worker handle."""
+ """Run ``function`` off the GUI thread and return its Worker handle.
+
+ Higher-priority queued work starts first when a pool thread becomes free.
+ Running work is never interrupted.
+ """
worker = Worker(function, *args, **kwargs)
_RUNNING_WORKERS.add(worker)
@@ -324,7 +329,7 @@ def run_async(
if on_finished is not None:
worker.signals.finished.connect(on_finished)
worker.signals.finished.connect(lambda: _RUNNING_WORKERS.discard(worker))
- (pool or QThreadPool.globalInstance()).start(worker)
+ (pool or QThreadPool.globalInstance()).start(worker, priority)
return worker
diff --git a/app/src/doctor_workstation/video/lifecycle.py b/app/src/doctor_workstation/video/lifecycle.py
index 0a9906ce0..37b8275c8 100644
--- a/app/src/doctor_workstation/video/lifecycle.py
+++ b/app/src/doctor_workstation/video/lifecycle.py
@@ -15,6 +15,7 @@ import threading
from collections.abc import Callable, Mapping
from concurrent.futures import Future
from dataclasses import dataclass
+from pathlib import Path
from typing import Any, TypeVar
from .launcher import VideoCallRequest
@@ -110,6 +111,29 @@ def _extract_call_record_id(result: Any) -> int | str | None:
return None
+def _extract_cloud_recording_outcome(result: Any) -> tuple[bool, str] | None:
+ """Read the cloud mixed-video recording outcome returned by room binding."""
+
+ pending = [result]
+ visited: set[int] = set()
+ while pending:
+ candidate = pending.pop(0)
+ mapping = _mapping_candidate(candidate)
+ if mapping is None or id(mapping) in visited:
+ continue
+ visited.add(id(mapping))
+ recording = mapping.get("cloud_recording", mapping.get("cloudRecording"))
+ if isinstance(recording, Mapping):
+ started = bool(recording.get("started"))
+ message = str(recording.get("message") or "").strip()[:200]
+ return started, message
+ for key in ("data", "result"):
+ nested = mapping.get(key)
+ if isinstance(nested, Mapping):
+ pending.append(nested)
+ return None
+
+
def _clean_transcript_segment(segment: Mapping[str, Any], session_id: str) -> dict[str, Any]:
segment_id = str(segment.get("segment_id", segment.get("segmentId", ""))).strip()
text = str(segment.get("text", segment.get("sourceText", ""))).strip()
@@ -239,6 +263,7 @@ class OrderedCallLifecycle:
self._claimed_room_id: str | None = None
self._start_future: Future[bool] | None = None
self._bind_future: Future[bool] | None = None
+ self._local_recording_future: Future[bool] | None = None
self._end_future: Future[bool] | None = None
self._transcription_start_future: Future[bool] | None = None
self._transcription_finish_future: Future[bool] | None = None
@@ -256,6 +281,13 @@ class OrderedCallLifecycle:
def transcription_session_id(self) -> str | None:
return self._transcription_session_id
+ @property
+ def current_room_id(self) -> str | None:
+ """Return the room observed for this call cycle, including an active bind."""
+
+ with self._lock:
+ return self.bound_room_id or self._claimed_room_id
+
def start(self) -> Future[bool]:
with self._lock:
if self._start_future is not None:
@@ -318,18 +350,31 @@ class OrderedCallLifecycle:
def operation() -> bool:
with self._lock:
started = self.started
+ record_id = self.call_record_id
if not started:
return False
+ if record_id is None:
+ raise ValueError("server did not return the current call_record_id")
if not callable(method):
self.logger.warning(
"video repository does not implement bind_call_room",
extra={"video_call": self.request.safe_log_context()},
)
return False
- _call_repository_method(
+ result = _call_repository_method(
method,
- {"diagnosis_id": self.request.diagnosis_id, "room_id": cleaned},
+ {
+ "diagnosis_id": self.request.diagnosis_id,
+ "room_id": cleaned,
+ "call_record_id": record_id,
+ },
)
+ recording_outcome = _extract_cloud_recording_outcome(result)
+ if recording_outcome is not None and not recording_outcome[0]:
+ raise RuntimeError(
+ recording_outcome[1]
+ or "automatic Tencent cloud mixed-video recording did not start"
+ )
with self._lock:
self.bound_room_id = cleaned
self.logger.info(
@@ -338,8 +383,85 @@ class OrderedCallLifecycle:
)
return True
- self._bind_future = self._worker.submit("bind", operation)
- return self._bind_future
+ future = self._worker.submit("bind", operation)
+ self._bind_future = future
+
+ def release_failed_claim(completed: Future[bool]) -> None:
+ try:
+ succeeded = bool(completed.result())
+ except Exception:
+ succeeded = False
+ if succeeded:
+ return
+ # A transient bridge/API failure must not permanently pin the
+ # room to a failed Future. The companion retries the exact
+ # same room after the host acknowledgement, so release only
+ # this failed claim while preserving successful bindings.
+ with self._lock:
+ if self._bind_future is completed and self.bound_room_id is None:
+ self._bind_future = None
+ self._claimed_room_id = None
+
+ future.add_done_callback(release_failed_claim)
+ return future
+
+ def save_local_audio_recording(
+ self,
+ path: str | Path,
+ *,
+ mime_type: str = "audio/webm",
+ ) -> Future[bool]:
+ """Upload one locally mixed audio file to this exact call record.
+
+ The operation shares the lifecycle FIFO, so a caller that queues this
+ before :meth:`end` is guaranteed to attach the COS object before the
+ call record is marked ended.
+ """
+
+ recording_path = Path(path).expanduser().resolve()
+ clean_mime = str(mime_type or "audio/webm").strip()[:120] or "audio/webm"
+ if not recording_path.is_file() or recording_path.stat().st_size <= 0:
+ raise ValueError("local audio recording is empty or missing")
+ with self._lock:
+ if self._end_future is not None:
+ raise RuntimeError("video call has already ended")
+ if self._local_recording_future is not None:
+ return self._local_recording_future
+ if self._start_future is None:
+ self.start()
+ method = getattr(self.repository, "upload_call_recording", None)
+ if not callable(method):
+ raise ValueError("video repository does not implement local recording upload")
+
+ def operation() -> bool:
+ with self._lock:
+ started = self.started
+ record_id = self.call_record_id
+ if not started:
+ return False
+ if record_id is None:
+ raise ValueError("server did not return the current call_record_id")
+ result = _call_repository_method(
+ method,
+ {
+ "path": recording_path,
+ "diagnosis_id": self.request.diagnosis_id,
+ "call_record_id": record_id,
+ "mime_type": clean_mime,
+ },
+ )
+ if result is False:
+ raise RuntimeError("local audio recording upload failed")
+ self.logger.info(
+ "local call audio uploaded and attached",
+ extra={"video_call": self.request.safe_log_context()},
+ )
+ return True
+
+ self._local_recording_future = self._worker.submit(
+ "local-audio-upload", operation
+ )
+ return self._local_recording_future
def save_screenshot(self, content: bytes, filename: str) -> Future[str]:
"""Upload one video frame and append it to the diagnosis doctor notes."""
@@ -554,15 +676,21 @@ class OrderedCallLifecycle:
def operation() -> bool:
with self._lock:
started = self.started
+ record_id = self.call_record_id
if not started:
with self._lock:
self.ended = True
return False
if not callable(method):
raise ValueError("video repository does not implement end_call")
+ if record_id is None:
+ raise ValueError("server did not return the current call_record_id")
_call_repository_method(
method,
- {"diagnosis_id": self.request.diagnosis_id},
+ {
+ "diagnosis_id": self.request.diagnosis_id,
+ "call_record_id": record_id,
+ },
)
with self._lock:
self.ended = True
diff --git a/app/src/doctor_workstation/video/window.py b/app/src/doctor_workstation/video/window.py
index 32112f0f7..ee5aa6b35 100644
--- a/app/src/doctor_workstation/video/window.py
+++ b/app/src/doctor_workstation/video/window.py
@@ -11,6 +11,9 @@ import base64
import binascii
import json
import logging
+import os
+import re
+import sqlite3
import sys
from collections.abc import Callable, Mapping
from concurrent.futures import Future
@@ -20,6 +23,11 @@ from pathlib import Path
from typing import Any
from urllib.parse import parse_qsl, urlsplit
+from ..services.local_audio_queue import (
+ LocalAudioQueueStore,
+ LocalAudioUploadManager,
+ get_local_audio_upload_manager,
+)
from .launcher import (
VideoCallRequest,
VideoTicketError,
@@ -29,7 +37,7 @@ from .lifecycle import OrderedCallLifecycle
from .security import TrustedDocumentError, TrustedDocumentPolicy
try: # Optional by design: core-only builds must still import this module.
- from PySide6.QtCore import QObject, Qt, QUrl, Signal, Slot
+ from PySide6.QtCore import QObject, Qt, QTimer, QUrl, Signal, Slot
from PySide6.QtWebChannel import QWebChannel
from PySide6.QtWebEngineCore import (
QWebEnginePage,
@@ -39,7 +47,7 @@ try: # Optional by design: core-only builds must still import this module.
from PySide6.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWidgets import QApplication, QMainWindow
except (ImportError, OSError) as _qt_import_error: # pragma: no cover - no Qt runtime.
- QObject = Qt = QUrl = Signal = Slot = None # type: ignore[assignment]
+ QObject = QTimer = Qt = QUrl = Signal = Slot = None # type: ignore[assignment]
QWebChannel = QWebEnginePage = QWebEngineProfile = None # type: ignore[assignment]
QWebEngineSettings = QWebEngineView = None # type: ignore[assignment]
QApplication = QMainWindow = None # type: ignore[assignment]
@@ -63,6 +71,18 @@ class CompanionLocation:
is_local: bool
+@dataclass(slots=True)
+class _LocalAudioCapture:
+ record_id: int
+ session_id: str
+ mime_type: str
+ path: Path
+ handle: Any
+ lifecycle: OrderedCallLifecycle
+ next_sequence: int = 0
+ bytes_written: int = 0
+
+
def _validate_remote_url(value: str) -> str:
parsed = urlsplit(value)
if parsed.scheme.lower() != "https" or not parsed.hostname:
@@ -204,13 +224,67 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
}
)
+ @Slot(str, str) # type: ignore[misc]
+ def startLocalAudioRecording( # noqa: N802 - Qt bridge API
+ self, session_id: str, mime_type: str
+ ) -> None:
+ self._callback(
+ {
+ "source": "doctor-call",
+ "event": "local-audio-start",
+ "sessionId": session_id,
+ "mimeType": mime_type,
+ }
+ )
+
+ @Slot(str, int, str) # type: ignore[misc]
+ def appendLocalAudioChunk( # noqa: N802 - Qt bridge API
+ self, session_id: str, sequence: int, encoded: str
+ ) -> None:
+ self._callback(
+ {
+ "source": "doctor-call",
+ "event": "local-audio-chunk",
+ "sessionId": session_id,
+ "sequence": sequence,
+ "data": encoded,
+ }
+ )
+
+ @Slot(str, int) # type: ignore[misc]
+ def finishLocalAudioRecording( # noqa: N802 - Qt bridge API
+ self, session_id: str, total_bytes: int
+ ) -> None:
+ self._callback(
+ {
+ "source": "doctor-call",
+ "event": "local-audio-finish",
+ "sessionId": session_id,
+ "totalBytes": total_bytes,
+ }
+ )
+
+ @Slot(str) # type: ignore[misc]
+ def abortLocalAudioRecording(self, session_id: str) -> None: # noqa: N802
+ self._callback(
+ {
+ "source": "doctor-call",
+ "event": "local-audio-abort",
+ "sessionId": session_id,
+ }
+ )
+
class _EmbeddedVideoWindow(QMainWindow): # type: ignore[misc, valid-type]
status_changed = Signal(str) # type: ignore[misc]
call_ended = Signal(str) # type: ignore[misc]
call_error = Signal(str) # type: ignore[misc]
_start_completed = Signal(bool) # type: ignore[misc]
+ _room_completed = Signal(str, bool, str) # type: ignore[misc]
_screenshot_completed = Signal(bool, str) # type: ignore[misc]
_transcription_completed = Signal(str, str, str, bool, str) # type: ignore[misc]
+ _local_recording_completed = Signal( # type: ignore[misc]
+ str, str, int, bool, str
+ )
def __init__(
self,
@@ -247,8 +321,15 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self._close_reason = "window-closed"
self._call_cycle_closed = False
self._start_requested = False
+ self._shutdown_requested = False
+ self._local_audio_capture: _LocalAudioCapture | None = None
+ self._local_audio_store: LocalAudioQueueStore | None = None
+ self._local_audio_uploads: LocalAudioUploadManager | None = None
self._legacy_grants: list[tuple[Any, Any]] = []
self._permission_grants: list[Any] = []
+ self._shutdown_timer = QTimer(self)
+ self._shutdown_timer.setSingleShot(True)
+ self._shutdown_timer.timeout.connect(self._force_requested_shutdown)
self.setWindowTitle(
f"与 {self.patient_name} IM 问诊" if self.open_im else "视频面诊"
@@ -284,8 +365,10 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self._connect_permissions()
self._start_completed.connect(self._on_lifecycle_started)
+ self._room_completed.connect(self._on_room_completed)
self._screenshot_completed.connect(self._on_screenshot_completed)
self._transcription_completed.connect(self._on_transcription_completed)
+ self._local_recording_completed.connect(self._on_local_recording_completed)
self.web_view.loadFinished.connect(self._on_load_finished)
self.web_view.setUrl(QUrl(self.location.url))
@@ -428,6 +511,28 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
str(message.get("message") or "截屏图片无效。")[:200],
)
return
+ if event == "local-audio-start":
+ self._start_local_audio_recording(
+ str(message.get("sessionId") or ""),
+ str(message.get("mimeType") or "audio/webm"),
+ )
+ return
+ if event == "local-audio-chunk":
+ self._append_local_audio_chunk(
+ str(message.get("sessionId") or ""),
+ message.get("sequence"),
+ str(message.get("data") or ""),
+ )
+ return
+ if event == "local-audio-finish":
+ self._finish_local_audio_recording(
+ str(message.get("sessionId") or ""),
+ message.get("totalBytes"),
+ )
+ return
+ if event == "local-audio-abort":
+ self._abort_local_audio_recording(str(message.get("sessionId") or ""))
+ return
if event == "transcription-start-request":
self._start_transcription(
str(message.get("sessionId") or ""),
@@ -445,7 +550,13 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
return
room_id = message.get("roomId", message.get("room_id"))
if room_id not in (None, ""):
- self.lifecycle.bind_room(room_id)
+ clean_room_id = str(room_id).strip()
+ future = self.lifecycle.bind_room(clean_room_id)
+ future.add_done_callback(
+ lambda completed, current_room_id=clean_room_id: (
+ self._notify_room_completed(current_room_id, completed)
+ )
+ )
if event == "room":
return
if event == "status":
@@ -457,7 +568,7 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self.lifecycle.end(f"companion-{status}")
self._call_cycle_closed = True
self._start_requested = False
- if not self.open_im:
+ if not self.open_im or self._shutdown_requested:
self._close_from_companion("companion-hangup")
elif event == "error":
message_text = str(message.get("message", "视频通话错误"))[:400]
@@ -466,9 +577,343 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self.lifecycle.end("companion-error")
self._call_cycle_closed = True
self._start_requested = False
- if not self.open_im:
+ if not self.open_im or self._shutdown_requested:
self._close_from_companion("companion-error")
+ def _notify_room_completed(self, room_id: str, future: Future[bool]) -> None:
+ try:
+ succeeded = bool(future.result())
+ except Exception as error:
+ succeeded = False
+ message = str(error)[:200] or "腾讯云混流视频录制未启动。"
+ else:
+ message = (
+ "腾讯云混流视频已启动;本机录音将在结束后另行上传 COS。"
+ if succeeded
+ else "通话房间尚未绑定,云端视频和本机录音无法关联通话记录。"
+ )
+ with suppress(RuntimeError):
+ self._room_completed.emit(room_id, succeeded, message)
+
+ def _on_room_completed(
+ self,
+ room_id: str,
+ succeeded: bool,
+ message: str,
+ ) -> None:
+ if self._closing:
+ return
+ room_payload = json.dumps(str(room_id)[:160], ensure_ascii=True)
+ payload = json.dumps(str(message)[:200], ensure_ascii=True)
+ state = "true" if succeeded else "false"
+ self._page.runJavaScript(
+ "window.doctorConsultation?.roomBindingResult?.("
+ f"{room_payload}, {state}, {payload});"
+ )
+
+ def _emit_local_recording_result(
+ self,
+ operation: str,
+ session_id: str,
+ sequence: int,
+ succeeded: bool,
+ message: str,
+ ) -> None:
+ with suppress(RuntimeError):
+ self._local_recording_completed.emit(
+ operation,
+ session_id,
+ sequence,
+ succeeded,
+ str(message)[:200],
+ )
+
+ def _on_local_recording_completed(
+ self,
+ operation: str,
+ session_id: str,
+ sequence: int,
+ succeeded: bool,
+ message: str,
+ ) -> None:
+ if self._closing or self._released:
+ return
+ self._page.runJavaScript(
+ "window.doctorConsultation?.localRecordingResult?.("
+ f"{json.dumps(operation)}, {json.dumps(session_id)}, {sequence}, "
+ f"{'true' if succeeded else 'false'}, "
+ f"{json.dumps(str(message)[:200], ensure_ascii=True)});"
+ )
+
+ def _start_local_audio_recording(self, session_id: str, mime_type: str) -> None:
+ cleaned = str(session_id or "").strip()
+ clean_mime = str(mime_type or "audio/webm").strip().lower()[:120]
+ if not re.fullmatch(r"[A-Za-z0-9_-]{12,64}", cleaned):
+ self._emit_local_recording_result(
+ "start", cleaned, -1, False, "本地录音会话标识无效。"
+ )
+ return
+ if not clean_mime.startswith(("audio/webm", "audio/ogg")):
+ self._emit_local_recording_result(
+ "start", cleaned, -1, False, "当前浏览器录音格式不受支持。"
+ )
+ return
+ if self._local_audio_capture is not None:
+ existing = self._local_audio_capture.session_id == cleaned
+ self._emit_local_recording_result(
+ "start",
+ cleaned,
+ -1,
+ existing,
+ "本地录音已启动。" if existing else "已有另一条本地录音正在进行。",
+ )
+ return
+ try:
+ lifecycle = self.lifecycle
+ raw_call_record_id = lifecycle.call_record_id
+ call_record_id = (
+ int(raw_call_record_id) if raw_call_record_id not in (None, "") else None
+ )
+ store, uploads = get_local_audio_upload_manager(
+ lifecycle.repository,
+ self._local_audio_store,
+ )
+ self._local_audio_store = store
+ self._local_audio_uploads = uploads
+ record = store.begin_recording(
+ session_id=cleaned,
+ diagnosis_id=self.request.diagnosis_id,
+ mime_type=clean_mime,
+ call_record_id=call_record_id,
+ room_id=lifecycle.current_room_id or "",
+ )
+ # The handle intentionally remains open across WebChannel chunks.
+ handle = record.file_path.open("w+b")
+ except (OSError, RuntimeError, sqlite3.Error) as error:
+ self._emit_local_recording_result(
+ "start", cleaned, -1, False, str(error)[:200]
+ )
+ return
+ self._local_audio_capture = _LocalAudioCapture(
+ record_id=record.id,
+ session_id=cleaned,
+ mime_type=clean_mime,
+ path=record.file_path,
+ handle=handle,
+ lifecycle=lifecycle,
+ )
+ self._emit_local_recording_result(
+ "start", cleaned, -1, True, "本机语音录音已启动。"
+ )
+
+ def _append_local_audio_chunk(
+ self,
+ session_id: str,
+ sequence_value: Any,
+ encoded: str,
+ ) -> None:
+ capture = self._local_audio_capture
+ try:
+ sequence = int(sequence_value)
+ except (TypeError, ValueError):
+ sequence = -1
+ if capture is None or session_id != capture.session_id:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音会话标识不匹配。"
+ )
+ return
+ if sequence != capture.next_sequence:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音分片顺序不连续。"
+ )
+ return
+ if not encoded or len(encoded) > 16_384:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音分片过大或为空。"
+ )
+ return
+ try:
+ content = base64.b64decode(encoded, validate=True)
+ except (ValueError, binascii.Error):
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音分片解析失败。"
+ )
+ return
+ if not content or len(content) > 12 * 1024:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音分片大小无效。"
+ )
+ return
+ if capture.bytes_written + len(content) > 512 * 1024 * 1024:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, "本地录音超过 512 MB 限制。"
+ )
+ self._abort_local_audio_recording(session_id)
+ return
+ try:
+ capture.handle.write(content)
+ except OSError as error:
+ self._emit_local_recording_result(
+ "chunk", session_id, sequence, False, str(error)[:200]
+ )
+ self._abort_local_audio_recording(session_id)
+ return
+ capture.bytes_written += len(content)
+ capture.next_sequence += 1
+
+ def _finish_local_audio_recording(
+ self, session_id: str, total_bytes_value: Any
+ ) -> None:
+ capture = self._local_audio_capture
+ try:
+ total_bytes = int(total_bytes_value)
+ except (TypeError, ValueError):
+ total_bytes = -1
+ if capture is None or session_id != capture.session_id:
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, "本地录音会话标识不匹配。"
+ )
+ return
+ self._local_audio_capture = None
+ try:
+ capture.handle.flush()
+ os.fsync(capture.handle.fileno())
+ capture.handle.close()
+ except OSError as error:
+ self._mark_local_audio_invalid(capture.record_id, str(error))
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, str(error)[:200]
+ )
+ return
+ if total_bytes != capture.bytes_written or total_bytes <= 0:
+ self._mark_local_audio_invalid(
+ capture.record_id, "本地录音文件不完整。"
+ )
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, "本地录音文件不完整。"
+ )
+ return
+ if capture.bytes_written < 1024:
+ self._mark_local_audio_invalid(
+ capture.record_id, "本地录音文件为空或只有容器信息。"
+ )
+ self._emit_local_recording_result(
+ "finish",
+ session_id,
+ -1,
+ False,
+ "本地录音文件为空或只有容器信息,已阻止上传。",
+ )
+ return
+ try:
+ with capture.path.open("rb") as recording:
+ signature = recording.read(4)
+ except OSError as error:
+ self._mark_local_audio_invalid(capture.record_id, str(error))
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, str(error)[:200]
+ )
+ return
+ valid_signature = (
+ capture.mime_type.startswith("audio/webm")
+ and signature == b"\x1aE\xdf\xa3"
+ ) or (
+ capture.mime_type.startswith("audio/ogg") and signature == b"OggS"
+ )
+ if not valid_signature:
+ self._mark_local_audio_invalid(
+ capture.record_id, "本地录音格式校验失败。"
+ )
+ self._emit_local_recording_result(
+ "finish",
+ session_id,
+ -1,
+ False,
+ "本地录音格式校验失败,已阻止上传无效文件。",
+ )
+ return
+ store = self._local_audio_store
+ uploads = self._local_audio_uploads
+ if store is None or uploads is None:
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, "本机录音队列尚未初始化。"
+ )
+ return
+ try:
+ store.finalize_recording(
+ capture.record_id,
+ size_bytes=capture.bytes_written,
+ )
+ except (OSError, RuntimeError, sqlite3.Error) as error:
+ self._mark_local_audio_invalid(capture.record_id, str(error))
+ self._emit_local_recording_result(
+ "finish", session_id, -1, False, str(error)[:200]
+ )
+ return
+
+ lifecycle = capture.lifecycle
+
+ def enqueue_upload(start_result: Future[bool] | None = None) -> None:
+ try:
+ if start_result is not None and not bool(start_result.result()):
+ raise RuntimeError("通话记录创建失败,录音已保存在本机,可稍后重试。")
+ raw_call_record_id = lifecycle.call_record_id
+ call_record_id = int(raw_call_record_id or 0)
+ if call_record_id <= 0:
+ raise RuntimeError("未取得通话记录编号,录音已保存在本机,可稍后重试。")
+ store.bind_identity(
+ capture.record_id,
+ call_record_id=call_record_id,
+ room_id=lifecycle.current_room_id or "",
+ )
+ uploads.submit(capture.record_id)
+ except Exception as error:
+ with suppress(Exception):
+ store.update_status(
+ capture.record_id,
+ "failed",
+ str(error)[:1000],
+ )
+
+ if lifecycle.call_record_id:
+ enqueue_upload()
+ else:
+ try:
+ lifecycle.start().add_done_callback(enqueue_upload)
+ except Exception as error:
+ store.update_status(
+ capture.record_id,
+ "failed",
+ str(error)[:1000] or "通话记录创建失败。",
+ )
+ self._emit_local_recording_result(
+ "finish",
+ session_id,
+ -1,
+ True,
+ "本地录音已保存,正在后台上传 COS。",
+ )
+
+ def _mark_local_audio_invalid(self, record_id: int, message: str) -> None:
+ store = self._local_audio_store
+ if store is None:
+ return
+ with suppress(Exception):
+ store.mark_invalid(record_id, message)
+
+ def _abort_local_audio_recording(self, session_id: str) -> None:
+ capture = self._local_audio_capture
+ if capture is None or (session_id and capture.session_id != session_id):
+ return
+ self._local_audio_capture = None
+ with suppress(OSError):
+ capture.handle.flush()
+ capture.handle.close()
+ self._mark_local_audio_invalid(
+ capture.record_id,
+ "本次本地录音未正常结束,文件已保留以便排查。",
+ )
+
def _start_call_cycle(self) -> None:
if self._closing or self._start_requested:
return
@@ -633,7 +1078,49 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self.close()
def hangup(self) -> None:
- self._close_reason = "desktop-hangup"
+ self._request_companion_shutdown("desktop-hangup")
+
+ def _request_companion_shutdown(self, reason: str) -> None:
+ """Let MediaRecorder finish and upload before WebEngine is destroyed."""
+
+ self._close_reason = reason
+ if self._closing or self._released:
+ return
+ should_wait_for_companion = (
+ self._injected
+ and self._start_requested
+ and not self._call_cycle_closed
+ and not self._companion_ended
+ )
+ if not should_wait_for_companion:
+ self.close()
+ return
+ if self._shutdown_requested:
+ return
+ self._shutdown_requested = True
+ # doctorConsultation.close() stops MediaRecorder, drains every queued
+ # WebChannel chunk, waits for the Qt/COS finish acknowledgement, and
+ # only then emits hangup. Keeping _closing false here is essential:
+ # bridge callbacks are deliberately rejected once final destruction
+ # begins.
+ self._page.runJavaScript(
+ "void window.doctorConsultation?.close?.().catch(() => undefined)"
+ )
+ self._shutdown_timer.start(190_000)
+
+ def _force_requested_shutdown(self) -> None:
+ """Bound a failed companion shutdown without racing queued uploads."""
+
+ if not self._shutdown_requested or self._closing or self._released:
+ return
+ if self._start_requested and not self._call_cycle_closed:
+ # OrderedCallLifecycle places end after any upload that already
+ # reached the Qt bridge.
+ self.lifecycle.end(f"{self._close_reason}-timeout")
+ self._call_cycle_closed = True
+ self._start_requested = False
+ self._abort_local_audio_recording("")
+ self._companion_ended = True
self.close()
def _begin_shutdown(self) -> None:
@@ -641,12 +1128,10 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
return
self._closing = True
self._media_active = False
- if self._injected and not self._companion_ended and not self._released:
- self._page.runJavaScript(
- "void window.doctorConsultation?.close?.().catch(() => undefined)"
- )
+ self._shutdown_timer.stop()
if self._start_requested and not self._call_cycle_closed:
self.lifecycle.end(self._close_reason)
+ self._abort_local_audio_recording("")
self._release_webengine()
def wait_for_lifecycles(self, timeout: float) -> bool:
@@ -698,6 +1183,15 @@ if WEBENGINE_AVAILABLE: # pragma: no cover - GUI behavior needs an integration
self._profile.deleteLater()
def closeEvent(self, event: Any) -> None:
+ if (
+ self._injected
+ and self._start_requested
+ and not self._call_cycle_closed
+ and not self._companion_ended
+ ):
+ event.ignore()
+ self._request_companion_shutdown(self._close_reason)
+ return
self._begin_shutdown()
event.accept()
diff --git a/app/tests/test_api_client.py b/app/tests/test_api_client.py
index ea3b984d5..e20e867f7 100644
--- a/app/tests/test_api_client.py
+++ b/app/tests/test_api_client.py
@@ -3,7 +3,10 @@
from __future__ import annotations
import json
+from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
+from threading import Barrier, get_ident
+from typing import Any
import httpx
import pytest
@@ -17,6 +20,7 @@ from doctor_workstation.core.errors import (
OpenPageRequiredError,
WorkWechatBindingRequiredError,
)
+from doctor_workstation.services import api_client as api_client_module
from doctor_workstation.services.api_client import ApiClient
from doctor_workstation.services.token_store import TokenStore
@@ -48,6 +52,41 @@ def test_get_normalises_adminapi_and_sends_contract_headers() -> None:
)
+def test_default_client_allows_parallel_requests_with_independent_transports(
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ """Production workers must not queue behind one process-wide HTTP lock."""
+
+ rendezvous = Barrier(2, timeout=2)
+ created: list[Any] = []
+ request_threads: set[int] = set()
+
+ class PooledClient:
+ def __init__(self, **_options: Any) -> None:
+ self.closed = False
+ created.append(self)
+
+ def request(self, _method: str, url: str, **_options: Any) -> httpx.Response:
+ request_threads.add(get_ident())
+ rendezvous.wait()
+ return httpx.Response(200, json={"code": 1, "data": url.rsplit("/", 1)[-1]})
+
+ def close(self) -> None:
+ self.closed = True
+
+ monkeypatch.setattr(api_client_module.httpx, "Client", PooledClient)
+ client = ApiClient("https://example.test", max_retries=0)
+ with ThreadPoolExecutor(max_workers=2) as executor:
+ first = executor.submit(client.get, "patient/first")
+ second = executor.submit(client.get, "patient/second")
+ assert {first.result(timeout=3), second.result(timeout=3)} == {"first", "second"}
+ client.close()
+
+ assert len(created) == 2
+ assert len(request_threads) == 2
+ assert all(item.closed for item in created)
+
+
def test_post_uses_json_and_never_retries_timeout() -> None:
"""Writes use JSON and a timeout never causes an automatic duplicate POST."""
diff --git a/app/tests/test_appointments_parity_ui.py b/app/tests/test_appointments_parity_ui.py
index a6f4aae0f..d7600aed8 100644
--- a/app/tests/test_appointments_parity_ui.py
+++ b/app/tests/test_appointments_parity_ui.py
@@ -10,7 +10,14 @@ from typing import Any
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import pytest
-from PySide6.QtWidgets import QAbstractItemView, QApplication, QDialog, QDialogButtonBox, QLabel
+from PySide6.QtWidgets import (
+ QAbstractItemView,
+ QApplication,
+ QDialog,
+ QDialogButtonBox,
+ QLabel,
+ QPushButton,
+)
from doctor_workstation.core.errors import ApiProtocolError
from doctor_workstation.core.models import Appointment, PageResult
@@ -188,6 +195,106 @@ def test_diagnosis_and_patient_ids_stay_distinct_for_video() -> None:
)
assert prescription_action_label(pending) == "编辑处方"
+ historical_only = Appointment.from_dict(
+ {
+ "id": 104,
+ "prescription_audit_status": 1,
+ "prescription_void_status": 0,
+ "has_prescription": 1,
+ "current_has_prescription": 0,
+ "current_prescription_id": 0,
+ }
+ )
+ assert prescription_action_label(historical_only) == "开方"
+
+
+def test_appointment_view_intent_never_degrades_to_edit(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ row = {
+ "id": 101,
+ "appointment_id": 101,
+ "diagnosis_id": 501,
+ "current_has_prescription": 1,
+ "current_prescription_id": 81,
+ "prescription_audit_status": 1,
+ "prescription_void_status": 0,
+ }
+ page = AppointmentsPage(SimpleNamespace(), permissions=PermissionSet(["*"]))
+ monkeypatch.setattr(page, "_current_row", lambda: row)
+ requested: list[tuple[Any, str]] = []
+ monkeypatch.setattr(
+ page,
+ "_begin_prescription_load",
+ lambda source, *, mode="open": requested.append((source, mode)),
+ )
+ page._open_prescription()
+ assert requested == [(row, "view")]
+
+ monkeypatch.setattr(
+ page,
+ "_open_existing_prescription_editor",
+ lambda _existing: pytest.fail("view intent must never open the editor"),
+ )
+ page._prescription_loaded(
+ {
+ "id": 81,
+ "appointment_id": 101,
+ "audit_status": 2,
+ "void_status": 0,
+ },
+ row,
+ page._prescription_generation,
+ "view",
+ )
+ assert "状态已变化" in page.banner.label.text()
+ page.close()
+ application.processEvents()
+
+
+def test_appointment_im_action_opens_chat_without_an_existing_live_call(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ page = AppointmentsPage(
+ DemoDoctorRepository(),
+ permissions=PermissionSet(["doctor.appointment/prescription"]),
+ )
+ row = {
+ "id": 101,
+ "appointment_id": 101,
+ "diagnosis_id": 501,
+ "patient_id": 501,
+ "source_patient_id": 301,
+ "patient_name": "测试患者",
+ "status": 1,
+ }
+ emitted: list[dict[str, Any]] = []
+ monkeypatch.setattr(page, "_current_row", lambda: row)
+ page.video_requested.connect(emitted.append)
+
+ page._request_video()
+
+ assert len(emitted) == 1
+ assert emitted[0]["mode"] == "im"
+ assert emitted[0]["appointment_id"] == 101
+ assert emitted[0]["diagnosis_id"] == 501
+ assert emitted[0]["patient_id"] == 301
+
+ warnings: list[str] = []
+ monkeypatch.setattr(
+ appointments_module,
+ "show_toast",
+ lambda _parent, message, _kind: warnings.append(message),
+ )
+ row["status"] = 2
+ page._request_video()
+ assert len(emitted) == 1
+ assert warnings == ["已取消的挂号不可进入 IM 问诊。"]
+ page.close()
+ application.processEvents()
+
def test_appointment_pending_prescription_uses_full_edit_contract(
application: QApplication,
@@ -508,15 +615,20 @@ def test_appointment_ai_report_button_visible_with_reception_permission(
application.processEvents()
-def test_appointments_reference_split_layout_and_video_list(
+def test_appointments_use_full_width_table_with_per_row_im_consult(
application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
) -> None:
+ monkeypatch.setattr(appointments_module, "run_async", lambda *_args, **_kwargs: object())
page = AppointmentsPage(
DemoDoctorRepository(),
- permissions=PermissionSet(["doctor.appointment/lists"]),
+ permissions=PermissionSet(
+ ["doctor.appointment/lists", "doctor.appointment/prescription"]
+ ),
current_user={"id": 1001, "role_id": 1},
)
page.resize(1460, 820)
+ page.show()
page._apply_responsive_layout()
page._loaded(
{
@@ -524,6 +636,7 @@ def test_appointments_reference_split_layout_and_video_list(
{
"id": 101,
"diagnosis_id": 501,
+ "source_patient_id": 301,
"patient_name": "赵俊霞",
"gender": 0,
"age": 53,
@@ -532,6 +645,7 @@ def test_appointments_reference_split_layout_and_video_list(
"appointment_time": "09:50",
"status": 1,
"status_desc": "已挂号",
+ "video_call_hint": {"state": "live", "label": "视频通话进行中"},
}
],
"count": 1,
@@ -541,32 +655,143 @@ def test_appointments_reference_split_layout_and_video_list(
)
application.processEvents()
- assert page.video_list.count() == 1
- assert "赵俊霞" in page.video_list.item(0).text()
- assert 300 <= page.video_panel.width() <= 420
+ assert page.content_layout.count() == 1
+ assert not hasattr(page, "video_panel")
+ assert not hasattr(page, "video_list")
+ assert page.table_card.width() == page.content_host.width()
assert page.table.objectName() == "AppointmentTable"
assert (
page.table.verticalScrollMode()
== QAbstractItemView.ScrollMode.ScrollPerPixel
)
- assert (
- page.video_list.verticalScrollMode()
- == QAbstractItemView.ScrollMode.ScrollPerPixel
- )
+ assert page.table.horizontalHeaderItem(10).text() == "IM 问诊"
+ im_host = page.table.cellWidget(0, 10)
+ assert im_host is not None
+ im_button = im_host.findChild(QPushButton, "AppointmentImConsultButton")
+ assert im_button is not None
+ assert im_button.text() == "IM 问诊"
+ assert im_button.isEnabled()
+ assert im_button.accessibleName() == "与赵俊霞进行 IM 问诊"
+ emitted: list[dict[str, Any]] = []
+ page.video_requested.connect(emitted.append)
+ im_button.click()
+ assert emitted and emitted[0]["mode"] == "im"
+ assert emitted[0]["appointment_id"] == 101
assert page.date_buttons["today"].isChecked()
page.resize(1024, 640)
page._apply_responsive_layout()
- assert page.video_panel.isHidden()
- assert not page.video_panel_button.isHidden()
+ application.processEvents()
+ assert page.table_card.width() == page.content_host.width()
assert not page.date_overflow_button.isHidden()
assert page.date_buttons["yesterday"].isHidden()
assert not page.date_buttons["today"].isHidden()
- page.video_panel_button.click()
- assert not page.video_panel.isHidden()
- assert 250 <= page.video_panel.width() <= 300
- page.video_panel_button.click()
- assert page.video_panel.isHidden()
+ page.close()
+ application.processEvents()
+
+
+def test_im_entry_does_not_require_a_live_video_hint(
+ application: QApplication,
+) -> None:
+ page = AppointmentsPage(
+ DemoDoctorRepository(),
+ permissions=PermissionSet(["doctor.appointment/prescription"]),
+ )
+ rows = [
+ {
+ "id": 101,
+ "diagnosis_id": 501,
+ "source_patient_id": 301,
+ "patient_name": "已接通患者",
+ "status": 1,
+ "video_call_hint": {"state": "ended", "label": "视频通话已结束"},
+ },
+ {
+ "id": 102,
+ "diagnosis_id": 502,
+ "source_patient_id": 302,
+ "patient_name": "等待患者",
+ "status": 1,
+ },
+ ]
+ page._loaded({"lists": rows, "count": 2}, page._generation, False)
+ application.processEvents()
+
+ buttons = [
+ page.table.cellWidget(index, 10).findChild(
+ QPushButton,
+ "AppointmentImConsultButton",
+ )
+ for index in range(page.table.rowCount())
+ ]
+ buttons_by_name = {
+ button.accessibleName(): button for button in buttons if button is not None
+ }
+ assert set(buttons_by_name) == {
+ "与已接通患者进行 IM 问诊",
+ "与等待患者进行 IM 问诊",
+ }
+ assert buttons_by_name["与已接通患者进行 IM 问诊"].isEnabled()
+ waiting = buttons_by_name["与等待患者进行 IM 问诊"]
+ assert waiting.isEnabled()
+ assert waiting.toolTip() == "打开患者 IM,可发送消息并从会话中发起视频"
+ page.close()
+ application.processEvents()
+
+
+def test_im_entry_allows_fulfillable_statuses_and_rejects_terminal_or_unknown_statuses(
+ application: QApplication,
+) -> None:
+ page = AppointmentsPage(
+ DemoDoctorRepository(),
+ permissions=PermissionSet(["doctor.appointment/prescription"]),
+ )
+ rows = [
+ {
+ "id": index + 100,
+ "diagnosis_id": index + 500,
+ "source_patient_id": index + 300,
+ "patient_name": name,
+ "status": status,
+ }
+ for index, (name, status) in enumerate(
+ (
+ ("已预约患者", 1),
+ ("已过号患者", 4),
+ ("已取消患者", 2),
+ ("已完成患者", 3),
+ ("未知状态患者", 0),
+ )
+ )
+ ]
+ page._loaded({"lists": rows, "count": len(rows)}, page._generation, False)
+ application.processEvents()
+
+ buttons = {
+ button.accessibleName(): button
+ for row_index in range(page.table.rowCount())
+ if (
+ button := page.table.cellWidget(row_index, 10).findChild(
+ QPushButton,
+ "AppointmentImConsultButton",
+ )
+ )
+ is not None
+ }
+ assert buttons["与已预约患者进行 IM 问诊"].isEnabled()
+ assert buttons["与已过号患者进行 IM 问诊"].isEnabled()
+ assert not buttons["与已取消患者进行 IM 问诊"].isEnabled()
+ assert buttons["与已取消患者进行 IM 问诊"].toolTip() == (
+ "已取消的挂号不可进入 IM 问诊"
+ )
+ assert not buttons["与已完成患者进行 IM 问诊"].isEnabled()
+ assert buttons["与已完成患者进行 IM 问诊"].toolTip() == (
+ "已完成的挂号不可再进入 IM 问诊"
+ )
+ assert not buttons["与未知状态患者进行 IM 问诊"].isEnabled()
+ assert buttons["与未知状态患者进行 IM 问诊"].toolTip() == (
+ "当前挂号状态不可进入 IM 问诊"
+ )
page.close()
application.processEvents()
@@ -601,19 +826,20 @@ def test_identical_appointment_poll_keeps_existing_cell_widgets(
page._loaded(result, page._generation, True)
selector = page.table.cellWidget(0, 0)
appointment_info = page.table.cellWidget(0, 4)
- video_card = page.video_list.itemWidget(page.video_list.item(0))
+ im_action = page.table.cellWidget(0, 10)
page._loaded(deepcopy(result), page._generation, True)
assert page.table.cellWidget(0, 0) is selector
assert page.table.cellWidget(0, 4) is appointment_info
- assert page.video_list.itemWidget(page.video_list.item(0)) is video_card
+ assert page.table.cellWidget(0, 10) is im_action
changed = deepcopy(result)
changed["lists"][0]["assistant_name"] = "新医助"
page._loaded(changed, page._generation, True)
assert page.table.cellWidget(0, 0) is not selector
assert page.table.cellWidget(0, 4) is not appointment_info
+ assert page.table.cellWidget(0, 10) is not im_action
page.close()
application.processEvents()
@@ -665,11 +891,11 @@ def test_appointments_density_fits_four_rows_in_1366_shell_viewport(
assert all(60 <= height <= 66 for height in heights)
assert page.table.viewport().height() // max(heights) >= 4
assert page.pager.isVisibleTo(page)
- assert 300 <= page.video_panel.width() < 420
+ assert page.content_layout.count() == 1
+ assert page.table_card.width() == page.content_host.width()
page.resize(1024, 640)
application.processEvents()
- assert page.video_panel.isHidden()
- assert not page.video_panel_button.isHidden()
+ assert page.table_card.width() == page.content_host.width()
page.close()
application.processEvents()
diff --git a/app/tests/test_consultations_parity_ui.py b/app/tests/test_consultations_parity_ui.py
index 8db774af0..ce71b0ce2 100644
--- a/app/tests/test_consultations_parity_ui.py
+++ b/app/tests/test_consultations_parity_ui.py
@@ -169,7 +169,7 @@ def test_video_condition_never_uses_diagnosis_status_or_missed_status() -> None:
assert payload["patient_id"] == 301
-def test_nested_appointments_confirmation_and_prescription_labels() -> None:
+def test_nested_appointments_confirmation_and_prescription_labels() -> None:
row = _row(
appointment_id=None,
appointment_status=None,
@@ -195,6 +195,62 @@ def test_nested_appointments_confirmation_and_prescription_labels() -> None:
)
== "编辑处方"
)
+ assert (
+ prescription_action_label(
+ {
+ "has_prescription": 1,
+ "current_has_prescription": 0,
+ "prescription_audit_status": 1,
+ "prescription_void_status": 0,
+ }
+ )
+ == "开方"
+ )
+
+
+def test_view_prescription_intent_is_readonly_and_fails_closed_on_state_change(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ row = _row(
+ has_prescription=1,
+ current_has_prescription=1,
+ current_prescription_id=701,
+ prescription_audit_status=1,
+ prescription_void_status=0,
+ )
+ page = ConsultationsPage(SimpleNamespace(), permissions=PermissionSet(["*"]))
+ page.table_host.set_rows([row])
+ page.table.selectRow(0)
+
+ requested: list[tuple[Any, str]] = []
+ monkeypatch.setattr(
+ page,
+ "_begin_prescription_load",
+ lambda record, *, mode: requested.append((record, mode)),
+ )
+ page._open_prescription()
+ assert requested == [(row, "view")]
+
+ monkeypatch.setattr(
+ page,
+ "_open_existing_prescription_editor",
+ lambda _existing: pytest.fail("view intent must never open the editor"),
+ )
+ page._prescription_loaded(
+ {
+ "id": 701,
+ "appointment_id": 101,
+ "audit_status": 0,
+ "void_status": 0,
+ },
+ row,
+ "view",
+ page._prescription_generation,
+ )
+ assert "状态已变化" in page.banner.label.text()
+ page.close()
+ application.processEvents()
def test_default_query_matches_admin_today_and_page_size_contract(
@@ -611,7 +667,7 @@ def test_switching_rows_invalidates_prescription_worker_and_clears_busy(
application.processEvents()
-def test_native_call_does_not_reuse_video_qr_permission(
+def test_native_call_does_not_reuse_video_qr_permission(
application: QApplication,
) -> None:
class VideoRepository:
@@ -627,10 +683,17 @@ def test_native_call_does_not_reuse_video_qr_permission(
def end_call(self, diagnosis_id: int) -> None:
pass
- page = ConsultationsPage(VideoRepository(), permissions=PermissionSet([]))
- emitted: list[dict[str, Any]] = []
- page.video_requested.connect(emitted.append)
- page.table.set_rows([_row()])
+ live_row = _row(
+ video_call_hint={
+ "state": "live",
+ "label": "视频通话进行中",
+ "start_time": 1787102100,
+ }
+ )
+ page = ConsultationsPage(VideoRepository(), permissions=PermissionSet([]))
+ emitted: list[dict[str, Any]] = []
+ page.video_requested.connect(emitted.append)
+ page.table.set_rows([live_row])
page.table.selectRow(0)
application.processEvents()
@@ -638,12 +701,55 @@ def test_native_call_does_not_reuse_video_qr_permission(
assert page.video_button.isEnabled()
video_cell = page.table_host.fixed.indexWidget(page.table_host.model.index(0, 10))
video_action = next(button for button in video_cell.findChildren(QToolButton))
- assert video_action.text() == "进入视频问诊"
- assert "摄像头和麦克风" in video_action.toolTip()
- page._request_video()
- assert emitted == [_video_payload(_row())]
- page.close()
- application.processEvents()
+ assert video_action.text() == "进入视频问诊"
+ assert emitted == []
+ assert "摄像头和麦克风" in video_action.toolTip()
+ page._request_video()
+ assert emitted == [_video_payload(live_row)]
+ assert emitted[0]["mode"] == "im"
+ page.close()
+ application.processEvents()
+
+
+@pytest.mark.parametrize(
+ ("hint", "status_text"),
+ [
+ ({"state": "none", "label": ""}, "暂无通话"),
+ ({"state": "pending_room", "label": "通话发起中,待同步房间"}, "等待接通"),
+ ],
+)
+def test_video_join_action_is_hidden_until_doctor_session_is_live(
+ application: QApplication,
+ hint: dict[str, Any],
+ status_text: str,
+) -> None:
+ class VideoRepository:
+ def get_call_ticket(self, patient_id: int, diagnosis_id: int) -> None:
+ pass
+
+ def start_call(self, diagnosis_id: int, patient_id: int, *, call_type: int = 2) -> None:
+ pass
+
+ def bind_call_room(self, diagnosis_id: int, room_id: str) -> None:
+ pass
+
+ def end_call(self, diagnosis_id: int) -> None:
+ pass
+
+ page = ConsultationsPage(VideoRepository(), permissions=PermissionSet([]))
+ emitted: list[dict[str, Any]] = []
+ page.video_requested.connect(emitted.append)
+ page.table.set_rows([_row(video_call_hint=hint)])
+ page.table.selectRow(0)
+ application.processEvents()
+
+ video_cell = page.table_host.fixed.indexWidget(page.table_host.model.index(0, 10))
+ assert video_cell.findChildren(QToolButton) == []
+ assert status_text in " ".join(label.text() for label in video_cell.findChildren(QLabel))
+ page._request_video()
+ assert emitted == []
+ page.close()
+ application.processEvents()
@pytest.mark.parametrize(
diff --git a/app/tests/test_diagnosis_index_visual.py b/app/tests/test_diagnosis_index_visual.py
index 5b5c23079..07e30b01d 100644
--- a/app/tests/test_diagnosis_index_visual.py
+++ b/app/tests/test_diagnosis_index_visual.py
@@ -146,6 +146,8 @@ def _row(identifier: int, **changes: Any) -> dict[str, Any]:
"assistant_name": "赵医助",
"assign_read_at": None,
"has_prescription": 1,
+ "current_has_prescription": 0,
+ "current_prescription_id": 0,
"followup_time_text": "2026-08-17 09:00",
"followup_doctor_name": "陈医生",
"unserved_days": 2,
diff --git a/app/tests/test_diagnosis_order_video_visual.py b/app/tests/test_diagnosis_order_video_visual.py
index 2a65fc3c5..ef36eccef 100644
--- a/app/tests/test_diagnosis_order_video_visual.py
+++ b/app/tests/test_diagnosis_order_video_visual.py
@@ -1,12 +1,14 @@
from __future__ import annotations
import os
+import threading
+from types import SimpleNamespace
from typing import Any
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import pytest
-from PySide6.QtWidgets import QApplication, QFrame, QLabel, QPushButton, QVBoxLayout
+from PySide6.QtWidgets import QApplication, QDialog, QFrame, QLabel, QPushButton, QVBoxLayout
from doctor_workstation.ui import diagnosis_media
from doctor_workstation.ui.diagnosis_drawer import RecordTable
@@ -378,6 +380,7 @@ def test_video_table_embeds_player_and_preserves_row_bound_upload(
[
{
"id": 48,
+ "room_id": "doctor-501-20260819-143247",
"recording_urls_list": [
"https://media.example.invalid/replay.mp4",
"https://media.example.invalid/replay-backup.m3u8",
@@ -407,6 +410,12 @@ def test_video_table_embeds_player_and_preserves_row_bound_upload(
application.processEvents()
table = dialog._table_registry["video"][1]
+ assert table.horizontalHeaderItem(1).text() == "房间号"
+ assert table.item(0, 1).text() == "doctor-501-20260819-143247"
+ assert table.item(1, 1).text() == "历史记录未保存"
+ room_rect = table.visualItemRect(table.item(0, 1))
+ assert room_rect.left() >= 0
+ assert room_rect.right() < table.viewport().width()
playback = table.cellWidget(0, 0)
assert isinstance(playback, RecordingPlaybackCell)
assert playback.property("callRecordId") == 48
@@ -465,6 +474,132 @@ def test_video_table_embeds_player_and_preserves_row_bound_upload(
application.processEvents()
+def test_video_table_exposes_local_audio_separately_from_cloud_video_and_text(
+ application: QApplication,
+) -> None:
+ dialog = DiagnosisDialog(_Repository(), permissions=["*"])
+ dialog._editable = False
+ dialog._can_video_upload = False
+ dialog._diagnosis_id = 501
+ opened: list[str] = []
+ dialog._open_recording_player = lambda target: opened.append(target) # type: ignore[method-assign]
+ audio_url = "https://cos.example.invalid/calls/local-audio.webm"
+ dialog._fill_video(
+ [
+ {
+ "id": 49,
+ "recording_urls_list": [
+ "https://cos.example.invalid/calls/cloud-mixed-video.mp4"
+ ],
+ "local_audio_urls_list": [audio_url],
+ "local_audio_status_text": "已保存",
+ "transcript_text": "医生:请描述症状。\n患者:最近口渴。",
+ "transcription_status_text": "已完成",
+ "call_type": 2,
+ "status": 2,
+ "recording_status_text": "已生成",
+ }
+ ]
+ )
+ table = dialog._table_registry["video"][1]
+ action_host = table.cellWidget(0, 8)
+ assert action_host is not None
+ audio = action_host.findChild(QPushButton, "DiagnosisLocalAudioPlayback")
+ transcript = action_host.findChild(QPushButton, "DiagnosisVideoTranscriptView")
+ assert audio is not None and audio.property("callRecordId") == 49
+ assert transcript is not None and transcript.property("callRecordId") == 49
+ status = table.item(0, 7).text()
+ assert "云端视频:已生成" in status
+ assert "本机录音:已保存" in status
+ assert "转写文字:已完成" in status
+
+ audio.click()
+ assert opened == [audio_url]
+ dialog.close()
+ application.processEvents()
+
+
+def test_local_audio_upload_and_queue_close_refresh_server_backed_video_rows(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ created: list[QDialog] = []
+
+ class _UploadManager:
+ def __init__(self) -> None:
+ self.listeners: set[Any] = set()
+
+ def add_upload_listener(self, listener: Any) -> None:
+ self.listeners.add(listener)
+
+ def remove_upload_listener(self, listener: Any) -> None:
+ self.listeners.discard(listener)
+
+ def complete(self, diagnosis_id: int, call_record_id: int) -> None:
+ record = SimpleNamespace(
+ diagnosis_id=diagnosis_id,
+ call_record_id=call_record_id,
+ )
+ for listener in tuple(self.listeners):
+ listener(record)
+
+ manager = _UploadManager()
+
+ class _QueueDialog(QDialog):
+ def __init__(
+ self,
+ _repository: Any,
+ _diagnosis_id: int,
+ parent: QDialog,
+ ) -> None:
+ super().__init__(parent)
+ self.manager = manager
+ created.append(self)
+
+ monkeypatch.setattr(diagnosis_module, "LocalAudioQueueDialog", _QueueDialog)
+ dialog = DiagnosisDialog(_Repository(), permissions=["*"])
+ dialog._diagnosis_id = 501
+ dialog._can_video_upload = True
+ reloads: list[tuple[str, bool]] = []
+ dialog._ensure_tab_loaded = ( # type: ignore[method-assign]
+ lambda key, force=False: reloads.append((key, force))
+ )
+
+ dialog._open_local_audio_queue()
+ assert len(created) == 1
+ queue_dialog = created[0]
+ assert reloads == [("video", True)]
+
+ dialog._loading_tabs.add("video")
+ manager.complete(501, 49)
+ manager.complete(501, 50)
+ manager.complete(999, 51)
+ application.processEvents()
+ assert reloads == [("video", True)]
+ assert dialog._video_reload_pending is True
+
+ dialog._loading_tabs.discard("video")
+ dialog._flush_video_reload_if_pending(501)
+ application.processEvents()
+ assert reloads == [("video", True), ("video", True)]
+
+ queue_dialog.accept()
+ application.processEvents()
+ assert reloads == [("video", True), ("video", True)]
+ assert manager.listeners
+
+ worker = threading.Thread(target=lambda: manager.complete(501, 52))
+ worker.start()
+ worker.join(timeout=5)
+ assert worker.is_alive() is False
+ application.processEvents()
+ assert reloads == [("video", True), ("video", True), ("video", True)]
+
+ dialog.reject()
+ application.processEvents()
+ assert manager.listeners == set()
+
+
def test_inline_player_rejects_stale_owner_generation(application: QApplication) -> None:
class _Owner:
_tab_generations = {"video": 4}
diff --git a/app/tests/test_local_audio_queue.py b/app/tests/test_local_audio_queue.py
new file mode 100644
index 000000000..63119aee4
--- /dev/null
+++ b/app/tests/test_local_audio_queue.py
@@ -0,0 +1,482 @@
+from __future__ import annotations
+
+import sqlite3
+import threading
+from pathlib import Path
+from typing import Any
+
+import pytest
+from PySide6.QtTest import QTest
+from PySide6.QtWidgets import QApplication
+
+from doctor_workstation.services.local_audio_queue import (
+ LocalAudioQueueStore,
+ LocalAudioUploadManager,
+)
+from doctor_workstation.ui.dialogs.local_audio_queue import (
+ LocalAudioQueueDialog,
+ _display_time,
+)
+
+
+def _application() -> QApplication:
+ return QApplication.instance() or QApplication([])
+
+
+def _ready_record(
+ store: LocalAudioQueueStore,
+ *,
+ diagnosis_id: int,
+ call_record_id: int,
+ session_id: str,
+ room_id: str = "",
+) -> int:
+ record = store.begin_recording(
+ session_id=session_id,
+ diagnosis_id=diagnosis_id,
+ mime_type="audio/webm",
+ call_record_id=call_record_id,
+ room_id=room_id,
+ )
+ payload = b"\x1aE\xdf\xa3" + (b"local-call-audio" * 128)
+ record.file_path.write_bytes(payload)
+ finalized = store.finalize_recording(record.id, size_bytes=len(payload))
+ return finalized.id
+
+
+class _ConcurrentRepository:
+ def __init__(self, expected: int) -> None:
+ self.expected = expected
+ self.lock = threading.Lock()
+ self.release = threading.Event()
+ self.all_started = threading.Event()
+ self.active = 0
+ self.maximum_active = 0
+ self.calls: list[dict[str, Any]] = []
+
+ def upload_call_recording(self, **payload: Any) -> dict[str, str]:
+ path = Path(payload["path"])
+ assert path.is_file()
+ with self.lock:
+ self.active += 1
+ self.maximum_active = max(self.maximum_active, self.active)
+ self.calls.append(payload)
+ if self.active >= self.expected:
+ self.all_started.set()
+ try:
+ assert self.release.wait(5), "concurrent uploads did not receive release"
+ return {"file_url": f"cos://recordings/{path.name}"}
+ finally:
+ with self.lock:
+ self.active -= 1
+
+
+class _RetryRepository:
+ def __init__(self) -> None:
+ self.calls = 0
+ self.call_records: dict[int, list[dict[str, Any]]] = {}
+ self.list_calls: list[int] = []
+
+ def upload_call_recording(self, **payload: Any) -> dict[str, str]:
+ self.calls += 1
+ if self.calls == 1:
+ raise RuntimeError("COS 暂时不可用")
+ return {"file_url": f"cos://recordings/{Path(payload['path']).name}"}
+
+ def list_call_records(self, diagnosis_id: int) -> list[dict[str, Any]]:
+ self.list_calls.append(int(diagnosis_id))
+ return list(self.call_records.get(int(diagnosis_id), []))
+
+
+def test_existing_queue_schema_adds_room_id_without_losing_rows(
+ tmp_path: Path,
+) -> None:
+ root = tmp_path / "old-audio-queue"
+ root.mkdir()
+ database = root / "queue.sqlite3"
+ with sqlite3.connect(database) as connection:
+ connection.execute(
+ """
+ CREATE TABLE local_audio_uploads (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ session_id TEXT NOT NULL UNIQUE,
+ diagnosis_id INTEGER NOT NULL,
+ call_record_id INTEGER,
+ mime_type TEXT NOT NULL,
+ file_path TEXT NOT NULL,
+ size_bytes INTEGER NOT NULL DEFAULT 0,
+ status TEXT NOT NULL,
+ error_text TEXT NOT NULL DEFAULT '',
+ uploaded_url TEXT NOT NULL DEFAULT '',
+ attempts INTEGER NOT NULL DEFAULT 0,
+ created_at TEXT NOT NULL,
+ updated_at TEXT NOT NULL,
+ uploaded_at TEXT NOT NULL DEFAULT ''
+ )
+ """
+ )
+ connection.execute(
+ """
+ INSERT INTO local_audio_uploads (
+ session_id, diagnosis_id, call_record_id, mime_type, file_path,
+ size_bytes, status, error_text, uploaded_url, attempts,
+ created_at, updated_at, uploaded_at
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ """,
+ (
+ "legacy-uploaded-session",
+ 8169,
+ 901,
+ "audio/webm",
+ str(root / "legacy.webm"),
+ 2048,
+ "uploaded",
+ "",
+ "cos://recordings/legacy.webm",
+ 2,
+ "2026-08-20T01:00:00+00:00",
+ "2026-08-20T01:02:00+00:00",
+ "2026-08-20T01:02:00+00:00",
+ ),
+ )
+
+ store = LocalAudioQueueStore(root)
+ record = store.list_records()[0]
+ with sqlite3.connect(database) as connection:
+ columns = {
+ str(row[1])
+ for row in connection.execute(
+ "PRAGMA table_info(local_audio_uploads)"
+ ).fetchall()
+ }
+
+ assert "room_id" in columns
+ assert record.room_id == ""
+ assert record.status == "uploaded"
+ assert record.uploaded_url == "cos://recordings/legacy.webm"
+ assert record.attempts == 2
+ assert LocalAudioQueueStore(root).require(record.id).room_id == ""
+
+
+def test_local_audio_identity_binding_is_idempotent_and_rejects_conflicts(
+ tmp_path: Path,
+) -> None:
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ record = store.begin_recording(
+ session_id="identity-binding-session",
+ diagnosis_id=8169,
+ mime_type="audio/webm",
+ call_record_id=901,
+ room_id="00123456",
+ )
+
+ assert record.call_record_id == 901
+ assert record.room_id == "00123456"
+ assert store.bind_identity(
+ record.id,
+ call_record_id=901,
+ room_id="00123456",
+ ).room_id == "00123456"
+ assert store.bind_identity(record.id, call_record_id=901).room_id == "00123456"
+
+ with pytest.raises(RuntimeError, match="房间号发生冲突"):
+ store.bind_identity(record.id, call_record_id=901, room_id="99887766")
+ with pytest.raises(RuntimeError, match="通话记录 ID 或房间号发生冲突"):
+ store.bind_identity(record.id, call_record_id=902, room_id="00123456")
+ assert store.require(record.id).call_record_id == 901
+ assert store.require(record.id).room_id == "00123456"
+
+
+def test_local_audio_queue_uploads_three_files_concurrently(tmp_path: Path) -> None:
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ record_ids = [
+ _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=900 + index,
+ session_id=f"session-{index}",
+ )
+ for index in range(3)
+ ]
+ repository = _ConcurrentRepository(expected=3)
+ manager = LocalAudioUploadManager(repository, store, max_workers=3)
+ futures = [manager.submit(record_id) for record_id in record_ids]
+
+ try:
+ assert repository.all_started.wait(5)
+ assert repository.maximum_active == 3
+ finally:
+ repository.release.set()
+
+ assert [future.result(timeout=5) for future in futures] == [True, True, True]
+ records = [store.require(record_id) for record_id in record_ids]
+ assert all(record.status == "uploaded" for record in records)
+ assert all(record.exists for record in records)
+ assert all(record.uploaded_url.startswith("cos://recordings/") for record in records)
+ assert {call["call_record_id"] for call in repository.calls} == {900, 901, 902}
+
+
+def test_failed_local_audio_is_kept_and_can_be_retried(tmp_path: Path) -> None:
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ record_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="retry-session",
+ )
+ repository = _RetryRepository()
+ manager = LocalAudioUploadManager(repository, store, max_workers=1)
+
+ assert manager.submit(record_id).result(timeout=5) is False
+ failed = store.require(record_id)
+ assert failed.status == "failed"
+ assert failed.exists
+ assert failed.attempts == 1
+ assert "COS 暂时不可用" in failed.error_text
+
+ store.retry(record_id)
+ assert manager.submit(record_id).result(timeout=5) is True
+ uploaded = store.require(record_id)
+ assert uploaded.status == "uploaded"
+ assert uploaded.exists
+ assert uploaded.attempts == 2
+ assert uploaded.uploaded_url.startswith("cos://recordings/")
+
+
+def test_local_audio_manager_notifies_when_an_upload_reaches_uploaded(
+ tmp_path: Path,
+) -> None:
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ repository = _RetryRepository()
+ repository.calls = 1
+ manager = LocalAudioUploadManager(repository, store, max_workers=1)
+ record_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="upload-notification-session",
+ )
+ uploads: list[tuple[int, int, str]] = []
+
+ def record_upload(record: Any) -> None:
+ uploads.append(
+ (record.diagnosis_id, int(record.call_record_id or 0), record.uploaded_url)
+ )
+
+ manager.add_upload_listener(record_upload)
+ assert manager.submit(record_id).result(timeout=5) is True
+ assert manager.submit(record_id).result(timeout=5) is True
+ manager.remove_upload_listener(record_upload)
+
+ assert uploads == [
+ (
+ 8169,
+ 901,
+ store.require(record_id).uploaded_url,
+ )
+ ]
+
+
+def test_local_audio_manager_does_not_report_success_without_uploaded_url(
+ tmp_path: Path,
+) -> None:
+ class _IncompleteRepository:
+ @staticmethod
+ def upload_call_recording(**_payload: Any) -> dict[str, bool]:
+ return {"completed": True}
+
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ record_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="missing-url-session",
+ )
+ manager = LocalAudioUploadManager(_IncompleteRepository(), store, max_workers=1)
+ uploads: list[Any] = []
+ manager.add_upload_listener(uploads.append)
+
+ assert manager.submit(record_id).result(timeout=5) is False
+ record = store.require(record_id)
+ assert record.status == "failed"
+ assert "文件地址" in record.error_text
+ assert uploads == []
+
+
+def test_local_audio_dialog_displays_utc_recording_time_in_business_timezone() -> None:
+ assert _display_time("2026-08-20T01:51:00+00:00") == (
+ "2026-08-20 09:51:00"
+ )
+
+
+def test_local_audio_dialog_lists_status_and_retry_controls(tmp_path: Path) -> None:
+ application = _application()
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ repository = _RetryRepository()
+ manager = LocalAudioUploadManager(repository, store, max_workers=1)
+
+ failed_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="failed-session",
+ room_id="67534825",
+ )
+ store.update_status(failed_id, "failed", "等待医生重试")
+ uploaded_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=902,
+ session_id="uploaded-session",
+ room_id="1692231119",
+ )
+ store.mark_uploaded(uploaded_id, "cos://recordings/uploaded.webm")
+
+ dialog = LocalAudioQueueDialog(
+ repository,
+ 8169,
+ store=store,
+ manager=manager,
+ )
+ dialog.show()
+ application.processEvents()
+ try:
+ assert dialog.objectName() == "LocalAudioQueueDialog"
+ assert dialog.table.columnCount() == 8
+ assert dialog.table.rowCount() == 2
+ assert dialog.summary_failed.text() == "失败 1"
+ assert dialog.summary_uploaded.text() == "已上传 1"
+ assert dialog.retry_failed_button.isEnabled()
+ assert dialog.table.horizontalHeaderItem(1).text() == "通话记录 ID"
+ assert dialog.table.horizontalHeaderItem(2).text() == "房间号"
+ assert dialog.table.horizontalHeaderItem(5).text() == "上传状态"
+ assert dialog.table.horizontalHeaderItem(6).text() == "失败原因"
+ assert dialog.table.columnWidth(dialog._room_column) == 180
+ rooms = {
+ dialog.table.item(row, 2).text() for row in range(dialog.table.rowCount())
+ }
+ assert rooms == {"67534825", "1692231119"}
+ statuses = {
+ dialog.table.item(row, 5).text() for row in range(dialog.table.rowCount())
+ }
+ assert statuses == {"上传失败", "已上传"}
+ finally:
+ dialog.close()
+ application.processEvents()
+
+
+def test_global_local_audio_dialog_lists_all_diagnoses_and_outcomes(
+ tmp_path: Path,
+) -> None:
+ application = _application()
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ repository = _RetryRepository()
+ manager = LocalAudioUploadManager(repository, store, max_workers=1)
+
+ failed_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="global-failed-session",
+ room_id="67534825",
+ )
+ store.update_status(failed_id, "failed", "等待医生重试")
+ uploaded_id = _ready_record(
+ store,
+ diagnosis_id=9001,
+ call_record_id=902,
+ session_id="global-uploaded-session",
+ room_id="407179477",
+ )
+ store.mark_uploaded(uploaded_id, "cos://recordings/global-uploaded.webm")
+
+ dialog = LocalAudioQueueDialog(
+ repository,
+ None,
+ store=store,
+ manager=manager,
+ )
+ dialog.show()
+ application.processEvents()
+ try:
+ assert dialog.title_label.text() == "本机录音上传管理"
+ assert dialog.table.columnCount() == 9
+ assert dialog.table.rowCount() == 2
+ assert dialog.table.horizontalHeaderItem(1).text() == "诊单 ID"
+ assert dialog.table.horizontalHeaderItem(2).text() == "通话记录 ID"
+ assert dialog.table.horizontalHeaderItem(3).text() == "房间号"
+ assert dialog.table.horizontalHeaderItem(6).text() == "上传状态"
+ diagnosis_ids = {
+ dialog.table.item(row, 1).text()
+ for row in range(dialog.table.rowCount())
+ }
+ assert diagnosis_ids == {"8169", "9001"}
+ statuses = {
+ dialog.table.item(row, 6).text()
+ for row in range(dialog.table.rowCount())
+ }
+ assert statuses == {"上传失败", "已上传"}
+ rooms = {
+ dialog.table.item(row, 3).text()
+ for row in range(dialog.table.rowCount())
+ }
+ assert rooms == {"67534825", "407179477"}
+ assert dialog.summary_failed.text() == "失败 1"
+ assert dialog.summary_uploaded.text() == "已上传 1"
+ finally:
+ dialog.close()
+ application.processEvents()
+
+
+def test_dialog_fetches_and_persists_historical_room_ids_once_per_diagnosis(
+ tmp_path: Path,
+) -> None:
+ application = _application()
+ store = LocalAudioQueueStore(tmp_path / "audio-queue")
+ repository = _RetryRepository()
+ repository.call_records[8169] = [
+ {"id": 902, "room_id": "1692231119"},
+ {"id": 901, "room_id": "67534825"},
+ ]
+ manager = LocalAudioUploadManager(repository, store, max_workers=1)
+ first_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=901,
+ session_id="legacy-room-first",
+ )
+ second_id = _ready_record(
+ store,
+ diagnosis_id=8169,
+ call_record_id=902,
+ session_id="legacy-room-second",
+ )
+
+ dialog = LocalAudioQueueDialog(
+ repository,
+ 8169,
+ store=store,
+ manager=manager,
+ )
+ dialog.show()
+ try:
+ for _ in range(200):
+ application.processEvents()
+ if store.require(first_id).room_id and store.require(second_id).room_id:
+ break
+ QTest.qWait(10)
+
+ assert store.require(first_id).room_id == "67534825"
+ assert store.require(second_id).room_id == "1692231119"
+ assert repository.list_calls == [8169]
+ for _ in range(3):
+ dialog.refresh_records()
+ application.processEvents()
+ assert repository.list_calls == [8169]
+ assert {
+ dialog.table.item(row, 2).text()
+ for row in range(dialog.table.rowCount())
+ } == {"67534825", "1692231119"}
+ finally:
+ dialog.close()
+ application.processEvents()
diff --git a/app/tests/test_mock_repository.py b/app/tests/test_mock_repository.py
index 093160694..e0ee8f6f6 100644
--- a/app/tests/test_mock_repository.py
+++ b/app/tests/test_mock_repository.py
@@ -295,6 +295,34 @@ def test_demo_transcript_upsert_and_finish_round_trip_in_call_records(
assert "final words" in record["transcript_text"]
+def test_demo_local_audio_is_preserved_separately_from_cloud_video_and_text(
+ repository: DemoDoctorRepository,
+ tmp_path: Path,
+) -> None:
+ started = repository.start_call(501, 301)
+ call_record_id = int(started["id"])
+ audio = tmp_path / "local-call.webm"
+ audio.write_bytes(b"webm-opus-audio")
+
+ result = repository.upload_call_recording(
+ audio,
+ 501,
+ call_record_id=call_record_id,
+ mime_type="audio/webm;codecs=opus",
+ )
+ record = next(
+ row for row in repository.list_call_records(501) if row["id"] == call_record_id
+ )
+
+ assert result["media_kind"] == "local_audio"
+ assert result["call_record_id"] == call_record_id
+ assert record["local_audio_status"] == 2
+ assert record["local_audio_status_text"] == "已保存"
+ assert record["local_audio_urls_list"] == [result["file_url"]]
+ assert record["recording_urls_list"] == []
+ assert record["transcript_text"] == ""
+
+
def test_tolerant_page_parsing_accepts_aliases_and_bad_rows() -> None:
"""List parsing handles nullable fields, aliases and non-object rows safely."""
diff --git a/app/tests/test_patient_ai_report_desktop.py b/app/tests/test_patient_ai_report_desktop.py
index 35c6fdeee..e37eab2e6 100644
--- a/app/tests/test_patient_ai_report_desktop.py
+++ b/app/tests/test_patient_ai_report_desktop.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import os
+from concurrent.futures import ThreadPoolExecutor
from copy import deepcopy
from datetime import date
from typing import Any
@@ -40,8 +41,11 @@ def immediate_async(monkeypatch: pytest.MonkeyPatch) -> None:
on_success: Any = None,
on_error: Any = None,
on_finished: Any = None,
+ pool: Any = None,
+ priority: int = 0,
**kwargs: Any,
) -> object:
+ del pool, priority
try:
result = function(*args, **kwargs)
except Exception as error:
@@ -305,6 +309,64 @@ def test_openai_failure_keeps_new_qwen_snapshot(
page.close()
+def test_finished_only_cached_regeneration_unlocks_retry_and_keeps_snapshot(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ detail = _detail(109, 301, 509)
+ saved = _snapshot("qwen", 1, "2026-08-14 10:45:00")
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ return {"patient_id": patient_id, "reports": [saved]}
+
+ def generate_patient_ai_report(
+ self,
+ patient_id: int,
+ *,
+ model: str,
+ ) -> dict[str, Any]:
+ raise AssertionError(f"queued worker must not run inline: {patient_id}/{model}")
+
+ page = ReceptionPage(
+ Repository(),
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ jobs[0]["on_success"]({"detail": detail, "warnings": []})
+ jobs[1]["on_success"]({"patient_id": 301, "reports": [saved]})
+ jobs[1]["on_finished"]()
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_analysis_regenerate_button.isEnabled()
+
+ page.ai_analysis_regenerate_button.click()
+ assert len(jobs) == 3
+ assert page._ai_analysis_regenerating
+ assert not page.ai_analysis_regenerate_button.isEnabled()
+
+ jobs[2]["on_finished"]()
+
+ assert not page._ai_analysis_regenerating
+ assert page._ai_analysis_regeneration_model is None
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_summary_label.text() == "千问第 1 版诊断建议"
+ assert page.ai_analysis_regenerate_button.isEnabled()
+ assert "未返回有效结果" in page.ai_analysis_secondary_status.text()
+ page.close()
+
+
def test_late_patient_history_response_is_discarded_after_switch(
application: QApplication,
monkeypatch: pytest.MonkeyPatch,
@@ -353,6 +415,7 @@ def test_late_patient_history_response_is_discarded_after_switch(
first_history_job = jobs[1]
page._select_record(second["appointment"])
+ assert first_history_job["function"]() is reception_module._ASYNC_REQUEST_CANCELLED
finish(jobs[2])
second_history_job = jobs[3]
finish(second_history_job)
@@ -364,6 +427,563 @@ def test_late_patient_history_response_is_discarded_after_switch(
page.close()
+def test_aba_switch_attaches_to_inflight_patient_generation_without_duplicate_post(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ first = _detail(110, 301, 510)
+ second = _detail(111, 302, 511)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def __init__(self) -> None:
+ self.generate_calls: list[tuple[int, str]] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ return {"patient_id": patient_id, "reports": []}
+
+ def generate_patient_ai_report(
+ self,
+ patient_id: int,
+ *,
+ model: str,
+ ) -> dict[str, Any]:
+ self.generate_calls.append((patient_id, model))
+ generated = _snapshot(model, 1, "2026-08-14 12:00:00")
+ generated["patient_id"] = patient_id
+ return {
+ "patient_id": patient_id,
+ "generated_report": generated,
+ "report": generated,
+ }
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(first["appointment"])
+ jobs[0]["on_success"]({"detail": first, "warnings": []})
+ jobs[1]["on_success"]({"patient_id": 301, "reports": []})
+ first_qwen_job = jobs[2]
+ qwen_result = first_qwen_job["function"]()
+
+ page._select_record(second["appointment"])
+ page._select_record(first["appointment"])
+ jobs[4]["on_success"]({"detail": first, "warnings": []})
+
+ assert len(jobs) == 5
+ first_qwen_job["on_success"](qwen_result)
+ first_qwen_job["on_finished"]()
+
+ assert repository.generate_calls == [(301, "qwen")]
+ assert len(jobs) == 6
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_summary_label.text() == "千问第 1 版诊断建议"
+ page.close()
+ application.processEvents()
+
+
+def test_patient_history_get_is_singleflight_across_aba_switch(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ first = _detail(112, 301, 512)
+ second = _detail(113, 302, 513)
+ saved = _snapshot("qwen", 1, "2026-08-14 12:10:00")
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def __init__(self) -> None:
+ self.list_calls: list[int] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ self.list_calls.append(patient_id)
+ return {"patient_id": patient_id, "reports": [saved]}
+
+ def generate_patient_ai_report(self, patient_id: int, *, model: str) -> Any:
+ raise AssertionError(f"history exists: {patient_id}/{model}")
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(first["appointment"])
+ jobs[0]["on_success"]({"detail": first, "warnings": []})
+ first_list_job = jobs[1]
+ list_result = first_list_job["function"]()
+
+ page._select_record(second["appointment"])
+ page._select_record(first["appointment"])
+ jobs[3]["on_success"]({"detail": first, "warnings": []})
+
+ assert len(jobs) == 4
+ assert repository.list_calls == [301]
+
+ first_list_job["on_success"](list_result)
+ first_list_job["on_finished"]()
+
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_summary_label.text() == "千问第 1 版诊断建议"
+ page.close()
+ application.processEvents()
+
+
+def test_patient_ai_finished_only_tracks_qwen_workers_not_unrelated_openai(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ detail = _detail(114, 301, 514)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ return {"patient_id": patient_id, "reports": []}
+
+ def generate_patient_ai_report(self, patient_id: int, *, model: str) -> Any:
+ raise AssertionError(f"worker must remain queued: {patient_id}/{model}")
+
+ page = ReceptionPage(
+ Repository(),
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ jobs[0]["on_success"]({"detail": detail, "warnings": []})
+ current_list_job = jobs[1]
+ stale_qwen = (page._ai_analysis_generation - 2, 114, 301, "qwen")
+ stale_openai = (page._ai_analysis_generation - 1, 114, 301, "openai")
+
+ page._patient_ai_generation_requests.add(stale_qwen)
+ page._patient_ai_generation_finished(*stale_qwen)
+ assert page._ai_analysis_model_states["qwen"] == "loading"
+
+ page._patient_ai_generation_requests.add(stale_openai)
+ current_list_job["on_finished"]()
+ page._patient_ai_generation_finished(*stale_openai)
+
+ assert not page._patient_ai_list_requests
+ assert not page._patient_ai_generation_requests
+ assert page._ai_analysis_model_states["qwen"] == "error"
+ assert not page._ai_analysis_loading
+ assert "未返回有效结果" in page.ai_analysis_state_label.text()
+ page.close()
+ application.processEvents()
+
+
+def test_aba_cancelled_generation_is_replaced_instead_of_becoming_false_error(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ first = _detail(115, 301, 515)
+ second = _detail(116, 302, 516)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS",
+ 5.0,
+ )
+
+ class Repository:
+ def __init__(self) -> None:
+ self.generate_calls: list[tuple[int, str]] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ return {"patient_id": patient_id, "reports": []}
+
+ def generate_patient_ai_report(
+ self,
+ patient_id: int,
+ *,
+ model: str,
+ ) -> dict[str, Any]:
+ self.generate_calls.append((patient_id, model))
+ generated = _snapshot(model, 1, "2026-08-14 12:20:00")
+ generated["patient_id"] = patient_id
+ return {
+ "patient_id": patient_id,
+ "generated_report": generated,
+ "report": generated,
+ }
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(first["appointment"])
+ jobs[0]["on_success"]({"detail": first, "warnings": []})
+ jobs[1]["on_success"]({"patient_id": 301, "reports": []})
+ old_qwen_job = jobs[2]
+
+ with ThreadPoolExecutor(max_workers=1) as executor:
+ cancelled_future = executor.submit(old_qwen_job["function"])
+ page._select_record(second["appointment"])
+ cancelled = cancelled_future.result(timeout=1.0)
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS",
+ 0.0,
+ )
+ assert cancelled is reception_module._ASYNC_REQUEST_CANCELLED
+ assert repository.generate_calls == []
+
+ page._select_record(first["appointment"])
+ jobs[4]["on_success"]({"detail": first, "warnings": []})
+ assert len(jobs) == 6
+ current_list_job = jobs[5]
+ current_list_job["on_success"]({"patient_id": 301, "reports": []})
+ assert len(jobs) == 7
+ replacement_qwen_job = jobs[6]
+
+ current_list_job["on_finished"]()
+ assert len(jobs) == 7
+ qwen_result = replacement_qwen_job["function"]()
+ replacement_qwen_job["on_success"](qwen_result)
+ replacement_qwen_job["on_finished"]()
+ jobs_after_replacement = len(jobs)
+
+ old_qwen_job["on_success"](cancelled)
+ old_qwen_job["on_finished"]()
+
+ assert repository.generate_calls == [(301, "qwen")]
+ assert len(jobs) == jobs_after_replacement
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_summary_label.text() == "千问第 1 版诊断建议"
+ page.close()
+ application.processEvents()
+
+
+@pytest.mark.parametrize("late_completion", ["cancelled", "error"])
+def test_late_history_completion_cannot_clear_newer_generated_snapshot(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+ late_completion: str,
+) -> None:
+ detail = _detail(117, 301, 517)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def __init__(self) -> None:
+ self.generate_calls: list[tuple[int, str]] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ raise AssertionError(f"history worker remains pending: {patient_id}")
+
+ def generate_patient_ai_report(
+ self,
+ patient_id: int,
+ *,
+ model: str,
+ ) -> dict[str, Any]:
+ self.generate_calls.append((patient_id, model))
+ generated = _snapshot(model, 9, "2026-08-14 12:30:00")
+ generated["id"] = 901 if model == "qwen" else 902
+ generated["patient_id"] = patient_id
+ return {
+ "patient_id": patient_id,
+ "generated_report": generated,
+ "report": generated,
+ }
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ jobs[0]["on_success"]({"detail": detail, "warnings": []})
+ history_job = jobs[1]
+ current_context = page._current_patient_ai_context(301)
+ assert current_context is not None
+ generation, appointment_id, _patient_id = current_context
+ page._request_patient_ai_generation("qwen", generation, appointment_id, 301)
+ qwen_job = jobs[2]
+ qwen_result = qwen_job["function"]()
+ qwen_job["on_success"](qwen_result)
+ qwen_job["on_finished"]()
+ jobs_after_generation = len(jobs)
+
+ if late_completion == "cancelled":
+ history_job["on_success"](reception_module._ASYNC_REQUEST_CANCELLED)
+ else:
+ history_job["on_error"](RuntimeError("late history failure"))
+ history_job["on_finished"]()
+
+ assert repository.generate_calls == [(301, "qwen")]
+ assert len(jobs) == jobs_after_generation
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page._ai_analysis_payloads["qwen"]["id"] == 901
+ assert page.ai_summary_label.text() == "千问第 9 版诊断建议"
+ page.close()
+ application.processEvents()
+
+
+def test_cancelled_queued_generation_does_not_invalidate_valid_history_get(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ first = _detail(118, 301, 518)
+ second = _detail(119, 302, 519)
+ saved = _snapshot("qwen", 10, "2026-08-14 12:40:00")
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+
+ class Repository:
+ def __init__(self) -> None:
+ self.list_calls: list[int] = []
+ self.generate_calls: list[tuple[int, str]] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ self.list_calls.append(patient_id)
+ return {"patient_id": patient_id, "reports": [saved]}
+
+ def generate_patient_ai_report(self, patient_id: int, *, model: str) -> Any:
+ self.generate_calls.append((patient_id, model))
+ raise AssertionError("cancelled queued POST must not enter repository")
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(first["appointment"])
+ jobs[0]["on_success"]({"detail": first, "warnings": []})
+ history_job = jobs[1]
+ history_result = history_job["function"]()
+ current_context = page._current_patient_ai_context(301)
+ assert current_context is not None
+ generation, appointment_id, _patient_id = current_context
+ page._request_patient_ai_generation("qwen", generation, appointment_id, 301)
+ queued_qwen_job = jobs[2]
+
+ page._select_record(second["appointment"])
+ cancelled = queued_qwen_job["function"]()
+ page._select_record(first["appointment"])
+ jobs[4]["on_success"]({"detail": first, "warnings": []})
+ queued_qwen_job["on_success"](cancelled)
+ queued_qwen_job["on_finished"]()
+ history_job["on_success"](history_result)
+ history_job["on_finished"]()
+
+ assert repository.list_calls == [301]
+ assert repository.generate_calls == []
+ assert len(jobs) == 5
+ assert page._ai_analysis_model_states["qwen"] == "success"
+ assert page.ai_summary_label.text() == "千问第 10 版诊断建议"
+ page.close()
+ application.processEvents()
+
+
+def test_saturated_automatic_ai_slots_end_in_retryable_state_without_post(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ detail = _detail(120, 301, 520)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ class BusyAutomaticSlots:
+ @staticmethod
+ def acquire(*, blocking: bool) -> bool:
+ assert not blocking
+ return False
+
+ @staticmethod
+ def release() -> None:
+ raise AssertionError("an unacquired slot must not be released")
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS",
+ 0.0,
+ )
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_REQUEST_SLOTS",
+ BusyAutomaticSlots(),
+ )
+
+ class Repository:
+ def __init__(self) -> None:
+ self.generate_calls: list[tuple[int, str]] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ return {"patient_id": patient_id, "reports": []}
+
+ def generate_patient_ai_report(self, patient_id: int, *, model: str) -> Any:
+ self.generate_calls.append((patient_id, model))
+ raise AssertionError("busy automatic work must not submit a POST")
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ jobs[0]["on_success"]({"detail": detail, "warnings": []})
+ jobs[1]["on_success"]({"patient_id": 301, "reports": []})
+ automatic_qwen_job = jobs[2]
+ deferred = automatic_qwen_job["function"]()
+ automatic_qwen_job["on_success"](deferred)
+ automatic_qwen_job["on_finished"]()
+
+ assert deferred is reception_module._ASYNC_REQUEST_DEFERRED
+ assert repository.generate_calls == []
+ assert page._ai_analysis_model_states["qwen"] == "error"
+ assert not page._ai_analysis_loading
+ assert not page._ai_analysis_regenerating
+ assert page.ai_analysis_regenerate_button.isEnabled()
+ assert "后台分析任务较多" in page.ai_analysis_state_label.text()
+ page.close()
+ application.processEvents()
+
+
+def test_saturated_history_slots_end_in_retryable_state_without_get(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ detail = _detail(121, 301, 521)
+ jobs: list[dict[str, Any]] = []
+
+ def queue(function: Any, *args: Any, **options: Any) -> object:
+ jobs.append({"function": function, "args": args, **options})
+ return object()
+
+ class BusyAutomaticSlots:
+ @staticmethod
+ def acquire(*, blocking: bool) -> bool:
+ assert not blocking
+ return False
+
+ @staticmethod
+ def release() -> None:
+ raise AssertionError("an unacquired slot must not be released")
+
+ monkeypatch.setattr(reception_module, "run_async", queue)
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS",
+ 0.0,
+ )
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_REQUEST_SLOTS",
+ BusyAutomaticSlots(),
+ )
+
+ class Repository:
+ def __init__(self) -> None:
+ self.list_calls: list[int] = []
+
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ self.list_calls.append(patient_id)
+ raise AssertionError("busy automatic read must not enter repository")
+
+ def generate_patient_ai_report(self, patient_id: int, *, model: str) -> Any:
+ raise AssertionError(f"history did not complete: {patient_id}/{model}")
+
+ repository = Repository()
+ page = ReceptionPage(
+ repository,
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ jobs[0]["on_success"]({"detail": detail, "warnings": []})
+ history_job = jobs[1]
+ deferred = history_job["function"]()
+ history_job["on_success"](deferred)
+ history_job["on_finished"]()
+
+ assert deferred is reception_module._ASYNC_REQUEST_DEFERRED
+ assert repository.list_calls == []
+ assert page._ai_analysis_model_states["qwen"] == "error"
+ assert not page._ai_analysis_loading
+ assert page.ai_analysis_retry_button.isEnabled()
+ assert "查询任务较多" in page.ai_analysis_state_label.text()
+ page.close()
+ application.processEvents()
+
+
def test_get_history_requires_exact_top_level_and_row_patient_ids() -> None:
row = _snapshot("qwen", 1, "2026-08-14 11:00:00")
valid = {"patient_id": 301, "reports": [row]}
diff --git a/app/tests/test_patients_ui.py b/app/tests/test_patients_ui.py
index 21ef87ce3..2ab66a416 100644
--- a/app/tests/test_patients_ui.py
+++ b/app/tests/test_patients_ui.py
@@ -7,7 +7,7 @@ from typing import Any
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import pytest
-from PySide6.QtCore import QDate
+from PySide6.QtCore import QDate, QPoint
from PySide6.QtWidgets import QApplication, QDialogButtonBox, QInputDialog, QLabel
from doctor_workstation.core import PermissionSet
@@ -636,15 +636,35 @@ def test_patient_list_reference_geometry_and_row_actions(
button.minimumHeight() == 44 and button.maximumHeight() == 44
for button in workspace.summary_buttons.values()
)
- assert all(
- widget.minimumWidth() == 0 and widget.maximumWidth() > 1000
+ assert workspace.keyword_edit.objectName() == "PatientKeywordInput"
+ assert workspace.status_host.objectName() == "PatientStatusFilterHost"
+ assert workspace.quick_host.objectName() == "PatientQuickDateHost"
+ assert workspace.date_host.objectName() == "PatientDateRangeHost"
+ assert (
+ workspace.keyword_edit.maximumWidth(),
+ workspace.status_host.maximumWidth(),
+ workspace.quick_host.maximumWidth(),
+ workspace.date_host.maximumWidth(),
+ ) == (620, 440, 620, 420)
+ assert workspace.search_button.objectName() == "PatientSearchButton"
+ assert workspace.reset_button.objectName() == "PatientResetButton"
+ assert workspace.custom_date_button.objectName() == "PatientCustomDateButton"
+ for width in (1170, 1290, 1514):
+ page.resize(width, 680)
+ application.processEvents()
for widget in (
workspace.keyword_edit,
workspace.status_host,
+ workspace.search_button,
+ workspace.reset_button,
workspace.quick_host,
workspace.date_host,
- )
- )
+ workspace.custom_date_button,
+ ):
+ top_left = widget.mapTo(workspace.filter_card, QPoint(0, 0))
+ assert top_left.x() >= 0
+ assert top_left.x() + widget.width() <= workspace.filter_card.width()
+ assert all(button.maximumWidth() == 420 for button in workspace.summary_buttons.values())
assert page.tabs.minimumHeight() == 0
assert workspace.content_stack.minimumHeight() == 0
assert workspace.table.minimumHeight() == 0
diff --git a/app/tests/test_reception_parity_ui.py b/app/tests/test_reception_parity_ui.py
index 8f2dff64e..7d942d23c 100644
--- a/app/tests/test_reception_parity_ui.py
+++ b/app/tests/test_reception_parity_ui.py
@@ -10,14 +10,32 @@ os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import httpx
import pytest
-from PySide6.QtCore import QDate, QPoint, Qt
+from PySide6.QtCore import (
+ QDate,
+ QEvent,
+ QEventLoop,
+ QObject,
+ QPoint,
+ Qt,
+ QThreadPool,
+ QTimer,
+)
from PySide6.QtGui import QPalette
-from PySide6.QtWidgets import QApplication, QLabel, QPushButton, QScrollArea, QWidget
+from PySide6.QtWidgets import (
+ QApplication,
+ QLabel,
+ QPushButton,
+ QScrollArea,
+ QVBoxLayout,
+ QWidget,
+)
from doctor_workstation.core import PermissionSet
+from doctor_workstation.services import api_client as api_client_module
from doctor_workstation.services.api_client import ApiClient
from doctor_workstation.services.mock_repository import DemoDoctorRepository
from doctor_workstation.services.repository import RemoteDoctorRepository
+from doctor_workstation.ui import widgets as widgets_module
from doctor_workstation.ui.pages import reception as reception_module
from doctor_workstation.ui.pages.reception import (
NOTE_LIMIT,
@@ -41,8 +59,11 @@ def immediate_async(monkeypatch: pytest.MonkeyPatch) -> None:
on_success: Any = None,
on_error: Any = None,
on_finished: Any = None,
+ pool: Any = None,
+ priority: int = 0,
**kwargs: Any,
) -> object:
+ del pool, priority
try:
result = function(*args, **kwargs)
except Exception as error:
@@ -79,6 +100,135 @@ def queued_async(monkeypatch: pytest.MonkeyPatch) -> list[dict[str, Any]]:
return jobs
+def test_api_client_reuses_a_bounded_transport_across_qt_runnables(
+ application: QApplication,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ created: list[Any] = []
+
+ class PooledClient:
+ def __init__(self, **_options: Any) -> None:
+ self.closed = False
+ created.append(self)
+
+ def request(self, _method: str, url: str, **_options: Any) -> httpx.Response:
+ return httpx.Response(200, json={"code": 1, "data": url})
+
+ def close(self) -> None:
+ self.closed = True
+
+ monkeypatch.setattr(api_client_module.httpx, "Client", PooledClient)
+ client = ApiClient("https://example.test", max_parallel_requests=2)
+ pool = QThreadPool()
+ pool.setMaxThreadCount(1)
+ pool.setExpiryTimeout(-1)
+ remaining = 40
+ results: list[str] = []
+ loop = QEventLoop()
+
+ def finished() -> None:
+ nonlocal remaining
+ remaining -= 1
+ if remaining == 0:
+ loop.quit()
+
+ for index in range(remaining):
+ widgets_module.run_async(
+ lambda index=index: client.get(f"patient/{index}"),
+ on_success=results.append,
+ on_finished=finished,
+ pool=pool,
+ )
+ QTimer.singleShot(5_000, loop.quit)
+ loop.exec()
+ assert pool.waitForDone(2_000)
+ client.close()
+
+ assert remaining == 0
+ assert len(results) == 40
+ assert len(created) == 1
+ assert created[0].closed
+ application.processEvents()
+
+
+def test_clearing_ai_layout_does_not_promote_children_to_windows(
+ application: QApplication,
+) -> None:
+ host = QWidget()
+ layout = QVBoxLayout(host)
+ dynamic_label = QLabel("正在加载患者 AI 分析", host)
+ layout.addWidget(dynamic_label)
+ host.show()
+ application.processEvents()
+ destroyed: list[bool] = []
+ dynamic_label.destroyed.connect(lambda: destroyed.append(True))
+
+ reception_module._clear_ai_layout(layout)
+
+ assert layout.count() == 0
+ assert destroyed == [True]
+ assert dynamic_label not in application.topLevelWidgets()
+
+ host.close()
+ host.deleteLater()
+
+
+def test_queue_row_never_shows_loading_fields_as_parentless_windows(
+ application: QApplication,
+) -> None:
+ tracked_names = {
+ "StatusBadge",
+ "ReceptionQueueTime",
+ "ReceptionQueueMetric",
+ }
+
+ class OrphanShowRecorder(QObject):
+ def __init__(self) -> None:
+ super().__init__()
+ self.object_names: list[str] = []
+
+ def eventFilter(self, watched: QObject, event: QEvent) -> bool: # noqa: N802
+ if (
+ event.type() == QEvent.Type.Show
+ and isinstance(watched, QWidget)
+ and watched.objectName() in tracked_names
+ and watched.parentWidget() is None
+ and watched.isWindow()
+ ):
+ self.object_names.append(watched.objectName())
+ return False
+
+ recorder = OrphanShowRecorder()
+ application.installEventFilter(recorder)
+ try:
+ active_row = QueueRow(
+ {
+ "patient_name": "问诊患者",
+ "status": 2,
+ "status_desc": "问诊中",
+ "fasting_blood_sugar": 8.6,
+ }
+ )
+ waiting_row = QueueRow(
+ {
+ "patient_name": "待接诊患者",
+ "status": 1,
+ "appointment_time": "14:30",
+ }
+ )
+ finally:
+ application.removeEventFilter(recorder)
+
+ assert recorder.object_names == []
+ for row in (active_row, waiting_row):
+ for object_name in tracked_names:
+ widget = row.findChild(QWidget, object_name)
+ assert widget is not None
+ assert widget.parentWidget() is row
+ assert not widget.isWindow()
+ row.deleteLater()
+
+
@pytest.mark.parametrize(
("path", "expected"),
[
@@ -714,6 +864,101 @@ def test_fast_patient_switch_rejects_late_detail(
application.processEvents()
+def test_rapid_aba_switch_prioritizes_current_detail_and_skips_stale_bundles(
+ application: QApplication,
+ queued_async: list[dict[str, Any]],
+) -> None:
+ first = _detail(73, name="甲患者")
+ second = _detail(74, name="乙患者")
+
+ class Repository:
+ def __init__(self) -> None:
+ self.calls: list[int] = []
+
+ def get_reception(self, appointment_id: int) -> dict[str, Any]:
+ self.calls.append(appointment_id)
+ return first if appointment_id == 73 else second
+
+ repository = Repository()
+ page = ReceptionPage(repository, PermissionSet([]))
+
+ page._select_record(first["appointment"])
+ page._select_record(second["appointment"])
+ page._select_record(first["appointment"])
+
+ assert [job["priority"] for job in queued_async] == [1, 2, 3]
+ for stale_job in queued_async[:2]:
+ assert stale_job["function"]() == {"cancelled": True}
+ stale_job["on_finished"]()
+ assert repository.calls == []
+
+ current_job = queued_async[2]
+ current_job["on_success"](current_job["function"]())
+ current_job["on_finished"]()
+
+ assert repository.calls == [73]
+ assert page._selected_appointment_id == 73
+ assert page.patient_name_label.text() == "甲患者"
+ assert not page._detail_loading
+
+ page.close()
+ application.processEvents()
+
+
+def test_switching_patient_resets_stale_daily_panel_loading(
+ application: QApplication,
+) -> None:
+ page = ReceptionPage(object(), PermissionSet([]))
+ page.daily_panel.set_loading(True)
+ assert page.daily_panel._loading
+ assert not page.daily_panel.refresh_button.isEnabled()
+
+ page._reset_detail_content(
+ seed={"id": 75, "patient_name": "新患者", "diagnosis_id": 275}
+ )
+
+ assert not page.daily_panel._loading
+ assert page.daily_panel.refresh_button.isEnabled()
+ assert all(button.isEnabled() for button in page.daily_panel.range_buttons.values())
+ assert page.daily_panel.start_date.isEnabled()
+ assert page.daily_panel.end_date.isEnabled()
+
+ page.close()
+ application.processEvents()
+
+
+def test_stale_daily_worker_skips_repository_after_patient_switch(
+ application: QApplication,
+ queued_async: list[dict[str, Any]],
+) -> None:
+ first = _detail(76, name="日常甲患者")
+ second = _detail(77, name="日常乙患者")
+
+ class Repository:
+ def __init__(self) -> None:
+ self.tracking_calls: list[int] = []
+
+ def get_tracking_window(self, diagnosis_id: int, **_options: Any) -> dict[str, Any]:
+ self.tracking_calls.append(diagnosis_id)
+ return {}
+
+ repository = Repository()
+ page = ReceptionPage(repository, PermissionSet([]))
+ page._select_record(first["appointment"])
+ queued_async[0]["on_success"]({"detail": first, "warnings": []})
+ page._request_daily_range("2026-08-13", "2026-08-19")
+ stale_daily_job = queued_async[1]
+ page._select_record(second["appointment"])
+
+ assert stale_daily_job["function"]() == {"cancelled": True}
+ assert repository.tracking_calls == []
+ assert not page.daily_panel._loading
+ assert page.daily_panel.refresh_button.isEnabled()
+
+ page.close()
+ application.processEvents()
+
+
def test_medication_case_prioritizes_clinical_information_and_keeps_plain_summary(
application: QApplication,
) -> None:
@@ -1169,6 +1414,28 @@ def test_phone_permission_and_ungated_notify_video_actions(
application.processEvents()
+def test_im_consult_is_visible_immediately_after_history(
+ application: QApplication,
+) -> None:
+ page = ReceptionPage(DemoDoctorRepository(), PermissionSet([]))
+ page.resize(1280, 760)
+ page.detail_stack.setCurrentIndex(1)
+ page.show()
+ application.processEvents()
+
+ assert page.video_button.text() == "IM 问诊"
+ assert page.video_button.objectName() == "ReceptionImButton"
+ assert not page.video_button.isHidden()
+ assert page.history_button.geometry().right() < page.video_button.geometry().left()
+ assert page.video_button.geometry().right() < page.more_button.geometry().left()
+ assert "IM 问诊" not in [
+ action.text() for action in page.more_button.menu().actions()
+ ]
+
+ page.close()
+ application.processEvents()
+
+
def test_reception_ai_report_button_follows_permission(
application: QApplication,
immediate_async: None,
@@ -1423,6 +1690,65 @@ def test_reception_dual_ai_queues_openai_only_after_qwen_is_visible(
application.processEvents()
+def test_saturated_fallback_ai_slots_do_not_leave_current_analysis_loading(
+ application: QApplication,
+ queued_async: list[dict[str, Any]],
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ detail = _detail(86, name="后台分析繁忙患者")
+ calls: list[tuple[int, str]] = []
+
+ class BusyAutomaticSlots:
+ @staticmethod
+ def acquire(*, blocking: bool) -> bool:
+ assert not blocking
+ return False
+
+ @staticmethod
+ def release() -> None:
+ raise AssertionError("an unacquired slot must not be released")
+
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_GENERATION_SETTLE_SECONDS",
+ 0.0,
+ )
+ monkeypatch.setattr(
+ reception_module,
+ "_AI_AUTOMATIC_REQUEST_SLOTS",
+ BusyAutomaticSlots(),
+ )
+
+ class Repository:
+ def get_diagnosis_ai_analysis(
+ self,
+ diagnosis_id: int,
+ model: str,
+ ) -> dict[str, Any]:
+ calls.append((diagnosis_id, model))
+ raise AssertionError("busy automatic work must not enter repository")
+
+ page = ReceptionPage(
+ Repository(),
+ PermissionSet(["tcm.diagnosis/aiAnalysis"]),
+ )
+ page._select_record(detail["appointment"])
+ queued_async[0]["on_success"]({"detail": detail, "warnings": []})
+ automatic_qwen_job = queued_async[1]
+ deferred = automatic_qwen_job["function"](*automatic_qwen_job["args"])
+ automatic_qwen_job["on_success"](deferred)
+ automatic_qwen_job["on_finished"]()
+
+ assert deferred is reception_module._ASYNC_REQUEST_DEFERRED
+ assert calls == []
+ assert page._ai_analysis_model_states["qwen"] == "error"
+ assert not page._ai_analysis_loading
+ assert page.ai_analysis_retry_button.isEnabled()
+ assert "后台分析任务较多" in page.ai_analysis_state_label.text()
+ page.close()
+ application.processEvents()
+
+
def test_reception_openai_failure_keeps_qwen_success_visible(
application: QApplication,
queued_async: list[dict[str, Any]],
@@ -1886,6 +2212,89 @@ def test_detail_failure_stops_ai_loading_and_keeps_retry_available(
jobs[0]["on_finished"]()
assert not page._detail_loading
+ assert "正在" not in page.patient_meta_label.text()
+ assert "正在" not in page.diagnosis_text.text()
+ assert "正在" not in page.health_summary_label.text()
+ assert "正在" not in page.followup_text.text()
+ assert not page.daily_panel._loading
+ assert page.daily_panel.refresh_button.isEnabled()
+
+ page.close()
+ application.processEvents()
+
+
+def test_finished_only_detail_request_cannot_leave_loading_placeholders(
+ application: QApplication,
+ queued_async: list[dict[str, Any]],
+) -> None:
+ page = ReceptionPage(object(), PermissionSet(["*"]))
+ record = {
+ "id": 86,
+ "patient_id": 186,
+ "diagnosis_id": 286,
+ "patient_name": "无结果患者",
+ }
+
+ page._select_record(record)
+ queued_async[0]["on_finished"]()
+
+ assert not page._detail_loading
+ assert page._selected_detail is None
+ assert page.detail_banner.property("kind") == "danger"
+ assert "正在" not in page.patient_meta_label.text()
+ assert "正在" not in page.diagnosis_text.text()
+ assert "正在" not in page.health_summary_label.text()
+ assert "正在" not in page.followup_text.text()
+ assert not page.daily_panel._loading
+ assert page.daily_panel.refresh_button.isEnabled()
+ assert page._ai_analysis_state == "error"
+
+ page.close()
+ application.processEvents()
+
+
+def test_finished_only_patient_ai_query_becomes_retryable(
+ application: QApplication,
+ queued_async: list[dict[str, Any]],
+) -> None:
+ detail = _detail(87, name="AI 无结果患者")
+
+ class Repository:
+ def list_patient_ai_reports(self, patient_id: int) -> dict[str, Any]:
+ raise AssertionError(f"queued worker must not run inline: {patient_id}")
+
+ def generate_patient_ai_report(
+ self,
+ patient_id: int,
+ *,
+ model: str,
+ ) -> dict[str, Any]:
+ raise AssertionError(f"queued worker must not run inline: {patient_id}/{model}")
+
+ page = ReceptionPage(
+ Repository(),
+ PermissionSet(
+ [
+ "tcm.diagnosis/patientAiReports",
+ "tcm.diagnosis/generatePatientAiReport",
+ ]
+ ),
+ )
+ page._select_record(detail["appointment"])
+ queued_async[0]["on_success"]({"detail": detail, "warnings": []})
+ assert len(queued_async) == 2
+ assert page._ai_analysis_state == "loading"
+
+ queued_async[1]["on_finished"]()
+
+ assert page._ai_analysis_state == "error"
+ assert not page._ai_analysis_loading
+ assert "请重试" in page.ai_analysis_state_label.text()
+ assert not page.ai_analysis_retry_button.isHidden()
+
+ page.ai_analysis_retry_button.click()
+ assert len(queued_async) == 3
+ assert page._ai_analysis_state == "loading"
page.close()
application.processEvents()
@@ -1960,6 +2369,7 @@ def test_reception_ai_analysis_discards_late_qwen_and_openai_results(
assert len(queued_async) == 2
page._select_record(second["appointment"])
+ assert queued_async[1]["function"]() is reception_module._ASYNC_REQUEST_CANCELLED
queued_async[2]["on_success"]({"detail": second, "warnings": []})
assert len(queued_async) == 4
second_qwen = _analysis_payload("第二位千问风险")
@@ -1968,6 +2378,7 @@ def test_reception_ai_analysis_discards_late_qwen_and_openai_results(
assert len(queued_async) == 5
page._select_record(third["appointment"])
+ assert queued_async[4]["function"]() is reception_module._ASYNC_REQUEST_CANCELLED
queued_async[5]["on_success"]({"detail": third, "warnings": []})
assert len(queued_async) == 7
third_qwen = _analysis_payload("第三位千问风险")
diff --git a/app/tests/test_repository_parity.py b/app/tests/test_repository_parity.py
index a3620eba0..8b3285c37 100644
--- a/app/tests/test_repository_parity.py
+++ b/app/tests/test_repository_parity.py
@@ -3,6 +3,7 @@
from __future__ import annotations
from datetime import date
+from pathlib import Path
from typing import Any
import pytest
@@ -480,6 +481,81 @@ def test_remote_start_call_requires_and_normalizes_current_record_id() -> None:
]
+def test_remote_call_record_identity_is_reused_for_room_recording_and_end() -> None:
+ """Room binding and COS finalization must never select a different latest call."""
+
+ client = RecordingClient()
+ repository = RemoteDoctorRepository(client) # type: ignore[arg-type]
+
+ repository.bind_call_room(501, " room-901 ", call_record_id=901)
+ repository.end_call(501, call_record_id=901)
+
+ assert client.post_calls == [
+ (
+ "tcm.diagnosis/bindCallRoom",
+ {"diagnosis_id": 501, "room_id": "room-901", "call_record_id": 901},
+ ),
+ (
+ "tcm.diagnosis/endCall",
+ {"diagnosis_id": 501, "call_record_id": 901},
+ ),
+ ]
+
+
+def test_remote_local_audio_upload_keeps_exact_call_identity_and_mime(
+ tmp_path: Path,
+) -> None:
+ class MultipartClient(RecordingClient):
+ def __init__(self) -> None:
+ super().__init__()
+ self.multipart_calls: list[
+ tuple[str, dict[str, tuple[str, bytes, str]], dict[str, Any]]
+ ] = []
+
+ def post_multipart(
+ self,
+ endpoint: str,
+ *,
+ files: dict[str, tuple[str, bytes, str]],
+ data: dict[str, Any],
+ ) -> dict[str, Any]:
+ self.multipart_calls.append((endpoint, files, data))
+ completed = int(data["chunk_index"]) == int(data["chunk_total"]) - 1
+ return {
+ "call_record_id": 901,
+ "completed": completed,
+ "file_url": "https://cos.example.test/calls/local-audio.webm"
+ if completed
+ else "",
+ "media_kind": "local_audio",
+ }
+
+ recording = tmp_path / "local-audio.webm"
+ recording.write_bytes(b"a" * (4 * 1024 * 1024 + 3))
+ client = MultipartClient()
+ repository = RemoteDoctorRepository(client) # type: ignore[arg-type]
+
+ result = repository.upload_call_recording(
+ recording,
+ 501,
+ call_record_id=901,
+ mime_type="audio/webm;codecs=opus",
+ )
+
+ assert result["completed"] is True
+ assert result["call_record_id"] == 901
+ assert result["media_kind"] == "local_audio"
+ assert len(client.multipart_calls) == 2
+ assert all(call[0] == "tcm.diagnosis/uploadCallRecording" for call in client.multipart_calls)
+ for _endpoint, files, data in client.multipart_calls:
+ assert data["diagnosis_id"] == 501
+ assert data["call_record_id"] == 901
+ assert data["mime_type"] == "audio/webm;codecs=opus"
+ assert str(data["upload_id"]).startswith("local_audio_")
+ assert files["file"][0] == "local-audio.webm"
+ assert files["file"][2] == "audio/webm;codecs=opus"
+
+
@pytest.mark.parametrize(
"response",
[None, {}, {"ok": True}, {"call_record_id": 0}, {"callRecordId": -1}, {"id": True}],
@@ -645,6 +721,34 @@ def test_remote_diagnosis_ai_assistant_uses_first_party_endpoint_only() -> None:
assert client.timeouts == [105.0]
+def test_ai_post_type_error_after_dispatch_is_never_retried() -> None:
+ class FailingAfterDispatchClient:
+ token = "token"
+
+ def __init__(self) -> None:
+ self.calls = 0
+
+ def post(
+ self,
+ endpoint: str,
+ payload: dict[str, Any] | None = None,
+ *,
+ timeout: float | None = None,
+ ) -> Any:
+ assert endpoint == "tcm.diagnosis/generatePatientAiReport"
+ assert payload == {"patient_id": 301, "model": "qwen"}
+ assert timeout == 105.0
+ self.calls += 1
+ raise TypeError("transport failed after dispatch")
+
+ client = FailingAfterDispatchClient()
+
+ with pytest.raises(TypeError, match="after dispatch"):
+ RemoteDoctorRepository(client).generate_patient_ai_report(301, model="qwen")
+
+ assert client.calls == 1
+
+
def test_remote_diagnosis_ai_stream_normalises_chunks_in_order() -> None:
class StreamingClient(RecordingClient):
def post_event_stream(self, endpoint: str, payload: dict[str, Any], **kwargs: Any):
diff --git a/app/tests/test_shell_contract.py b/app/tests/test_shell_contract.py
index 7b1b8e6f4..d35d2792a 100644
--- a/app/tests/test_shell_contract.py
+++ b/app/tests/test_shell_contract.py
@@ -6,11 +6,17 @@ from typing import Any
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
import pytest
-from PySide6.QtCore import Qt
-from PySide6.QtWidgets import QApplication, QWidget
+from PySide6.QtCore import QSize, Qt
+from PySide6.QtWidgets import QApplication, QDialog, QFrame, QToolButton, QWidget
from doctor_workstation.ui import shell as shell_module
from doctor_workstation.ui.shell import NavigationItem, ShellWindow
+from doctor_workstation.ui.theme import apply_theme
+
+
+def _logical_pixel(image: Any, x: int, y: int):
+ device_scale = image.devicePixelRatio()
+ return image.pixelColor(round(x * device_scale), round(y * device_scale))
class _ShellPageDouble(QWidget):
@@ -39,7 +45,26 @@ class _ShellPageDouble(QWidget):
@pytest.fixture(scope="module")
def application() -> QApplication:
- return QApplication.instance() or QApplication([])
+ app = QApplication.instance() or QApplication([])
+ apply_theme(app)
+ return app
+
+
+@pytest.mark.parametrize(
+ ("available_size", "expected_size"),
+ [
+ (QSize(1920, 1080), QSize(1710, 920)),
+ (QSize(1486, 1000), QSize(1486, 920)),
+ (QSize(1600, 800), QSize(1600, 800)),
+ (QSize(800, 600), QSize(1024, 640)),
+ (None, QSize(1710, 920)),
+ ],
+)
+def test_shell_initial_size_is_bounded_by_logical_available_geometry(
+ available_size: QSize | None,
+ expected_size: QSize,
+) -> None:
+ assert shell_module._bounded_initial_window_size(available_size) == expected_size
def test_patients_navigation_keeps_the_product_menu_title() -> None:
@@ -145,14 +170,60 @@ def test_shell_matches_reference_geometry_at_both_acceptance_sizes(
assert shell_window.stack.geometry().bottom() < shell_window.workspace.height()
image = shell_window.grab().toImage()
- assert image.pixelColor(20, 300).name().lower() in {
+ assert _logical_pixel(image, 20, 300).name().lower() in {
"#f2f5fd",
"#f3f6fd",
"#f2f6fe",
"#f3f6fe",
}
- assert image.pixelColor(610, 20).name().lower() == "#ffffff"
- assert image.pixelColor(220, 90).name().lower() == "#fcfdfe"
+ assert _logical_pixel(image, 610, 20).name().lower() == "#ffffff"
+ assert _logical_pixel(image, 220, 90).name().lower() == "#fcfdfe"
+
+
+def test_topbar_search_actions_and_navigation_controls_stay_aligned(
+ application: QApplication,
+ shell_window: ShellWindow,
+) -> None:
+ for width, height in ((1024, 640), (1366, 768)):
+ shell_window.resize(width, height)
+ application.processEvents()
+
+ search_host = shell_window.topbar.findChild(QFrame, "ShellGlobalSearch")
+ shortcut_hint = search_host.findChild(QWidget, "ShellShortcutHint")
+ assert search_host.size().toTuple() == (265, 36)
+ assert shell_window.fold_button.size().toTuple() == (38, 38)
+ assert shortcut_hint.size() == shortcut_hint.sizeHint()
+ assert (
+ abs(search_host.geometry().center().y() - shell_window.fold_button.geometry().center().y())
+ <= 1
+ )
+ assert (
+ abs(
+ shortcut_hint.mapTo(search_host, shortcut_hint.rect().center()).y()
+ - search_host.rect().center().y()
+ )
+ <= 1
+ )
+
+ shell_window.global_search.setText("患者")
+ application.processEvents()
+ action_buttons = shell_window.global_search.findChildren(QToolButton)
+ assert len(action_buttons) == 2
+ for button in action_buttons:
+ assert button.size().toTuple() == (22, 18)
+ assert shell_window.global_search.rect().contains(button.geometry())
+ assert (
+ abs(
+ button.geometry().center().y()
+ - shell_window.global_search.rect().center().y()
+ )
+ <= 1
+ )
+
+ clear_button = max(action_buttons, key=lambda button: button.x())
+ clear_right = clear_button.mapTo(search_host, clear_button.rect().topRight()).x()
+ assert clear_right < shortcut_hint.x()
+ shell_window.global_search.clear()
def test_registered_pages_are_not_top_level_windows(shell_window: ShellWindow) -> None:
@@ -170,7 +241,11 @@ def test_reference_shell_has_integrated_search_ai_card_and_window_controls(
)
assert shell_window.assistant_card.isVisible()
assert shell_window.assistant_button.text() == "开始对话"
- assert "GPT-4o 医疗版" in shell_window.model_label.text()
+ assert shell_window.upload_settings_button.text().strip().startswith("设置")
+ assert (
+ shell_window.upload_settings_button.accessibleName() == "本机录音上传设置"
+ )
+ assert shell_window.model_label is shell_window.upload_settings_button
assert shell_window.minimize_button.text() == ""
assert shell_window.close_button.text() == ""
@@ -180,6 +255,42 @@ def test_reference_shell_has_integrated_search_ai_card_and_window_controls(
assert "在线" in shell_window.assistant_status.text()
+def test_shell_settings_opens_global_local_audio_upload_manager(
+ application: QApplication,
+ shell_window: ShellWindow,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ captured: dict[str, Any] = {}
+
+ def dialog_factory(
+ repository: Any,
+ diagnosis_id: int | None,
+ parent: QWidget,
+ ) -> QDialog:
+ dialog = QDialog(parent)
+ dialog.setObjectName("LocalAudioQueueDialog")
+ captured.update(
+ repository=repository,
+ diagnosis_id=diagnosis_id,
+ parent=parent,
+ dialog=dialog,
+ )
+ return dialog
+
+ monkeypatch.setattr(shell_module, "LocalAudioQueueDialog", dialog_factory)
+ shell_window.upload_settings_button.click()
+ application.processEvents()
+
+ assert captured["repository"] is shell_window.repository
+ assert captured["diagnosis_id"] is None
+ assert captured["parent"] is shell_window
+ assert captured["dialog"].isVisible()
+
+ captured["dialog"].reject()
+ application.processEvents()
+ assert shell_window._local_audio_settings_dialog is None
+
+
def test_every_visible_page_navigates_and_visited_tabs_track_active_page(
shell_window: ShellWindow,
) -> None:
diff --git a/app/tests/test_video_contract.py b/app/tests/test_video_contract.py
index a9ed2b647..a5cf70ed9 100644
--- a/app/tests/test_video_contract.py
+++ b/app/tests/test_video_contract.py
@@ -28,6 +28,233 @@ from doctor_workstation.video.security import ( # noqa: E402
)
+def test_companion_uses_legacy_safe_transcription_session_identity() -> None:
+ """Generated session IDs stay below 32 chars so upgraded databases cannot truncate."""
+
+ source = (PROJECT_ROOT / "video_companion" / "src" / "main.ts").read_text(
+ encoding="utf-8"
+ )
+ function_source = source.split("function newTranscriptionSessionId", 1)[1].split(
+ "function requestTranscriptionStart", 1
+ )[0]
+
+ assert "replaceAll('-', '')" in function_source
+ assert ".slice(0, 28)" in function_source
+ assert "return `tr-${" in function_source
+
+
+def test_companion_archives_cloud_video_local_mixed_audio_and_transcript() -> None:
+ """A connected call starts three independent artifacts before hangup."""
+
+ source = (PROJECT_ROOT / "video_companion" / "src" / "main.ts").read_text(
+ encoding="utf-8"
+ )
+
+ assert "context.createMediaStreamDestination()" in source
+ assert "cloud.getAudioTrack({ processed: true })" in source
+ assert "userId: activeConfig.targetUserId" in source
+ assert "new MediaRecorder(destination.stream" in source
+ assert "recorder.start(1000)" in source
+ assert "bridge.startLocalAudioRecording(sessionId, mimeType)" in source
+ assert "bridge.appendLocalAudioChunk(" in source
+ assert "bridge.finishLocalAudioRecording(sessionId, totalBytes)" in source
+ assert "operations.push(stopLocalRecording())" in source
+ assert "operations.push(stopTranscription('completed'))" in source
+ assert "Promise.allSettled(operations)" in source
+ assert "腾讯云混流视频、本机语音录音和实时转写均已启动" in source
+
+
+def test_companion_watches_room_id_for_the_entire_call_cycle() -> None:
+ """A slowly-created TRTC room must still bind to the exact call record."""
+
+ source = (PROJECT_ROOT / "video_companion" / "src" / "main.ts").read_text(
+ encoding="utf-8"
+ )
+ room_source = source.split("function readRoomId", 1)[1].split(
+ "function handleStatusChanged", 1
+ )[0]
+
+ assert "TUIStore.watch(StoreName.CALL, roomIdWatchOptions)" in room_source
+ assert "[NAME.ROOM_ID]: handleRoomIdChanged" in room_source
+ assert "cycle === callCycleGeneration" in room_source
+ assert "while (activeConfig && !endNotified" in room_source
+ assert "attempt < 40" not in room_source
+ assert "diagnosisId: activeConfig.diagnosisId" in room_source
+
+
+def test_room_binding_is_acknowledged_and_transcriber_room_is_a_fallback() -> None:
+ companion_source = (
+ PROJECT_ROOT / "video_companion" / "src" / "main.ts"
+ ).read_text(encoding="utf-8")
+ window_source = (
+ PROJECT_ROOT / "src" / "doctor_workstation" / "video" / "window.py"
+ ).read_text(encoding="utf-8")
+
+ assert "observeRoomId(roomId)" in companion_source
+ assert "onRealtimeTranscriberStarted: (roomId)" in companion_source
+ assert "function roomBindingResult(" in companion_source
+ assert "if (boundRoomId) return" in companion_source
+ assert "roomBindingResult?.(" in window_source
+
+
+def test_im_conversation_renders_deduplicated_video_call_status_timeline() -> None:
+ """Video lifecycle feedback belongs in the IM timeline as local status events."""
+
+ companion_root = PROJECT_ROOT / "video_companion" / "src"
+ source = (companion_root / "main.ts").read_text(encoding="utf-8")
+ app_source = (companion_root / "App.vue").read_text(encoding="utf-8")
+ styles = (companion_root / "style.css").read_text(encoding="utf-8")
+
+ timeline_source = source.split("function appendVideoCallStatus", 1)[1].split(
+ "function onMessageReceived", 1
+ )[0]
+ assert "activeConfig.mode !== 'chat'" in timeline_source
+ assert "local-video-call-${callCycleGeneration}-${callStatus}" in timeline_source
+ assert "findIndex((item) => item.id === id)" in timeline_source
+ assert "appendVideoCallStatus('starting', '正在创建安全视频通话')" in source
+ assert "appendVideoCallStatus('dialing', '正在呼叫患者')" in source
+ assert "appendVideoCallStatus('connected', '视频通话已接通')" in source
+ assert "appendVideoCallStatus('ended', '视频通话已结束')" in source
+ assert "appendVideoCallStatus('failed', `视频通话发起失败:${message}`)" in source
+ assert "message.type === 'call-status'" in app_source
+ assert 'class="call-status-event"' in app_source
+ assert 'role="status"' in app_source
+ assert "IM 已连接 · ${props.statusText.value}" in app_source
+ assert ".message-row--call-status" in styles
+ assert ".call-status-event--connected" in styles
+ assert ".call-status-event--failed" in styles
+
+
+def test_companion_local_recording_waits_for_real_audio_and_has_runtime_fallbacks() -> None:
+ source = (PROJECT_ROOT / "video_companion" / "src" / "main.ts").read_text(
+ encoding="utf-8"
+ )
+
+ assert "querySelectorAll('video, audio')" in source
+ assert "stream.getAudioTracks()" in source
+ assert "navigator.mediaDevices.getUserMedia" in source
+ assert "await waitForCallAudioTracks(cloud, sessionId)" in source
+ assert "localRecordingAttachedSourceCount <= 0" in source
+ assert "localRecordingBytes < 1024" in source
+ assert "已阻止上传空文件" in source
+
+
+def test_qt_close_waits_for_local_audio_finish_before_destroying_webengine() -> None:
+ """A title-bar/desktop hangup must keep accepting bridge chunks until COS ack."""
+
+ source = (
+ PROJECT_ROOT / "src" / "doctor_workstation" / "video" / "window.py"
+ ).read_text(encoding="utf-8")
+ request_shutdown = source.split(
+ "def _request_companion_shutdown", 1
+ )[1].split("def _force_requested_shutdown", 1)[0]
+ begin_shutdown = source.split("def _begin_shutdown", 1)[1].split(
+ "def wait_for_lifecycles", 1
+ )[0]
+ close_event = source.split("def closeEvent", 1)[1].split(
+ "else:", 1
+ )[0]
+
+ assert "window.doctorConsultation?.close?.()" in request_shutdown
+ assert "self._shutdown_requested = True" in request_shutdown
+ assert "self._closing = True" not in request_shutdown
+ assert "event.ignore()" in close_event
+ assert "self._request_companion_shutdown" in close_event
+ assert "self._shutdown_timer.stop()" in begin_shutdown
+ assert "window.doctorConsultation?.close?.()" not in begin_shutdown
+ assert "if not self.open_im or self._shutdown_requested" in source
+
+
+def test_local_audio_capture_keeps_and_persists_its_own_call_room_identity() -> None:
+ """A later IM call cycle must not relabel an earlier recording."""
+
+ source = (
+ PROJECT_ROOT / "src" / "doctor_workstation" / "video" / "window.py"
+ ).read_text(encoding="utf-8")
+
+ assert "lifecycle: OrderedCallLifecycle" in source
+ assert "lifecycle = capture.lifecycle" in source
+ assert "call_record_id=call_record_id" in source
+ assert 'room_id=lifecycle.current_room_id or ""' in source
+ assert "store.bind_identity(" in source
+
+
+def test_companion_shows_incremental_subtitles_but_only_persists_final_segments() -> None:
+ main_source = (
+ PROJECT_ROOT / "video_companion" / "src" / "main.ts"
+ ).read_text(encoding="utf-8")
+ component_source = (
+ PROJECT_ROOT / "video_companion" / "src" / "App.vue"
+ ).read_text(encoding="utf-8")
+ handler = main_source.split("function handleTranscriberMessage", 1)[1].split(
+ "function subscribeTranscriber", 1
+ )[0]
+
+ assert "showLiveCaption(message)" in handler
+ assert "if (message.isCompleted !== true) return" in handler
+ assert handler.index("showLiveCaption(message)") < handler.index(
+ "if (message.isCompleted !== true) return"
+ )
+ assert 'aria-label="实时语音字幕"' in component_source
+ assert "liveCaptions.value" in component_source
+ assert "caption.speaker" in component_source
+ assert "caption.text" in component_source
+
+
+def test_companion_screenshot_requires_doctor_confirmation_before_upload() -> None:
+ source = (PROJECT_ROOT / "video_companion" / "src" / "App.vue").read_text(
+ encoding="utf-8"
+ )
+ capture = source.split("async function captureScreenshot", 1)[1].split(
+ "function discardScreenshot", 1
+ )[0]
+ confirm = source.split("async function confirmScreenshot", 1)[1].split(
+ "watch(", 1
+ )[0]
+
+ assert "screenshotPreview.value = canvas.toDataURL" in capture
+ assert "onSaveScreenshot" not in capture
+ assert "await props.onSaveScreenshot(screenshotPreview.value)" in confirm
+ assert "确认画面后再保存到患者资料" in source
+ assert "确认并上传" in source
+ assert "取消" in source
+
+
+def test_companion_loads_im_history_without_an_empty_first_page_cursor() -> None:
+ source = (PROJECT_ROOT / "video_companion" / "src" / "main.ts").read_text(
+ encoding="utf-8"
+ )
+ load_messages = source.split("async function loadMessages", 1)[1].split(
+ "async function sendText", 1
+ )[0]
+
+ assert "nextReqMessageID: prepend ? nextReqMessageID : ''" not in load_messages
+ assert "nextReqMessageID?: string" in load_messages
+ assert (
+ "if (prepend && nextReqMessageID) request.nextReqMessageID = nextReqMessageID"
+ in load_messages
+ )
+ assert "chat.getMessageList(request)" in load_messages
+
+
+def test_companion_preserves_im_scroll_position_for_live_and_older_messages() -> None:
+ source = (PROJECT_ROOT / "video_companion" / "src" / "App.vue").read_text(
+ encoding="utf-8"
+ )
+ watcher = source.split("() => props.messages.value.length", 1)[1].split(
+ "watch(", 1
+ )[0]
+ load_earlier = source.split("async function loadEarlierMessages", 1)[1].split(
+ "async function runAction", 1
+ )[0]
+
+ assert "if (!stickToMessageBottom.value) return" in watcher
+ assert "stickToMessageBottom.value = false" in load_earlier
+ assert "container.scrollHeight - previousHeight" in load_earlier
+ assert '@scroll="handleMessageScroll"' in source
+ assert '@click="loadEarlierMessages"' in source
+
+
def test_normalizes_admin_ticket_aliases_to_companion_contract() -> None:
request = normalize_backend_ticket(
{
@@ -196,11 +423,13 @@ def test_call_lifecycle_is_fifo_daemon_and_never_blocks_caller() -> None:
events.append(("start", diagnosis_id, patient_id, call_type))
return {"call_record_id": 900}
- def bind_call_room(self, diagnosis_id: int, room_id: str) -> None:
- events.append(("bind", diagnosis_id, room_id))
+ def bind_call_room(
+ self, diagnosis_id: int, room_id: str, *, call_record_id: int
+ ) -> None:
+ events.append(("bind", diagnosis_id, room_id, call_record_id))
- def end_call(self, diagnosis_id: int) -> None:
- events.append(("end", diagnosis_id))
+ def end_call(self, diagnosis_id: int, *, call_record_id: int) -> None:
+ events.append(("end", diagnosis_id, call_record_id))
request = VideoCallRequest(
sdk_app_id=1400123456,
@@ -226,17 +455,19 @@ def test_call_lifecycle_is_fifo_daemon_and_never_blocks_caller() -> None:
assert lifecycle.wait(0.01) is False
assert duplicate_bind is bind_future
assert changed_bind.result(timeout=0) is False
+ assert lifecycle.current_room_id == "456789"
release_start.set()
assert start_future.result(timeout=2) is True
assert bind_future.result(timeout=2) is True
assert end_future.result(timeout=2) is True
assert lifecycle.wait(1) is True
+ assert lifecycle.current_room_id == "456789"
assert events == [
("start", 123, 8, 2),
- ("bind", 123, "456789"),
- ("end", 123),
+ ("bind", 123, "456789", 900),
+ ("end", 123, 900),
]
@@ -479,6 +710,155 @@ def test_failed_start_prevents_bind_and_end_writes() -> None:
assert events == ["start"]
+def test_explicit_cos_recording_failure_fails_room_binding_without_losing_call_identity() -> None:
+ class Repository:
+ def start_call(
+ self, diagnosis_id: int, patient_id: int, *, call_type: int
+ ) -> dict[str, int]:
+ del diagnosis_id, patient_id, call_type
+ return {"call_record_id": 904}
+
+ def bind_call_room(
+ self, diagnosis_id: int, room_id: str, *, call_record_id: int
+ ) -> dict[str, object]:
+ assert (diagnosis_id, room_id, call_record_id) == (123, "456789", 904)
+ return {
+ "call_record_id": 904,
+ "cloud_recording": {
+ "started": False,
+ "message": "COS bucket is unavailable",
+ },
+ }
+
+ request = VideoCallRequest(
+ sdk_app_id=1400123456,
+ user_id="doctor_42",
+ user_sig="short-lived-ticket",
+ target_user_id="patient_8",
+ diagnosis_id=123,
+ patient_id=8,
+ )
+ lifecycle = OrderedCallLifecycle(request, Repository(), logging.getLogger(__name__))
+
+ with pytest.raises(RuntimeError, match="COS bucket is unavailable"):
+ lifecycle.bind_room("456789").result(timeout=2)
+
+ assert lifecycle.call_record_id == 904
+ assert lifecycle.bound_room_id is None
+ assert lifecycle.wait(1) is True
+
+
+def test_failed_room_binding_releases_claim_and_can_retry_same_room() -> None:
+ bind_attempts = 0
+
+ class Repository:
+ def start_call(
+ self, diagnosis_id: int, patient_id: int, *, call_type: int
+ ) -> dict[str, int]:
+ del diagnosis_id, patient_id, call_type
+ return {"call_record_id": 906}
+
+ def bind_call_room(
+ self, diagnosis_id: int, room_id: str, *, call_record_id: int
+ ) -> dict[str, object]:
+ nonlocal bind_attempts
+ assert (diagnosis_id, room_id, call_record_id) == (123, "456789", 906)
+ bind_attempts += 1
+ if bind_attempts == 1:
+ raise RuntimeError("temporary bind failure")
+ return {
+ "call_record_id": 906,
+ "cloud_recording": {"started": True},
+ }
+
+ request = VideoCallRequest(
+ sdk_app_id=1400123456,
+ user_id="doctor_42",
+ user_sig="short-lived-ticket",
+ target_user_id="patient_8",
+ diagnosis_id=123,
+ patient_id=8,
+ )
+ lifecycle = OrderedCallLifecycle(request, Repository(), logging.getLogger(__name__))
+
+ with pytest.raises(RuntimeError, match="temporary bind failure"):
+ lifecycle.bind_room("456789").result(timeout=2)
+
+ assert lifecycle.current_room_id is None
+ assert lifecycle.bind_room("456789").result(timeout=2) is True
+ assert lifecycle.bound_room_id == "456789"
+ assert lifecycle.current_room_id == "456789"
+ assert bind_attempts == 2
+ assert lifecycle.wait(1) is True
+
+
+def test_local_audio_upload_uses_exact_started_record_and_precedes_end(
+ tmp_path: Path,
+) -> None:
+ events: list[tuple[object, ...]] = []
+
+ class Repository:
+ def start_call(
+ self, diagnosis_id: int, patient_id: int, *, call_type: int
+ ) -> dict[str, int]:
+ events.append(("start", diagnosis_id, patient_id, call_type))
+ return {"call_record_id": 905}
+
+ def upload_call_recording(
+ self,
+ path: Path,
+ diagnosis_id: int,
+ *,
+ call_record_id: int,
+ mime_type: str,
+ ) -> dict[str, object]:
+ events.append(
+ (
+ "local-audio",
+ path.read_bytes(),
+ diagnosis_id,
+ call_record_id,
+ mime_type,
+ )
+ )
+ return {
+ "completed": True,
+ "call_record_id": call_record_id,
+ "media_kind": "local_audio",
+ }
+
+ def end_call(self, diagnosis_id: int, *, call_record_id: int) -> None:
+ events.append(("end", diagnosis_id, call_record_id))
+
+ recording = tmp_path / "call-audio.webm"
+ recording.write_bytes(b"opus-webm-audio")
+ request = VideoCallRequest(
+ sdk_app_id=1400123456,
+ user_id="doctor_42",
+ user_sig="short-lived-ticket",
+ target_user_id="patient_8",
+ diagnosis_id=123,
+ patient_id=8,
+ )
+ lifecycle = OrderedCallLifecycle(request, Repository(), logging.getLogger(__name__))
+
+ lifecycle.start()
+ uploaded = lifecycle.save_local_audio_recording(
+ recording,
+ mime_type="audio/webm;codecs=opus",
+ )
+ ended = lifecycle.end("doctor-hangup")
+
+ assert uploaded.result(timeout=2) is True
+ assert ended.result(timeout=2) is True
+ assert lifecycle.wait(1) is True
+ assert events == [
+ ("start", 123, 8, 2),
+ ("local-audio", b"opus-webm-audio", 123, 905, "audio/webm;codecs=opus"),
+ ("end", 123, 905),
+ ]
+
+
def test_video_screenshot_is_uploaded_and_appended_to_patient_tongue_images() -> None:
events: list[tuple[object, ...]] = []
diff --git a/app/video_companion/dist/assets/index-BsDbRyxy.css b/app/video_companion/dist/assets/index-BsDbRyxy.css
new file mode 100644
index 000000000..bc69ebe5c
--- /dev/null
+++ b/app/video_companion/dist/assets/index-BsDbRyxy.css
@@ -0,0 +1 @@
+:root{font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif;color:#132238;background:#eef3fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,textarea,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.consultation-shell{width:100%;height:100%;min-width:760px;min-height:540px;background:#eef3fb}.chat-panel{display:grid;grid-template-rows:74px minmax(0,1fr) auto;width:100%;height:100%;background:#f7f9fd}.chat-header{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid #d7dfef;background:#fffffff5}.patient-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;background:#5267df;font-size:18px;font-weight:700}.chat-heading{min-width:0;flex:1}.chat-heading h1{margin:0;font-size:18px;line-height:1.4}.chat-heading p{display:flex;align-items:center;gap:7px;margin:3px 0 0;color:#71809a;font-size:12px}.connection-dot{width:7px;height:7px;border-radius:50%;background:#a3adbd}.connection-dot--online{background:#24a77c;box-shadow:0 0 0 3px #24a77c1f}.primary-action,.send-button,.capture-button{border:1px solid #5166df;border-radius:9px;color:#fff;background:#5267df;font-weight:600}.secondary-action{padding:9px 13px;border:1px solid #c8d2e7;border-radius:9px;color:#43526b;background:#fff;font-weight:600}.secondary-action:hover{border-color:#7385e9;color:#4055ca;background:#f5f7ff}.primary-action{display:flex;gap:8px;align-items:center;padding:10px 16px}.primary-action:hover,.send-button:hover,.capture-button:hover{background:#4055ca}.message-list{overflow-y:auto;padding:18px max(24px,calc((100% - 920px)/2));background:radial-gradient(circle at 12% 16%,rgba(82,103,223,.055),transparent 25%),#f3f6fb}.load-more{display:block;margin:0 auto 18px;padding:6px 12px;border:1px solid #d6deed;border-radius:999px;color:#66758e;background:#fff;font-size:12px}.empty-chat{display:grid;justify-items:center;margin-top:min(16vh,110px);color:#7c89a0;text-align:center}.empty-chat__icon{display:grid;place-items:center;width:62px;height:62px;margin-bottom:12px;border:1px solid #d2daeb;border-radius:20px;color:#5267df;background:#fff;font-weight:800}.empty-chat h2{margin:0;color:#34425a;font-size:17px}.empty-chat p{margin:7px 0;font-size:13px}.message-row{display:flex;flex-direction:column;align-items:flex-start;margin:12px 0}.message-row--mine{align-items:flex-end}.message-row--call-status{align-items:center;margin:16px 0}.call-status-event{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:1px solid #dce2f2;border-radius:999px;color:#617092;background:#ffffffeb;font-size:12px;box-shadow:0 4px 14px #111f460a}.call-status-event__icon{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;color:#5761f4;background:#eef0ff;font-size:11px}.call-status-event strong{color:#34425f;font-weight:700}.call-status-event time{color:#8b97b2;font-variant-numeric:tabular-nums}.call-status-event--connected{border-color:#bdebdc;background:#f2fbf7}.call-status-event--connected .call-status-event__icon{color:#11986f;background:#dff7ee}.call-status-event--failed{border-color:#f3c8cf;background:#fff5f6}.call-status-event--failed .call-status-event__icon{color:#c43f50;background:#ffe6e9}.message-meta{margin:0 8px 5px;color:#8995a9;font-size:11px}.message-bubble{max-width:min(72%,620px);padding:10px 13px;border:1px solid #d8e0ed;border-radius:5px 15px 15px;background:#fff;box-shadow:0 4px 14px #1d2f500d;line-height:1.6;word-break:break-word}.message-row--mine .message-bubble{border-color:#5267df;border-radius:15px 5px 15px 15px;color:#fff;background:#5267df}.message-bubble p{margin:0;white-space:pre-wrap}.message-image,.message-video{display:block;max-width:360px;max-height:280px;border-radius:9px}.message-file{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}.message-bubble audio{max-width:320px}.composer{padding:10px 18px 14px;border-top:1px solid #d7dfef;background:#fff}.composer-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:30px;color:#8a96a9;font-size:11px}.composer-toolbar button{padding:5px 9px;border:0;border-radius:7px;color:#5267df;background:#eef1ff;font-size:12px}.composer-row{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:12px}.composer textarea{width:100%;min-height:68px;max-height:150px;padding:10px 12px;resize:vertical;border:1px solid #ced8ea;border-radius:10px;outline:none;color:#15233a;background:#fbfcff;line-height:1.5}.composer textarea:focus{border-color:#6678ed;box-shadow:0 0 0 3px #5267df1c}.send-button{align-self:end;height:40px}.inline-notice{margin-bottom:7px;color:#3f6f62;font-size:12px}.inline-notice--error{color:#c14455}.video-layer{position:relative;width:100%;height:100%;min-height:420px;overflow:hidden;color:#f7f8fa;background:radial-gradient(circle at 50% 35%,rgba(60,86,130,.28),transparent 38%),#090d14}.video-layer--overlay{position:fixed;z-index:1000;inset:0}.call-kit,.video-layer :is(.TUICallKit-desktop,.TUICallKit-mobile,#tuicallkit-id){width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}.status-card{position:absolute;inset:50% auto auto 50%;display:grid;grid-template-columns:12px minmax(0,1fr);gap:18px;width:min(520px,calc(100% - 48px));padding:30px 32px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.1);border-radius:20px;background:#131920eb;box-shadow:0 24px 70px #00000052}.eyebrow{margin:0 0 12px;color:#a3afbf;font-size:12px;font-weight:700;letter-spacing:.12em}.status-card h2{margin:0;font-size:clamp(22px,3.2vw,34px);font-weight:600;line-height:1.25}.status-hint{margin:14px 0 0;color:#9aa5b1;font-size:14px}.status-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:#77818c;box-shadow:0 0 0 5px #77818c1f}.status-dot--starting,.status-dot--live{background:#52c99a;box-shadow:0 0 0 5px #52c99a24}.status-dot--error{background:#f26d6d;box-shadow:0 0 0 5px #f26d6d24}.live-status{position:absolute;z-index:20;top:18px;left:50%;display:flex;align-items:center;gap:10px;padding:9px 14px;transform:translate(-50%);border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0b0f14cc;font-size:13px}.live-status .status-dot{width:7px;height:7px;margin:0;box-shadow:none}.live-captions{position:absolute;z-index:38;left:50%;bottom:92px;display:grid;gap:7px;width:min(820px,calc(100% - 360px));transform:translate(-50%);pointer-events:none}.live-captions p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;width:fit-content;max-width:100%;margin:0 auto;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;background:#090d14c7;box-shadow:0 6px 24px #0003;font-size:16px;line-height:1.55;backdrop-filter:blur(8px)}.live-captions strong{color:#aeb8ff;white-space:nowrap}.live-captions span{min-width:0;word-break:break-word}.video-actions{position:absolute;z-index:40;right:22px;bottom:24px;display:flex;gap:10px}.video-actions button{padding:10px 15px;border-radius:10px;font-weight:600}.recording-status{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid rgba(255,255,255,.24);border-radius:10px;color:#fff;background:#161d27e0;font-size:13px;font-weight:600}.recording-status--active{border-color:#f46373a3;background:#7e2332e6}.recording-status--error{border-color:#f26d6d8f;color:#ffe4e7;background:#641f28e0}.recording-indicator{width:9px;height:9px;border-radius:50%;background:#f46373;box-shadow:0 0 0 4px #f4637329}.recording-status--active .recording-indicator{animation:recording-pulse 1.25s ease-in-out infinite}@keyframes recording-pulse{50%{box-shadow:0 0 0 8px #f463730a;opacity:.72}}.hangup-button{border:1px solid #b44755;color:#fff;background:#a12f3de6}.hangup-button:hover{background:#be394d}.video-notice{position:absolute;z-index:40;left:22px;bottom:26px;max-width:calc(100% - 420px);padding:9px 12px;border:1px solid rgba(82,201,154,.35);border-radius:9px;color:#d9f8eb;background:#144e3ed6;font-size:13px}.video-notice--error{border-color:#f26d6d66;color:#ffe4e7;background:#641f28e0}.screenshot-dialog-backdrop{position:absolute;z-index:120;inset:0;display:grid;place-items:center;padding:24px;background:#070b13c2;backdrop-filter:blur(5px)}.screenshot-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:14px;width:min(920px,92vw);max-height:calc(100vh - 48px);padding:20px;overflow:hidden;border:1px solid #e2e7f4;border-radius:18px;color:#111f46;background:#fff;box-shadow:0 28px 90px #040a1b57}.screenshot-dialog>header,.screenshot-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.screenshot-dialog h2{margin:2px 0 0;font-size:20px;line-height:1.35}.screenshot-dialog .eyebrow{margin:0;color:#5761f4}.screenshot-dialog>header>button{width:36px;height:36px;border:0;border-radius:9px;color:#7886aa;background:#f2f4fb;font-size:24px}.screenshot-preview-frame{display:grid;place-items:center;min-height:260px;overflow:hidden;border-radius:12px;background:#0b0f16}.screenshot-preview-frame img{display:block;max-width:100%;max-height:min(62vh,650px);object-fit:contain}.screenshot-dialog__hint{margin:0;color:#617092;font-size:13px}.screenshot-dialog>footer{justify-content:flex-end}.screenshot-dialog>footer button{min-width:112px;padding:10px 18px;border-radius:9px;font-weight:700}.screenshot-cancel{border:1px solid #dfe4f1;color:#3f4e75;background:#fff}.screenshot-confirm{border:1px solid #5761f4;color:#fff;background:#5761f4}.screenshot-confirm:hover{background:#4c57e9}@media (max-width: 820px){.consultation-shell{min-width:620px}.message-list{padding-inline:18px}.message-bubble{max-width:82%}.live-captions{width:calc(100% - 36px);bottom:88px}.live-captions p{font-size:14px}}:root{color:#111f46;background:#eef3fd}.consultation-shell{background:#eef3fd}.chat-panel{background:#f7f9fe}.chat-header,.composer{border-color:#e6eaf5;background:#fffffffa}.patient-avatar{background:linear-gradient(135deg,#5761f4,#7769f7)}.chat-heading p,.empty-chat,.message-meta,.composer-toolbar{color:#7886aa}.connection-dot--online{background:#17a77d;box-shadow:0 0 0 3px #17a77d1f}.primary-action,.send-button,.capture-button{border-color:#5761f4;background:linear-gradient(90deg,#5761f4,#7769f7)}.primary-action:hover,.send-button:hover,.capture-button:hover{background:#4c57e9}.secondary-action{border-color:#e6eaf5;color:#3f4e75}.secondary-action:hover{border-color:#5761f4;color:#4451e2;background:#f0f2ff}.message-list{background:radial-gradient(circle at 12% 16%,rgba(87,97,244,.055),transparent 25%),#f7f9fe}.load-more,.empty-chat__icon,.message-bubble{border-color:#e6eaf5}.load-more{color:#7886aa}.empty-chat__icon{color:#5761f4}.empty-chat h2{color:#111f46}.message-bubble{box-shadow:0 4px 14px #111f460d}.message-row--mine .message-bubble{border-color:#5761f4;background:#5761f4}.composer-toolbar button{color:#4451e2;background:#f0f2ff}.composer textarea{border-color:#e6eaf5;color:#111f46;background:#fafbfe}.composer textarea:focus{border-color:#8d9bff;box-shadow:0 0 0 3px #5761f41c}.video-actions button{border-radius:9px}.recording-status{border-color:#e6eaf5e0;border-radius:9px;color:#3f4e75;background:#fffffff2}.recording-status--active,.recording-status--error{border-color:#f15b6773;color:#b63849;background:#fff1f3f5}.recording-indicator{background:#f15b67;box-shadow:0 0 0 4px #f15b6729}@keyframes recording-pulse{50%{box-shadow:0 0 0 8px #f15b670a;opacity:.72}}.hangup-button{border-color:#f15b67;background:#f15b67}.hangup-button:hover{background:#d94857}.video-notice{border-color:#17a77d59;color:#12765b;background:#eaf9f3f2}.video-notice--error{border-color:#f15b6766;color:#b63849;background:#fff1f3f5}
diff --git a/app/video_companion/dist/assets/index-DXNYj41g.js b/app/video_companion/dist/assets/index-DhmAWjut.js
similarity index 66%
rename from app/video_companion/dist/assets/index-DXNYj41g.js
rename to app/video_companion/dist/assets/index-DhmAWjut.js
index 6cf09de1b..9e92d0ff6 100644
--- a/app/video_companion/dist/assets/index-DXNYj41g.js
+++ b/app/video_companion/dist/assets/index-DhmAWjut.js
@@ -1,4 +1,4 @@
-(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))l(u);new MutationObserver(u=>{for(const B of u)if(B.type==="childList")for(const f of B.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function r(u){const B={};return u.integrity&&(B.integrity=u.integrity),u.referrerPolicy&&(B.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?B.credentials="include":u.crossOrigin==="anonymous"?B.credentials="omit":B.credentials="same-origin",B}function l(u){if(u.ep)return;u.ep=!0;const B=r(u);fetch(u.href,B)}})();var mg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function F3(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function gU(t){if(t.__esModule)return t;var i=t.default;if(typeof i=="function"){var r=function l(){return this instanceof l?Reflect.construct(i,arguments,this.constructor):i.apply(this,arguments)};r.prototype=i.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(l){var u=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(r,l,u.get?u:{enumerable:!0,get:function(){return t[l]}})}),r}var S1={exports:{}},ziA=S1.exports,Bz;function ZiA(){return Bz||(Bz=1,function(t,i){(function(r,l){t.exports=l()})(ziA,function(){const r=s=>s===void 0,l=s=>typeof s=="string",u=s=>{var n;return(n=Object.prototype.toString.call(s).match(/^\[object (.*)\]$/))===null||n===void 0?void 0:n[1].toLowerCase()},B=s=>typeof Array.isArray=="function"?Array.isArray(s):u(s)==="array",f=s=>s!==null&&typeof s=="object",w=s=>B(s)||f(s),_=s=>{if(typeof s!="string")return!1;const n=s[0];return!/[^a-zA-Z0-9]/.test(n)},k=s=>{if(typeof s!="object"||s===null)return!1;const n=Object.getPrototypeOf(s);if(n===null)return!0;let g=n;for(;Object.getPrototypeOf(g)!==null;)g=Object.getPrototypeOf(g);return n===g};function F(s=99999999){return Math.round(Math.random()*s)}const j=(s,n,g,I)=>{if(!w(s)||!w(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M"u"&&typeof uni.requireNativePlugin=="function",to=It&&typeof wx.miniapp=="object",uo=typeof uni<"u",Vs=ft&&typeof tt.enterChat=="function",ki=It||qe||ft||Vt||gi||_o||Fi,ns=typeof window>"u"&&!ki&&typeof mg<"u"&&mg.NativeScriptGlobals!==void 0,Ko=typeof mg<"u"&&(mg.nativeModuleProxy!==void 0||mg.ReactNative!==void 0),$i=typeof wx<"u"&&typeof wx.getAccountInfoSync=="function"&&!!wx.getAccountInfoSync().plugin,jt=typeof uni<"u"?!ki:typeof window<"u"&&!ki&&!Ko,io=qe?qq:ft?tt:Vt?swan:gi?my:It?wx:_o?uni:Fi?jd:{},bi=jt&&window&&window.navigator&&window.navigator.userAgent||"",vs=/(micromessenger|webbrowser)/i.test(bi),HA=function(){let s="WEB";return vs?s="WEB":qe?s="QQ_MP":ft?s="TT_MP":Vt?s="BAIDU_MP":gi?s="ALI_MP":It?s=to?"DONUT_NATIVE_APP":"WX_MP":_o?s="UNI_NATIVE_APP":ns?s="NS_NATIVE_APP":Ko&&(s="RN_NATIVE_APP"),rA[s]}(),le=/iPad/i.test(bi),xe=/iPhone/i.test(bi)&&!le,Lt=/iPod/i.test(bi),it=xe||le||Lt,gt=function(){const s=bi.match(/OS (\d+)_/i);return s&&s[1]?s[1]:null}(),Xt=/Android/i.test(bi),$t=function(){const s=bi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!s)return null;const n=s[1]&&parseFloat(s[1]),g=s[2]&&parseFloat(s[2]);return n&&g?parseFloat(`${s[1]}.${s[2]}`):n||null}(),be=/Firefox/i.test(bi),je=/Edge/i.test(bi),Mt=!je&&/Chrome/i.test(bi),Rt=/MSIE/.test(bi)||bi.indexOf("Trident")>-1&&bi.indexOf("rv:11.0")>-1,Oi=function(){const s=/MSIE\s(\d+)\.\d/.exec(bi);let n=s&&parseFloat(s[1]);return!n&&/Trident\/7.0/i.test(bi)&&/rv:11.0/.test(bi)&&(n=11),n}(),Qo=/Safari/i.test(bi)&&!Mt&&!Xt&&!je,To=/Windows/i.test(bi),oo=/MAC OS X/i.test(bi),No=jt&&typeof Worker<"u"&&!Rt,An=Xt||it,rn=function(){if(typeof window>"u"||window.navigator===void 0)return!1;const{standalone:s}=window.navigator;return!(!it||s||Qo)}();function Es(){let s="unknown";if(oo&&(s="mac"),To&&(s="windows"),it&&(s="ios"),Xt&&(s="android"),ki)try{const{platform:n}=io.getSystemInfoSync();n!==void 0&&(s=n)}catch(n){console.error(n)}return s}const an=typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0&&typeof window>"u";function yo(s,n){var g={};for(var I in s)Object.prototype.hasOwnProperty.call(s,I)&&n.indexOf(I)<0&&(g[I]=s[I]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var E=0;for(I=Object.getOwnPropertySymbols(s);E{io.request({url:g,data:I,method:n,timeout:E,header:{"content-type":jr},success:M=>m(M.data),fail:()=>D(new Error(`{"message":"Network error","code":${Jn}}`))})}):an?void 0:new Promise((m,D)=>{const M=new XMLHttpRequest,T=setTimeout(()=>{M.abort(),D(new Error(`{"message":"Request timeout","code":${Br}}`))},E);M.onreadystatechange=function(){if(M.readyState===4)if(clearTimeout(T),M.status===200||M.status===304)try{m(M.responseText?JSON.parse(M.responseText):null)}catch{m(M.responseText)}else D(new Error(`{"message":"Network error","code":${Jn}}`))},M.open(n,g,!0),M.setRequestHeader("Content-type",jr),M.send(I||null)})})}function Rs(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(k(s)){for(const n in s)if(Object.prototype.hasOwnProperty.call(s,n))return!1;return!0}return(Object.prototype.toString.call(s)==="[object Map]"||Object.prototype.toString.call(s)==="[object Set]"||Object.prototype.toString.call(s)==="[object File]")&&s.size===0}function ir(s,n){if(s===null||typeof s!="object")return s;const g=n||new WeakMap;if(g.has(s))return g.get(s);if(s instanceof Date)return new Date(s.getTime());if(s instanceof RegExp)return new RegExp(s.source,s.flags);if(s instanceof Map){const m=new Map;return g.set(s,m),s.forEach((D,M)=>{m.set(ir(M,g),ir(D,g))}),m}if(s instanceof Set){const m=new Set;return g.set(s,m),s.forEach(D=>{m.add(ir(D,g))}),m}if(Array.isArray(s)){const m=[];return g.set(s,m),s.forEach(D=>{m.push(ir(D,g))}),m}const I=Object.getPrototypeOf(s),E=Object.create(I);return g.set(s,E),[...Object.getOwnPropertyNames(s),...Object.getOwnPropertySymbols(s)].forEach(m=>{if(m==="__ob__"||m==="__v_skip"||m==="__v_isRef"||m==="__v_isReadonly")return;const D=Object.getOwnPropertyDescriptor(s,m);D&&(D.get||D.set?Object.defineProperty(E,m,D):E[m]=ir(s[m],g))}),E}function en(s,n,g){const I=new WeakSet,E=(m,D)=>{if(n&&(D=n(m,D)),D===void 0)return"undefined";if(D===null)return null;if(Number.isNaN(D))return"NaN";if(D===1/0)return"Infinity";if(D===-1/0)return"-Infinity";if(typeof D=="function")return`[Function: ${D.name||"anonymous"}]`;if(typeof D=="symbol")return D.toString();if(typeof D=="bigint")return`${D.toString()}n`;if(typeof D=="object"&&D!==null){if(I.has(D))return"[Circular]";I.add(D)}return D instanceof Date?D.toISOString():D instanceof Error?{name:D.name,message:D.message}:D instanceof Map?{dataType:"Map",value:Array.from(D.entries())}:D instanceof Set?{dataType:"Set",value:Array.from(D.values())}:D};try{return JSON.stringify(s,E,g)}catch(m){return console.error("Failed to stringify:",m),""}}function wn(){let s,n;return{promise:new Promise((g,I)=>{s=g,n=I}),resolve:s,reject:n}}var Jt,yg=Object.freeze({__proto__:null,ANDROID_VERSION:$t,IE_VERSION:Oi,IN_ALIPAY_MINI_APP:gi,IN_BAIDU_MINI_APP:Vt,IN_BROWSER:jt,IN_DONUT_NATIVE_APP:to,IN_FEISHU_MINI_APP:Vs,IN_JD_MINI_APP:Fi,IN_MINI_APP:ki,IN_NODE:an,IN_NS_NATIVE_APP:ns,IN_QQ_MINI_APP:qe,IN_RN_APP:Ko,IN_TT_MINI_APP:ft,IN_TT_MINI_GAME:ni,IN_UNI_APP:uo,IN_UNI_NATIVE_APP:_o,IN_WX_MINI_APP:It,IN_WX_MINI_APP_DESK:qt,IN_WX_MINI_GAME:ge,IN_WX_MINI_PLUGIN:$i,IOS_VERSION:gt,IS_ANDROID:Xt,IS_CHROME:Mt,IS_EDGE:je,IS_FIREFOX:be,IS_IE:Rt,IS_IOS:it,IS_IPAD:le,IS_IPHONE:xe,IS_IPOD:Lt,IS_MAC:oo,IS_SAFARI:Qo,IS_WECHAT:vs,IS_WIN:To,IS_WORKER_AVAILABLE:No,MINI_APP_NAMESPACE:io,USER_AGENT:bi,base16EncodeBinaryString:IA,deepCopyWithMethods:ir,deepMerge:j,generatePromise:wn,getPlatformType:Es,getType:u,httpRequest:Pi,isArray:B,isArrayOrObject:w,isEmpty:Rs,isH5:An,isIOSWebView:rn,isNumber:s=>s!==null&&(typeof s=="number"&&!Number.isNaN(s-0)||typeof s=="object"&&s.constructor===Number),isObject:f,isPlainObject:k,isString:l,isUndefined:r,isUniIOSApp:function(){return _o&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios"},isValidRequestKey:_,platform:HA,randomInt:F,randomString:function(){const s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let g=32;g>0;--g)n+=s[Math.floor(62*Math.random())];return n},safeStringify:en});class On{constructor(){this.listeners={}}on(n,g,I){this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push({fn:g,context:I})}off(n,g,I){var E;g&&(this.listeners[n]=(E=this.listeners[n])===null||E===void 0?void 0:E.filter(m=>{const D=m.fn===g,M=!I||m.context===I;return!(D&&M)}))}emit(n,...g){const I=this.listeners[n];I&&I.forEach(E=>{const{fn:m,context:D}=E;try{m.apply(D,g)}catch(M){console.warn(`Error in event handler for ${n} error: ${en(M)}`)}})}once(n,g,I){const E=(...m)=>{g.apply(I,m),this.off(n,E)};this.on(n,E)}}(function(s){s.BUSINESS_COMMAND="business_command",s.C2C_REALTIME_MESSAGE="c2c_realtime_message",s.C2C_MESSAGE_MODIFIED="c2c_message_modified",s.C2C_REVOKED_MESSAGE="c2c_message_revoked",s.GROUP_REALTIME_MESSAGE="group_realtime_message",s.GROUP_MESSAGE_MODIFIED="group_message_modified",s.GROUP_MESSAGE_REVOKED="group_message_revoked",s.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",s.MESSAGE_REACTION_UPDATED="message_reaction_updated",s.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",s.GROUP_AT_TIPS="group_at_tips",s.USER_STATUS_UPDATE="user_status_update",s.FRIEND_LIST_MODIFIED="friend_list_modified",s.PROFILE_MODIFIED="profile_modified",s.CONV_MODIFIED="conversation_modified",s.GROUP_TIPS_NOTIFICATION="group_tips_notification",s.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",s.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",s.GROUP_SYSTEM_NOTIFICATION="group_system_notification",s.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",s.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",s.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",s.FOLLOW_LIST_UPDATED="follow_list_updated",s.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",s.ALL_MESSAGE_READ="all_message_read",s.CONVERSATION_MARK_UPDATED="conversation_mark_updated",s.CONVERSATION_GROUP_ADD="conversation_group_add",s.CONVERSATION_GROUP_DELETED="conversation_group_deleted",s.CONVERSATION_GROUP_UPDATED="conversation_group_updated",s.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",s.TOPIC_AT_TIPS="topic_at_tips",s.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",s.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",s.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",s.TOPIC_LATEST_MESSAGE="topic_latest_message",s.GROUP_MESSAGE_PINNED="group_message_pinned"})(Jt||(Jt={}));const Gn=[16,17];function Js(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(I=>{var E;I.GroupInfo.MillionGroupFlag===2?g.push(Jt.TOPIC_TIPS_NOTIFICATION):Gn.includes((E=I?.MsgBody)===null||E===void 0?void 0:E.OpType)?g.push(Jt.GROUP_MESSAGE_PINNED):g.push(Jt.GROUP_TIPS_NOTIFICATION)}),g}const Qr=[{conditions:[{type:"event",value:100}],subType:Jt.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Jt.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Jt.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Jt.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Jt.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Jt.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Jt.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Jt.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Jt.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Jt.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(s){var n;const g=[];return(n=s?.C2cNotifyMsgArray)===null||n===void 0||n.forEach(I=>{I.WithdrawC2cMsgNotify&&g.push(Jt.C2C_REVOKED_MESSAGE),I.C2cReadedReceipt&&g.push(Jt.C2C_MESSAGE_PEER_READ),I.ReadC2cMsgNotify&&g.push(Jt.C2C_MESSAGE_READ_SYNC),I.MuteNotificationsSync&&g.push(Jt.C2C_REMIND_TYPE_SYNC)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(I=>{Array.isArray(I.MsgBody.GroupWithdrawInfoArray)?g.push(Jt.GROUP_MESSAGE_REVOKED):Array.isArray(I.MsgBody.GroupMsgReceiptList)?g.push(Jt.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(I.MsgBody.GroupReadInfoArray)?I.MsgBody.GroupReadInfoArray[0].TopicId?g.push(Jt.TOPIC_MESSAGE_READ_SYNC):g.push(Jt.GROUP_MESSAGE_READ_SYNC):I.GroupInfo.MillionGroupFlag===2?g.push(Jt.TOPIC_SYSTEM_NOTIFICATION):g.push(Jt.GROUP_SYSTEM_NOTIFICATION)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(I=>{const{GroupAtTips:{TopicId:E}}=I;E?g.push(Jt.TOPIC_AT_TIPS):g.push(Jt.GROUP_AT_TIPS)}),g}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(s){var n;const g=[];return(n=s?.RecentContactMod)===null||n===void 0||n.forEach(I=>{switch(I.PushType){case Ke.CONV_MARK_UPDATED:g.push(Jt.CONVERSATION_MARK_UPDATED);break;case Ke.CONV_GROUP_ADDED:g.push(Jt.CONVERSATION_GROUP_ADD);break;case Ke.CONV_GROUP_DELETED:g.push(Jt.CONVERSATION_GROUP_DELETED);break;case Ke.CONV_GROUP_UPDATED:g.push(Jt.CONVERSATION_GROUP_UPDATED);break;default:g.push(Jt.CONV_MODIFIED)}}),g}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Jt.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Jt.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Jt.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Jt.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Jt.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Jt.ALL_MESSAGE_READ}];var Pn;function pr(s){var n;const g=Array.isArray((n=s?.body)===null||n===void 0?void 0:n.EventArray)?s.body.EventArray:[],I=[];return g.forEach(E=>{E.Flag=s.body.Flag;const m=Qr.find(M=>M.conditions.every(T=>{switch(T.type){case"event":return E.Event===T.value;case"hasKey":return Object.prototype.hasOwnProperty.call(E,T.value);default:return!1}}));if(!m)return null;let D=[];typeof m.subTypeParser=="function"?D=m.subTypeParser(E):m.subType&&(D=m.subType),Array.isArray(D)?D.forEach(M=>{I.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${M}`,data:E})}):I.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${D}`,data:E})}),I}(function(s){s.SERVER_PUSH_MESSAGE="im_open_push.msg_push",s.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",s.ERROR="error"})(Pn||(Pn={}));const po={[Pn.SERVER_PUSH_MESSAGE]:pr,[Pn.SERVER_PUSH_MESSAGE_MULTIPLE]:pr,[Pn.ERROR]:function(s){const{errorCode:n}=s;return[{type:`error:${n}`,data:s}]}},gn=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new On,this._innerEventEmitter=new On,this.InnerEventSubType=Jt}subscribeInnerEvent(s,n,g,I,E){var m;let D,M,T,P;["string","number"].includes(typeof n)?(T=`${s}:${n}`,P=g,M=I,D=E):(T=s,P=n,M=g,D=typeof I=="function"?I:void 0),D?this._subscribeWithFilter(T,P,M,D):(m=this._innerEventEmitter)===null||m===void 0||m.on(T,P,M)}emitInnerEvent(s,n){var g,I;if((g=this._innerEventEmitter)===null||g===void 0||g.emit(s,n),Object.keys(po).includes(s)){const E=(I=po[s])===null||I===void 0?void 0:I.call(po,n);E?.forEach(m=>{var D;m&&((D=this._innerEventEmitter)===null||D===void 0||D.emit(m.type,m.data))})}}subscribeOuterEvent(s,n,g){var I;(I=this._outerEventEmitter)===null||I===void 0||I.on(s,n,g)}unSubscribeOuterEvent(s,n,g){var I;(I=this._outerEventEmitter)===null||I===void 0||I.off(s,n,g)}unSubscribeInnerEvent(s,n,g,I){if(["string","number"].includes(typeof n)){const E=g,m=`${s}:${n}`;this._unsubscribeEvent(m,E,I)}else{const E=n;this._unsubscribeEvent(s,E,g)}}emitOuterEvent(s,n){var g;(g=this._outerEventEmitter)===null||g===void 0||g.emit(s,n)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}_subscribeWithFilter(s,n,g,I){var E;const m=D=>{I.call(g,D)&&n.call(g,D)};this._filteredCallbackMap.has(s)||this._filteredCallbackMap.set(s,[]),this._filteredCallbackMap.get(s).push({originalCallback:n,filteredCallback:m,filter:I,context:g}),(E=this._innerEventEmitter)===null||E===void 0||E.on(s,m,g)}_unsubscribeEvent(s,n,g){var I,E;const m=this._filteredCallbackMap.get(s);if(m){const D=m.findIndex(M=>M.originalCallback===n&&M.context===g);if(D!==-1){const{filteredCallback:M}=m[D];return(I=this._innerEventEmitter)===null||I===void 0||I.off(s,M,g),m.splice(D,1),void(m.length===0&&this._filteredCallbackMap.delete(s))}}(E=this._innerEventEmitter)===null||E===void 0||E.off(s,n,g)}};class yl{constructor(){this._socket=null}connectSocket(n){return this._socket=new WebSocket(n),this._socket}send(n){var g,I;try{(g=this._socket)===null||g===void 0||g.send(n)}catch(E){(I=this._onSendFail)===null||I===void 0||I.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:I,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=g,this._socket.onmessage=I,this._socket.onclose=E,this._socket.onerror=m,this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onopen=null,this._socket.onmessage=null,this._socket.onclose=null,this._socket.onerror=null)}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}class cn{constructor(n){this._onError=n.onError}connectSocket(n){const g=this;return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},complete:()=>{},fail:I=>g._onError(I)}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:I,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(I),this._socket.onError(m),this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}const mr="CONNECT",Ls="SEND",Vc="DISCONNECT",ms="OPEN",as="MESSAGE",mu="CLOSE",ja="ERROR",Cs="SEND_FAIL";class sg{constructor(){this._worker=null,this._blobUrl=null}connectSocket(n){const g=new Blob([`
+(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))l(I);new MutationObserver(I=>{for(const h of I)if(h.type==="childList")for(const f of h.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function r(I){const h={};return I.integrity&&(h.integrity=I.integrity),I.referrerPolicy&&(h.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?h.credentials="include":I.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function l(I){if(I.ep)return;I.ep=!0;const h=r(I);fetch(I.href,h)}})();var mg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function BW(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function GU(t){if(t.__esModule)return t;var i=t.default;if(typeof i=="function"){var r=function l(){return this instanceof l?Reflect.construct(i,arguments,this.constructor):i.apply(this,arguments)};r.prototype=i.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(l){var I=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(r,l,I.get?I:{enumerable:!0,get:function(){return t[l]}})}),r}var W1={exports:{}},LoA=W1.exports,e8;function UoA(){return e8||(e8=1,function(t,i){(function(r,l){t.exports=l()})(LoA,function(){const r=s=>s===void 0,l=s=>typeof s=="string",I=s=>{var n;return(n=Object.prototype.toString.call(s).match(/^\[object (.*)\]$/))===null||n===void 0?void 0:n[1].toLowerCase()},h=s=>typeof Array.isArray=="function"?Array.isArray(s):I(s)==="array",f=s=>s!==null&&typeof s=="object",w=s=>h(s)||f(s),_=s=>{if(typeof s!="string")return!1;const n=s[0];return!/[^a-zA-Z0-9]/.test(n)},k=s=>{if(typeof s!="object"||s===null)return!1;const n=Object.getPrototypeOf(s);if(n===null)return!0;let g=n;for(;Object.getPrototypeOf(g)!==null;)g=Object.getPrototypeOf(g);return n===g};function U(s=99999999){return Math.round(Math.random()*s)}const j=(s,n,g,u)=>{if(!w(s)||!w(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M"u"&&typeof uni.requireNativePlugin=="function",to=Le&&typeof wx.miniapp=="object",uo=typeof uni<"u",Vs=Dt&&typeof tt.enterChat=="function",ki=Le||je||Dt||Jt||gi||To||Fi,ns=typeof window>"u"&&!ki&&typeof mg<"u"&&mg.NativeScriptGlobals!==void 0,jo=typeof mg<"u"&&(mg.nativeModuleProxy!==void 0||mg.ReactNative!==void 0),$i=typeof wx<"u"&&typeof wx.getAccountInfoSync=="function"&&!!wx.getAccountInfoSync().plugin,jt=typeof uni<"u"?!ki:typeof window<"u"&&!ki&&!jo,io=je?qq:Dt?tt:Jt?swan:gi?my:Le?wx:To?uni:Fi?jd:{},bi=jt&&window&&window.navigator&&window.navigator.userAgent||"",vs=/(micromessenger|webbrowser)/i.test(bi),HA=function(){let s="WEB";return vs?s="WEB":je?s="QQ_MP":Dt?s="TT_MP":Jt?s="BAIDU_MP":gi?s="ALI_MP":Le?s=to?"DONUT_NATIVE_APP":"WX_MP":To?s="UNI_NATIVE_APP":ns?s="NS_NATIVE_APP":jo&&(s="RN_NATIVE_APP"),rA[s]}(),ce=/iPad/i.test(bi),Ve=/iPhone/i.test(bi)&&!ce,Ut=/iPod/i.test(bi),nt=Ve||ce||Ut,It=function(){const s=bi.match(/OS (\d+)_/i);return s&&s[1]?s[1]:null}(),Xt=/Android/i.test(bi),$t=function(){const s=bi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!s)return null;const n=s[1]&&parseFloat(s[1]),g=s[2]&&parseFloat(s[2]);return n&&g?parseFloat(`${s[1]}.${s[2]}`):n||null}(),be=/Firefox/i.test(bi),Xe=/Edge/i.test(bi),vt=!Xe&&/Chrome/i.test(bi),wt=/MSIE/.test(bi)||bi.indexOf("Trident")>-1&&bi.indexOf("rv:11.0")>-1,Oi=function(){const s=/MSIE\s(\d+)\.\d/.exec(bi);let n=s&&parseFloat(s[1]);return!n&&/Trident\/7.0/i.test(bi)&&/rv:11.0/.test(bi)&&(n=11),n}(),po=/Safari/i.test(bi)&&!vt&&!Xt&&!Xe,No=/Windows/i.test(bi),oo=/MAC OS X/i.test(bi),Go=jt&&typeof Worker<"u"&&!wt,An=Xt||nt,rn=function(){if(typeof window>"u"||window.navigator===void 0)return!1;const{standalone:s}=window.navigator;return!(!nt||s||po)}();function Es(){let s="unknown";if(oo&&(s="mac"),No&&(s="windows"),nt&&(s="ios"),Xt&&(s="android"),ki)try{const{platform:n}=io.getSystemInfoSync();n!==void 0&&(s=n)}catch(n){console.error(n)}return s}const an=typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0&&typeof window>"u";function Do(s,n){var g={};for(var u in s)Object.prototype.hasOwnProperty.call(s,u)&&n.indexOf(u)<0&&(g[u]=s[u]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var E=0;for(u=Object.getOwnPropertySymbols(s);E{io.request({url:g,data:u,method:n,timeout:E,header:{"content-type":zr},success:M=>m(M.data),fail:()=>D(new Error(`{"message":"Network error","code":${Jn}}`))})}):an?void 0:new Promise((m,D)=>{const M=new XMLHttpRequest,T=setTimeout(()=>{M.abort(),D(new Error(`{"message":"Request timeout","code":${Qr}}`))},E);M.onreadystatechange=function(){if(M.readyState===4)if(clearTimeout(T),M.status===200||M.status===304)try{m(M.responseText?JSON.parse(M.responseText):null)}catch{m(M.responseText)}else D(new Error(`{"message":"Network error","code":${Jn}}`))},M.open(n,g,!0),M.setRequestHeader("Content-type",zr),M.send(u||null)})})}function Rs(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(k(s)){for(const n in s)if(Object.prototype.hasOwnProperty.call(s,n))return!1;return!0}return(Object.prototype.toString.call(s)==="[object Map]"||Object.prototype.toString.call(s)==="[object Set]"||Object.prototype.toString.call(s)==="[object File]")&&s.size===0}function or(s,n){if(s===null||typeof s!="object")return s;const g=n||new WeakMap;if(g.has(s))return g.get(s);if(s instanceof Date)return new Date(s.getTime());if(s instanceof RegExp)return new RegExp(s.source,s.flags);if(s instanceof Map){const m=new Map;return g.set(s,m),s.forEach((D,M)=>{m.set(or(M,g),or(D,g))}),m}if(s instanceof Set){const m=new Set;return g.set(s,m),s.forEach(D=>{m.add(or(D,g))}),m}if(Array.isArray(s)){const m=[];return g.set(s,m),s.forEach(D=>{m.push(or(D,g))}),m}const u=Object.getPrototypeOf(s),E=Object.create(u);return g.set(s,E),[...Object.getOwnPropertyNames(s),...Object.getOwnPropertySymbols(s)].forEach(m=>{if(m==="__ob__"||m==="__v_skip"||m==="__v_isRef"||m==="__v_isReadonly")return;const D=Object.getOwnPropertyDescriptor(s,m);D&&(D.get||D.set?Object.defineProperty(E,m,D):E[m]=or(s[m],g))}),E}function en(s,n,g){const u=new WeakSet,E=(m,D)=>{if(n&&(D=n(m,D)),D===void 0)return"undefined";if(D===null)return null;if(Number.isNaN(D))return"NaN";if(D===1/0)return"Infinity";if(D===-1/0)return"-Infinity";if(typeof D=="function")return`[Function: ${D.name||"anonymous"}]`;if(typeof D=="symbol")return D.toString();if(typeof D=="bigint")return`${D.toString()}n`;if(typeof D=="object"&&D!==null){if(u.has(D))return"[Circular]";u.add(D)}return D instanceof Date?D.toISOString():D instanceof Error?{name:D.name,message:D.message}:D instanceof Map?{dataType:"Map",value:Array.from(D.entries())}:D instanceof Set?{dataType:"Set",value:Array.from(D.values())}:D};try{return JSON.stringify(s,E,g)}catch(m){return console.error("Failed to stringify:",m),""}}function wn(){let s,n;return{promise:new Promise((g,u)=>{s=g,n=u}),resolve:s,reject:n}}var Ht,yg=Object.freeze({__proto__:null,ANDROID_VERSION:$t,IE_VERSION:Oi,IN_ALIPAY_MINI_APP:gi,IN_BAIDU_MINI_APP:Jt,IN_BROWSER:jt,IN_DONUT_NATIVE_APP:to,IN_FEISHU_MINI_APP:Vs,IN_JD_MINI_APP:Fi,IN_MINI_APP:ki,IN_NODE:an,IN_NS_NATIVE_APP:ns,IN_QQ_MINI_APP:je,IN_RN_APP:jo,IN_TT_MINI_APP:Dt,IN_TT_MINI_GAME:ni,IN_UNI_APP:uo,IN_UNI_NATIVE_APP:To,IN_WX_MINI_APP:Le,IN_WX_MINI_APP_DESK:We,IN_WX_MINI_GAME:oe,IN_WX_MINI_PLUGIN:$i,IOS_VERSION:It,IS_ANDROID:Xt,IS_CHROME:vt,IS_EDGE:Xe,IS_FIREFOX:be,IS_IE:wt,IS_IOS:nt,IS_IPAD:ce,IS_IPHONE:Ve,IS_IPOD:Ut,IS_MAC:oo,IS_SAFARI:po,IS_WECHAT:vs,IS_WIN:No,IS_WORKER_AVAILABLE:Go,MINI_APP_NAMESPACE:io,USER_AGENT:bi,base16EncodeBinaryString:lA,deepCopyWithMethods:or,deepMerge:j,generatePromise:wn,getPlatformType:Es,getType:I,httpRequest:Pi,isArray:h,isArrayOrObject:w,isEmpty:Rs,isH5:An,isIOSWebView:rn,isNumber:s=>s!==null&&(typeof s=="number"&&!Number.isNaN(s-0)||typeof s=="object"&&s.constructor===Number),isObject:f,isPlainObject:k,isString:l,isUndefined:r,isUniIOSApp:function(){return To&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios"},isValidRequestKey:_,platform:HA,randomInt:U,randomString:function(){const s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let g=32;g>0;--g)n+=s[Math.floor(62*Math.random())];return n},safeStringify:en});class On{constructor(){this.listeners={}}on(n,g,u){this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push({fn:g,context:u})}off(n,g,u){var E;g&&(this.listeners[n]=(E=this.listeners[n])===null||E===void 0?void 0:E.filter(m=>{const D=m.fn===g,M=!u||m.context===u;return!(D&&M)}))}emit(n,...g){const u=this.listeners[n];u&&u.forEach(E=>{const{fn:m,context:D}=E;try{m.apply(D,g)}catch(M){console.warn(`Error in event handler for ${n} error: ${en(M)}`)}})}once(n,g,u){const E=(...m)=>{g.apply(u,m),this.off(n,E)};this.on(n,E)}}(function(s){s.BUSINESS_COMMAND="business_command",s.C2C_REALTIME_MESSAGE="c2c_realtime_message",s.C2C_MESSAGE_MODIFIED="c2c_message_modified",s.C2C_REVOKED_MESSAGE="c2c_message_revoked",s.GROUP_REALTIME_MESSAGE="group_realtime_message",s.GROUP_MESSAGE_MODIFIED="group_message_modified",s.GROUP_MESSAGE_REVOKED="group_message_revoked",s.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",s.MESSAGE_REACTION_UPDATED="message_reaction_updated",s.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",s.GROUP_AT_TIPS="group_at_tips",s.USER_STATUS_UPDATE="user_status_update",s.FRIEND_LIST_MODIFIED="friend_list_modified",s.PROFILE_MODIFIED="profile_modified",s.CONV_MODIFIED="conversation_modified",s.GROUP_TIPS_NOTIFICATION="group_tips_notification",s.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",s.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",s.GROUP_SYSTEM_NOTIFICATION="group_system_notification",s.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",s.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",s.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",s.FOLLOW_LIST_UPDATED="follow_list_updated",s.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",s.ALL_MESSAGE_READ="all_message_read",s.CONVERSATION_MARK_UPDATED="conversation_mark_updated",s.CONVERSATION_GROUP_ADD="conversation_group_add",s.CONVERSATION_GROUP_DELETED="conversation_group_deleted",s.CONVERSATION_GROUP_UPDATED="conversation_group_updated",s.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",s.TOPIC_AT_TIPS="topic_at_tips",s.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",s.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",s.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",s.TOPIC_LATEST_MESSAGE="topic_latest_message",s.GROUP_MESSAGE_PINNED="group_message_pinned"})(Ht||(Ht={}));const Gn=[16,17];function Js(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{var E;u.GroupInfo.MillionGroupFlag===2?g.push(Ht.TOPIC_TIPS_NOTIFICATION):Gn.includes((E=u?.MsgBody)===null||E===void 0?void 0:E.OpType)?g.push(Ht.GROUP_MESSAGE_PINNED):g.push(Ht.GROUP_TIPS_NOTIFICATION)}),g}const pr=[{conditions:[{type:"event",value:100}],subType:Ht.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Ht.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Ht.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Ht.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Ht.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Ht.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Ht.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Ht.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Ht.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Ht.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(s){var n;const g=[];return(n=s?.C2cNotifyMsgArray)===null||n===void 0||n.forEach(u=>{u.WithdrawC2cMsgNotify&&g.push(Ht.C2C_REVOKED_MESSAGE),u.C2cReadedReceipt&&g.push(Ht.C2C_MESSAGE_PEER_READ),u.ReadC2cMsgNotify&&g.push(Ht.C2C_MESSAGE_READ_SYNC),u.MuteNotificationsSync&&g.push(Ht.C2C_REMIND_TYPE_SYNC)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{Array.isArray(u.MsgBody.GroupWithdrawInfoArray)?g.push(Ht.GROUP_MESSAGE_REVOKED):Array.isArray(u.MsgBody.GroupMsgReceiptList)?g.push(Ht.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(u.MsgBody.GroupReadInfoArray)?u.MsgBody.GroupReadInfoArray[0].TopicId?g.push(Ht.TOPIC_MESSAGE_READ_SYNC):g.push(Ht.GROUP_MESSAGE_READ_SYNC):u.GroupInfo.MillionGroupFlag===2?g.push(Ht.TOPIC_SYSTEM_NOTIFICATION):g.push(Ht.GROUP_SYSTEM_NOTIFICATION)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{const{GroupAtTips:{TopicId:E}}=u;E?g.push(Ht.TOPIC_AT_TIPS):g.push(Ht.GROUP_AT_TIPS)}),g}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(s){var n;const g=[];return(n=s?.RecentContactMod)===null||n===void 0||n.forEach(u=>{switch(u.PushType){case ze.CONV_MARK_UPDATED:g.push(Ht.CONVERSATION_MARK_UPDATED);break;case ze.CONV_GROUP_ADDED:g.push(Ht.CONVERSATION_GROUP_ADD);break;case ze.CONV_GROUP_DELETED:g.push(Ht.CONVERSATION_GROUP_DELETED);break;case ze.CONV_GROUP_UPDATED:g.push(Ht.CONVERSATION_GROUP_UPDATED);break;default:g.push(Ht.CONV_MODIFIED)}}),g}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Ht.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Ht.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Ht.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Ht.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Ht.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Ht.ALL_MESSAGE_READ}];var Pn;function mr(s){var n;const g=Array.isArray((n=s?.body)===null||n===void 0?void 0:n.EventArray)?s.body.EventArray:[],u=[];return g.forEach(E=>{E.Flag=s.body.Flag;const m=pr.find(M=>M.conditions.every(T=>{switch(T.type){case"event":return E.Event===T.value;case"hasKey":return Object.prototype.hasOwnProperty.call(E,T.value);default:return!1}}));if(!m)return null;let D=[];typeof m.subTypeParser=="function"?D=m.subTypeParser(E):m.subType&&(D=m.subType),Array.isArray(D)?D.forEach(M=>{u.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${M}`,data:E})}):u.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${D}`,data:E})}),u}(function(s){s.SERVER_PUSH_MESSAGE="im_open_push.msg_push",s.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",s.ERROR="error"})(Pn||(Pn={}));const mo={[Pn.SERVER_PUSH_MESSAGE]:mr,[Pn.SERVER_PUSH_MESSAGE_MULTIPLE]:mr,[Pn.ERROR]:function(s){const{errorCode:n}=s;return[{type:`error:${n}`,data:s}]}},gn=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new On,this._innerEventEmitter=new On,this.InnerEventSubType=Ht}subscribeInnerEvent(s,n,g,u,E){var m;let D,M,T,P;["string","number"].includes(typeof n)?(T=`${s}:${n}`,P=g,M=u,D=E):(T=s,P=n,M=g,D=typeof u=="function"?u:void 0),D?this._subscribeWithFilter(T,P,M,D):(m=this._innerEventEmitter)===null||m===void 0||m.on(T,P,M)}emitInnerEvent(s,n){var g,u;if((g=this._innerEventEmitter)===null||g===void 0||g.emit(s,n),Object.keys(mo).includes(s)){const E=(u=mo[s])===null||u===void 0?void 0:u.call(mo,n);E?.forEach(m=>{var D;m&&((D=this._innerEventEmitter)===null||D===void 0||D.emit(m.type,m.data))})}}subscribeOuterEvent(s,n,g){var u;(u=this._outerEventEmitter)===null||u===void 0||u.on(s,n,g)}unSubscribeOuterEvent(s,n,g){var u;(u=this._outerEventEmitter)===null||u===void 0||u.off(s,n,g)}unSubscribeInnerEvent(s,n,g,u){if(["string","number"].includes(typeof n)){const E=g,m=`${s}:${n}`;this._unsubscribeEvent(m,E,u)}else{const E=n;this._unsubscribeEvent(s,E,g)}}emitOuterEvent(s,n){var g;(g=this._outerEventEmitter)===null||g===void 0||g.emit(s,n)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}_subscribeWithFilter(s,n,g,u){var E;const m=D=>{u.call(g,D)&&n.call(g,D)};this._filteredCallbackMap.has(s)||this._filteredCallbackMap.set(s,[]),this._filteredCallbackMap.get(s).push({originalCallback:n,filteredCallback:m,filter:u,context:g}),(E=this._innerEventEmitter)===null||E===void 0||E.on(s,m,g)}_unsubscribeEvent(s,n,g){var u,E;const m=this._filteredCallbackMap.get(s);if(m){const D=m.findIndex(M=>M.originalCallback===n&&M.context===g);if(D!==-1){const{filteredCallback:M}=m[D];return(u=this._innerEventEmitter)===null||u===void 0||u.off(s,M,g),m.splice(D,1),void(m.length===0&&this._filteredCallbackMap.delete(s))}}(E=this._innerEventEmitter)===null||E===void 0||E.off(s,n,g)}};class Dl{constructor(){this._socket=null}connectSocket(n){return this._socket=new WebSocket(n),this._socket}send(n){var g,u;try{(g=this._socket)===null||g===void 0||g.send(n)}catch(E){(u=this._onSendFail)===null||u===void 0||u.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=g,this._socket.onmessage=u,this._socket.onclose=E,this._socket.onerror=m,this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onopen=null,this._socket.onmessage=null,this._socket.onclose=null,this._socket.onerror=null)}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}class cn{constructor(n){this._onError=n.onError}connectSocket(n){const g=this;return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},complete:()=>{},fail:u=>g._onError(u)}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(u),this._socket.onError(m),this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}const fr="CONNECT",Ls="SEND",Vc="DISCONNECT",ms="OPEN",as="MESSAGE",Su="CLOSE",Wa="ERROR",Cs="SEND_FAIL";class sg{constructor(){this._worker=null,this._blobUrl=null}connectSocket(n){const g=new Blob([`
let _socket = null;
self.onmessage = (event) => {
@@ -95,26 +95,26 @@
_socket = null;
}
}
-`],{type:"application/javascript"});this._worker=new Worker(URL.createObjectURL(g)),this._worker.postMessage({type:mr,url:n})}send(n){var g,I;try{(g=this._worker)===null||g===void 0||g.postMessage({type:Ls,data:n})}catch(E){(I=this._onSendFail)===null||I===void 0||I.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:I,onClose:E,onError:m,onSendFail:D}=n;if(this._worker){const M={[ms]:g,[as]:I,[mu]:E,[ja]:m,[Cs]:D};this._onSendFail=D,this._worker.onmessage=T=>{var P;const{type:W}=T?.data||{};typeof M[W]=="function"&&((P=M[W])===null||P===void 0||P.call(M,T?.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Vc}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}class OI{}var Xo,Zi=new class{constructor(){this._store=new Map}get(s){return this._store.get(s)}getStorage(s){return ki?gi?my.getStorageSync({key:s}).data:io.getStorageSync(s):this._canUseLocalStorage()?localStorage.getItem(s):{}}set(s,n){const g=this._store.get(s)||{};n instanceof Map?this._store.set(s,n):this._store.set(s,Object.assign(Object.assign({},g),n))}setStorage(s,n){ki?gi?my.setStorageSync({key:s,data:JSON.stringify(n)}):io.setStorageSync(s,JSON.stringify(n)):this._canUseLocalStorage()&&localStorage.setItem(s,JSON.stringify(n))}clear(s){typeof s=="string"?this._store.set(s,{}):this._store.clear()}clearLocalStorage(s){this._canUseLocalStorage()&&(typeof s=="string"?localStorage.setItem(s,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return typeof window<"u"&&navigator&&navigator.cookieEnabled&&localStorage}};class pc{connectSocket(n){return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},multiple:!0,complete:()=>{}}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:I,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(M=>I(M?.data)),this._socket.onError(()=>m),this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}(function(s){s[s.CONNECTED=0]="CONNECTED",s[s.CONNECTING=1]="CONNECTING",s[s.DISCONNECTED=2]="DISCONNECTED"})(Xo||(Xo={}));class ng{constructor(n){this._url="",this._readyState=Xo.DISCONNECTED,this._url=n,this._id=F(),this._emitter=new On,gi?this._socket=new pc:It||_o||ft||qe||Fi||Vt?this._socket=new cn({onError:this._onError.bind(this)}):an?this._socket=new OI:this._canUseWebWorker()?this._socket=new sg:this._socket=new yl,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[Xo.CONNECTED,Xo.CONNECTING].includes(this._readyState)||(this._readyState=Xo.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(n){this._readyState!==Xo.CONNECTED?this.reconnect():this._socket.send(n)}reconnect(){[Xo.CONNECTED,Xo.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(n,g,I){this._emitter.on(n,g,I)}off(n,g,I){this._emitter.off(n,g,I)}isConnected(){return this._readyState===Xo.CONNECTED}disconnect(){this._readyState=Xo.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(n){this._readyState===Xo.CONNECTING&&(this._readyState=Xo.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:n}))}_onMessage(n){this._emitter.emit("message",n)}_onClose(n){this._readyState=Xo.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:n})}_onError(n){this._readyState=Xo.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:n})}_onSendFail(n){this._readyState=Xo.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:n})}_bindSocketHandlers(){this._socket.bindSocketHandlers({onOpen:this._onOpen.bind(this),onMessage:this._onMessage.bind(this),onClose:this._onClose.bind(this),onError:this._onError.bind(this),onSendFail:this._onSendFail.bind(this)})}_unbindSocketHandlers(){this._socket.unbindSocketHandlers()}_canUseWebWorker(){const n=Zi.get("cloudConfig")||{};return(r(n.isWorkerEnabled)||n.isWorkerEnabled==="1")&&No}}const Dg={[ct.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[ct.KOREA]:[[3e7,4e7],[173e7,174e7]],[ct.GERMANY]:[[4e7,5e7],[174e7,175e7]],[ct.IND]:[[5e7,6e7],[175e7,176e7]],[ct.JPN]:[[6e7,7e7],[176e7,177e7]],[ct.USA]:[[7e7,8e7],[177e7,178e7]],[ct.INDONESIA]:[[8e7,9e7],[178e7,179e7]],[ct.KSA]:[[9e7,1e8],[179e7,18e8]]};function la(s){var n;if(!((n=Zi.get("instance"))===null||n===void 0)&&n.oversea)return ct.OVERSEA;for(const g of Object.keys(Dg))for(const[I,E]of Dg[g])if(s>=I&&s`${iA}=${W[iA]}`).join("&"));var W;return g?`${s}/binfo?${P}&compress=gzip`:`${s}/info?${P}`}function Hs(s){const n=Zi.get("instance"),{sdkAppId:g,testEnv:I,proxyServer:E}=n,m=la(g);if(I)return Hn(mt.TEST[m].DEFAULT,{isBinary:s});if(!Rs(E))return Hn(E,{isBinary:s});const D=mt.PRODUCTION[m],M=jt&&D.ANYCAST,T=jt,P=!!D.BACKUP_CN;return Hn({[Go.INITIAL]:()=>(wo=Go.DEFAULT,D.DEFAULT),[Go.DEFAULT]:()=>(wo=Go.IPV6,D.IPV6),[Go.IPV6]:()=>(wo=Go.BACKUP,D.BACKUP),[Go.BACKUP]:()=>T?(wo=Go.BACKUP_WEB_ONLY,function(W){const iA=Math.floor(10001*Math.random())+1e4;return W.replace("*",String(iA))}(D.BACKUP_WEB_ONLY)):P?(wo=Go.BACKUP_CN,D.BACKUP_CN):M?(wo=Go.ANYCAST,D.ANYCAST):D.DEFAULT,[Go.BACKUP_WEB_ONLY]:()=>P?(wo=Go.BACKUP_CN,D.BACKUP_CN):M?(wo=Go.ANYCAST,D.ANYCAST):D.DEFAULT,[Go.BACKUP_CN]:()=>(wo=M?Go.ANYCAST:Go.DEFAULT,D[wo]),[Go.ANYCAST]:()=>(wo=Go.DEFAULT,D.ANYCAST="",D.DEFAULT)}[wo](),{isBinary:s})}var Sg=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(s,n){const g=Date.now(),I=g-s;this._timeOffsetWithServer=n+I-g}};const mc=16;var fn=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(s){const{id:n}=s;this.removeTask(n),this._tasks.push(s),this._taskMap.set(n,s),this._sort(),this._scheduleNextTask()}_createTask(s){const{id:n,callback:g,context:I,isOnce:E=!1,intervalMs:m=mc}=s,D=Math.max(m,mc);return{id:n,nextExecuteTime:Date.now()+D,intervalMs:m,callback:g,context:I,isOnce:E}}addTask(s){const n=this._createTask(s);this._addTaskToScheduler(n)}addOnceTask(s){const n=this._createTask(Object.assign(Object.assign({},s),{isOnce:!0}));this._addTaskToScheduler(n)}removeTask(s){const n=this._tasks.findIndex(g=>g.id===s);n>-1&&(this._tasks.splice(n,1),this._taskMap.delete(s),this._scheduleNextTask())}updateTaskInterval(s,n){const g=this._taskMap.get(s);g&&(g.intervalMs=n,g.nextExecuteTime=Date.now()+n,this._sort(),this._scheduleNextTask())}clearAllTasks(){this._tasks=[],this._taskMap.clear(),this._timer&&(clearTimeout(this._timer),this._timer=null)}dispose(){this.clearAllTasks()}_sort(){this._tasks.sort((s,n)=>s.nextExecuteTime-n.nextExecuteTime)}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const s=this._tasks[0];if(s){const n=Math.max(0,s.nextExecuteTime-Date.now());this._timer=setTimeout(()=>this._execute(),n)}}_execute(){const s=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=s;){const n=this._tasks[0];try{n.context?n.callback.call(n.context):n.callback(),n.isOnce?this.removeTask(n.id):(n.nextExecuteTime=s+n.intervalMs,this._sort())}catch(g){console.warn(`Task ${n.id} execution failed:`,g),n.isOnce&&this.removeTask(n.id)}}this._scheduleNextTask()}};function Na(s){const n=[];for(let g=0;g=55296&&I<=56319){const E=s.charCodeAt(++g)-56320+(I-55296<<10)+65536;n.push(240|E>>18,128|E>>12&63,128|E>>6&63,128|63&E)}else I<=127?n.push(I):I<=2047?n.push(192|I>>6,128|63&I):n.push(224|I>>12,128|I>>6&63,128|63&I)}return new Uint8Array(n)}function In(s){const n=Array.isArray(s)?[]:Object.create(null);for(const g in s)Object.prototype.hasOwnProperty.call(s,g)&&_(g)&&s[g]!=null&&(s[g]===null||typeof s[g]!="object"?n[g]=s[g]:n[g]=In(s[g]));return n}function fs(s,n){if(pA.includes(s))return 0;const g=Na(JSON.stringify(n));let I=4294967295;const{length:E}=g;for(let m=0;m>>=1:I=I>>>1^3988292384}return(4294967295^I)>>>0}function Ia(s){const{servcmd:n,data:g}=s,I=function(m){const D=Zi.get("login")||{},M=Zi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",a2:D.a2Key||void 0,tinyid:D.tinyID||void 0,status_instid:D.statusInstanceId||0,sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.a2Key?void 0:D.userId,usersig:D.a2Key?void 0:D.userSig,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,tjgID:"",seq:Da(),cs:0}}(n),E=In(g);return I.cs=fs(n,E),{head:I,body:E}}function yn(s){const{servcmd:n,data:g}=s,I=function(m){const D=Zi.get("login")||{},M=Zi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,seq:Da(),cs:0}}(n),E=In(g);return I.cs=fs(n,E),{head:I,body:E}}let Ga=F();function Da(){return Ga=Ga<2415919103?Ga+1:F(),Ga}function $(){var s;const n=Zi.get("login")||{},g=Zi.get("instance")||{};return{sdk_type:30,sdk_app_id:g.sdkAppId,sdk_version:"1.6.18",tiny_id:Number(n.tinyID),user_id:n.userId||((s=Zi.get("webPush"))===null||s===void 0?void 0:s.userId),platform:HA,instance_id:g.instanceId,trace_id:new Date().getTime()}}var K,vA=Object.freeze({__proto__:null,calcBodyCRC:fs,filterProtocolDataInvalidFields:In,generateCosSpecifiedData:function(s){const{servcmd:n,data:g}=s,I=function(m){const D=Zi.get("login")||{},M=Zi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.userId,usersig:D.userSig,status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,seq:Da(),cs:0}}(n),E=In(g);return I.cs=fs(n,E),{head:I,body:E}},generateProtocolData:Ia,generateSSOLogProtocolData:yn,generateSequence:Da,getCommonHead:$,getHostSite:la,taskScheduler:fn,timeManager:Sg});(function(s){s[s.info=4]="info",s[s.warning=5]="warning",s[s.error=6]="error"})(K||(K={}));const qA={method:"extension",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",uiPlatform:"ui_platform",timestamp:"timestamp"};class te{constructor(n){this.level=K.info,this._canSendLog=!0,this._logCreatedAt=Sg.getServerTimeMs(),this.timestamp=0,this.networkType=8,this.code=0,this.moreMessage="",this.method="",this.message="",this.costTime=0,this.duplicate=!1,this.eventType=0,this.uiPlatform=this._getUiPlatform(),this._sdkEdition=this._getSDKEdition();const{method:g,eventType:I=0,message:E="",costTime:m=0,error:D,uiPlatform:M,moreMessage:T="",code:P=0,startTime:W=0}=n||{};this.eventType=I,this.method=g,this.message=E,this.costTime=m,this.moreMessage=`${T} startTime:${W}`,this.code=P,D&&this.setError(D),Rs(M)||(this.uiPlatform=M)}setMoreMessage(n){this.moreMessage=`${this.moreMessage} ${n}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Sg.getTimeOffsetWithServer()}end(n=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=Sg.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),n&&this._ssoLogModule.uploadSSOLogData())}setError(n){var g;return n instanceof Error?this._canSendLog?(!((g=Zi.get("netWorkMonitor"))===null||g===void 0)&&g.isNetworkOnline&&(n.errorCode&&(this.code=n.errorCode),n.errorMessage&&this.setMoreMessage(n.errorMessage)),this.level=K.error,this):this:(console.warn("SSOLogData.setError value not instanceof Error, please check!"),this)}setLogInfo(n){return Object.keys(n).forEach(g=>{Object.keys(qA).includes(g)&&(this[g]=n[g])}),this}setSSOLogModule(n){this._ssoLogModule=n}_convertSSOLogDataKeyToServe(){const n={};return Object.keys(this).forEach(g=>{const I=g;qA[I]&&(n[qA[I]]=this[I])}),n}_getUiPlatform(){var n;const g=(n=Zi.get("instance"))===null||n===void 0?void 0:n.scene;if(typeof g=="string"){const I=Number(g);return isNaN(I)?void 0:I}}_getSDKEdition(){var n;return(n=Zi.get("instance"))===null||n===void 0?void 0:n.sdkEdition}}var pe;(function(s){s.RECONNECTED="reconnected",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.SOCKET_DISCONNECTED="socket_disconnected"})(pe||(pe={}));var Oe=pe;const Fe=20,ot=6e4,ut=[4,5,6],St="report-logger";var Ot=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Fe,this._maxThreshold=100,this._waitingTime=ot,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=lA.DEBUG,this._throttleConfig={global:{throttleTime:De,maxCount:Ce},single:{throttleTime:zA,maxCount:$A}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,gn.subscribeInnerEvent(Oe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),fn.addTask({id:St,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(s){const{evt_rpt_threshold:n=Fe,evt_rpt_waiting:g=ot,evt_rpt_level:I=ut,evt_rpt_sdkappid_bl:E="",evt_rpt_tinyid_wl:m="",evt_rpt_global_throttle_time:D=De,evt_rpt_global_throttle_count:M=Ce,evt_rpt_single_throttle_time:T=zA,evt_rpt_single_throttle_count:P=$A}=s||{};this._sdkAppIdBlackList=E.split(",").map(W=>Number(W)),this._waitingTime=Number(g),this._minThreshold=n,this._reportLevel=I,this._tinyIdWhiteList=m.split(","),this._throttleConfig={global:{throttleTime:D,maxCount:M},single:{throttleTime:T,maxCount:P}}}createSSOLogData(s){const n=new te(s);return n.setSSOLogModule(this),this._ssoLogMap.set(s.method,n),n}getSSOLogData(s){return this._ssoLogMap.get(s)||{}}pushToLogQueue(s){s&&(this._logQueue.push(s),this._shouldUploadImmediately()&&this.uploadSSOLogData())}setLogLevel(s){[lA.DEBUG,lA.ERROR,lA.INFO,lA.NONE,lA.WARN].includes(s)&&(this._logLevel=s)}debug(s,n="",g){this._log(lA.DEBUG,s,n,g)}info(s,n="",g){this._log(lA.INFO,s,n,g)}warn(s,n="",g){this._log(lA.WARN,s,n,g)}error(s,n="",g){this._log(lA.ERROR,s,n,g)}_shouldUploadImmediately(){return this._logQueue.length>=this._minThreshold}_isReportDue(){return Date.now()>=this._lastReportAt+this._waitingTime}_checkAndReportIfDue(){this._isReportDue()&&this._logQueue.length>0&&this.uploadSSOLogData()}uploadSSOLogData(){return mA(this,void 0,void 0,function*(){if(this._logQueue.length===0)return;const s=this._logQueue.slice();this._logQueue=[];try{const n=this._filterLogs(s);if(n.length===0)return void(this._lastReportAt=Date.now());const g={Header:$(),Event:n};Rs(g.Header.user_id)||(yield function(I){const E="imopenstat.tim_web_report_v2",m=yn({servcmd:E,data:I}),D=`${m.head.seq}${E}`;return fe.sendPacket(m,{requestId:D})}(g))}catch(n){this._requeueFailedLogs(s),this.debug("uploadSSOLogData",en(n))}finally{this._lastReportAt=Date.now()}})}_requeueFailedLogs(s){this._logQueue=s.concat(this._logQueue);const n=this._logQueue.length-200;n>0&&(this._logQueue.splice(0,n),this.debug("uploadSSOLogData",`log queue overflow, dropped ${n} oldest logs`))}_savePlatFormInfo(){var s,n;if(It){const g=(n=(s=wx.getAccountInfoSync)===null||s===void 0?void 0:s.call(wx))===null||n===void 0?void 0:n.miniProgram;if(g){const{appId:I,envVersion:E}=g;Zi.set("instance",{appId:I,envVersion:E})}}else jt&&Zi.set("instance",{href:window.location.href})}_filterLogs(s){const{tinyID:n}=Zi.get("login")||{},{sdkAppId:g}=Zi.get("instance")||{};return this._sdkAppIdBlackList.includes(g)&&!this._tinyIdWhiteList.includes(n)?[]:s.filter(I=>this._reportLevel.includes(I.level))}_checkThrottle(s){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(s)}_checkGlobalThrottle(){const s=Date.now();if(s-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=s;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(s){const n=Date.now(),g=this._singleThrottleMap.get(s);return g?n-g.startTime>=this._throttleConfig.single.throttleTime?(g.count=1,g.startTime=n,!1):g.count>=this._throttleConfig.single.maxCount||(g.count++,!1):(this._singleThrottleMap.set(s,{count:1,startTime:n}),!1)}_shouldLog(s){return s>=this._logLevel&&this._logLevel!==lA.NONE}_shouldReport(s){return this._reportLevel.includes(WA[s])}_formatLog(s,n,g,I){const E=new Date,m=`${E.getHours()}:${E.getMinutes()}:${E.getSeconds()}:${E.getMilliseconds()}`,D=`<${lA[s]}>`;return Rt||ki?[`${cA} [${m}] ${D} [${n}] ${g}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",cA,"",`[${m}] ${D} [${n}] ${g} params: ${en(I)}`]}_log(s,n,g,I){if(this._shouldLog(s)){const E=this._formatLog(s,n,g,I);TA[s].apply(console,E)}if(this._shouldReport(s)){const E=this._getThrottleKey(n,g,I);this._checkThrottle(E)||this.createSSOLogData(Object.assign(Object.assign({message:g},I),{method:n})).end()}}_getThrottleKey(s,n,g){const I=`${s}${n}${en(Object.assign(Object.assign({},g),{costTime:""}))}`,E=Na(JSON.stringify(I));let m=4294967295;const{length:D}=E;for(let M=0;M>>=1:m=m>>>1^3988292384}return`${(4294967295^m)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),fn.removeTask(St),gn.unSubscribeInnerEvent(Oe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Fe,this._maxThreshold=100,this._waitingTime=ot,this._logQueue=[],this._logLevel=lA.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const li=15e3,nt="Channel",Ft="channel_schedule_task",Ji="channel_reconnect_task",qi="connected",qs="connecting",Mi="disconnected",Wo=1e3,Mg="network_status_change",or="activity_status_change",fr="send_fail",xn="reconnect_failed",Dl="socket_error",Ks="socket_close";function oI(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function Wg(s){return Wg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Wg(s)}function fc(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var fu,Sa={exports:{}},Sl=(fu||(fu=1,function(s){s.exports=function n(g,I,E){function m(T,P){if(!I[T]){if(!g[T]){if(!P&&fc)return fc(T);if(D)return D(T,!0);var W=new Error("Cannot find module '"+T+"'");throw W.code="MODULE_NOT_FOUND",W}var iA=I[T]={exports:{}};g[T][0].call(iA.exports,function(EA){return m(g[T][1][EA]||EA)},iA,iA.exports,n,g,I,E)}return I[T].exports}for(var D=fc,M=0;M>>6:(EA<65536?iA[xA++]=224|EA>>>12:(iA[xA++]=240|EA>>>18,iA[xA++]=128|EA>>>12&63),iA[xA++]=128|EA>>>6&63),iA[xA++]=128|63&EA);return iA},I.buf2binstring=function(W){return P(W,W.length)},I.binstring2buf=function(W){for(var iA=new E.Buf8(W.length),EA=0,RA=iA.length;EA>10&1023,SA[RA++]=56320|1023&kA)}return P(SA,RA)},I.utf8border=function(W,iA){var EA;for((iA=iA||W.length)>W.length&&(iA=W.length),EA=iA-1;0<=EA&&(192&W[EA])==128;)EA--;return EA<0||EA===0?iA:EA+M[W[EA]]>iA?EA:iA}},{"./common":1}],3:[function(n,g,I){g.exports=function(E,m,D,M){for(var T=65535&E,P=E>>>16&65535,W=0;D!==0;){for(D-=W=2e3>>1:m>>>1;D[M]=m}return D}();g.exports=function(m,D,M,T){var P=E,W=T+M;m^=-1;for(var iA=T;iA>>8^P[255&(m^D[iA])];return-1^m}},{}],6:[function(n,g,I){g.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],7:[function(n,g,I){g.exports=function(E,m){var D,M,T,P,W,iA,EA,RA,kA,xA,LA,SA,OA,JA,re,ne,_i,Ti,kt,Ni,cs,Se,Bt,UA,ii;D=E.state,M=E.next_in,UA=E.input,T=M+(E.avail_in-5),P=E.next_out,ii=E.output,W=P-(m-E.avail_out),iA=P+(E.avail_out-257),EA=D.dmax,RA=D.wsize,kA=D.whave,xA=D.wnext,LA=D.window,SA=D.hold,OA=D.bits,JA=D.lencode,re=D.distcode,ne=(1<>>=kt=Ti>>>24,OA-=kt,(kt=Ti>>>16&255)==0)ii[P++]=65535&Ti;else{if(!(16&kt)){if(!(64&kt)){Ti=JA[(65535&Ti)+(SA&(1<>>=kt,OA-=kt),OA<15&&(SA+=UA[M++]<>>=kt=Ti>>>24,OA-=kt,!(16&(kt=Ti>>>16&255))){if(!(64&kt)){Ti=re[(65535&Ti)+(SA&(1<>>=kt,OA-=kt,(kt=P-W)>3,SA&=(1<<(OA-=Ni<<3))-1,E.next_in=M,E.next_out=P,E.avail_in=M>>24&255)+(Se>>>8&65280)+((65280&Se)<<8)+((255&Se)<<24)}function SA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new E.Buf16(320),this.work=new E.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function OA(Se){var Bt;return Se&&Se.state?(Bt=Se.state,Se.total_in=Se.total_out=Bt.total=0,Se.msg="",Bt.wrap&&(Se.adler=1&Bt.wrap),Bt.mode=RA,Bt.last=0,Bt.havedict=0,Bt.dmax=32768,Bt.head=null,Bt.hold=0,Bt.bits=0,Bt.lencode=Bt.lendyn=new E.Buf32(kA),Bt.distcode=Bt.distdyn=new E.Buf32(xA),Bt.sane=1,Bt.back=-1,iA):EA}function JA(Se){var Bt;return Se&&Se.state?((Bt=Se.state).wsize=0,Bt.whave=0,Bt.wnext=0,OA(Se)):EA}function re(Se,Bt){var UA,ii;return Se&&Se.state?(ii=Se.state,Bt<0?(UA=0,Bt=-Bt):(UA=1+(Bt>>4),Bt<48&&(Bt&=15)),Bt&&(Bt<8||15=Gi.wsize?(E.arraySet(Gi.window,Bt,UA-Gi.wsize,Gi.wsize,0),Gi.wnext=0,Gi.whave=Gi.wsize):(ii<(_s=Gi.wsize-Gi.wnext)&&(_s=ii),E.arraySet(Gi.window,Bt,UA-ii,_s,Gi.wnext),(ii-=_s)?(E.arraySet(Gi.window,Bt,UA-ii,ii,0),Gi.wnext=ii,Gi.whave=Gi.wsize):(Gi.wnext+=_s,Gi.wnext===Gi.wsize&&(Gi.wnext=0),Gi.whave>>8&255,UA.check=D(UA.check,dg,2,0),_t=wt=0,UA.mode=2;break}if(UA.flags=0,UA.head&&(UA.head.done=!1),!(1&UA.wrap)||(((255&wt)<<8)+(wt>>8))%31){Se.msg="incorrect header check",UA.mode=30;break}if((15&wt)!=8){Se.msg="unknown compression method",UA.mode=30;break}if(_t-=4,Ya=8+(15&(wt>>>=4)),UA.wbits===0)UA.wbits=Ya;else if(Ya>UA.wbits){Se.msg="invalid window size",UA.mode=30;break}UA.dmax=1<>8&1),512&UA.flags&&(dg[0]=255&wt,dg[1]=wt>>>8&255,UA.check=D(UA.check,dg,2,0)),_t=wt=0,UA.mode=3;case 3:for(;_t<32;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}UA.head&&(UA.head.time=wt),512&UA.flags&&(dg[0]=255&wt,dg[1]=wt>>>8&255,dg[2]=wt>>>16&255,dg[3]=wt>>>24&255,UA.check=D(UA.check,dg,4,0)),_t=wt=0,UA.mode=4;case 4:for(;_t<16;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}UA.head&&(UA.head.xflags=255&wt,UA.head.os=wt>>8),512&UA.flags&&(dg[0]=255&wt,dg[1]=wt>>>8&255,UA.check=D(UA.check,dg,2,0)),_t=wt=0,UA.mode=5;case 5:if(1024&UA.flags){for(;_t<16;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}UA.length=wt,UA.head&&(UA.head.extra_len=wt),512&UA.flags&&(dg[0]=255&wt,dg[1]=wt>>>8&255,UA.check=D(UA.check,dg,2,0)),_t=wt=0}else UA.head&&(UA.head.extra=null);UA.mode=6;case 6:if(1024&UA.flags&&(xi<(ho=UA.length)&&(ho=xi),ho&&(UA.head&&(Ya=UA.head.extra_len-UA.length,UA.head.extra||(UA.head.extra=new Array(UA.head.extra_len)),E.arraySet(UA.head.extra,ii,Gi,ho,Ya)),512&UA.flags&&(UA.check=D(UA.check,ii,ho,Gi)),xi-=ho,Gi+=ho,UA.length-=ho),UA.length))break A;UA.length=0,UA.mode=7;case 7:if(2048&UA.flags){if(xi===0)break A;for(ho=0;Ya=ii[Gi+ho++],UA.head&&Ya&&UA.length<65536&&(UA.head.name+=String.fromCharCode(Ya)),Ya&&ho>9&1,UA.head.done=!0),Se.adler=UA.check=0,UA.mode=12;break;case 10:for(;_t<32;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}Se.adler=UA.check=LA(wt),_t=wt=0,UA.mode=11;case 11:if(UA.havedict===0)return Se.next_out=Lr,Se.avail_out=ar,Se.next_in=Gi,Se.avail_in=xi,UA.hold=wt,UA.bits=_t,2;Se.adler=UA.check=1,UA.mode=12;case 12:if(Bt===5||Bt===6)break A;case 13:if(UA.last){wt>>>=7&_t,_t-=7&_t,UA.mode=27;break}for(;_t<3;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}switch(UA.last=1&wt,_t-=1,3&(wt>>>=1)){case 0:UA.mode=14;break;case 1:if(Ni(UA),UA.mode=20,Bt!==6)break;wt>>>=2,_t-=2;break A;case 2:UA.mode=17;break;case 3:Se.msg="invalid block type",UA.mode=30}wt>>>=2,_t-=2;break;case 14:for(wt>>>=7&_t,_t-=7&_t;_t<32;){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}if((65535&wt)!=(wt>>>16^65535)){Se.msg="invalid stored block lengths",UA.mode=30;break}if(UA.length=65535&wt,_t=wt=0,UA.mode=15,Bt===6)break A;case 15:UA.mode=16;case 16:if(ho=UA.length){if(xi>>=5,_t-=5,UA.ndist=1+(31&wt),wt>>>=5,_t-=5,UA.ncode=4+(15&wt),wt>>>=4,_t-=4,286>>=3,_t-=3}for(;UA.have<19;)UA.lens[WD[UA.have++]]=0;if(UA.lencode=UA.lendyn,UA.lenbits=7,MI={bits:UA.lenbits},Pl=T(0,UA.lens,0,19,UA.lencode,0,UA.work,MI),UA.lenbits=MI.bits,Pl){Se.msg="invalid code lengths set",UA.mode=30;break}UA.have=0,UA.mode=19;case 19:for(;UA.have>>16&255,SI=65535&Yg,!((Rr=Yg>>>24)<=_t);){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}if(SI<16)wt>>>=Rr,_t-=Rr,UA.lens[UA.have++]=SI;else{if(SI===16){for(zu=Rr+2;_t>>=Rr,_t-=Rr,UA.have===0){Se.msg="invalid bit length repeat",UA.mode=30;break}Ya=UA.lens[UA.have-1],ho=3+(3&wt),wt>>>=2,_t-=2}else if(SI===17){for(zu=Rr+3;_t>>=Rr)),wt>>>=3,_t-=3}else{for(zu=Rr+7;_t>>=Rr)),wt>>>=7,_t-=7}if(UA.have+ho>UA.nlen+UA.ndist){Se.msg="invalid bit length repeat",UA.mode=30;break}for(;ho--;)UA.lens[UA.have++]=Ya}}if(UA.mode===30)break;if(UA.lens[256]===0){Se.msg="invalid code -- missing end-of-block",UA.mode=30;break}if(UA.lenbits=9,MI={bits:UA.lenbits},Pl=T(P,UA.lens,0,UA.nlen,UA.lencode,0,UA.work,MI),UA.lenbits=MI.bits,Pl){Se.msg="invalid literal/lengths set",UA.mode=30;break}if(UA.distbits=6,UA.distcode=UA.distdyn,MI={bits:UA.distbits},Pl=T(W,UA.lens,UA.nlen,UA.ndist,UA.distcode,0,UA.work,MI),UA.distbits=MI.bits,Pl){Se.msg="invalid distances set",UA.mode=30;break}if(UA.mode=20,Bt===6)break A;case 20:UA.mode=21;case 21:if(6<=xi&&258<=ar){Se.next_out=Lr,Se.avail_out=ar,Se.next_in=Gi,Se.avail_in=xi,UA.hold=wt,UA.bits=_t,M(Se,ln),Lr=Se.next_out,_s=Se.output,ar=Se.avail_out,Gi=Se.next_in,ii=Se.input,xi=Se.avail_in,wt=UA.hold,_t=UA.bits,UA.mode===12&&(UA.back=-1);break}for(UA.back=0;xg=(Yg=UA.lencode[wt&(1<>>16&255,SI=65535&Yg,!((Rr=Yg>>>24)<=_t);){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}if(xg&&!(240&xg)){for(ac=Rr,Af=xg,ip=SI;xg=(Yg=UA.lencode[ip+((wt&(1<>ac)])>>>16&255,SI=65535&Yg,!(ac+(Rr=Yg>>>24)<=_t);){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}wt>>>=ac,_t-=ac,UA.back+=ac}if(wt>>>=Rr,_t-=Rr,UA.back+=Rr,UA.length=SI,xg===0){UA.mode=26;break}if(32&xg){UA.back=-1,UA.mode=12;break}if(64&xg){Se.msg="invalid literal/length code",UA.mode=30;break}UA.extra=15&xg,UA.mode=22;case 22:if(UA.extra){for(zu=UA.extra;_t>>=UA.extra,_t-=UA.extra,UA.back+=UA.extra}UA.was=UA.length,UA.mode=23;case 23:for(;xg=(Yg=UA.distcode[wt&(1<>>16&255,SI=65535&Yg,!((Rr=Yg>>>24)<=_t);){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}if(!(240&xg)){for(ac=Rr,Af=xg,ip=SI;xg=(Yg=UA.distcode[ip+((wt&(1<>ac)])>>>16&255,SI=65535&Yg,!(ac+(Rr=Yg>>>24)<=_t);){if(xi===0)break A;xi--,wt+=ii[Gi++]<<_t,_t+=8}wt>>>=ac,_t-=ac,UA.back+=ac}if(wt>>>=Rr,_t-=Rr,UA.back+=Rr,64&xg){Se.msg="invalid distance code",UA.mode=30;break}UA.offset=SI,UA.extra=15&xg,UA.mode=24;case 24:if(UA.extra){for(zu=UA.extra;_t>>=UA.extra,_t-=UA.extra,UA.back+=UA.extra}if(UA.offset>UA.dmax){Se.msg="invalid distance too far back",UA.mode=30;break}UA.mode=25;case 25:if(ar===0)break A;if(ho=ln-ar,UA.offset>ho){if((ho=UA.offset-ho)>UA.whave&&UA.sane){Se.msg="invalid distance too far back",UA.mode=30;break}ho>UA.wnext?(ho-=UA.wnext,ll=UA.wsize-ho):ll=UA.wnext-ho,ho>UA.length&&(ho=UA.length),DC=UA.window}else DC=_s,ll=Lr-UA.offset,ho=UA.length;for(ar_i?(kt=ll[DC+xA[Bt]],Ni=_t[Wu+xA[Bt]]):(kt=96,Ni=0),SA=1<>Lr)+(OA-=SA)]=Ti<<24|kt<<16|Ni,OA!==0;);for(SA=1<>=1;if(SA!==0?(wt&=SA-1,wt+=SA):wt=0,Bt++,--ln[Se]==0){if(Se===ii)break;Se=W[iA+xA[Bt]]}if(_s{const M=new Uint8Array(D).slice(4);let T;try{T=Sl.inflate(M,{to:"string"})}catch(P){console.error("inflate error",P)}return T})(s.data):function(D){const M=new Uint8Array(D);let T="",P=0;const{length:W}=M;for(;P0)for(let kA=0;kA{var I;const{uplinkData:E,canResend:m,resolve:D,reject:M,timeout:T}=n;if(m){this._pendingRequests.set(g,{resolve:D,reject:M,timestamp:Date.now(),uplinkData:E,timeout:T,canResend:m});const P=this._isBinarySupported?Na(E).buffer:E;(I=this._socketAdapter)===null||I===void 0||I.send(P)}else this._pendingRequests.delete(g)})}_onConnect(s){const{socketId:n,event:g={}}=s||{};this._connectionId=n,this._connectionEstablishedTime=Date.now();const I=Date.now()-this._connectionStartTime,E=`${nt}.onConnect cost:${I} ms. socketID:${n} res:${JSON.stringify(g)}`;if(this._ssoLog({method:"onConnect",message:E}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const m=`${nt}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:m}),gn.emitInnerEvent(Oe.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:qi,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(s){const n=Ia({servcmd:"openim.ws_msg_push_ack",data:{SessionData:s}});this.sendPacket(n)}_executeScheduledTaskIfReady(){return mA(this,void 0,void 0,function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()})}_canSendHeartbeat(){var s;return((s=this._socketAdapter)===null||s===void 0?void 0:s.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return mA(this,void 0,void 0,function*(){var s;const n=Ia({servcmd:"heartbeat.alive",data:{}});try{const g=`${n.head.seq}${n.head.servcmd}`;yield this.sendPacket(n,{requestId:g,timeout:3e3})}catch(g){const I=(s=Zi.get("netWorkMonitor"))===null||s===void 0?void 0:s.isNetworkOnline,E=`${nt}.sendHeartbeat failed. isNetWorkOnline:${I} error: ${en(g)}`;this._ssoLog({method:"sendHeartbeatError",message:E}),this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return mA(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=_o?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(s){const n=`${nt}.networkStatusChange ${JSON.stringify(s)}`;this._ssoLog({method:"networkStatusChange",message:n});const{isNetworkOnline:g,networkType:I}=s;g&&I!=="none"?this._handleConnectStateChange({state:qi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg}):this._handleConnectStateChange({state:Mi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg})}isPrivateNetWork(){const s=Zi.get("instance")||{};return s.proxyServer&&!s.fileDownloadProxy}_handleConnectStateChange(s){const{state:n,shouldAttemptReconnect:g,shouldEmitEvent:I,reason:E}=s,m=`${nt}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${g} shouldEmitEvent: ${I} reason: ${E}`;this._currentConnectState!==n&&(this._ssoLog({method:"handleConnectStateChange",message:m}),I&&(Ot.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${n}`),gn.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:n}}),this._currentConnectState=n,n===Mi&&gn.emitInnerEvent(Oe.SOCKET_DISCONNECTED)),g&&(this._resetReconnectDelay(),fn.addTask({id:Ji,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this})))}_handleActivityStatusChange(s){var n,g;const I=(g=(n=this._socketAdapter)===null||n===void 0?void 0:n._ws)===null||g===void 0?void 0:g.readyState,E=`${nt}.activityStatusChange ${JSON.stringify(s)} readyState: ${I}`;Ot.debug("activityStatusChange",E),I===3&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:or})}_resetReconnectDelay(){var s;Ot.debug(`${nt}._resetReconnectDelay`),fn.removeTask(Ji);const n=(s=Zi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?Wo:1e3}_scheduleReconnectWithBackoff(){var s;const n=(s=Zi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?Math.min(5e3,Math.max(Wo,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const g=new Date().toTimeString().slice(0,8),I=`${nt}.scheduleReconnectWithBackoff timeStr: ${g} intendedDelay: ${this._intendedDelay}`;Ot.debug(I),this.reconnect(),fn.updateTaskInterval(Ji,this._intendedDelay)}_ssoLog(s){const{method:n,message:g}=s;Ot.info(n,g)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(s){mA(this,void 0,void 0,function*(){const n=s.split("/")[2];if(!n.startsWith("ws"))return;const g=`https://${n}/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:g,data:{}})}catch(I){Ot.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${I.message}`)}})}(this._url),function(s){mA(this,void 0,void 0,function*(){const n=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:n,data:{}})}catch(g){Ot.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${g.message}`)}})}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[s,n]of this._pendingRequests.entries()){const{reject:g,timestamp:I,timeout:E}=n;Date.now()-I>=E&&(this._pendingRequests.delete(s),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),g({errorCode:Br,errorInfo:"NETWORK_TIMEOUT",data:{requestId:s}}))}}_updateIsBinarySupported(){var s;if(!((s=Zi.get("instance"))===null||s===void 0)&&s.devMode)return void(this._isBinarySupported=!1);const n=Es();if((gi||It&&n==="windows"||Vs)&&(this._isBinarySupported=!1),_o){const{uniRuntimeVersion:g=""}=io.getSystemInfoSync();(function(I){const E=I.split(".").map(Number),[m=0,D=0,M=0]=E;return m>2||!(m<2)&&(D>2||!(D<2)&&M>=6)})(g)||(this._isBinarySupported=!1)}}_isCompressedData(s){const n=new Uint8Array(s);return n[0]===67&&n[1]===79&&n[2]===77&&n[3]===80}};const me={init:function(s){Zi.set("instance",s),fe.init()},destroy:function(){fe.dispose(),Zi.clear(),fn.dispose()},notificationCenter:gn,channel:fe,store:Zi,ssoLog:Ot,utils:yg,common:vA,constants:Dt},vg=s=>typeof s=="function";function rg(s,n,g){const I=g||[];if(!s||!n)return!1;const E=Object.keys(s).filter(D=>!I.includes(D)),m=Object.keys(n).filter(D=>!I.includes(D));return E.length===m.length&&E.every(D=>!!n.hasOwnProperty(D)&&(typeof s[D]=="object"&&s[D]!==null?rg(s[D],n[D],g):s[D]===n[D]))}var Rg;(function(s){s.SDK_READY="sdkStateReady",s.SDK_NOT_READY="sdkStateNotReady",s.SDK_DESTROY="sdkDestroy",s.MESSAGE_RECEIVED="onMessageReceived",s.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",s.MESSAGE_MODIFIED="onMessageModified",s.MESSAGE_REVOKED="onMessageRevoked",s.MESSAGE_READ_BY_PEER="onMessageReadByPeer",s.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",s.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",s.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",s.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",s.CONVERSATION_LIST_UPDATED="onConversationListUpdated",s.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",s.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",s.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",s.GROUP_LIST_UPDATED="onGroupListUpdated",s.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",s.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",s.TOPIC_CREATED="onTopicCreated",s.TOPIC_DELETED="onTopicDeleted",s.TOPIC_UPDATED="onTopicUpdated",s.PROFILE_UPDATED="onProfileUpdated",s.USER_STATUS_UPDATED="onUserStatusUpdated",s.BLACKLIST_UPDATED="blacklistUpdated",s.FRIEND_LIST_UPDATED="onFriendListUpdated",s.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",s.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",s.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",s.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",s.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",s.KICKED_OUT="kickedOut",s.ERROR="error",s.NET_STATE_CHANGE="netStateChange",s.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated",s.SERVER_CONFIG_UPDATED="onServerConfigUpdated",s.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",s.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived",s.GROUP_ONLINE_MEMBER_COUNT_CHANGED="onGroupOnlineMemberCountChanged",s.RICH_STATUS_CHANGED="onRichStatusChanged"})(Rg||(Rg={}));var Dn,yr=Rg;(function(s){s.LOGOUT="logout",s.DESTROY="destroy",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.PROFILE_UPDATE="profile_updated",s.ERROR="error",s.RECONNECTED="reconnected",s.FORCE_OFFLINE="im_open_status.stat_forceoffline",s.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",s.OVERLOAD_PUSH="OverLoadPush.notify2",s.NEW_MESSAGE="new_message",s.MESSAGE_PUSH="im_open_push.msg_push",s.MESSAGE_DELETED="message_deleted",s.MESSAGE_REVOKED="message_revoked",s.MESSAGE_MODIFIED="message_modified",s.SOCKET_DISCONNECTED="socket_disconnected",s.CONVERSATION_UPDATED="conversation_updated",s.TOPIC_MESSAGE_DELETED="topic_message_deleted",s.TOPIC_MESSAGE_REVOKED="topic_message_revoked",s.TOPIC_MESSAGE_MODIFIED="topic_message_modified",s.TOPIC_NEW_MESSAGE="topic_new_message",s.QUALITY_STAT="quality_stat",s.SYNC_CONVERSATION_LIST="sync_conversation_list",s.HISTORY_MESSAGE_FETCHED="history_message_fetched"})(Dn||(Dn={}));var Ii,so=Dn;(function(s){s.NEW_INVITATION_RECEIVED="newInvitationReceived",s.INVITEE_ACCEPTED="ts_invitee_accepted",s.INVITEE_REJECTED="ts_invitee_rejected",s.INVITATION_CANCELLED="ts_invitation_cancelled",s.INVITATION_TIMEOUT="ts_invitation_timeout",s.INVITATION_MODIFIED="ts_invitation_modified"})(Ii||(Ii={}));var Hc=Ii;const zg=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),wg={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem",MSG_STREAM:"TIMStreamElem"};var Or;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(Or||(Or={}));const yc={modify:so.MESSAGE_MODIFIED,delete:so.MESSAGE_DELETED,revoke:so.MESSAGE_REVOKED};var qc;(function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"})(qc||(qc={}));const ag=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},wg),{MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest"}),{RECEIVE_WITH_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_MSG_EXCEPT_AT:"NotReceiveMsgExceptAt",MSG_AT_ALL:"__kImSDK_MesssageAtALL__"}),{MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard"}),{MessageStatus:Or,Direction:qc}),yu={[yc.modify]:so.TOPIC_MESSAGE_MODIFIED,[yc.delete]:so.TOPIC_MESSAGE_DELETED,[yc.revoke]:so.TOPIC_MESSAGE_REVOKED},CE={GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3,USER_NOT_FOUND:"@TLS#NOT_FOUND"},_g=Object.assign({},CE),ba={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},Dc=Object.assign(Object.assign(Object.assign(Object.assign({},ba),{CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3}),{CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8}),{READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage"}),hE=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},{SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay"}),{ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny"}),{SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both"}),{SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both"}),{SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd"}),{SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single"}),{FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut"}),ka={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},oa={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},Tg={JOINED:1,QUITTED:2,KICKED:3,ADMIN_SET:4,ADMIN_CANCELED:5,GROUP_PROFILE_UPDATED:6,GROUP_MEMBER_PROFILE_UPDATED:7,TOPIC_PROFILE_UPDATED:8},sI=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ka),{GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom"}),{GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11}),{JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval"}),{INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess"}),{GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers"}),{GROUP_ID_PREFIX:oa,GROUP_TIPS_OPERATION_TYPE:Tg}),hs={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},ko=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zg),ag),_g),Dc),hE),sI),hs),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",NET_STATE_CONNECTED:"connected"}),ua={NO_SDKAPPID:2e3,NO_TINYID:2022,NO_A2KEY:2023,USER_NOT_LOGGED_IN:2024,REPEAT_LOGIN:2025,MSG_SEND_FAIL:2100,MSG_SEND_FAIL_NOT_IN_AV:2101,MSG_SEND_GRP_WITH_TOPIC_FAIL:2115,MSG_INSTANCE_REQUIRED:2105,MSG_INVALID_CONV_TYPE:2106,MSG_REVOKE_FAIL:2110,MSG_DELETE_FAIL:2111,MSG_UNREAD_ALL_FAIL:2112,READ_RECEIPT_MSG_LIST_EMPTY:2114,CANNOT_DELETE_GRP_SYSTEM_NOTICE:2116,NOT_MY_FRIEND:2700,NETWORK_ERROR:2800,NETWORK_TIMEOUT:2801,NO_NETWORK:2805,UNCAUGHT_ERROR:2903,INVALID_OPERATION:2905,SDK_IS_NOT_READY:2999,LOGGING_IN:3e3,LOGIN_FAILED:3001,KICKED_OUT_MULT_DEVICE:3002,KICKED_OUT_MULT_ACCOUNT:3003,KICKED_OUT_USERSIG_EXPIRED:3004,LOGGED_OUT:3005,KICKED_OUT_REST_API:3006,NO_USE:3122,OPTIONS_IS_EMPTY:3153,MSG_A2KEY_EXPIRED:20002,ACCOUNT_A2KEY_EXPIRED:70001,HELLO_ANSWER_KICKED_OUT:1002,OPEN_SERVICE_OVERLOAD_ERROR:60022},sr={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3",NODE:"4"},Pt={SYNC_SERVER_INFO_AFTER_RE_ONLINE:"sync-server-info-after-re-online",SYNC_SERVER_INFO_AFTER_LOGIN:"sync-server-info-after-login",RECEIVE_C2C_NEW_MESSAGE:"receive-c2c-new-message",RECEIVE_GROUP_NEW_MESSAGE:"receive-group-new-message",RECEIVE_GROUP_TIPS_NOTIFICATION:"receive-group-tips-notification"},Ht={USER_STATUS_UPDATE:"user-status-update",CONVERSATION_RECOVER:"conversation-recover",HISTORY_MESSAGE_RECOVER:"history-message-recover",BLACKLIST_RECOVER:"blacklist-recover",FRIEND_RECOVER:"friend-recover",GROUP_ATTRIBUTE_CACHE_CLEAR:"group-attribute-cache-clear",UNREAD_MESSAGE_RECOVER:"unread-message-recover",HANDLE_NEW_MESSAGE:"handle-new-message",HANDLE_CONVERSATION_PROFILE_UPDATED:"handle-conversation-profile-updated",COMMERCIAL_CONFIG_UPDATE:"commercial-config-update",UNREAD_MESSAGE_SYNC:"unread-message-sync",FRIEND_AND_BLACKLIST_SYNC:"friend-and-blacklist-sync",SIGNALING_MESSAGE_RECOVER:"signaling-message-recover",GROUP_LIST_SYNC:"group-list-sync",CONVERSATION_LIST_SYNC:"conversation-list-sync",USER_PROFILE_SYNC:"user-profile-sync",CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED:"conversation-update-after-unread-sync-finished",CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED:"conversation-update-after-group-list-sync-finished",HANDLE_C2C_NEW_MESSAGE:"handle-c2c-new-message",HANDLE_GROUP_NEW_MESSAGE:"handle-group-new-message",CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE:"create-or-update-conversation-by-receive-new-message",HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD:"handle-group-tips-from-sync-unread",HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD:"handle-c2c-revoked-message-from-sync-unread",GROUP_REVOKED_NOTICE_RECOVER:"group-revoked-notice-recover",CLOUD_CONFIG_SYNC:"cloud-config-sync",UPDATE_GROUP_NEXT_SEQUENCE:"update-group-next-sequence",EMIT_C2C_MESSAGE_EVENT:"emit-c2c-message-event",EMIT_GROUP_MESSAGE_EVENT:"emit-group-message-event",CONVERSATION_GROUP_LIST_SYNC:"conversation-group-list-sync",CONVERSATION_GROUP_UPDATE:"conversation-group-update",UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED:"update-topic-after-unread-sync-finished",UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE:"update-topic-by-received-new-message",TOPIC_REQUEST_INFO_RESET:"topic-request-info-reset",QUALITY_REPORT:"quality-report",GROUP_TIPS_RECOVER:"group-tips-recover",HANDLE_GROUP_TIPS_NOTIFICATION:"handle-group-tips-notification",C2C_HISTORY_MESSAGE_RECOVER:"c2c-history-message-recover",FRIEND_APPLICATION_LIST_RECOVER:"friend-application-list-recover",EMIT_GROUP_TIPS_EVENT:"emit-group-tips-event",STREAM_MESSAGE_RECOVER:"stream-message-recover"},Ng={[Pt.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:Ht.USER_STATUS_UPDATE},{stepId:Ht.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:Ht.UNREAD_MESSAGE_SYNC,dependency:Ht.C2C_HISTORY_MESSAGE_RECOVER},{stepId:Ht.CONVERSATION_RECOVER},{stepId:Ht.HISTORY_MESSAGE_RECOVER,dependency:Ht.CONVERSATION_RECOVER},{stepId:Ht.BLACKLIST_RECOVER},{stepId:Ht.FRIEND_RECOVER},{stepId:Ht.FRIEND_APPLICATION_LIST_RECOVER},{stepId:Ht.GROUP_REVOKED_NOTICE_RECOVER,dependency:Ht.HISTORY_MESSAGE_RECOVER},{stepId:Ht.GROUP_TIPS_RECOVER,dependency:Ht.HISTORY_MESSAGE_RECOVER},{stepId:Ht.TOPIC_REQUEST_INFO_RESET},{stepId:Ht.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:Ht.UNREAD_MESSAGE_SYNC},{stepId:Ht.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:Ht.UNREAD_MESSAGE_SYNC},{stepId:Ht.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ht.UNREAD_MESSAGE_SYNC,Ht.CONVERSATION_RECOVER]},{stepId:Ht.EMIT_C2C_MESSAGE_EVENT,dependency:[Ht.UNREAD_MESSAGE_SYNC,Ht.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:Ht.C2C_HISTORY_MESSAGE_RECOVER,dependency:Ht.CONVERSATION_RECOVER},{stepId:Ht.STREAM_MESSAGE_RECOVER}],[Pt.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:Ht.COMMERCIAL_CONFIG_UPDATE},{stepId:Ht.CLOUD_CONFIG_SYNC},{stepId:Ht.USER_PROFILE_SYNC},{stepId:Ht.UNREAD_MESSAGE_SYNC},{stepId:Ht.FRIEND_AND_BLACKLIST_SYNC},{stepId:Ht.GROUP_LIST_SYNC},{stepId:Ht.CONVERSATION_LIST_SYNC},{stepId:Ht.SIGNALING_MESSAGE_RECOVER,dependency:Ht.UNREAD_MESSAGE_SYNC},{stepId:Ht.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ht.UNREAD_MESSAGE_SYNC]},{stepId:Ht.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ht.UNREAD_MESSAGE_SYNC,Ht.CONVERSATION_LIST_SYNC]},{stepId:Ht.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[Ht.GROUP_LIST_SYNC,Ht.CONVERSATION_LIST_SYNC]},{stepId:Ht.CONVERSATION_GROUP_LIST_SYNC},{stepId:Ht.CONVERSATION_GROUP_UPDATE,dependency:[Ht.CONVERSATION_LIST_SYNC,Ht.CONVERSATION_GROUP_LIST_SYNC]},{stepId:Ht.QUALITY_REPORT}],[Pt.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:Ht.HANDLE_C2C_NEW_MESSAGE},{stepId:Ht.UNREAD_MESSAGE_SYNC},{stepId:Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ht.HANDLE_C2C_NEW_MESSAGE},{stepId:Ht.EMIT_C2C_MESSAGE_EVENT,dependency:[Ht.HANDLE_C2C_NEW_MESSAGE,Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:Ht.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ht.UNREAD_MESSAGE_SYNC]}],[Pt.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:Ht.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ht.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ht.UPDATE_GROUP_NEXT_SEQUENCE,dependency:Ht.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ht.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:Ht.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ht.EMIT_GROUP_MESSAGE_EVENT,dependency:[Ht.HANDLE_GROUP_NEW_MESSAGE,Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[Pt.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:Ht.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ht.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:Ht.EMIT_GROUP_TIPS_EVENT,dependency:[Ht.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,Ht.HANDLE_GROUP_TIPS_NOTIFICATION],skipIfDependencyMissing:!1}]},nI={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},nr={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},PI=["login","getMyProfile","getUserProfile","updateMyProfile","setSelfStatus","getUserStatus","subscribeUserStatus","unsubscribeUserStatus","modifyMessage","deleteGroupMember","dismissGroup","getGroupMemberList","getGroupOnlineMemberCount","joinGroup","markGroupMemberList","quitGroup","searchCloudMessages","searchCloudGroups","searchCloudGroupMembers","searchCloudUsers","getMyFollowingList","getMyFollowersList","getMutualFollowersList","followUser","unfollowUser","getUserFollowInfo","checkFollowType","getFriendProfile","addFriend","deleteFriend","updateFriend","checkFriend","setFriendApplicationRead","createFriendGroup","deleteFriendGroup","addToFriendGroup","removeFromFriendGroup","renameFriendGroup","changeGroupOwner","createGroup","dismissGroup","getGroupList","getGroupOnlineMemberCount","getGroupProfile","searchGroupByID","updateGroupProfile","handleGroupApplication","deleteGroupAttributes","getGroupAttributes","initGroupAttributes","setGroupAttributes","addGroupMember","deleteGroupMember","getGroupMemberList","getGroupMemberProfile","setGroupMemberMuteTime","setGroupMemberNameCard","setGroupMemberRole","deleteMessage","revokeMessage","setMessageExtensions","getMessageExtensions","deleteMessageExtensions","getMessageList","addMessageReaction","removeMessageReaction","clearHistoryMessage","sendMessageReadReceipt","getMessageReadReceiptList","getGroupMessageReadMemberList","createMergerMessage","invite","accept","cancel","reject","modifyInvitation","deleteConversation","pinConversation","setMessageRead","setAllMessageRead","getConversationList","getTotalUnreadMessageCount","renameConversationGroup","deleteConversationGroup","markConversation","setConversationCustomData","deleteConversationsFromGroup","addConversationsToGroup","createConversationGroup"];var Wa=Object.freeze({__proto__:null,ERROR_CODE:ua,InnerEvent:so,NEED_LOG_API:PI,OuterConstant:ko,OuterEvent:yr,PUSH:hs,QUALITY_METRICS:nI,SDK_EDITION:sr,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:nr,SignalingEvent:Hc,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Ng,WORKFLOW_NAME:Pt,WORKFLOW_STEP:Ht}),sa,un,Sn;(function(s){s[s.USER_INITIATED=0]="USER_INITIATED",s[s.KICKED_OUT=1]="KICKED_OUT"})(sa||(sa={})),function(s){s[s.multipleAccount=1]="multipleAccount",s[s.multipleDevice=2]="multipleDevice",s[s.restApi=3]="restApi"}(un||(un={})),function(s){s[s.multipleDevice=3002]="multipleDevice",s[s.multipleAccount=3003]="multipleAccount",s[s.usersigExpired=70001]="usersigExpired",s[s.restApi=20002]="restApi"}(Sn||(Sn={}));const Du={[un.multipleAccount]:"multipleAccount",[un.multipleDevice]:"multipleDevice",[un.restApi]:"REST_API_Kick",[Sn.multipleAccount]:"multipleAccount",[Sn.multipleDevice]:"multipleDevice",[Sn.restApi]:"REST_API_Kick",[Sn.usersigExpired]:"userSigExpired"},Gg="login_online_presence_task",{ERROR:La,DESTROY:Kc,FORCE_OFFLINE:xI}=so,{KICKED_OUT_MULT_ACCOUNT:BE,KICKED_OUT_MULT_DEVICE:rI,KICKED_OUT_REST_API:Su,ACCOUNT_A2KEY_EXPIRED:Ml,MSG_A2KEY_EXPIRED:Sc}=ua;class Mu{init(){const{notificationCenter:n}=me;n.subscribeInnerEvent(xI,this._handleForceOfflineFromServerPush,this),n.subscribeInnerEvent(La,Sc,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(La,Ml,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(La,BE,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(La,rI,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(La,Su,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Kc,this._dispose,this)}_handleForceOfflineFromServerPush(n){var g;if(((g=me.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)===!0){const{EventArray:I=[]}=n?.body||{};this._extractKickedOutMessages(I).forEach(E=>{const{KickoutMsgNotify:{KickType:m,NewInstInfo:D,Instid:M}}=E;this._isCurrentInstanceKickedOut(M)&&this._processKickedOutReasonInfo({kickedOutReasonCode:m,newInstanceInfo:D})})}}_extractKickedOutMessages(n){return n.reduce((g,I)=>[...g,...I.C2cNotifyMsgArray||[]],[]).filter(g=>{var I;return this._isKickedOut((I=g?.KickoutMsgNotify)===null||I===void 0?void 0:I.KickType)})}_handleForceOfflineFromResponse(n){const{errorCode:g}=n;this._processKickedOutReasonInfo({kickedOutReasonCode:g})}_processKickedOutReasonInfo(n){return mA(this,void 0,void 0,function*(){const{kickedOutReasonCode:g}=n,{ssoLog:I,utils:{safeStringify:E}}=me;try{this._logKickedOutEvent(n),this._shouldLogoutAfterKickedOut(g)?yield me.login.loginAction.logout(sa.KICKED_OUT):me.login.loginAction.handleLogoutCompleted()}catch(m){I.debug("_processKickedOutReasonInfo",` fail ${E(m)}`)}finally{me.notificationCenter.emitOuterEvent(yr.KICKED_OUT,{data:{type:Du[g]},name:yr.KICKED_OUT})}})}_logKickedOutEvent(n){const{kickedOutReasonCode:g,newInstanceInfo:I={}}=n,E=`type:${Du[g]} newInstanceInfo: ${JSON.stringify(I)}`;me.ssoLog.warn("kickedOut",E)}_isKickedOut(n){return[un.multipleAccount,un.multipleDevice,un.restApi].includes(n)}_isChatLoginEvent(n){const{requestHead:g}=n||{};return g?.idtype!==1}_shouldLogoutAfterKickedOut(n){return![Sn.usersigExpired,un.restApi].includes(n)}_isCurrentInstanceKickedOut(n){const{isLoggedIn:g,statusInstanceId:I}=me.store.get("login")||{};return g===!0&&n===I}_dispose(){const{notificationCenter:n}=me;n.unSubscribeInnerEvent(xI,this._handleForceOfflineFromServerPush,this),n.unSubscribeInnerEvent(La,Ml,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(La,Sc,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(La,BE,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(La,rI,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(La,Su,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Kc,this._dispose,this)}}function vu(s){return mA(this,void 0,void 0,function*(){const n="im_open_status.wslogin",g=me.common.generateProtocolData({servcmd:n,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:s}}),I=`${g.head.seq}${n}`,E=yield me.channel.sendPacket(g,{timeout:9e4,requestId:I});if(E){const{HelloInterval:m,InstId:D,TinyId:M,TimeStamp:T,CustomStatus:P,PurchaseBits:W,A2Key:iA,RichMsgAuthKey:EA,ErrorCode:RA,ErrorInfo:kA,ActionStatus:xA}=E;return{helloInterval:m,instanceID:D,tinyID:M,timeStamp:T,customStatus:P,purchaseBits:W,a2Key:iA,authKey:EA,errorCode:RA,errorInfo:kA,actionStatus:xA}}})}function vl(){const{store:s}=me;return la(s.get("instance").sdkAppId)!==ct.CHINA}function rs(s){var n;try{const g=Zi.getStorage("errorMessage");if(!s||!g)return"";const I=((n=JSON.parse(g))===null||n===void 0?void 0:n.errorMessage)||{},{code:E,replacement1:m="",replacement2:D=""}=s;if(!E)return"";const M=vl()?`${E}_en`:`${E}_cn`;let T=I[I[M]?M:E]||"";return T&&(m&&(T=T.replace("$replacement1",m)),D&&(T=T.replace("$replacement2",D))),T}catch(g){return console.warn("Error parsing stored error messages:",g),""}}class gs extends Error{constructor(n={}){n.code=n.code||n.errorCode;let{functionName:g="Unknown",code:I,message:E="",data:m="",moreMessage:D="",errorMessage:M=""}=n;M=(I?rs(n):"")||M||E;let T=I?`${g} failed. error: {"message": ${M}, "code": ${I}}`:`${g} failed. error: {"message": ${M}}`;T=`${T} ${D}`,super(),this.code=I,this.errorCode=I,this.errorMessage=M,this.message=T,this.data=m}}function rd(s,n){var g;if(s&&((g=me.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)!==!0)throw new gs({code:ua.USER_NOT_LOGGED_IN,functionName:n})}function aI(s,n,g){if(Array.isArray(s))for(let I=0;I{return P===(W=I,Object.prototype.toString.call(W).match(/^\[object (.*)\]$/)[1].toLowerCase());var W})){for(let W=0;W{const{interceptor:E,context:m}=I;E.apply(m,[g])})}(s)}function Mc(s,n){QE.push({interceptor:s,context:n})}function jc(s){const{params:n,auth:g}=s;n&&typeof n=="object"&&Object.assign(Rl,n),g&&typeof g=="object"&&Object.assign(ad,g)}function tn(s){return me.store.get("commercialConfig").get(s)}class ws{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(n,g)=>{const I=Date.now();g?(this._stepStartTimes.set(`${n}-${g}`,I),me.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} started at ${new Date(I).toISOString()}`)):(this._workflowStartTimes.set(n,I),me.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] started at ${new Date(I).toISOString()}`))},success:(n,g)=>{const I=Date.now();if(g){const E=this._stepStartTimes.get(`${n}-${g}`),m=E?I-E:0;this._stepStartTimes.delete(`${n}-${g}`),me.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} completed successfully at ${new Date(I).toISOString()} (${m}ms)`)}else{const E=this._workflowStartTimes.get(n),m=E?I-E:0;this._workflowStartTimes.delete(n),me.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] completed successfully at ${new Date(I).toISOString()} (${m}ms)`)}},error:(n,g,I)=>{const{ssoLog:E,utils:{safeStringify:m}}=me,D=Date.now();if(g){const M=this._stepStartTimes.get(`${n}-${g}`),T=M?D-M:0;this._stepStartTimes.delete(`${n}-${g}`),E.error("_executeWorkflowStep",`[Workflow ${n}] Step ${g} failed at ${new Date(D).toISOString()} (${T}ms) ${m(I)}`,{error:I})}else{const M=this._workflowStartTimes.get(n),T=M?D-M:0;this._workflowStartTimes.delete(n),E.error("_executeWorkflowStep",`[Workflow ${n}] failed at ${new Date(D).toISOString()} (${T}ms) ${m(I)}`,{error:I})}}}}static getInstance(){return ws._instance||(ws._instance=new ws),ws._instance}static setInstance(n){ws._instance=n}init(){this._initializeWorkflows()}registerWorkflowStep(n,g,I,E){if(!this._handlers.has(n))return void me.ssoLog.debug("registerWorkflowStep",`Workflow '${n}' not defined in core`);if(!Ng[n].find(D=>D.stepId===g))return void me.ssoLog.debug("registerWorkflowStep",`Step '${g}' not defined in workflow '${n}'`);const m=this._handlers.get(n);m.has(g)||m.set(g,E?I.bind(E):I)}executeWorkflow(n,g){return mA(this,void 0,void 0,function*(){if(!this._validateWorkflow(n))return;me.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Started execution at ${new Date().toISOString()}`);const I=Ng[n],E={},m={cancelled:!1};this._activeWorkflows.set(n,{cancelToken:m});try{const D=new Map;I.forEach(T=>{D.set(T.stepId,T)});const M={workflowName:n,pendingSteps:new Set(I.map(T=>T.stepId)),completedSteps:new Set,runningSteps:new Set,stepMap:D,stepResults:E,data:g,cancelToken:m};yield new Promise((T,P)=>{const W=()=>{if(m.cancelled)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(iA=>!M.runningSteps.has(iA)).forEach(iA=>{M.completedSteps.has(iA)||M.runningSteps.has(iA)||this._executeWorkflowStep(iA,M,{onComplete:()=>{if(M.pendingSteps.size===0)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(EA=>!M.runningSteps.has(EA)).length===0&&M.runningSteps.size===0&&(me.ssoLog.debug("executeWorkflow",`Workflow ${n} completed with some steps skipped due to dependency failures`),T())},onError:P,onStepComplete:W})})};W()}),me.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Completed execution at ${new Date().toISOString()}`)}catch(D){me.ssoLog.error("executeWorkflow",`[Workflow ${n}] Failed execution at ${new Date().toISOString()}`,{error:D})}finally{this._activeWorkflows.delete(n)}})}_executeWorkflowStep(n,g,I){return mA(this,void 0,void 0,function*(){const{workflowName:E,runningSteps:m,stepMap:D,stepResults:M,data:T}=g;m.add(n),this._logWorkflowExecution(E,n,"start");try{const P=D.get(n);let W=null;P?.dependency&&(l(P.dependency)?W=M[P.dependency]:Array.isArray(P.dependency)&&(W={},P.dependency.forEach(EA=>{W[EA]=M[EA]})));const iA=this._handlers.get(E).get(n);if(iA){const EA=yield Promise.resolve(iA({data:T,result:W}));M[n]=EA,this._logWorkflowExecution(E,n,"success")}g.completedSteps.add(n)}catch(P){const W=`[Workflow].${E}.${n}`,{errorCode:iA,errorInfo:EA=`${W} failed`}=P||{},RA=new gs({functionName:W,code:iA,message:EA});me.ssoLog.error(W,EA,{error:RA}),this._logWorkflowExecution(E,n,"error",P),I.onError(P)}finally{m.delete(n),g.pendingSteps.delete(n),I.onStepComplete(),I.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Ng).forEach(n=>{this._handlers.has(n)||this._handlers.set(n,new Map)})}_cancelWorkFlow(n){const g=this._activeWorkflows.get(n);if(!g)return;const{cancelToken:I}=g;I.cancelled=!0,this._activeWorkflows.delete(n)}_cancelAllWorkflows(){Object.keys(Ng).forEach(n=>{this._cancelWorkFlow(n)})}_validateWorkflow(n){return Ng[n]?!!this._handlers.get(n):!1}_getExecutableSteps(n){const{pendingSteps:g,completedSteps:I,stepMap:E,workflowName:m}=n;return Array.from(g).filter(D=>{const M=E.get(D)||{},{dependency:T,skipIfDependencyMissing:P=!0}=M;if(!T)return!0;if(l(T))return this._isStepRegistered({workflowName:m,stepId:T})?I.has(T):!P;if(B(T)){if(T.filter(W=>!this._isStepRegistered({workflowName:m,stepId:W})).length>0&&P)return!1;for(const W of T)if(!I.has(W))return!1;return!0}return!1})}_isStepRegistered(n){var g;const{workflowName:I,stepId:E}=n;return(g=this._handlers.get(I))===null||g===void 0?void 0:g.has(E)}_logWorkflowExecution(n,g,I,E){this._logHandlers[I](n,g)}}const Ea=new Map,zr=({type:s,groupID:n})=>s===ko.GRP_COMMUNITY||`${n}`.startsWith(oa.COMMUNITY)&&!`${n}`.includes(oa.TOPIC),Wc=(s="")=>{const n=s.startsWith("GROUP")?s.replace("GROUP",""):s;return n.startsWith(oa.COMMUNITY)&&`${n}`.includes(oa.TOPIC)},gd="openim",Zg="million_group_open_http_svc";function gg(s){return mA(this,void 0,void 0,function*(){const{servcmd:n,data:g}=function(m){const{data:D}=m;return pE(D)||Xg(D)}(s)?function(m){let{servcmd:D,data:M}=m;return Xg(M)?function(T){const{servcmd:P,data:W}=T;let{GroupId:iA=""}=W;const EA=iA;return[iA]=EA.split(oa.TOPIC),{servcmd:qn(P),data:Object.assign(Object.assign({},W),{GroupId:iA,TopicId:EA})}}(m):(pE(M)&&(D=qn(D)),{servcmd:D,data:M})}(s):s,I=me.common.generateProtocolData({servcmd:n,data:g}),E=`${I.head.seq}${n}`;return me.channel.sendPacket(I,{requestId:E,timeout:s.timeout})})}function pE(s){const{Type:n,GroupId:g,GroupIdList:I=[]}=s,E=g||I[0]||"";return zr({type:n,groupID:E})}function Xg(s){const{GroupId:n=""}=s;return Wc(n)}function qn(s){if(s.includes(gd))return s;const n=s.split(".")[1];return`${Zg}.${n}`}function Ar(){var s;return(s=me.store.get("login"))===null||s===void 0?void 0:s.userId}const Ua=s=>B(s)||f(s),cd=(s,n,g,I)=>{if(!Ua(s)||!Ua(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M{if(r(n))return"";if(s===ko.MSG_TEXT)return n.text||"";const g=YI[s];return g?Ru(g):""},Zc=[{cmd:"ws_get_user_status",interval:5,count:20},{cmd:"ws_status_subscribe",interval:5,count:20},{cmd:"ws_status_unsubscribe",interval:5,count:20},{cmd:"get_group_self_member_info",interval:5,count:20},{cmd:"modify_group_base_info",interval:1,count:8},{cmd:"get_pendency",interval:1,count:15},{cmd:"set_group_attr",interval:5,count:10},{cmd:"modify_group_attr",interval:5,count:10},{cmd:"delete_group_attr",interval:5,count:10},{cmd:"clear_group_attr",interval:5,count:10},{cmd:"get_group_attr",interval:5,count:20},{cmd:"update_group_counter",interval:5,count:20},{cmd:"get_group_counter",interval:5,count:20},{cmd:"get_topic",interval:1,count:10},{cmd:"read_all_unread_msg",interval:1,count:1},{cmd:"query",interval:5,count:20}],VI="im_sdk_config_mgr.fetch_config",cI="im_sdk_config_mgr.push_configv2",Xc="cloud-config",$c=2996,Ma=new class{init(s){this.core=s}};function bg(s){return mA(this,void 0,void 0,function*(){const{sdkAppId:n}=Ma.core.store.get("instance")||{},g=Ma.core.helper.generateProtocolData({servcmd:VI,data:{uint32_sdkappid:n,uint64_version:s}}),I=`${g.head.seq}${VI}`;return Ma.core.channel.sendPacket(g,{requestId:I})})}var ys=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:I,constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},channel:D}=s;n.subscribeInnerEvent(cI,this._handlePushedConfig,this),I.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),I.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(Zc),D.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(s){return mA(this,void 0,void 0,function*(){var n;const g={code:0,data:""};return s&&(g.data=((n=this._core.store.get("cloudConfig"))===null||n===void 0?void 0:n[s])||""),g})}checkMethodCallOverLimit(s){if(!this._cmdFrequencyLimitMap.has(s))return;if(!this._methodCallFrequencyMap.has(s))return void this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});const{count:n,interval:g}=this._cmdFrequencyLimitMap.get(s);let{startTime:I,methodCallCounter:E}=this._methodCallFrequencyMap.get(s);if(Date.now()-I>1e3*g)this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});else if(E+=1,this._methodCallFrequencyMap.set(s,{startTime:I,methodCallCounter:E}),E>n)throw new this._core.helper.ChatError({code:$c,replacement1:s})}_handlePushedConfig(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.info("_handlePushedConfig",g(s)),yield this._updateCloudConfig(s)})}_handleLoginSuccess(){return mA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{if(this._canFetch()){const g=yield bg(this._version);s.info("_fetchCloudConfigIfLogin",n(g)),yield this._updateCloudConfig(g)}this._core.helper.taskScheduler.addTask({id:Xc,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(g){s.debug("_fetchCloudConfigIfLogin",n(g))}})}_fetchCloudConfigIfReady(){return mA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;if(this._canFetch())try{const g=yield bg(this._version);s.info("_fetchCloudConfigIfReady",n(g)),yield this._updateCloudConfig(g)}catch(g){s.error("_fetchCloudConfigIfReady",n(g))}})}_updateCloudConfig(s){return mA(this,void 0,void 0,function*(){const n=this._parseCloudConfig(s);n&&(this._core.store.set("cloudConfig",n),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,n),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config:n}}))})}_canFetch(){const{isLoggedIn:s}=this._core.store.get("login")||{};return s&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(s){const{int32_error_code:n,str_error_message:g,str_json_config:I,uint32_expired_time:E,uint32_sdkappid:m,uint64_version:D}=s;let M=null;if(n===0){if(this._version!==D)try{M=JSON.parse(I),this._version=D}catch{}this._expirationTime=Date.now()+1e3*E}else this._expirationTime=n===void 0?Date.now()+36e5:Date.now()+12e4;return M}_parseCmdFreqLimit(){return mA(this,void 0,void 0,function*(){var s;let n=(s=yield this.getServerConfig("cmd_frequency_limit"))===null||s===void 0?void 0:s.data;const{isEmpty:g}=this._core.utils;if(!g(n))try{n=JSON.parse(n),this._updateCmdFreqLimitMap(n)}catch(I){console.warn(I)}})}_updateCmdFreqLimitMap(s){s.forEach(n=>{this._cmdFrequencyLimitMap.set(n.cmd,{interval:n.interval,count:n.count})})}_reset(){this._core.helper.taskScheduler.removeTask(Xc),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Zc),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(cI,this._handlePushedConfig,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}};class Kn{constructor(n=0,g=0){this.high=n,this.low=g}equal(n){return n!==null&&this.low===n.low&&this.high===n.high}toString(){const n=Number(this.high).toString(16);let g=Number(this.low).toString(16);if(g.length<8){let I=8-g.length;for(;I;)g=`0${g}`,I--}return n+g}}const vc={SEARCH_GRP_SNS:new Kn(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new Kn(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new Kn(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new Kn(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new Kn(0,Math.pow(2,6)).toString(),USER_STATUS:new Kn(0,Math.pow(2,7)).toString(),CONV_MARK:new Kn(0,Math.pow(2,9)).toString(),CONV_GROUP:new Kn(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new Kn(0,Math.pow(2,11)).toString(),MSG_EXT:new Kn(0,Math.pow(2,13)).toString(),GRP_COUNTER:new Kn(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new Kn(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new Kn(Math.pow(2,7)).toString(),PLUGIN_CS:new Kn(Math.pow(2,8)).toString(),PLUGIN_PUSH:new Kn(Math.pow(2,9)).toString(),PLUGIN_BOT:new Kn(Math.pow(2,10)).toString(),MSG_REACTION:new Kn(Math.pow(2,16)).toString(),FOLLOW:new Kn(Math.pow(2,20)).toString()},JI="CommercialConfig",HI="commercial-config";var mE=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}install(s){this._core=s;const{helper:n,notificationCenter:g,constants:{WORKFLOW_NAME:I,WORKFLOW_STEP:E,InnerEvent:m}}=s;g.subscribeInnerEvent(m.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),g.subscribeInnerEvent(m.LOGOUT,this._handleLogout,this),g.subscribeInnerEvent(m.DESTROY,this._dispose,this),n.registerWorkflowStep(I.SYNC_SERVER_INFO_AFTER_LOGIN,E.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),s.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this),s.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(s){return mA(this,void 0,void 0,function*(){const n=parseInt(s,10).toString(2),{length:g}=n;let I,E=!0;for(let m=g-1,D=0;m>=0;m--,D++)if(n.charAt(m)==="1"&&(I=D<32?new Kn(0,2**D).toString():new Kn(2**(D-32),0).toString(),!this._featureMap.get(I))){E=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${JI}.isFeatureEnabled decimalNumber:${s} key:${I} ret:${E}`),{code:0,data:{enabled:E}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return mA(this,void 0,void 0,function*(){var s;const{ssoLog:n,utils:{safeStringify:g},common:{buildAndSendPacket:I}}=this._core;try{this._isFetching=!0;const E=yield I({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:(s=this._core.store.get("instance"))===null||s===void 0?void 0:s.sdkAppId}});E&&(this._parseCommercialConfig(E),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(E){n.error("_fetchAndParseCommercialConfig",g(E))}finally{this._isFetching=!1}})}_syncCommercialConfig(s){return mA(this,void 0,void 0,function*(){const{purchaseBits:n}=s?.data||{};n&&(this._parsePurchaseBits(n),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:HI,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})})}_canFetch(){var s;const n=(s=this._core.store.get("login"))===null||s===void 0?void 0:s.isLoggedIn,g=Date.now()>=this._expirationTime;return n&&!this._isFetching&&g}_handlePushedConfig(s){s?.body&&(this._parseCommercialConfig(s.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return mA(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(s){const{ssoLog:n}=this._core;if(typeof s!="object")return;const{int32_error_code:g,str_error_message:I,str_purchase_bits:E,uint32_expired_time:m}=s;g===0?(this._parsePurchaseBits(E),this._expirationTime=Date.now()+1e3*m):g===void 0?(n.warn("_parseCommercialConfig",`${JI}._parseCommercialConfig failed. Invalid message format:`,s),this._expirationTime=Date.now()+36e5):(n.warn("_parseCommercialConfig",`${JI}._parseCommercialConfig errorCode:${g} errorMessage:${I}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(s){return s&&typeof s=="string"&&s.length>=1&&s.length<=64&&/[01]{1,64}/.test(s)}_parsePurchaseBits(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(this._isValidPurchaseBits(s)){this._purchaseBits=s,this._featureMap.clear(),this._methodKeyMap.clear();let I=null;for(let E=s.length-1,m=0;E>=0;E--,m++)if(I=m<32?new Kn(0,2**m).toString():new Kn(2**(m-32),0).toString(),s[E]==="1"){this._featureMap.set(I,!0);const D=this._getKeyByValue(vc,I);D&&this._methodKeyMap.set(D,!0)}else{this._featureMap.set(I,!1);const D=this._getKeyByValue(vc,I);D&&this._methodKeyMap.set(D,!1)}}else n.warn("_parsePurchaseBits",`${JI}.parsePurchaseBits invalid purchases:${g(s)}`)}_getKeyByValue(s,n){const g=Object.entries(s).find(([I,E])=>E===n);return g?g[0]:void 0}_handleLogout(){this._reset()}_dispose(){this._reset(),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._core.helper.taskScheduler.removeTask(HI),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}},oh=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,channel:I}=this._core;n.subscribeInnerEvent(g.OVERLOAD_PUSH,this._handleOverLoadPush,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),I.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(s){if(!this._serverOverloadInfoMap.has(s))return;const{overloadStartTimestamp:n,delaySeconds:g}=this._serverOverloadInfoMap.get(s);if(Date.now()-n<=1e3*g)throw new this._core.helper.ChatError({functionName:s,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(s)}_handleOverLoadPush(s){const{OverLoadServCmd:n,DelaySecs:g}=s;this._serverOverloadInfoMap.set(n,{overloadStartTimestamp:Date.now(),delaySeconds:g})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.OVERLOAD_PUSH,this._handleOverLoadPush,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}},nC=new class{constructor(){this.name="ConfigCenter"}install(s){Ma.init(s),ys.install(s),mE.install(s),oh.install(s)}},sh=new class{constructor(){this.name="ErrorMessage",this._core=null}install(s){return mA(this,void 0,void 0,function*(){if(this._core=s,this._canFetch()){const n=yield this._fetchErrorMessage();if(!n)return;const g=this._parseResponse(n);this._saveErrorMessage(g)}})}_canFetch(){const s=this._core.store.getStorage("errorMessage");return!s||this._isExpired(s)}_saveErrorMessage(s){this._core.store.setStorage("errorMessage",{errorMessage:s,errorMessageSavedTime:new Date().getTime()})}_fetchErrorMessage(){return mA(this,void 0,void 0,function*(){try{return yield this._core.helper.httpRequest({method:"GET",url:"https://web.sdk.qcloud.com/im/download/error-message/v3/0.0.6/tim-error-message.txt"})}catch(s){console.error(s)}})}_isExpired(s){if(!s)return!0;const{errorMessageSavedTime:n}=s;return n&&new Date().getTime()-n>=6048e5}_parseResponse(s){if(typeof s=="string"){const n=s.split(`;
-`),g={},I=new RegExp(/'/g);for(let E=0;E{var JA,re,ne;const _i=function(Ti,kt){const{From_Account:Ni,From_AccountHeadurl:cs,From_AccountNick:Se,IsNeedReadReceipt:Bt,MsgBody:UA,MsgClientTime:ii,MsgRandom:_s,MsgSeq:Gi,MsgTimeStamp:Lr,SendMsgControl:xi,SupportMessageExtension:ar,To_Account:wt,TinyId:_t,MsgCheckResult:Wu,CloudCustomData:ln,IsPeerRead:ho,MsgFlagBits:ll,MsgVersion:DC,EventArray:Rr}=Ti;return{from:Ni,avatar:cs,nick:Se,needReadReceipt:Bt===1,readReceiptSentByPeer:ho,clientTime:ii,messageFlagBits:ll,random:_s,sequence:Gi,time:Lr,messageControlInfo:xi,isSupportExtension:ar,to:wt,tinyID:_t,checkResult:Wu,cloudCustomData:ln,messageVersion:DC,eventArray:Rr,elements:kt.message.messageHelper.parseServerPushMessageElement(UA)}}(OA,xA);if(!((ne=(re=(JA=OA?.EventArray)===null||JA===void 0?void 0:JA[0])===null||re===void 0?void 0:re.hasOwnProperty)===null||ne===void 0)&&ne.call(re,"C2cNotifyMsgArray"))SA.push(...function(Ti){var kt;const Ni=[];return(kt=Ti.EventArray)===null||kt===void 0||kt.forEach(cs=>{var Se,Bt;const{C2cNotifyMsgArray:UA}=cs,ii=(Bt=(Se=UA?.[0])===null||Se===void 0?void 0:Se.WithdrawC2cMsgNotify)===null||Bt===void 0?void 0:Bt.C2cWithdrawInfoArray;Array.isArray(ii)&&Ni.push(...ii)}),Ni}(OA));else{const Ti=xA.message.messageFactory.createMessage(Object.assign(Object.assign({},_i),{conversationType:"C2C",flow:"in"})),{elements:kt}=_i;Ti.setElement(kt),LA.push(Ti)}}),{unreadMessageList:LA,revokedMessageList:SA}}(T.MsgList,n);return{syncFlag:T?.SyncFlag,unreadMessageList:EA,revokedMessageList:RA,unreadCountList:P,overflowUnreadCountList:W,cookie:T?.Cookie,groupTipList:iA}}catch(T){console.warn(T)}})}var kg,no;(function(s){s[s.START_SYNC=0]="START_SYNC",s[s.SYNCING=1]="SYNCING",s[s.SYNC_COMPLETE=2]="SYNC_COMPLETE"})(kg||(kg={})),function(s){s[s.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",s[s.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(no||(no={}));var rC=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}install(s){this._core=s;const{constants:n}=s;s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.SOCKET_DISCONNECTED,this._handleDisconnect,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(s){return mA(this,void 0,void 0,function*(){const{isAfterReOnline:n=!1,isAfterNewMessageReceived:g=!1,isAfterLogin:I=!1}=s||{};let E=kg.START_SYNC;const m=[],D=[],M=[],T=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:E});){const P=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:E,syncTriggerEvent:g?no.NEW_MESSAGE_RECEIVED:no.LOGIN_SUCCESS});if(!P)break;const{unreadMessageList:W=[],revokedMessageList:iA=[],overflowUnreadCountList:EA,unreadCountList:RA,groupTipList:kA}=P;if(this._cookie=P?.cookie||"",E=P?.syncFlag,this._parseAndSaveUnreadMessageList(W),M.push(...iA),this._updateConversationUnreadOptions({unreadCountList:RA,overflowUnreadCountList:EA,conversationUpdateFieldList:m}),Array.isArray(kA)&&D.push(...kA),n){const{messages:xA}=this._handleNewMessageList(W);T.push(...xA)}}return n?{conversationUpdateFieldList:m,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D,messages:T,isUnreadC2CMessage:!0}:{conversationUpdateFieldList:m,isInstantMessage:!I,isUnreadC2CMessage:!0,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D}})}_syncUnreadDBMessageAfterLogin(){return mA(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(s){return mA(this,void 0,void 0,function*(){if(s.data.Flag===1)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})})}_updateConversationUnreadOptions(s){const{unreadCountList:n,overflowUnreadCountList:g,conversationUpdateFieldList:I}=s,{constants:{OuterConstant:{CONV_C2C:E,CONV_SYSTEM:m}}}=this._core;n?.forEach(D=>{const{From_Account:M,UnreadCount:T}=D;if(M!==m){const P=I.find(({conversationID:W})=>W===`${E}${M}`);P?P.unreadCount=T:I.push({conversationID:`${E}${M}`,unreadCount:T,type:E})}}),g?.forEach(D=>{const{From_Account:M,LastMsgTime:T}=D;M!==m&&(I.find(({conversationID:P})=>P===`${E}${M}`)||I.push({conversationID:`${E}${M}`,type:E,lastMsgTime:T}))})}_syncUnreadDBMessageAfterReOnline(){return mA(this,void 0,void 0,function*(){return this._syncUnreadMessage({isAfterReOnline:!0})})}_updateMessageProfile(s){var n;const{messageDataHandler:g}=this._core.message||{},I=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{from:E,nick:m,avatar:D,conversationID:M=""}=s;if(E!==I){const T=g.getLatestMsgSentByPeer(M);if(T){const{nick:P,avatar:W}=T;m&&D?m===P&&D===W||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!1}):(s.nick=P,s.avatar=W)}}else{const T=g.getLatestMsgSentByMe(M);!T||m===T.nick&&D===T.avatar||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!0})}}_handleNewMessageList(s){const{messageDataHandler:n}=this._core.message||{},g=new Map,I=[];return s.forEach(E=>{this._updateMessageProfile(E);let m=E.isModified===1;if(n.isMessageSentByCurrentInstance(E)?E.isModified=m:m=!1,E.isOnlineMessage())E._onlineOnlyFlag=!0,n.isMessageSentByCurrentInstance(E)||I.push(E);else if(this._shouldStoreUnreadMessage(E)){if(n.storeConversationMessage(E)){const{conversationID:D,conversationType:M,conversationSubType:T,flow:P,_isExcludedFromUnreadCount:W,_isExcludedFromLastMessage:iA}=E,EA=iA?"":E;g.has(D)?(g.get(D).lastMessage=EA,P==="in"&&(W||g.get(D).unreadCount++)):g.set(D,{conversationID:D,type:M,subType:T,unreadCount:W||P!=="in"?0:1,lastMessage:EA})}n.isMessageSentByCurrentInstance(E)&&!m||I.push(E)}}),{messages:I,conversationOptions:g}}_shouldStoreUnreadMessage(s){var n;const{conversationID:g}=s,{message:I,appStore:E,utils:{isEmpty:m}}=this._core||{},D=Array.from(((n=E.conversationStore.getConversationMap())===null||n===void 0?void 0:n.keys())||[]),M=this._getLocalLastMessageTime(g);return!I.messageDataHandler.isInMessageList(s)&&D.includes(g)&&this._localConversationIDListBeforeDisconnect.includes(g)&&!m(M)}_fetchUnreadDBMessage(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;try{n.debug("_fetchUnreadDBMessage",`unread-message-synchronizer._fetchUnreadDBMessage options:${g(s)}`);const E=yield Al(s,this._core);if(!E)return null;const{syncFlag:m,unreadMessageList:D,revokedMessageList:M,cookie:T,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}=E;return this._parseAndSaveUnreadMessageList(D),{syncFlag:m,cookie:T,unreadMessageList:D,revokedMessageList:M,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}}catch(I){console.log(I)}})}_canContinueSync({cookie:s,syncFlag:n}){var g;return n===kg.START_SYNC||n===kg.SYNCING&&!(!((g=this._core)===null||g===void 0)&&g.helper.isEmpty(s))}_parseAndSaveUnreadMessageList(s){s.forEach(n=>{const{ID:g}=n;this._unreadDBMessageMap.set(g,n)})}_handleDisconnect(){var s;const{appStore:n}=this._core;this._localConversationIDListBeforeDisconnect=Array.from(((s=n.conversationStore.getConversationMap())===null||s===void 0?void 0:s.keys())||[])}_getLocalLastMessageTime(s){const{message:n}=this._core,g=n.messageDataHandler.getLocalMessageList(s),I=g[g.length-1];return I?.time}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}},fE=new class{init(s){var n;this._core=s,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),document?.addEventListener("visibilitychange",this._visibilityChangeHandler),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var s,n;const g=document?.visibilityState==="visible";(s=this._core)===null||s===void 0||s.store.set("activityMonitor",{isActive:g}),(n=this._core)===null||n===void 0||n.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:g})}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){document?.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},yE=new class{init(s){var n;this._core=s,this._bindAppActivityEvent(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var s,n,g,I,E;const{MINI_APP_NAMESPACE:m,IN_TT_MINI_GAME:D,IN_WX_MINI_GAME:M}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};D||M?((n=m?.onShow)===null||n===void 0||n.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(g=m?.onHide)===null||g===void 0||g.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})})):((I=m?.onAppShow)===null||I===void 0||I.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(E=m?.onAppHide)===null||E===void 0||E.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},ld=new class{init(s){const{IN_MINI_APP:n,IN_WX_MINI_PLUGIN:g}=s.helper;g||(n?yE.init(s):fE.init(s))}};const DE="none",el="online";var lI=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return mA(this,void 0,void 0,function*(){navigator.onLine?this._onOnline():this._onOffline(),this._onOnlineCallback=this._onOnline.bind(this),this._onOfflineCallback=this._onOffline.bind(this),window.addEventListener("online",this._onOnlineCallback),window.addEventListener("offline",this._onOfflineCallback)})}_deactivateNetworkMonitoring(){this._onOnlineCallback!==null&&(window.removeEventListener("online",this._onOnlineCallback),this._onOnlineCallback=null),this._onOfflineCallback!==null&&(window.removeEventListener("offline",this._onOfflineCallback),this._onOfflineCallback=null)}_onNetworkStatusChange(s){var n,g;const{isConnected:I,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:I,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:I,networkType:E})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:el})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:DE})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},wu=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return mA(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:s}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),s.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(s){console.error(s)}})}_deactivateNetworkMonitoring(){if(this._mpNetworkStatusCallback!==null){const{utils:{MINI_APP_NAMESPACE:s}}=this._core;s.offNetworkStatusChange&&s.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null}}_onNetworkStatusChange(s){var n,g;const{isConnected:I,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:I,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:I,networkType:E})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},_u=new class{init(s){const{IN_MINI_APP:n}=s.utils;n?wu.init(s):lI.init(s)}},aC=new class{constructor(){this.name="SystemStateMonitor"}install(s){ld.init(s),_u.init(s)}};const Mr=new Set(["tui_room_svr.*","callkit_records_svr.*","room_engine_srv.*","room_engine_http_srv.*","room_engine_mic.*","live_engine_srv.*","live_engine_http_srv.*","live_engine_pk.*","trtc_ai_service.*","call_engine_srv.*"]),cg="tui_room_svr.*";var Rc=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=Mr}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:I}=s;n.subscribeInnerEvent(g.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),n.subscribeInnerEvent("im_open_push.msg_push",n.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),I.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),I.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(s){return mA(this,void 0,void 0,function*(){const n="transferBusinessCommand";try{const{serviceCommand:g=cg}=s||{};if(!this._isValidTransferredCommand(g))throw new this._core.helper.ChatError({code:2995,functionName:n});return{code:0,data:(yield function(E,m){return mA(this,void 0,void 0,function*(){const{helper:D,channel:M}=m,{serviceCommand:T=cg,data:P}=E||{};let W={};try{W=typeof P=="string"?JSON.parse(P):P}catch(RA){console.warn(RA)}const iA=D.generateProtocolData({servcmd:T,data:W}),EA=`${iA.head.seq}${T}`;return M.sendPacket(iA,{requestId:EA,shouldRejectOnError:!1})})}(s,this._core))||{}}}catch(g){throw console.warn(g),new this._core.helper.ChatError({code:g?.errorCode,message:g?.errorInfo,data:{},functionName:n})}})}_onCloudConfigUpdate(s={}){try{if(typeof s.rtc_cmd!="string")return;const n=JSON.parse(s.rtc_cmd);Array.isArray(n)&&(this._transferredCommands=new Set([...this._transferredCommands,...n]))}catch(n){console.log(n)}}_isValidTransferredCommand(s=""){const n=`${s?.split(".")[0]}.*`;return this._transferredCommands.has(n)}_onServerPushBusinessCommand(s){const{OuterEvent:n,notificationCenter:g}=this._core,{MsgContent:I}=s||{},{ROOM_CUSTOM_DATA_RECEIVED:E}=n;g.emitOuterEvent(E,{name:E,data:I})}_reset(){this._transferredCommands=Mr}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;this._reset(),s.unSubscribeInnerEvent(n.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),s.unSubscribeInnerEvent("im_open_push.msg_push",s.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const Tu=1,wl=2,Id=3,Zr=4,II=5,_n="TIMCustomElem",gC="C2C",tl="GROUP",ud="invite",uI="accept",Fa="cancel",cC="reject",Oa="modifyInvitation",Ir="signaling",Ed=8010,Nu="signaling-timeout";function ur(s){return s.filter(n=>{if(n.type===_n){const{cloudCustomData:g="",payload:{data:I=""}={}}=n,E=g.match(/"type":"tsignaling"/),m=I.match(/inviteID/),D=I.match(/actionType/);return E||m&&D}return!1})}function wc(s){const{data:n}=s.payload;try{return JSON.parse(n)}catch(g){return console.error(g),null}}function il(s,n){return s.toString(16).padStart(n,"0")}function Lg(s){if(s<0||s>53)throw new Error("Number of digits must be between 0 and 53");if(s<=30)return Math.floor(Math.random()*(1<0;const M=this._core.common.getCurrentUserID();return D.includes(M)}return!0}updateSignaling(s){const n=`${Ir}.updateSignaling`,{inviteID:g,inviter:I,inviteeList:E,groupID:m}=s;if(console.log(`${n} inviteID:${g} inviter:${I} groupID:${m}`),m&&this.hasSignaling(g)){const D=E[0],{inviteeList:M}=this._onlineSignalingMap.get(g);M.includes(D)&&(M.splice(M.indexOf(D),1),console.log(`${n} remove ${D}. localInviteeList.length:${M.length}`)),M.length===0&&this.removeSignaling(g)}else this.removeSignaling(g)}setSignalingListenStatus(s){this._isSignalingListening=s}getSignalingListenStatus(){return this._isSignalingListening}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._isSignalingListening=!1}_reset(){this._onlineSignalingMap.clear()}},$g=new class{init(s){this._core=s}createInviteSignaling(s){const n=this._generateInviteID(),g=this._createInviteSignalingData(Object.assign(Object.assign({},s),{inviteID:n})),{groupID:I,inviteeList:E}=g,m=I||E[0];return{signaling:this._createSignaling(g,m),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createAcceptSignaling(s){const n=this._createAcceptSignalingData(s),{groupID:g,inviter:I}=n,E=g||I;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createCancelSignaling(s){const n=this._createCancelSignalingData(s),{groupID:g,inviteeList:I}=n,E=g||I[0];return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createRejectSignaling(s){const n=this._createRejectSignalingData(s),{groupID:g,inviter:I}=n,E=g||I;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createTimeoutSignaling(s){const{isInviter:n=!1}=s,g=this._createTimeoutSignalingData(s),{groupID:I,inviteeList:E,inviter:m}=g,D=I||(n?E[0]:m);return{signaling:this._createSignaling(g,D),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(g)}}_createSignalingExtensionOptions(s){var n,g;const{data:I="",onlineUserOnly:E,inviteID:m="",offlinePushInfo:D,actionType:M}=s,T=((g=(n=Fo.getSignaling(m))===null||n===void 0?void 0:n.signaling)===null||g===void 0?void 0:g._onlineOnlyFlag)||!1;return{onlineUserOnly:E||T,offlinePushInfo:D,messageControlInfo:this._createMessageControlInfo(I,M)}}_createMessageControlInfo(s,n){const g=n===II&&!!s.match(/excludeTimeoutSignalingFromHistoryMessage/),I=!!s.match(/excludeFromHistoryMessage/)||!!s.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:g||I,excludedFromLastMessage:g||I}}_createInviteSignalingData(s){const n=`${Ir}._createInviteSignalingData`,{userID:g,timeout:I=0,groupID:E="",inviteeList:m=[]}=s,D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Tu,inviter:D,inviteeList:E?m:[g],timeout:I});return console.log(`${n} signalingData:`,M),M}_createAcceptSignalingData(s){const n=`${Ir}._createAcceptSignalingData`,{inviteID:g}=s,I=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Fo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Id,groupID:m,inviter:E,inviteeList:[I]});return console.log(`${n} signalingData:`,D),D}_createCancelSignalingData(s){const n=`${Ir}._createCancelSignalingData`,{inviteID:g}=s,I=this._core.common.getCurrentUserID(),{inviteeList:E,groupID:m}=Fo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:wl,groupID:m,inviter:I,inviteeList:E});return console.log(`${n} signalingData:`,D),D}_createRejectSignalingData(s){const n=`${Ir}._createRejectSignalingData`,{inviteID:g}=s,I=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Fo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Zr,groupID:m,inviter:E,inviteeList:[I]});return console.log(`${n} signalingData:`,D),D}_createTimeoutSignalingData(s){const n=`${Ir}._createTimeoutSignalingData`,{isInviter:g=!1,inviteID:I}=s,{inviteeList:E,inviter:m}=Fo.getSignaling(I),D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:II,inviter:m,inviteeList:g?E:[D]});return console.log(`${n} signalingData:`,M),M}_createSignaling(s,n){var g,I,E;const{groupID:m=""}=s,D={to:n,conversationType:m?tl:gC,priority:"High",payload:{data:JSON.stringify(s)}};return(E=(I=(g=this._core)===null||g===void 0?void 0:g.message)===null||I===void 0?void 0:I.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(D)}_generateInviteID(){return[il(Lg(32),8),il(Lg(16),4),il(16384|Lg(12),4),il(32768|Lg(14),4),il(Lg(48),12)].join("-")}_generateBaseSignalData(s){const{data:n="",inviteID:g="",groupID:I=""}=s;return{businessID:1,timeout:0,data:n,inviteID:g,groupID:I}}},za=new class{constructor(){this._isProcessingSignaling=!1}init(s){this._core=s,s.helper.registerApi({apiName:"invite",context:this}),s.helper.registerApi({apiName:"accept",context:this}),s.helper.registerApi({apiName:"cancel",context:this}),s.helper.registerApi({apiName:"reject",context:this}),s.helper.registerApi({apiName:"modifyInvitation",context:this}),s.helper.registerApi({apiName:"getSignalingInfo",context:this}),s.helper.registerApi({apiName:"addSignalingListener",context:this}),s.helper.registerApi({apiName:"removeSignalingListener",context:this}),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this)}invite(s){return mA(this,void 0,void 0,function*(){var n;try{this._validateBeforeInvite(s);const{signaling:g,signalingData:I,signalingExtensionOptions:E}=$g.createInviteSignaling(s),m=yield this._sendSignaling(g,E);if(m?.code===0){const{inviteID:D,timeout:M}=I;return Fo.saveSignaling(D,Object.assign(Object.assign({},I),{signaling:g})),M>0&&((n=this._core)===null||n===void 0||n.helper.taskScheduler.addOnceTask({id:`${Nu}-${D}`,intervalMs:1e3*(M+5),callback:this.handleInvitationExpiryTimer.bind(this,D)})),Object.assign(Object.assign({},m),{inviteID:D})}return m}catch(g){throw g}})}accept(s){return mA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeAccept(n),this._isProcessingSignaling=!0;const{signaling:g,signalingData:I,signalingExtensionOptions:E}=$g.createAcceptSignaling(s),m=yield this._sendSignaling(g,E);return m?.code===0?(Fo.updateSignaling(I),Object.assign(Object.assign({},m),{inviteID:n})):m}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}cancel(s){return mA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeCancel(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:I}=$g.createCancelSignaling(s),E=yield this._sendSignaling(g,I);return E?.code===0?(Fo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}reject(s){return mA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeReject(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:I}=$g.createRejectSignaling(s),E=yield this._sendSignaling(g,I);return E?.code===0?(Fo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}modifyInvitation(s){return mA(this,void 0,void 0,function*(){var n,g;const{inviteID:I,data:E}=s;let m="";try{this._validateBeforeModifyInvitation(I);const D=Fo.getSignaling(I),{signaling:M}=D,T=yo(D,["signaling"]);m=M.payload.data,T.data=E,M.payload.data=JSON.stringify(T);const P=yield(g=(n=this._core)===null||n===void 0?void 0:n.message.messageAction)===null||g===void 0?void 0:g.modifyMessage(M);return Fo.hasSignaling(I)&&Fo.saveSignaling(I,Object.assign(Object.assign({},T),{signaling:M})),P}catch(D){if(m){const{signaling:M}=Fo.getSignaling(I);M.payload.data=m}throw D}})}getSignalingInfo(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(ur([s]).length===0)return;const I=wc(s),E={businessID:I.businessID||1,inviteID:I.inviteID,groupID:I.groupID||"",inviter:I.inviter||"",inviteeList:I.inviteeList||[],data:I.data||"",actionType:I.actionType||Tu,timeout:I.timeout||0};return n.debug(`${Ir} getSignalingInfo ${g(E)}`),E}addSignalingListener(s,n,g){var I,E;s===((I=this._core)===null||I===void 0?void 0:I.SignalingEvent.NEW_INVITATION_RECEIVED)&&Fo.setSignalingListenStatus(!0),(E=this._core)===null||E===void 0||E.notificationCenter.subscribeOuterEvent(s,n,g)}removeSignalingListener(s,n,g){var I,E;s===((I=this._core)===null||I===void 0?void 0:I.SignalingEvent.NEW_INVITATION_RECEIVED)&&Fo.setSignalingListenStatus(!1),(E=this._core)===null||E===void 0||E.notificationCenter.unSubscribeOuterEvent(s,n,g)}handleInvitationExpiryTimer(s){const n=Fo.getOnlineSignalingMap(),g=this._core.common.getCurrentUserID();if(!n.has(s))return;const I=n.get(s).inviter===g;this._sendTimeoutNotice({inviteID:s,isInviter:I})}_sendSignaling(s,n){return mA(this,void 0,void 0,function*(){var g,I,E;return(E=(I=(g=this._core)===null||g===void 0?void 0:g.message)===null||I===void 0?void 0:I.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)})}_sendTimeoutNotice(s){return mA(this,void 0,void 0,function*(){var n,g,I;this._core.ssoLog.debug("_sendTimeoutNotice",`${Ir}._sendTimeoutNotice params:${JSON.stringify(s)}`);const{isInviter:E,inviteID:m}=s,{signaling:D,signalingData:M,signalingExtensionOptions:T}=$g.createTimeoutSignaling(s),P=yield this._sendSignaling(D,T);if(P?.code===0){const{data:W,groupID:iA,inviteeList:EA,inviter:RA}=M;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent((g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_TIMEOUT,{name:(I=this._core)===null||I===void 0?void 0:I.SignalingEvent.INVITATION_TIMEOUT,data:{data:W,groupID:iA,inviteID:m,inviteeList:EA,inviter:RA,isSelfTimeout:!0,message:D}}),E?Fo.removeSignaling(m):Fo.updateSignaling(M)}})}_validateInviteId(s,n){if(!Fo.hasSignaling(n))throw new this._core.helper.ChatError({functionName:s,code:Ed})}_validateProcessStatus(s){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:s,message:"processing other signaling operations"})}_validateBeforeInvite(s){const n=ud,{userID:g}=s,I=this._core.common.getCurrentUserID();if(g===I)throw new this._core.helper.ChatError({functionName:n,message:`cannot invite yourself, currentUserId:${I}, inviteeId:${g}`})}_validateBeforeAccept(s){const n=uI;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:I}=Fo.getSignaling(s);if(!I.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeCancel(s){const n=Fa;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviter:I}=Fo.getSignaling(s);if(I!==g){const E=`unmatched inviter:${I} and my userID:${g}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeReject(s){const n=cC;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:I}=Fo.getSignaling(s);if(!I.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeModifyInvitation(s){const n=Oa;this._validateInviteId(n,s)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this)}_reset(){this._isProcessingSignaling=!1}},_l=new class{constructor(){this._actionProcessor=new Map([[Tu,this._onNewInvitationReceived.bind(this)],[Zr,this._onInviteeRejected.bind(this)],[Id,this._onInviteeAccepted.bind(this)],[wl,this._onInvitationCancelled.bind(this)],[II,this._onInvitationTimeout.bind(this)]])}init(s){this._core=s,s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}handleActionSignaling(s){s.forEach(n=>{const g=wc(n);if(g){const I=this._actionProcessor.get(g.actionType);I?.(g,n)}})}_handleMessageReceived(s){if(!Fo.getSignalingListenStatus())return;const n=ur(s.data);n.length!==0&&this.handleActionSignaling(n)}_handleMessageModified(s){if(!Fo.getSignalingListenStatus())return;const n=ur(s.data);n.length>0&&n.forEach(g=>{const I=wc(g);I&&this._onInvitationModified(I,g)})}_onNewInvitationReceived(s,n){var g,I;const E=`${Ir}._onNewInvitationReceived`,{inviteID:m,inviteeList:D,groupID:M}=s,T=this._core.common.getCurrentUserID();if(this._core.ssoLog.debug("_onNewInvitationReceived",`${E} signalingData:${JSON.stringify(s)}}`),M&&!D.includes(T))return;let{timeout:P}=s;const W=Date.now()/1e3-n.time;P>0&&W>0&&P>W&&(P-=W);const iA=Fo.getSignaling(m);iA!==s&&(iA||Fo.saveSignaling(m,Object.assign(Object.assign({},s),{signaling:n})),P>0&&((g=this._core)===null||g===void 0||g.helper.taskScheduler.addOnceTask({id:`${Nu}-${m}`,intervalMs:1e3*P,callback:za.handleInvitationExpiryTimer.bind(za,m)})),this._emitEvent({name:(I=this._core)===null||I===void 0?void 0:I.SignalingEvent.NEW_INVITATION_RECEIVED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:D})}))}_onInviteeRejected(s){var n;const g=`${Ir}._onInviteeRejected`,{inviteID:I,inviter:E,groupID:m,inviteeList:D}=s,M=Fo.hasSignaling(I);this._core.ssoLog.debug("_onInviteeRejected",`${g} inviteID:${I} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Fo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_REJECTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInviteeAccepted(s){var n;const g=`${Ir}._onInviteeAccepted`,{inviteID:I,inviter:E,groupID:m,inviteeList:D}=s,M=Fo.hasSignaling(I);this._core.ssoLog.debug("_onInviteeAccepted",`${g} inviteID:${I} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Fo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_ACCEPTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInvitationCancelled(s){var n;const g=`${Ir}._onInvitationCancelled`,{inviteID:I,inviter:E,groupID:m}=s,D=Fo.hasSignaling(I);this._core.ssoLog.debug("_onInvitationCancelled",`${g} inviteID:${I} hasInviteID:${D} inviter:${E} groupID:${m}`),D&&(Fo.removeSignaling(I),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_CANCELLED,data:this._generateBaseEmitData(s)}))}_onInvitationTimeout(s){var n;const g=`${Ir}._onInvitationTimeout`,{inviteID:I,inviteeList:E}=s,m=Fo.hasSignaling(I);this._core.ssoLog.debug("_onInvitationTimeout",`${g} inviteID:${I} hasInviteID:${m} data:${s.data}`),m&&(Fo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_TIMEOUT,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:E,isSelfTimeout:!1})}))}_onInvitationModified(s,n){var g;const I=`${Ir}._onInvitationModified`,{inviteID:E,data:m}=s,D=Fo.hasSignaling(E);this._core.ssoLog.debug("_onInvitationModified",`${I} inviteID:${E} data:${m}`),D&&(Fo.saveSignaling(E,Object.assign(Object.assign({},s),{signaling:n})),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_MODIFIED,data:{inviteID:E,data:m}}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}_generateBaseEmitData(s){const{inviteID:n,inviter:g,groupID:I,data:E}=s;return{inviteID:n,inviter:g,groupID:I,data:E||""}}_dispose(){var s,n,g;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),(g=this._core)===null||g===void 0||g.notificationCenter.unSubscribeOuterEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}},Xr=new class{constructor(){this._offlineSignalingMap=new Map}init(s){this._core=s;const{notificationCenter:n,helper:g,constants:{InnerEvent:I,WORKFLOW_STEP:E,WORKFLOW_NAME:m}}=s;n.subscribeInnerEvent(I.DESTROY,this._dispose,this),n.subscribeInnerEvent(I.LOGOUT,this._reset,this),g.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_LOGIN,E.SIGNALING_MESSAGE_RECOVER,this._handleC2COfflineMessage,this)}_handleC2COfflineMessage(s){const{result:{unreadMessageMap:n}={}}=s||{};if(!(n?.size!==0&&Fo.getSignalingListenStatus()))return;const g=ur([...n.values()]);if(g.length!==0&&(g.forEach(I=>{this._handleC2CActionType(I)}),this._offlineSignalingMap.size>0)){const I=this._sortOfflineSignalingByTime();_l.handleActionSignaling(I)}}_handleC2CActionType(s){const n=wc(s);if(!n)return;const{actionType:g}=n;g===Tu?this._saveValidOfflineInvite(n,s):this._removeOfflineInvite(n)}_saveValidOfflineInvite(s,n){const{inviteID:g,inviteeList:I=[],timeout:E=0}=s,m=this._core.common.getCurrentUserID();if(!I.includes(m))return;const D=Date.now()/1e3-n.time;E>0&&D>E&&E!==0||this._offlineSignalingMap.set(g,Object.assign(Object.assign({},s),{signalingList:[n]}))}_removeOfflineInvite(s){const{inviteID:n=""}=s;this._offlineSignalingMap.has(n)&&this._offlineSignalingMap.delete(n)}_sortOfflineSignalingByTime(){let s=[];return this._offlineSignalingMap.forEach(n=>{s=[...s,...n.signalingList]}),s.sort((n,g)=>n.time-g.time)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._offlineSignalingMap.clear()}};const nh={invite:{userID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0},timeout:{required:!1,rules:["number"],allowEmpty:!1},onlineUserOnly:{required:!1,rules:["boolean"],allowEmpty:!1},offlinePushInfo:{required:!1,rules:["object"],allowEmpty:!1}},cancel:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},accept:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},reject:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},modifyInvitation:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}}},js={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var qI=new class{constructor(){this.name="Signaling"}install(s){za.init(s),_l.init(s),$g.init(s),Fo.init(s),Xr.init(s),s.helper.registerValidateConfig({auth:js,params:nh})}};const Us=new class{init(s){this.core=s}};function _c(s){let n;const{message:g}=Us.core,{conversationID:I,messageID:E}=s;return n=g.messageDataHandler.getLocalMessageList(I).find(m=>m.ID===E),!n&&(n=g.messageDataHandler.getSparseMessageList(I).find(m=>m.ID===E)),n}function Ac(s){return s.map(n=>{const{from:g,to:I,cloudCustomData:E,avatar:m,nick:D,ID:M,clientSequence:T,clientTime:P,messageRandom:W,messageSequence:iA,time:EA}=n;return{ClientSeq:T,CloudCustomData:E,From_Account:g,From_AccountHeadurl:m,From_AccountNick:D,Id:M,MsgBody:JSON.parse(JSON.stringify(n.transformElementsToServerFormat())),MsgClientTime:P,MsgRandom:W,Random:W,MsgSeq:iA,MsgTimeStamp:EA,ReceiverId:I,SenderId:g,To_Account:I}})}function Er(s){var n;const{From_Account:g,From_AccountHeadurl:I,From_AccountNick:E,GroupId:m,MsgClientTime:D,ClientSeq:M,To_Account:T,MsgTimeStamp:P,TinyId:W,MsgRandom:iA,MsgSeq:EA}=s;return{from:g,avatar:I,nick:E,clientTime:D,time:P,tinyID:W,random:iA,sequence:EA,to:T,groupID:m,clientSequence:M,_elements:(n=s.MsgBody)===null||n===void 0?void 0:n.map(RA=>{const{MsgType:kA}=RA;return Us.core.message.messageFactory.getElementClass(kA).parseServerPushElement(RA)})}}var Pr,Za;(function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_STREAM="TIMStreamElem"})(Pr||(Pr={})),function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"}(Za||(Za={}));const SE="MSG_REACTION",lC="MSG_EXT",rh=0,ro=1,Tc={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},Tl="16k_zh",IC="16k_en",uC="16k_yue",Nl="16k_ja",KI="16k_zh-PY",EI={[Tc.ZH_CN]:Tl,[Tc.EN_US]:IC,[Tc.YUE_HK]:uC,[Tc.JA_JP]:Nl,[Tc.ZH_PY]:KI},dI=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,ME={READ:0,UNREAD:1},Gl=1,bl=2,Ug=3;var ec;(function(s){s.IN="in",s.OUT="out"})(ec||(ec={}));const dd=16,vE=17;var Nc;(function(s){s[s.DATA=0]="DATA",s[s.REVOKED=1]="REVOKED"})(Nc||(Nc={}));var jI;(function(s){s[s.NORMAL=0]="NORMAL",s[s.TIMEOUT=1]="TIMEOUT"})(jI||(jI={}));const co="StreamMsg.PushStreamHttp";var RE=new class{constructor(){this._reactionsMap=new Map}init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:I},InnerEventSubType:{MESSAGE_REACTION_UPDATED:E,MESSAGE_REACTION_UPDATED_SYNC:m}}=s;n.registerApi({apiName:"addMessageReaction",context:this}),n.registerApi({apiName:"removeMessageReaction",context:this}),n.registerApi({apiName:"getMessageReactions",context:this}),n.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),g.subscribeInnerEvent(I,E,this._handleReactionUpdated,this),g.subscribeInnerEvent(I,m,this._handleReactionSync,this)}addMessageReaction(s,n){return mA(this,void 0,void 0,function*(){const{OuterConstant:g,ssoLog:I,helper:E}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:m,ID:D,conversationType:M,from:T,to:P,clientSequence:W,random:iA,time:EA,sequence:RA}=s,kA=`conversationID:${m} messageID:${D} reactionID:${n}`;try{return this._recordMessageReactedByMe(D,n),M===g.CONV_C2C?yield function(xA,LA){return mA(this,void 0,void 0,function*(){var SA;const{from:OA,to:JA,clientSequence:re,random:ne,time:_i,reactionID:Ti}=xA,kt={From_Account:OA,To_Account:JA,MsgKey:`${re}_${ne}_${_i}`,Reaction:Ti,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:kt})})}({from:T,to:P,clientSequence:W,random:iA,time:EA,reactionID:n},this._core):M===g.CONV_GROUP&&(yield function(xA,LA){return mA(this,void 0,void 0,function*(){var SA;const{to:OA,reactionID:JA,sequence:re}=xA,ne={GroupId:OA,MsgSeq:re,Reaction:JA,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:ne})})}({to:P,reactionID:n,sequence:RA},this._core)),{code:0,successLog:{message:kA}}}catch(xA){this._removeMyReactionRecord(D,n);const{errorCode:LA}=xA||{};throw new E.ChatError({functionName:"addMessageReaction",code:LA,moreMessage:kA})}})}removeMessageReaction(s,n){return mA(this,void 0,void 0,function*(){const{OuterConstant:g,helper:I}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:E,ID:m,conversationType:D,from:M,to:T,clientSequence:P,random:W,time:iA,sequence:EA}=s,RA=`conversationID:${E} messageID:${m} reactionID:${n}`;try{return this._removeMyReactionRecord(m,n),D===g.CONV_C2C?yield function(kA,xA){return mA(this,void 0,void 0,function*(){var LA;const{from:SA,to:OA,clientSequence:JA,random:re,time:ne,reactionID:_i}=kA,Ti={From_Account:SA,To_Account:OA,MsgKey:`${JA}_${re}_${ne}`,Reaction:_i,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:Ti})})}({from:M,to:T,clientSequence:P,random:W,time:iA,reactionID:n},this._core):D===g.CONV_GROUP&&(yield function(kA,xA){return mA(this,void 0,void 0,function*(){var LA;const{to:SA,reactionID:OA,sequence:JA}=kA,re={GroupId:SA,MsgSeq:JA,Reaction:OA,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:re},xA)})}({to:T,reactionID:n,sequence:EA},this._core)),{code:0,successLog:{message:RA}}}catch(kA){const{errorCode:xA}=kA||{};throw new I.ChatError({functionName:"removeMessageReaction",code:xA,moreMessage:RA})}})}getAllUserListOfMessageReaction(s){return mA(this,void 0,void 0,function*(){this._validateMessageReactionBusinessCapability();const{message:n,reactionID:g,nextSeq:I=0}=s,E=s.count>100?100:s.count,{conversationID:m}=n,{ssoLog:D,helper:M,constants:T}=this._core;try{let P=null;if(P=m.startsWith(T.OuterConstant.CONV_C2C)?yield function(W){return mA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{from:xA,to:LA,clientSequence:SA,random:OA,time:JA}=iA,re={Reaction:RA,NextSeq:EA,Count:kA,From_Account:xA,To_Account:LA,MsgKey:`${SA}_${OA}_${JA}`};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:re})})}({message:n,reactionID:g,nextSeq:I,count:E}):yield function(W){return mA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{sequence:xA,to:LA}=iA,SA={Reaction:RA,NextSeq:EA,GroupId:LA,Count:kA,MsgSeq:xA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:SA})})}({message:n,reactionID:g,nextSeq:I,count:E}),P){const{Reaction_Account:W,NextSeq:iA}=P,EA=yield this._getUserProfileList(W);return{code:0,data:{nextSeq:iA,isCompleted:I===0,userList:EA}}}}catch(P){const{errorCode:W}=P||{};throw new M.ChatError({functionName:"getAllUserListOfMessageReaction",code:W})}})}getMessageReactions(s){return mA(this,void 0,void 0,function*(){const{constants:n}=this._core;this._validateMessageReactionBusinessCapability();const{messageList:g,maxUserCountPerReaction:I=10}=s,E=g[0];let m=null;const D=new Map,{from:M,to:T,conversationType:P}=E,W=this._generateMessageKeyList(g,D);P===n.OuterConstant.CONV_C2C?m=yield function(kA){return mA(this,void 0,void 0,function*(){const{from:xA,to:LA,messageKeyList:SA,maxUserCountPerReaction:OA}=kA,JA={From_Account:xA,To_Account:LA,MsgKeyList:SA,Count:OA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:JA})})}({from:M,to:T,messageKeyList:W,maxUserCountPerReaction:I}):P===n.OuterConstant.CONV_GROUP&&(m=yield function(kA){return mA(this,void 0,void 0,function*(){const{groupId:xA,messageSequenceList:LA,maxUserCountPerReaction:SA}=kA,OA={GroupId:xA,MsgSeqList:LA,Count:SA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:OA})})}({groupId:T,messageSequenceList:W,maxUserCountPerReaction:I}));const{Results:iA=[]}=m||{},EA=this._extractUserIDsFromReactionResults(iA),RA=yield this._getUserProfileMap(EA);return{code:0,data:{resultList:iA.map(kA=>{const{ReactionList:xA,MsgSeq:LA,MsgKey:SA}=kA;return{messageID:this._generateMessageID({messageSequence:LA,messageKey:SA,messageIDMap:D}),reactionList:xA.map(OA=>{const{Reaction:JA,Count:re,Reaction_Account:ne,ReactedByMe:_i}=OA;return{reactionID:JA,totalUserCount:re,partialUserList:this._generatePartialUserInfo({userIDList:ne,userProfileMap:RA}),reactedByMyself:_i===1}})}})}}})}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(s){const n=[];return s?.forEach(g=>{const{ReactionList:I=[]}=g;I.forEach(E=>{E.Reaction_Account&&n.push(...E.Reaction_Account)})}),n}_getUserProfileList(s){return mA(this,void 0,void 0,function*(){var n;try{const g=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:s});return g?g.data:[]}catch{return[]}})}_getUserProfileMap(s){return mA(this,void 0,void 0,function*(){const n=new Map;return(yield this._getUserProfileList(s)).forEach(g=>{const{nick:I,avatar:E,userID:m}=g;n.set(m,{nick:I,avatar:E,userID:m})}),n})}_recordMessageReactedByMe(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)?this._reactionsMap.get(g).reactedByMe=!0:this._reactionsMap.set(g,{reactedByMe:!0})}_removeMyReactionRecord(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)&&(this._reactionsMap.get(g).reactedByMe=!1)}_recordMessageReactionInfo(s){const{messageID:n,reactionID:g,reactionInfo:I}=s,E=`${n}-${g}`,m=this._reactionsMap.get(E)||{};this._reactionsMap.set(E,Object.assign(Object.assign({},m),I))}_validateMessageReactionBusinessCapability(){const{helper:s,constants:n}=this._core;if(!s.checkBusinessCapabilityBits(SE))throw new s.ChatError({functionName:"addMessageReaction",code:n.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(s){const{MsgReactionNotifyList:n}=s,{notificationCenter:g,constants:I}=this._core;n.forEach(E=>mA(this,void 0,void 0,function*(){const{C2CMsgInfo:m,GroupMsgInfo:D,MsgReactionSummary:M}=E,{TinyId:T,MsgClientTime:P,MsgRandom:W}=Object.assign(Object.assign({},m),D),iA=`${T}-${P}-${W}`,EA=this._extractUserIDsFromReactionResults([{ReactionList:M}]),RA=yield this._getUserProfileMap(EA),kA=M.map(xA=>{var LA;const{Reaction:SA,Reaction_Account:OA}=xA,JA=this._generatePartialUserInfo({userIDList:OA,userProfileMap:RA}),re=OA?xA.Count:0,ne=((LA=this._reactionsMap.get(`${iA}-${SA}`))===null||LA===void 0?void 0:LA.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:iA,reactionID:SA,reactionInfo:{reactionID:SA,totalUserCount:re,partialUserList:JA}}),{reactionID:SA,totalUserCount:re,partialUserList:JA,reactedByMyself:ne}});g.emitOuterEvent(I.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:I.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:kA}})}))}_handleReactionSync(s){var n;const{notificationCenter:g,constants:I}=this._core,{C2CMsgInfo:E={},GroupMsgInfo:m={},Reaction:D,OperateType:M}=s.MsgReactionNotify,{TinyId:T="",MsgClientTime:P=0,MsgRandom:W=0}=Object.assign(Object.assign({},E),m),iA=`${T}-${P}-${W}`,EA=`${iA}-${D}`;if(M===1?this._recordMessageReactedByMe(iA,D):this._removeMyReactionRecord(iA,D),(n=this._reactionsMap.get(EA))===null||n===void 0?void 0:n.reactionID){const RA=this._reactionsMap.get(EA);RA.reactedByMyself=M===1,g.emitOuterEvent(I.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:I.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:[RA]}})}}_generatePartialUserInfo({userIDList:s,userProfileMap:n}){const g=[];return s?.forEach(I=>{n.has(I)&&g.push(n.get(I))}),g}_generateMessageID(s){const{messageSequence:n,messageKey:g,messageIDMap:I}=s;return g?I.get(g):I.get(n)}_generateMessageKeyList(s,n){const{constants:g}=this._core,I=s[0],{conversationType:E}=I;let m=[];return E===g.OuterConstant.CONV_C2C?m=s.map(D=>{const{clientSequence:M,random:T,time:P,ID:W}=D,iA=`${M}_${T}_${P}`;return n.set(iA,W),iA}):E===g.OuterConstant.CONV_GROUP&&(m=s.map(D=>{const{ID:M,sequence:T}=D;return n.set(T,M),T})),m}},Xa=new class{init(s){this._core=s;const{helper:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:I,GROUP_MESSAGE_READ_RECEIPT:E},notificationCenter:m}=s;n.registerApi({apiName:"sendMessageReadReceipt",context:this}),n.registerApi({apiName:"getMessageReadReceiptList",context:this}),n.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),m.subscribeInnerEvent(g,I,this._handleC2CMessageReadReceipt,this),m.subscribeInnerEvent(g,E,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(s){return mA(this,void 0,void 0,function*(){var n;const{common:g,constants:I}=this._core,E=this._filterValidMessageSendByOther(s);if(E.length===0)throw new g.ChatError({code:I.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{const{conversationType:m}=E[0];return m===I.OuterConstant.CONV_C2C?yield function(D){return mA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P=D[0].conversationID.replace(T.OuterConstant.CONV_C2C,""),W=D.map(EA=>{const{from:RA,to:kA,sequence:xA,random:LA,time:SA,clientTime:OA}=EA;return{From_Account:RA,To_Account:kA,MsgSeq:xA,MsgRandom:LA,MsgTime:SA,MsgClientTime:OA}}),iA={Peer_Account:P,C2CMsgInfo:W};return M.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:iA})})}(E):yield function(D){return mA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P={GroupId:D[0].conversationID.replace(T.OuterConstant.CONV_GROUP,""),MsgSeqList:D.map(W=>({MsgSeq:W.sequence}))};return M.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:P})})}(E),{code:0,data:{}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g.ChatError({code:D,message:M,moreMessage:`peerAccount:${(n=E?.[0])===null||n===void 0?void 0:n.conversationID}`})}})}getMessageReadReceiptList(s){return mA(this,void 0,void 0,function*(){const{common:n,constants:g}=this._core;try{const{conversationType:I}=s[0];if(I===g.OuterConstant.CONV_GROUP){const E=this._filterValidMessageSendByMe(s);if(E?.length>0){const m=yield function(M){return mA(this,void 0,void 0,function*(){const{common:T,constants:P}=Us.core,W={GroupId:M[0].conversationID.replace(P.OuterConstant.CONV_GROUP,""),MsgSeqList:M.map(iA=>({MsgSeq:iA.sequence}))};return T.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:W})})}(E),{GroupMsgReceiptList:D}=m||{};this._updateGroupMessagesReadReceiptInfo({messageList:s,readReceiptList:D})}}return{code:0,data:{messageList:s}}}catch(I){const{errorCode:E,errorInfo:m}=I;throw new n.ChatError({code:E,message:m})}})}getGroupMessageReadMemberList(s){return mA(this,void 0,void 0,function*(){const{constants:n,common:g}=this._core,{message:I,filter:E=ME.READ,cursor:m=""}=s,{conversationID:D,sequence:M,ID:T}=I,P=D.replace(n.OuterConstant.CONV_GROUP,""),W=s.count>=100?100:s.count;try{const iA=yield function(EA){return mA(this,void 0,void 0,function*(){const{sequence:RA,groupID:kA,filter:xA,cursor:LA,count:SA}=EA,OA={MsgSeq:RA,GroupId:kA,Filter:xA,Cursor:LA,Num:SA};return Us.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:OA})})}({groupID:P,sequence:M,filter:E,cursor:m,count:W});if(iA){const{Cursor:EA,IsFinish:RA,UnreadList:kA,ReadList:xA}=iA,LA={cursor:EA,isCompleted:RA===1,messageID:T,unreadUserIDList:[],readUserIDList:[]};return E===ME.READ?LA.readUserIDList=xA.map(SA=>SA.Read_Account):E===ME.UNREAD&&(LA.unreadUserIDList=kA.map(SA=>SA.Unread_Account)),{code:0,data:LA}}}catch(iA){const{errorCode:EA,errorInfo:RA}=iA;throw new g.ChatError({code:EA,message:RA})}})}_handleC2CMessageReadReceipt(s){const n=[],{constants:g,helper:I}=this._core,{C2cMsgInfo:E,PeerReadTime:m,Peer_Account:D}=s;if(I.isEmpty(E))return;const M=`${g.OuterConstant.CONV_C2C}${D}`;E?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA}=T,EA=`${P}-${W}-${iA}`,RA=_c({conversationID:M,messageID:EA});RA&&!RA.readReceiptInfo.isPeerRead&&(RA.readReceiptInfo.isPeerRead=!0,RA.readReceiptInfo.timestamp=m,n.push({userID:D,messageID:EA,isPeerRead:!0,timestamp:m}))}),this._emitReadReceiptEventIfNeed(n)}_updateGroupMessagesReadReceiptInfo(s){const{messageList:n,readReceiptList:g}=s,I=new Map;n.forEach(E=>{I.set(E.sequence,E)}),g?.forEach(E=>{if(E.Code===0){const{MsgSeq:m,ReadNum:D,UnreadNum:M}=E,T=I.get(m);T&&(T.readReceiptInfo.readCount=D,T.readReceiptInfo.unreadCount=M)}})}_handleGroupMessageReadReceipt(s){const n=[],{constants:g}=this._core,{GroupTips:I}=s;I.forEach(E=>{const{MsgBody:{GroupMsgReceiptList:m},GroupInfo:{GroupId:D}}=E,M=`${g.OuterConstant.CONV_GROUP}${D}`;m?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA,ReadNum:EA,UnreadNum:RA}=T,kA=`${P}-${W}-${iA}`,xA=_c({conversationID:M,messageID:kA}),LA={groupID:D,messageID:kA,readCount:0,unreadCount:0};xA&&(typeof EA=="number"&&(xA.readReceiptInfo.readCount=EA,LA.readCount=EA),typeof RA=="number"&&(xA.readReceiptInfo.unreadCount=RA,LA.unreadCount=RA),n.push(LA))})}),this._emitReadReceiptEventIfNeed(n)}_emitReadReceiptEventIfNeed(s){const{notificationCenter:n,OuterEvent:g}=this._core;s.length>0&&n.emitOuterEvent(g.MESSAGE_READ_RECEIPT_RECEIVED,{name:g.MESSAGE_READ_RECEIPT_RECEIVED,data:s})}_filterValidMessageSendByOther(s){return this._filterNeedReadReceiptMessages(s).filter(n=>{const{from:g}=n;return g!==this._core.common.getCurrentUserID()})}_filterValidMessageSendByMe(s){const{OuterConstant:n}=this._core.constants;return this._filterNeedReadReceiptMessages(s).filter(g=>{const{from:I,status:E}=g;return I===this._core.common.getCurrentUserID()&&E===n.MessageStatus.SUCCESS})}_filterNeedReadReceiptMessages(s){return s.filter(n=>n.needReadReceipt===!0)}dispose(){const{InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:n,GROUP_MESSAGE_READ_RECEIPT:g},notificationCenter:I}=this._core;I.unSubscribeInnerEvent(s,n,this._handleC2CMessageReadReceipt,this),I.unSubscribeInnerEvent(s,g,this._handleGroupMessageReadReceipt,this)}};function WI(s,n,g){return mA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:I}}=Us.core,{from:E,to:m,clientSequence:D,random:M,time:T}=s;return I({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:E,To_Account:m,MsgKey:`${D}_${M}_${T}`,OperateType:g,ExtensionList:n}})})}function Gu(s,n,g){return mA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:I}}=Us.core,{to:E,sequence:m}=s;return I({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:E,MsgSeq:m,OperateType:g,ExtensionList:n}})})}var Gc=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(s){this._core=s;const{notificationCenter:n,helper:{registerApi:g},InnerEvent:{MESSAGE_PUSH:I,LOGOUT:E},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:m}}=s;g({apiName:"setMessageExtensions",context:this}),g({apiName:"getMessageExtensions",context:this}),g({apiName:"deleteMessageExtensions",context:this}),n.subscribeInnerEvent(I,m,this._handleMessageExtensionsNotify,this),n.subscribeInnerEvent(E,this.reset,this)}setMessageExtensions(s,n){return mA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");const{constants:{OuterConstant:g},ssoLog:I}=this._core,{ID:E,conversationID:m,sequence:D,time:M,conversationType:T}=s;let P=n;n.length>20&&(P=n.slice(0,20),I.warn("setMessageExtensions","the length of extensions cannot exceed 20"));const W=this._generateServerExtensions(s,P),iA=`convID:${m} messageID:${E} sequence:${D} time:${M} count:${P.length}`;try{let EA;if(T===g.CONV_C2C?EA=yield WI(s,W,Gl):T===g.CONV_GROUP&&(EA=yield Gu(s,W,Gl)),EA){const{resultList:RA,successCount:kA,failureCount:xA}=this._handleModifyMessageExtensions(s,EA);return{code:0,data:{extensions:RA},successLog:{message:`${iA} successCount:${kA} failCount:${xA}`}}}return{code:0,data:{extensions:[]}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:RA,moreMessage:iA})}})}getMessageExtensions(s){return mA(this,void 0,void 0,function*(){const{utils:{isUndefined:n}}=this._core;this._validateMessageExtensionBusinessCapability("getMessageExtensions");const{conversationID:g,ID:I,sequence:E,time:m}=s,D=`convID:${g} messageID:${I} sequence:${E} time:${m}`;try{let M;this._completedFetchExtensions.has(I)&&(M=this._extensionsLatestSequenceMap.get(I));const T=yield this._fetchMessageExtensions(s,M);return n(M)&&T.length>1&&this._completedFetchExtensions.add(I),{code:0,data:{extensions:T},successLog:{message:D}}}catch(M){const{errorCode:T,errorInfo:P=""}=M||{};throw new this._core.common.ChatError({code:T,message:P,moreMessage:D})}})}deleteMessageExtensions(s,n){return mA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");const{utils:{isEmpty:g},constants:{OuterConstant:I}}=this._core,{conversationType:E,conversationID:m,sequence:D,ID:M,time:T}=s;let P=Ug;const W=[];g(n)||(P=bl,n?.forEach(RA=>{W.push({key:RA,value:"",seq:0})}));const iA=`convID:${m} messageID:${M} sequence:${D} time:${T} operateType:${P}`,EA=this._generateServerExtensions(s,W);try{let RA;if(E===I.CONV_C2C?RA=yield WI(s,EA,P):E===I.CONV_GROUP&&(RA=yield Gu(s,EA,P)),RA){const{resultList:kA,successCount:xA,failureCount:LA}=this._handleModifyMessageExtensions(s,RA);return{code:0,data:{extensions:kA},successLog:{message:`${iA}successCount:${xA} failCount:${LA}`}}}return{code:0,data:{extensions:[]}}}catch(RA){const{errorCode:kA}=RA;throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:kA,moreMessage:iA})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,LOGOUT:g},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:I}}=this._core;s.unSubscribeInnerEvent(n,I,this._handleMessageExtensionsNotify,this),s.subscribeInnerEvent(g,this.reset,this)}_handleModifyMessageExtensions(s,n){const{ID:g}=s,{Seq:I}=n,E=n.ExtensionList||[],m=[];let D=0,M=0,T=[];return E.forEach(P=>{const{ErrorCode:W,Extension:iA}=P,{Key:EA,Value:RA,Seq:kA}=iA;m.push({code:W,key:EA,value:RA}),W===0?D++:M++,T.push({key:EA,value:RA,seq:kA})}),this._extensionsLatestSequenceMap.set(g,I),T.length>0&&this._updateLocalExtensions(s.ID,T),{resultList:m,successCount:D,failureCount:M}}_updateLocalExtensions(s,n){this._messageExtensionsMap.has(s)||this._messageExtensionsMap.set(s,new Map);const g=this._messageExtensionsMap.get(s);n?.forEach(I=>{const{key:E,seq:m,value:D=""}=I;g?.set(E,{value:D,seq:m})})}_fetchMessageExtensions(s,n){return mA(this,void 0,void 0,function*(){const{constants:{OuterConstant:g},utils:{isEmpty:I}}=this._core;try{let E;const{conversationType:m,ID:D}=s;if(m===g.CONV_C2C?E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{from:W,to:iA,clientSequence:EA,random:RA,time:kA}=M;return P({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:W,To_Account:iA,MsgKey:`${EA}_${RA}_${kA}`,StartSeq:T}})}(s,n):m===g.CONV_GROUP&&(E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{to:W,sequence:iA}=M;return P({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:W,MsgSeq:iA,StartSeq:T}})}(s,n)),E){const{LatestSeq:M,ClearSeq:T,CompleteFlag:P}=E,W=(E.ExtensionList||[]).map(EA=>({key:EA.Key,value:EA.Value,seq:EA.Seq}));if(this._updateLocalExtensions(D,W),this._clearLocationExtensions(D,T),this._extensionsLatestSequenceMap.set(D,M),P!==1){const EA=W[W.length-1].seq+1;return this._fetchMessageExtensions(s,EA)}const iA=[];if(this._messageExtensionsMap.has(D)){const EA=this._messageExtensionsMap.get(D);EA?.forEach((RA,kA)=>{const{value:xA}=RA;I(xA)||iA.push({key:kA,value:xA})})}return iA}}catch(E){throw E}})}_clearLocationExtensions(s,n){if(!(n<=0)&&this._messageExtensionsMap.has(s)){const g=this._messageExtensionsMap.get(s);g?.forEach((I,E)=>{I.seq<=n&&g.delete(E)})}}_generateServerExtensions(s,n){const{ID:g}=s;if(this._messageExtensionsMap.has(g)){const I=this._messageExtensionsMap.get(g);return n.map(E=>{var m;const{key:D,value:M}=E;let T=0;return I?.has(D)&&(T=(m=I.get(D))===null||m===void 0?void 0:m.seq),{Key:D,Value:M,Seq:T}})}return n.map(I=>({Key:I.key,Value:I.value,Seq:0}))}_validateMessageExtensionBusinessCapability(s){const{helper:n,constants:g}=this._core;if(!n.checkBusinessCapabilityBits(lC))throw new n.ChatError({functionName:s,code:g.ERROR_CODE.NO_USE,replacement1:s})}_handleMessageExtensionsNotify(s){const{SetKVInfo:n,DeleteKVInfo:g,ClearKVInfo:I,MsgOptType:E,TinyId:m,MsgLastSeq:D,ExtensionC2cMsgInfo:M,ExtensionGroupMsgInfo:T}=s?.MsgExtensionNotify||{},P=M||T||{},{MsgClientTime:W,MsgRandom:iA}=P,EA=`${m}-${W}-${iA}`;this._extensionsLatestSequenceMap.set(EA,D),E===Gl?this._handleMessageExtensionsUpdated({messageID:EA,updateMessageExtensionsInfo:n}):E===bl?this._handleMessageExtensionsDeleted({messageID:EA,deleteMessageExtensionsInfo:g}):E===Ug&&this._handleMessageExtensionsCleared({messageID:EA,clearMessageExtensionsInfo:I})}_handleMessageExtensionsUpdated(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:I,updateMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push({key:P.Key,value:P.Value}),{key:P.Key,value:P.Value,seq:P.Seq}));this._updateLocalExtensions(I,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_UPDATED,{name:g.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:I,extensions:m}})}_handleMessageExtensionsDeleted(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:I,deleteMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push(P.Key),{key:P.Key,seq:P.Seq}));this._updateLocalExtensions(I,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_DELETED,{name:g.MESSAGE_EXTENSIONS_DELETED,data:{messageID:I,keyList:m}})}_handleMessageExtensionsCleared(s){const{notificationCenter:n,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:g},utils:{isEmpty:I}}=this._core,{messageID:E,clearMessageExtensionsInfo:m=[]}=s,D=[];m.forEach(M=>{const{ClearMsgSeq:T}=M;this._messageExtensionsMap.has(E)&&(this._messageExtensionsMap.get(E)||[]).forEach((P,W)=>{P.seq<=T&&!I(P.value)&&D.push(W)}),this._clearLocationExtensions(E,T)}),n.emitOuterEvent(g,{name:g,data:{messageID:E,keyList:D}})}};const CI={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{constants:{OuterConstant:n}}=Us.core;return s.status!==n.MessageStatus.SUCCESS?"message is not success":s.isSupportExtension===!0||"message is not support extension"}},ol={setMessageExtensions:[CI,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[CI],deleteMessageExtensions:[CI]},sl=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const n=function(g){var I;return typeof g?.text!="string"||typeof g.text=="string"&&((I=g?.text)===null||I===void 0?void 0:I.length)===0?"payload.text is invalid.":!0}(s);return n!==!0?n:!(s?.atUserList&&!Array.isArray(s.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{utils:{isString:n,isNumber:g}}=Us.core;return n(s?.description)?g(s?.longitude)?!!g(s?.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s!="number"?"maxUserCountPerReaction is invalid.":!(s<0||s>10)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>s.status==="success"||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),ol),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),{createQuoteMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"quotedMessage",required:!0,rules:["object"],allowEmpty:!1}]}),Pa=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0}),{createQuoteMessage:!0});class wE{constructor(n){this._core=n}deleteMessage(n){return mA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:I}=n,E={From_Account:this._core.common.getCurrentUserID(),To_Account:g,MsgKeyList:I};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:E})})}revokeMessage(n){return mA(this,void 0,void 0,function*(){const{to:g,from:I,sequence:E,time:m,random:D}=n,M={MsgInfo:{From_Account:I,To_Account:g,MsgSeq:E,MsgRandom:D,MsgTimeStamp:m}};return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:M})})}}class na{constructor(n){this._core=n}deleteMessage(n){return mA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:I}=n,E={GroupId:g,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:I};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:E})})}revokeMessage(n){return mA(this,void 0,void 0,function*(){const{to:g,sequence:I}=n,E={GroupId:g,MsgSeqList:[{MsgSeq:I}]};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:E})})}}const Mn=2116;class Nr{constructor(n){this._core=n}generateRevokeMessage(n){const{conversationID:g,sequence:I,random:E,tinyID:m,clientTime:D,revokeReason:M,revoker:T}=n;let P={};const{messageDataHandler:W}=this._core.message;return P=W.revokeMessage({conversationID:g,sequence:I,random:E,revoker:T}),P||(P={conversationID:g,sequence:I},m&&D&&E&&(P.ID=`${m}-${D}-${E}`)),P.revoker=T,P.revokeReason=M,P.revokerInfo={userID:T,nick:"",avatar:""},P}updateRevokerInfo(n){return mA(this,void 0,void 0,function*(){const g=n.map(I=>I.revoker);try{const I=yield this._fetchUserInfos(g);I&&n.forEach(E=>{const{revoker:m}=E;I[m]&&(E.revokerInfo.nick=I[m].nick||"",E.revokerInfo.avatar=I[m].avatar||"",E.revokerInfo.userID=m)})}catch(I){console.debug(I)}})}_fetchUserInfos(n){return mA(this,void 0,void 0,function*(){var g,I;const E=yield(g=this._core.user.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:n});return E?.data?(I=E.data)===null||I===void 0?void 0:I.reduce((m,{userID:D,nick:M,avatar:T})=>(m[D]={nick:M||"",avatar:T||""},m),{}):null})}}var nl=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(s){this._core=s,this._groupMessageAction=new na(s),this._c2cMessageAction=new wE(s),this._messageHelper=new Nr(s);const{helper:n}=s;n.registerApi({apiName:"deleteMessage",context:this}),n.registerApi({apiName:"revokeMessage",context:this}),n.registerApi({apiName:"resendMessage",context:this}),n.registerApi({apiName:"findMessage",context:this}),n.registerApi({apiName:"createQuoteMessage",context:this})}deleteMessage(s){return mA(this,void 0,void 0,function*(){let n=[],g=[];const{conversationID:I,conversationType:E}=s[0],m=I.replace(E,"");if(E==="@TIM#SYSTEM")throw new this._core.helper.ChatError({code:Mn});if(s.forEach(D=>{const{conversationID:M,conversationType:T,status:P,_onlineOnlyFlag:W,sequence:iA,random:EA,time:RA}=D||{};if(P==="success"&&M===I&&T===E){if(!W){const kA=T==="C2C"?`${iA}_${EA}_${RA}`:String(iA);n.push(kA)}g.push(D)}}),n.length===0)return this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}};n.length>30&&(n=n.slice(0,30),g=g.slice(0,30));try{return E==="C2C"?yield this._c2cMessageAction.deleteMessage({to:m,messageIdentifiers:n}):yield this._groupMessageAction.deleteMessage({to:m,messageIdentifiers:n}),this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}}}catch(D){const{utils:{safeStringify:M}}=this._core,{errorCode:T,errorInfo:P}=D;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:T,message:P,moreMessage:`messageIdentifiers: ${M(n)}`})}})}revokeMessage(s){return mA(this,void 0,void 0,function*(){var n;const{conversationType:g,isRevoked:I,ID:E,type:m,from:D,to:M}=s;let T=null;const P=`type:${m} from:${D} to:${M} ID:${E}`;if(g==="@TIM#SYSTEM")throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(I)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:P});try{if(T=g==="C2C"?yield this._c2cMessageAction.revokeMessage(s):yield this._groupMessageAction.revokeMessage(s),T){const{RecallRetList:W}=T,iA=((n=W?.[0])===null||n===void 0?void 0:n.RetCode)||0;if(iA!==0)throw new this._core.helper.ChatError({code:iA,moreMessage:P});return s.isRevoked=!0,yield this._handleRevokeMessageSuccess(s),{code:0,data:{message:s},successLog:{message:P}}}}catch(W){const{errorCode:iA}=W;throw new this._core.helper.ChatError({functionName:"revokeMessage",code:iA,moreMessage:P})}})}resendMessage(s,n){return mA(this,void 0,void 0,function*(){var g,I;return s.isResend=!0,s.status="unSend",(I=(g=this._core)===null||g===void 0?void 0:g.apiMap)===null||I===void 0?void 0:I.sendMessage(s,n)})}findMessage(s){return this._core.message.messageDataHandler.findMessage(s)}createQuoteMessage(s,n){const{ID:g,time:I,sequence:E}=n;return s.quoteInfo={msgID:g,messageTime:I,messageSequence:E},s}_handleDeleteMessageSuccess(s){if(s.length===0)return;const{message:{messageDataHandler:n},common:{isTopic:g},notificationCenter:I,InnerEvent:E}=this._core;s.forEach(D=>{D.isDeleted=!0;const M=n.getLocalMessageList(D.conversationID);M?.forEach(T=>{T.ID===D.ID&&(T.isDeleted=!0)})});const{conversationID:m=""}=s[0];g(m)?I.emitInnerEvent(E.TOPIC_MESSAGE_DELETED,m):I.emitInnerEvent(E.MESSAGE_DELETED,m)}_handleRevokeMessageSuccess(s){return mA(this,void 0,void 0,function*(){var n;const g=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{conversationID:I,sequence:E,random:m}=s;this._core.message.messageDataHandler.revokeMessage({conversationID:I,sequence:E,random:m,revoker:g}),yield this._messageHelper.updateRevokerInfo([s])})}};class kl{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Index:I,Data:E}=g;return new kl({index:I,data:E})}constructor(n){this.type=Pr.MSG_FACE;const{index:g,data:I}=n;this.content={index:g,data:I}}validateBeforeSend(){var n,g;return typeof((n=this.content)===null||n===void 0?void 0:n.index)=="number"&&typeof((g=this.content)===null||g===void 0?void 0:g.data)=="string"?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{index:E,data:m}=I;return{MsgType:this.type,MsgContent:{Index:E,Data:m}}}}class bc{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Desc:I,Longitude:E,Latitude:m}=g;return new bc({description:I,longitude:E,latitude:m})}constructor(n){this.type=Pr.MSG_LOCATION;const{description:g,longitude:I,latitude:E}=n;this.content={description:g,longitude:I,latitude:E}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{description:E,longitude:m,latitude:D}=I;return{MsgType:this.type,MsgContent:{Desc:E,Longitude:m,Latitude:D}}}}class _E{static parseServerPushElement(n){const{MsgContent:g={}}=n,{StreamMsgID:I,CompatibleText:E,Markdown:m,BinaryData:D,ErrorCode:M,ErrorMsg:T}=g;return new _E({streamMessageID:I,compatibleText:E,markdown:m,binaryData:D,errorCode:M,errorMessage:T})}constructor(n){this.type=Pr.MSG_STREAM,this.content={streamMessageID:"",compatibleText:"",errorCode:0,errorMessage:"",isStreamEnded:!1},this._chunks=[],this._latestIndex=0;const{streamMessageID:g,compatibleText:I,markdown:E,binaryData:m,errorCode:D=0,errorMessage:M="",isStreamEnded:T=!1,chunks:P=[],latestIndex:W=0}=n;this.content.streamMessageID=g,this.content.compatibleText=I,this.content.markdown=E,this.content.binaryData=m,this.content.errorCode=D,this.content.errorMessage=M,this.content.isStreamEnded=T,this.content.chunks=P,this.content.latestIndex=W}updateChunks(n){if(!n||n.length===0)return;const g=n.sort((m,D)=>m.index-D.index),I=this._getMaxRevokedChunkIndex(g);I>=0&&(this._chunks=[],this._latestIndex=I,this._updateContent());const E=this._getValidChunks(g);if(E.length!==0&&(this._mergeAndSortChunks(E),this._chunks.length>0)){const m=this._chunks[this._chunks.length-1];this._latestIndex=m.index,this._updateContent(),this.content.isStreamEnded=m.isLast}}getLatestIndex(){return this._latestIndex}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{streamMessageID:E,chunks:m}=I,D=m?.map(M=>({EventType:M.eventType||"data",Index:M.index,Markdown:M.markdown,IsLast:M.isLast}));return{MsgType:this.type,MsgContent:{StreamMsgID:E,Chunks:D}}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.chunks)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}_filterContinuousChunks(n,g){if(n.length===0)return[];const I=[];let E=g;for(const m of n){if(m.index>E)break;m.index===E&&(I.push(m),E++)}return I}_mergeAndSortChunks(n){const g=new Map;this._chunks.forEach(I=>{g.set(I.index,I)}),n.forEach(I=>{g.set(I.index,I)}),this._chunks=Array.from(g.values()).sort((I,E)=>I.index-E.index)}_updateContent(){this.content.markdown=this._chunks.map(g=>g.markdown).join("");const n=this._chunks.map(g=>g.binaryData).filter(g=>g?.length>0);if(n.length===0)this.content.binaryData=new Uint8Array(0);else if(n.length===1)this.content.binaryData=n[0];else{const g=n.reduce((m,D)=>m+D.length,0),I=new Uint8Array(g);let E=0;for(const m of n)I.set(m,E),E+=m.length;this.content.binaryData=I}}_getMaxRevokedChunkIndex(n){let g=-1;for(let I=0;Ig&&(g=E.index)}return g}_getValidChunks(n){const g=n.filter(I=>I.eventType===Nc.DATA&&I.index>this._latestIndex);return this._filterContinuousChunks(g,this._latestIndex+1)}}var kc=new class{init(s){this._core=s,s.message.messageFactory.registerElementClass(Pr.MSG_FACE,kl),s.message.messageFactory.registerElementClass(Pr.MSG_LOCATION,bc),s.message.messageFactory.registerElementClass(Pr.MSG_STREAM,_E),s.helper.registerApi({apiName:"createFaceMessage",context:this}),s.helper.registerApi({apiName:"createTextAtMessage",context:this}),s.helper.registerApi({apiName:"createForwardMessage",context:this}),s.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(s){if(!s)return null;const{index:n,data:g}=s?.payload||{},I=new kl({index:n,data:g}),E=this._core.common.getCurrentUserID(),m=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(I),m}createTextAtMessage(s){const{atUserList:n}=s?.payload||{},g=this._core.apiMap.createTextMessage(s),{OuterConstant:I}=this._core;if(!g)return null;if(Array.isArray(n)){const E=[],m=[];n.forEach(D=>{D!==I.MSG_AT_ALL?(E.push({GroupAtAllFlag:rh,GroupAt_Account:D}),m.push(D)):(E.push({GroupAtAllFlag:ro}),m.push(I.MSG_AT_ALL))}),g._groupAtInfoList=E,g.atUserList=m}return g}createForwardMessage(s){const{helper:n,OuterConstant:g}=this._core,{to:I,conversationType:E,priority:m,payload:D,needReadReceipt:M,receiverList:T,cloudCustomData:P="",isSupportExtension:W=!1}=s;if(!Array.isArray(D._elements))throw new n.ChatError({functionName:"createForwardMessage",code:2454});if(D.type===g.MSG_GRP_TIP)throw new n.ChatError({functionName:"createForwardMessage",code:2453});const iA=this._core.common.getCurrentUserID(),EA=this._core.message.messageFactory.createMessage({to:I,from:iA,conversationType:E,isPlaceMessage:0,priority:m,payload:D,needReadReceipt:M,isSupportExtension:W,cloudCustomData:P,receiverList:T});return EA.setRelayFlag(!0),EA.setElement(D._elements[0]),EA}createLocationMessage(s){if(!s)return null;const{description:n,longitude:g,latitude:I}=s?.payload||{},E=new bc({description:n,longitude:g,latitude:I}),m=this._core.common.getCurrentUserID(),D=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:m}));return D.setElement(E),D}};let bu=class{init(s){this._messageHelper=new Nr(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_REVOKED_MESSAGE:I},helper:{registerWorkflowStep:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(g,I,this._handleC2CNotifyMessage,this),E(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(s){const{C2cNotifyMsgArray:n}=s;n?.forEach(g=>{Object.keys(g).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(g)})}_handleC2CRevokeMessage(s){return mA(this,void 0,void 0,function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:n}}=s;yield this._parseAndEmitC2CRevokedMessages(n)}catch(n){console.debug(n)}})}_parseAndEmitC2CRevokedMessages(s){return mA(this,void 0,void 0,function*(){const n=[],{notificationCenter:g,OuterEvent:I,common:{getCurrentUserID:E}}=this._core;s.forEach(m=>{var D;const{MsgRand:M,MsgSeq:T,To_Account:P,From_Account:W,RevokerInfo:{Revoker_Account:iA,Revoke_Reason:EA}}=m,RA=E()===W?`C2C${P}`:`C2C${W}`,kA=((D=m?.RevokerInfo)===null||D===void 0?void 0:D.Reason)||EA,xA=this._messageHelper.generateRevokeMessage({conversationID:RA,sequence:T,random:M,revoker:iA,revokeReason:kA});n.push(xA)}),n.length>0&&(yield this._messageHelper.updateRevokerInfo(n),g.emitOuterEvent(I.MESSAGE_REVOKED,{name:I.MESSAGE_REVOKED,data:n}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(s){return mA(this,void 0,void 0,function*(){const{revokedMessageList:n}=s.result;yield this._parseAndEmitC2CRevokedMessages(n)})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{C2C_REVOKED_MESSAGE:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleC2CNotifyMessage,this)}},EC=class{init(s){this._messageHelper=new Nr(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{GROUP_MESSAGE_REVOKED:I}}=s;n.subscribeInnerEvent(g,I,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(s){const{GroupTips:n}=s;n?.forEach(g=>{var I;Array.isArray((I=g?.MsgBody)===null||I===void 0?void 0:I.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(g)})}_handleGroupRevokeMessage(s){return mA(this,void 0,void 0,function*(){try{const{RevokerInfo:n,MsgBody:{GroupWithdrawInfoArray:g},GroupInfo:I}=s,E=[],m=[],{notificationCenter:D,OuterEvent:M,utils:{isEmpty:T},common:{isCommunity:P}}=this._core;let W=!1;I&&(W=P({groupID:I.GroupId})||!T(I.TopicId)),g.forEach(iA=>{const{Random:EA,MsgSeq:RA,GroupId:kA,MsgClientTime:xA,TinyId:LA,TopicId:SA,RevokerInfo:{Revoker_Account:OA=n?.Revoker_Account||"",Reason:JA=n?.Reason||""}}=iA,re=SA?`GROUP${SA}`:`GROUP${kA}`,ne=this._messageHelper.generateRevokeMessage({conversationID:re,sequence:RA,random:EA,tinyID:LA,clientTime:xA,revoker:OA,revokeReason:JA});W?(ne.revokerInfo.nick=I.From_AccountNick,ne.revokerInfo.avatar=I.From_AccountHeadurl,E.push(ne)):m.push(ne)}),m.length>0&&(yield this._messageHelper.updateRevokerInfo(m),E.push(...m)),E.length!==0&&D.emitOuterEvent(M.MESSAGE_REVOKED,{name:M.MESSAGE_REVOKED,data:E})}catch(n){console.debug(n)}})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{GROUP_MESSAGE_REVOKED:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleGroupNotifyMessage,this)}};var zI=new class{constructor(){this._c2cMessageReceiver=new bu,this._groupMessageReceiver=new EC}init(s){this._c2cMessageReceiver.init(s),this._groupMessageReceiver.init(s)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}},ah=new class{constructor(){this._core=null}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"translateText",context:this})}translateText(s){return mA(this,void 0,void 0,function*(){try{const{sourceLanguage:n,sourceTextList:g,targetLanguage:I}=s,E=yield function(m,D){return mA(this,void 0,void 0,function*(){var M,T;const{sourceTextList:P,sourceLanguage:W,targetLanguage:iA}=m,{store:EA,common:RA}=D,kA={SourceText:P,Source:W,Target:iA,FromAccount:(M=EA.get("login"))===null||M===void 0?void 0:M.tinyID,SDKAppID:(T=EA.get("instance"))===null||T===void 0?void 0:T.sdkAppId},xA=yield RA.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:kA});if(xA){const{CmdErrorCode:LA,TargetText:SA}=xA;return{cmdErrorCode:LA,translatedTextList:SA}}})}({sourceLanguage:n,sourceTextList:g,targetLanguage:I},this._core);if(E){const{cmdErrorCode:{ErrorCode:m,ErrorInfo:D},translatedTextList:M}=E;if(m===0)return{code:0,data:{translatedTextList:M}};throw{errorCode:m,errorInfo:D,message:D}}}catch(n){const{errorCode:g,errorInfo:I}=n||{};throw new this._core.helper.ChatError({functionName:"translateText",code:g,message:I})}})}},ku=new class{init(s){this._core=s,s.helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(s){return mA(this,void 0,void 0,function*(){var n;const{message:g,language:I=Tc.ZH_PY}=s;let{url:E}=g.payload||{};const m=this._core.common.getCurrentUserID();g.from===m&&g.flow==="out"&&(E=g.payload.remoteAudioUrl),this._validateVoiceFormat(E);const D=((n=dI.exec(E))===null||n===void 0?void 0:n[1])||"mp3",M=EI[I]||KI;try{const T=yield function(P){var W;const{store:iA,common:EA}=Us.core,{url:RA,format:kA,serverLanguageType:xA}=P,LA={BytesUrl:RA,BytesEngServiceType:xA,BytesVoiceFormat:kA,Uint32Sdkappid:(W=iA.get("instance"))===null||W===void 0?void 0:W.sdkAppId,Uint64SourceType:0};return EA.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:LA})}({url:E,format:D,serverLanguageType:M});if(T){const{CmdErrorCode:P,BytesResult:W}=T;if(P.ErrorCode===0)return{code:0,data:{result:W}};throw{code:P.ErrorCode,message:P.ErrorInfo}}}catch(T){const{code:P,message:W}=T||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:P,message:W})}})}_validateVoiceFormat(s){if(!dI.test(s))throw new this._core.common.ChatError({code:2119})}};class hI{constructor(n){const{constants:g,common:I,utils:E}=Us.core,{CONV_C2C:m,CONV_GROUP:D}=g.OuterConstant,{ID:M,tinyID:T,from:P,to:W,clientTime:iA=I.timeManager.getServerTimeSeconds()||0,random:EA,sequence:RA,cloudCustomData:kA="",nick:xA="",avatar:LA="",clientSequence:SA,conversationType:OA,groupID:JA,_elements:re,time:ne}=n;this.ID=M||`${T}-${iA}-${EA}`,this.messageRandom=EA,this.from=P,this.messageSender=P,this.time=ne,this.messageSequence=RA,this.clientSequence=SA||RA,this.clientTime=iA,this.cloudCustomData=kA,this.messageReceiver=W,this.avatar=LA,this.nick=xA;const _i=E.deepCopyWithMethods(re);_i.forEach(Ti=>{Ti.payload=Ti.content,delete Ti.content}),this.messageBody=_i,M?OA.startsWith(m)?this.receiverUserID=W:OA.startsWith(D)&&(this.receiverGroupID=W):JA?(this.receiverGroupID=JA,this.messageReceiver=JA):W&&(this.receiverUserID=W,this.messageReceiver=W)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(n=>n.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class rl{static parseServerPushElement(n){const{MsgContent:g}=n,{MsgList:I=[],CompatibleText:E,AbstractList:m,Title:D,PbMsgKey:M,JsonMsgKey:T}=g||{},P=I.map(W=>Er(W));return new rl({messageList:P,title:D,abstractList:m,compatibleText:E,pbDownloadKey:M,downloadKey:T})}constructor(n){this.type=Us.core.constants.OuterConstant.MSG_MERGER;const{messageList:g,title:I,abstractList:E,compatibleText:m,pbDownloadKey:D="",downloadKey:M="",version:T=0,layersOverLimit:P=!1}=n,W=[];g.forEach(iA=>{if(iA){const EA=new hI(iA);W.push(EA)}}),this.content={messageList:W,title:I,abstractList:E,compatibleText:m,version:T,downloadKey:M,pbDownloadKey:D,layersOverLimit:P}}validateBeforeSend(){const{isEmpty:n}=Us.core.helper;return n(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{abstractList:E,compatibleText:m,downloadKey:D,layersOverLimit:M,pbDownloadKey:T,title:P,version:W,messageList:iA}=I;return{MsgType:this.type,MsgContent:{AbstractList:E,CompatibleText:m,JsonMsgKey:D,LayersOverLimit:M,PbMsgKey:T,Title:P,Version:W,MsgList:Ac(iA)}}}}var dC=new class{init(s){this._core=s;const{message:n,helper:g,constants:{OuterConstant:I}}=s;n.messageFactory.registerElementClass(I.MSG_MERGER,rl),g.registerApi({apiName:"createMergerMessage",context:this}),g.registerApi({apiName:"sendMessage",context:this,matcher:E=>E[0].type===I.MSG_MERGER}),g.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(s){const{common:n}=this._core;if(!s)return null;const g=new rl(s.payload),I=n.getCurrentUserID(),E=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:I}));return E.setRelayFlag(!0),E.setElement(g),E}sendMessage(s,n){return mA(this,void 0,void 0,function*(){var g,I,E;try{const m=function(P){let W="utf-8";Us.core.helper.IN_BROWSER&&document&&(W=document.charset.toLowerCase());let iA,EA=0,RA=0;if(RA=P.length,W==="utf-8"||W==="utf8")for(let kA=0;kA11264){D=this._core.utils.deepCopyWithMethods(s);try{const{JsonMsgKey:P,PbMsgKey:W}=yield function(EA){return mA(this,void 0,void 0,function*(){const{payload:{messageList:RA}}=EA,kA={MsgList:Ac(RA)};return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:kA})})}(D),{payload:iA}=D;M=new rl(Object.assign(Object.assign({},iA),{messageList:[],downloadKey:P,pbDownloadKey:W})),D.setElement(M)}catch(P){console.error(P)}}const{data:{message:T}}=yield(E=(I=(g=this._core)===null||g===void 0?void 0:g.message)===null||I===void 0?void 0:I.messageSender)===null||E===void 0?void 0:E.sendMessage(D,n);return M&&T.setElement(s._elements),{code:0,data:{message:T}}}catch(m){const{errorCode:D}=m;throw new this._core.helper.ChatError({code:D})}})}downloadMergerMessage(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,g=s.payload,{downloadKey:I,pbDownload:E,type:m,messageList:D}=g,M=yo(g,["downloadKey","pbDownload","type","messageList"]);try{const T=yield function(iA){return mA(this,void 0,void 0,function*(){return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:iA}})})}(I),{MsgList:P}=T||{},W=P?.map(iA=>{const EA=Er(iA);return new hI(EA)});return typeof s.isOnlineMessage=="function"?s.setElement({type:s.type,content:Object.assign({messageList:W},M)}):(s.payload.messageList=W,s.payload.downloadKey="",s.payload.pbDownloadKey=""),n.info("downloadMergerMessage",` success downloadKey:${I}`),s}catch(T){const{errorCode:P}=T;throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:P,moreMessage:I})}})}},ra=new class{init(s){this._core=s,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(s){return mA(this,void 0,void 0,function*(){const{appStore:n,message:g,common:{getCurrentUserID:I},utils:{isArray:E}}=this._core,{GroupId:m,To_Account:D}=s;s.From_Account=s.From_Account||I();let M=null;if(m){M=this._generateGroupMessage(Object.assign(Object.assign({},s),{ToGroupId:m}));const T=n.userStore.getUserProfile(I());M.level=T?.level||0,E(D)&&D.length>0&&(M._receiverList=D)}else D&&(M=this._generateC2CMessage(s));return g.messageSender.sendMessage(M,s)})}_generateC2CMessage(s){const{message:n,OuterConstant:{CONV_C2C:g}}=this._core,I=g,E=n.messageHelper.parseServerPushMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:I,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}_generateGroupMessage(s){const{message:n,OuterConstant:{CONV_GROUP:g}}=this._core,I=g,E=n.messageHelper.parseServerGroupMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:I,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}},tc=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:I},InnerEventSubType:{GROUP_MESSAGE_PINNED:E}}=s;g.subscribeInnerEvent(I,E,this._handleGroupMessagePinned,this),n.registerApi({apiName:"pinGroupMessage",context:this}),n.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,common:{isTopic:g},OuterConstant:{GROUP_ID_PREFIX:I},helper:{ChatError:E}}=this._core;let{groupID:m,message:D,isPinned:M}=s;const{sequence:T}=D;try{return yield function(P){return mA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:W,getCurrentUserID:iA}}=Us.core,{groupID:EA,sequence:RA,isPinned:kA}=P,xA=iA(),LA=kA?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",SA={GroupId:EA,MsgSeq:RA};return kA?SA.Pinner_Account=xA:SA.UnPinner_Account=xA,W({servcmd:LA,data:SA})})}({groupID:m,sequence:T,isPinned:M}),{code:0,data:{}}}catch(P){const{errorCode:W,errorInfo:iA}=P||{};throw new E({code:W,message:iA})}})}getPinnedGroupMessageList(s){return mA(this,void 0,void 0,function*(){let n=[];try{const g=yield function(I){return mA(this,void 0,void 0,function*(){const{groupID:E}=I,{common:{buildAndSendPacket:m}}=Us.core;return m({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:E}})})}({groupID:s});if(g){const{PinnedMsgList:I=[]}=g;n=yield this._updatePinnedMessageInfo({serverPinnedMessageList:I,groupID:s})}return{code:0,data:{messageList:n}}}catch(g){throw g}})}_handleGroupMessagePinned(s){const{message:{messageHelper:n,messageFactory:g},notificationCenter:I,OuterEvent:E,OuterConstant:m}=this._core;s.GroupTips.forEach(D=>{const{ToGroupId:M,MsgBody:{PinnedMsg:T,OpType:P,MsgOperatorMemberExtraInfo:W,SdkGroupMessageId:iA}}=D,{UserId:EA,NickName:RA="",ImageUrl:kA=""}=W;let xA=null,LA=!1;if(P===dd){LA=!0;const SA=n.parseServerGroupMessage(T);xA=g.createMessage(Object.assign(Object.assign({},SA),{conversationType:m.CONV_GROUP,flow:"in"})),xA.setElement(SA.elements),xA.pinnerInfo={userID:EA,nick:RA,avatar:kA}}else if(P===vE){const{ClientTime:SA,Random:OA,SenderTinyId:JA,ServerTime:re,MsgSeq:ne}=iA;xA={ID:`${JA}-${SA}-${OA}`,sequence:ne,random:OA,time:re,clientTime:SA}}xA&&I.emitOuterEvent(E.PINNED_GROUP_MESSAGE_UPDATED,{name:E.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:M,message:xA,isPinned:LA,operatorInfo:{userID:EA,nick:RA,avatar:kA}}})})}_findMessageBySequence(s,n){const{message:{messageDataHandler:g}}=this._core;return[...g.getLocalMessageList(s),...g.getSparseMessageList(s)].find(I=>I.sequence===n)}_updatePinnedMessageInfo(s){return mA(this,arguments,void 0,function*({serverPinnedMessageList:n,groupID:g}){const{OuterConstant:{CONV_GROUP:I},utils:{isEmpty:E}}=this._core,m=[],D=[],M=[],T=new Map,P=`${I}${g}`;for(let iA=0;iA{const{sequence:kA}=RA,xA=T.get(kA),LA=iA[xA]||{userID:xA,nick:"",avatar:""};RA.pinnerInfo=LA}),m.sort((RA,kA)=>RA.sequence-kA.sequence),m}return[]})}_fetchPinnedMessageInfo(s){return mA(this,void 0,void 0,function*(){var n,g;const{message:{messageHistory:I},user:{userProfile:E},utils:{isArray:m}}=this._core,{conversationID:D,messageSequenceList:M,pinnerIDList:T}=s,P=yield Promise.all([this._fetchMessageBySequence({conversationID:D,messageSequenceList:M}),E?.getUserProfile({userIDList:T})]);if(m(P)){const W={};return(((n=P[1])===null||n===void 0?void 0:n.data)||[]).forEach(iA=>{const{userID:EA,nick:RA="",avatar:kA=""}=iA;W[EA]={userID:EA,nick:RA,avatar:kA}}),{messageList:((g=P[0])===null||g===void 0?void 0:g.messageList)||[],pinnerInfoMap:W}}})}_fetchMessageBySequence(s){return mA(this,void 0,void 0,function*(){const{utils:{isEmpty:n},message:{messageHistory:g}}=this._core,{conversationID:I,messageSequenceList:E}=s;return n(E)?[]:g.getGroupRoamingMessagesByAnchor({conversationID:I,messageSequenceList:E,getType:3})})}};class lg{constructor(n){this.eventType=Nc.DATA,this.index=0,this.markdown="",this.isLast=!1,this.binaryData=null;const{EventType:g,Index:I,Markdown:E,IsLast:m,BinaryData:D}=n;this.eventType=g,this.index=I,this.markdown=E,this.isLast=m,this.binaryData=D}}var BI=new class{constructor(){this._messageMap=new Map,this._retryCountMap=new Map}init(s){this._core=s;const{notificationCenter:n,OuterEvent:{MESSAGE_RECEIVED:g},InnerEvent:{HISTORY_MESSAGE_FETCHED:I},common:{workflowManager:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(co,this._handleStreamMessageChunkPush,this),n.subscribeOuterEvent(g,this._handleMessageReceived,this),n.subscribeInnerEvent(I,this.processHistoryMessage,this),E.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.STREAM_MESSAGE_RECOVER,this._recoverStreamMessage,this)}processHistoryMessage(s){const{utils:{isEmpty:n,safeStringify:g},ssoLog:I}=this._core;try{s?.forEach(E=>{var m;if(this._isValidStreamMessage(E)){const D=(m=E?._elements)===null||m===void 0?void 0:m[0],{streamMessageID:M,markdown:T,binaryData:P}=D?.content||{};n(T)&&n(P)?(this._messageMap.set(M,E),this._fetchStreamMessageChunks(E)):D.content.isStreamEnded=!0}})}catch(E){I.error("processHistoryMessage.error",g(E))}}_handleMessageReceived(s){const n=s.data;n?.forEach(g=>{var I,E;if(this._isValidStreamMessage(g)){const{streamMessageID:m}=((E=(I=g?._elements)===null||I===void 0?void 0:I[0])===null||E===void 0?void 0:E.content)||{};m&&(this._messageMap.set(m,g),this._fetchStreamMessageChunks(g))}})}_isValidStreamMessage(s){var n,g;const{utils:{isEmpty:I}}=this._core,{streamMessageID:E}=((g=(n=s?._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g.content)||{};return s.type===Pr.MSG_STREAM&&!I(E)}_fetchStreamMessageChunks(s){return mA(this,void 0,void 0,function*(){var n,g;const{constants:{ERROR_CODE:I},ssoLog:E,utils:{safeStringify:m}}=this._core,D=(n=s._elements)===null||n===void 0?void 0:n[0],M=(g=D?.content)===null||g===void 0?void 0:g.streamMessageID;try{const{from:T,to:P}=s,W=D.getLatestIndex();if(D.content.isStreamEnded)return;const iA=yield function(EA){return mA(this,void 0,void 0,function*(){const{from:RA,to:kA,streamMessageID:xA,index:LA}=EA,SA={From_Account:RA,To_Account:kA,StreamMsgID:xA,AckIndex:LA};return Us.core.common.buildAndSendPacket({servcmd:"StreamMsg.GetStreamHttp",data:SA,timeout:5e3})})}({from:T,to:P,streamMessageID:M,index:W});if(iA){const{ErrorCode:EA,ErrorInfo:RA}=iA;if(EA!==0)throw D.content.errorCode=EA,D.content.errorMessage=RA,{errorCode:EA,errorMessage:RA}}}catch(T){if(T.errorCode===I.NETWORK_TIMEOUT&&this._shouldRetryFetch(M)){const P=this._retryCountMap.get(M)||0;E.debug("_fetchStreamMessageChunks.timeout",`error: ${m(T)} retried: ${P}`),this._retryCountMap.set(M,P+1),this._fetchStreamMessageChunks(s)}else E.error("_fetchStreamMessageChunks.error",m(T))}})}_shouldRetryFetch(s){const{utils:{isNumber:n}}=this._core;if(!this._retryCountMap.has(s))return this._retryCountMap.set(s,1),!0;const g=this._retryCountMap.get(s);return!!(n(g)&&g<=3)}_onStreamEnded(s,n,g){const{ssoLog:I}=this._core;g.content.isStreamEnded=!0,g.stopReason=n,this._messageMap.delete(s),I.debug("_onStreamEnded",`streamMessage end, StopReason: ${n}`)}_handleStreamMessageChunkPush(s){var n;const{ssoLog:g}=this._core,{StopReason:I,Chunks:E,StreamID:m}=s?.body||{},D=this._messageMap.get(m);if(!D)return void g.warn(`_handleStreamMessageChunkPush, unfounded message: ${m}`);const M=(n=D._elements)===null||n===void 0?void 0:n[0];if(M&&this._validateExpectedChunk(M,E)){if(E.length>0){const T=E.map(P=>new lg(P));M.updateChunks(T)}this._emitMessageModify(D),function(T,P){mA(this,void 0,void 0,function*(){const{common:{generateProtocolData:W},utils:{safeStringify:iA},ssoLog:EA,channel:RA}=Us.core,kA={StreamMsgID:T,AckIndex:P};try{const xA=W({servcmd:"StreamMsg.AckHttp",data:kA});RA.sendPacket(xA)}catch(xA){EA.debug("sendStreamChunkAck",iA(xA))}})}(m,M.getLatestIndex()),M.content.isStreamEnded&&this._onStreamEnded(m,I,M)}}_emitMessageModify(s){const{notificationCenter:n,OuterEvent:{MESSAGE_MODIFIED:g}}=this._core;n.emitOuterEvent(g,{name:g,data:[s]})}_validateExpectedChunk(s,n){const g=s.getLatestIndex()+1;let I=!1;for(let E=0;Em.Index).join(", ")}]`),!1}return!0}_recoverStreamMessage(){this._retryCountMap.clear();const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{const g=Array.from(this._messageMap.entries());for(let I=Math.max(0,g.length-300);I{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA);if(kA.status===200)n(null,SA);else{if(EA&&!RA.includes(EA))return s.url=this._domainName2IP(RA,EA),s.uploadByIP=!0,this.request(s,n);n({code:kA.status,message:JSON.stringify(kA.responseText)},SA)}},kA.onerror=()=>{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA),OA={code:kA.status,message:kA.status===0?"CORS blocked or network error":JSON.stringify(kA.responseText)};n(OA,SA)},s.onProgress&&kA.upload&&(kA.upload.onprogress=LA=>{const{total:SA,loaded:OA}=LA,JA=Math.min(Math.floor(100*OA/SA),100);s.onProgress({total:SA,loaded:OA,percent:JA/100})}),kA.send(P),kA})}_buildResponse(s,n){const g={};return s.getAllResponseHeaders().trim().split(`
-`).forEach(I=>{if(I){const[E,m]=I.split(":").map(D=>D.trim());g[E.toLowerCase()]=m}}),{statusCode:s.status,statusMessage:s.statusText,headers:g,data:n}}_getResponseBody(s,n,g){return s.status===200&&n?{location:n,uploadIP:g}:{response:s.responseText,uploadIP:g}}_queryString(s,n="&",g="="){var I;const{isEmpty:E,isPlainObject:m}=(I=this._core)===null||I===void 0?void 0:I.utils;return E(s)?"":m(s)?Object.keys(s).map(D=>{const M=encodeURIComponent(D)+g;return Array.isArray(s[D])?s[D].map(T=>M+encodeURIComponent(T)).join(n):M+encodeURIComponent(s[D])}).filter(Boolean).join(n):void 0}_domainName2IP(s,n){return s.replace(/^http(s)?:\/\/(.*?)\//,`https://${n}/`)}};const Uu=["unknown","image","video","audio","log"];var QI=new class{init(s){this._core=s}request(s,n){var g;const{MINI_APP_NAMESPACE:I,IN_ALIPAY_MINI_APP:E,isUniIOSApp:m}=(g=this._core)===null||g===void 0?void 0:g.utils,{resources:D="",headers:M={},url:T,downloadUrl:P=""}=s;let W=T,iA=null;const EA=P?P.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!EA)return void console.warn("message Invalid download URL format");const RA=decodeURIComponent(EA[3]),kA=RA.includes("?")?RA.split("?")[0]:RA||"",xA={key:s.fileKey||kA,success_action_status:200,"Content-Type":""},LA={};if(m()){const[OA,JA]=T.split("?sign=");JA&&(W=`${OA}?sign=${encodeURIComponent(JA)}`,LA.sign=decodeURIComponent(JA),LA.signature=decodeURIComponent(JA))}let SA={url:W,header:M,name:"file",filePath:D,formData:Object.assign(Object.assign({},xA),LA),timeout:s.timeout||3e5};if(E){const{name:OA}=SA,JA=yo(SA,["name"]);SA=Object.assign(Object.assign({},JA),{fileName:"file",fileType:s.fileType?Uu[s.fileType]:"image"})}return iA=I.uploadFile(Object.assign(Object.assign({},SA),{success:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})},fail:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})}})),iA.onProgressUpdate&&iA.onProgressUpdate(OA=>{s.onProgress&&s.onProgress({total:OA.totalBytesExpectedToSend||0,loaded:OA.totalBytesSent||0,percent:OA.progress?Math.floor(OA.progress)/100:0})}),iA}_handleResponse(s){const{downloadUrl:n,response:g,callback:I}=s,E={};if(g.header)for(const D in g.header)g.header.hasOwnProperty(D)&&(E[D.toLowerCase()]=g.header[D]);const m=+g.statusCode;m===200?I(null,{statusCode:m,headers:E,data:Object.assign(Object.assign({},g.data),{location:n})}):I({code:m,message:JSON.stringify(g.data)},{statusCode:m,headers:E,data:void 0})}};function al(s){return function(n){return Object.prototype.toString.call(n).match(/^\[object (.*)\]$/)[1].toLowerCase()}(s)==="file"}function Gr(s){const n=s||99999999;return Math.round(Math.random()*n)}function br(s,n=!0,g=!0){const I=Date.now();return n?g?I-s+" ms":`${Math.round((I-s)/1e3)} s`:g?I-s:Math.round((I-s)/1e3)}function Ig(s){return`${Array.from({length:8},()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1)).join("")}-${s}`}function rr(s,n){return Math.round(Number(s)*10**n)/10**n}function vr(s){return s<=1048576?`${rr(s/1024,1)}KB/s`:`${rr(s/1048576,1)}MB/s`}const ic="TIMImageElem",Fg="TIMSoundElem",xa="TIMFileElem",Ll="TIMVideoFileElem",da="RichMediaMessagePlugin",pI=["rich.my-imcloud.com","imrich.qcloud.com"],ZI=1,Ca=2,gl=3,NE=255;var XI;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(XI||(XI={}));const GE={wechat:/^(wxfile:\/\/tmp_|http:\/\/temp\/|cloud:\/\/temp-)/,alipay:/^(https:\/\/resource\/|alipayfile:\/\/tmp\/)/,baidu:/^(http:\/\/tmp\/|swanfile:\/\/tmp_)/,bytedance:/^(ttfile:\/\/tmp_|\/(var|tmp)\/|tttemp:\/\/)/,qq:/^(qqfile:\/\/tmp_|http:\/\/qtemp\/)/},xr=Symbol("isCustomUpload");var $I,Ut=new class{init(s){this._core=s}addAuthToUrl(s=""){if(this._isMiniProgramTempFile(s))return s;const n=function(g){return g?g.startsWith("https://")?g:g.startsWith("http://")?g.replace("http://","https://"):g:""}(s);return this.processResourceUrl(n)}removeAuthToUrl(s){return function(n,g){const[I,E]=n.split("?");if(!E)return I;const m=E.split("&").reduce((M,T)=>{const[P,W]=T.split("=");return P&&P!==g&&(M[P]=W||""),M},{}),D=Object.keys(m).map(M=>`${M}${m[M]?`=${m[M]}`:""}`).join("&");return D?`${I}?${D}`:I}(s,"authKey")}_isMiniProgramTempFile(s){return!!this.getPlatformFlags().IN_MINI_APP&&Object.values(GE).some(n=>n.test(s))}extractFileFromInput(s){const{utils:{isArray:n}}=this._core;return al(s)?s:function(g){if(typeof g!="object"||g===null)return!1;const I=Object.getPrototypeOf(g);if(I===null)return!0;let E=I;for(;Object.getPrototypeOf(E)!==null;)E=Object.getPrototypeOf(E);return I===E}(s)&&typeof uni<"u"?n(s.tempFiles)&&s.tempFiles.length>0?s.tempFiles[0]:n(s.files)?s.files[0]:s.tempFile?s.tempFile:null:s instanceof HTMLInputElement&&s.files&&s.files.length>0?s.files[0]:null}probeImageWidthHeight(s){return mA(this,void 0,void 0,function*(){var n;const{IN_MINI_APP:g,IN_BROWSER:I}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return this._shouldSkipProbing()?{width:0,height:0}:I?this._probeImageDimensionsWeb(s):g?this._probeImageDimensionsMiniApp(s):void 0})}isSimpleCos(){var s;const n=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{simple_cos:g}=n;return g!=="0"}getFileDNList(){var s;let n=pI;const g=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{file_dn_list:I}=g;if(I===void 0)return n;try{JSON.parse(I).forEach(E=>{n.includes(E)||n.push(E)})}catch(E){console.warn(E),n=pI}return n}getPlatform(){var s;return(s=this._core)===null||s===void 0?void 0:s.utils.platform}generateUUID(s,n){var g;let I=`${this.getSDKAppID()}-${this.getCurrentUserID()}-${(g=this._core)===null||g===void 0?void 0:g.utils.randomString()}`;if(n)return`${I}.${n}`;const E=s.name||s.value||s.url||s.tempFilePath,m=E&&E.slice(E.lastIndexOf(".")+1);return m&&(I=`${I}.${m}`),I}processResourceUrl(s){if(!s)return"";let n=s;const g=this.getFileDownloadProxy(),I=this.getAuthKey(),E=this.getFileDNList();return g&&(s.startsWith("http://")?n=s.replace(/^http:\/\/[^/]+/,g):s.startsWith("https://")&&(n=s.replace(/^https:\/\/[^/]+/,g))),I&&n.indexOf("authKey=")===-1&&function(D,M){let T=!1;if(D){const P=D.match(/:\/\/([0-9]?\.)?(.[^/:]+)/),W=P&&P[2]||"";if(W.includes("rich-dev"))return!0;for(let iA=0;iA-1?`${n}&authKey=${I}`:`${n}?authKey=${I}`),n}getCurrentUserID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.userId}getSDKAppID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.sdkAppId}getFileDownloadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileDownloadProxy)||""}getFileUploadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileUploadProxy)||""}getAuthKey(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.authKey)||""}isPrivateNetWork(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.proxyServer}getPlatformFlags(){var s;const{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:I,IN_UNI_NATIVE_APP:E}=(s=this._core)===null||s===void 0?void 0:s.utils;return{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:I,IN_UNI_NATIVE_APP:E}}isEmpty(s){var n;const{isEmpty:g}=(n=this._core)===null||n===void 0?void 0:n.utils;return g(s)}generateURL(s,n){const{needAddAuthToUrl:g=!0}=n||{};return g?this.addAuthToUrl(s):s}_probeImageDimensionsMiniApp(s){var n;const{MINI_APP_NAMESPACE:g}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return new Promise(I=>{g.getImageInfo({src:s,success:E=>I({width:E.width,height:E.height}),fail:()=>I({width:0,height:0})})})}_shouldSkipProbing(){var s;const{IN_RN_APP:n,IS_IE:g,IE_VERSION:I,IN_WX_MINI_GAME:E}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};return n||g&&I===9||E}_probeImageDimensionsWeb(s){return new Promise(n=>{const g=new Image,I=()=>{g.onload=null,g.onerror=null,g.src=""};g.onload=()=>{n({width:g.width,height:g.height}),I()},g.onerror=()=>{n({width:0,height:0}),I()},g.src=s})}},Fu={exports:{}},Ou=($I||($I=1,function(s){s.exports=function(n){var g=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function I(LA,SA){var OA=LA[0],JA=LA[1],re=LA[2],ne=LA[3];JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&re|~JA&ne)+SA[0]-680876936|0)<<7|OA>>>25)+JA|0)&JA|~OA&re)+SA[1]-389564586|0)<<12|ne>>>20)+OA|0)&OA|~ne&JA)+SA[2]+606105819|0)<<17|re>>>15)+ne|0)&ne|~re&OA)+SA[3]-1044525330|0)<<22|JA>>>10)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&re|~JA&ne)+SA[4]-176418897|0)<<7|OA>>>25)+JA|0)&JA|~OA&re)+SA[5]+1200080426|0)<<12|ne>>>20)+OA|0)&OA|~ne&JA)+SA[6]-1473231341|0)<<17|re>>>15)+ne|0)&ne|~re&OA)+SA[7]-45705983|0)<<22|JA>>>10)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&re|~JA&ne)+SA[8]+1770035416|0)<<7|OA>>>25)+JA|0)&JA|~OA&re)+SA[9]-1958414417|0)<<12|ne>>>20)+OA|0)&OA|~ne&JA)+SA[10]-42063|0)<<17|re>>>15)+ne|0)&ne|~re&OA)+SA[11]-1990404162|0)<<22|JA>>>10)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&re|~JA&ne)+SA[12]+1804603682|0)<<7|OA>>>25)+JA|0)&JA|~OA&re)+SA[13]-40341101|0)<<12|ne>>>20)+OA|0)&OA|~ne&JA)+SA[14]-1502002290|0)<<17|re>>>15)+ne|0)&ne|~re&OA)+SA[15]+1236535329|0)<<22|JA>>>10)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&ne|re&~ne)+SA[1]-165796510|0)<<5|OA>>>27)+JA|0)&re|JA&~re)+SA[6]-1069501632|0)<<9|ne>>>23)+OA|0)&JA|OA&~JA)+SA[11]+643717713|0)<<14|re>>>18)+ne|0)&OA|ne&~OA)+SA[0]-373897302|0)<<20|JA>>>12)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&ne|re&~ne)+SA[5]-701558691|0)<<5|OA>>>27)+JA|0)&re|JA&~re)+SA[10]+38016083|0)<<9|ne>>>23)+OA|0)&JA|OA&~JA)+SA[15]-660478335|0)<<14|re>>>18)+ne|0)&OA|ne&~OA)+SA[4]-405537848|0)<<20|JA>>>12)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&ne|re&~ne)+SA[9]+568446438|0)<<5|OA>>>27)+JA|0)&re|JA&~re)+SA[14]-1019803690|0)<<9|ne>>>23)+OA|0)&JA|OA&~JA)+SA[3]-187363961|0)<<14|re>>>18)+ne|0)&OA|ne&~OA)+SA[8]+1163531501|0)<<20|JA>>>12)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA&ne|re&~ne)+SA[13]-1444681467|0)<<5|OA>>>27)+JA|0)&re|JA&~re)+SA[2]-51403784|0)<<9|ne>>>23)+OA|0)&JA|OA&~JA)+SA[7]+1735328473|0)<<14|re>>>18)+ne|0)&OA|ne&~OA)+SA[12]-1926607734|0)<<20|JA>>>12)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA^re^ne)+SA[5]-378558|0)<<4|OA>>>28)+JA|0)^JA^re)+SA[8]-2022574463|0)<<11|ne>>>21)+OA|0)^OA^JA)+SA[11]+1839030562|0)<<16|re>>>16)+ne|0)^ne^OA)+SA[14]-35309556|0)<<23|JA>>>9)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA^re^ne)+SA[1]-1530992060|0)<<4|OA>>>28)+JA|0)^JA^re)+SA[4]+1272893353|0)<<11|ne>>>21)+OA|0)^OA^JA)+SA[7]-155497632|0)<<16|re>>>16)+ne|0)^ne^OA)+SA[10]-1094730640|0)<<23|JA>>>9)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA^re^ne)+SA[13]+681279174|0)<<4|OA>>>28)+JA|0)^JA^re)+SA[0]-358537222|0)<<11|ne>>>21)+OA|0)^OA^JA)+SA[3]-722521979|0)<<16|re>>>16)+ne|0)^ne^OA)+SA[6]+76029189|0)<<23|JA>>>9)+re|0,JA=((JA+=((re=((re+=((ne=((ne+=((OA=((OA+=(JA^re^ne)+SA[9]-640364487|0)<<4|OA>>>28)+JA|0)^JA^re)+SA[12]-421815835|0)<<11|ne>>>21)+OA|0)^OA^JA)+SA[15]+530742520|0)<<16|re>>>16)+ne|0)^ne^OA)+SA[2]-995338651|0)<<23|JA>>>9)+re|0,JA=((JA+=((ne=((ne+=(JA^((OA=((OA+=(re^(JA|~ne))+SA[0]-198630844|0)<<6|OA>>>26)+JA|0)|~re))+SA[7]+1126891415|0)<<10|ne>>>22)+OA|0)^((re=((re+=(OA^(ne|~JA))+SA[14]-1416354905|0)<<15|re>>>17)+ne|0)|~OA))+SA[5]-57434055|0)<<21|JA>>>11)+re|0,JA=((JA+=((ne=((ne+=(JA^((OA=((OA+=(re^(JA|~ne))+SA[12]+1700485571|0)<<6|OA>>>26)+JA|0)|~re))+SA[3]-1894986606|0)<<10|ne>>>22)+OA|0)^((re=((re+=(OA^(ne|~JA))+SA[10]-1051523|0)<<15|re>>>17)+ne|0)|~OA))+SA[1]-2054922799|0)<<21|JA>>>11)+re|0,JA=((JA+=((ne=((ne+=(JA^((OA=((OA+=(re^(JA|~ne))+SA[8]+1873313359|0)<<6|OA>>>26)+JA|0)|~re))+SA[15]-30611744|0)<<10|ne>>>22)+OA|0)^((re=((re+=(OA^(ne|~JA))+SA[6]-1560198380|0)<<15|re>>>17)+ne|0)|~OA))+SA[13]+1309151649|0)<<21|JA>>>11)+re|0,JA=((JA+=((ne=((ne+=(JA^((OA=((OA+=(re^(JA|~ne))+SA[4]-145523070|0)<<6|OA>>>26)+JA|0)|~re))+SA[11]-1120210379|0)<<10|ne>>>22)+OA|0)^((re=((re+=(OA^(ne|~JA))+SA[2]+718787259|0)<<15|re>>>17)+ne|0)|~OA))+SA[9]-343485551|0)<<21|JA>>>11)+re|0,LA[0]=OA+LA[0]|0,LA[1]=JA+LA[1]|0,LA[2]=re+LA[2]|0,LA[3]=ne+LA[3]|0}function E(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA.charCodeAt(SA)+(LA.charCodeAt(SA+1)<<8)+(LA.charCodeAt(SA+2)<<16)+(LA.charCodeAt(SA+3)<<24);return OA}function m(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA[SA]+(LA[SA+1]<<8)+(LA[SA+2]<<16)+(LA[SA+3]<<24);return OA}function D(LA){var SA,OA,JA,re,ne,_i,Ti=LA.length,kt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)I(kt,E(LA.substring(SA-64,SA)));for(OA=(LA=LA.substring(SA-64)).length,JA=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],SA=0;SA>2]|=LA.charCodeAt(SA)<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(I(kt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return re=(re=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),ne=parseInt(re[2],16),_i=parseInt(re[1],16)||0,JA[14]=ne,JA[15]=_i,I(kt,JA),kt}function M(LA){var SA,OA,JA,re,ne,_i,Ti=LA.length,kt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)I(kt,m(LA.subarray(SA-64,SA)));for(OA=(LA=SA-64>2]|=LA[SA]<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(I(kt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return re=(re=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),ne=parseInt(re[2],16),_i=parseInt(re[1],16)||0,JA[14]=ne,JA[15]=_i,I(kt,JA),kt}function T(LA){var SA,OA="";for(SA=0;SA<4;SA+=1)OA+=g[LA>>8*SA+4&15]+g[LA>>8*SA&15];return OA}function P(LA){var SA;for(SA=0;SA"u"||ArrayBuffer.prototype.slice||function(){function LA(SA,OA){return(SA=0|SA||0)<0?Math.max(SA+OA,0):Math.min(SA,OA)}ArrayBuffer.prototype.slice=function(SA,OA){var JA,re,ne,_i,Ti=this.byteLength,kt=LA(SA,Ti),Ni=Ti;return OA!==n&&(Ni=LA(OA,Ti)),kt>Ni?new ArrayBuffer(0):(JA=Ni-kt,re=new ArrayBuffer(JA),ne=new Uint8Array(re),_i=new Uint8Array(this,kt,JA),ne.set(_i),re)}}(),xA.prototype.append=function(LA){return this.appendBinary(W(LA)),this},xA.prototype.appendBinary=function(LA){this._buff+=LA,this._length+=LA.length;var SA,OA=this._buff.length;for(SA=64;SA<=OA;SA+=64)I(this._hash,E(this._buff.substring(SA-64,SA)));return this._buff=this._buff.substring(SA-64),this},xA.prototype.end=function(LA){var SA,OA,JA=this._buff,re=JA.length,ne=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(SA=0;SA>2]|=JA.charCodeAt(SA)<<(SA%4<<3);return this._finish(ne,re),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},xA.prototype.setState=function(LA){return this._buff=LA.buff,this._length=LA.length,this._hash=LA.hash,this},xA.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},xA.prototype._finish=function(LA,SA){var OA,JA,re,ne=SA;if(LA[ne>>2]|=128<<(ne%4<<3),ne>55)for(I(this._hash,LA),ne=0;ne<16;ne+=1)LA[ne]=0;OA=(OA=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),JA=parseInt(OA[2],16),re=parseInt(OA[1],16)||0,LA[14]=JA,LA[15]=re,I(this._hash,LA)},xA.hash=function(LA,SA){return xA.hashBinary(W(LA),SA)},xA.hashBinary=function(LA,SA){var OA=P(D(LA));return SA?kA(OA):OA},xA.ArrayBuffer=function(){this.reset()},xA.ArrayBuffer.prototype.append=function(LA){var SA,OA=RA(this._buff.buffer,LA),JA=OA.length;for(this._length+=LA.byteLength,SA=64;SA<=JA;SA+=64)I(this._hash,m(OA.subarray(SA-64,SA)));return this._buff=SA-64>2]|=JA[SA]<<(SA%4<<3);return this._finish(ne,re),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.ArrayBuffer.prototype.getState=function(){var LA=xA.prototype.getState.call(this);return LA.buff=EA(LA.buff),LA},xA.ArrayBuffer.prototype.setState=function(LA){return LA.buff=iA(LA.buff,!0),xA.prototype.setState.call(this,LA)},xA.ArrayBuffer.prototype.destroy=xA.prototype.destroy,xA.ArrayBuffer.prototype._finish=xA.prototype._finish,xA.ArrayBuffer.hash=function(LA,SA){var OA=P(M(new Uint8Array(LA)));return SA?kA(OA):OA},xA}()}(Fu)),Fu.exports),CC=oI(Ou),q=new class{constructor(){this.uploadFileTryCount=0,this.maxRetries=1,this.systemClockOffset=0,this.httpRequest=null,this.uploadFileType="",this.duration=900,this.fetchCosTryCount=0}init(s){var n;this._core=s;const{IN_MINI_APP:g}=s.utils;this.httpRequest=g?QI:Lu,(n=this.httpRequest)===null||n===void 0||n.init(s)}uploadToCOS(s){return mA(this,void 0,void 0,function*(){const n=`${da} uploadToCOS`,{ssoLog:g,utils:{safeStringify:I}}=this._core,{file:E}=s;this.uploadFileType=s.uploadFileType,g.debug("uploadToCOS",`${n} options:${I(s)}`);try{const m=Date.now(),D=yield this._createCosOptions(s),M=D.fileExistsInCOS?{data:{location:D.downloadUrl}}:yield this._uploadFile(D);this._handleUploadError(M,s);const T=this._createUploadResult(E,M),P=Date.now()-m,W=function(EA){return EA<1024?`${EA}B`:EA<1048576?`${Math.floor(EA/1024)}KB`:`${Math.floor(EA/1048576)}MB`}(E.size),iA=`size:${W} time:${P}ms speed:${vr(1e3*E.size/P)}`;return g.debug("uploadToCOS",`${n} ok. name:${E.name} ${iA}`),{uploadOptions:D,response:T}}catch(m){throw g.warn("uploadToCOS",`${n} failed, error:${I(m)}`),m}})}_handleUploadError(s,n){var g,I;const{ChatError:E}=(g=this._core)===null||g===void 0?void 0:g.helper;if(s.statusCode===403)throw n.url,!((I=s?.data)===null||I===void 0)&&I.uploadIP&&s.data.uploadIP,new E({message:"Upload failed with status 403"})}_createUploadResult(s,n){return{fileName:s.name,fileSize:s.size,fileType:s.type.slice(s.type.indexOf("/")+1).toLowerCase(),location:n.data.location||"",uploadTime:br(Date.now(),!1),uploadSpeed:vr(1e3*s.size/br(Date.now(),!1))}}_createCosOptions(s){return mA(this,void 0,void 0,function*(){const{fileName:n,resources:g,uploadMethod:I}=yield this._prepareUploadParams(s),E=this._isC2CConversation(s.message.conversationID)?1:2;try{const m=yield this._fetchCosSignatureUrl({fileType:this.uploadFileType,fileName:n,uploadMethod:I,duration:this.duration,userID:s.message.from,conversationType:E}),{uploadUrl:D,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,existFlag:EA}=m,RA=!Ut.isPrivateNetWork()&&m.uploadIP;return{url:this._getRawOrUploadProxyUrl(D),fileType:this.uploadFileType,fileName:n,resources:g,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,uploadIP:RA||"",fileExistsInCOS:EA===1,onProgress:kA=>this._handleUploadProgress(kA,s)}}catch(m){throw console.error("Failed to create COS pre-signed URL options:",m),m}})}_prepareUploadParams(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g,isEmpty:I}}=this._core;n.debug("_prepareUploadParams",` prepareUploadParams:${g(s)}`);const{file:E}=s,{IN_MINI_APP:m,IN_RN_APP:D}=Ut.getPlatformFlags(),M=m||D,T=M&&s.message.type!==xa,{name:P}=E,W=P.slice(P.lastIndexOf(".")),iA=`${Gr(999999)}${W}`,EA=T?E.name:iA,RA=yield this._generateHashFileName(E);return{fileName:I(RA)?Ig(EA):`${RA}${W}`,resources:M?E.url:E,uploadMethod:M?1:0}})}_generateHashFileName(s){return mA(this,void 0,void 0,function*(){const{utils:{IN_MINI_APP:n,IN_BROWSER:g,IN_UNI_NATIVE_APP:I,isArray:E},ssoLog:m}=this._core,D=Date.now();let M="";return g&&(M=yield this._generateHashFileNameInWeb(s)),n&&(E(s.tempFiles)&&(s=s.tempFiles[0]),I||(M=yield this._generateFileNameInMiniProgram(s)),I&&(M=yield this._generateFileNameInUNINativeApp(s))),m.info("_generateHashFileName",`hashFileName:${M} costTime:${Date.now()-D}`),M})}_generateHashFileNameInWeb(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;let I="";try{I=yield new Promise((E,m)=>{const D=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;D||(n.warn("_generateHashFileNameInWeb","Browser does not support file slicing"),E(""));const M=10485760,T=Math.ceil(s.size/M);let P=0;const W=new CC.ArrayBuffer,iA=new FileReader,EA=setTimeout(()=>{iA.abort(),n.warn("_generateHashFileNameInWeb","File hash generation timeout"),E("")},2e3);function RA(){const kA=P*M,xA=kA+M>=s.size?s.size:kA+M;iA.readAsArrayBuffer(D.call(s,kA,xA))}iA.onload=kA=>{n.debug("_generateHashFileNameInWeb",`read chunk nr ${P+1} of ${T}`),W.append(kA.target.result),P++,P{clearTimeout(EA),m(kA)},RA()})}catch(E){n.warn("_generateHashFileNameInWeb",g(E))}return I})}_generateFileNameInMiniProgram(s){return mA(this,void 0,void 0,function*(){const{utils:{MINI_APP_NAMESPACE:n,safeStringify:g,isEmpty:I},ssoLog:E}=this._core;let m="";if(I(s.url))return E.warn("_generateFileNameInMiniProgram","file.url is empty"),m;if(typeof n?.getFileSystemManager!="function")return E.warn("_generateFileNameInUNINativeApp","getFileSystemManager is not a function"),m;try{m=yield new Promise((D,M)=>{n.getFileSystemManager().getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_generateFileNameInUNINativeApp(s){return mA(this,void 0,void 0,function*(){var n;const{utils:{safeStringify:g,isEmpty:I},ssoLog:E}=this._core;let m="";if(I(s.url))return E.warn("_generateFileNameInUNINativeApp","file.url is empty"),m;if(typeof((n=plus==null?void 0:plus.io)===null||n===void 0?void 0:n.getFileInfo)!="function")return E.warn("_generateFileNameInUNINativeApp","plus.io.getFileInfo is not a function"),m;try{m=yield new Promise((D,M)=>{plus.io.getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_handleUploadProgress(s,n){if(typeof n.onProgress=="function")try{n.onProgress(s.percent)}catch(g){throw console.warn("Upload progress callback error:",g),g}}_fetchCosSignatureUrl(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core,I=Ut.isSimpleCos(),E=this._prepareCosRequestData(s),m=I?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const D=yield function(T,P,W){return mA(this,void 0,void 0,function*(){try{const{helper:iA,channel:EA}=W,RA=iA.generateCosSpecifiedData({servcmd:T,data:P}),kA=`${RA.head.seq}${T}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(iA){throw console.warn("getCosSig error:",iA),iA}})}(m,E,this._core);this.fetchCosTryCount=0;const M=this._processResponse(D);return n.debug("_fetchCosSignatureUrl",` ok. isSimpleCos:${I} data:${g(M)}`),M||{}}catch(D){if(this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(s);throw this.fetchCosTryCount=0,D}})}_processResponse(s){var n;const g=Ut.isSimpleCos(),I=g?(n=s?.rpt_pre_sig)===null||n===void 0?void 0:n[0]:s;if(!I)return{};if(g){const{str_final_ip:W,rpt_pre_sig:iA,uint32_file_id:EA,uint32_exist_flag:RA,str_download_url:kA,str_upload_url:xA,str_snapshot_url:LA,str_file_key:SA}=I;return{uploadIP:W,preSig:iA,fileID:EA,existFlag:RA,downloadUrl:kA,uploadUrl:xA,requestSnapshotUrl:LA,fileKey:SA}}const{upload_url:E,download_url:m,snapshot_url:D,thumb_url:M,large_url:T,file_key:P}=I;return{uploadUrl:E,downloadUrl:m,requestSnapshotUrl:D,thumbUrl:M,largeUrl:T,fileKey:P}}_prepareCosRequestData(s){return Ut.isSimpleCos()?{uint32_upload_method:s.uploadMethod,uint32_platform:Ut.getPlatform(),uint32_sdkappid:Ut.getSDKAppID(),str_user_id:s.userID,uint32_scene:s.conversationType,rpt_upload_object:[{uint32_file_id:1,uint32_file_type:s.fileType,str_file_name:s.fileName}]}:{file_type:s.fileType,file_name:s.fileName,upload_method:s.uploadMethod,Duration:s.duration}}_uploadFile(s){return mA(this,void 0,void 0,function*(){return new Promise((n,g)=>{this.httpRequest.request(s,(I,E)=>{I&&this.uploadFileTryCount=3e4}_syncSystemClock(s){var n,g,I;const E=((n=s.headers)===null||n===void 0?void 0:n.date)||((g=s.headers)===null||g===void 0?void 0:g.Date)||((I=s.error)===null||I===void 0?void 0:I.ServerTime);if(E){const m=Date.now(),D=Date.parse(E);this.systemClockOffset=D-m}}_getRawOrUploadProxyUrl(s){const n=Ut.getFileUploadProxy();let g=s;return n&&(g=s.replace(/^https:\/\/[^/]+/,n)),g}_isC2CConversation(s){return s.slice(0,3)==="C2C"}};const L=2108,oA=2251,G=2252,x=2253,tA=["jpg","jpeg","gif","png","bmp","image","webp"],uA={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255},wA=1,Ae=2;class Qe{constructor(n,g){this.instanceID=Gr(9999999),this.sizeType=n.type||0,this.type=0,this.size=n.size||0,this.width=n.width||0,this.height=n.height||0,this.imageUrl=Ut.addAuthToUrl(n.imageUrl||n.url||""),this.url=Ut.addAuthToUrl(n.url||g)}setSizeType(n){this.sizeType=n}setType(n){this.type=n}setImageUrl(n){n&&(this.imageUrl=Ut.addAuthToUrl(n))}getImageUrl(){return this.imageUrl}}function p(s){const{originUrl:n,originWidth:g,originHeight:I,min:E=198}=s,m=parseInt(g)||0,D=parseInt(I)||0,M={url:void 0,width:0,height:0};if((m<=D?m:D)<=E)M.url=n,M.width=m,M.height=D;else{D<=m?(M.width=Math.ceil(m*E/D),M.height=E):(M.width=E,M.height=Math.ceil(D*E/m));const T=n&&n.indexOf("?")>-1?`${n}&`:`${n}?`;M.url=E===198?`${T}imageView2/3/w/198/h/198`:`${T}imageView2/3/w/720/h/720`}if(n===void 0){const{url:T}=M;return yo(M,["url"])}return M}class h{constructor(n){this._imageMemoryURL="",this._percent=0,this.type=ic;const{uuid:g,file:I,imageFormat:E,imageInfoArray:m=[],isCustomUpload:D=!1}=n;this._imageMemoryURL=this.createImageDataAsURL(I),this.content={imageFormat:E,uuid:g,imageInfoArray:[]},this[xr]=D,this.initImageInfoArray(m),this.autoFixUrl()}static parseServerPushElement(n){const{MsgContent:g}=n,{ImageFormat:I,ImageInfoArray:E,UUID:m}=g,D=function(M){return M.map(T=>({size:T.Size,type:T.Type,width:T.Width,height:T.Height,url:T.URL}))}(E);return new h({imageFormat:I,imageInfoArray:D,uuid:m})}createImageDataAsURL(n){let g="";const{IN_MINI_APP:I,IN_RN_APP:E,IN_BROWSER:m}=Ut.getPlatformFlags();return n&&((I||E)&&(g=n.url),m&&(g=window.URL.createObjectURL(n))),g}initImageInfoArray(n=[]){const g={type:0,size:0,width:0,height:0,url:""};for(let I=0;I<3;I++){const E=n[I]||Object.assign({},g),m=new Qe(E,this._imageMemoryURL);m.setSizeType(I+1),m.setType(I),this.addImageInfo(m)}this.updateAccessSideImageInfoArray()}autoFixUrl(){const n=["http","https"];this.content.imageInfoArray.forEach(g=>{if(!g.url||g.imageUrl==="")return;const[I,...E]=g.imageUrl.split("://"),m=E.join("://");n.includes(I)||g.setImageUrl(`https://${m}`)})}updatePercent(n){this._percent=Math.min(n,1)}updateImageFormat(n){this.content.imageFormat=uA[n.toUpperCase()]||uA.UNKNOWN}addImageInfo(n){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(n)}updateImageInfoArray(n){const g=this.content.imageInfoArray.length;let I;for(let E=0;E({InstanceId:g.instanceID,Type:g.sizeType,MsgType:g.type,Size:g.size,Width:g.width,Height:g.height,URL:Ut.removeAuthToUrl(g.imageUrl)}))}}const v=new class{init(s){this.core=s}},N={[ZI]:"i",[gl]:"a",[Ca]:"v",[NE]:"f"};let O=null,z=null;function X(s){var n;const{store:g,utils:{isNumber:I,safeStringify:E},ssoLog:m}=v.core;try{const D=((n=g.get("cloudConfig"))===null||n===void 0?void 0:n.upload_size_limit)||"";D!==z&&(z=D,O=JSON.parse(D)||{});const M=O?.[N[s]];if(I(M))return 1024*M*1024}catch(D){m.debug("getCloudControlUploadSizeLimit",E(D))}return null}var nA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:I,InnerEvent:E,message:m}=s;I.registerApi({apiName:"createImageMessage",context:this}),I.registerExperimentalAPI("createImageMessage",this,"createCustomUploadImageMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(ic,h),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createImageMessage(s){var n,g,I;try{const E=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,m=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:E})),D=this._processImage(s);s.payload.file=D;const M={imageFormat:uA.UNKNOWN,uuid:Ut.generateUUID(D),file:D,imageInfoArray:[]},T=new h(M);return m.setElement(T),this._messageOptionsMap.set(m.clientSequence,s),m}catch(E){throw E}}createCustomUploadImageMessage(s){var n,g,I,E;const{store:m,utils:{isEmpty:D}}=this._core,M=(n=m.get("login"))===null||n===void 0?void 0:n.userId,T=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:M})),{largeImageUuid:P,largeFileSize:W,largeImageWidth:iA,largeImageHeight:EA,largeImageUrl:RA,originImageUuid:kA,originFileSize:xA,originImageWidth:LA,originImageHeight:SA,originImageUrl:OA,thumbImageUuid:JA,thumbFileSize:re,thumbImageWidth:ne,thumbImageHeight:_i,thumbImageUrl:Ti}=((E=s?.payload)===null||E===void 0?void 0:E.file)||{};if(D(OA)||D(kA))throw new Error("createImageMessageExperimental originImageUrl or originImageUuid is empty");const kt=new h({imageFormat:uA.UNKNOWN,uuid:kA,imageInfoArray:[{instanceID:kA,size:xA,width:LA,height:SA,imageUrl:OA,url:OA},{instanceID:P,size:W,width:iA,height:EA,imageUrl:RA,url:RA},{instanceID:JA,size:re,width:ne,height:_i,imageUrl:Ti,url:Ti}],isCustomUpload:!0});return T.setElement(kt),this._messageOptionsMap.set(T.clientSequence,s),T._skipUpload=!0,T}upload(s){return mA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadImage(g);const I=yield this._performImageUpload(n,s,g),E=this._generateImageInfo(I);return n.updateImageFormat(I?.fileType),n.updateImageInfoArray(E),this._updateImageType(n.content.imageInfoArray),s})}_performImageUpload(s,n,g){return mA(this,void 0,void 0,function*(){const{to:I}=n,E={uploadFileType:ZI,file:g,to:I,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{uploadOptions:m,response:D}=yield q.uploadToCOS(E);return this._parseResponse(m,D)})}_generateImageInfo(s){const{location:n,fileSize:g,width:I,height:E,smallImageUrl:m,smallImageWidth:D,smallImageHeight:M,largeImageUrl:T,largeImageWidth:P,largeImageHeight:W,imageInfoArray:iA}=s,EA=Ut.addAuthToUrl(n),RA={size:g,url:EA,width:I,height:E};return iA?.length>0?this._processImageInfoArray(iA,g):m&&T?[Object.assign({},RA),{largeImageUrl:T,largeImageWidth:P,largeImageHeight:W},{smallImageUrl:m,smallImageWidth:D,smallImageHeight:M}]:[Object.assign({},RA),this._generateThumbInfo(EA,I,E,720),this._generateThumbInfo(EA,I,E,198)]}_generateThumbInfo(s,n,g,I){return p({originUrl:s,originWidth:n,originHeight:g,min:I})}_processImageInfoArray(s,n){let g,I,E;for(const m of s)m.type===1?(I=m,I.size=n):m.type===2?(E=m,E.size=n):(g=m,g.size=n);return[Object.assign({},g),Object.assign({},E),Object.assign({},I)]}_parseResponse(s,n){return mA(this,void 0,void 0,function*(){try{const{thumbUrl:g,largeUrl:I,downloadUrl:E}=s;if(g&&I&&(yield this._getImageInfoByUrl(g,n,"thumb"),yield this._getImageInfoByUrl(I,n,"large")),Ut.isSimpleCos()&&!Ut.isPrivateNetWork()&&(yield this._getImageInfoArray(E,n),n?.uploadIP)){const m=this._extractDomainFromUrl(E);m&&(yield this._getDownloadIP(m,n))}return n}catch(g){throw g}})}_extractDomainFromUrl(s){var n;try{const g=s.match(/:\/\/([^\/]+)/);return g?g[1]:null}catch(g){return(n=this._core)===null||n===void 0||n.ssoLog.warn("_extractDomainFromUrl",`Failed to extract domain from URL:${g.message}`),null}}_getImageInfoByUrl(s,n,g){return mA(this,void 0,void 0,function*(){var I;try{const E=Ut.addAuthToUrl(s),{width:m=0,height:D=0}=yield Ut.probeImageWidthHeight(E);n.width=m,n.height=D,g==="thumb"?(n.smallImageUrl=s,n.smallImageWidth=m,n.smallImageHeight=D):(n.largeImageUrl=s,n.largeImageWidth=m,n.largeImageHeight=D)}catch(E){(I=this._core)===null||I===void 0||I.ssoLog.warn("_getImageInfoByUrl",`Failed to get ${g} image info:${E.message}`)}})}_validateBeforeUploadImage(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper;if(!s)throw new g({code:oA});this._checkImageType(s),this._checkImageSize(s)}_processImage(s){var n;try{const{IN_MINI_APP:g}=(n=this._core)===null||n===void 0?void 0:n.utils;let{file:I}=s.payload;return I=g?this._processMiniAppImageFile(I):this._processWebImageFile(I),I}catch(g){throw g}}_processMiniAppImageFile(s){al(s)&&console.warn("FileUnsupportedInMiniApp","createImageMessage");const n=s.tempFiles[0].path||s.tempFiles[0].tempFilePath;return{url:n,name:n.slice(n.lastIndexOf("/")+1),size:s.tempFiles&&s.tempFiles[0].size||1,type:n.slice(n.lastIndexOf(".")+1).toLowerCase()}}_processWebImageFile(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper,I=Ut.extractFileFromInput(s);if(!I)throw new g({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return I}_getDownloadIP(s,n){return mA(this,void 0,void 0,function*(){const g=`${da} getDownloadIP domainName: ${s}`;try{const I=yield function(m,D){return mA(this,void 0,void 0,function*(){try{const{helper:M,channel:T}=D,P="im_cos_msg.get_final_ip",W={str_domain:m},iA=M.generateProtocolData({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})}catch(M){throw console.warn("getFinalIP error:",M),M}})}(s,this._core);if(!I||!I.str_final_ip)return;console.log(`${g} ok. downloadIP:${I}`);const E=n.location.split("/");E[0]=I.str_final_ip,n.location=E.join("/")}catch(I){console.warn(I)}})}_getImageInfoArray(s,n){return mA(this,void 0,void 0,function*(){try{const g=yield function(I,E){return mA(this,void 0,void 0,function*(){try{const{helper:m,channel:D}=E,M="im_cos_msg.get_imageinfo",T={str_image_url:I},P=m.generateProtocolData({servcmd:M,data:T}),W=`${P.head.seq}${M}`;return yield D.sendPacket(P,{requestId:W})}catch(m){throw console.warn("getImageInfo error:",m),m}})}(s,this._core);return n.imageInfoArray=this._processImageInfoResponse(g),n}catch(g){throw n.imageInfoArray=void 0,g}})}_processImageInfoResponse(s){if(!s)return[];const{rpt_msg_image_info:n}=s;return n.map(g=>({type:g.uint32_image_type,url:g.str_url,width:g.uint32_width,height:g.uint32_height,imageFormat:g.str_image_format}))}_checkImageType(s){const{utils:n,helper:g}=this._core;let I="";if(n.IN_MINI_APP&&(I=s.url.slice(s.url.lastIndexOf(".")+1)),n.IN_BROWSER&&(I=s.name.slice(s.name.lastIndexOf(".")+1)),tA.indexOf(I.toLowerCase())<0)throw new g.ChatError({code:G})}_checkImageSize(s){const{utils:n,helper:g,store:I}=this._core;let E=0;if(E=(n.IN_MINI_APP,s.size),E===0)throw new g.ChatError({code:L});if(E>=(X(ZI)||20971520))throw new g.ChatError({code:x})}_updateImageType(s){s[1].type=Ae,s[2].type=wA}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const DA=2108,GA=2401,VA=2402,ie="2.5.0",Ee="1.18.0";function He(s,n){const g=s.split("."),I=n.split("."),E=Math.max(g.length,I.length);for(;g.lengthM)return 1;if(D0;return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{uuid:E,downloadFlag:m,fileUrl:D,fileName:M,fileSize:T}=I;return{MsgType:this.type,MsgContent:{Download_Flag:m,Url:Ut.removeAuthToUrl(D),FileName:M,FileSize:T,UUID:E}}}_getFileInfo(n){const{utils:{IN_UNI_NATIVE_APP:g}}=v.core;if(n.fileName&&n.fileSize)return{size:n.fileSize,name:n.fileName};const{file:I}=n;return I?(g&&this._processNativeAppFile(I),{size:I.size,name:I.name}):{size:0,name:""}}_processNativeAppFile(n){if(n.path&&n.path.includes(".")){const g=n.path.slice(n.path.lastIndexOf(".")+1).toLowerCase();n.type=g,n.name||(n.name=`${Gr(999999)}.${g}`)}n.name||(n.type="",n.name=n.path.slice(n.path.lastIndexOf("/")+1).toLowerCase()),n.suffix&&(n.type=n.suffix),n.url||(n.url=n.path)}}At=xr;var bt=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:I,InnerEvent:E,message:m}=s;I.registerApi({apiName:"createFileMessage",context:this}),I.registerExperimentalAPI("createFileMessage",this,"createCustomUploadFileMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(xa,st),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createFileMessage(s){var n,g,I;try{this._checkVersion();const E=this._processFile(s.payload.file);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:m})),M={uuid:Ut.generateUUID(E),file:E},T=new st(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadFileMessage(s){var n,g,I;try{const{store:E,message:m,utils:{isEmpty:D}}=this._core,M=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:T,uuid:P,fileSize:W,fileName:iA=""}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{};if(D(T))throw new Error("url is required");const EA=(I=m.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:M})),RA=new st({url:T,uuid:P,file:{size:W,name:iA},isCustomUpload:!0});return EA.setElement(RA),EA}catch(E){throw E}}upload(s){return mA(this,void 0,void 0,function*(){const{file:n}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadFile(n);const g=s.getElements()[0],I=yield this._performFileUpload(g,s,n),E=Ut.addAuthToUrl(I?.location);return g.updateFileUrl(E),s})}_validateBeforeUploadFile(s){const{helper:{ChatError:n}}=this._core;if(!s)throw new n({code:GA});const g=X(NE)||104857600;if(s.size>g)throw new n({code:VA});if(s.size===0)throw new n({code:DA})}_performFileUpload(s,n,g){return mA(this,void 0,void 0,function*(){const{to:I}=n,E={uploadFileType:NE,file:g,to:I,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processFile(s){var n,g;const{IN_BROWSER:I,IN_RN_APP:E,IN_WX_MINI_APP:m,IN_QQ_MINI_APP:D,IN_UNI_NATIVE_APP:M}=(n=this._core)===null||n===void 0?void 0:n.utils,{ChatError:T}=(g=this._core)===null||g===void 0?void 0:g.helper;if(I||M){const P=Ut.extractFileFromInput(s);if(!P)throw new T({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return P}if(m||D){const{tempFiles:P}=s;return Object.assign(Object.assign({},P[0]),{url:P[0].path})}return E?Object.assign(Object.assign({},s),{url:s.uri}):s}_checkVersion(){var s,n;const{MINI_APP_NAMESPACE:g,IN_MINI_APP:I,IN_WX_MINI_APP:E,IN_QQ_MINI_APP:m,IN_UNI_NATIVE_APP:D}=(s=this._core)===null||s===void 0?void 0:s.utils,{ChatError:M}=(n=this._core)===null||n===void 0?void 0:n.helper;if(I){if(!(E||m||D))throw new M({message:"Unsupported mini app environment"});const T=g.getSystemInfoSync().SDKVersion;if(E&&He(T,ie)<0)throw new M({message:`WXChooseMessageFile requires SDK version ${ie} or higher`});if(m&&He(T,Ee)<0)throw new M({message:`QQChooseMessageFile requires SDK version ${Ee} or higher`})}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const xt=2108,Ui=2351,ao=2352,zi=["mp4","quicktime","mov","video"];var ui;class Oo{constructor(n){this.type=Ll,this.uploadProgress=0,this[ui]=!1;const g=typeof n?.videoSecond=="number"?n?.videoSecond:0;this[xr]=n.isCustomUpload||!1,this.content={remoteVideoUrl:Ut.addAuthToUrl(n.remoteVideoUrl||n.videoUrl||""),videoFormat:n.videoFormat,videoSecond:parseInt(g?.toString(),10),videoSize:n.videoSize,videoUrl:Ut.addAuthToUrl(n.videoUrl),videoDownloadFlag:2,videoUUID:n.videoUUID,thumbUUID:n.thumbUUID,thumbFormat:n.thumbFormat,thumbWidth:n.thumbWidth,snapshotWidth:n.thumbWidth,thumbHeight:n.thumbHeight,snapshotHeight:n.thumbHeight,thumbSize:n.thumbSize,snapshotSize:n.thumbSize,thumbDownloadFlag:2,thumbUrl:Ut.addAuthToUrl(n.thumbUrl),snapshotUrl:Ut.addAuthToUrl(n.thumbUrl)}}static parseServerPushElement(n){const{MsgContent:g}=n,{VideoUrl:I,VideoFormat:E,VideoSecond:m,VideoSize:D,VideoDownloadFlag:M,VideoUUID:T,ThumbUUID:P,ThumbFormat:W,ThumbWidth:iA,SnapshotWidth:EA,ThumbHeight:RA,SnapshotHeight:kA,ThumbSize:xA,SnapshotSize:LA,ThumbDownloadFlag:SA,ThumbUrl:OA,SnapshotUrl:JA}=g;return new Oo({videoUrl:I,videoFormat:E,videoSecond:m,videoSize:D,videoDownloadFlag:M,videoUUID:T,thumbUUID:P,thumbFormat:W,thumbWidth:iA,snapshotWidth:EA,thumbHeight:RA,snapshotHeight:kA,thumbSize:xA,snapshotSize:LA,thumbDownloadFlag:SA,thumbUrl:OA,snapshotUrl:JA})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateVideoUrl(n){n&&(this.content.remoteVideoUrl=n)}updateSnapshotInfo(n){const{snapshotUrl:g,snapshotWidth:I,snapshotHeight:E}=n;Ut.isEmpty(g)||(this.content.thumbUrl=this.content.snapshotUrl=g),Ut.isEmpty(I)||(this.content.thumbWidth=this.content.snapshotWidth=Number(I)),Ut.isEmpty(E)||(this.content.thumbHeight=this.content.snapshotHeight=Number(E))}validateBeforeSend(){if(this[xr])return{isValid:!0};const n=this.content.remoteVideoUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{remoteVideoUrl:E,videoFormat:m,videoSecond:D,videoSize:M,videoDownloadFlag:T,videoUUID:P,thumbUUID:W,thumbFormat:iA,thumbWidth:EA,snapshotWidth:RA,thumbHeight:kA,snapshotHeight:xA,thumbSize:LA,snapshotSize:SA,thumbDownloadFlag:OA,thumbUrl:JA,snapshotUrl:re}=I;return{MsgType:this.type,MsgContent:{VideoUrl:Ut.removeAuthToUrl(E),VideoFormat:m,VideoSecond:D,VideoSize:M,VideoDownloadFlag:T,VideoUUID:P,ThumbUUID:W,ThumbFormat:iA,ThumbWidth:EA,SnapshotWidth:RA,ThumbHeight:kA,SnapshotHeight:xA,ThumbSize:LA,SnapshotSize:SA,ThumbDownloadFlag:OA,ThumbUrl:Ut.removeAuthToUrl(JA),SnapshotUrl:Ut.removeAuthToUrl(re)}}}}ui=xr;var $o,Qi=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:I,InnerEvent:E,message:m}=s;I.registerApi({apiName:"createVideoMessage",context:this}),I.registerExperimentalAPI("createVideoMessage",this,"createCustomUploadVideoMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Ll,Oo),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createVideoMessage(s){var n,g,I;try{const E=this._processVideo(s);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:m})),M={videoFormat:E.videoFile.type,videoSecond:rr(E.videoFile.second,0),videoSize:E.videoFile.size,remoteVideoUrl:"",videoUrl:E.videoFile.url,videoUUID:Ut.generateUUID(E.videoFile),thumbUUID:Ut.generateUUID(E.videoFile,"jpg"),thumbWidth:E.width||200,thumbHeight:E.height||200,thumbUrl:E.thumbUrl,thumbSize:E.thumbSize,thumbFormat:"jpg"},T=new Oo(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadVideoMessage(s){var n,g,I;try{const{store:E,message:m}=this._core;this._validateCustomUploadVideoMessage(s);const D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{videoUrl:M,videoUuid:T,duration:P,snapshotUrl:W,snapshotUuid:iA,videoFileSize:EA,videoType:RA,snapshotWidth:kA,snapshotHeight:xA,snapshotFileSize:LA,snapshotType:SA="jpg"}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},OA=(I=m.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:D})),JA=new Oo({videoFormat:RA,videoSecond:P||0,videoSize:EA,remoteVideoUrl:M,videoUrl:M,videoUUID:T,thumbUUID:iA,thumbWidth:kA||200,thumbHeight:xA||200,thumbUrl:W,thumbSize:LA,thumbFormat:SA,isCustomUpload:!0});return OA.setElement(JA),this._messageOptionsMap.set(OA.clientSequence,s),OA}catch(E){throw E}}upload(s){return mA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadVideo(g);const I=yield this._performVideoUpload(n,s,g),{location:E,snapshotInfo:m}=I,D=Ut.addAuthToUrl(E);return n.updateVideoUrl(D),Ut.isEmpty(m)||n.updateSnapshotInfo(m),s})}_validateBeforeUploadVideo(s){const{helper:{ChatError:n}}=this._core,g=X(Ca)||104857600;if(s.videoFile.size>g)throw new n({code:Ui});if(s.videoFile.size===0)throw new n({code:xt});if(zi.indexOf(s.videoFile.type)===-1)throw new n({code:ao})}_validateCustomUploadVideoMessage(s){var n;const{utils:{isEmpty:g,isNumber:I}}=this._core,{videoUrl:E,videoUuid:m,duration:D,snapshotUrl:M,snapshotUuid:T}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(E)||g(m)||!I(D)||g(M)||g(T))throw new Error("Invalid video message options: missing required fields (videoUrl, videoUuid, duration, snapshotUrl, snapshotUuid)")}_performVideoUpload(s,n,g){return mA(this,void 0,void 0,function*(){const{to:I}=n,E={uploadFileType:Ca,file:g,to:I,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{response:m,uploadOptions:D}=yield q.uploadToCOS(E);return{snapshotInfo:yield this._getSnapshotInfoByUrl(D.requestSnapshotUrl),location:m.location}})}_processVideo(s){var n,g;try{const{ChatError:I}=(n=this._core)===null||n===void 0?void 0:n.helper,{IN_MINI_APP:E,IN_BROWSER:m}=(g=this._core)===null||g===void 0?void 0:g.utils;let{file:D}=s.payload,M={};if(E&&(M=this._processMiniVideoFile(D),D.name=M.name,D.url=M.url,D.type=M.type),m){const T=Ut.extractFileFromInput(D);if(!T)throw new I({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});D=T,M=this._processWebVideoFile(D)}return D.videoFile=M,D.thumbUrl="",D.thumbSize=0,D}catch(I){throw console.warn(`${da} _processFile error:`,I),I}}_processMiniVideoFile(s){const{utils:{IN_UNI_NATIVE_APP:n},helper:{ChatError:g}}=this._core;if(al(s))throw new g({message:"FileUnsupportedInMiniApp"});Array.isArray(s.tempFiles)&&(s=s.tempFiles[0]);let I=s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase();return n&&(I=s.fileType||I),{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.size||1,second:s.duration||0,type:I}}_processWebVideoFile(s){const{name:n,size:g=1,duration:I=0,type:E}=s,m=E.split("/")[1];return{url:window.URL.createObjectURL(s),name:n,size:g,second:I,type:m}}_getSnapshotInfoByUrl(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core;try{n.debug("_getSnapshotInfoByUrl",`${da} _getSnapshotInfoByUrl url:${s}`);const g={version:1,platform:Ut.getPlatform(),cover_name:Ig(Gr(99999)),snapshot_url:s},I=yield function(T,P){return mA(this,void 0,void 0,function*(){try{const W="im_cos_msg.video_cover",{helper:iA,channel:EA}=P,RA=iA.generateCosSpecifiedData({servcmd:W,data:T}),kA=`${RA.head.seq}${W}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(W){throw console.warn("getSnapshotInfo error:",W),W}})}(g,this._core),{download_url:E}=I||{};if(n.debug("_getSnapshotInfoByUrl",`${da} _getSnapshotInfoByUrl OK snapshotUrl:${E}`),Ut.isEmpty(E))return{};const m=Ut.addAuthToUrl(E),{width:D=0,height:M=0}=yield Ut.probeImageWidthHeight(m);return{snapshotUrl:m,snapshotWidth:D,snapshotHeight:M}}catch(g){throw g}})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};class Ki{constructor(n){this.uploadProgress=0,this.type=Fg,this[$o]=!1,this[xr]=n.isCustomUpload||!1,this.content={downloadFlag:2,second:n.second,size:n.size,url:Ut.generateURL(n.url,{needAddAuthToUrl:!this[xr]}),remoteAudioUrl:Ut.addAuthToUrl(n.url||""),uuid:n.uuid}}static parseServerPushElement(n){const{MsgContent:g}=n,{Url:I,Download_Flag:E,Second:m,Size:D,UUID:M}=g;return new Ki({url:I,downloadFlag:E,second:m,size:D,uuid:M})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateAudioUrl(n){this.content.remoteAudioUrl=n}validateBeforeSend(){if(this[xr])return{isValid:!0};const n=this.content.remoteAudioUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{uuid:E,downloadFlag:m,remoteAudioUrl:D,size:M,second:T}=I;return{MsgType:this.type,MsgContent:{Url:Ut.removeAuthToUrl(D),Download_Flag:m,Second:T,Size:M,UUID:E}}}}$o=xr;const Ws=2108,_e=2300,vt=2301;var FA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:I,InnerEvent:E,message:m}=s;I.registerApi({apiName:"createAudioMessage",context:this}),I.registerExperimentalAPI("createAudioMessage",this,"createCustomUploadAudioMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Fg,Ki),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createAudioMessage(s){var n,g,I;try{let{file:E}=s.payload;E=this._processAudioFile(s.payload.file),s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:m})),M={second:Math.max(1,Math.round((E.duration||E.second)/1e3)),size:E.fileSize||E.size||1,url:E.tempFilePath||E.uri||E.url,uuid:Ut.generateUUID(E)},T=new Ki(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadAudioMessage(s){var n,g,I;try{this._validateCustomUploadOptions(s);const{store:E,message:m}=this._core,D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:M,uuid:T,duration:P,fileSize:W}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},iA=(I=m.messageFactory)===null||I===void 0?void 0:I.createMessage(Object.assign(Object.assign({},s),{from:D})),EA=new Ki({second:P,size:W||1,url:M,uuid:T,isCustomUpload:!0});return iA.setElement(EA),this._messageOptionsMap.set(iA.clientSequence,s),iA}catch(E){throw E}}upload(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.debug("upload",`${da} uploadAudio message:${g(s)}`);const{file:I}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadAudio(I);const E=s.getElements()[0],m=yield this._performAudioUpload(E,s,I),D=Ut.addAuthToUrl(m?.location);return E.updateAudioUrl(D),s})}_validateBeforeUploadAudio(s){const{helper:{ChatError:n},store:g}=this._core;if(!s)throw new n({code:_e});const I=X(gl)||20971520;if(s.size>I)throw new n({code:vt});if(s.size===0)throw new n({code:Ws})}_performAudioUpload(s,n,g){return mA(this,void 0,void 0,function*(){const{to:I}=n,E={uploadFileType:gl,file:g,to:I,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processAudioFile(s){var n;const{IN_MINI_APP:g,IN_BROWSER:I}=(n=this._core)===null||n===void 0?void 0:n.utils;return g?this._processMiniFile(s):I?this._processWebFile(s):void 0}_processMiniFile(s){return{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.fileSize,second:s.duration,type:s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase()}}_processWebFile(s){if(s.tempFilePath||s.uri)return s;const n=URL.createObjectURL(s);return s.tempFilePath=n,s}_validateCustomUploadOptions(s){var n;const{utils:{isEmpty:g}}=this._core,{url:I,uuid:E,duration:m}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(I)||g(E)||g(m))throw new Error("Invalid audio message options")}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Wt={to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1},onProgress:{required:!1,rules:["function"],allowEmpty:!1}},En={createImageMessage:Wt,createAudioMessage:Wt,createVideoMessage:Wt,createFileMessage:Wt},Zt={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},us={[ic]:nA,[xa]:bt,[Ll]:Qi,[Fg]:FA};var vi=new class{constructor(){this.name="RichMediaMessage"}install(s){this._core=s;const{constants:{OuterConstant:{MSG_AUDIO:n,MSG_FILE:g,MSG_IMAGE:I,MSG_VIDEO:E}}}=s;v.init(s),nA.init(s),bt.init(s),Qi.init(s),FA.init(s),q.init(s),Ut.init(s),s.helper.registerApi({apiName:"sendMessage",context:this,matcher:m=>[n,g,I,E].includes(m[0].type)}),s.helper.registerValidateConfig({auth:Zt,params:En})}sendMessage(s,n){return mA(this,void 0,void 0,function*(){var g,I,E;try{return this._isCustomUpload(s)||(yield this._upload(s)),yield(E=(I=(g=this._core)===null||g===void 0?void 0:g.message)===null||I===void 0?void 0:I.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)}catch(m){throw m}})}_upload(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(n.debug("_upload",` uploadFile message:${g(s)}`),s._relayFlag!==!0)try{const I=us[s.type];I&&(yield I.upload(s),n.info("_upload",` type:${s.type}`))}catch(I){throw s.status=XI.FAIL,I instanceof Error&&(I.data={message:s}),this._core.message.messageDataHandler.storeConversationMessage(s),I}})}_isCustomUpload(s){var n,g;return((g=(n=s._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g[xr])===!0}};const Co=new class{init(s){this.core=s}};class Et{constructor(n){this.conversationID=n.conversationID||"",this.unreadCount=n.unreadCount||0,this.type=n.type||"",this.lastMessage=Co.core.common.buildLastMessage(n.lastMessage),this.peerReadTime=n.peerReadTime||0,this.groupAtInfoList=[],this.remark=n.remark||"",this.isPinned=n.isPinned||!1,this.messageRemindType=n.messageRemindType,this.markList=n.markList||[],this.customData=n.customData||"",this.conversationGroupList=n.conversationGroupList||[],this.draftText=n.draftText||"",this.userProfile=n.userProfile,this.groupProfile=n.groupProfile,this.subType=n.subType||"",this._isInfoCompleted=!1,this._init()}_init(){var n;const{core:{OuterConstant:g,utils:{isUndefined:I}}}=Co;I(this.userProfile)&&this.type===g.CONV_C2C?this.userProfile={userID:this.conversationID.replace(g.CONV_C2C,"")}:this.type===g.CONV_GROUP&&(!this.subType&&(!((n=this.groupProfile)===null||n===void 0)&&n.type)&&(this.subType=this.groupProfile.type),I(this.groupProfile)&&(this.groupProfile={groupID:this.conversationID.replace(g.CONV_GROUP,""),selfInfo:{},lastMessage:{},type:this.subType}))}updateUnreadCount(n){var g;const{core:{OuterConstant:I,utils:{isUndefined:E},store:m}}=Co,{nextUnreadCount:D,isFromGetConversations:M,isUnreadC2CMessage:T}=n;if(E(D))return;if(this.subType===I.GRP_AVCHATROOM)return void(this.unreadCount=0);if(M&&this.type===I.CONV_GROUP)return void(this.unreadCount=D);if(T&&this.type===I.CONV_C2C)return void(this.unreadCount=D);const P=((g=m.get("cloudConfig"))===null||g===void 0?void 0:g.support_unread_count_for_meeting)==="1";this.subType!==I.GRP_MEETING||P?this.unreadCount+=D:this.unreadCount=0}updateLastMessage(n){this.lastMessage=Co.core.common.buildLastMessage(n)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(n){const{core:{OuterConstant:g}}=Co,{sequence:I,time:E}=n;return this.type===g.CONV_C2C&&I===this.lastMessage.lastSequence&&E===this.lastMessage.lastTime||this.type===g.CONV_GROUP&&I===this.lastMessage.lastSequence}setLastMessageRevoked(n){this.lastMessage.isRevoked=n}setLastMessageRevoker(n){this.lastMessage.revoker=n}setDraftText(n){this.draftText=n}updateGroupAtInfoList(n){const{core:{common:{updateGroupAtInfo:g}}}=Co;g(n,this.groupAtInfoList)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}const Ct=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=Co;return g(s)&&s.slice(0,3)===n.CONV_C2C},ug=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=Co;return g(s)&&s.slice(0,5)===n.CONV_GROUP},ks=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=Co;return g(s)&&s===n.CONV_SYSTEM};function ji(s){const{OuterConstant:n}=Co.core;let g="";return s===0?g=n.MSG_REMIND_ACPT_AND_NOTE:s===1?g=n.MSG_REMIND_DISCARD:s===2?g=n.MSG_REMIND_ACPT_NOT_NOTE:s===3&&(g=n.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}function Yr(s){const{OuterConstant:n}=Co.core;let g;return s.startsWith(n.CONV_C2C)&&(g=s.replace(n.CONV_C2C,"")),g==="@TLS#ERROR"||g==="@TLS#NOT_FOUND"}function oc(s,n){const{helper:g}=Co.core,I=new g.ChatError({functionName:s,code:n?.errorCode||n?.code,message:n?.errorInfo||n?.message});throw console.error(`${s} fail:`,I),I}var ts,aa;(function(s){s[s.OFF=0]="OFF",s[s.ON=1]="ON"})(ts||(ts={})),function(s){s[s.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(aa||(aa={}));var ha;(function(s){s[s.CONV_NOT_FOUND=2500]="CONV_NOT_FOUND",s[s.USER_OR_GRP_NOT_FOUND=2501]="USER_OR_GRP_NOT_FOUND",s[s.CONV_UN_RECORDED_TYPE=2502]="CONV_UN_RECORDED_TYPE"})(ha||(ha={}));const $r=0,H=1;var BA=new class{constructor(){this._name="GetC2CMessageRemindType"}init(s){this._core=s}get(s){return mA(this,void 0,void 0,function*(){try{const{common:n}=this._core,g=yield function(E,m){return mA(this,void 0,void 0,function*(){const{toAccount:D,userIDList:M}=E,T={To_Account:D,Peer_Account:M};return m.common.buildAndSendPacket({servcmd:"openim.get_c2c_peer_mute_notifications",data:T})})}({toAccount:n.getCurrentUserID(),userIDList:s},this._core),{MuteNotificationsList:I=[]}=g||{};I.forEach(E=>{const{Peer_Account:m,MuteNotifications:D}=E,M=`${this._core.OuterConstant.CONV_C2C}${m}`,T=ji(D);NA.patchMessageRemindType([M],T)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},yA=new class{constructor(){this._name="GetGroupMessageRemindType"}init(s){this._core=s}get(s){return mA(this,void 0,void 0,function*(){if(s.length!==0)try{const n=yield function(I,E){return mA(this,void 0,void 0,function*(){const{groupIDList:m,responseFilter:D}=I,M={GroupIdList:m,ResponseFilter:D};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:M})})}({groupIDList:s,responseFilter:{MemberInfoFilter:["MsgFlag"]}},this._core),{GroupInfo:g=[]}=n||{};g.forEach(I=>{var E;const{GroupId:m,MemberList:D}=I,M=((E=D[0])===null||E===void 0?void 0:E.MsgFlag)||"",T=`${this._core.OuterConstant.CONV_GROUP}${m}`;NA.patchMessageRemindType([T],M)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},NA=new class{constructor(){this._name="ConversationDataHandler",this._totalUnreadCount=0,this._groupAtTipsList=[]}init(s){this._core=s;const{helper:n,notificationCenter:g,appStore:{conversationStore:I},constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},InnerEvent:{SYNC_CONVERSATION_LIST:D,MESSAGE_PUSH:M,NEW_MESSAGE:T,MESSAGE_DELETED:P,MESSAGE_REVOKED:W,MESSAGE_MODIFIED:iA,CONVERSATION_UPDATED:EA,LOGOUT:RA,DESTROY:kA},InnerEventSubType:{C2C_MESSAGE_PEER_READ:xA}}=s;this._conversationStore=I,n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,this._handleGroupListSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_RE_ONLINE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_TIPS_NOTIFICATION,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this);const{InnerEventSubType:{GROUP_AT_TIPS:LA}}=g;g.subscribeInnerEvent(D,this._handleConversationSynced,this),g.subscribeInnerEvent(T,this._handleNewMessage,this),g.subscribeInnerEvent(M,LA,this._handleNewGroupAtTips,this),g.subscribeInnerEvent(P,this._handleMessageDeleted,this),g.subscribeInnerEvent(W,this._handleMessageRevoked,this),g.subscribeInnerEvent(iA,this._handleMessageModified,this),g.subscribeInnerEvent(EA,this._handleConversationUpdated,this),g.subscribeInnerEvent(M,xA,this._handleMessageRead,this),g.subscribeInnerEvent(RA,this._reset,this),g.subscribeInnerEvent(kA,this._dispose,this),s.ssoLog.debug(`${this._name}.init`)}_handleConversationSynced(s){this.updateLocalConversationList({conversationUpdateFieldList:s.conversationUpdateFieldList||[],isFromGetConversations:!0,updateUnreadCount:!0}),this.emitConversationListUpdate()}_handleUnreadSyncFinished(s){const{constants:{WORKFLOW_STEP:n}}=this._core,{conversationUpdateFieldList:g=[],groupTipList:I=[],isUnreadC2CMessage:E}=s.result[n.UNREAD_MESSAGE_SYNC]||{};let m=!1;g.forEach(D=>{const{conversationID:M,unreadCount:T}=D,P=this.getLocalConversation(M);P&&P.unreadCount!==T&&(P.updateUnreadCount({nextUnreadCount:T,isUnreadC2CMessage:E}),m=!0)}),m&&this.emitConversationListUpdate(),this._handleGroupAtTipsSynced(I)}_handleGroupAtTipsSynced(s){var n;for(let g=0;g0&&this._handleNewGroupAtTips({GroupTips:M._groupAtInfoList}),m=!0}m&&this.emitConversationListUpdate()}_handleNewMessage(s){const{conversationUpdateFieldList:n=[],isInstantMessage:g=!0,isUnreadC2CMessage:I=!1,updateUnreadCount:E=!0}=s.result||{};if(n.length===0)return;const{common:{isTopic:m}}=this._core;m(n[0].conversationID)||(this.updateLocalConversationList({conversationUpdateFieldList:n,isInstantMessage:g,isUnreadC2CMessage:I,isFromGetConversations:!1,updateUnreadCount:E}),n.filter(D=>this._isConversationNeedShow(D.conversationID)).length>0&&this.emitConversationListUpdate())}_handleNewGroupAtTips(s){const{GroupTips:n=[]}=s;n.forEach(g=>{const{GroupAtTips:I,MsgBody:E,MsgRandom:m,ClientSeq:D}=g;let M={};I?M=this._convertGroupAtTipsKey(I):E?M=Object.assign({},this._convertGroupAtTipsKey(E)):g.groupAtType&&(M=Object.assign({},g)),M.__random=m,M.__sequence=D,this._groupAtTipsList.push(M)}),console.log(`${this._name}._handleNewGroupAtTips groupAtTipsList: ${JSON.stringify(this._groupAtTipsList)}`),this._updateGroupAtInfoList()}_convertGroupAtTipsKey(s){const{From_Account:n,GroupId:g,MsgSeq:I,GroupAtType:E}=s;return{from:n,groupID:g,sequence:I,groupAtType:E}}_updateGroupAtInfoList(){if(this._groupAtTipsList.length===0)return;const{common:s,OuterConstant:n}=this._core,g=s.getCurrentUserID();let I=!1;this._groupAtTipsList.forEach(E=>{const{groupID:m,from:D}=E;if(D!==g){const M=this.getLocalConversation(`${n.CONV_GROUP}${m}`);M&&(M.updateGroupAtInfoList(E),I=!0)}}),I&&this.emitConversationListUpdate(),this._groupAtTipsList.length=0}_handleMessageDeleted(s){var n,g;console.log(`${this._name}._handleMessageDeleted, conversationID:`,s);const{message:{messageDataHandler:I},OuterConstant:E}=this._core,m=I?.getLocalMessageList(s)||[];let D={};for(let P=(m.length||0)-1;P>=0;P--)if(!m[P].isDeleted&&m[P]._isExcludedFromLastMessage!==!0){D=m[P];break}const M=this.getLocalConversation(s);if(!M)return;let T=!1;M.lastMessage.lastSequence===D.sequence&&M.lastMessage.lastTime===D.time||(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D)&&(D=void 0),M.updateLastMessage(D),T=!0),s.startsWith(E.CONV_C2C)&&this.updateUnreadCount(s),T&&(this.emitConversationListUpdate(),console.log(`${this._name}._handleMessageDeleted. update conversationID:${s} with lastMessage:`,M.lastMessage))}_handleMessageRevoked(s){const{messageList:n=[],updateUnreadCount:g=!0}=s;if(console.log(`${this._name}._handleMessageRevoked messageList:${n.length}`),n.length===0)return;let I=null,E=!1;n.forEach(m=>{I=this.getLocalConversation(m.conversationID),I&&(g&&I.reduceUnreadCount()&&(E=!0),I.isLastMessageRevoked({sequence:m.sequence,time:m.time})&&(I.setLastMessageRevoked(!0),I.setLastMessageRevoker(m.revoker),E=!0))}),E&&this.emitConversationListUpdate()}_handleMessageModified(s){const{utils:{isEmpty:n},common:{getMessagePreviewText:g},ssoLog:I}=this._core;I.debug(`${this._name}._handleMessageModified`,JSON.stringify(s));const{conversationID:E,messageList:m}=s,D=this.getLocalConversation(E);if(n(D))return;const{lastMessage:M}=D;if(M){const T=m?.[0]||{};M.lastTime===T.time&&M.lastSequence===T.sequence&&M.version!==T.version&&(M.type=T.type,M.payload=T.payload,M.messageForShow=g(T.type,T.payload),M.cloudCustomData=T.cloudCustomData,M.version=T.version,this.emitConversationListUpdate(),console.log(`${this._name} conversationID:${E} lastMessage updated`))}}_handleConversationUpdated(s){this.emitConversationListUpdate(s?.needSort)}updateLocalConversationList(s){const{isFromGetConversations:n}=s,{newConversationList:g}=this._getTmpConversationListMapping(s);this._sortConversationList(),n||this._updateNewConversationProfile(g),this._core.ssoLog.debug("updateLocalConversationList",` newConversationList: ${g.length}`)}_getTmpConversationListMapping(s){const{OuterConstant:n}=this._core,{conversationUpdateFieldList:g,isFromGetConversations:I,isInstantMessage:E,isUnreadC2CMessage:m=!1,updateUnreadCount:D}=s,M=[],T=g?.length;for(let P=0;P{M[1].isPinned===!0?s(M[1].lastMessage.lastTime)?I.push(M):g.push(M):s(M[1].lastMessage.lastTime)?m.push(M):E.push(M)});const D=g.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime).concat(I).concat(E.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime)).concat(m);this._updateConversationMapFromList(D)}_updateNewConversationProfile(s){if(s.length===0)return;const n=[],g=[],{OuterConstant:{CONV_GROUP:I,CONV_C2C:E}}=this._core;s.forEach(m=>{const{conversationID:D,type:M}=m;if(M===E){const T=D.replace(E,"");n.push(T)}else if(M===I){const T=D.replace(I,"");g.push(T)}}),n.length>0&&this._updateC2CConversation(n),g.length>0&&this._updateGroupConversation(g)}_updateC2CConversation(s){var n;const{OuterConstant:{CONV_C2C:g},appStore:{userStore:I},user:E}=this._core;let m=!1;(n=E.userProfile)===null||n===void 0||n.getUserProfile({userIDList:s}).then(D=>{(D?.data||[]).forEach(M=>{var T;const{userID:P}=M,W=this.getLocalConversation(`${g}${P}`);if(W){const iA=((T=I.getFriend(P))===null||T===void 0?void 0:T.remark)||"";W.remark=iA,W.userProfile=M,m=!0}}),m&&this.emitConversationListUpdate()}).catch(D=>{}),BA.get(s)}_updateGroupConversation(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g},utils:{safeStringify:I},ssoLog:E,apiMap:{getGroupProfile:m}}=this._core;let D=!1;try{yield Promise.all(s.map(M=>mA(this,void 0,void 0,function*(){const T=g.getGroup(M),P=this.getLocalConversation(`${n}${M}`);T&&P&&(P.groupProfile=T,D=!0),P&&!P.getProfileCompleted()&&typeof m=="function"&&(yield m({groupID:M}))}))),yA.get(s),D&&this.emitConversationListUpdate()}catch(M){E.debug("_updateGroupConversation",I(M))}})}_handleMessageRead(s){const{OuterConstant:{CONV_C2C:n}}=this._core,{C2cNotifyMsgArray:g=[]}=s||{};g.forEach(I=>{const{To_Account:E,UinPairReadArray:m=[]}=I?.C2cReadedReceipt||{};m?.forEach(D=>{const{LastReadTime:M}=D,T=`${n}${E}`;this._updateConversationReadInfo({conversationID:T,peerReadTime:M}),this._updateMessageListPeerRead({conversationID:T,peerReadTime:M})})})}_updateConversationReadInfo(s){const{appStore:n,utils:{isEmpty:g},common:{getCurrentUserID:I}}=this._core,{conversationID:E,peerReadTime:m}=s,D=n.conversationStore.getConversationMap();if(D.has(E)){const M=D.get(E);M.peerReadTime=m;const T=M?.lastMessage;g(T)||T.fromAccount===I()&&T.lastTime<=m&&!T.isPeerRead&&(T.isPeerRead=!0,n.conversationStore.updateConversation(E,{lastMessage:T}))}}_updateMessageListPeerRead(s){const{notificationCenter:n,OuterEvent:g,message:I}=this._core,{conversationID:E,peerReadTime:m}=s,D=I.messageDataHandler.getLocalMessageList(E),M=I.messageDataHandler.getSparseMessageList(E),T=[];D.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),M.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),n.emitOuterEvent(g.MESSAGE_READ_BY_PEER,{name:g.MESSAGE_READ_BY_PEER,data:T})}_isConversationNeedShow(s){var n,g;const{OuterConstant:{CONV_GROUP:I,GRP_ROOM:E,GRP_LIVE:m},utils:{isUndefined:D}}=this._core,M=this.getLocalConversation(s);if(D(M))return!0;const T=M.type===I&&((n=M.groupProfile)===null||n===void 0?void 0:n.type)===E,P=M.type===I&&((g=M.groupProfile)===null||g===void 0?void 0:g.type)===m;return!(T||P)}updateUnreadCount(s,n=!0){var g,I;let E=!1;const m=this.getLocalConversation(s),D=(I=(g=this._core)===null||g===void 0?void 0:g.message.messageDataHandler)===null||I===void 0?void 0:I.getLocalMessageList(s);if(!m)return E;const M=m.unreadCount,T=D?.filter(P=>!P.isRead&&!P._onlineOnlyFlag&&!P.isDeleted).length;return console.log(`${this._name}._updateUnreadCount conversationID:${s} currentUnreadCount:${M} newUnreadCount:${T}`),M!==T&&(m.unreadCount=T,E=!0,n===!0&&this.emitConversationListUpdate()),E}emitConversationListUpdate(s=!1){var n,g;s&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:I},conversation:E}=this._core,m=this.getLocalConversationList();this._emitEvent({name:I,data:m,isSyncCompleted:(g=(n=E?.syncConversationHandler)===null||n===void 0?void 0:n.isSyncCompleted)===null||g===void 0?void 0:g.call(n)}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var s;const n=this.getTotalUnreadMessageCount();this._totalUnreadCount!==n&&(this._core.ssoLog.debug("_emitTotalUnreadCountUpdate",` from ${this._totalUnreadCount} to ${n}`),this._totalUnreadCount=n,this._emitEvent({name:(s=this._core)===null||s===void 0?void 0:s.OuterEvent.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,data:n}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}getTotalUnreadMessageCount(){const{OuterConstant:s,utils:{isEmpty:n}}=this._core,g=this.getLocalConversationList();let I=0;return g.forEach(E=>{E.type!==s.CONV_SYSTEM&&(n(E.messageRemindType)||E.messageRemindType===s.MSG_REMIND_ACPT_AND_NOTE)&&(I+=E.unreadCount)}),I}getLocalConversationList(){return[...this._conversationStore.getConversationMap().values()].filter(s=>this._isConversationNeedShow(s.conversationID))}hasLocalConversation(s){return this._conversationStore.getConversationMap().has(s)}getLocalConversation(s){return this._conversationStore.getConversationMap().get(s)}setLocalConversation(s,n){return this._conversationStore.getConversationMap().set(s,n)}deleteLocalConversation(s){this._conversationStore.getConversationMap().delete(s)}_updateConversationMapFromList(s){this._clearConversationMap();for(const[n,g]of s)this.setLocalConversation(n,g)}_clearConversationMap(){this._conversationStore.getConversationMap().clear()}patchMessageRemindType(s,n){let g=!1;s.forEach(I=>{const E=this.getLocalConversation(I);E?.messageRemindType!==n&&(E.messageRemindType=n,g=!0)}),console.log(`${this._name}.patchMessageRemindType conversationIDList:${s} messageRemindType:${n} hasUpdated:${g}`),g&&this.emitConversationListUpdate()}markMessageAsRead(s){const{message:{messageDataHandler:n}}=this._core,{conversationID:g,lastReadTime:I=0,lastReadSequence:E=0}=s,m=n?.getLocalMessageList(g);if(m.length===0)return;const{length:D}=m;for(let M=D-1;M>=0;M--){const T=m[M],P=I&&T.time>I,W=E&&T.sequence>E;if(!P&&!W){if(T.flow==="in"&&T.isRead)break;T.setIsRead(!0)}}}appendToPinnedConversation(s){const n=[...this._conversationStore.getConversationMap().entries()],g=n.findIndex(I=>I[1].isPinned===!1);n.splice(g,0,[s.conversationID,s]),this._updateConversationMapFromList(n),this.emitConversationListUpdate()}_reset(){this._clearConversationMap(),this._totalUnreadCount=0,this._groupAtTipsList=[]}_dispose(){const{notificationCenter:s,InnerEvent:{NEW_MESSAGE:n,MESSAGE_DELETED:g,MESSAGE_REVOKED:I,MESSAGE_MODIFIED:E,CONVERSATION_UPDATED:m,LOGOUT:D,DESTROY:M,SYNC_CONVERSATION_LIST:T}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:P}}=s;s.unSubscribeInnerEvent(n,this._handleNewMessage,this),s.unSubscribeInnerEvent(n,P,this._handleNewGroupAtTips,this),s.unSubscribeInnerEvent(g,this._handleMessageDeleted,this),s.unSubscribeInnerEvent(I,this._handleMessageRevoked,this),s.unSubscribeInnerEvent(E,this._handleMessageModified,this),s.unSubscribeInnerEvent(m,this._handleConversationUpdated,this),s.unSubscribeInnerEvent(T,this._handleConversationSynced,this),s.unSubscribeInnerEvent(D,this._reset,this),s.unSubscribeInnerEvent(M,this._dispose,this)}},ZA=new class{constructor(){this._name="GetConversationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationList",context:this})}getConversationList(s){return mA(this,void 0,void 0,function*(){return{code:0,data:{conversationList:this._getConversationList(s),isSyncCompleted:this._core.conversation.syncConversationHandler.isSyncCompleted()}}})}_getConversationList(s){const{utils:{isUndefined:n,isArray:g,isPlainObject:I}}=this._core;if(n(s))return NA.getLocalConversationList();if(g(s))return s.length===0?[]:NA.getLocalConversationList().filter(E=>s.includes(E.conversationID));if(I(s)){const{type:E,markType:m,groupName:D,hasUnreadCount:M,hasGroupAtInfo:T}=s;return NA.getLocalConversationList().filter(P=>this._filterType(P,E)&&this._filterMarkType(P,m)&&this._filterGroupName(P,D)&&this._filterUnreadCount(P,M)&&this._filterGroupAtInfo(P,T))}return[]}_filterType(s,n){const{OuterConstant:g}=this._core;return n!==g.CONV_C2C&&n!==g.CONV_GROUP||s.type===n}_filterGroupName(s,n){const{utils:{isString:g}}=this._core;return!g(n)||(n===""?s.conversationGroupList.length===0:s.conversationGroupList.includes(n))}_filterMarkType(s,n){const{utils:{isNumber:g}}=this._core;return!g(n)||(n===0?s.markList.length===0:s.markList.includes(n))}_filterUnreadCount(s,n){let g=!0;return n===!0?g=s.unreadCount>=1:n===!1&&(g=s.unreadCount===0),g}_filterGroupAtInfo(s,n){let g=!0;return n===!0?g=s.groupAtInfoList.length>=1:n===!1&&(g=s.groupAtInfoList.length===0),g}},Re=new class{constructor(){this._name="GetConversationProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,GRP_AVCHATROOM:I},appStore:{groupStore:E},utils:{isEmpty:m}}=this._core,D={code:0,data:{}};let M=NA.getLocalConversation(s);if(ks(s))return D.data.conversation=M,D;let T=!1;const P=Ct(s)?n:g;if(m(M)&&(T=!0,M=new Et({conversationID:s,type:P})),console.log(`${this._name}.getConversationProfile conversationID:${s} isNewConversation:${T}`),D.data.conversation=M,M?.getProfileCompleted())return D;if(P===n){const W=s.replace(n,"");yield this._handleC2CConversation(M,W),T&&(yield BA.get([W]))}if(P===g){const W=s.replace(g,"");if(!E.getGroup(W))return D;yield this._handleGroupConversation(M,W),T&&M.groupProfile.type!==I&&(yield yA.get([W]))}return D})}_handleC2CConversation(s,n){return mA(this,void 0,void 0,function*(){var g,I;const{user:E,helper:m,utils:{isEmpty:D},appStore:{conversationStore:M,userStore:T}}=this._core,{conversationID:P}=s,W=yield(g=E.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:[n]});if(W?.data.length===0)throw new m.ChatError({code:ha.USER_OR_GRP_NOT_FOUND});s.userProfile=W?.data[0];const iA=(I=T.getFriend(n))===null||I===void 0?void 0:I.remark;D(iA)||s.remark===iA||(s.remark=iA),s.setProfileCompleted();const EA=NA.hasLocalConversation(P);console.log(`${this._name}._handleC2CConversation conversationID:${P} hasLocalConversation: ${EA}`),EA?M.updateConversation(P,s):NA.appendToPinnedConversation(s)})}_handleGroupConversation(s,n){return mA(this,void 0,void 0,function*(){const{apiMap:{getGroupProfile:g},appStore:{conversationStore:I}}=this._core,{conversationID:E}=s,m=yield g({groupID:n});s.groupProfile=m?.data.group,s.setProfileCompleted();const D=NA.hasLocalConversation(E);console.log(`${this._name}._handleGroupConversation conversationID:${E} hasLocalConversation: ${D}`),D?I.updateConversation(E,s):NA.appendToPinnedConversation(s)})}},Ie=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return NA.getTotalUnreadMessageCount()}},Ne=new class{constructor(){this._serverGroupConversationLastReadSeqMap=new Map,this._name="SetMessageRead"}init(s){this._core=s;const{helper:n,common:{isTopic:g},notificationCenter:I,InnerEvent:{MESSAGE_PUSH:E},InnerEventSubType:{ALL_MESSAGE_READ:m}}=s;n.registerApi({apiName:"setMessageRead",context:this,matcher:D=>!g(D[0].conversationID)}),n.registerApi({apiName:"setAllMessageRead",context:this}),I.subscribeInnerEvent(E,m,this._handleAllMessageRead,this)}handleC2CMessageReadSync(s){const{helper:{isEmpty:n},OuterConstant:g}=this._core;s.forEach(I=>{const{ReadC2cMsgNotify:E}=I;if(!n(E)){const{UinPairReadArray:m=[]}=E;m.forEach(D=>{const{From_Account:M,LastReadTime:T}=D,P=`${g.CONV_C2C}${M}`;console.log(`${this._name}.handleC2CMessageReadSync conversationID:${P} lastReadTime:${T}`),NA.markMessageAsRead({conversationID:P,lastReadTime:T}),NA.updateUnreadCount(P)})}})}handleGroupMessageReadSync(s){const{OuterConstant:n,utils:{isUndefined:g}}=this._core;s.forEach(I=>{const{GroupReadInfoArray:E}=I.MsgBody;g(E)||E.forEach(m=>{const{GroupId:D,LastReadMsgSeq:M}=m,T=`${n.CONV_GROUP}${D}`;console.log(`${this._name}.handleGroupMessageReadSync conversationID:${T} lastReadSequence:${M}`),NA.markMessageAsRead({conversationID:T,lastReadSequence:M}),NA.updateUnreadCount(T),this._clearGroupAtInfoList(T)})})}setMessageRead(s){return mA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:I}=this._core,{conversationID:E}=s,m={code:0,data:{}},D=NA.getLocalConversation(E);let M=`${this._name}.setMessageRead conversationID:${E} unreadCount:${D?.unreadCount||0}`;if(m.successLog={message:M},!D)return m;const T=!(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D.groupAtInfoList));if(D.type===I.CONV_GROUP&&T&&this._deleteGroupAtTips(E),D.unreadCount===0)return m;const{helper:{ChatError:P}}=this._core;try{if(D.type===I.CONV_C2C){const W=this._getLocalMessageMaxTime(D);M+=`lastMessageTime:${W}`,yield this._setC2CMessageRead(E,W)}if(D.type===I.CONV_GROUP){const W=this._getLocalMessageMaxSequence(D);M+=`lastMessageSequence:${W}`,yield this._setGroupMessageRead(E,W)}}catch(W){const{errorCode:iA,errorInfo:EA}=W;throw new P({functionName:"setMessageRead",code:iA,message:EA,moreMessage:M})}return D.type===I.CONV_SYSTEM&&(D.unreadCount=0),NA.emitConversationListUpdate(),Object.assign(Object.assign({},m),{successLog:{message:M}})})}setAllMessageRead(){return mA(this,arguments,void 0,function*(s={}){const{OuterConstant:{READ_ALL_MSG:n},utils:{safeStringify:g}}=this._core;let I=`scope:${s.scope}`;s.scope||(s.scope=n);const{scope:E}=s,m=this._generateSetAllMessageReadRequestData(E);if(m.allC2CMessageReadStatus===$r&&m.groupMessageReadInfoList.length===0)return{code:0};try{const D=yield function(M){return mA(this,void 0,void 0,function*(){const{allC2CMessageReadStatus:T,groupMessageReadInfoList:P}=M,W={C2CReadAllMsg:T,GroupReadInfo:P};return Co.core.common.buildAndSendPacket({servcmd:"openim.read_all_unread_msg",data:W})})}(m);if(D){const{GroupReadInfoArray:M,C2CReadAllMsg:T}=D,P=this._parseGroupReadInfo(M);this._updateAllConversationReadStatus({allC2CMessageReadStatus:T})>0&&NA.emitConversationListUpdate(),I+=`failureGroupInfoList:${g(P)}`}return{code:0,successLog:{message:I}}}catch(D){const{errorCode:M}=D;throw new this._core.helper.ChatError({functionName:"setAllMessageRead",code:M,moreMessage:I})}})}_handleAllMessageRead(s){const{GroupReadInfoArray:n,C2CReadAllMsg:g}=s;this._parseGroupReadInfo(n),this._updateAllConversationReadStatus({allC2CMessageReadStatus:g})>0&&NA.emitConversationListUpdate()}_updateAllConversationReadStatus(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g},appStore:I}=this._core,E=I.conversationStore.getConversationMap(),{allC2CMessageReadStatus:m}=s;let D=0;for(const[M,T]of E)if(T.unreadCount>=1){if(m===H&&T.type===n){const P=this._getLocalMessageMaxTime(T);NA.markMessageAsRead({conversationID:M,lastReadTime:P})}else if(T.type===g){const P=M.replace(g,"");if(this._serverGroupConversationLastReadSeqMap.has(P)){const W=this._serverGroupConversationLastReadSeqMap.get(P);NA.markMessageAsRead({conversationID:M,lastReadSequence:W})}}NA.updateUnreadCount(M,!1)&&(D+=1)}return D}_generateSetAllMessageReadRequestData(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_C2C_MSG:I},appStore:E}=this._core,m={allC2CMessageReadStatus:$r,groupMessageReadInfoList:[]},D=E.conversationStore.getConversationMap();for(const[,M]of D){const{type:T,unreadCount:P}=M;if(this._shouldSetAllMessageRead({scope:s,type:T,unreadCount:P})){if(T===n&&m.allC2CMessageReadStatus===$r){if(m.allC2CMessageReadStatus=H,s===I)break}else if(T===g){const W=this._getLocalMessageMaxSequence(M),{groupID:iA}=M.groupProfile;m.groupMessageReadInfoList.push({GroupId:iA,MsgSeq:W})}}}return m}_parseGroupReadInfo(s){const{utils:{isUndefined:n}}=this._core,g=[];return s?.forEach(I=>{const{GroupId:E,MsgSeq:m,RetCode:D,LastReadMsgSeq:M}=I;n(D)?this._serverGroupConversationLastReadSeqMap.set(E,M):(this._serverGroupConversationLastReadSeqMap.set(E,m),D!==0&&g.push(`${E}-${m}-${D}`))}),g}_deleteGroupAtTips(s){return mA(this,void 0,void 0,function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${s}`);const n=NA.getLocalConversation(s);if(!n)return;const g=n?.groupAtInfoList||[];if(g.length!==0)try{const{common:{getCurrentUserID:I,isCommunity:E},OuterConstant:{CONV_GROUP:m,CONV_AT_ALL:D}}=this._core;let M=[...g];if(E({groupID:s.replace(m,"")})&&(M=g.filter(P=>!P.atTypeArray.includes(D)),M.length===0))return void this._clearGroupAtInfoList(s,!1);const T=M.map(P=>({From_Account:P.from,To_Account:I(),MsgSeq:P.__sequence,MsgRandom:P.__random,GroupId:P.groupID}));yield function(P,W){return mA(this,void 0,void 0,function*(){const{messageListToDelete:iA}=P,EA={DelMsgList:iA};return W.common.buildAndSendPacket({servcmd:"openim.deletemsg",data:EA})})}({messageListToDelete:T},this._core),console.log(`${this._name}._deleteGroupAtTips ok. count:${g.length}`),this._clearGroupAtInfoList(s)}catch(I){console.error(`${this._name}._deleteGroupAtTips fail:`,I)}})}_clearGroupAtInfoList(s,n=!0){const g=NA.getLocalConversation(s);g&&(g.groupAtInfoList.length>0&&(g.clearGroupAtInfoList(),console.log(`${this._name}._clearGroupAtInfoList conversationID:${s} needEmitConversationUpdate:${n}`)),n&&NA.emitConversationListUpdate())}_getLocalMessageMaxTime(s){var n;const{conversationID:g}=s,I=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...I.map(D=>D.time));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastTime)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxTime update lastMessageTime from ${m} to ${E}`),m=E),m}_getLocalMessageMaxSequence(s){var n;const{conversationID:g}=s,I=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...I.map(D=>D.sequence));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastSequence)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxSequence update lastMessageSequence from ${m} to ${E}`),m=E),m}_setC2CMessageRead(s,n){return mA(this,void 0,void 0,function*(){try{yield function(g,I){return mA(this,void 0,void 0,function*(){return I.common.buildAndSendPacket({servcmd:"openim.msgreaded",data:g})})}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:s.replace("C2C",""),LastedMsgTime:n,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${n}`),NA.markMessageAsRead({conversationID:s,lastReadTime:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setC2CMessageRead fail:`,g),g}})}_setGroupMessageRead(s,n){return mA(this,void 0,void 0,function*(){try{yield function(g,I){return mA(this,void 0,void 0,function*(){const{groupID:E,lastMessageSequence:m}=g,D={GroupId:E,MsgReadedSeq:m};return I.common.buildAndSendPacket({servcmd:"group_open_http_svc.msg_read_report",data:D})})}({groupID:s.replace("GROUP",""),lastMessageSequence:n},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${n}`),NA.markMessageAsRead({conversationID:s,lastReadSequence:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setGroupMessageRead fail:`,g),g}})}_shouldSetAllMessageRead(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_MSG:I,READ_ALL_C2C_MSG:E,READ_ALL_GROUP_MSG:m}}=this._core,{type:D,scope:M,unreadCount:T}=s;return!(T<=0)&&(!(D!==n||![I,E].includes(M))||!(D!==g||![I,m].includes(M)))}},ae=new class{constructor(){this._name="PinConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"pinConversation",context:this})}handleConversationPinned(s,n){const{utils:{isArray:g}}=this._core;if(!g(s))return;const{OuterConstant:I}=this._core;let E=!1;s.forEach(m=>{const{Type:D,Peer_Account:M,GroupId:T}=m;let P;D===1?P=NA.getLocalConversation(`${I.CONV_C2C}${M}`):D===2&&(P=NA.getLocalConversation(`${I.CONV_GROUP}${T}`)),P&&(console.log(`${this._name}.handleConversationPinned conversationID:${P.conversationID} localPinned:${P.isPinned} remotePinned:${n}`),n&&!P.isPinned&&(P.isPinned=!0,E=!0),!n&&P.isPinned&&(P.isPinned=!1,E=!0))}),E&&NA.emitConversationListUpdate(!0)}pinConversation(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n,common:g,helper:{ChatError:I}}=this._core,{conversationID:E,isPinned:m}=s,D={code:0,data:{conversationID:E}},M=NA.getLocalConversation(E);if(M&&M.isPinned===m)return D;if(ks(E))return M&&(M.isPinned=m),NA.emitConversationListUpdate(!0),D;const T=`conversationID:${E} isPinned:${m}`;try{let P=null;if(Ct(E)?P={Type:1,To_Account:E.replace(n.CONV_C2C,"")}:ug(E)&&(P={Type:2,GroupId:E.replace(n.CONV_GROUP,"")}),yield function(iA,EA){return mA(this,void 0,void 0,function*(){const{fromAccount:RA,operationType:kA,itemList:xA}=iA,LA={From_Account:RA,OperationType:kA,RecentContactItem:xA};return EA.common.buildAndSendPacket({servcmd:"recentcontact.top",data:LA})})}({fromAccount:g.getCurrentUserID(),operationType:m===!0?1:2,itemList:[P]},this._core)){if(M)M.isPinned!==m&&(M.isPinned=m);else{const iA=new Et({conversationID:E,type:Ct(E)?n.CONV_C2C:n.CONV_GROUP,isPinned:m});NA.setLocalConversation(E,iA)}NA.emitConversationListUpdate(!0)}return Object.assign(Object.assign({},D),{successLog:{message:T}})}catch(P){const{errorCode:W,errorInfo:iA}=P;throw new I({functionName:"pinConversation",code:W,message:iA,moreMessage:T})}})}},Ue=new class{constructor(){this._name="DeleteConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteConversation",context:this})}handleConversationDeleted(s){const{utils:{isArray:n}}=this._core;if(!n(s))return;const{OuterConstant:g}=this._core,I=[];s.forEach(E=>{const{Type:m,Peer_Account:D,GroupId:M}=E;m===1&&I.push(`${g.CONV_C2C}${D}`),m===2&&I.push(`${g.CONV_GROUP}${M}`)}),console.log(`${this._name}.handleConversationDeleted conversationIDList:${I}`),this._deleteLocalConversationList(I)}deleteConversation(s){return mA(this,void 0,void 0,function*(){const{utils:{isString:n}}=this._core;if(n(s))return this._deleteConversation({conversationIDList:[s],flag:aa.ONLY_CONVERSATIONID});const g=Object.assign({},s);return g.conversationIDList.length>100&&(g.conversationIDList=g.conversationIDList.slice(0,100)),this._deleteConversation(g)})}_deleteConversation(s){return mA(this,void 0,void 0,function*(){const{conversationIDList:n,clearHistoryMessage:g=!0,flag:I=0}=s,{helper:{ChatError:E}}=this._core,m=`conversationIDList:${n} clearHistoryMessage:${g}`;try{const D=yield Promise.all([this._deleteConversationFromLocal(n),this._deleteConversationFromServer(n,g)]),M=[...D[0],...D[1]];if(M.length===0)throw new this._core.helper.ChatError({code:ha.CONV_NOT_FOUND});return{code:0,data:I===aa.ONLY_CONVERSATIONID?{conversationID:M[0]}:{conversationIDList:M},successLog:{message:m}}}catch(D){const{errorCode:M,errorInfo:T}=D;throw new E({code:M,message:T,moreMessage:m})}})}_deleteConversationFromLocal(s){const{OuterConstant:n}=this._core;return s.filter(g=>{var I;if(!NA.hasLocalConversation(g))return!1;const E=(I=NA.getLocalConversation(g))===null||I===void 0?void 0:I.type;return E!==n.CONV_GROUP||this._hasLocalGroup(g)?E===n.CONV_SYSTEM&&(this._deleteLocalConversation(g),!0):(this._deleteLocalConversation(g),!0)})}_deleteConversationFromServer(s,n){return mA(this,void 0,void 0,function*(){const{OuterConstant:g,common:I}=this._core,E={fromAccount:I.getCurrentUserID(),conversationList:[],clearHistoryMessage:n?1:0};if(s.forEach(D=>{var M;if(NA.hasLocalConversation(D)){const T=((M=NA.getLocalConversation(D))===null||M===void 0?void 0:M.type)||"",P=D.replace(T,"");T===g.CONV_C2C?E.conversationList.push({To_Account:P,Type:1}):T===g.CONV_GROUP&&this._hasLocalGroup(D)&&E.conversationList.push({ToGroupid:P,Type:2})}}),E.conversationList.length===0)return[];const m=yield function(D,M){return mA(this,void 0,void 0,function*(){const{fromAccount:T,conversationList:P,clearHistoryMessage:W}=D,iA={From_Account:T,ContactItem:P,ClearRamble:W};return M.common.buildAndSendPacket({servcmd:"recentcontact.batch_delete",data:iA})})}(E,this._core);if(m){const{ResultItem:D=[]}=m,M=[];return D.length>0&&D.forEach(T=>{if(T.ResultCode===0){const P=T.Type===1?`${g.CONV_C2C}${T.To_Account}`:`${g.CONV_GROUP}${T.ToGroupid}`;M.push(P)}}),this._deleteLocalConversationList(M),M}return[]})}_deleteLocalConversationList(s){let n=!1;s.forEach(g=>{NA.hasLocalConversation(g)&&(this._deleteLocalConversation(g,!1),n=!0)}),console.log(`${this._name}._deleteLocalConversationList isUpdate:${n}`),n&&NA.emitConversationListUpdate()}_deleteLocalConversation(s,n=!0){const g=NA.hasLocalConversation(s);console.log(`${this._name}._deleteLocalConversation conversationID:${s} has:${g}`),g&&(NA.deleteLocalConversation(s),this._deleteConversationLocalMessage(s),n&&NA.emitConversationListUpdate())}_hasLocalGroup(s){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g}}=this._core,I=s.replace(n,"");return!!g.getGroup(I)}_deleteConversationLocalMessage(s){console.log(`${this._name}._deleteConversationLocalMessage conversationID:${s}`),this._core.message.messageDataHandler.deleteConversationMessageList(s),this._core.message.messageHistory.completedHistoryConversations.delete(s)}},yt=new class{constructor(){this._name="SetConversationDraft"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(s){return mA(this,void 0,void 0,function*(){const{conversationID:n,draftText:g}=s;if(console.log(`${this._name} conversationID:${n} draftText:${g}`),!NA.hasLocalConversation(n))throw new this._core.helper.ChatError({code:ha.CONV_NOT_FOUND});const I=NA.getLocalConversation(n);return I?.setDraftText(g),NA.emitConversationListUpdate(),{code:0,data:{conversation:I}}})}},Kt=new class{constructor(){this._name="SetC2CMessageRemindType"}init(s){this._core=s}set(s,n){return mA(this,void 0,void 0,function*(){s.length>30&&(console.warn(`${this._name}.set userIDList length:${s.length} exceeds limit 30`),s.splice(30));const g=function(){const{MSG_REMIND_ACPT_AND_NOTE:P,MSG_REMIND_DISCARD:W,MSG_REMIND_ACPT_NOT_NOTE:iA}=Co.core.OuterConstant;return{[P]:0,[W]:1,[iA]:2}}()[n],I=yield function(P,W){return mA(this,void 0,void 0,function*(){const{userIDList:iA,receiveMessageOption:EA}=P,RA={Peer_Account:iA,Mute_Notifications:EA};return W.common.buildAndSendPacket({servcmd:"openim.set_c2c_peer_mute_notifications",data:RA})})}({userIDList:s,receiveMessageOption:g},this._core),{ErrorList:E=[]}=I||{},m=[];E.forEach(P=>{const{Peer_Account:W,ErrorCode:iA}=P;m.push({userID:W,code:iA});const EA=s.indexOf(W);EA>-1&&s.splice(EA,1)});const D=[],M=[],{OuterConstant:T}=this._core;return s.forEach(P=>{M.push(`${T.CONV_C2C}${P}`),D.push({userID:P})}),NA.patchMessageRemindType(M,n),{code:0,data:{successUserIDList:D,failureUserIDList:m}}})}},ai=new class{constructor(){this._name="SetGroupMessageRemindType"}init(s){this._core=s}set(s,n){return mA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:g,isTopic:I},OuterConstant:E}=this._core;if(yield function(m,D){return mA(this,void 0,void 0,function*(){const{groupID:M,userID:T,receiveMessageOption:P}=m,W={GroupId:M,Member_Account:T,MsgFlag:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:W})})}({groupID:s,userID:g(),receiveMessageOption:n},this._core),!I(s)){const m=`${E.CONV_GROUP}${s}`;NA.patchMessageRemindType([m],n)}return{code:0,data:{groupID:s,messageRemindType:n}}})}},Qt=new class{constructor(){this._name="SetMessageRemindType"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setMessageRemindType",context:this})}handleC2CMessageRemindTypeSync(s){const{helper:{isEmpty:n},OuterConstant:g,ssoLog:I}=this._core;s.forEach(E=>{const{MuteNotificationsSync:m}=E;if(!n(m)){const{To_Account:D,MuteNotifications:M}=m,T=D.map(W=>`${g.CONV_C2C}${W}`),P=ji(M);I.debug(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${T} messageRemindType:${P}`),NA.patchMessageRemindType(T,P)}})}setMessageRemindType(s){return mA(this,void 0,void 0,function*(){const n="setMessageRemindType",{groupID:g,userIDList:I,messageRemindType:E}=s,{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;try{if(!D(g))return M.debug(`${this._name}.${n} groupID:${g} messageRemindType:${E}`),yield ai.set(g,E);if(!D(I))return M.debug(`${this._name}.${n} userIDList:${I} messageRemindType:${E}`),yield Kt.set(I,E);throw new m.ChatError({functionName:n,message:"userIDList or groupID is required"})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:`groupID:${g} userIDList:${I} messageRemindType:${E}`})}})}},hi=new class{init(s){s.ssoLog.debug("ConversationAction.init"),this._core=s,ZA.init(s),Re.init(s),Ie.init(s),Ne.init(s),ae.init(s),Ue.init(s),yt.init(s),Qt.init(s);const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g,DESTROY:I}}=this._core,{InnerEventSubType:{CONV_MODIFIED:E,C2C_MESSAGE_READ_SYNC:m,GROUP_MESSAGE_READ_SYNC:D,C2C_REMIND_TYPE_SYNC:M}}=n;n.subscribeInnerEvent(g,E,this._onConversationModified,this),n.subscribeInnerEvent(g,m,this._onC2CMessageReadSync,this),n.subscribeInnerEvent(g,M,this._onC2CMessageRemindTypeSync,this),n.subscribeInnerEvent(g,D,this._onGroupMessageReadSync,this),n.subscribeInnerEvent(I,this._dispose,this)}_onConversationModified(s){const{constants:{ConvModifyPushType:n}}=this._core,{RecentContactMod:g=[]}=s;g.forEach(I=>{const{PushType:E}=I;if(E===n.CONV_DELETED){const{RecentContactList:m}=I.RecentContactDeleteItem;Ue.handleConversationDeleted(m)}if(E===n.CONV_PINED){const{RecentContactList:m}=I.RecentContactTopItem;ae.handleConversationPinned(m,!0)}if(E===n.CONV_UNPINED){const{RecentContactList:m}=I.RecentContactTopItem;ae.handleConversationPinned(m,!1)}})}_onC2CMessageReadSync(s){const{C2cNotifyMsgArray:n=[]}=s;Ne.handleC2CMessageReadSync(n)}_onC2CMessageRemindTypeSync(s){const{C2cNotifyMsgArray:n=[]}=s;Qt.handleC2CMessageRemindTypeSync(n)}_onGroupMessageReadSync(s){const{GroupTips:n=[]}=s;Ne.handleGroupMessageReadSync(n)}_dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,DESTROY:g}}=this._core,{InnerEventSubType:{CONV_MODIFIED:I,C2C_MESSAGE_READ_SYNC:E,GROUP_MESSAGE_READ_SYNC:m,C2C_REMIND_TYPE_SYNC:D}}=s;s.unSubscribeInnerEvent(n,I,this._onConversationModified,this),s.unSubscribeInnerEvent(n,E,this._onC2CMessageReadSync,this),s.unSubscribeInnerEvent(n,D,this._onC2CMessageRemindTypeSync,this),s.unSubscribeInnerEvent(n,m,this._onGroupMessageReadSync,this),s.unSubscribeInnerEvent(g,this._dispose,this)}},Ao=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setAllReceiveMessageOpt",context:this})}setAllReceiveMessageOpt(s){return mA(this,void 0,void 0,function*(){try{const{OuterConstant:{MSG_REMIND_ACPT_NOT_NOTE:n}}=this._core,{messageRemindType:g=n,isRepeated:I=!0}=s,{startTime:E=0,endTime:m=0}=this._calcStartAndEndTime(s),D=yield function(M){return mA(this,void 0,void 0,function*(){const{common:T}=Co.core,{startTime:P,endTime:W,isRepeated:iA,messageRemindType:EA}=M,RA={StartTime:P,EndTime:W,IsRepeated:iA,Level:EA};return T.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_set_do_not_disturb",data:RA})})}({messageRemindType:this._getType(g),startTime:E,endTime:m,isRepeated:I?ts.ON:ts.OFF});return{code:0,data:{errorCode:D.ErrorCode,errorInfo:D.ErrorInfo}}}catch(n){oc("setAllReceiveMessageOpt",n)}})}_calcStartAndEndTime(s){const{startHour:n=0,startMinute:g=0,startSecond:I=0,duration:E=0,isRepeated:m=!0}=s,D=new Date,M=new Date(D.getFullYear(),D.getMonth(),D.getDate(),n,g,I),T=Math.round(M.getTime()/1e3);let P=T+E;return m&&E>=86400&&(P=T+86400),{startTime:T,endTime:P}}_getType(s){const{OuterConstant:n}=this._core;return{[n.MSG_REMIND_ACPT_AND_NOTE]:0,[n.MSG_REMIND_DISCARD]:1,[n.MSG_REMIND_ACPT_NOT_NOTE]:2}[s]}},Is=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:I}=s;n.registerApi({apiName:"getAllReceiveMessageOpt",context:this}),g.subscribeInnerEvent(I.MESSAGE_PUSH,g.InnerEventSubType.ALL_RECEIVE_MESSAGE_OPTION,this.onAllReceiveMsgOptionNotify,this)}onAllReceiveMsgOptionNotify(s){const n=this._handleResult(s),{notificationCenter:g,OuterEvent:{ALL_RECEIVE_MESSAGE_OPT_UPDATED:I}}=this._core;g.emitOuterEvent(I,{name:I,data:n})}getAllReceiveMessageOpt(){return mA(this,void 0,void 0,function*(){try{const s=yield function(){return mA(this,void 0,void 0,function*(){const{common:n}=Co.core,g={To_Account:n.getCurrentUserID()};return n.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_get_do_not_disturb",data:g})})}();return{code:0,data:this._handleResult(s)}}catch(s){oc("getAllReceiveMessageOpt",s)}})}_handleResult(s){const{OuterConstant:n}=this._core,{MSG_REMIND_ACPT_AND_NOTE:g,MSG_REMIND_DISCARD:I,MSG_REMIND_ACPT_NOT_NOTE:E}=n,m={0:g,1:I,2:E},{Level:D,StartTime:M,EndTime:T,IsRepeated:P}=s;return{messageRemindType:m[D]||g,startTime:M,endTime:T,isRepeated:P===ts.ON}}},Lo=new class{init(s){s.ssoLog.debug("ReceiveMessageOptions.init"),this._core=s,Kt.init(s),ai.init(s),BA.init(s),yA.init(s),Ao.init(s),Is.init(s)}};const ei=s=>!Ct(s)&&!ug(s)&&!ks(s),kr={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ei(s)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ei(s)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ei(s)||"conversationID is invalid."},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},deleteConversation:[{key:"options",required:!0,rules:["string","object"],allowEmpty:!1,customValidator:s=>{const{core:{utils:{isArray:n,isObject:g,isString:I}}}=Co;if(!I(s)&&!g(s))return"options is String or Object.";if(I(s)&&ei(s))return"conversationID is invalid.";if(g(s)){if(!n(s.conversationIDList))return"conversationIDList is not Array.";if(s.conversationIDList.length===0)return"conversationIDList is empty.";if(s.conversationIDList.some(E=>{if(ei(E))return!0}))return"conversationIDList includes invalid conversationID.";if(s.clearHistoryMessage&&typeof s.clearHistoryMessage!="boolean")return"clearHistoryMessage is not Boolean."}return!0}}],setConversationDraft:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!Ct(s)&&!ug(s))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}},setAllReceiveMessageOpt:{messageRemindType:{required:!1,rules:["string"],allowEmpty:!0},startHour:{required:!1,rules:["number"],allowEmpty:!0},startMinute:{required:!1,rules:["number"],allowEmpty:!0},startSecond:{required:!1,rules:["number"],allowEmpty:!0},duration:{required:!1,rules:["number"],allowEmpty:!0},isRepeated:{required:!1,rules:["boolean"],allowEmpty:!0}}},zo={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0,getAllReceiveMessageOpt:!0,setAllReceiveMessageOpt:!0};var jn=new class{constructor(){this.name="Conversation"}install(s){Co.init(s),hi.init(s),Lo.init(s),NA.init(s),s.helper.registerValidateConfig({auth:zo,params:kr})}};const Wn=new class{init(s){this.core=s}},Aa="AVChatRoom",Vr="AV_HISTORY_MSG",sc="GRP_COUNTER",Pu="Set",Cm="Increase",Ri="Decrease",ti=0,fo=1,on=2,is=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Eg=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Ul=["Role","JoinTime","MsgFlag","MsgSeq"],Cd=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],Lc=0,Sr=1,mI="notStart",Au="resolved",Og="rejected",eu=10018,fI=11e3,Uc=2,xu=["Owner","Admin","Member"],hm=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],Bm=0,Qm=1,pm=2,Xy=4,$y=1,Dv=2,AD=3,eD=4,Sv=5,X_=1,hd=0,$_=4,tD=6,AT=400,iD=300,eT={from:!0,groupID:!0,groupName:!0,to:!0},Mv={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},tT=2,vv=4,iT=5,oT=7,oD=8,sD=15,MQ=20,mm=21,fm=2600,Bd=2602,sT=2603,nT=2620,ym=2621,nD=2623,gh=2660,rT=2661,aT=2681,Dm=2683,Rv=2684,rD=2685,Sm=2687,wv=3122,gT=10018,cT={0:"DisableInvite",1:"NeedPermission",2:"FreeAccess"},_v=s=>s===Wn.core.OuterConstant.GRP_PUBLIC,Qd=s=>s===Wn.core.OuterConstant.GRP_AVCHATROOM,Mm=(s,n)=>{const{isArray:g}=Wn.core.utils;if(!g(s)||!g(n))return!1;let I=!1;return n.forEach(({key:E,value:m})=>{const D=s.find(M=>M.key===E);D?D.value!==m&&(D.value=m,I=!0):(s.push({key:E,value:m}),I=!0)}),I},pd=s=>{const n=[];if(!s)return n;for(let g=0,I=s.length;g{const n=[];for(let g=0,I=s.length;g0&&M.members.forEach(T=>{T.userID===this.selfInfo.userID&&D(this.selfInfo,T,["sequence"])})}updateSelfInfo(n){const{nameCard:g,joinTime:I,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M}=n,{common:{deepMerge:T}}=Wn.core;T(this.selfInfo,{nameCard:g,joinTime:I,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M},[],["",null,void 0,0,NaN])}setSelfNameCard(n){this.selfInfo.nameCard=n}}var Yi=new class{constructor(){this._name="GroupDataHandler"}init(s){this._core=s;const{appStore:{groupStore:n}}=s;this._groupMap=n.getGroupMap()}hasLocalGroup(s){return this._groupMap.has(s)}getLocalGroup(s){return this._groupMap.get(s)}updateLocalGroup(s){const{common:{getCurrentUserID:n}}=this._core;let g;s.forEach(E=>{var m;g=E.groupID,this.hasLocalGroup(g)?(m=this.getLocalGroup(g))===null||m===void 0||m.updateGroup(E):(this._groupMap.set(g,new Yu(E)),this._clearGroupLocalMessage(g))});const I=n();for(const[,E]of this._groupMap)E.selfInfo.userID=I,E.selfInfo.role==="Owner"&&(E.ownerID=I)}deleteLocalGroup(s){this._groupMap.delete(s)}getLocalGroupList(){const{OuterConstant:{GRP_ROOM:s,GRP_LIVE:n}}=this._core;return[...this._groupMap.values()].filter(g=>{const{type:I}=g;return I!==s&&I!==n})}clearLocalGroup(){this._groupMap.clear()}emitGroupListUpdate(){const s=this.getLocalGroupList(),{OuterEvent:{GROUP_LIST_UPDATED:n},notificationCenter:g}=this._core;g.emitOuterEvent(n,{name:n,data:s})}updateConversationGroupProfile(s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core,I=`${g}${s}`,E=n.getConversation(I);if(E){const m=this.getLocalGroup(s);E.setProfileCompleted(),n.updateConversation(I,{groupProfile:m})}}reset(){this.clearLocalGroup()}_clearGroupLocalMessage(s){const{message:{messageHistory:n,messageDataHandler:g},OuterConstant:{CONV_GROUP:I},ssoLog:E}=this._core;E.debug("_clearGroupLocalMessage",`groupID:${s}`);const m=`${I}${s}`;n.completedHistoryConversations.delete(m),g.deleteConversationMessageList(m)}};function Rm(s,n){return mA(this,void 0,void 0,function*(){const{type:g,limit:I,offset:E,supportTopic:m=0,memberAccount:D,responseFilter:M}=s,T={Type:g,Limit:I,Offset:E,Member_Account:D,ResponseFilter:M,SupportTopic:m,NeedAppDefineData:1};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_joined_group_list",data:T})})}const dn=function(s,n){return{code:0,data:s||{},successLog:n}};var Tv=new class{constructor(){this._name="GetGroupList",this._pagingStatus=mI,this.PAGING_GRP_COUNT_LIMIT=200}init(s){this._core=s;const{helper:n,constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:I}}=s;n.registerApi({apiName:"getGroupList",context:this}),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_LOGIN,I.GROUP_LIST_SYNC,this._syncGroupList,this)}getGroupList(){return mA(this,arguments,void 0,function*(s=!1){if(s){const g=[];return yield this._pagingGetJoinedCommunityList({limit:this.PAGING_GRP_COUNT_LIMIT,offset:0,groupList:g}),Yi.updateLocalGroup(g),Yi.getLocalGroupList()}if(this._core.ssoLog.debug("getGroupList",`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===Og||this._pagingStatus===mI)return this._syncGroupList().then(()=>{const g=Yi.getLocalGroupList();return dn({groupList:g,isSyncCompleted:this._isSyncCompleted()})}).catch(g=>{throw g});const n=Yi.getLocalGroupList();return dn({groupList:n,isSyncCompleted:this._isSyncCompleted()},{message:`return group count:${n.length}`})})}_syncGroupList(){return mA(this,void 0,void 0,function*(){this._pagingStatus===mI&&Yi.clearLocalGroup();const s=this.PAGING_GRP_COUNT_LIMIT,n=[];try{yield this._pagingGetGroupList({limit:s,offset:0,groupList:n}),this._pagingStatus=Au,this._groupListTreeShaking(n),Yi.updateLocalGroup(n);const g=Yi.getLocalGroupList();return this._core.ssoLog.debug("_syncGroupList",`${this._name}._syncGroupList ok, count:${g.length}`),Yi.emitGroupListUpdate(),g}catch(g){throw this._pagingStatus=Og,g}})}_pagingGetGroupList(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{isCommunityRelay:g=!1,groupList:I}=s;let E,{limit:m,offset:D}=s;const M=[...is];g&&(E=this._core.OuterConstant.GRP_COMMUNITY,M.push("AtInfoList"));try{const T=yield Rm({type:E,limit:m,offset:D,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:M,SelfInfoFilter:[...Ul]}},this._core),{GroupIdList:P=[],TotalCount:W=0}=T||{},iA=this._convertGroupKey(P);I.push(...iA);const EA=D+m,RA=!(W>EA),kA=`offset:${D} limit:${m} total:${W} isCompleted:${RA} current:${I.length} isCommunityRelay:${g}`;return n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. ${kA}`),g?RA?I:(D=EA,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:I})):RA?(n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList start to get community list`),D=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:I})):(D=EA,this._pagingGetGroupList({limit:m,offset:D,groupList:I}))}catch(T){if(T.ErrorCode===eu)return n.warn("_pagingGetGroupList",`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetGroupList({isCommunityRelay:g,limit:m,offset:D,groupList:I});if(g)return T.code===fI&&n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. community unavailable`),I;throw T}})}_pagingGetJoinedCommunityList(s){return mA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:n},OuterConstant:g,ssoLog:I}=this._core,{groupList:E}=s;let{limit:m,offset:D}=s;try{const M=yield Rm({limit:m,offset:D,type:g.GRP_COMMUNITY,memberAccount:n(),supportTopic:1,responseFilter:{GroupBaseInfoFilter:[...is],SelfInfoFilter:[...Ul]}},this._core),{GroupIdList:T=[],TotalCount:P=0}=M||{},W=this._convertGroupKey(T);E.push(...W);const iA=D+m,EA=!(P>iA),RA=`offset:${D} limit:${m} total:${P} isCompleted:${EA} current:${E.length}`;return I.debug("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList ok. ${RA}`),EA?E:(D=iA,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E}))}catch(M){if(M.code===gT)return I.warn("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E});throw M}})}_groupListTreeShaking(s){const n=new Map([...Yi.getLocalGroupList()]);for(let I=0,E=s.length;I{const{AtFlagList:E,AtMsgSeq:m,From_Account:D}=I;g.push({groupID:s,groupAtType:E,sequence:m,from:D})}),g}},Vu=new class{constructor(){this._name="CreateGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"createGroup",context:this})}createGroup(s){return mA(this,void 0,void 0,function*(){var n;this._preCheckParams(s);const{helper:{ChatError:g}}=this._core;try{const{utils:{isEmpty:I},common:{getCurrentUserID:E},OuterConstant:{GRP_AVCHATROOM:m}}=this._core,D=yield function(iA,EA){return mA(this,void 0,void 0,function*(){const{name:RA,type:kA,groupID:xA,introduction:LA,notification:SA,avatar:OA,maxMemberNum:JA,joinOption:re,inviteOption:ne,memberList:_i,groupCustomField:Ti,isSupportTopic:kt}=iA;let Ni,cs;_i&&(Ni=_i.map(Bt=>{const{userID:UA,memberCustomField:ii}=Bt;return{Member_Account:UA,AppMemberDefinedData:ii?bE(ii):void 0}})),Ti&&(cs=bE(Ti));const Se={Name:RA,Type:kA,GroupId:xA,Introduction:LA,Notification:SA,FaceUrl:OA,MaxMemberCount:JA,ApplyJoinOption:re,InviteJoinOption:ne,MemberList:Ni,AppDefinedData:cs,SupportTopic:kt,webPushFlag:1};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.create_group",data:Se})})}(Object.assign(Object.assign({},s),{ownerID:E()}),this._core),{GroupId:M,OverJoinedGroupLimit_Account:T=[]}=D||{},P=`${this._name}.createGroup ok, type:${s.type} groupID:${M} overLimitUserIDList:${T}`;if(I(s.memberList)||I(T)||(s.memberList=(n=s.memberList)===null||n===void 0?void 0:n.filter(iA=>T.includes(iA.userID))),s.type===m)return dn({group:new Yu(Object.assign(Object.assign({},s),{groupID:M}))},{message:P});Yi.updateLocalGroup([Object.assign(Object.assign({},s),{groupID:M})]);const W=Yi.getLocalGroup(M);return this._notNeedSendCustomMessage(s)||(this._sendCustomMessage(M,s.type),Yi.emitGroupListUpdate()),dn({group:W},{message:P})}catch(I){const{errorCode:E,errorInfo:m}=I;throw new g({functionName:"createGroup",code:E,message:m,moreMessage:` groupID:${s.groupID}`})}})}_preCheckParams(s){const{type:n,groupID:g}=s,{utils:{isEmpty:I,isUndefined:E},common:{isCommunity:m}}=this._core,D=!I(g);if(!(()=>{const{GRP_PUBLIC:M,GRP_WORK:T,GRP_MEETING:P,GRP_AVCHATROOM:W,GRP_COMMUNITY:iA}=Wn.core.OuterConstant;return[M,T,P,W,iA]})().includes(n))throw new this._core.helper.ChatError({code:fm});if(!m({type:n})){if(D&&m({groupID:g}))throw new this._core.helper.ChatError({code:Bd});E(s.isSupportTopic)||(s.isSupportTopic=void 0)}if(this._canIUseMemberList(n)||E(s.memberList)||(s.memberList=void 0),this._canIUseJoinOption(n)||E(s.joinOption)||(s.joinOption=void 0),m({type:n})){if(D&&!m({groupID:g}))throw new this._core.helper.ChatError({code:Bd});s.isSupportTopic=this._canIUseTopic(s)?1:0}}_canIUseMemberList(s){return!Qd(s)}_canIUseJoinOption(s){return _v(s)||this._core.common.isCommunity({type:s})}_canIUseTopic(s){const{isSupportTopic:n}=s;return n===!0}_notNeedSendCustomMessage(s){const{type:n,isSupportTopic:g}=s,{OuterConstant:{GRP_AVCHATROOM:I,GRP_COMMUNITY:E}}=this._core;return n===I||n===E&&g===1}_sendCustomMessage(s,n){var g,I,E,m,D,M;const{OuterConstant:T,common:{t:P}}=this._core;let W=P("CREATE_GROUP"),iA=Lc;n===T.GRP_COMMUNITY&&(W=P("CREATE_COMMUNITY"),iA=Sr);const EA={to:s,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:W,cmd:iA,opUser:this._core.store.get("login").userId,version:4})}},RA=(E=(I=(g=this._core)===null||g===void 0?void 0:g.message)===null||I===void 0?void 0:I.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(EA);(M=(D=(m=this._core)===null||m===void 0?void 0:m.message)===null||D===void 0?void 0:D.messageSender)===null||M===void 0||M.sendMessage(RA,{})}},zs=new class{constructor(){this._name="AttributesDataHandler",this._groupAttributesCache=new Map,this._groupAttributesCacheValuesCopy={}}init(s){this._core=s;const{helper:n,constants:g}=s;n.registerWorkflowStep(g.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,g.WORKFLOW_STEP.GROUP_ATTRIBUTE_CACHE_CLEAR,this.clearLocalMainSequence,this)}clearLocalMainSequence(){this._groupAttributesCache.forEach(s=>{s.localMainSequence=0})}isGroupAttributesUpdated(s){const{elements:{newGroupProfile:n}}=s,{utils:{isEmpty:g,isUndefined:I}}=this._core;return!I(n)&&!g(n.groupAttributeOption)}handleGroupAttributesUpdated(s){const{groupID:n,groupAttributeOption:g}=s,{serverMainSequence:I,groupAttributeList:E=[],operation:m}=g;this._core.ssoLog.debug("handleGroupAttributesUpdated",`${this._name}.handleGroupAttributesUpdated groupID:${n} operation:${m}`);const{utils:{isUndefined:D}}=this._core;D(m)||(this.refreshGroupAttributesCache({groupID:n,serverMainSequence:I,groupAttributeList:E,operation:m}),this.emitGroupAttributesUpdated(n))}initGroupAttributesCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupAttributesCache.set(n,{lastUpdateTime:0,localMainSequence:0,serverMainSequence:0,avChatRoomKey:g,values:new Map}),this._core.ssoLog.debug("initGroupAttributesCache",`${this._name}.initGroupAttributesCache. groupID:${n} avChatRoomKey:${g}`)}hasGroupAttributesCache(s){return this._groupAttributesCache.has(s)}getGroupAttributesCache(s){return this.hasGroupAttributesCache(s)||this.initGroupAttributesCache({groupID:s}),this._groupAttributesCache.get(s)}deleteGroupAttributesCache(s){this.hasGroupAttributesCache(s)&&this._groupAttributesCache.delete(s)}refreshGroupAttributesCache(s){const{groupID:n,serverMainSequence:g,groupAttributeList:I,operation:E}=s;if(this.hasGroupAttributesCache(n)){const m=this.getGroupAttributesCache(n),{localMainSequence:D}=m;E!==Sv&&g-D!==1||(m.serverMainSequence=g,m.localMainSequence=g,m.lastUpdateTime=Date.now(),this._updateGroupAttributesCacheValues({groupAttributes:m,groupAttributeList:I,operation:E})),g-D>1&&(m.serverMainSequence=g),this._groupAttributesCache.set(n,m),this._core.ssoLog.debug("refreshGroupAttributesCache",`${this._name}.refreshGroupAttributesCache. operation:${E} localMainSequence:${D} serverMainSequence:${g}`)}}_updateGroupAttributesCacheValues(s){const{groupAttributes:n,groupAttributeList:g=[],operation:I}=s;I!==AD?I!==eD?(I===$y&&n.values.clear(),g.forEach(E=>{const{key:m,value:D,sequence:M}=E;n.values.set(m,{value:D,sequence:M})})):g.forEach(E=>{n.values.delete(E.key)}):n.values.clear()}getGroupAttributesCacheValues(s){var n;const{groupID:g,keyList:I=[]}=s,E={};if(this.hasGroupAttributesCache(g)){const{values:m}=this.getGroupAttributesCache(g);if(I.length===0){for(const D of m.keys())E[D]=((n=m.get(D))===null||n===void 0?void 0:n.value)||"";return E}return I.forEach(D=>{var M;m.has(D)&&(E[D]=((M=m.get(D))===null||M===void 0?void 0:M.value)||"")}),E}return E}saveGroupAttributesCacheValuesCopy(s){this._groupAttributesCacheValuesCopy=this.getGroupAttributesCacheValues({groupID:s})}emitGroupAttributesUpdated(s){var n,g;const{OuterConstant:{GRP_ROOM:I,GRP_LIVE:E}}=this._core,m=this.getGroupAttributesCacheValues({groupID:s}),D=this._core.appStore.groupStore.getGroup(s),{updatedKeyList:M,deletedKeyList:T}=this._computeValuesChangedData(m);M.length===0&&T.length===0||([I,E].includes(D.type)?(this._core.ssoLog.debug("RICH_STATUS_CHANGED",`${this._name}.emitRichStatusChanged update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.OuterEvent.RICH_STATUS_CHANGED,data:{groupID:s,richStatus:m,updatedKeyList:M,deletedKeyList:T}})):(this._core.ssoLog.debug("emitGroupAttributesUpdated",`${this._name}.emitGroupAttributesUpdated update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.OuterEvent.GROUP_ATTRIBUTES_UPDATED,data:{groupID:s,groupAttributes:m,updatedKeyList:M,deletedKeyList:T}})))}_computeValuesChangedData(s){const{utils:{isUndefined:n}}=this._core,g=[],I=[];return Object.keys(s).forEach(E=>{s[E]!==this._groupAttributesCacheValuesCopy[E]&&g.push(E)}),Object.keys(this._groupAttributesCacheValuesCopy).forEach(E=>{n(s[E])&&I.push(E)}),this._groupAttributesCacheValuesCopy={},{updatedKeyList:g,deletedKeyList:I}}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}convertKeyValueMapToList(s){const n=[];return Object.keys(s).forEach(g=>{n.push({key:g,value:s[g]})}),n}reset(){this._groupAttributesCache.clear(),this._groupAttributesCacheValuesCopy={}}},lh=new class{constructor(){this._name="DismissGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}dismissGroup(s){return mA(this,void 0,void 0,function*(){const{helper:{ChatError:n}}=this._core;try{yield function(I,E){return mA(this,void 0,void 0,function*(){const m={GroupId:I};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.destroy_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:s})}catch(g){const{errorCode:I,errorInfo:E}=g;throw new n({functionName:"dismissGroup",code:I,message:E})}})}},Fl=new class{constructor(){this._name="GetGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(s){return mA(this,void 0,void 0,function*(){const{groupID:n,groupCustomFieldFilter:g}=s,I={groupIDList:[n],responseFilter:{GroupBaseInfoFilter:[...is],AppDefinedDataFilter_Group:g,MemberInfoFilter:[...Cd]}},{helper:{ChatError:E}}=this._core;try{const m=yield this.getGroupProfileAdvance(I),{successGroupList:D,failureGroupList:M}=m;if(M.length>0)throw M[0];let T;return!Yi.hasLocalGroup(n)&&Qd(D[0].type)?T=new Yu(D[0]):(Yi.updateLocalGroup(D),T=Yi.getLocalGroup(n)),T.isSupportTopic||Yi.updateConversationGroupProfile(n),dn({group:T},{message:`groupID:${n}`})}catch(m){const{code:D,message:M}=m;throw new E({functionName:"getGroupProfile",code:D,message:M})}})}getGroupProfileAdvance(s){return mA(this,void 0,void 0,function*(){const{groupIDList:n}=s,{common:{isCommunity:g}}=this._core,I=n.filter(T=>!g({groupID:T})),E=n.filter(T=>g({groupID:T}));I.length>50&&(I.length=50),E.length>50&&(E.length=50);const m=yield Promise.all([this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:I})),this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:E,isCommunityProfile:!0}))]),D=[],M=[];return m.forEach(T=>{D.push(...T.successGroupList),M.push(...T.failureGroupList)}),{successGroupList:D,failureGroupList:M}})}_getGroupProfileAdvance(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{isUndefined:g}}=this._core,{isCommunityProfile:I=!1}=s,E=yo(s,["isCommunityProfile"]);if(E.groupIDList.length===0)return{successGroupList:[],failureGroupList:[]};try{const m=yield function(W,iA){return mA(this,void 0,void 0,function*(){const{groupIDList:EA,responseFilter:RA}=W,kA={GroupIdList:EA,ResponseFilter:RA};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:kA})})}(E,this._core),{GroupInfo:D=[]}=m||{},M=this._convertGroupProfileKey(D),T=M.filter(W=>g(W.errorCode)||W.errorCode===0),P=M.filter(W=>W.errorCode&&W.errorCode!==0).map(W=>({code:W.errorCode,message:W.errorInfo,data:{groupID:W.groupID}}));return n.debug("_getGroupProfileAdvance",`${this._name}._getGroupProfileAdvance ok, groupID:${E.groupIDList.join(",")}`),{successGroupList:T,failureGroupList:P}}catch(m){if(I)return{successGroupList:[],failureGroupList:[]};throw m}})}_convertGroupProfileKey(s){const n=[];for(let g=0,I=s.length;g0&&I{const{Key:T,Value:P=0}=M;E.set(T,P)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:I,counters:E,avChatRoomKey:m})}}initGroupCountersCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupCountersMap.set(n,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:g})}getLocalCounters(s,n){const g={};if(!this._hasLocalGroupCounters(s))return g;const{counters:I}=this.getLocalGroupCounters(s);if(n.length>0)n.forEach(E=>{I.has(E)&&(g[E]=I.get(E))});else for(const E of I.keys())g[E]=I.get(E);return g}deleteLocalGroupCounters(s){const{groupID:n,counterList:g=[],groupCounterSeq:I}=s;if(this._hasLocalGroupCounters(n)){const{counters:E,avChatRoomKey:m}=this.getLocalGroupCounters(n);g.forEach(D=>{E.delete(D.key)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:I,counters:E,avChatRoomKey:m})}}setGroupCounters(s,n){if(!this._hasLocalGroupCounters(s))return;const g=this.getLocalGroupCounters(s),{counters:I}=g;let E=!1;Object.entries(n).forEach(([m,D])=>{I.has(m)&&I.get(m)!==D&&(I.set(m,D),E=!0)}),E&&this._groupCountersMap.set(s,Object.assign(Object.assign({},g),{lastUpdateTime:Date.now(),counters:I}))}_hasLocalGroupCounters(s){return this._groupCountersMap.has(s)}reset(){this._groupCountersMap.clear()}},kE=new class{constructor(){this._name="JoinGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}joinGroup(s){return mA(this,void 0,void 0,function*(){const{groupID:n}=s,{helper:{ChatError:g},OuterConstant:I,ssoLog:E}=this._core;try{if(Yi.hasLocalGroup(n))try{return yield Fl.getGroupProfile({groupID:n}),dn({status:I.JOIN_STATUS_ALREADY_IN_GROUP,group:Yi.getLocalGroup(n)},{message:`groupID:${n} joinedStatus:${I.JOIN_STATUS_ALREADY_IN_GROUP}`})}catch{return E.warn("joinGroup",`${this._name}.joinGroup ${n} was unjoined, start to join!`),Yi.deleteLocalGroup(n),yield this._applyJoinGroup(s)}return yield this._applyJoinGroup(s)}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g({functionName:"joinGroup",code:D,message:M,moreMessage:`groupID:${n}`})}})}_applyJoinGroup(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n,helper:g,ssoLog:I}=this._core,{groupID:E}=s,m=Object.assign({},s),D=g.checkBusinessCapabilityBits(Vr);D&&(m.historyMessageFlag=1);const M=yield function(SA,OA){return mA(this,void 0,void 0,function*(){const{groupID:JA,applyMessage:re,historyMessageFlag:ne}=SA,_i={GroupId:JA,ApplyMsg:re,HugeGroupHistoryMsgFlag:ne};return OA.common.buildAndSendPacket({servcmd:"group_open_http_svc.apply_join_group",data:_i})})}(m,this._core),{Type:T,JoinedStatus:P,LongPollingKey:W,StartSeq:iA,HugeGroupFlag:EA,AVChatRoomKey:RA,RspMsgList:kA=[]}=M||{},xA=`groupID:${E} joinedStatus:${P} longPollingKey:${W} startSeq:${iA} avChatRoomFlag:${EA} canGetAVChatRoomHistoryMsg:${D}, historyMessageCount:${kA.length}`;I.debug("_applyJoinGroup",`${this._name}._applyJoinGroup ok, ${xA}`);let LA=new Yu({groupID:E,type:T});if(P===n.JOIN_STATUS_WAIT_APPROVAL)return dn({status:n.JOIN_STATUS_WAIT_APPROVAL,group:LA});if(P===n.JOIN_STATUS_SUCCESS){try{LA=(yield Fl.getGroupProfile({groupID:E})).data.group}catch(SA){I.warn("_applyJoinGroup",`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${E}, errorCode:${SA?.code}`)}return this._handleJoinResult({group:LA,avChatRoomFlag:EA,longPollingKey:W,startSequence:iA,avChatRoomKey:RA,historyMessageList:kA})}throw new this._core.helper.ChatError({code:gh})})}_handleJoinResult(s){const{group:n,avChatRoomFlag:g,avChatRoomKey:I}=s;return g===1?(zs.initGroupAttributesCache({groupID:n.groupID,avChatRoomKey:I}),nc.initGroupCountersCache({groupID:n.groupID,avChatRoomKey:I}),dn(s)):(Yi.updateLocalGroup([n]),Yi.emitGroupListUpdate(),dn({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:n},{message:`groupID:${n.groupID}`}))}},vQ=new class{constructor(){this._name="QuitGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}quitGroup(s){return mA(this,void 0,void 0,function*(){if(!Yi.hasLocalGroup(s))throw new this._core.helper.ChatError({code:nD});const{helper:{ChatError:n}}=this._core;try{yield function(I,E){return mA(this,void 0,void 0,function*(){const m={GroupId:I};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.quit_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:`groupID:${s}`})}catch(g){const{errorCode:I,errorInfo:E}=g;throw new n({functionName:"quitGroup",code:I,message:E,moreMessage:`groupID:${s}`})}})}},rB=new class{constructor(){this._name="SearchGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(s){return mA(this,void 0,void 0,function*(){try{const n=yield function(OA,JA){return mA(this,void 0,void 0,function*(){const re={GroupIdList:[OA],GroupBasePublicInfoFilter:[...Eg]};return JA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_public_info",data:re})})}(s,this._core),{GroupInfo:g=[]}=n||{},{AppDefinedData:I=[],ApplyJoinOption:E,CreateTime:m,FaceUrl:D,Introduction:M,InviteJoinOption:T,MaxMemberNum:P,MemberNum:W,Name:iA,Owner_Account:EA,Type:RA,ErrorCode:kA,ErrorInfo:xA}=g[0];if(kA!==0)throw new this._core.helper.ChatError({code:kA,message:xA});const LA=pd(I),SA=new Yu({groupID:s,name:iA,avatar:D,introduction:M,joinOption:E,inviteOption:T,maxMemberCount:P,memberCount:W,type:RA,ownerID:EA,createTime:m,groupCustomField:LA});return dn({group:SA})}catch(n){const{errorCode:g,errorInfo:I}=n;throw new this._core.helper.ChatError({functionName:"searchGroupByID",code:g,message:I})}})}},lT=new class{constructor(){this._name="UpdateGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(s){return mA(this,void 0,void 0,function*(){const{groupID:n}=s,{utils:{isUndefined:g,safeStringify:I},ssoLog:E,helper:m}=this._core;let D=Yi.getLocalGroup(n);if(D){const{type:M}=D;this._canIUseJoinOption(M)||g(s.joinOption)||(E.warn("updateGroupProfile",`${this._name}.updateGroupProfile groupID:${n} joinOption is unavailable for Work/Meeting/AVChatRoom`),s.joinOption=void 0)}g(s.muteAllMembers)||(s.muteAllMembers=s.muteAllMembers===!0?"On":"Off");try{return yield function(M,T){return mA(this,void 0,void 0,function*(){const{groupID:P,name:W,avatar:iA,introduction:EA,notification:RA,muteAllMembers:kA,joinOption:xA,inviteOption:LA,groupCustomField:SA}=M,OA={GroupId:P,Name:W,FaceUrl:iA,Introduction:EA,Notification:RA,ShutUpAllMember:kA,ApplyJoinOption:xA,InviteJoinOption:LA,AppDefinedData:SA?bE(SA):void 0};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_base_info",data:OA})})}(s,this._core),D?(D.updateGroup(s),Yi.emitGroupListUpdate()):D=new Yu(s),dn({group:D},{message:`groupID:${n}`})}catch(M){const{errorCode:T,errorInfo:P}=M;throw new m.ChatError({code:T,message:P,moreMessage:`options:${I(s)}`})}})}_canIUseJoinOption(s){return _v(s)||this._core.common.isCommunity({type:s})}},IT=new class{constructor(){this._name="ChangeGroupOwner"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(s){return mA(this,void 0,void 0,function*(){const n="changeGroupOwner",{groupID:g,newOwnerID:I}=s,E=Yi.getLocalGroup(g),{helper:m,OuterConstant:D,common:{getCurrentUserID:M}}=this._core;if(E?.type===D.GRP_AVCHATROOM)throw new m.ChatError({functionName:n,code:nT});if(I===M())throw new m.ChatError({functionName:n,code:ym});try{return yield function(T,P){return mA(this,void 0,void 0,function*(){const{groupID:W,newOwnerID:iA}=T,EA={GroupId:W,NewOwner_Account:iA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.change_group_owner",data:EA})})}(s,this._core),E.ownerID=I,Yi.emitGroupListUpdate(),dn({group:E})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},RQ=new class{constructor(){this._name="GetGroupOnlineMemberCount",this._onlineMemberCountMap=new Map}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}getGroupOnlineMemberCount(s){return mA(this,void 0,void 0,function*(){const n="getGroupOnlineMemberCount";if(!Yi.hasLocalGroup(s))return dn({memberCount:0});const g=Date.now();if(this._onlineMemberCountMap.has(s)){const I=this._onlineMemberCountMap.get(s),{lastReqTime:E=0,memberCount:m=0}=I||{};if(g-E<=6e4)return dn({memberCount:m})}try{const I=yield function(D,M){return mA(this,void 0,void 0,function*(){const T={GroupId:D};return M.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:T})})}(s,this._core),{OnlineMemberNum:E=0}=I||{};this._onlineMemberCountMap.set(s,{lastReqTime:Date.now(),memberCount:E});const m=`${this._name}.${n} ok. groupID:${s} memberCount:${E}`;return dn({memberCount:E},{message:m})}catch(I){throw new this._core.helper.ChatError({functionName:n,code:I?.errorCode,message:I?.errorInfo})}})}},wQ=new class{init(s,n){s.ssoLog.debug("GroupAction.init"),Tv.init(s),Vu.init(s),lh.init(s,n),kE.init(s,n),vQ.init(s,n),rB.init(s),Fl.init(s),lT.init(s),IT.init(s),RQ.init(s,n)}dismissGroup(s){return lh.dismissGroup(s)}joinGroup(s){return kE.joinGroup(s)}quitGroup(s){return vQ.quitGroup(s)}getGroupOnlineMemberCount(s){return RQ.getGroupOnlineMemberCount(s)}},Nv=new class{constructor(){this._name="GetGroupApplicationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return mA(this,void 0,void 0,function*(){const s="getGroupApplicationList";try{const n=yield Promise.all([this._getGroupApplicationList(),this._getGroupApplicationList({type:this._core.OuterConstant.GRP_COMMUNITY})]);this._core.ssoLog.debug("getGroupApplicationList",`${this._name}.${s} ok.`);const g=this._handleGroupApplicationResult([...n[0],...n[1]]);return dn({applicationList:g})}catch(n){throw new this._core.helper.ChatError({functionName:s,code:n?.errorCode,message:n?.errorInfo})}})}_getGroupApplicationList(s){return mA(this,void 0,void 0,function*(){const{type:n,startTime:g=0,limit:I=20}=s||{},{common:E}=this._core;let m;try{m=yield function(P,W){return mA(this,void 0,void 0,function*(){const{type:iA,startTime:EA,limit:RA,handleAccount:kA}=P,xA={Type:iA,StartTime:EA,Limit:RA,Handle_Account:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_pendency",data:xA})})}({type:n,startTime:g,limit:I,handleAccount:E.getCurrentUserID()},this._core)}catch(P){if(P?.errorCode!==11e3)throw P;m={}}const{NextStartTime:D=0,PendencyList:M=[]}=m||{};if(D===0)return M;const T=yield this._getGroupApplicationList(Object.assign(Object.assign({},s),{startTime:D}));return[...M,...T]})}_handleGroupApplicationResult(s){const n=[];return s.forEach(g=>{const I=this._convertApplicationData(g),{handled:E}=I,m=yo(I,["handled"]);E===0&&n.push(m)}),n}_convertApplicationData(s){const{Handled:n,AddTime:g,ApplyInviteMsg:I,Authentication:E,FromUserNickName:m,From_Account:D,GroupId:M,GroupName:T,PendencyType:P,To_Account:W}=s;return{handled:n,messageKey:g,applicant:D,applicantNick:m,groupID:M,groupName:T,authentication:E,applicationType:P,userID:W,note:I,addTime:g}}},Gv=new class{constructor(){this._name="HandleGroupApplication"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(s){return mA(this,void 0,void 0,function*(){const{application:n}=s,g=this._handleParams(s);try{n?.applicationType===Uc?yield function(E,m){return mA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,invitee:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,Invited_Account:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_invite_join_permission_group",data:EA})})}(g,this._core):yield function(E,m){return mA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,messageKey:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,MsgKey:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_apply_join_group",data:EA})})}(g,this._core);const I=Yi.getLocalGroup(g.groupID);return dn({group:I})}catch(I){throw new this._core.helper.ChatError({functionName:"handleGroupApplication",code:I?.errorCode,message:I?.errorInfo})}})}_handleParams(s){var n;const{handleAction:g,handleMessage:I,message:E,application:m}=s;let D,M,T,P,W;if(E){const{payload:iA}=E||{};D=iA.operatorID,M=(n=iA.groupProfile)===null||n===void 0?void 0:n.groupID,T=iA.authentication,P=iA.messageKey}else D=m?.applicant||"",M=m?.groupID||"",T=m?.authentication||"",P=m?.messageKey||0;return m?.applicationType===Uc&&(W=m.userID),{handleAction:g,handleMessage:I,applicant:D,invitee:W,groupID:M,authentication:T,messageKey:P}}},aD=new class{init(s){s.ssoLog.debug("GroupApplication.init"),Nv.init(s),Gv.init(s)}};let BC=class{constructor(s){this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this.isOnline=!1,this.updateMember(s)}updateMember(s){const{core:{utils:{isUndefined:n},common:{deepMerge:g}}}=Wn;n(s.muteTime)||(this.muteUntil=Math.floor((Date.now()+1e3*s.muteTime)/1e3)),n(s.onlineStatus)||(this.isOnline=s.onlineStatus==="Online");const I=[null,void 0,"",0,NaN];s.memberCustomField&&Mm(this.memberCustomField,s.memberCustomField),g(this,s,["memberCustomField","marks","onlineStatus","muteTime"],I)}};function aB(s,n){return mA(this,void 0,void 0,function*(){const{groupID:g,userID:I,muteTime:E,role:m,nameCard:D,memberCustomField:M}=s;let T;M&&(T=bE(M));const P={GroupId:g,Member_Account:I,ShutUpTime:E,Role:m,NameCard:D,AppMemberDefinedData:T};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:P})})}var gD=new class{constructor(){this._name="GetGroupMemberList"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}getGroupMemberList(s){return mA(this,void 0,void 0,function*(){const n="getGroupMemberList",{groupID:g,offset:I=0,count:E=100,role:m="",filter:D=""}=s,M=Yi.getLocalGroup(g),T=E>100?100:E,P={groupID:g,offset:I,limit:T,memberRoleFilter:xu.includes(m)?[m]:void 0,memberInfoFilter:hm};try{const W=yield function(ne,_i){return mA(this,void 0,void 0,function*(){const{isCommunity:Ti}=_i.common,{groupID:kt,offset:Ni,limit:cs,memberRoleFilter:Se,memberInfoFilter:Bt}=ne,UA={GroupId:kt,Limit:cs,MemberRoleFilter:Se,MemberInfoFilter:Bt};return Ti({groupID:kt})?UA.Next=String(Ni):UA.Offset=Ni,_i.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_member_info",data:UA})})}(P,this._core),{MemberList:iA,MemberNum:EA,Next:RA}=W||{},kA=`${this._name}.${n} ok, totalMemberCount:${EA} next:${RA}`,{utils:{isArray:xA,isEmpty:LA},common:{isCommunity:SA}}=this._core;if(M&&(M.memberCount=EA),!xA(iA)||iA.length===0)return dn({memberList:[],offset:0},{message:kA});let OA=I+T;SA({groupID:g})&&(OA=LA(RA)?0:RA),iA.lengthD.userID),I=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=I?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,I=s.length;g50&&(T.warn("getGroupMemberProfile",`${this._name}.${n} userIDList length:${I.length} exceeds limit 50`),I.splice(50));const P=`userIDList length:${I.length} groupID:${g}`;try{const W=yield function(kA,xA){return mA(this,void 0,void 0,function*(){const{groupID:LA,userIDList:SA,memberInfoFilter:OA,memberCustomFieldFilter:JA}=kA,re={GroupId:LA,Member_List_Account:SA,MemberInfoFilter:OA,AppDefinedDataFilter_GroupMember:JA};return xA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_specified_group_member_info",data:re})})}({groupID:g,userIDList:I,memberCustomFieldFilter:E,memberInfoFilter:[...hm]},this._core),{MemberList:iA}=W||{};if(!M(iA)||iA.length===0)return dn({memberList:[]});let EA=this._convertMemberInfo(iA);EA=yield this._getMemberAvatarAndNick(EA);const RA=this._generateGroupMember(EA);return dn({memberList:RA},{message:P})}catch(W){throw new D.ChatError({functionName:n,code:W?.errorCode,message:W?.errorInfo,moreMessage:P})}})}_convertMemberInfo(s){const n=[];for(let g=0,I=s.length;gD.userID),I=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=I?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,I=s.length;g({Member_Account:M}));try{const M=yield function(RA,kA){return mA(this,void 0,void 0,function*(){const{groupID:xA,userIDList:LA}=RA,SA={GroupId:xA,MemberList:LA};return kA.common.buildAndSendPacket({servcmd:"group_open_http_svc.add_group_member",data:SA})})}({groupID:g,userIDList:D},this._core),{MemberList:T=[]}=M||{},{failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA}=this._handleResult(T);return dn({failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA,group:E},{message:` groupID:${g} successUserIDList:${W} failureUserIDList:${P} existedUserIDList:${iA} overLimitUserIDList:${EA}`})}catch(M){throw new m.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_handleResult(s){const n=[],g=[],I=[],E=[];return s.forEach(m=>{const{Result:D,Member_Account:M}=m;D===Bm?n.push(M):D===Qm?g.push(M):D===pm?I.push(M):D===Xy&&E.push(M)}),{failureUserIDList:n,successUserIDList:g,existedUserIDList:I,overLimitUserIDList:E}}},fd=new class{constructor(){this._name="DeleteGroupMember"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(Aa)})}deleteGroupMember(s){return mA(this,void 0,void 0,function*(){const n="deleteGroupMember",{groupID:g,userIDList:I}=s,E=Yi.getLocalGroup(g),{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;if(D(E))throw new m.ChatError({functionName:n,code:sT});I.length>20&&(M.warn("deleteGroupMember",`${this._name}.${n} userIDList length:${I.length} exceeds limit 20`),I.splice(20));try{return yield function(T,P){return mA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,reason:EA}=T,RA={GroupId:W,MemberToDel_Account:iA,Reason:EA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_member",data:RA})})}({groupID:g,userIDList:I},this._core),dn({group:E,userIDList:I},{message:`groupID:${g} userIDList length:${I.length}`})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},bv=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(s){return mA(this,void 0,void 0,function*(){const{helper:n}=this._core,{groupID:g,userID:I,muteTime:E}=s,m=` groupID:${g} userID:${I} muteTime:${E}`;this._preCheckSettingMuteParams(s);try{yield aB(s,this._core);const D=Yi.getLocalGroup(g),M=new BC({userID:I,muteTime:E});return dn({group:D,member:M},{message:m})}catch(D){throw new n.ChatError({functionName:"setGroupMemberMuteTime",code:D?.errorCode,message:D?.errorInfo,moreMessage:m})}})}_preCheckSettingMuteParams(s){const{userID:n}=s,{store:g,helper:I}=this._core;if(n===g.get("login").userId)throw new I.ChatError({functionName:"setGroupMemberMuteTime",code:rD})}},TQ=new class{constructor(){this._name="SetGroupMemberRole"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(s){return mA(this,void 0,void 0,function*(){const n="setGroupMemberRole",{helper:g}=this._core,{groupID:I,userID:E,role:m}=s,D=`${this._name}.${n} ok, groupID:${I} userID:${E} role:${m}`;this._preCheckSettingRoleParams(s);try{yield aB(s,this._core);const M=Yi.getLocalGroup(I),T=new BC({userID:E,role:m});return dn({group:M,member:T},{message:D})}catch(M){throw new g.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo,moreMessage:D})}})}_preCheckSettingRoleParams(s){var n;const{groupID:g,userID:I,role:E}=s,{store:m,helper:D,OuterConstant:M,common:{isCommunity:T}}=this._core,P=Yi.getLocalGroup(g);if(((n=P?.selfInfo)===null||n===void 0?void 0:n.role)!==M.GRP_MBR_ROLE_OWNER)throw new D.ChatError({functionName:"setGroupMemberRole",code:aT});if(I===m.get("login").userId)throw new D.ChatError({functionName:"setGroupMemberRole",code:Rv});const W=[...xu];if(T({groupID:g})&&W.push(M.GRP_MBR_ROLE_CUSTOM),!W.includes(E))throw new D.ChatError({functionName:"setGroupMemberRole",code:Dm})}},cD=new class{constructor(){this._name="SetGroupMemberNameCard"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(s){return mA(this,void 0,void 0,function*(){var n;const g="setGroupMemberNameCard",{helper:I,common:{getCurrentUserID:E}}=this._core,{groupID:m,userID:D=E(),nameCard:M}=s,T=`${this._name}.${g} ok, groupID:${m} userID:${D} nameCard:${M}`;this._preCheckSettingNameCardParams(s);try{yield aB({groupID:m,userID:D,nameCard:M},this._core);const W=Yi.getLocalGroup(m);D===((n=W?.selfInfo)===null||n===void 0?void 0:n.userID)&&(W.updateSelfInfo({nameCard:M}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m));const iA=new BC({userID:D,nameCard:M});return dn({group:W,member:iA},{message:T})}catch(P){throw new I.ChatError({functionName:g,code:P?.errorCode,message:P?.errorInfo,moreMessage:T})}})}_preCheckSettingNameCardParams(s){const{groupID:n}=s,{helper:g}=this._core,I=Yi.getLocalGroup(n);if(Qd(I?.type))throw new g.ChatError({functionName:"setGroupMemberNameCard",code:Sm})}},wm=new class{constructor(){this._name="SetGroupMemberCustomField"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(s){return mA(this,void 0,void 0,function*(){const n="setGroupMemberCustomField",{helper:g,common:{getCurrentUserID:I}}=this._core;this._preCheckSettingCustomFiledParams(s);const{groupID:E,userID:m=I(),memberCustomField:D}=s,M=`${this._name}.${n} ok, groupID:${E}userID:${m} memberCustomField:${JSON.stringify(D)}`;try{yield aB({groupID:E,userID:m,memberCustomField:D},this._core);const P=Yi.getLocalGroup(E),W=new BC({userID:m,memberCustomField:D});return dn({group:P,member:W},{message:M})}catch(T){throw new g.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:M})}})}_preCheckSettingCustomFiledParams(s){const{groupID:n}=s,{helper:g}=this._core,I=Yi.getLocalGroup(n);if(Qd(I?.type))throw new g.ChatError({functionName:"setGroupMemberCustomField",code:Sm})}},kv=new class{init(s,n){s.ssoLog.debug("GroupMember.init"),gD.init(s,n),_Q.init(s),md.init(s),fd.init(s,n),bv.init(s),TQ.init(s),cD.init(s),wm.init(s)}getGroupMemberList(s){return gD.getGroupMemberList(s)}deleteGroupMember(s){return fd.deleteGroupMember(s)}},uT=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupCounters",context:this})}getGroupCounters(s){return mA(this,void 0,void 0,function*(){const n="getGroupCounters";try{vm(n,sc);const{groupID:g,keyList:I=[]}=s,{avChatRoomKey:E,lastUpdateTime:m}=nc.getLocalGroupCounters(g);if(!(Date.now()-m>=this._getExpireTime()))return{code:0,data:{counters:nc.getLocalCounters(g,I)}};const D=yield function(P){return mA(this,void 0,void 0,function*(){const{groupID:W,GroupCounterKeys:iA,avChatRoomKey:EA}=P,{common:RA}=Wn.core,kA={GroupId:W,keyList:iA,BytesKey:EA};return RA.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_counter",data:kA})})}({groupID:g,keyList:I,avChatRoomKey:E}),{GroupCounter:M=[],GroupCounterSeq:T}=D;return nc.updateLocalGroupCounters({groupID:g,counterList:M,groupCounterSeq:T}),{code:0,data:{counters:nc.getLocalCounters(g,I)}}}catch(g){hC(n,g)}})}_getExpireTime(){const{store:s,utils:{isUndefined:n}}=this._core,g=s.get("cloudConfig")||{},{grp_counter_expire_time:I}=g;return n(I)?3e4:Number(I)}},_m=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"setGroupCounters",context:this}),n.registerApi({apiName:"increaseGroupCounter",context:this}),n.registerApi({apiName:"decreaseGroupCounter",context:this})}setGroupCounters(s){return mA(this,void 0,void 0,function*(){return this._handleCounterOperation(Pu,s)})}increaseGroupCounter(s){return mA(this,void 0,void 0,function*(){return this._handleCounterOperation(Cm,s)})}decreaseGroupCounter(s){return mA(this,void 0,void 0,function*(){return this._handleCounterOperation(Ri,s)})}_handleCounterOperation(s,n){return mA(this,void 0,void 0,function*(){const g=`${s}GroupCounter`;try{vm(g,sc);const{groupID:I,key:E,value:m=0}=n,{avChatRoomKey:D}=nc.getLocalGroupCounters(I),M=s===Pu?this._convertObjectToList(n.counters):[{Key:E,Value:m}],T=yield this._updateGroupCounters({groupID:I,counterList:M,avChatRoomKey:D,mode:s});return nc.setGroupCounters(I,T),{code:0,data:{counters:T}}}catch(I){hC(g,I)}})}_updateGroupCounters(s){return mA(this,void 0,void 0,function*(){const n=yield function(E){const{groupID:m,counterList:D,mode:M,avChatRoomKey:T}=E,{common:P}=Wn.core,W={GroupId:m,GroupCounter:D,Mode:M,BytesKey:T};return P.buildAndSendPacket({servcmd:"group_open_http_svc.update_group_counter",data:W})}(s),{GroupCounter:g=[]}=n,I={};return g.forEach(E=>{const{Key:m,Value:D=0}=E;I[m]=D}),I})}_convertObjectToList(s){return Object.entries(s).map(([n,g])=>({Key:n,Value:g||0}))}},gB=new class{init(s){this._core=s,uT.init(s),_m.init(s)}isGroupCounterUpdated(s){const{elements:{groupCounterInfo:n}}=s,{utils:{isEmpty:g}}=this._core;return!g(n)}handleGroupCounterUpdated(s){const{to:n,elements:{groupCounterInfo:g}}=s;g.forEach(I=>{const{type:E,groupCounterSeq:m,counterList:D=[]}=I;E!==ti&&E!==on||this._processAndNotifyCounterUpdate(n,m,D),E===fo&&nc.deleteLocalGroupCounters({groupID:n,groupCounterSeq:m,counterList:D})})}_processAndNotifyCounterUpdate(s,n,g){const{OuterEvent:I,notificationCenter:E}=this._core;nc.updateLocalGroupCounters({groupID:s,groupCounterSeq:n,counterList:g}),g.forEach(({Key:m,Value:D=0})=>{E.emitOuterEvent(I.GROUP_COUNTER_UPDATED,{name:I.GROUP_COUNTER_UPDATED,data:{groupID:s,key:m,value:D}})})}reset(){nc.reset()}},Tm=new class{constructor(){this._name="InitGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(s){return mA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g}=s,{serverMainSequence:I,avChatRoomKey:E}=zs.getGroupAttributesCache(n),m=zs.convertKeyValueMapToList(g);try{const D=yield function(W,iA){return mA(this,void 0,void 0,function*(){const{groupID:EA,mainSequence:RA,groupAttributeList:kA,avChatRoomKey:xA}=W,LA={GroupId:EA,AttrMainSeq:RA,GroupAttr:kA,BytesKey:xA,AttrControl:["RaceConflict"]};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.set_group_attr",data:LA})})}({groupID:n,avChatRoomKey:E,groupAttributeList:m,mainSequence:I},this._core),{AttrMainSeq:M,GroupAttr:T}=D||{},P=T.map(W=>{const{Key:iA,seq:EA}=W;return{key:iA,value:g[iA],sequence:EA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:M,groupAttributeList:P,operation:$y}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${M}`})}catch(D){throw new this._core.helper.ChatError({functionName:"initGroupAttributes",code:D?.errorCode,message:D?.errorInfo})}})}},ET=new class{constructor(){this._name="SetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupAttributes",context:this}),n.registerExperimentalAPI("setRichStatus",this)}setGroupAttributes(s){return mA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g,richStatusMode:I}=s,{serverMainSequence:E,avChatRoomKey:m,values:D}=zs.getGroupAttributesCache(n),M=zs.convertKeyValueMapToList(g).map(T=>{var P;const{key:W,value:iA}=T;return{key:W,value:iA,seq:((P=D.get(T.key))===null||P===void 0?void 0:P.sequence)||0}});try{const T=yield function(EA,RA){return mA(this,void 0,void 0,function*(){const{groupID:kA,mainSequence:xA,groupAttributeList:LA,avChatRoomKey:SA,richStatusMode:OA}=EA,JA={GroupId:kA,AttrMainSeq:xA,GroupAttr:LA,BytesKey:SA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:OA};return RA.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_attr",data:JA})})}({groupID:n,avChatRoomKey:m,groupAttributeList:M,mainSequence:E,richStatusMode:I},this._core),{AttrMainSeq:P,GroupAttr:W}=T||{},iA=W.map(EA=>{const{Key:RA,seq:kA}=EA;return{key:RA,value:g[RA],sequence:kA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:P,groupAttributeList:iA,operation:Dv}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${P}`})}catch(T){throw new this._core.helper.ChatError({functionName:"setGroupAttributes",code:T?.errorCode,message:T?.errorInfo})}})}setRichStatus(s){return mA(this,void 0,void 0,function*(){const{groupID:n,richStatus:g}=s;return this.setGroupAttributes({groupID:n,groupAttributes:g,richStatusMode:!0})})}},lD=new class{constructor(){this._name="DeleteGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteGroupAttributes",context:this}),n.registerExperimentalAPI("deleteRichStatus",this)}deleteGroupAttributes(s){return mA(this,void 0,void 0,function*(){const n="deleteGroupAttributes",{groupID:g,keyList:I=[],richStatusMode:E}=s;try{let m;m=I.length===0?yield this._clearGroupAttributes(g,{richStatusMode:E}):yield this._deleteGroupAttributes(g,{keyList:I,richStatusMode:E});const{resultList:D,serverMainSequence:M,operation:T,groupAttributeList:P}=m||{},W=`${this._name}.${n} ok. groupID:${g} operation: ${T}`;return zs.saveGroupAttributesCacheValuesCopy(g),zs.refreshGroupAttributesCache({groupID:g,serverMainSequence:M,groupAttributeList:P,operation:T}),zs.emitGroupAttributesUpdated(g),dn({keyList:D},{message:W})}catch(m){throw new this._core.helper.ChatError({functionName:n,code:m?.errorCode,message:m?.errorInfo})}})}deleteRichStatus(s){return mA(this,void 0,void 0,function*(){return this.deleteGroupAttributes(Object.assign(Object.assign({},s),{richStatusMode:!0}))})}_deleteGroupAttributes(s,n){return mA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:I,values:E}=zs.getGroupAttributesCache(s),{keyList:m,richStatusMode:D}=n,M=[],T=[];m.forEach(iA=>{if(E.has(iA)){const{sequence:EA=0}=E.get(iA)||{};T.push({key:iA,seq:EA}),M.push(iA)}});const P=yield function(iA,EA){return mA(this,void 0,void 0,function*(){const{groupID:RA,mainSequence:kA,groupAttributeList:xA,avChatRoomKey:LA,richStatusMode:SA}=iA,OA={GroupId:RA,AttrMainSeq:kA,GroupAttr:xA,BytesKey:LA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:SA};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_attr",data:OA})})}({groupID:s,avChatRoomKey:I,groupAttributeList:T,mainSequence:g,richStatusMode:D},this._core),{AttrMainSeq:W}=P||{};return{resultList:M,serverMainSequence:W,groupAttributeList:T,operation:eD}})}_clearGroupAttributes(s,n){return mA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:I,values:E}=zs.getGroupAttributesCache(s),{richStatusMode:m}=n||{},D=[...E.keys()],M=yield function(P,W){return mA(this,void 0,void 0,function*(){const{groupID:iA,mainSequence:EA,avChatRoomKey:RA,richStatusMode:kA}=P,xA={GroupId:iA,AttrMainSeq:EA,BytesKey:RA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.clear_group_attr",data:xA})})}({groupID:s,avChatRoomKey:I,mainSequence:g,richStatusMode:m},this._core),{AttrMainSeq:T}=M||{};return{resultList:D,serverMainSequence:T,operation:AD}})}},ID=new class{constructor(){this._name="GetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupAttributes",context:this}),n.registerExperimentalAPI("getRichStatus",this,"getGroupAttributes")}getGroupAttributes(s){return mA(this,void 0,void 0,function*(){const{groupID:n}=s,{avChatRoomKey:g,lastUpdateTime:I,localMainSequence:E,serverMainSequence:m}=zs.getGroupAttributesCache(n),{helper:{ChatError:D}}=this._core,M=`groupID:${n} localMainSequence:${E} serverMainSequence:${m} keyList:${s.keyList}`;if(Date.now()-I>=3e4||E{const{key:iA,value:EA,seq:RA}=W;return{key:iA,value:EA,sequence:RA}});return zs.refreshGroupAttributesCache({groupID:I,serverMainSequence:M,groupAttributeList:P,operation:Sv}),{serverGroupAttributeList:T}})}},NQ=new class{init(s){s.ssoLog.debug("GroupAttribute.init"),Tm.init(s),ET.init(s),lD.init(s),ID.init(s),zs.init(s)}isGroupAttributesUpdated(s){return zs.isGroupAttributesUpdated(s)}handleGroupAttributesUpdated(s){const{to:n,elements:{newGroupProfile:g}}=s,{groupAttributeOption:I}=g,{serverMainSequence:E,withChangedAttributeInfo:m}=I,{localMainSequence:D}=zs.getGroupAttributesCache(n),M=E-D;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${n} withChangedAttributeInfo:${m} diffSequence:${M}`),M!==0)if(zs.saveGroupAttributesCacheValuesCopy(n),m!==1||M!==1){if(zs.hasGroupAttributesCache(n)){const{avChatRoomKey:T}=zs.getGroupAttributesCache(n);ID.getGroupAttributesFromServer({groupID:n,avChatRoomKey:T}).then(()=>{zs.emitGroupAttributesUpdated(n)}).catch(()=>{})}}else zs.handleGroupAttributesUpdated({groupID:n,groupAttributeOption:I})}reset(){zs.reset()}};function LE(s,n="tips"){const{ClientSeq:g,From_Account:I,MsgClientTime:E,MsgPriority:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,TinyId:P,ToGroupId:W,GroupInfo:iA,MsgBody:EA}=s,RA=function(kA){const{GroupCode:xA,GroupId:LA,GroupName:SA,GroupType:OA,MsgFrom_AccountExtraInfo:JA,From_Account:re,To_Account:ne}=kA;return{groupCode:xA,groupID:LA,groupName:SA,type:OA,messageFromAccountExtraInformation:JA,from:re,to:ne}}(iA);return{clientSequence:g,from:I,clientTime:E,priority:m,random:D,sequence:M,time:T,tinyID:P,to:W,groupProfile:RA,elements:n==="tips"?Ju(EA):Ih(EA)}}function Ju(s){const n={};return Object.keys(s).forEach(g=>{var I,E;switch(g){case"MemberNum":n.memberCount=s[g];break;case"OpType":n.operationType=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"List_Account":n.userIDList=s[g];break;case"MsgMemberExtraInfo":n.memberInfoList=(I=s[g])===null||I===void 0?void 0:I.map(m=>uD(m));break;case"MsgOperatorMemberExtraInfo":n.operatorInfo=uD(s[g]);break;case"MsgGroupNewInfo":n.newGroupProfile=function(m){const D={};return Object.keys(m).forEach(M=>{switch(M){case"GroupIntroduction":D.introduction=m[M];break;case"GroupName":D.groupName=m[M];break;case"GroupFaceUrl":D.avatar=m[M];break;case"GroupNotification":D.notification=m[M];break;case"ApplyJoinOption":D.joinOption=m[M];break;case"InviteJoinOption":D.inviteOption=m[M];break;case"ShutupAll":D.muteAllMembers=m[M];break;case"Owner_Account":D.ownerID=m[M];break;case"GroupAttrOption":D.groupAttributeOption=function(P){const{BytesChangedKeys:W,GroupAttrSeq:iA,OpType:EA,PushChangedAttrValFlag:RA,GroupAttrInfo:kA}=P,xA=kA.map(LA=>{const{Key:SA,Val:OA,SubKeySeq:JA}=LA;return{key:SA,value:OA,sequence:JA}});return{changedKeyList:W,groupAttributeList:xA,serverMainSequence:iA,operation:EA,withChangedAttributeInfo:RA}}(m[M]);break;case"MsgAppDefinedData":D.groupCustomField=(T=m[M])==null?void 0:T.map(P=>({key:P.Key,value:P.Value}));break;case"InviteOption":D.inviteOption=cT[m[M]]||m[M]}var T}),D}(s[g]);break;case"MsgMemberInfo":n.msgMemberInfo=(E=s[g])===null||E===void 0?void 0:E.map(m=>function(D){const{ShutupTime:M,User_Account:T}=D;return{muteTime:M,userID:T}}(m));break;case"OnlineMemberInfo":n.onlineMemberInfo=function(m){const{ExpireTime:D,OnlineMemberNum:M}=m;return{expireTime:D,onlineMemberNum:M}}(s[g]);break;case"GroupCounterInfo":n.groupCounterInfo=function(m){return m.map(D=>{const{GroupCounterSeq:M,GroupCounter:T,Type:P}=D;return{type:P,groupCounterSeq:M,counterList:T}})}(s[g])}}),n}function uD(s){const{ImageUrl:n,NickName:g,Role:I,UserId:E}=s;return{avatar:n,nick:g,role:I,userID:E}}function Ih(s){const n={};return Object.keys(s).forEach(g=>{switch(g){case"MsgKey":n.messageKey=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"ReportType":n.operationType=s[g];break;case"Authentication":n.authentication=s[g];break;case"MsgFlag":n.messageRemindType=s[g];break;case"UserDefinedField":n.userDefinedField=s[g];break;case"RemarkInfo":n.remarkInfo=s[g];break;case"BanDuration":n.duration=s[g];break;case"MuteTime":n.muteTime=s[g];break;case"MsgMemberExtraInfoList":n.inviteeInfoList=(I=s[g]||[])==null?void 0:I.map(E=>{const{UserId:m,ImageUrl:D,NickName:M}=E;return{userID:m,avatar:D,nick:M}});break;case"MemberList_Account":n.inviteeList=s[g]}var I}),n}class Nm{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=Ju(n);return new Nm(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"groupProfile":this._initGroupProfile(n[g]);break;case"operatorInfo":this._initOperatorInfo(n[g]);break;case"memberInfoList":case"msgMemberInfo":this._updateMemberList(n[g]);break;case"newGroupProfile":this._initNewGroupProfile(n[g]);break;case"memberExtraInfo":case"remarkInfo":case"onlineMemberInfo":break;default:this.content[g]=n[g]}}),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let I=0;I{n.forEach(I=>{g.userID===I.userID&&Object.assign(g,I)})}):this.content.memberList=n}_initNewGroupProfile(n){this.content.newGroupProfile={};const g=Object.keys(n);for(let I=0;I0&&this._handleGroupTipMessage(g),{conversationUpdateFieldList:I,messageList:g}}_emitGroupTipsEvent(s){var n;const{constants:{WORKFLOW_STEP:g}}=this._core,{messageList:I=[]}=((n=s?.result)===null||n===void 0?void 0:n[g.HANDLE_GROUP_TIPS_NOTIFICATION])||{};if(I.length>0){const{notificationCenter:E,OuterEvent:m}=this._core;E.emitOuterEvent(m.MESSAGE_RECEIVED,{name:m.MESSAGE_RECEIVED,data:I})}}_handleGroupTips(s,n=!0){const{Event:g,GroupTips:I}=s,E=new Map,m=[],D=[];for(let M=0,T=I.length;M{const{operationType:I}=g.payload;switch(I){case n.JOINED:this._handleNewMemberJoined(g);break;case n.QUITTED:this._handleMemberQuitted(g);break;case n.KICKED:this._handleMemberKicked(g);break;case n.GROUP_PROFILE_UPDATED:this._handleGroupProfileUpdated(g);break;case n.ADMIN_SET:this._handleMemberGrantAdmin(g);break;case n.ADMIN_CANCELED:this._handleMemberRevokeAdmin(g)}})}_handleNewMemberJoined(s){this._handleGroupMemberCountUpdated(s)}_handleMemberQuitted(s){this._handleGroupMemberCountUpdated(s)}_handleMemberKicked(s){this._handleGroupMemberCountUpdated(s)}_handleGroupProfileUpdated(s){var n;const{newGroupProfile:g,groupProfile:I,operatorInfo:E}=s.payload,{groupID:m}=I,D=Yi.getLocalGroup(m);Object.keys(g).forEach(T=>{switch(T){case"ownerID":this._handleGroupOwnerChanged(m,g);break;case"groupName":D.name=g[T];break;case"groupCustomField":Array.isArray(D[T])&&Array.isArray(g[T])?Mm(D[T],g[T]):D[T]=g[T];break;default:D[T]=g[T]}});const{utils:{isUndefined:M}}=this._core;M(E)||((n=D?.selfInfo)===null||n===void 0?void 0:n.userID)!==E.userID||Object.keys(E).forEach(T=>{T==="nameCard"&&D.updateSelfInfo({nameCard:E[T]}),T==="role"&&this._updateSelfRole(D,E[T])}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m)}_handleGroupOwnerChanged(s,n){const{common:g,OuterConstant:I}=this._core,E=Yi.getLocalGroup(s),m=g.getCurrentUserID(),{ownerID:D}=n;m===D&&E.updateGroup({ownerID:D,selfInfo:{role:I.GRP_MBR_ROLE_OWNER}})}_updateSelfRole(s,n){const{OuterConstant:g}=this._core;let I=g.GRP_MBR_ROLE_MEMBER;n===AT?I=g.GRP_MBR_ROLE_OWNER:n===iD&&(I=g.GRP_MBR_ROLE_ADMIN),s.updateSelfInfo({role:I})}_handleGroupMemberCountUpdated(s){const{memberCount:n,groupProfile:{groupID:g}}=s.payload,I=Yi.getLocalGroup(g),{utils:{isNumber:E}}=this._core;I&&E(n)&&I.memberCount!==n&&(I.memberCount=n,Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(g))}_handleGroupTipsRecover(s){const{utils:{isArray:n}}=this._core,{groupTipList:g}=s?.result||{};n(g)&&g.forEach(I=>{const{messageList:E}=this._handleGroupTips({Event:I.Event,GroupTips:[I]},!1);this._handleGroupTipMessage(E)})}_handleMemberGrantAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:I}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&I.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_ADMIN}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}_handleMemberRevokeAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:I}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&I.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_MEMBER}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}};class GQ{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=Ih(n);return new GQ(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"remarkInfo":this.content.handleMessage=n[g];break;case"groupProfile":this._initGroupProfile(n[g]);break;case"memberInfoList":break;default:this.content[g]=n[g]}})}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let I=0;I0&&this._handleGroupSysTemMessage(g,E),g===!0&&E.length>0&&m.emitOuterEvent(D.MESSAGE_RECEIVED,{name:D.MESSAGE_RECEIVED,data:E})}_handleGroupSystemNotification(s,n){const g=[];let I={};for(let E=0;E0?[I]:[],messageList:g}}_assembleMessage(s){const{message:{messageFactory:n},OuterConstant:g,utils:{randomInt:I}}=this._core;s.flow="in",s.conversationType=g.CONV_SYSTEM,s.conversationSubType=s.groupProfile.type,s.conversationID=g.CONV_SYSTEM;const E=n.createMessage(s),m=new GQ(Object.assign(Object.assign({},s.elements),{groupProfile:Object.assign({},s.groupProfile)}));E.setElement(m),E.isSystemMessage=!0;const D=E.sequence===1&&E.random===1,M=E.sequence===2&&E.random===2;return(D||M)&&(E.sequence=I(),E.random=I(),E.generateMessageID()),E}_handleConversationOptions(s,n){const{OuterConstant:g}=this._core,I={conversationID:g.CONV_SYSTEM,unreadCount:0,type:g.CONV_SYSTEM,subType:s.conversationSubType,lastMessage:null};return n&&I.unreadCount++,I}_handleGroupSysTemMessage(s,n){s&&n.forEach(g=>{const{operationType:I}=g.payload;switch(I){case tT:this._handleGroupJoinResult(g);break;case vv:this._handleMemberKicked(g);break;case iT:this._handleGroupDismissed(g);break;case oT:this._handleGroupInvitedResult(g);break;case oD:this._handleGroupQuitResult(g);break;case MQ:this._handleMessageRemindTypeSynced(g);break;case mm:this._handleAVChatRoomMemberBanned(g)}})}_handleGroupJoinResult(s){const{groupProfile:n}=s.payload,{groupID:g,type:I}=n,E=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupJoinResult",` groupID:${g} type:${I} hasLocalGroup:${E}`),E||Qd(I)||(Yi.updateLocalGroup([Object.assign({},n)]),Yi.emitGroupListUpdate())}_handleMemberKicked(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupDismissed(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupInvitedResult(s){const{groupProfile:n}=s.payload,{groupID:g}=n,I=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupInvitedResult",` groupID:${g} hasLocalGroup:${I}`),I||Fl.getGroupProfile({groupID:g}).then(E=>{const{data:{group:m}}=E;Yi.updateLocalGroup([Object.assign({},m)]),Yi.emitGroupListUpdate()})}_handleGroupQuitResult(s){const{groupProfile:{groupID:n,type:g}}=s.payload,I=Yi.hasLocalGroup(n);this._core.ssoLog.debug("_handleGroupQuitResult",` groupID:${n} type:${g} hasLocalGroup:${I}`),I&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleMessageRemindTypeSynced(s){const{groupProfile:{groupID:n},messageRemindType:g}=s.payload;this._updateConversationProfile(n,{messageRemindType:g})}_handleAVChatRoomMemberBanned(s){const{groupProfile:{groupID:n,type:g}}=s.payload;this._deleteLocalGroup(n,g)}_deleteLocalGroup(s,n){if(Qd(n)){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:I}}=this._core;g.deleteConversation(`${I}${s}`)}Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate()}_updateConversationProfile(s,n){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:I}}=this._core,E=`${I}${s}`;g.getConversation(E)&&g.updateConversation(E,n)}},ED=new class{init(s){this._core=s,s.ssoLog.debug("GroupNotificationHandler.init"),Lv.init(s),Uv.init(s);const{notificationCenter:n,InnerEvent:g}=s,{InnerEventSubType:I}=n;n.subscribeInnerEvent(g.MESSAGE_PUSH,I.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),n.subscribeInnerEvent(g.MESSAGE_PUSH,I.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this)}_onNewGroupTipsNotification(s){const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g}}=this._core;n.executeWorkflow(g.RECEIVE_GROUP_TIPS_NOTIFICATION,s)}_onNewGroupSystemNotification(s){Uv.onNewGroupSystemNotification(s)}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this)}};const vn={required:!0,rules:["string"],allowEmpty:!1},bQ={required:!0,rules:["number"],allowEmpty:!1},yd={required:!0,rules:["array"],allowEmpty:!1},dD={required:!0,rules:["object"],allowEmpty:!1},dT={createGroup:{name:vn,type:vn},dismissGroup:[Object.assign({key:"groupID"},vn)],joinGroup:{groupID:vn,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},vn)],searchGroupByID:[Object.assign({key:"groupID"},vn)],getGroupProfile:{groupID:vn,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:vn,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:vn,newOwnerID:vn},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},vn)],handleGroupApplication:{handleAction:vn},getGroupMemberList:{groupID:vn},getGroupMemberProfile:{groupID:vn,userIDList:yd,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:vn,userIDList:yd},deleteGroupMember:{groupID:vn,userIDList:yd},setGroupMemberMuteTime:{groupID:vn,userID:vn,muteTime:Object.assign(Object.assign({},bQ),{customValidator:s=>!(s<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:vn,userID:vn,role:vn},setGroupMemberNameCard:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:vn},setGroupMemberCustomField:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:yd},markGroupMemberList:{groupID:vn,markType:Object.assign(Object.assign({},bQ),{customValidator:s=>!(s<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:yd},initGroupAttributes:{groupID:vn,groupAttributes:dD},setGroupAttributes:{groupID:vn,groupAttributes:dD},deleteGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},yd),{allowEmpty:!0})},getGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},yd),{allowEmpty:!0})},getGroupCounters:{groupID:vn,keyList:{required:!1,rules:["array"],allowEmpty:!0}},setGroupCounters:{groupID:vn,counters:dD},increaseGroupCounter:{groupID:vn,key:vn,value:bQ},decreaseGroupCounter:{groupID:vn,key:vn,value:bQ}},CT={getGroupList:!0,createGroup:!0,dismissGroup:!0,joinGroup:!0,quitGroup:!0,searchGroupByID:!0,getGroupProfile:!0,updateGroupProfile:!0,changeGroupOwner:!0,getGroupOnlineMemberCount:!0,getGroupApplicationList:!0,handleGroupApplication:!0,getGroupMemberList:!0,getGroupMemberProfile:!0,addGroupMember:!0,deleteGroupMember:!0,setGroupMemberMuteTime:!0,setGroupMemberRole:!0,setGroupMemberNameCard:!0,setGroupMemberCustomField:!0,markGroupMemberList:!0,initGroupAttributes:!0,setGroupAttributes:!0,getGroupAttributes:!0,deleteGroupAttributes:!0,getGroupCounters:!0,setGroupCounters:!0,increaseGroupCounter:!0,decreaseGroupCounter:!0};var hT=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=Yi,this.groupAction=wQ,this.groupAttribute=NQ,this.groupMember=kv,this.groupCounter=gB,this.name="Group"}install(s,n=[]){this._core=s,Wn.init(s),Yi.init(s),wQ.init(s,this),kv.init(s,this),aD.init(s),gB.init(s),NQ.init(s),ED.init(s),s.helper.registerValidateConfig({auth:CT,params:dT}),this._installSubPlugins(n);const{notificationCenter:g,InnerEvent:I}=s;g.subscribeInnerEvent(I.LOGOUT,this._reset,this),g.subscribeInnerEvent(I.DESTROY,this._dispose,this)}getInstalledSubPlugins(){return this._installedSubPlugins}_installSubPlugins(s){const{utils:{isArray:n}}=this._core;s&&n(s)&&s.forEach(g=>{var I;this._installedSubPlugins.includes(g.name)||((I=g.install)===null||I===void 0||I.call(g,this._core,this),this._installedSubPlugins.push(g.name))})}_reset(){Yi.reset(),NQ.reset(),gB.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const cB=new class{init(s){this.core=s}},Fv="AV_MBR_LIST",BT="AV_BAN_MBR",UE={NORMAL_MESSAGE:3,GROUP_TIPS_HAS_ROAMING:4,GROUP_SYSTEM_MESSAGE:5,GROUP_TIPS_HAS_NO_ROAMING:6,BROADCAST_MESSAGE:17,MESSAGE_REVOKED:20,MESSAGE_REACTION:21,LIVE_CUSTOM_DATA:100},uh={GROUP_DISMISSED:5,QUIT_GROUP:8,AVCHATROOM_MEMBER_BANNED:21},CD=60,hD=2603,QT=2686,pT=2688,kQ=3122;class Ov{constructor(n){const{core:g,manager:I,groupID:E,getRequestParams:m,onSuccess:D,onFail:M}=n;this._name="Polling",this._core=g,this._manager=I,this._timeoutID=-1,this._isRunning=!1,this._groupID=E,this._getRequestParams=m,this._onSuccess=D,this._onFail=M}start(){this._isRunning=!0,this._request(),console.log(`${this._name}.start pollingInterval:${this._manager.getCurrentPollingInterval(this._groupID)}`)}isRunning(){return this._isRunning}_request(){return mA(this,void 0,void 0,function*(){try{const n=this._getRequestParams(this._groupID),g=yield function(E,m){return mA(this,void 0,void 0,function*(){const{longPollingKey:D,startSequence:M,startBroadcastSeq:T,simplifiedMessage:P}=E,W={Key:D,StartSeq:M,StartBroadcastSeq:T,DownsizeFlag:P,USP:1,HoldTime:90};return m.common.buildAndSendPacket({servcmd:"group_open_long_polling_http_svc.get_msg",data:W})})}(n,this._core);this._onSuccess(this._groupID,g);const I=this._manager.getCurrentPollingInterval(this._groupID);this._runNextPolling(I)}catch(n){this._onFail(this._groupID,n),this._runNextPolling(2e3)}})}_runNextPolling(n){this.isRunning()&&(this._timeoutID>-1&&clearTimeout(this._timeoutID),this._timeoutID=setTimeout(this._request.bind(this),n))}stop(){console.log(`${this._name}.stop timerID:${this._timeoutID}`),this._timeoutID>-1&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}class Eh{constructor(n){this._maxLength=n,this._map=new Map}set(n){var g;if(this._map.size>=this._maxLength){const I=((g=this._map.entries().next().value)===null||g===void 0?void 0:g[0])||"";this._map.delete(I)}this._map.set(n,1)}has(n){return this._map.has(n)}delete(n){this.has(n)&&this._map.delete(n)}clear(){this._map.clear()}}const Hu=s=>s===UE.GROUP_TIPS_HAS_NO_ROAMING||s===UE.GROUP_TIPS_HAS_ROAMING,LQ=s=>s===UE.GROUP_SYSTEM_MESSAGE;function Gm(s){const n=function(g){const{E:I,MCT:E,MR:m,MP:D,MTS:M,GId:T,MS:P,CCD:W,F_Account:iA,IsSys:EA,GInf:RA,MsgBody:kA}=g,xA=yo(g,["E","MCT","MR","MP","MTS","GId","MS","CCD","F_Account","IsSys","GInf","MsgBody"]);return Object.assign({Event:I,MsgClientTime:E,MsgRandom:m,MsgPriority:D,MsgTimeStamp:M,ToGroupId:T,MsgSeq:P,CloudCustomData:W,From_Account:iA,IsSystemMsg:EA,GroupInfo:BD(RA),MsgBody:mT(kA)},xA)}(s);return function(g){const{Event:I}=g;(Hu(I)||LQ(I))&&(g.From_Account=g.From_Account||"@TIM#SYSTEM"),E=I,(E===UE.BROADCAST_MESSAGE||(m=>m===UE.NORMAL_MESSAGE)(I))&&function(m){const{core:{OuterConstant:D}}=cB;m.CloudCustomData=m.CloudCustomData||"",m.MsgBody=m.MsgBody.map(M=>{if(M.MsgType===D.MSG_CUSTOM){const{content:T={}}=M;M.content=Object.assign({Data:"",Desc:"",Ext:""},T)}return M})}(g);var E;Hu(I)&&function(m){const{GroupJoinType:D,MsgOperatorMemberExtraInfo:M={},MsgMemberExtraInfo:T,Operator_Account:P,List_Account:W,OpType:iA}=m.MsgBody||{};typeof D=="number"||iA!==1&&iA!==2||(m.MsgBody.GroupJoinType=iA===2?0:1),T||(m.MsgBody.MsgMemberExtraInfo=W?.map(EA=>({UserId:EA}))),iA!==1||T||(m.MsgBody.MsgMemberExtraInfo=[{UserId:M.UserId}]),m.MsgBody.MsgOperatorMemberExtraInfo=Object.assign({Operator_Account:P,ImageUrl:"",NickName:""},M)}(g),LQ(I)&&function(m){const{MsgOperatorMemberExtraInfo:D={},Operator_Account:M}=m.MsgBody||{};m.MsgBody.MsgMemberExtraInfo=Object.assign({UserId:M,ImageUrl:"",NickName:""},D),m.MsgBody=Object.assign({Authentication:"",RemarkInfo:"",MsgKey:1e3*m.MsgTimeStamp},m.MsgBody),m.MsgBody=Object.keys(m.MsgBody).filter(T=>T!=="MsgOperatorMemberExtraInfo").reduce((T,P)=>Object.assign(Object.assign({},T),{[P]:m.MsgBody[P]}),{})}(g)}(n),n}function BD(s){const n=s||{},{GN:g,GT:I,F_Hd:E,F_NN:m,F_Ll:D}=n,M=yo(n,["GN","GT","F_Hd","F_NN","F_Ll"]),T=Object.assign({GroupName:g,GroupType:I},M);return E&&(T.From_AccountHeadurl=E),m&&(T.From_AccountNick=m),D&&(T.From_AccountLevel=D),T}function mT(s){let n=s;Array.isArray(s)||(n=[s]);const g=n.map(I=>{const{O_Account:E,Opt:m,L_Account:D,RT:M,UDF:T,OpInf:P,OnlineInf:W,MsgMemberExtraInfo:iA}=I,EA=yo(I,["O_Account","Opt","L_Account","RT","UDF","OpInf","OnlineInf","MsgMemberExtraInfo"]),RA=Object.assign({Operator_Account:E,OpType:m,List_Account:D,ReportType:M,UserDefinedField:T},EA);return P&&(RA.MsgOperatorMemberExtraInfo=function(kA){const{Img:xA,NN:LA}=kA,SA=yo(kA,["Img","NN"]);return Object.assign({ImageUrl:xA,NickName:LA},SA)}(P)),iA&&(RA.MsgMemberExtraInfo=function(kA){return kA?.map(xA=>{const{Img:LA,NN:SA}=xA,OA=yo(xA,["Img","NN"]);return Object.assign({ImageUrl:LA,NickName:SA},OA)})}(iA)),W&&(RA.OnlineMemberInfo=function(kA){const{ET:xA,Num:LA}=kA;return{ExpireTime:xA,OnlineMemberNum:LA}}(W)),RA});return Array.isArray(s)?g:g[0]}var dh=new class{constructor(){this._name="MessageParser",this._sequenceList=new Eh(200),this._messageIDList=new Eh(100),this._broadcastMessageIDMap=new Map,this._reportMessageStackedCount=0}init(s,n){this._core=s,this._avChatRoomHandler=n}onMessageReceived(s,n,g=!1){this._sortServerMessageList({groupID:s,serverMessageList:n,isHistoryMessage:g});const I=this._handleMessageList(s,n);if(I.length===0)return;if(!g){const{appStore:{conversationStore:T},OuterConstant:{CONV_GROUP:P},common:{buildLastMessage:W}}=this._core,iA=W(I[I.length-1]);T.updateConversation(`${P}${s}`,{lastMessage:iA})}this._checkMessageStacked(I);const E=I.filter(T=>T.isModified===!0),m=I.filter(T=>T.isModified===!1),{OuterEvent:{MESSAGE_RECEIVED:D,MESSAGE_MODIFIED:M}}=this._core;E.length>0&&this._emitEvent({name:M,data:E}),m.length>0&&this._emitEvent({name:D,data:m})}_sortServerMessageList(s){const{groupID:n,serverMessageList:g,isHistoryMessage:I}=s;let E=[];this._avChatRoomHandler.isPollingSimplifiedMessage()&&!I?(g.sort((m,D)=>m.MS-D.MS),E=g.map(m=>m.MS)):(g.sort((m,D)=>m.MsgSeq-D.MsgSeq),E=g.map(m=>m.MsgSeq)),console.log(`${this._name}._sortServerMessageList groupID:${n} count:${E.length} sequenceList:${E}`),E.length=0}_handleMessageList(s,n){var g;const{message:{messageDataHandler:I,messageHelper:E}}=this._core,m=this._avChatRoomHandler.isPollingSimplifiedMessage(),D=[],M=n.length;for(let T=0;Tg===UE.MESSAGE_REVOKED)(n)?(this._handleMessageRevoked(s),null):(g=>g===UE.LIVE_CUSTOM_DATA)(n)?(this._onLiveCustomData(s),null):(g=>g===UE.MESSAGE_REACTION)(n)?null:s:(console.warn(`${this._name}.onMessageReceived unknown event:${n}`),null)}_createMessage(s){const{message:{messageFactory:n},OuterConstant:g}=this._core;let I=g.CONV_GROUP;s.elements.type===g.MSG_GRP_SYS_NOTICE&&(I=g.CONV_SYSTEM);const E=!!s.isSystemMessage,m=n.createMessage(Object.assign(Object.assign({},s),{conversationType:I,isSystemMessage:E,flow:"in"}));return m.setElement(s.elements),m}_filterDuplicateMessage(s){const{common:n}=this._core;if(!n.isUnlimitedAVChatRoom()){if(this._sequenceList.has(s.sequence))return null;this._sequenceList.set(s.sequence)}const g=this._messageIDList.has(s.ID);return g?(console.warn(`${this._name}_filterDuplicateMessageItem ID:${s.ID} has:${g}`),null):(this._messageIDList.set(s.ID),s)}_handleMessageRevoked(s){const{OuterConstant:n,OuterEvent:{MESSAGE_REVOKED:g}}=this._core,{ToGroupId:I,MsgBody:{RevokeMsgList:E},RevokerInfo:{Revoker_Account:m,Reason:D=""}}=s,M=[];E.forEach(T=>{const{TinyId:P,MsgClientTime:W,Random:iA,MsgSeq:EA}=T,RA={conversationID:`${n.CONV_GROUP}${I}`,ID:`${P}-${W}-${iA}`,revoker:m,revokeReason:D,revokerInfo:{userID:m,nick:"",avatar:""},sequence:EA};M.push(RA)}),M.length!==0&&this._emitEvent({name:g,data:M})}_onLiveCustomData(s){const{OuterEvent:{ROOM_CUSTOM_DATA_RECEIVED:n}}=this._core,{ToGroupId:g,MsgSeq:I,MsgTimeStamp:E,MsgBody:m}=s,D=m?.Content||m?.MsgContent||"";this._emitEvent({name:n,data:D}),console.log(`${this._name}._onLiveCustomData groupID:${g} sequence:${I} time:${E} data:${D}`)}_onGroupDismissed(s){this._avChatRoomHandler.reset(s)}_checkMessageStacked(s){const{length:n}=s;if(n>=100&&this._reportMessageStackedCount<5){const g=this._avChatRoomHandler.getJoinedGroups();this._core.ssoLog.info("MessageStacked",`count:${n} groupID:${g.join(",")}`),this._reportMessageStackedCount+=1}}_emitEvent(s){this._core.notificationCenter.emitOuterEvent(s.name,s)}onBroadcastMessageReceived(s){const{message:{messageHelper:n},OuterEvent:{MESSAGE_RECEIVED:g}}=this._core,I=this._avChatRoomHandler.isPollingSimplifiedMessage(),E=[],m=s.length;for(let D=0;D0&&this._emitEvent({name:g,data:E})}_updateLocalOnlineMemberCountFromTips(s){const{utils:{isEmpty:n}}=this._core,{ToGroupId:g,MsgBody:{OnlineMemberInfo:I}}=s;if(n(I))return;const{OnlineMemberNum:E=0,ExpireTime:m=CD}=I,D=Date.now();let M=this._avChatRoomHandler.getLocalOnlineMemberCount(g);n(M)?M={lastReqTime:0,lastSyncTime:0,latestUpdateTime:D,memberCount:E,expireTime:m}:(M.latestUpdateTime=D,M.memberCount=E),this._avChatRoomHandler.updateLocalOnlineMemberCount(g,M)}reset(){this._reportMessageStackedCount=0,this._sequenceList.clear(),this._messageIDList.clear(),this._broadcastMessageIDMap.clear()}};const lB=s=>{const{core:{store:n}}=cB;return(n.get("cloudConfig")||{})[s]},Ch=s=>{const{core:{utils:{isUndefined:n}}}=cB;return!n(s)},UQ=()=>{const s=lB("polling_interval");return Ch(s)?parseInt(s,10):300},IB=()=>{const s=lB("polling_simplified_msg");return Ch(s)?parseInt(s,10):0};var Pv=new class{constructor(){this._name="GetAVChatRoomOnlineMemberCount"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupOnlineMemberCount(s){return mA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},OuterConstant:g}=this._core,I=n.getGroup(s);return I?I.type===g.GRP_AVCHATROOM?this._getOnlineMemberCount(s):this._parentPlugin.groupAction.getGroupOnlineMemberCount(s):{code:0,data:{memberCount:0}}})}_getOnlineMemberCount(s){return mA(this,void 0,void 0,function*(){const n="_getOnlineMemberCount",{utils:{isEmpty:g}}=this._core,I=Pg.getLocalOnlineMemberCount(s);if(g(I)||this._isExpired(s)){const{memberCount:E=0}=yield this._getOnlineMemberCountFromServer(s);return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${E} from server.`),{code:0,data:{memberCount:E}}}return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${I.memberCount} from local.`),{code:0,data:{memberCount:I.memberCount}}})}_isExpired(s){const n=Pg.getLocalOnlineMemberCount(s),g=Date.now(),I=g-n.lastSyncTime>1e3*n.expireTime,E=g-n.latestUpdateTime>1e4,m=g-n.lastReqTime>3e3;return I&&E&&m}_getOnlineMemberCountFromServer(s){return mA(this,void 0,void 0,function*(){const n="_getOnlineMemberCountFromServer";try{const g=yield function(M,T){return mA(this,void 0,void 0,function*(){const P={GroupId:M};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:P})})}(s,this._core),{OnlineMemberNum:I=0,ExpireTime:E=CD}=g||{},m=Date.now(),D={lastSyncTime:m,latestUpdateTime:m,lastReqTime:m,memberCount:I,expireTime:E};return Pg.updateLocalOnlineMemberCount(s,D),{memberCount:I}}catch(g){const I=new this._core.helper.ChatError({functionName:n,code:g?.errorCode,message:g?.errorInfo});throw console.error(`${this._name}.${n} fail:`,I),I}})}},Pg=new class{constructor(){this._name="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this._onlineMemberCountMap=new Map,this._pollingIntervalMap=new Map,this._pollingNoMessageCountMap=new Map,this._membersReqInfoMap=new Map,this._startBroadcastSequence=1}init(s,n){this._core=s,this._parentPlugin=n,dh.init(s,this),s.ssoLog.debug("AVChatRoomHandler.init")}onAVChatRoomSystemNotification(s){const{OuterConstant:{GRP_AVCHATROOM:n}}=this._core,{GroupTips:g=[]}=s;for(let I=0;I0&&(n=[...this._joinedGroupMap.values()].filter(g=>g.type===s)),n}handleJoinGroupResult(s){return mA(this,void 0,void 0,function*(){const{utils:{isUndefined:n},OuterConstant:{CONV_GROUP:g},apiMap:{getConversationProfile:I},OuterConstant:E}=this._core,{longPollingKey:m,group:D,historyMessageList:M=[]}=s,{groupID:T}=D;return yield this._preCheck(D),this._joinedGroupMap.set(T,D),this._parentPlugin.groupDataHandler.updateLocalGroup([D]),this._parentPlugin.groupDataHandler.emitGroupListUpdate(),I(`${g}${T}`),Pv.getGroupOnlineMemberCount(T),M.length>0&&dh.onMessageReceived(T,M,!0),n(m)?{code:0,data:{status:E.JOIN_STATUS_SUCCESS,group:D}}:{code:0,data:this.startMessageLongPolling(s)}})}isGroupCounterUpdated(s){return this._parentPlugin.groupCounter.isGroupCounterUpdated(s)}handleGroupCounterUpdated(s){this._parentPlugin.groupCounter.handleGroupCounterUpdated(s)}_preCheck(s){return mA(this,void 0,void 0,function*(){const{common:n,OuterConstant:g,helper:I,apiMap:{quitGroup:E},ssoLog:m}=this._core;if(n.isUnlimitedAVChatRoom()){if(this._pollingInstanceMap.size>(()=>{const T=lB("polling_count_limit");return Ch(T)&&T>0?parseInt(T,10):20})())throw new I.ChatError({code:pT,message:"the count of longPolling exceeds the max limit"});return}if(this._joinedAVChatRoomCount()===0||s.type===g.GRP_LIVE)return;const[D,M]=this._joinedGroupMap.entries().next().value;if(M.selfInfo.role===g.GRP_MBR_ROLE_OWNER)this._parentPlugin.groupDataHandler.deleteLocalGroup(D);else try{yield E(D)}catch(T){m.debug("quitGroup",`${this._name}._preCheck quitGroup failed, groupID:${D} info:`,T)}this.reset(D)})}startMessageLongPolling(s){const{OuterConstant:n}=this._core,{longPollingKey:g,startSequence:I=1,group:E}=s,{groupID:m}=E;return this._pollingRequestInfoMap.set(m,{longPollingKey:g,startSequence:I}),this._pollingIntervalMap.set(m,UQ()),this._startPolling(m),this._reportLongPollingCount(),{status:n.JOIN_STATUS_SUCCESS,group:E}}_startPolling(s){if(this._core.ssoLog.debug("_startPolling",`${this._name}._startPolling groupID:${s}`),this._pollingInstanceMap.has(s)){const g=this._pollingInstanceMap.get(s);return void(g?.isRunning()||g==null||g.start())}const n=new Ov({core:this._core,manager:this,groupID:s,getRequestParams:this._handleRequestParams.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});n.start(),this._pollingInstanceMap.set(s,n)}_handleRequestParams(s){const{longPollingKey:n,startSequence:g}=this._pollingRequestInfoMap.get(s)||{};return s===[...this._pollingInstanceMap.keys()][0]?{longPollingKey:n,startSequence:g,startBroadcastSeq:this._startBroadcastSequence,simplifiedMessage:IB()}:{longPollingKey:n,startSequence:g,simplifiedMessage:IB()}}_handleSuccess(s,n){const{ErrorCode:g}=n;if(g!==0){const{longPollingKey:I,startSequence:E}=this._pollingRequestInfoMap.get(s)||{};return void console.warn(`${this._name}._handleSuccess groupID:${s} key:${I} startSeq:${E} errorCode:${g}`)}this._hasJoinedAVChatRoom(s)&&this._handleResponseData(s,n)}_handleResponseData(s,n){const{Key:g,NextSeq:I,NextBroadcastSeq:E,RspMsgList:m=[],RspBroadcastMsgList:D=[]}=n;if(g&&I&&this._pollingRequestInfoMap.set(s,{longPollingKey:g,startSequence:I}),E&&E>this._startBroadcastSequence&&(this._startBroadcastSequence=E),m.length>0)this._getPollingNoMessageCount(s)!==0&&(this._updatePollingNoMessageCount(s,0),this._pollingIntervalMap.set(s,UQ())),dh.onMessageReceived(s,m);else{let M=this._getPollingNoMessageCount(s);if(M+=1,this._updatePollingNoMessageCount(s,M),M===(()=>{const T=lB("polling_no_msg_count");return Ch(T)?parseInt(T,10):20})()){const T=UQ()+(()=>{const P=lB("polling_interval_plus");return Ch(P)?parseInt(P,10):2e3})();this._pollingIntervalMap.set(s,T)}}D.length>0&&dh.onBroadcastMessageReceived(D)}_handleFailure(s,n){const{ssoLog:g,utils:{safeStringify:I}}=this._core;g.warn("polling",`${this._name}._handleFailure groupID:${s} error: ${I(n)}`)}_joinedAVChatRoomCount(){const{OuterConstant:s}=this._core;let n=[];return this._joinedGroupMap.size>0&&(n=this.getJoinedGroups().filter(g=>g.type===s.GRP_AVCHATROOM)),n.length}_hasJoinedAVChatRoom(s){return this._joinedGroupMap.has(s)}getJoinedGroups(){return[...this._joinedGroupMap.values()]}updateLocalLiveGroup(s,n){this._joinedGroupMap.set(s,n),this._parentPlugin.groupDataHandler.updateLocalGroup([n])}handleLiveHistoryMessages(s,n){dh.onMessageReceived(s,n,!0)}isOverFrequencyLimit(s){if(!this._membersReqInfoMap.has(s))return this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1;let{startTime:n,requestCount:g}=this._membersReqInfoMap.get(s);const{interval:I,count:E}=(()=>{const m=lB("av_members_freq_limit");if(Ch(m)){const{interval:D,count:M}=JSON.parse(m);if(M>0&&D>0)return{interval:D,count:M}}return{interval:30,count:4}})();return Date.now()-n>1e3*I?(this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1):(g+=1,this._membersReqInfoMap.set(s,{startTime:n,requestCount:g}),g>E)}_stopPolling(s){if(this._core.ssoLog.debug("_stopPolling",`${this._name}._stopPolling groupID:${s}`),s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core;n.deleteConversation(`${g}${s}`);const I=this._pollingInstanceMap.get(s);return I?.stop(),this._parentPlugin.groupDataHandler.deleteLocalGroup(s),this._pollingInstanceMap.delete(s),this._pollingRequestInfoMap.delete(s),this._joinedGroupMap.delete(s),this._onlineMemberCountMap.delete(s),this._pollingIntervalMap.delete(s),this._pollingNoMessageCountMap.delete(s),void this._membersReqInfoMap.delete(s)}for(const n of this._pollingInstanceMap.values())n?.stop();this._pollingInstanceMap.clear(),this._pollingRequestInfoMap.clear(),this._joinedGroupMap.clear(),this._onlineMemberCountMap.clear(),this._pollingIntervalMap.clear(),this._pollingNoMessageCountMap.clear(),this._membersReqInfoMap.clear()}_updatePollingNoMessageCount(s,n){this._pollingNoMessageCountMap.set(s,n)}_getPollingNoMessageCount(s){return this._pollingNoMessageCountMap.get(s)||0}_reportLongPollingCount(){const s=this._joinedGroupMap.size;if(s>1){const{common:n,OuterConstant:g,ssoLog:I}=this._core,E=n.isUnlimitedAVChatRoom()?1:0,m=[],D=[];Array.from(this._joinedGroupMap.values()).forEach(({groupID:M,type:T})=>{T===g.GRP_LIVE?D.push(M):m.push(M)}),I.info("longPollingCount",String(s),{moreMessage:`av:${m.join(",")} live:${D.join(",")} code: ${E}`,eventType:29})}}reset(s){this._stopPolling(s),this._startBroadcastSequence=1,dh.reset()}},xv=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}joinGroup(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.joinGroup(s),{data:{status:I,group:{type:E}}}=g;return E===n.GRP_AVCHATROOM?I===n.JOIN_STATUS_ALREADY_IN_GROUP?g:Pg.handleJoinGroupResult(g.data):g})}},fT=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}quitGroup(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.quitGroup(s),{data:{type:I}}=g;return I===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},Yv=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}dismissGroup(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.dismissGroup(s),{data:{type:I}}=g;return I===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},bm=new class{constructor(){this._name="GetAVChatRoomMemberList"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupMemberList(s){return mA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},helper:g,OuterConstant:I}=this._core,{groupID:E}=s,m=n.getGroup(E);if(m?.type===I.GRP_AVCHATROOM&&g.checkBusinessCapabilityBits(Fv)){if(Pg.isOverFrequencyLimit(E))throw{code:2996,message:`Over frequency limit: get_members-${E}`};return this._getGroupMemberList(s)}return this._parentPlugin.groupMember.getGroupMemberList(s)})}_getGroupMemberList(s){return mA(this,void 0,void 0,function*(){const n="_getGroupMemberList",{helper:g}=this._core;try{const I=yield function(M,T){return mA(this,void 0,void 0,function*(){const{groupID:P,offset:W=0}=M,iA={GroupId:P,Timestamp:W};return T.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.get_members",data:iA})})}(s,this._core),{MemberList:E=[],NextTimestamp:m=0}=I||{},D=this._handleMemberList(E);return console.log(`${this._name}.${n} ok, groupID:${s.groupID} count:${D.length} nextOffset:${m}`),{code:0,data:{memberList:D,offset:m}}}catch(I){const E=new g.ChatError({functionName:n,code:I?.errorCode,message:I?.errorInfo});throw console.error(`${this._name}.${n} fail:`,E),E}})}_handleMemberList(s){return s.map(n=>{const{Member_Account:g,NickName:I="",Avatar:E="",Remark:m="",JoinTime:D=0,Marks:M=[]}=n;return{userID:g,nick:I,avatar:E,remark:m,joinTime:D,marks:M,isOnline:!0}})}},km=new class{constructor(){this._name="DeleteAVChatRoomMember"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}deleteGroupMember(s){return mA(this,void 0,void 0,function*(){const n="deleteGroupMember",{appStore:{groupStore:g},utils:{isUndefined:I},helper:E,OuterConstant:m}=this._core,{groupID:D}=s,M=g.getGroup(D);if(I(M))throw new E.ChatError({functionName:n,code:hD});if(M.type===m.GRP_AVCHATROOM){if(E.checkBusinessCapabilityBits(BT))return this._deleteGroupMember(s);throw new E.ChatError({functionName:n,code:kQ})}return this._parentPlugin.groupMember.deleteGroupMember(s)})}_deleteGroupMember(s){return mA(this,void 0,void 0,function*(){const n="_deleteGroupMember",{appStore:{groupStore:g},helper:I,ssoLog:E}=this._core,{groupID:m,duration:D=0,userIDList:M}=s;if(D===0)throw new I.ChatError({functionName:n,code:QT});try{return yield function(T,P){return mA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,duration:EA,reason:RA}=T,kA={GroupId:W,Members_Account:iA,Duration:EA,Description:RA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.ban_group_member",data:kA})})}(s,this._core),E.debug(n,`${this._name}.${n} ok, groupID:${m}`),{code:0,data:{group:g.getGroup(m),userIDList:M}}}catch(T){throw new I.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},Dd=new class{constructor(){this._name="MarkAVChatRoomMember"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"markGroupMemberList",context:this})}markGroupMemberList(s){return mA(this,void 0,void 0,function*(){const n="markGroupMemberList",{groupID:g,markType:I,enableMark:E,userIDList:m=[]}=s,D=this._generateRequestData(s);try{const M=yield function(iA,EA){return mA(this,void 0,void 0,function*(){const{groupID:RA,operationType:kA,memberList:xA}=iA,LA={GroupId:RA,CommandType:kA,MemberList:xA};return EA.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.modify_user_info",data:LA})})}(D,this._core),{MemberList:T=[]}=M||{},{successUserIDList:P,failureUserIDList:W}=this._handleResult(T,m);return{code:0,data:{successUserIDList:P,failureUserIDList:W},successLog:{message:`${this._name}.${n} ok, groupID:${g} markType:${I} enableMark:${E} success:${P.length} fail:${W.length}`}}}catch(M){throw new this._core.helper.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_generateRequestData(s){const{groupID:n,markType:g,enableMark:I,userIDList:E=[]}=s,m=I===!0?1:2,D=[...E];return D.length>500&&console.warn(`${this._name}._generateRequestData, the length of userIDList cannot exceed 500`),{groupID:n,operationType:m,memberList:D.map(M=>({Member_Account:M,Marks:[g]}))}}_handleResult(s,n){const g=[],I=[];return s.length===n.length?(g.push(...n),{successUserIDList:g,failureUserIDList:I}):(n.forEach(E=>{s.find(m=>m.Member_Account===E)?g.push(E):I.push(E)}),{successUserIDList:g,failureUserIDList:I})}},Vv=new class{init(s,n){s.ssoLog.debug("AVChatRoomAction.init"),xv.init(s,n),fT.init(s,n),Yv.init(s,n),bm.init(s,n),Pv.init(s,n),km.init(s,n),Dd.init(s)}},Jv=new class{constructor(){this._name="LiveHandler"}init(s){this._core=s;const{helper:n,ssoLog:g}=s;n.registerExperimentalAPI("startMessageLongPolling",this),n.registerExperimentalAPI("stopMessageLongPolling",this),g.debug("LiveHandler.init")}startMessageLongPolling(s){const{common:n,utils:{isEmpty:g},OuterConstant:I,ssoLog:E}=this._core,{groupID:m,longPollingKey:D,longPollingSequence:M=1}=s;if(g(D))return E.warn("startMessageLongPolling",`${this._name}.startMessageLongPolling longPollingKey is empty.`),Promise.resolve({});Pg.hasPollingInstance(m)&&this.stopMessageLongPolling({groupID:m});const T=Pg.getJoinedLiveList(),P=n.isUnlimitedAVChatRoom();!P&&T.length>0&&this.stopMessageLongPolling({groupID:T[0].groupID}),E.debug("startMessageLongPolling",`${this._name}.startMessageLongPolling isUnlimited:${P} groupID:${m} longPollingKey:${D} longPollingSequence:${M}`);const W={groupID:m,type:I.GRP_LIVE};return Pg.updateLocalLiveGroup(m,W),this._getLiveHistoryMessages({groupID:m,longPollingKey:D,startSequence:M}),Pg.startMessageLongPolling({group:W,longPollingKey:D,startSequence:M})}stopMessageLongPolling(s){const{groupID:n}=s;return Pg.reset(n),this._core.ssoLog.debug("stopMessageLongPolling",`${this._name}.stopMessageLongPolling ok, groupID:${n}`),Promise.resolve({groupID:n})}_getLiveHistoryMessages(s){return mA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{groupID:g}=s;try{const I=yield function(m,D){return mA(this,void 0,void 0,function*(){const{groupID:M,longPollingKey:T,startSequence:P}=m,W={GroupId:M,LongPollingKey:T,PullPreSeq:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_huge_group_msg",data:W})})}(s,this._core),{RspMsgList:E=[]}=I||{};n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages ok, groupID:${g} count:${E.length}`),E.length>0&&Pg.handleLiveHistoryMessages(g,E)}catch(I){n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages failed, groupID:${g} info:${I.message}`)}})}},Lm=new class{constructor(){this.name="AVChatRoom"}install(s,n){this._core=s,cB.init(s),Pg.init(s,n),Vv.init(s,n),Jv.init(s);const{notificationCenter:g,InnerEvent:I}=s,{InnerEventSubType:E}=g;g.subscribeInnerEvent(I.MESSAGE_PUSH,E.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),g.subscribeInnerEvent(I.LOGOUT,this._reset,this),g.subscribeInnerEvent(I.DESTROY,this._dispose,this)}_onAVChatRoomSystemNotification(s){Pg.onAVChatRoomSystemNotification(s)}_reset(){Pg.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const $a=new class{init(s){this.core=s}},Um="message",uB="user",EB={OR:"or",AND:"and"},yI=20,yT=20,Hv=20,hh={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!s||!!(Array.isArray(s)&&s.length<=5)||"keywordList should be an array and length <= 5"},Fm={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>!s||!![EB.OR,EB.AND].includes(s)||"keywordListMatchType should be OR or AND"},QC={required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s=="number"&&s>=1&&s<=100||"count must be a number between 1 and 100"},FQ={required:!1,rules:["string"],allowEmpty:!0},qv={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=$a.core;if(!Array.isArray(s))return"groupTypeList should be an array";const g=[n.GRP_PUBLIC,n.GRP_COMMUNITY,n.GRP_WORK,n.GRP_MEETING];let I=!1;for(let E=0;E{const{OuterConstant:n}=$a.core,g=[n.MSG_TEXT,n.MSG_IMAGE,n.MSG_AUDIO,n.MSG_FILE,n.MSG_VIDEO,n.MSG_LOCATION,n.MSG_CUSTOM,n.MSG_MERGER];let I=!1;for(let E=0;E{const{OuterConstant:n}=$a.core;return!(!s?.startsWith(n.CONV_C2C)&&!s?.startsWith(n.CONV_GROUP)&&s!==n.CONV_SYSTEM)||"conversationID is invalid"}},Om=s=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:n=>typeof n=="number"&&n>=0||`${s} should be a number >= 0';`}),QD={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=$a.core;return!![n.GENDER_FEMALE,n.GENDER_MALE].includes(s)||"gender is invalid"}},Pm={searchCloudMessages:{keywordList:hh,keywordListMatchType:Fm,cursor:FQ,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!!(Array.isArray(s)&&s.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:Kv,conversationID:jv,timePosition:Om("timePosition"),timePeriod:Om("timePeriod")},searchCloudUsers:{keywordList:hh,keywordListMatchType:Fm,cursor:FQ,count:QC,miniBirthday:Om("miniBirthday"),maxBirthday:Om("maxBirthday"),gender:QD},searchCloudGroupMembers:{keywordList:hh,keywordListMatchType:Fm,cursor:FQ,count:QC,groupTypeList:qv,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:hh,keywordListMatchType:Fm,cursor:FQ,count:QC,groupTypeList:qv}},pD={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var mD=new class{constructor(){this.name="CloudSearch"}install(s){this._core=s,$a.init(s),s.helper.registerApi({apiName:"searchCloudMessages",context:this}),s.helper.registerApi({apiName:"searchCloudUsers",context:this}),s.helper.registerApi({apiName:"searchCloudGroupMembers",context:this}),s.helper.registerApi({apiName:"searchCloudGroups",context:this}),s.helper.registerValidateConfig({auth:pD,params:Pm})}searchCloudMessages(s){return mA(this,void 0,void 0,function*(){try{const{OuterConstant:n,helper:g}=this._core,{conversationID:I,timePeriod:E,timePosition:m}=s,D=yo(s,["conversationID","timePeriod","timePosition"]),M=Object.assign({count:100},D);I&&(I.startsWith(n.CONV_C2C)?M.account=I.replace(n.CONV_C2C,""):I.startsWith(n.CONV_GROUP)&&(M.groupID=I.replace(n.CONV_GROUP,""))),this._setTimeRangeParams(M,{timePeriod:E,timePosition:m});const T=yield function(LA){return mA(this,void 0,void 0,function*(){const{count:SA,keywordList:OA,keywordListMatchType:JA,senderUserIDList:re,messageTypeList:ne,endTime:_i,startTime:Ti,cursor:kt,account:Ni,groupID:cs}=LA,Se={Count:SA,KeywordList:OA,MatchType:JA,SendUserIDList:re,MsgTypeList:ne,EndTime:_i,StartTime:Ti,Cursor:kt,PeerAccount:Ni,GroupID:cs};return $a.core.common.buildAndSendPacket({servcmd:"message_search.query",data:Se})})}(M);if(!T)return{code:0,data:{}};const{ErrorCode:P,ErrorInfo:W,TotalCount:iA,Cursor:EA="",ConversationMsgs:RA=[]}=T;if(P!==0)throw{errorCode:P,errorInfo:W};const kA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} res: totalCount:${iA}`;return{code:0,data:{searchResultList:RA.map(LA=>{const{MsgList:SA,Count:OA,GroupID:JA,UserID:re}=LA,ne=JA?`${n.CONV_GROUP}${JA}`:`${n.CONV_C2C}${re}`;if(this._isSearchingAllConversations(s)&&OA>1)return{conversationID:ne,messageCount:OA,messageList:[]};const _i=SA.map(Ti=>g.isEmpty(JA)?function(kt,Ni){const cs=Ni.OuterConstant.CONV_C2C,Se=Ni.message.messageHelper.parseServerPushMessage(kt),Bt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Se),{conversationType:cs,flow:"in"}));return Bt.setElement(Se.elements),Bt}(Ti,this._core):function(kt,Ni){const cs=Ni.OuterConstant.CONV_GROUP,Se=Ni.message.messageHelper.parseServerGroupMessage(kt),Bt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Se),{conversationType:cs,flow:"in"}));return Bt.setElement(Se.elements),Bt}(Ti,this._core));return{conversationID:ne,messageCount:OA,messageList:_i}}),cursor:EA,totalCount:iA},successLog:{message:kA}}}catch(n){const{errorCode:g,errorInfo:I}=n||{};this._handleError({errorCode:g,errorInfo:I,searchType:Um,functionName:"searchCloudMessages"})}})}searchCloudUsers(s){return mA(this,void 0,void 0,function*(){var n;try{const{keywordListMatchType:g,count:I=yT}=s,E=yo(s,["keywordListMatchType","count"]),m=Object.assign({count:I,keywordListMatchType:g===EB.AND?1:0},E);this._setBirthdayRangeParams(m,s);const D=yield function(kA){return mA(this,void 0,void 0,function*(){const{count:xA,keywordList:LA,keywordListMatchType:SA,miniBirthday:OA,maxBirthday:JA,cursor:re,gender:ne}=kA,_i={Count:xA,Keywords:LA,KeywordMatchType:SA,Cursor:re,UserBirthStart:OA,UserBirthEnd:JA,Gender:ne};return $a.core.common.buildAndSendPacket({servcmd:"user_search.query",data:_i})})}(m);if(!D)return{error:0,data:{}};const{ErrorCode:M,ErrorInfo:T,TotalCount:P,Cursor:W="",Users:iA=[]}=D;if(M!==0)throw{errorCode:M,errorInfo:T};const EA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${P}`,RA=[];for(let kA=0,xA=iA.length;kA({tag:re.Tag,value:re.StrValue})),JA=(n=this._core.user.userProfile)===null||n===void 0?void 0:n.createProfile(LA,OA);RA.push(JA)}return{code:0,data:{searchResultList:RA,cursor:W,totalCount:P},successLog:{message:EA}}}catch(g){const{errorCode:I,errorInfo:E}=g||{};this._handleError({errorCode:I,errorInfo:E,searchType:uB,functionName:"searchCloudUsers"})}})}searchCloudGroupMembers(s){return mA(this,void 0,void 0,function*(){try{const{count:n=Hv,keywordListMatchType:g}=s,I=yo(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===EB.AND?1:0},I),m=yield function(RA){return mA(this,void 0,void 0,function*(){const{count:kA,keywordList:xA,keywordListMatchType:LA,groupTypeList:SA,cursor:OA,groupIDList:JA}=RA,re={Count:kA,Keywords:xA,KeywordMatchType:LA,Cursor:OA,GroupType:SA,GroupIdList:JA};return $a.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:re})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,GroupMembers:T=[],Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`,EA=new Map;return T.forEach(RA=>{const{GroupID:kA,GroupName:xA,GroupType:LA,GroupFaceUrl:SA,GroupMemberUserName:OA,GroupMemberUserID:JA,GroupMemberNameCard:re,GroupMemberAvatar:ne=""}=RA,_i={groupID:kA,name:xA,type:LA,avatar:SA},Ti={userID:JA,nick:OA,nameCard:re,avatar:ne};if(EA.has(kA)){const kt=EA.get(kA);kt.memberList.push(Ti),EA.set(kA,kt)}else EA.set(kA,{groupInfo:_i,memberList:[Ti]})}),{code:0,data:{searchResultList:[...EA.values()],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:I}=n||{};this._handleError({errorCode:g,errorInfo:I,searchType:uB,functionName:"searchCloudGroupMembers"})}})}searchCloudGroups(s){return mA(this,void 0,void 0,function*(){try{const{count:n=yI,keywordListMatchType:g}=s,I=yo(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===EB.AND?1:0},I),m=yield function(EA){return mA(this,void 0,void 0,function*(){const{count:RA,keywordList:kA,keywordListMatchType:xA,groupTypeList:LA,cursor:SA}=EA,OA={Count:RA,Keywords:kA,KeywordMatchType:xA,Cursor:SA,GroupType:LA};return $a.core.common.buildAndSendPacket({servcmd:"group_search.query",data:OA})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,Groups:T,Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`;return{code:0,data:{searchResultList:T?.map(EA=>function(RA){const{GroupFaceUrl:kA,GroupID:xA,GroupIntroduction:LA,GroupMemberNum:SA,GroupName:OA,GroupOwnerTinyID:JA,GroupOwnerUserID:re,GroupOwnerUserName:ne,GroupType:_i,GroupAddOption:Ti,GroupInviteOption:kt}=RA;return{avatar:kA,groupID:xA,introduction:LA,memberCount:SA,name:OA,ownerTinyID:JA,ownerID:re,ownerNick:ne,type:_i,joinOption:Ti,inviteOption:kt}}(EA))||[],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:I}=n||{};this._handleError({errorCode:g,errorInfo:I,searchType:uB,functionName:"searchCloudGroups"})}})}_setTimeRangeParams(s,{timePeriod:n,timePosition:g}){n&&n>0&&(s.startTime=g&&g>0?g-n:this._core.helper.timeManager.getServerTimeSeconds()-n),s.startTime&&s.startTime<0&&(s.startTime=void 0),g&&g>0&&(s.endTime=g)}_handleError({errorCode:s,errorMessage:n,searchType:g}){const{helper:I}=this._core;let E=s;throw s===60020?E="SearchUnable":g!==Um&&s===27003?E="SearchParamsError":g!==Um&&s===60018&&(E="SearchOverLimit"),new I.ChatError({code:E,message:n})}_isSearchingAllConversations(s){return this._core.helper.isEmpty(s.conversationID)}_setBirthdayRangeParams(s,n){const{miniBirthday:g,maxBirthday:I}=n;g!==void 0&&(s.miniBirthday=g,I===void 0&&(s.maxBirthday=4294967295)),I!==void 0&&(s.maxBirthday=I)}};function Bh(s,n){return Math.round(Number(s)*Math.pow(10,n))/Math.pow(10,n)}const Wv="qualityStat",fD="im-ssolog-quality-stat";var yD;(function(s){s[s.ONLINE=8]="ONLINE"})(yD||(yD={}));const xm="networkRTT",Qh="messageE2EDelay",dB="sendMessageC2C",ph="sendMessageGroup",mh="sendMessageGroupAV",CB="sendMessageRichMedia",hB="cosUpload",pC="messageReceivedGroup",OQ="messageReceivedGroupAVPush",PQ="messageReceivedGroupAVPull",DT={[xm]:2,[Qh]:3,[dB]:4,[ph]:5,[mh]:6,[CB]:7,[pC]:8,[OQ]:9,[PQ]:10,[hB]:11},zv=[dB,ph,mh,CB,hB],fh=[pC,OQ,PQ],BB=[xm,Qh,dB,ph,mh,CB,hB,pC,OQ,PQ],DD={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MSG_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},Ym="quality_stat";var xQ=new class{constructor(){this._messageStatsMap=new Map,this._userSideErrorCodes=new Set(Object.values(DD))}init(s){this._core=s,Object.values(zv).forEach(n=>{this._messageStatsMap.set(n,{totalCount:0,successCount:0,failedCountOfUserSide:0,costSum:0,costCount:0,fileSizeSum:0})})}dispatchSendStats(s){const{name:n,message:g,error:I,startTs:E}=s,{SEND_MESSAGE_STAT:m}=this._core.constants;switch(n){case m.TOTAL_COUNT:this._handleTotalCount(g);break;case m.SUCCESS_COUNT:this._handleSuccessCount(g);break;case m.FAILED_COUNT:this._handleFailedCount(g,I);break;case m.SEND_COST:this._handleSendCost(g,E)}}getStatResult(s){const n=this._messageStatsMap.get(s);if(!n||n.totalCount===0)return null;const{totalCount:g,successCount:I,failedCountOfUserSide:E}=n,m=Bh(I/g*100,2),D=I+E,M=Bh(D/g*100,2),T=this._calcAverageValue(n,s);return this._resetStat(s),{total_count:g,success_count_business:I,percent_business:m,success_count_platform:D,percent_platform:M,average_value:T}}_handleTotalCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.totalCount++}_handleSuccessCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.successCount++}_handleFailedCount(s,n){var g;const I=(g=n?.code)!==null&&g!==void 0?g:n?.errorCode;if(this._isUserSideError(I)){const E=this._getSendMessageSpecifiedKey(s),m=E&&this._messageStatsMap.get(E);m&&m.failedCountOfUserSide++}}_handleSendCost(s,n){const g=this._getSendMessageSpecifiedKey(s),I=g&&this._messageStatsMap.get(g);I&&(I.costSum+=Date.now()-n,I.costCount++)}_isUserSideError(s){return this._userSideErrorCodes.has(s)||s>=120001&&s<=13e4||s>=10100&&s<=10200}_getSendMessageSpecifiedKey(s){const{MSG_IMAGE:n,MSG_AUDIO:g,MSG_VIDEO:I,MSG_FILE:E,CONV_C2C:m,CONV_GROUP:D,GRP_AVCHATROOM:M}=this._core.OuterConstant;if([n,g,I,E].includes(s.type))return CB;if(s.conversationType===m)return dB;if(s.conversationType===D){const{groupStore:T}=this._core.appStore,P=T.getGroup(s.to);if(!P)return;const{type:W}=P;return W===M?mh:ph}}_calcAverageValue(s,n){return s.costCount===0?0:Math.round(n===hB?1e3*s.fileSizeSum/s.costSum:s.costSum/s.costCount)}_resetStat(s){const n=this._messageStatsMap.get(s);n&&(n.totalCount=0,n.successCount=0,n.failedCountOfUserSide=0,n.costSum=0,n.costCount=0,n.fileSizeSum=0)}},YQ=new class{constructor(){this._lastCycleStats=new Map,this._currentCycleStats=new Map}init(s){this._core=s;const{OuterEvent:n,notificationCenter:g}=s;this._initStatsMap(),g.subscribeOuterEvent(n.MESSAGE_RECEIVED,this._onMessageReceived,this)}addMessageSequence(s){const n=this._getReceivedMessageSpecifiedKey(s),{utils:{isUndefined:g},OuterConstant:{CONV_GROUP:I},ssoLog:E}=this._core;if(g(n)||!this._currentCycleStats.has(n))return void E.debug("addMessageSequence",`${Wv}.addMessageSequence invalid key:${n}`);const{conversationID:m,sequence:D}=s,M=m.replace(I,""),T=this._lastCycleStats.get(n);if(T.size===0||!T.has(M))return void this._addToCurrentCycle(n,M,D);const P=T.get(M);D>P.minSeq&&D{const{sortedSequences:m,minSeq:D,maxSeq:M}=E;m.length>0&&(I+=m.length,g+=M-D+1)}),g===0?null:(this._transferCycleDataOptimized(s),{total_count:g,success_count_business:I,percent_business:Bh(I/g*100,2)})}reset(){this._lastCycleStats.clear(),this._currentCycleStats.clear()}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_initStatsMap(){Object.values(fh).forEach(s=>{this._lastCycleStats.set(s,new Map),this._currentCycleStats.set(s,new Map)})}_onMessageReceived(s){const{data:n=[]}=s;n.forEach(g=>{this.addMessageSequence(g)})}_transferCycleDataOptimized(s){const n=this._currentCycleStats.get(s);if(!n)return;const g=new Map;n.forEach((I,E)=>{const m=I.dirty?[...I.sortedSequences].sort((D,M)=>D-M):I.sortedSequences;g.set(E,{sortedSequences:m,minSeq:I.minSeq,maxSeq:I.maxSeq,dirty:!1})}),this._lastCycleStats.set(s,g),this._currentCycleStats.set(s,new Map)}_getReceivedMessageSpecifiedKey(s){const{OuterConstant:{CONV_GROUP:n,GRP_AVCHATROOM:g}}=this._core;if(s.conversationType===n&&s?._onlineOnlyFlag!==!0){const{groupStore:I}=this._core.appStore,E=I.getGroup(s.to);if(!E)return null;const{type:m}=E;return m===g?PQ:pC}}_insertToLastCycle(s,n){n.dirty&&(n.sortedSequences.sort((I,E)=>I-E),n.dirty=!1);const g=this._findInsertPos(n.sortedSequences,s);n.sortedSequences.splice(g,0,s),n.minSeq=Math.min(n.minSeq,s),n.maxSeq=Math.max(n.maxSeq,s)}_findInsertPos(s,n){let g=0,I=s.length-1;for(;g<=I;){const E=Math.floor((g+I)/2);if(s[E]===n)return E;s[E]0&&(this._totalDelay+=g,this._totalCount++,g<=1?this._countLessThan1s++:g<=3&&this._countLessThan3s++)}getStatResult(){if(this._totalCount===0)return null;const s={total_count:this._totalCount,success_count_business:this._countLessThan1s,success_count_platform:this._countLessThan3s,percent_business:this._calculatePercentage(this._countLessThan1s,this._totalCount),percent_platform:this._calculatePercentage(this._countLessThan3s,this._totalCount),average_value:this._calculateAverageDelay(this._totalCount)};return this.reset(),s}reset(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_onMessageReceived(s){const{data:n=[]}=s,{OuterConstant:{MSG_GRP_TIP:g,MSG_GRP_SYS_NOTICE:I}}=this._core,E=[g,I];n.forEach(m=>{!E.includes(m.type)&&m.clientTime>0&&this.addMessageDelay(m.clientTime)})}_calculateAverageDelay(s){return s===0?0:Bh(this._totalDelay/s,1)}_calculatePercentage(s,n){return Bh(s/n*100,2)}},Zv=new class{init(s){this.core=s}},ST=new class{constructor(){this.name="MessageQualityStat",this._reportIndex=0,this._wholePeriod=!1,this._pendingReports=[],this._failedLogsCache=new Map}install(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{QUALITY_STAT:I,LOGOUT:E,DESTROY:m},constants:{WORKFLOW_NAME:D,WORKFLOW_STEP:M}}=s;Zv.init(s),xQ.init(s),YQ.init(s),VQ.init(s),n.registerWorkflowStep(D.SYNC_SERVER_INFO_AFTER_LOGIN,M.QUALITY_REPORT,this.handleLoginSuccess,this),g.subscribeInnerEvent(I,this._handleQualityStat,this),g.subscribeInnerEvent(E,this._reset,this),g.subscribeInnerEvent(m,this._dispose,this)}handleLoginSuccess(){const{store:s,helper:n,utils:{isUndefined:g}}=this._core,I=s.get("cloudConfig")||{},{q_rpt_interval:E}=I,m=g(E)?12e4:Number(E);n.taskScheduler.addTask({id:Ym,intervalMs:m,callback:this.report,context:this})}report(){this._wholePeriod=!0;const s=[...BB.map(n=>{const g=this._buildQualityReportItem(n);return g?Object.assign(Object.assign({},g),{report_index:this._reportIndex,whole_period:this._wholePeriod}):null}).filter(Boolean),...this._pendingReports];this._pendingReports=[],this._needSkipReport()||this._uploadQualityReports(s)}_handleQualityStat(s){const{constants:{QUALITY_METRICS:n}}=this._core,{label:g,data:I}=s;g===n.MESSAGE_SEND_SUCCESS_RATE&&xQ.dispatchSendStats(I)}_needSkipReport(){return this._isSDKAppIDInBlacklist()&&!this._isTinyIDInWhitelist()}_isSDKAppIDInBlacklist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},I=s.get("instance")||{},{sdkAppId:E}=I,{q_rpt_sdkappid_bl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").map(D=>Number(D)).includes(E)}_isTinyIDInWhitelist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},I=s.get("login")||{},E=Number(I.tinyID),{q_rpt_tinyid_wl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").includes(E)}_buildQualityReportItem(s){const n=this._getStatResultByKey(s);if(n===null)return null;const g={quality_type:DT[s],timestamp:Date.now(),network_type:yD.ONLINE,extension:""};return Object.assign(Object.assign({},g),n)}_getStatResultByKey(s){switch(s){case Qh:return VQ.getStatResult();case dB:case ph:case mh:case CB:case hB:return xQ.getStatResult(s);case pC:case OQ:case PQ:return YQ.getStatResult(s);default:return null}}_uploadQualityReports(s){return mA(this,void 0,void 0,function*(){try{const n={header:this._core.common.getCommonHead(),quality:s};yield function(g){const{common:I,channel:E}=Zv.core,m="imopenstat.tim_web_report_v2",D=I.generateSSOLogProtocolData({servcmd:m,data:g}),M=`${D.head.seq}${m}`;return E.sendPacket(D,{requestId:M})}(n),this._reportIndex++,this._wholePeriod=!1}catch(n){console.warn("doReport failed. error:",n),this._pendingReports=this._pendingReports.concat(s),this._cacheFailedLogs()}})}_cacheFailedLogs(){const s=this._pendingReports,n=`${Wv}._cacheFailedLogs`;let g=[...this._failedLogsCache.get(fD)||[],...s];g.length>10&&(g=g.slice(g.length-10),console.log(`${n} logs overflow, keeping last 10 items`)),this._failedLogsCache.set(fD,g),console.log(`${n} count: ${g.length}`),this._pendingReports=[]}_reset(){const{helper:s}=this._core;s.taskScheduler.removeTask(Ym)}_dispose(){const{notificationCenter:s,InnerEvent:{QUALITY_STAT:n,LOGOUT:g,DESTROY:I}}=this._core;s.unSubscribeInnerEvent(n,this._handleQualityStat,this),s.unSubscribeInnerEvent(g,this._reset,this),s.unSubscribeInnerEvent(I,this._dispose,this),this._reset(),VQ.dispose(),YQ.dispose()}};const cl=new class{init(s){this.core=s}};function Xv(s){return mA(this,void 0,void 0,function*(){var n;const{message:g,user:I,appStore:E,constants:{OuterConstant:m}}=cl.core,D=E.conversationStore.getConversationMap();if(D.has(s)){const T=(n=D.get(s))===null||n===void 0?void 0:n.userProfile;if(T&&s.startsWith(m.CONV_C2C)){const{avatar:P,nick:W}=T;cl.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:P,latestNick:W,isSentByMe:!1})}}const{data:M}=(yield I.userProfile.getMyProfile())||{};if(M){const{avatar:T,nick:P}=M;g.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:T,latestNick:P,isSentByMe:!0})}})}function $v(s){return mA(this,void 0,void 0,function*(){const n=s.map(g=>g.revoker);try{const g=yield function(I){return mA(this,void 0,void 0,function*(){var E,m;const D=yield(E=cl.core.user.userProfile)===null||E===void 0?void 0:E.getUserProfile({userIDList:I});return D?.data?(m=D.data)===null||m===void 0?void 0:m.reduce((M,{userID:T,nick:P,avatar:W})=>(M[T]={nick:P||"",avatar:W||""},M),{}):null})}(n);g&&s.forEach(I=>{const{revoker:E}=I;g[E]&&(I.revokerInfo.nick=g[E].nick||"",I.revokerInfo.avatar=g[E].avatar||"",I.revokerInfo.userID=E)})}catch(g){console.debug(g)}})}const SD=1,AR=2,yh=20,JQ=2500,eR=1,Dh=300;function HQ(s){return mA(this,void 0,void 0,function*(){var n,g;const{appStore:I,utils:{isEmpty:E},common:{getCurrentUserID:m},notificationCenter:D,OuterEvent:M,OuterConstant:{CONV_C2C:T}}=cl.core,{messageList:P,conversationID:W}=s,iA=I.conversationStore.getConversationMap();let EA=(n=iA.get(W))===null||n===void 0?void 0:n.peerReadTime;if(!EA){const kA=W.replace(T,""),xA=yield function(LA){return mA(this,void 0,void 0,function*(){const SA={To_Account:LA};return cl.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:SA})})}([kA]);if(xA){const{ReadTime:LA}=xA;EA=LA?.[0],iA.has(W)&&(iA.get(W).peerReadTime=EA)}}if(iA.has(W)){const kA=(g=iA.get(W))===null||g===void 0?void 0:g.lastMessage;E(kA)||kA.fromAccount===m()&&kA.lastTime<=EA&&!kA.isPeerRead&&(kA.isPeerRead=!0,I.conversationStore.updateConversation(W,{lastMessage:kA}))}const RA=[];P.forEach(kA=>{kA.time<=EA&&!kA.isPeerRead&&kA.flow==="out"&&(kA.isPeerRead=!0,RA.push(kA))}),RA.length>0&&D.emitOuterEvent(M.MESSAGE_READ_BY_PEER,{name:M.MESSAGE_READ_BY_PEER,data:RA})})}var tR=new class{init(s){this._core=s,s.helper.registerApi({apiName:"getMessageList",context:this}),s.helper.registerApi({apiName:"getMessageListHopping",context:this}),s.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(s){return mA(this,void 0,void 0,function*(){try{const{message:n,OuterConstant:{Direction:g,CONV_C2C:I,CONV_GROUP:E},InnerEvent:{HISTORY_MESSAGE_FETCHED:m},notificationCenter:D}=this._core,{conversationID:M,nextReqMessageID:T}=s,P=yh;if(M==="@TIM#SYSTEM")return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const W=this._getAvailableLocalMessagesCount({conversationID:M,nextReqMessageID:T});if(this._needFetchHistoryMessageList({conversationID:M,availableLocalMessagesCount:W,targetCount:P})){let iA=null;if(M.startsWith(E)?iA=yield n.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:Number(T),count:P,direction:g.FORWARD,shouldMarkCompleted:!0}):M.startsWith(I)&&(iA=yield n.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,messageID:T,count:P,direction:g.FORWARD,shouldMarkCompleted:!0})),iA){const{nextReqMessageIDFromServer:EA,hasNoMoreHistoryMessage:RA,messageList:kA}=iA,xA=n.messageDataHandler.prependLocalMessageList({messageList:kA,conversationID:M});(function(re){const{appStore:ne,message:_i,OuterConstant:Ti}=cl.core,kt=ne.conversationStore.getConversation(re),Ni=_i.messageDataHandler.getLocalMessageList(re);if(!kt||Ni.length===0||re===Ti.CONV_SYSTEM)return;const cs=[];for(let Bt=0;BtUA.isRevoked).length;Se=cs.length-kt.unreadCount-Bt}else Se=cs.length-kt.unreadCount;for(let Bt=0;Btre.isRevoked);yield $v(SA),D.emitInnerEvent(m,xA);const OA={nextReqMessageID:RA?"":String(EA),messageList:LA,isCompleted:RA},JA=LA.map(re=>re.sequence);return{code:0,data:OA,successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W} sequenceList: ${JSON.stringify(JA)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:M,nextReqMessageID:T,count:P}),successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W}}`}}}catch(n){const{code:g,message:I}=n||{};throw new this._core.helper.ChatError({code:g,message:I,moreMessage:`options: ${this._core.utils.safeStringify(s)}`})}})}getMessageListHopping(s){return mA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:{Direction:I,CONV_C2C:E,CONV_GROUP:m},utils:{safeStringify:D}}=this._core,{conversationID:M,sequence:T,time:P,direction:W=I.FORWARD}=s,{utils:{isEmpty:iA},message:EA,notificationCenter:RA,InnerEvent:{HISTORY_MESSAGE_FETCHED:kA}}=this._core;if(![I.BACKWARD,I.FORWARD].includes(W))throw new this._core.helper.ChatError({message:"direction must be 0 or 1",moreMessage:`options: ${D(s)}`});let{count:xA=yh}=s;xA=xA>yh?yh:xA;let LA=null;if(M.startsWith(m)){if(LA=yield EA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:T,count:xA,direction:W}),LA){const{nextReqMessageIDFromServer:SA,hasNoMoreHistoryMessage:OA,messageList:JA,invisibleSequenceList:re}=LA;if(this._core.message.messageDataHandler.storeSparseMessageList(JA),RA.emitInnerEvent(kA,JA),W===I.FORWARD){const ne=OA&&SA<1;return{code:0,data:{messageList:JA,isCompleted:ne,nextMessageSeq:ne?"":SA}}}if(W===I.BACKWARD){if(iA(JA)&&iA(re))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const ne=((n=JA?.[JA.length-1])===null||n===void 0?void 0:n.sequence)||0,_i=((g=re?.[re.length-1])===null||g===void 0?void 0:g.sequence)||0;return{code:0,data:{messageList:JA.filter(Ti=>Ti.sequence>=T),isCompleted:!OA,nextMessageSeq:OA?Math.max(ne,_i)+1:""}}}return{code:0,data:LA}}}else if(M.startsWith(E)&&(LA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,count:xA+1,time:P,direction:W}),LA)){const{messageList:SA,lastMessageTime:OA,hasNoMoreHistoryMessage:JA}=LA;return RA.emitInnerEvent(kA,SA),JA||(W===I.FORWARD?SA.shift():SA.pop()),EA.messageDataHandler.storeSparseMessageList(SA),yield HQ({messageList:SA,conversationID:M}),{code:0,data:{messageList:SA,isCompleted:JA,nextMessageTime:JA?"":OA}}}})}clearHistoryMessage(s){return mA(this,void 0,void 0,function*(){var n;const{appStore:g,common:{ChatError:I,getCurrentUserID:E},OuterConstant:{CONV_C2C:m,CONV_GROUP:D},apiMap:M,message:T}=this._core,P=g.conversationStore.getConversation(s);if(!P)throw new I({code:JQ});const W={fromAccount:E()},{type:iA}=P;iA===m?(W.type=SD,W.toAccount=s.replace(m,"")):iA===D&&(W.type=AR,W.toGroupID=s.replace(D,""));try{return yield(n=M?.setMessageRead)===null||n===void 0?void 0:n.call(M,{conversationID:s}),(yield function(RA){return mA(this,void 0,void 0,function*(){const{fromAccount:kA,type:xA,toAccount:LA,toGroupID:SA}=RA,OA={From_Account:kA,Type:xA,To_Account:LA,ToGroupid:SA};return cl.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:OA})})}(W))&&(T.messageDataHandler.deleteConversationMessageList(s),T.messageHistory.completedHistoryConversations.delete(s),T.messageHistory.clearHistoryMessageListFetchAnchors(s),this._updateConversationLastMessage(s)),{code:0,data:{conversationID:s},successLog:{message:`convID:${s}`}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:RA,moreMessage:`convID:${s}`})}})}_updateConversationLastMessage(s){const{appStore:n}=this._core;n.conversationStore.updateConversation(s,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:s,nextReqMessageID:n}){const{OuterConstant:{CONV_C2C:g,CONV_GROUP:I}}=this._core,E=this._core.message.messageDataHandler.getLocalMessageList(s),{length:m}=E;if(!n)return m;let D=-1;return s?.startsWith(g)?D=E.findIndex(M=>M.ID===n):s?.startsWith(I)&&(D=E.findIndex(M=>n.includes("-")?M.ID===n:String(M.sequence)===n)),D===-1?0:D}_needFetchHistoryMessageList({conversationID:s,availableLocalMessagesCount:n,targetCount:g}){const{message:I}=this._core;return nn.startsWith(E)?EA.ID===g:String(EA.sequence)===g),W=iA>I?iA-I:0,T=iA):W=M>I?M-I:0,P.messageList=D.slice(W,iA),P.isCompleted=T<=I&&m.messageHistory.completedHistoryConversations.has(n),P.isCompleted?P.nextReqMessageID="":P.nextReqMessageID=this._generateNextReqMessageID({conversationID:n,targetIndex:W}),n.startsWith(E)&&(yield Xv(n),yield HQ({messageList:P.messageList,conversationID:n})),P})}_generateNextReqMessageID({conversationID:s,targetIndex:n}){const g=this._core.message.messageDataHandler.getLocalMessageList(s);return s.startsWith("C2C")?g[n].ID:String(g[n].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}},QB=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(s){this._core=s;const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:I,InnerEvent:E}}=s;n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,I.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,I.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),s.notificationCenter.subscribeInnerEvent(E.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(s){const{conversationList:n}=s?.result||{},{OuterConstant:g,utils:{isArray:I}}=this._core;if(I(n)){const E=n.filter(m=>m.type===g.CONV_GROUP&&m.groupProfile.type!==g.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(E)}}_recoverGroupHistoryMessage(s){return mA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=[],I=[];return yield Promise.all(s?.map(E=>mA(this,void 0,void 0,function*(){const{groupProfile:{groupID:m}={},lastMessage:{lastSequence:D}={}}=E,M=`${n.CONV_GROUP}${m}`;let T=this._getLocalLastMessageSequence(M);this._shouldRecoverHistory({localLastMessageSequence:T,serverLastMessageSequence:D})&&(yield this._recoverGroupHistoryForConversation({conversationID:M,localLastMessageSequence:T,serverLastMessageSequence:D,groupTipList:I})),g.push(M.replace(n.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:g,groupTipList:I}})}_recoverGroupHistoryForConversation(s){return mA(this,arguments,void 0,function*({conversationID:n,localLastMessageSequence:g,serverLastMessageSequence:I,groupTipList:E}){try{const{utils:{isArray:m,isObject:D,isEmpty:M},OuterEvent:T,OuterConstant:P,notificationCenter:W,message:iA,appStore:EA,common:{getMessagePreviewText:RA,buildLastMessage:kA}}=this._core,xA=I-g,LA=Math.min(20,xA),SA={},OA=yield iA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:n,sequence:g+LA,direction:P.Direction.FORWARD,count:LA}),{nextReqMessageIDFromServer:JA,hasNoMoreHistoryMessage:re,messageList:ne,serverGroupTipList:_i}=OA;m(_i)&&E.push(..._i);const Ti=re&&JA<0,kt=[];if(m(ne)&&(ne.forEach(Ni=>{iA.messageReceiver.groupMessageReceiver.updateMessageProfile(Ni),Ni.from===P.CONV_SYSTEM&&(Ni.isSystemMessage=!1),iA.messageDataHandler.storeConversationMessage(Ni)&&!M(Ni.payload)&&(kt.push(Ni),Ni._isExcludedFromLastMessage||(SA.lastMessage=kA(Ni)))}),kt.length>0&&W.emitOuterEvent(T.MESSAGE_RECEIVED,{name:T.MESSAGE_RECEIVED,data:kt})),!Ti&&ne.length>0){const Ni=ne[ne.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:n,localLastMessageSequence:Ni,serverLastMessageSequence:I,groupTipList:E})}D(SA.lastMessage)&&(SA.lastMessage.messageForShow=RA(SA.lastMessage.type,SA.lastMessage.payload),EA.conversationStore.updateConversation(n,SA))}catch(m){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${n}`,{error:m})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:s}=this._core,n=s.messageDataHandler.getContinuousMessagesByConversation();for(const[g,I]of n){const E=Array.from(I.values());if(E?.length>0){const m=E[E.length-1];g.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(g,m.time):g.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(g,m.sequence)}}}_getLocalLastMessageSequence(s){const{message:n}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(s))return this._lastMessageSequenceMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),I=g[g.length-1];return I?.sequence}_shouldRecoverHistory(s){const{localLastMessageSequence:n,serverLastMessageSequence:g}=s;if(typeof n!="number"||typeof g!="number")return!1;const I=g-n;return g!==0&&n>0&&I>=eR&&I{m.type===g.CONV_C2C&&E.push(m)}),this._recoverC2CHistoryMessage(E)}}_recoverC2CHistoryMessage(s){return mA(this,void 0,void 0,function*(){yield Promise.all(s?.map(n=>mA(this,void 0,void 0,function*(){const{conversationID:g,lastMessage:{lastTime:I}={}}=n,E=this._getLocalLastMessageTime(g);this._shouldRecoverC2CHistory({localLastMessageTime:E,serverLastMessageTime:I})&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:E,serverLastMessageTime:I}))})))})}_shouldRecoverC2CHistory(s){const{localLastMessageTime:n,serverLastMessageTime:g}=s,I=g-n;return n>0&&I>=1&&I<=600}_recoverHistoryForC2CConversation(s){return mA(this,void 0,void 0,function*(){var n;const{conversationID:g,localLastMessageTime:I,serverLastMessageTime:E}=s,{utils:{isArray:m,isObject:D,isEmpty:M,safeStringify:T},OuterEvent:P,OuterConstant:W,notificationCenter:iA,message:EA,appStore:RA,common:{getMessagePreviewText:kA,buildLastMessage:xA}}=this._core;try{const LA={},SA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:g,direction:W.Direction.BACKWARD,time:I,count:20});if(M(SA))return;const{hasNoMoreHistoryMessage:OA,messageList:JA}=SA,re=[];m(JA)&&(JA.forEach(_i=>{EA.messageDataHandler.storeConversationMessage(_i)&&!M(_i.payload)&&(re.push(_i),_i._isExcludedFromLastMessage||(LA.lastMessage=xA(_i)))}),re.length>0&&iA.emitOuterEvent(P.MESSAGE_RECEIVED,{name:P.MESSAGE_RECEIVED,data:re}));const ne=(n=JA[JA.length-1])===null||n===void 0?void 0:n.time;!OA&&ne>E&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:ne,serverLastMessageTime:E})),D(LA.lastMessage)&&(LA.lastMessage.messageForShow=kA(LA.lastMessage.type,LA.lastMessage.payload),RA.conversationStore.updateConversation(g,LA))}catch(LA){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${g} error: ${T(LA)}`)}})}_getLocalLastMessageTime(s){const{message:n}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(s))return this._lastMessageTimeMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),I=g[g.length-1];return I?.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}},pB=new class{constructor(){this.name="HistoryMessage"}install(s){this._core=s,cl.init(s),tR.init(s),QB.init(s),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this.dispose,this),QB.dispose()}_reset(){QB.reset()}},MD=new class{init(s){this.core=s}},mC=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(s){const{helper:{registerExperimentalAPI:n}}=s;this._core=s,n("reportModalView",this),n("reportTUIFeatureUsage",this),n("reportRoomEngineEvent",this)}reportModalView(s){const{ssoLog:n,utils:{safeStringify:g,isString:I}}=this._core;try{if(!I(s))throw new Error("reportModalView data is not a string");n.createSSOLogData({method:"reportModalView",message:s,eventType:30}).end(!0)}catch(E){n.debug(`reportModalView Report failed: ${g(E)}`)}}reportTUIFeatureUsage(s){const{ssoLog:n,utils:{safeStringify:g,isEmpty:I}}=this._core,{atomicStoreID:E}=s;try{I(E)||this._reportedAtomicStoreIDs.has(E)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${s.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:E}),this._reportedAtomicStoreIDs.add(E))}catch(m){n.debug(`reportTUIFeatureUsage Report failed: ${g(m)}`)}}reportRoomEngineEvent(s){const{utils:{safeStringify:n},ssoLog:g}=this._core;try{g.debug(`reportRoomEngineEvent Report: ${n(s)}`);const{eventId:I,eventCode:E,eventResult:m,eventMessage:D,moreMessage:M,extensionMessage:T}=s;g.createSSOLogData({method:T,code:I,message:D,eventType:30,costTime:E,uiPlatform:m,moreMessage:M}).end(!0)}catch(I){g.debug(`reportRoomEngineEvent Report failed: ${n(I)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}},qQ=new class{constructor(){this.name="DataReport"}install(s){this._core=s;const{notificationCenter:n,InnerEvent:{LOGOUT:g,DESTROY:I}}=s;MD.init(s),mC.init(s),n.subscribeInnerEvent(g,this._reset,this),n.subscribeInnerEvent(I,this._dispose,this)}_reset(){mC.reset()}_dispose(){const{notificationCenter:s,InnerEvent:{LOGOUT:n,DESTROY:g}}=this._core;s.unSubscribeInnerEvent(n,this._reset,this),s.unSubscribeInnerEvent(g,this._dispose,this),mC.dispose()}};let Vm=sr.STANDARD,mB=[];Vm=sr.STANDARD,mB=[sh,nC,rC,aC,Rc,ST,pB,qQ,TE,vi,jn,hT,Lm,mD,qI];function fB(s,n){const{operationType:g,memberInfoList:I,operatorInfo:E}=s||{};let m={};if(Rs(I)?Rs(E)||(m=E):g!==Tg.JOINED&&g!==Tg.KICKED&&g!==Tg.ADMIN_SET&&g!==Tg.ADMIN_CANCELED||(m=Object.assign({},I[0])),!Rs(m)){const{nick:D="",avatar:M=""}=m;n.nick=D,n.avatar=M}}const KQ=s=>({lastTime:s?.time||s?.lastTime||0,lastSequence:s?.sequence||s?.lastSequence||0,fromAccount:s?.from||s?.fromAccount||"",messageForShow:zc(s?.type,s?.payload),payload:s?.payload||null,type:s?.type||"",isRevoked:s?.isRevoked||!1,cloudCustomData:s?.cloudCustomData||"",onlineOnlyFlag:s?._onlineOnlyFlag||!1,nick:s?.nick||"",nameCard:s?.nameCard||"",version:s?.version||0,isPeerRead:s?.isPeerRead||!1,revoker:s?.revoker||null});var jQ=Object.freeze({__proto__:null,ChatError:gs,WorkflowManager:ws,buildAndSendPacket:gg,buildLastMessage:KQ,get builtInPlugins(){return mB},checkBusinessCapabilityBits:tn,deepMerge:cd,getCurrentUserID:Ar,getErrorMessage:rs,getMessagePreviewText:zc,isC2CConv:s=>l(s)&&s.slice(0,3)===ba.CONV_C2C,isCommunity:zr,isGroupConv:s=>l(s)&&s.slice(0,5)===ba.CONV_GROUP,isInternational:vl,isTopic:Wc,isUnlimitedAVChatRoom:function(){var s;return!!(!((s=me.store.get("instance"))===null||s===void 0)&&s.unlimitedAVChatRoom)},liteChatInstanceMap:Ea,registerInterceptor:Mc,registerValidateConfig:jc,requireAuth:rd,get sdkEdition(){return Vm},setGroupTipsUserInfo:fB,t:Ru,updateGroupAtInfo:(s,n)=>{const{CONV_AT_ME:g,CONV_AT_ALL:I,CONV_AT_ALL_AT_ME:E}=ko;if(function(M,T){const{CONV_AT_ME:P,CONV_AT_ALL:W,CONV_AT_ALL_AT_ME:iA}=ko,{groupID:EA,sequence:RA}=M;let kA=!1;return zr({groupID:EA})&&T.forEach(xA=>{xA.messageSequence===RA&&(xA.atTypeArray.includes(P)&&M.groupAtType.includes(W)&&(xA.atTypeArray=[iA]),xA.atTypeArray.includes(W)&&M.groupAtType.includes(P)&&(xA.atTypeArray=[iA],xA.__random=M.__random,xA.__sequence=M.__sequence),kA=!0)}),kA}(s,n))return;let m=[...s.groupAtType];m.includes(g)&&m.includes(I)&&(m=[E]);const D={from:s.from,groupID:s.groupID,topicID:s.topicID,messageSequence:s.sequence,atTypeArray:m,__random:s.__random,__sequence:s.__sequence};n.push(D)},validateAndExecute:Dr,validateParameters:aI});class tu{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return tu._instance||(tu._instance=new tu),tu._instance}static setInstance(n){tu._instance=n}installBuiltInPlugin(n){n&&this._installPlugin(n,this._builtInPlugins)}installExternalPlugin(n){n&&this._installPlugin(n,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(n,g){let I=[];I=B(n)?n:[n];const E=I.findIndex(D=>D?.name==="AVChatRoom"),m=E>-1?I.splice(E,1):[];I.forEach(D=>{this._isPluginInstalled(D.name)||(D&&vg(D.install)?(g.add(D.name),vg(D.getInstalledSubPlugins)?(m?.forEach(M=>g.add(M?.name)),D.install(dr.getInstance().exposeApiForPlugin(),m)):D.install(dr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):vg(D)?(g.add(D.name),D(dr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(n){return this._builtInPlugins.has(n)||this._externalPlugins.has(n)}_isLoggedIn(){var n;return((n=me.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}}var yB=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(s){return this._conversationMap.get(s)}updateConversation(s,n,g){const{emit:I=!0,needSort:E=!1}=g||{},m=this._conversationMap.get(s);m&&!Rs(n)&&(Object.keys(n).forEach(D=>{m[D]=n[D]}),I&&me.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED,{needSort:E}))}deleteConversation(s){this._conversationMap.has(s)&&(this._conversationMap.delete(s),me.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED))}},WQ=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(s){return this._groupMap.get(s)}updateGroup(s,n){const g=this._groupMap.get(s);g&&!Rs(n)&&Object.keys(n).forEach(I=>{g[I]=n[I]})}},zQ=new class{constructor(){this._messagesByConversation=new Map}updateMessage(s,n,g){var I;const{operation:E,updateUnreadCount:m=!0}=g,D=yo(g,["operation","updateUnreadCount"]),M=[];for(const T of n){const P=(I=this._messagesByConversation.get(s))===null||I===void 0?void 0:I.get(T);if(!P)return!1;Object.keys(D).forEach(W=>{P[W]=D[W]}),M.push(P)}return this._emitMessageStoreOperationEvent(E,{conversationID:s,messageList:M,updateUnreadCount:m}),M}getMessagesByConversation(s){var n;return[...((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(s,n){const{conversationID:g}=n;Wc(g)?me.notificationCenter.emitInnerEvent(yu[s],n):me.notificationCenter.emitInnerEvent(s,n)}},rc=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(s){return this.userProfileMap.get(s)}getFriend(s){return this.friendMap.get(s)}},vD=Object.freeze({__proto__:null,conversationStore:yB,groupStore:WQ,messageStore:zQ,userStore:rc});class dr{static getInstance(){return dr._instance||(dr._instance=new dr),dr._instance}static setInstance(n){dr._instance=n}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:me.notificationCenter.subscribeOuterEvent.bind(me.notificationCenter),off:me.notificationCenter.unSubscribeOuterEvent.bind(me.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:tu.getInstance().installExternalPlugin.bind(tu.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(n){me.ssoLog.debug("registerPlugin",n)}statKeyFeatureUsage(n){me.ssoLog.debug("statTUIKeyFeatures",n)}setLogLevel(n){me.ssoLog.debug("setLogLevel",n),me.ssoLog.setLogLevel(n)}setApplicationID(n){me.store.set("instance",{applicationID:n})}getApiMap(){return this._apiMap}setApiMap(n){this._apiMap=n}registerApi(n){const{common:{timeManager:g},utils:{safeStringify:I}}=me,{apiName:E,context:m,methodName:D=E,matcher:M}=n;this._apiHandlersMap[E]||(this._apiHandlersMap[E]=[]),this._apiHandlersMap[E].push({context:m,methodName:D,matcher:M}),this._apiMap[E]&&this._apiHandlersMap[E].length!==1||(this._apiMap[E]=(...T)=>{const P=g.getServerTimeMs();let W=0;E==="login"&&(W=4),PI.includes(E)&&me.ssoLog.debug(E,`${E} start params: ${I(T)}`),Dr(D,T);const iA=this._apiHandlersMap[E];for(const EA of iA)if(!EA.matcher||EA.matcher(T))try{const RA=EA.context[EA.methodName].bind(EA.context)(...T);return this._isPromiseLike(RA)?this._handleAsyncResult(RA,E,W,P):(this._reportApiSuccessLog({result:RA,apiName:E,eventType:W,startTime:P}),RA)}catch(RA){throw me.ssoLog.error(E,`${E} fail ${RA?.message||RA?.errorMessage})`,{error:RA,costTime:g.getServerTimeMs()-P,eventType:W,method:E}),RA}})}registerExperimentalAPI(n,g,I){const E=I||n;this._experimentalApiMap[n]=g[E].bind(g)}destroy(){return mA(this,void 0,void 0,function*(){var n,g;try{!((n=me.store.get("login"))===null||n===void 0)&&n.isLogin&&(yield this._apiMap.logout()),me.notificationCenter.emitInnerEvent(so.DESTROY)}catch(I){console.debug("destroy error: ",I)}finally{me.notificationCenter.emitOuterEvent(yr.SDK_DESTROY,{SDKAppID:(g=me.store.get("instance"))===null||g===void 0?void 0:g.sdkAppId}),Ea.clear(),tu.getInstance().clear(),ws.getInstance().destroy(),me.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:so,InnerEventSubType:me.notificationCenter.InnerEventSubType,OuterEvent:yr,OuterConstant:ko,SignalingEvent:Hc,helper:Object.assign(Object.assign(Object.assign({},me.utils),me.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:Mc,registerValidateConfig:jc,checkBusinessCapabilityBits:tn,registerWorkflowStep:ws.getInstance().registerWorkflowStep.bind(ws.getInstance()),ChatError:gs}),apiMap:this._apiMap},me),{constants:Object.assign(Object.assign({},Wa),me.constants),common:Object.assign(Object.assign(Object.assign({},jQ),me.common),{workflowManager:ws.getInstance()}),utils:me.utils,appStore:vD})}callExperimentalAPI(n,g){return me.ssoLog.debug(`callExperimentalAPI.${n} start params: ${me.utils.safeStringify(g)}`),this._experimentalApiMap[n]?this._experimentalApiMap[n](g):(me.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${n} not found, params: ${me.utils.safeStringify(g)}`),Promise.reject(new gs({code:ua.INVALID_OPERATION})))}_isPromiseLike(n){return n!==null&&typeof n=="object"&&typeof n.then=="function"}_handleAsyncResult(n,g,I,E){return n.then(m=>(this._reportApiSuccessLog({result:m,apiName:g,eventType:I,startTime:E}),m)).catch(m=>{throw me.ssoLog.error(g,`${g} fail ${m?.message||m?.errorMessage})`,{error:m,costTime:me.common.timeManager.getServerTimeMs()-E,eventType:I,method:g,startTime:E}),m})}_reportApiSuccessLog(n){let{result:g,apiName:I,startTime:E,eventType:m}=n;const{timeManager:D}=me.common,{successLog:{message:M,moreMessage:T}={message:"",moreMessage:""}}=g||{},P=D.getServerTimeMs();I==="login"&&(E+=D.getTimeOffsetWithServer()),PI.includes(I)&&me.ssoLog.info(I,`${I} success ${M} ${T}`,{costTime:P-E,eventType:m,message:M,moreMessage:T,startTime:E}),g?.successLog&&delete g.successLog}}class iR{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:n,store:g}=me;g.set("login",{isReady:!1}),dr.getInstance().registerApi({apiName:"login",context:this}),dr.getInstance().registerApi({apiName:"logout",context:this}),dr.getInstance().registerApi({apiName:"getLoginUser",context:this}),dr.getInstance().registerApi({apiName:"isReady",context:this}),dr.getInstance().registerApi({apiName:"getServerTime",context:this}),dr.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),n.subscribeInnerEvent(so.RECONNECTED,this._reLogin,this),me.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}login(n){return mA(this,void 0,void 0,function*(){var g;const{sdkEdition:I}=me.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new gs({functionName:"login",code:ua.REPEAT_LOGIN});const E=yield this._performLogin(n);this._validateAfterLogin(E),this._handleLoginSuccess(E),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const m=(g=me.channel.getSocketAdapter())===null||g===void 0?void 0:g.getId(),{appId:D,href:M}=me.store.get("instance")||{},{instanceID:T,customStatus:P}=E||{};return{code:0,data:E,successLog:{message:I,moreMessage:`socketID:${m} instanceID:${T} customStatus:${P} href: ${M} appId: ${D}`}}}catch(E){const{errorCode:m}=E;m!==ua.REPEAT_LOGIN&&(this._latestLoginAt=0);const D=new gs({functionName:"login",code:m});throw console.error(D),D}})}_reLogin(){return mA(this,void 0,void 0,function*(){var n;try{if(!this._isLoginIn())return;const g=yield vu(this._customLoginInfo);if(g){const{instanceID:I,customStatus:E}=g;me.store.set("login",{statusInstanceId:I}),ws.getInstance().executeWorkflow(Pt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:E,statusType:CE.USER_STATUS_ONLINE});const m=(n=me.channel.getSocketAdapter())===null||n===void 0?void 0:n.getId();me.ssoLog.info("reLogin",`socketId:${m} instanceId:${I}`)}}catch(g){console.warn(g)}})}logout(){return mA(this,arguments,void 0,function*(n=sa.USER_INITIATED){const{ssoLog:g}=me;g.debug("logout",`logout start logoutReason: ${n}`);try{yield this._performLogout(n),g.info("logout","logout success"),me.ssoLog.uploadSSOLogData()}catch(I){const{errorCode:E}=I;throw new gs({functionName:"logout",code:E})}finally{this.handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?Ar():""}isReady(){var n;return(n=me.store.get("login"))===null||n===void 0?void 0:n.isReady}setCustomLoginInfo(n=""){this._customLoginInfo=n}handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),ws.getInstance().reset(),me.notificationCenter.emitInnerEvent("logout")}getServerTime(){const{timeManager:n}=me.common;return n.getServerTimeMs()}_updateAndEmitSDKReady(){me.store.set("login",{isReady:!0}),setTimeout(()=>{me.notificationCenter.emitOuterEvent(yr.SDK_READY,{name:yr.SDK_READY})},1)}_updateAndEmitSDKNotReady(){me.store.set("login",{isReady:!1}),me.notificationCenter.emitOuterEvent(yr.SDK_NOT_READY,{name:yr.SDK_NOT_READY})}_validateAfterLogin(n){const g="login";if(!n)throw new gs({functionName:g,message:"login response is empty"});const{tinyID:I,a2Key:E}=n||{};if(!I)throw new gs({functionName:g,code:ua.NO_TINYID});if(!E)throw new gs({functionName:g,code:ua.NO_A2KEY})}_createRepeatLoginResponse(){var n;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:rs({code:"RepeatLogin",replacement1:(n=me.store.get("login"))===null||n===void 0?void 0:n.userId}),repeatLogin:!0}}}_performLogin(n){return mA(this,void 0,void 0,function*(){const{userID:g,userSig:I}=n;return me.store.set("login",{userId:g,userSig:I}),this._latestLoginAt=Date.now(),vu(this._customLoginInfo)})}_ensureAsyncComplete(){return mA(this,void 0,void 0,function*(){yield new Promise(n=>{setTimeout(()=>n(null),1)})})}_handleLoginSuccess(n){const{timeManager:g}=me.common,{helloInterval:I,timeStamp:E,customStatus:m,purchaseBits:D}=n,M=1e3*E;g.calculateTimeOffsetWithServer(this._latestLoginAt,M),this._helloInterval=I||120,this._updateLoginStore(n),me.user.userStatus.setCustomStatus(m),ws.getInstance().executeWorkflow(Pt.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:D}),me.common.taskScheduler.addTask({id:Gg,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(n){return function(g){return mA(this,void 0,void 0,function*(){const{logoutReason:I}=g,E="im_open_status.wslogout",m=me.common.generateProtocolData({servcmd:E,data:{wslogout_type:I,isWebUniapp:0}}),D=`${m.head.seq}${E}`;return yield me.channel.sendPacket(m,{requestId:D})})}({logoutReason:n})}_updateLoginStore(n){const{a2Key:g,tinyID:I,instanceID:E,authKey:m}=n;me.store.set("login",{a2Key:g,tinyID:I,statusInstanceId:E,authKey:m,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return mA(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const n="im_open_status.wshello",g=me.common.generateProtocolData({servcmd:n,data:{isWebUniapp:0}}),I=`${g.head.seq}${n}`;return me.channel.sendPacket(g,{requestId:I})}()}catch(n){me.ssoLog.warn("_sendOnlinePresenceRequest",` error:${n.message}`)}})}_isLoginIn(){var n;return((n=me.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){me.common.taskScheduler.removeTask(Gg),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",me.store.clear("login"),me.store.set("login",{isReady:!1}),me.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:n}=me;n.unSubscribeInnerEvent(so.RECONNECTED,this._reLogin,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}const oR={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},MT={logout:!0};class Sh{constructor(){this.loginAction=new iR,this.kickedOutHandler=new Mu,this.loginAction.init(),this.kickedOutHandler.init(),jc({auth:MT,params:oR})}}var Jr,qu,FE;(function(s){s.CONV_C2C="C2C",s.CONV_GROUP="GROUP",s.CONV_TOPIC="TOPIC",s.CONV_SYSTEM="@TIM#SYSTEM"})(Jr||(Jr={})),function(s){s.MSG_PRIORITY_HIGH="High",s.MSG_PRIORITY_NORMAL="Normal",s.MSG_PRIORITY_LOW="Low",s.MSG_PRIORITY_LOWEST="Lowest"}(qu||(qu={})),function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_IMAGE="TIMImageElem",s.MSG_AUDIO="TIMSoundElem",s.MSG_FILE="TIMFileElem",s.MSG_VIDEO="TIMVideoFileElem",s.MSG_GRP_TIP="TIMGroupTipElem",s.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",s.MSG_MERGER="TIMRelayElem"}(FE||(FE={}));const RD={1:qu.MSG_PRIORITY_HIGH,2:qu.MSG_PRIORITY_NORMAL,3:qu.MSG_PRIORITY_LOW,4:qu.MSG_PRIORITY_LOWEST},wD=0,sR=1;var Ku;(function(s){s.IN="in",s.OUT="out"})(Ku||(Ku={}));const nR=2,ZQ={};function iu(s){if(!s)return 0;if(ZQ[s]===void 0){const n=new Date,g=`3${n.getHours()}`.slice(-2),I=`0${n.getMinutes()}`.slice(-2),E=`0${n.getSeconds()}`.slice(-2);ZQ[s]=parseInt([g,I,E,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${ZQ[s]}`)}else ZQ[s]+=1;return ZQ[s]}class OE{constructor(n){this.ID="",this.random=0,this.sequence=0,this.nameCard="",this.isRead=!1,this.isPeerRead=!1,this.isDeleted=!1,this.isResend=!1,this.hasRiskContent=!1,this._onlineOnlyFlag=!1,this.atUserList=[],this._groupAtInfoList=[],this.isBroadcastMessage=!1,this.priority=qu.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:g=me.common.timeManager.getServerTimeSeconds()||0,senderTinyID:I,currentUser:E,needReadReceipt:m,isSupportExtension:D,customModerationConfigurationId:M,to:T,from:P,nick:W="",avatar:iA="",time:EA,messageControlInfo:RA,tinyID:kA,cloudCustomData:xA="",messageLifeTime:LA,messageVersion:SA=0,conversationType:OA,sequence:JA,checkResult:re=0,isPlaceMessage:ne=0,messageFlagBits:_i,receiverList:Ti,isSystemMessage:kt=!1,status:Ni=Or.SUCCESS,revokeReason:cs="",conversationSubType:Se,clientSequence:Bt,protocol:UA="JSON",revokerInfo:ii={userID:"",nick:"",avatar:""},readReceiptInfo:_s={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:Gi,groupProfile:Lr,atUserList:xi,flow:ar,isRead:wt=!1,priority:_t=qu.MSG_PRIORITY_NORMAL,onlineOnlyFlag:Wu=!1,nameCard:ln="",quoteInfo:ho}=n;var ll;this.clientTime=g,this.senderTinyID=I||kA,this.needReadReceipt=m===!0||m===1,this.isSupportExtension=D===!0||D===1,this._cmConfigID=M,this.to=T,this.nick=W,this.avatar=iA,this.protocol=UA,this.random=Gi===void 0?(ll=ll||99999999,Math.round(Math.random()*ll)):Gi,this.time=EA||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!RA?.excludedFromLastMessage,this._isExcludedFromUnreadCount=!!RA?.excludedFromUnreadCount,this.isModified=!!SA,this.cloudCustomData=xA,this.messageLifeTime=LA,this.from=P||null,this.sequence=JA||0,this.conversationType=OA||Jr.CONV_C2C,this.hasRiskContent=re>1,this.version=SA,this.isPlaceMessage=ne,this.isRevoked=ne===2||_i===8,this.isSystemMessage=kt,this.readReceiptInfo=_s,this.revokeReason=cs,this.revokerInfo=ii,this._receiverList=Ti,this.conversationSubType=Se,this.revoker=ii?.revoker||"",this.clientSequence=Bt||JA||0,this.status=Ni,this.atUserList=xi||[],this.flow=ar,this.isRead=wt,this.priority=_t,this._onlineOnlyFlag=Wu,this.nameCard=ln,this.quoteInfo=ho,this.reInitialize(E),this._initC2CReadReceiptInfo(n),this._extractGroupInfo(Lr)}getElements(){return this._elements}isOnlineMessage(){return this.messageLifeTime===0}setElement(n){Array.isArray(n)?this._elements=n:this._elements=[n],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map(n=>n.transformToServerFormat()):this._elements.transformToServerFormat():null}setRelayFlag(n){this._relayFlag=n}validateBeforeSend(){var n,g,I;return this._relayFlag?{isValid:!0}:((n=this._elements)===null||n===void 0?void 0:n.length)>0?(I=(g=this._elements[0])===null||g===void 0?void 0:g.validateBeforeSend)===null||I===void 0?void 0:I.call(g):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(n){const{readReceiptSentByPeer:g,timestamp:I=0}=n;this.conversationType===Jr.CONV_C2C&&this.needReadReceipt===!0&&(this.readReceiptInfo.isPeerRead=g===1,this.readReceiptInfo.timestamp=I)}_extractGroupInfo(n){if(!n)return;const{From_AccountNick:g,From_AccountHeadurl:I,MsgFrom_AccountExtraInfo:E,GroupType:m}=n,{NameCard:D}=E||{};typeof g=="string"&&(this.nick=g),typeof I=="string"&&(this.avatar=I),typeof D=="string"&&(this.nameCard=D),this.conversationSubType=m}reInitialize(n){n===this.from&&(this.isRead=!0),this._initSequence(n),this._concatConversationID(n),this.generateMessageID()}_concatConversationID(n){let g="";const I=this.conversationType;I!==Jr.CONV_SYSTEM?(g=I===Jr.CONV_C2C?n===this.from?this.to:this.from:this.to,this.conversationID=g?`${I}${g}`:null):this.conversationID=Jr.CONV_SYSTEM}_initSequence(n){this.clientSequence===0&&n&&(this.clientSequence=iu(n)),this.sequence===0&&this.conversationType===Jr.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===Jr.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(n){this.isRead=n}}class Sd{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Data:I,Ext:E,Desc:m}=g;return new Sd({data:I,description:m,extension:E})}constructor(n){this.type=FE.MSG_CUSTOM;const{data:g="",description:I="",extension:E=""}=n;this.content={data:g,description:I,extension:E}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{data:E,description:m,extension:D}=I;return{MsgType:this.type,MsgContent:{Data:E,Ext:D,Desc:m}}}validateBeforeSend(){const{isEmpty:n}=me.utils,g=[this.content.data,this.content.description,this.content.extension].some(I=>!n(I));return{isValid:g,error:g?null:{message:"content can not be empty"}}}}class Md{static parseServerPushElement(n){const{MsgContent:g={Text:""}}=n,{Text:I}=g;return new Md({text:I})}constructor(n){this.type=wg.MSG_TEXT,this.content={text:n.text||""}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.text)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},I=g?this.payload:this.content,{text:E}=I;return{MsgType:this.type,MsgContent:{Text:E}}}}var Jm=new class{constructor(){this._elementClassMap={[FE.MSG_CUSTOM]:Sd,[FE.MSG_TEXT]:Md}}init(){dr.getInstance().registerApi({apiName:"createCustomMessage",context:this}),dr.getInstance().registerApi({apiName:"createTextMessage",context:this})}registerElementClass(s,n){var g;(g=n).prototype!==void 0&&"constructor"in g.prototype&&(this._elementClassMap[s]=n)}getElementClass(s){return this._elementClassMap[s]}createMessage(s){const{from:n,flow:g=Ku.OUT}=s,{userId:I}=me.store.get("login")||{};this._isSendByCurrentInstance({from:n,flow:g,currentUser:I})?this._updateWithSenderInfo(s):this._isMultiEndpointSyncMessage({from:n,flow:g,currentUser:I})&&(s.flow=Ku.OUT);const E=Object.assign(Object.assign({},s),{currentUser:I});return new OE(E)}createCustomMessage(s){const n=Ar(),g=this.createMessage(Object.assign(Object.assign({},s),{from:n})),I=this._elementClassMap[FE.MSG_CUSTOM];if(!g)return null;if(I){const E=new I(s.payload);g.setElement(E)}return g}createTextMessage(s){var n;if(!s)return null;const g=typeof s.payload=="string"?s.payload:((n=s?.payload)===null||n===void 0?void 0:n.text)||"",I=new Md({text:g}),E=Ar(),m=me.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(I),m}_updateWithSenderInfo(s){var n,g;const{nick:I,avatar:E,conversationType:m,to:D}=s,{userId:M,tinyID:T}=me.store.get("login")||{},P=rc.getUserProfile(M);return s.nick=I||P?.nick||"",s.avatar=E||P?.avatar||"",s.tinyID=s.tinyID||T||"",s.from=M,s.status=Or.UNSENT,s.flow=Ku.OUT,m===ba.CONV_GROUP&&(s.nameCard=(g=(n=WQ.getGroup(D))===null||n===void 0?void 0:n.selfInfo)===null||g===void 0?void 0:g.nameCard),s}_isMultiEndpointSyncMessage(s){const{from:n,flow:g,currentUser:I}=s;return n===I&&g===Ku.IN}_isSendByCurrentInstance(s){const{from:n,flow:g,currentUser:I}=s;return n===I&&g===Ku.OUT}};const rR={PushFlag:0,Title:"",Desc:"",Ext:"",ApnsInfo:{Sound:"",BadgeMode:0,IsVoipPush:void 0,Image:"",InterruptionLevel:"active",ContentAvailable:0},AndroidInfo:{Sound:"",XiaoMiChannelID:"",OPPOChannelID:"",GoogleChannelID:"",VIVOClassification:1,VIVOCategory:"",HuaWeiCategory:"",OPPOCategory:"",HuaWeiImage:"",HonorImage:"",GoogleImage:"",HonorImportance:"",MeizuNotifyType:void 0}},vd={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},_D={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function aR(s,n){return Object.keys(n).forEach(g=>{const{range:I,defaultValue:E}=n[g];s[g]=I.includes(s[g])?s[g]:E}),s}function XQ(s){const n=s.lastIndexOf(".");return n===-1?s:s.slice(0,n)}function gR(s){const{androidInfo:n={},androidOPPOChannelID:g=""}=s,I=n.OPPOChannelID||g,E=aR(n,vd),{sound:m="",FCMChannelID:D=""}=E,M=yo(E,["sound","FCMChannelID"]);return Object.assign(Object.assign({},M),{Sound:XQ(m),OPPOChannelID:I,GoogleChannelID:D})}function cR(s){const{apnsInfo:n={},ignoreIOSBadge:g=!1,disableVoipPush:I}=s,E=aR(n,_D),{ignoreIOSBadge:m,disableVoipPush:D,enableIOSBackgroundNotification:M}=E,T=yo(E,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),P=m===!0||g===!0?1:0;let W;return r(I)||(W=I===!1?1:0),r(D)||(W=D===!1?1:0),Object.assign(Object.assign({},T),{BadgeMode:P,IsVoipPush:W,ContentAvailable:M?1:0})}function TD(s){return me.utils.isPlainObject(s)?{PushFlag:s.disablePush===!0?1:0,Title:s.title||"",Desc:s.description||"",Ext:s.extension||"",ApnsInfo:cR(s),AndroidInfo:gR(s)}:rR}function Hm(s){const{From_AccountHeadurl:n,From_AccountNick:g,IsNeedReadReceipt:I,IsPeerRead:E,IsSyncMsg:m,MsgBody:D,MsgClientTime:M,MsgLifeTime:T,MsgRandom:P,MsgSeq:W,MsgTimeStamp:iA,SendMsgControl:EA,SupportMessageExtension:RA,TinyId:kA,MsgCheckResult:xA,CloudCustomData:LA,MsgVersion:SA,MsgFlagBits:OA,RevokerInfo:JA,InnerSdkCustomData:re}=s;let ne,{From_Account:_i,To_Account:Ti}=s;if(m===1){const kt=Ti;Ti=_i,_i=kt}if(JA){const{Reason:kt,Revoker_Account:Ni,Revoker_FromUin:cs}=JA;ne={reason:kt,revoker:Ni,revokerFromUin:cs,userID:Ni}}return{from:_i,avatar:n,nick:g,needReadReceipt:I===1,isSyncMessage:m,clientTime:M,messageLifeTime:T,random:P,sequence:W,time:iA,messageControlInfo:{excludedFromLastMessage:EA?.NoLastMsg===1,excludedFromUnreadCount:EA?.NoUnread===1},isSupportExtension:RA,to:Ti,tinyID:kA,checkResult:xA,cloudCustomData:LA,revokerInfo:ne,messageVersion:SA,messageFlagBits:OA,readReceiptSentByPeer:E,elements:fC(D),onlineOnlyFlag:T===0,quoteInfo:$Q(re)}}function qm(s){const{From_Account:n,MsgBody:g,MsgClientTime:I,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,To_Account:M,MsgVersion:T,CloudCustomData:P,MsgCheckResult:W}=s;return{from:n,clientTime:I,random:E,sequence:m,time:D,to:M,elements:fC(g),messageVersion:T,cloudCustomData:P,checkResult:W}}function ND(s){const{ClientSeq:n,From_Account:g,GroupInfo:I,MsgBody:E,MsgClientTime:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,SendMsgControl:P,SupportMessageExtension:W,TinyId:iA,CloudCustomData:EA,MsgVersion:RA,MsgCheckResult:kA,NeedReadReceipt:xA,IsPlaceMsg:LA,RevokerInfo:SA,GroupAtInfo:OA,OnlineOnlyFlag:JA,InnerSdkCustomData:re}=s;let ne,_i=qu.MSG_PRIORITY_NORMAL;if(Object.keys(RD).includes(String(s.MsgPriority))&&(_i=RD[s.MsgPriority]),SA){const{Reason:kt,Revoker_Account:Ni,Revoker_FromUin:cs}=SA;ne={reason:kt,revoker:Ni,revokerFromUin:cs,userID:Ni}}const Ti=function(kt){const Ni=[];return Array.isArray(kt)&&kt.forEach(cs=>{cs.GroupAtAllFlag===wD?Ni.push(cs.GroupAt_Account):cs.GroupAtAllFlag===sR&&Ni.push(ko.MSG_AT_ALL)}),Ni}(OA);return{clientSequence:n,from:g,groupProfile:I,clientTime:m,priority:_i,random:D,sequence:M,time:T,messageControlInfo:{excludedFromLastMessage:P?.NoLastMsg===1,excludedFromUnreadCount:P?.NoUnread===1},isSupportExtension:W,tinyID:iA,cloudCustomData:EA,messageVersion:RA,checkResult:kA,needReadReceipt:xA,isPlaceMessage:LA,revokerInfo:ne,atUserList:Ti,elements:fC(E),to:vT(s),onlineOnlyFlag:JA===1,quoteInfo:$Q(re)}}function vT(s){const{utils:{isEmpty:n},constants:{IS_TOPIC_MESSAGE:g}}=me,{ToGroupId:I,GroupInfo:{MillionGroupFlag:E=0,TopicId:m}={}}=s;return E!==g||n(m)?I:m}function fC(s){if(!s)return null;if(Array.isArray(s))return s.map(g=>{const I=me.message.messageFactory.getElementClass(g.MsgType);return I?.parseServerPushElement(g)});const n=me.message.messageFactory.getElementClass(s.MsgType);return n?.parseServerPushElement(s)}function GD(s){const{From_Account:n,MsgBody:g,MsgClientTime:I,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,GroupId:M,TopicId:T,MsgVersion:P,CloudCustomData:W,MsgCheckResult:iA}=s;return{from:n,clientTime:I,random:E,sequence:m,time:D,groupID:M,topicID:T,elements:fC(g),messageVersion:P,cloudCustomData:W,checkResult:iA}}function $Q(s){const{utils:{isString:n,safeStringify:g},ssoLog:I}=me;if(!n(s))return null;try{const{messageID:E,messageTime:m,messageSequence:D}=JSON.parse(s).businessQuote;return{msgID:E,messageTime:m,messageSequence:D}}catch(E){return I.debug("_parseServerQuoteInfo",g(E)),null}}function Ap({conversationUpdateFields:s,message:n}){const{conversationID:g,conversationType:I,conversationSubType:E,flow:m,_isExcludedFromUnreadCount:D,_isExcludedFromLastMessage:M}=n,T=M?"":KQ(n),P=!D&&m===Ku.IN;s.has(g)?(s.get(g).lastMessage=T,P&&s.get(g).unreadCount++):s.set(g,{conversationID:g,type:I,subType:E,unreadCount:P?1:0,lastMessage:T})}function DB(s){return s.filter(n=>{const g=!Rs(n?._elements),I=n?.isPlaceMessage===1;return g||me.ssoLog.error("emptyMessageBody",`from:${n.from} to:${n.to} sequence:${n.sequence}`),g&&!I})}function SB(s){const{messageDataHandler:n}=me.message;return!n.isInMessageList(s)&&!n.isMessageSentByCurrentInstance(s)}var lR=Object.freeze({__proto__:null,autoIncrementIndex:iu,createAndroidPushInfo:gR,createApnsPushInfo:cR,createOfflinePushInfo:TD,filterValidMessages:DB,getAndroidSoundName:XQ,parseServerGroupMessage:ND,parseServerPushC2CModifyMessage:qm,parseServerPushGroupModifyMessage:GD,parseServerPushMessage:Hm,parseServerPushMessageElement:fC,shouldStoreMessage:SB,updateConversationFields:Ap});const{isPlainObject:IR}=me.utils;function ep(s,n={}){const{onlineUserOnly:g,messageControlInfo:I}=n;let{offlinePushInfo:E}=n;s.conversationType===Jr.CONV_C2C&&g===!0&&(E?E.disablePush=!0:E={disablePush:!0});let m="";typeof s.cloudCustomData=="string"&&s.cloudCustomData.length>0&&(m=s.cloudCustomData);const D=[];if(I&&IR(I)){const{excludedFromUnreadCount:M,excludedFromLastMessage:T,excludedFromContentModeration:P}=I;M===!0&&D.push("NoUnread"),T===!0&&D.push("NoLastMsg"),P===!0&&D.push("NoMsgCheck")}return{onlineUserOnly:g,cloudCustomData:m,messageControlInfo:D,offlinePushInfo:E}}function bD(s){const{webhookInfo:{disableCloudMessagePreHook:n=!1,disableCloudMessagePostHook:g=!1}={}}=s||{};if(!n&&!g)return;const I=[];return n&&I.push("ForbidBeforeSendMsgCallback"),g&&I.push("ForbidAfterSendMsgCallback"),I}function Mh(s,n){return mA(this,void 0,void 0,function*(){const g=s.conversationType===Jr.CONV_GROUP?function(E,m){var D;const M=ep(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));let RA;return B(E._receiverList)&&E._receiverList.length>0&&(RA=E._receiverList,E._receiverList.length>50&&(RA=E._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:(D=me.store.get("login"))===null||D===void 0?void 0:D.userId,GroupId:E.to,MsgBody:EA,CloudCustomData:P,Random:E.random,MsgPriority:E.priority,ClientSeq:E.clientSequence,GroupAtInfo:E._groupAtInfoList,OnlineOnlyFlag:T?1:0,MsgClientTime:E.clientTime,OfflinePushInfo:TD(iA),SendMsgControl:T?void 0:W,NeedReadReceipt:E.needReadReceipt===!0?1:0,To_Account:RA,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,ForbidCallbackControl:bD(m),InnerSdkCustomData:vB(E)}}}(s,n):function(E,m){var D;const M=ep(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=T===!0?0:void 0,RA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:(D=me.store.get("login"))===null||D===void 0?void 0:D.userId,To_Account:E.to,MsgBody:RA,CloudCustomData:P,MsgSeq:E.sequence,MsgRandom:E.random,MsgLifeTime:EA,From_AccountNick:E.nick,From_AccountHeadurl:E.avatar,SendMsgControl:EA!==0?W:void 0,MsgClientTime:E.clientTime,IsNeedReadReceipt:E.needReadReceipt===!0?1:0,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,OfflinePushInfo:TD(iA),ForbidCallbackControl:bD(m),InnerSdkCustomData:vB(E)}}}(s,n),I=yield gg(g);return I?{time:I.MsgTime,messageDropReason:I.MsgDropReason,sequence:I.MsgSeq}:null})}function vh(s){return mA(this,void 0,void 0,function*(){const{from:n,to:g,version:I=0,sequence:E,random:m,time:D,type:M,cloudCustomData:T}=s,P={From_Account:n,To_Account:g,MsgVersion:I,MsgSeq:E,MsgRandom:m,MsgTime:D,MsgType:M,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:T},W=yield gg({servcmd:"openim.modify_c2c_msg",data:P});if(W){const{MsgBody:iA,MsgVersion:EA,CloudCustomData:RA}=W;return{elements:fC(iA),messageVersion:EA,cloudCustomData:RA}}})}function MB(s){return mA(this,void 0,void 0,function*(){const{to:n,version:g=0,sequence:I,cloudCustomData:E}=s,m={GroupId:n,MsgVersion:g,MsgSeq:I,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:E},D=yield gg({servcmd:"openim.modify_group_msg",data:m});if(D){const{MsgBody:M,MsgVersion:T,CloudCustomData:P}=D;return{elements:fC(M),messageVersion:T,cloudCustomData:P}}})}function Rh(s){return mA(this,void 0,void 0,function*(){const{groupID:n,count:g,messageSequence:I,messageSequenceList:E,getType:m}=s,D={GroupId:n,ReqMsgNumber:g,WithRecalledMsg:1,Version:1,GetType:m};return I&&(D.ReqMsgSeq=I),B(E)&&E.length>0&&(D.ReqMsgSeqList=E),yield gg({servcmd:"group_open_http_svc.group_msg_get",data:D})})}function Km(s){return mA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:I,messageKey:E,direction:m}=s;return gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g,WithRecalledMsg:1,LastMsgTime:I,MsgKey:E,GetDirection:m}})})}function vB(s){if(me.utils.isObject(s.quoteInfo)){const{msgID:n,messageSequence:g,messageTime:I}=s.quoteInfo;return JSON.stringify({businessQuote:{messageID:n,messageSequence:g,messageTime:I}})}}var kD=Object.freeze({__proto__:null,createMessagePackOptions:ep,generateForbidCallbackControl:bD,getC2CRoamingMessagesByAnchor:Km,getGroupRoamingMessagesByAnchor:Rh,getRoamingMessages:function(s){return mA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:I,messageKey:E}=s;return(yield gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g||15,LastMsgTime:I||0,MsgKey:E,GetDirection:0,WithRecalledMsg:1}}))||[]})},modifyC2CMessage:vh,modifyGroupMessage:MB,sendMessage:Mh});const{isPlainObject:RT}=me.utils,{MSG_AUDIO:LD,MSG_FILE:UD,MSG_IMAGE:uR,MSG_VIDEO:ER,MSG_MERGER:dR}=ko;class jm{constructor(){this._sendProtocolMap=new Map}init(){dr.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:n=>![LD,UD,uR,ER,dR].includes(n[0].type)})}registerSendProtocol(n,g,I){this._sendProtocolMap.set(n,g.bind(I))}sendMessage(n,g){return mA(this,void 0,void 0,function*(){const{TOTAL_COUNT:I,SEND_COST:E,SUCCESS_COUNT:m,FAILED_COUNT:D}=nr;if(!(n instanceof OE))throw new gs({code:ua.MSG_INSTANCE_REQUIRED});const M=n.validateBeforeSend();if(!M.isValid){const{code:W,message:iA=""}=M.error||{};throw new gs({code:W,message:iA})}this._reportMessageSendQuality({name:I,message:n});let T=!1;const{messageDataHandler:P}=me.message||{};try{const{messageControlInfo:W}=g||{};let iA=null;P.addRandomOfSentMessage(n.random);const EA=Date.now(),RA=this._getSendProtocol(n);if(n.conversationType===Jr.CONV_C2C?(T=g?.onlineUserOnly===!0,iA=yield RA(n,g)):n.conversationType===Jr.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(n),iA=yield RA(n,g)),iA){const{messageDropReason:kA,sequence:xA,time:LA}=iA;if(this._updateNickAndAvatarOfSentMessageByMe(n),kA&&this._logRateLimitInfo(n,xA,kA),this._reportMessageSendQuality({name:m,message:n}),this._reportMessageSendQuality({name:E,message:n,startTs:EA}),n.isResend===!0){const SA=P.findMessage(n.ID);SA&&(me.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${SA.ID}`),P.deleteConversationMessage(SA))}return n.status=Or.SUCCESS,n.time=LA,n.conversationType===Jr.CONV_GROUP&&(n.sequence=xA),T?n._onlineOnlyFlag=!0:(P.storeConversationMessage(n),this._applySentMessageControlInfo(n,W),this._emitOnlineMessageSent(n)),n.type===wg.MSG_STREAM?{code:0,data:{message:n,streamMessageID:iA.streamMessageID}}:{code:0,data:{message:n}}}}catch(W){n.status=Or.FAIL,P.removeRandomOfSentMessage(n.random);let{errorCode:iA}=W||{},EA=W?.errorInfo||W?.message||"";throw this._hasRiskContent(iA)&&(n.hasRiskContent=!0),T||this._isRejectedByRestApi(iA)||P.storeConversationMessage(n),this._reportMessageSendQuality({name:D,message:n,error:W}),new gs({code:iA,message:EA,data:{message:n},moreMessage:`type:${n.type} from:${n.from} to:${n.to}`})}})}_hasRiskContent(n){return n===80001||n===80004}_isRejectedByRestApi(n){return n>=10100&&n<=10200||n>=120001&&n<=13e4}_emitOnlineMessageSent(n){const g=n._isExcludedFromLastMessage?"":n,{conversationID:I,conversationType:E}=n,m=Wc(I)?so.TOPIC_NEW_MESSAGE:so.NEW_MESSAGE;me.notificationCenter.emitInnerEvent(m,{result:{conversationUpdateFieldList:[{conversationID:I,type:E,message:n,lastMessage:g,unreadCount:0}]}})}_applySentMessageControlInfo(n,g){g&&RT(g)&&(g.excludedFromLastMessage===!0&&(n._isExcludedFromLastMessage=!0),g.excludedFromUnreadCount===!0&&(n._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(n,g,I){const E=`from:${n.from} to:${n.to} sequence:${g} messageDropReason:${I}`;me.ssoLog.warn("messageDropReason",E)}_updateNickAndAvatarOfSentMessageByMe(n){const{messageDataHandler:g}=me.message||{};let I=!1;const{conversationID:E}=n,m=g.getLatestMsgSentByMe(E);if(m){const{nick:D,avatar:M}=m;D===n.nick&&M===n.avatar||(I=!0),I&&g.updateNickAndAvatarOfSentMessage({conversationID:E,latestNick:n.nick,latestAvatar:n.avatar,isSentByMe:!0})}}_validateBeforeSendGroupMessage(n){return mA(this,void 0,void 0,function*(){var g,I,E;const{to:m,from:D}=n;let M=m,T=WQ.getGroup(M);if(zr({groupID:M})&&T?.isSupportTopic)throw new gs({code:ua.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(Wc(m)&&([M]=m.split(oa.TOPIC),T=WQ.getGroup(M)),!T&&typeof((g=dr.getInstance().getApiMap())===null||g===void 0?void 0:g.getGroupProfile)=="function"){const P=yield dr.getInstance().getApiMap().getGroupProfile({groupID:M});if(((E=(I=P?.data)===null||I===void 0?void 0:I.group)===null||E===void 0?void 0:E.type)===ko.GRP_AVCHATROOM){const W=rs({code:ua.MSG_SEND_FAIL_NOT_IN_AV,replacement1:D,replacement2:M});throw new gs({code:ua.MSG_SEND_FAIL_NOT_IN_AV,message:W})}}return!0})}_reportMessageSendQuality(n){me.notificationCenter.emitInnerEvent(so.QUALITY_STAT,{label:nI.MESSAGE_SEND_SUCCESS_RATE,data:n})}_getSendProtocol(n){return this._sendProtocolMap.get(n.type)||Mh}}var wT=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){me.notificationCenter.subscribeInnerEvent(so.LOGOUT,this._reset,this),me.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}get _messagesByConversation(){return zQ.getMessages()}storeConversationMessage(s,n=!1){if(an)return!0;const{conversationID:g}=s;if(!g||(this._messagesByConversation.has(g)||this._messagesByConversation.set(g,new Map),this._shouldSkipStoreMessage(s,n)))return!1;const I=this._getUniqueIdOfMessage(s);return this._messagesByConversation.get(g).set(I,s),this._updateLatestMessageMap(s),!0}_updateLatestMessageMap(s){const{conversationID:n}=s;s.flow==="out"?this._setLatestMsgSentByMe(n,s):n.startsWith("C2C")&&this._setLatestMsgSentByPeer(n,s)}_shouldSkipStoreMessage(s,n){const g=this._getUniqueIdOfMessage(s),I=this._messagesByConversation.get(s.conversationID);if(I?.has(g)){const E=I?.get(g);if(!n||E?.isModified===!0)return!0}return!1}deleteConversationMessage(s){var n;const{conversationID:g=""}=s,I=this._getUniqueIdOfMessage(s);this._messagesByConversation.has(g)&&((n=this._messagesByConversation.get(g))===null||n===void 0||n.delete(I))}modifyConversationMessage(s,n){var g;if(!this._messagesByConversation.has(s)&&!this._sparseMessagesByConversation.has(s))return{isUpdated:!1,message:null};const I=this._getUniqueIdOfMessage(n),E=this._getMessageFromLocalMessage(s,I);if(E){const{messageVersion:m,elements:D,cloudCustomData:M,checkResult:T=0}=n,P=T>1;if(me.ssoLog.debug("modifyConversationMessage",`conversationToMessageMap modifyConversationMessage localVersion:${E.version} remoteVersion:${m}`),E.versionE.ID===s)||null,n)break;if(!n){const I=Array.from(this._sparseMessagesByConversation.values());for(const E of I)if(n=E.get(s)||null,n)break}return n}deleteConversationMessageList(s){this._messagesByConversation.has(s)&&(this._messagesByConversation.delete(s),this._latestMessageSentByMeMap.delete(s),this._latestMessageSentByPeerMap.delete(s)),this._sparseMessagesByConversation.has(s)&&this._sparseMessagesByConversation.delete(s)}revokeMessage({conversationID:s,sequence:n,random:g,revoker:I}){const E=this._messagesByConversation.get(s);let m=null;if(E){const D=Array.from(E.values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m){const M=this._getUniqueIdOfMessage(m);return zQ.updateMessage(s,[M],{isRevoked:!0,revoker:I,operation:yc.revoke}),m}}if(this._sparseMessagesByConversation.has(s)){const D=Array.from(this._sparseMessagesByConversation.get(s).values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m)return m.isRevoked=!0,m.revoker=I,m}}_findMessageBySequenceAndRandom({messageList:s,sequence:n,random:g}){for(let I=0;I0){const D=new Map([...E,...m.entries()]);this._messagesByConversation.set(g,D),this._updateLatestMessageSentByMe(g),this._updateLatestMessageSentByPeer(g)}return I}storeSparseMessageList(s){if(s.length===0)return;const{conversationID:n}=s[0],g=s.length;this._sparseMessagesByConversation.has(n)||this._sparseMessagesByConversation.set(n,new Map);const I=this._sparseMessagesByConversation.get(n);for(let E=0;E=0;I--)if(g[I].flow==="out"){this._setLatestMsgSentByMe(s,g[I]);break}}}_updateLatestMessageSentByPeer(s){var n;const g=Array.from(((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]);if(g.length!==0&&s.startsWith("C2C")){for(let I=g.length-1;I>=0;I--)if(g[I].flow==="in"){this._setLatestMsgSentByPeer(s,g[I]);break}}}_getUniqueIdOfMessage(s){const{from:n,to:g,random:I,sequence:E,time:m}=s;return`${n}-${g}-${I}-${E}-${m}`}_setLatestMsgSentByPeer(s,n){this._latestMessageSentByPeerMap.set(s,n)}_setLatestMsgSentByMe(s,n){this._latestMessageSentByMeMap.set(s,n)}getLatestMsgSentByPeer(s){return this._latestMessageSentByPeerMap.get(s)}getLatestMsgSentByMe(s){return this._latestMessageSentByMeMap.get(s)}addRandomOfSentMessage(s){this._randomOfSentMessageList.add(s)}removeRandomOfSentMessage(s){this._randomOfSentMessageList.delete(s)}updateNickAndAvatarOfSentMessage(s){const{conversationID:n="",latestAvatar:g,latestNick:I,isSentByMe:E=!0}=s,m=this._messagesByConversation.get(n);if(!m)return;const D=Array.from(m.values()),M=E?"out":"in";D.forEach(T=>{const{nick:P,avatar:W,flow:iA}=T;iA===M&&(P!==I&&(T.nick=I),W!==g&&(T.avatar=g))})}isInMessageList(s){var n;const{conversationID:g}=s;if(!g||!this._messagesByConversation.has(g))return!1;const I=this._getUniqueIdOfMessage(s);return(n=this._messagesByConversation.get(g))===null||n===void 0?void 0:n.has(I)}isMessageSentByCurrentInstance(s){const{random:n}=s;return this._randomOfSentMessageList.has(n)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(s){const n=this._messagesByConversation.get(s);return n?[...n.values()]:[]}getSparseMessageList(s){const n=this._sparseMessagesByConversation.get(s);return n?[...n.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),me.notificationCenter.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),me.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}};function Wm(s,n){const g=yB.getConversation(s);if(g?.lastMessage){const{lastMessage:I}=g,{lastTime:E,lastSequence:m,version:D}=I,{time:M,sequence:T,messageVersion:P,elements:W,cloudCustomData:iA}=n;E===M&&m===T&&D!==P&&(I.type=W[0].type,I.payload=W[0].content,I.messageForShow=zc(I.type,I.payload),I.cloudCustomData=iA,I.version=P,yB.updateConversation(s,{lastMessage:I}))}}class CR{init(){dr.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(n){return mA(this,void 0,void 0,function*(){const{to:g,payload:I,sequence:E,conversationType:m,random:D,time:M,from:T,type:P}=n;if(this._canModifyMessageElement(P)){const W=n?._elements||[];W.length>=1&&(W[0].type=P,W[0].content=I)}try{let W=null,iA=null;if(m===Jr.CONV_C2C?W=yield vh(n):m===Jr.CONV_GROUP&&(W=yield MB(n)),W){let EA=`${m}${g}`;return g===Ar()&&m===Jr.CONV_C2C&&(EA=`${m}${T}`),iA={conversationType:m,from:T,to:g,time:M,random:D,sequence:E,elements:W?.elements,cloudCustomData:W?.cloudCustomData,messageVersion:W?.messageVersion,conversationID:EA},this._handleModifyMessageSuccess(iA),{code:0,data:{message:n},successLog:{message:`to:${g}`}}}}catch(W){const{errorCode:iA}=W||{};throw new gs({functionName:"modifyMessage",code:iA,moreMessage:`to:${g}`})}})}_handleModifyMessageSuccess(n){const{conversationID:g}=n,{isUpdated:I,message:E}=me.message.messageDataHandler.modifyConversationMessage(g,n);I===!0&&me.notificationCenter.emitOuterEvent(yr.MESSAGE_MODIFIED,{name:yr.MESSAGE_MODIFIED,data:[E]}),me.notificationCenter.emitInnerEvent(so.MESSAGE_MODIFIED,{conversationID:g,message:E}),Wm(g,n)}_canModifyMessageElement(n){return[FE.MSG_TEXT,FE.MSG_CUSTOM,FE.MSG_LOCATION,FE.MSG_FACE].includes(n)}}class wh{init(){const{notificationCenter:n}=me,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(Pt.RECEIVE_C2C_NEW_MESSAGE,Ht.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),ws.getInstance().registerWorkflowStep(Pt.RECEIVE_C2C_NEW_MESSAGE,Ht.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),ws.getInstance().registerWorkflowStep(Pt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ht.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){ws.getInstance().executeWorkflow(Pt.RECEIVE_C2C_NEW_MESSAGE,n)}_handleC2CMessagePush(n){const g=n.data||{},{messageDataHandler:I}=me.message||{},E=[],m=new Map;return g.C2cMsgArray.forEach(D=>{const M=this._generateC2CMessage(D);this._updateMessageProfile(M);let T=M.isModified===1;I.isMessageSentByCurrentInstance(M)?M.isModified=T:T=!1,M._onlineOnlyFlag?I.isMessageSentByCurrentInstance(M)||E.push(M):SB(M)&&(I.storeConversationMessage(M)&&Ap({conversationUpdateFields:m,message:M}),I.isMessageSentByCurrentInstance(M)&&!T||E.push(M))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEventsAfterReceiveNewMessage(n){var g;const{messages:I=[]}=((g=n.result)===null||g===void 0?void 0:g[Ht.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(I)}_emitMessageEventsAfterSyncUnreadMessage(n){var g;const{messages:I=[]}=((g=n.result)===null||g===void 0?void 0:g[Ht.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(I)}_emitMessageEvents(n){const g=n?.filter(E=>E?.isModified===!0)||[];g.length>0&&me.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:g});const I=n?.filter(E=>!E?.isModified);I.length>0&&me.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:I})}_generateC2CMessage(n){const g=Jr.CONV_C2C,I=Hm(n),E=me.message.messageFactory.createMessage(Object.assign(Object.assign({},I),{conversationType:g,flow:Ku.IN})),{elements:m}=I;return E.setElement(m),E}_updateMessageProfile(n){var g;const{messageDataHandler:I}=me.message||{},E=(g=me.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T=""}=n;if(m!==E){const P=I.getLatestMsgSentByPeer(T);if(P){const{nick:W,avatar:iA}=P;r(D)||r(M)?(n.nick=l(W)?W:n.nick,n.avatar=l(iA)?iA:n.avatar):D===W&&M===iA||(I.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:T,nick:D,avatar:M}))}}else{const P=I.getLatestMsgSentByMe(T);!P||D===P.nick&&M===P.avatar||I.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}}_updateConversationUserProfile(n){const{conversationID:g,nick:I,avatar:E}=n,m=yB.getConversation(g),{userProfile:D={}}=m||{};D.avatar===E&&D.nick===I||yB.updateConversation(g,{userProfile:Object.assign(Object.assign({},D),{nick:I,avatar:E})})}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:I,message:E}=me.message.messageDataHandler.modifyConversationMessage(g,n);I===!0&&me.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),me.notificationCenter.emitInnerEvent("ModifyMessageSuccess",n),Wm(g,n)}_handleC2CMessageModify(n){n.C2cMsgModNotifys.forEach(g=>{var I;const E=Jr.CONV_C2C;let m=qm(g);const{to:D,from:M}=m;let T=`${E}${D}`;D===((I=me.store.get("login"))===null||I===void 0?void 0:I.userId)&&(T=`${E}${M}`),m=Object.assign({conversationType:E,conversationID:T},m),this._updateMessageListDueToModify(m)})}_dispose(){const{notificationCenter:n}=me,{InnerEventSubType:g}=n;me.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),me.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),me.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class _h{init(){const{notificationCenter:n}=me,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(Pt.RECEIVE_GROUP_NEW_MESSAGE,Ht.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),ws.getInstance().registerWorkflowStep(Pt.RECEIVE_GROUP_NEW_MESSAGE,Ht.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){this._canExecuteReceiverNewMessageWorkFlow(n)&&ws.getInstance().executeWorkflow(Pt.RECEIVE_GROUP_NEW_MESSAGE,n)}_handleGroupMessagePush(n){const g=n.data||{},{messageDataHandler:I}=me.message,E=[],m=new Map,D=g?.GroupMsgArray;return D?.forEach(M=>{if(M.GroupInfo.NotVisible===1)return;const T=this._generateGroupMessage(M);this.updateMessageProfile(T);let P=T.isModified===1;I.isMessageSentByCurrentInstance(T)?T.isModified=P:P=!1,T._onlineOnlyFlag?I.isMessageSentByCurrentInstance(T)||E.push(T):SB(T)&&I.storeConversationMessage(T)&&(E.push(T),Ap({conversationUpdateFields:m,message:T}))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEvents(n){var g;const{messages:I}=((g=n.result)===null||g===void 0?void 0:g[Ht.HANDLE_GROUP_NEW_MESSAGE])||{},E=I?.filter(D=>D?.isModified===!0)||[];E.length>0&&me.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:E});const m=I?.filter(D=>!D?.isModified)||[];m.length>0&&me.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:m})}_generateGroupMessage(n){const g=Jr.CONV_GROUP,I=ND(n),E=me.message.messageFactory.createMessage(Object.assign(Object.assign({},I),{conversationType:g,flow:Ku.IN})),{elements:m}=I;return E.setElement(m),E}updateMessageProfile(n){var g;const{messageDataHandler:I}=me.message||{},E=(g=me.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T="",_elements:P}=n;if(m===E){const W=I.getLatestMsgSentByMe(T);!W||D===W.nick&&M===W.avatar||I.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}else if(m===ko.CONV_SYSTEM){const{operationType:W,memberInfoList:iA,operatorInfo:EA}=P;let RA={};if(Rs(iA)?Rs(EA)||(RA=EA):[Tg.JOINED,Tg.KICKED,Tg.ADMIN_SET,Tg.ADMIN_CANCELED].includes(W)&&(RA=Object.assign({},iA[0])),!Rs(RA)){const{nick:kA="",avatar:xA=""}=RA;n.nick=kA,n.avatar=xA}}}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:I,message:E}=me.message.messageDataHandler.modifyConversationMessage(g,n);I===!0&&me.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),Wm(g,n)}_handleGroupMessageModify(n){n.GroupMsgModNotifys.forEach(g=>{const I=Jr.CONV_GROUP;let E=GD(g);const{topicID:m,groupID:D}=E,M=m||D,T=`${I}${M}`;E=Object.assign({conversationType:I,conversationID:T,to:M},E),this._updateMessageListDueToModify(E)})}_dispose(){const{notificationCenter:n}=me,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:g,GROUP_MESSAGE_MODIFIED:I}}=n;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,g,this._handleGroupMessagePush,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,I,this._handleGroupMessageModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(n){var g,I;const{GroupId:E,GroupType:m}=((I=(g=n?.GroupMsgArray)===null||g===void 0?void 0:g[0])===null||I===void 0?void 0:I.GroupInfo)||{},D=m===ka.GRP_AVCHATROOM;return!(!WQ.getGroup(E)&&D)}}var FD=new class{constructor(){this.c2cMessageReceiver=new wh,this.groupMessageReceiver=new _h}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const hR={createCustomMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1}},sendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],createTextMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>function(n){var g;return typeof n?.text!="string"||typeof n.text=="string"&&((g=n?.text)===null||g===void 0?void 0:g.length)===0?"payload.text must be a string":!0}(s)}}},_T={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var TT=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(s){return mA(this,void 0,void 0,function*(){try{const{conversationID:n,count:g,direction:I,sequence:E,messageSequenceList:m,shouldMarkCompleted:D=!1,getType:M}=s,T=n.replace(ba.CONV_GROUP,""),P=[];let W=E;if(I===qc.BACKWARD){if(typeof E!="number")return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};W=E+g-1}const iA=yield Rh({groupID:T,count:g,messageSequence:W,messageSequenceList:m,getType:M});if(iA){const{RspMsgList:EA=[],NextReqMsgSeq:RA=0,IsFinished:kA,InvisibleMsgSeq:xA}=iA,LA=`groupID:${T} sequence:${E} reqSeq:${W} direction:${I} complete:${kA} nextSequence:${RA} remoteMsgCount:${EA.length} invisibleSequenceList:${xA}`,SA=[];for(let re=0;re=E),OA&&D&&this.completedHistoryConversations.add(n);const JA=DB(SA);return me.ssoLog.info("getGroupRoamingMessagesByAnchor",LA),{messageList:JA,invisibleSequenceList:xA,nextReqMessageIDFromServer:RA,hasNoMoreHistoryMessage:OA,serverGroupTipList:P}}}catch(n){const{errorCode:g,errorInfo:I}=n||{};throw new gs({code:g,message:I})}})}clearHistoryMessageListFetchAnchors(s){this._historyMessageListFetchAnchors.delete(s)}isHistoryMessageFetchCompleted(s){return this.completedHistoryConversations.has(s)}_parseMessage(s){var n;const g=ba.CONV_GROUP;s.Event===4&&(s.MsgBody.MsgType=ko.MSG_GRP_TIP);const I=ND(s),E=Jm.createMessage(Object.assign(Object.assign({},I),{conversationType:g,flow:"in"}));return fB(((n=I.elements)===null||n===void 0?void 0:n.content)||{},E),E.setElement(I.elements),E}getC2CRoamingMessagesByAnchor(s){return mA(this,void 0,void 0,function*(){var n;try{const{conversationID:g,count:I,messageID:E,time:m,direction:D,shouldMarkCompleted:M=!1}=s;let T=m,P="";if(!m){const EA=E?me.message.messageDataHandler.findMessage(E):null;if(T=EA?.time||0,E&&this._historyMessageListFetchAnchors.has(g)){const RA=this._historyMessageListFetchAnchors.get(g);T=RA.lastMessageTime,P=RA.messageKey}}const W=g.replace(ba.CONV_C2C,""),iA=yield Km({count:I,lastMessageTime:T,messageKey:P,peerAccount:W,direction:D});if(iA){const{MsgList:EA=[],Complete:RA,MsgKey:kA,LastMsgTime:xA}=iA;this._historyMessageListFetchAnchors.set(g,{messageKey:kA,lastMessageTime:xA});const LA=[];for(let re=0;re{const{tag:E,value:m}=I;E&&E.indexOf(PD)>-1?g.profileCustomField.push({key:E,value:m}):Rd.has(E)&&(g[Rd.get(E)]=m)}),Object.assign(Object.assign({},zm),g)}parseProfileItem(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.Value})}),n}parseProfileList(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.ValueBytes})}),n}convertParamsToProfile(s){const n=[];return Object.keys(s).forEach(g=>{g!==xD&&n.push({tag:Ol[g.toUpperCase()],value:s[g]})}),s.profileCustomField&&B(s.profileCustomField)&&s.profileCustomField.forEach(g=>{n.push({tag:g.key,value:g.value})}),n}normalizeProfileFields(s){const n={},g=[];return s.forEach(I=>{const{tag:E,value:m}=I;if(E&&E.indexOf(PD)>-1&&g.push({key:E,value:m}),Rd.has(E)&&m!==void 0){const D=Rd.get(E);n[D]=m}}),g.length>0&&(n.profileCustomField=g),n}};const{generateProtocolData:QR}=me.common;function pR(s){return mA(this,void 0,void 0,function*(){const n="profile.portrait_get_all",g={From_Account:Ar(),UserItem:[]};s.forEach(D=>{g.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:D})});const I=QR({servcmd:n,data:g}),E=`${I.head.seq}${n}`,m=yield me.channel.sendPacket(I,{requestId:E});if(m)return function(D){const{ActionStatus:M,ErrorCode:T,ErrorDisplay:P,ErrorInfo:W,UserProfileItem:iA}=D,EA=[];return iA.map(RA=>{const{To_Account:kA,CustomSequence:xA,ResultCode:LA,ResultInfo:SA,StandardSequence:OA,ProfileItem:JA}=RA,re=ju.parseProfileItem(JA);EA.push({userId:kA,customSequence:xA,resultCode:LA,resultInfo:SA,standardSequence:OA,profileItem:re})}),{actionStatus:M,errorCode:T,errorDisplay:P,errorInfo:W,userProfile:EA}}(m)})}function PE(s){return rc.getFriendMap().has(s)}const{isEmpty:YD}=me.utils;class Zm{constructor(){this._strangerProfileMap=new Map}init(){dr.getInstance().registerApi({apiName:"getMyProfile",context:this}),dr.getInstance().registerApi({apiName:"getUserProfile",context:this}),dr.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=ju.createProfile.bind(ju);const{notificationCenter:n}=me;ws.getInstance().registerWorkflowStep(Pt.SYNC_SERVER_INFO_AFTER_LOGIN,Ht.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}getMyProfile(){return mA(this,void 0,void 0,function*(){try{const n=Ar(),g=yield pR([n]);if(g){const I=this._handleProfileFormResponse(g)[0];return rc.getUserProfileMap().set(n,I),{code:0,data:I}}}catch(n){const{errorCode:g,errorInfo:I}=n;throw new gs({functionName:"getMyProfile",code:g,message:I})}})}getUserProfile(n){return mA(this,void 0,void 0,function*(){try{let{userIDList:g}=n;const{userIdListToRequest:I,profileFromCache:E}=this._filterRequestAndCacheUsers(g);if(I.length===0)return{code:0,data:E,successLog:{message:`userIDList.length:${g.length}`}};I.length>BR&&(me.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),I.length=BR);const{data:m,error:D}=yield this._batchFetchUserProfiles(I),M=I.length,T=m.length,P=M-T;if(E.length===0&&M===P&&!YD(D))throw D;if(B(m))return m.forEach(iA=>{PE(iA.userID)?rc.getUserProfileMap().set(iA.userID,iA):this._strangerProfileMap.set(iA.userID,iA)}),{code:0,data:m.concat(E),successLog:{message:`getUserProfile query:${M} success:${T} fail:${P} from cache:${E.length}`}}}catch(g){throw new gs(g)}})}getMyProfileCacheThenServer(){return mA(this,void 0,void 0,function*(){const n=Ar(),g=rc.getUserProfileMap().has(n);return g?{code:0,data:g}:this.getMyProfile()})}updateMyProfile(n){return mA(this,void 0,void 0,function*(){const g=Ar(),I={};for(const m in n)n[m]!==void 0&&(I[m]=n[m]);const E=ju.convertParamsToProfile(I);try{yield function(P){return mA(this,void 0,void 0,function*(){const W="profile.portrait_set",iA=QR({servcmd:W,data:P}),EA=`${iA.head.seq}${W}`,RA=yield me.channel.sendPacket(iA,{requestId:EA});if(RA){const{ActionStatus:kA,ErrorCode:xA,ErrorDisplay:LA,ErrorInfo:SA}=RA;return{actionStatus:kA,errorCode:xA,errorDisplay:LA,errorInfo:SA}}})}({From_Account:g,ProfileItem:E});const D=rc.getUserProfile(g);let M;M=D?Object.assign(Object.assign({},D),I):ju.createProfile(g,E);const T=!rg(D,M,["lastUpdatedTime"]);return M.lastUpdatedTime=Date.now(),rc.getUserProfileMap().set(g,M),T&&this._emitProfileUpdated(M),{code:0,data:M,successLog:{message:`profileArray: ${me.utils.safeStringify(E)}`}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new gs({functionName:"updateMyProfile",code:D,message:M,moreMessage:`params: ${me.utils.safeStringify(n)}`})}})}updateMyNickAndAvatar(n){return mA(this,void 0,void 0,function*(){const g=Ar(),I=Date.now(),E=rc.getUserProfile(g);let m={};m=E?Object.assign(E,n):ju.createProfile(g,n),m.lastUpdatedTime=I,rc.getUserProfileMap().set(g,m)})}_onProfileDataModify(n){const g=function(m){const{Profile_Account:D,PushType:M,ProfileList:T}=m;return{userId:D,pushType:M,profileList:ju.parseProfileList(T)}}(n.ProfileDataMod[0]);if(YD(g))return;const{isProfileUpdated:I,profile:E}=this._handleProfileModified(g);I&&this._emitProfileUpdated(E)}_emitProfileUpdated(n){me.notificationCenter.emitInnerEvent(so.PROFILE_UPDATE,{name:so.PROFILE_UPDATE,data:[n]}),me.notificationCenter.emitOuterEvent(yr.PROFILE_UPDATED,{name:yr.PROFILE_UPDATED,data:[n]}),yB.updateConversation(`C2C${n?.userID}`,{userProfile:n})}_dispose(){const{notificationCenter:n}=me;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(n){const{userId:g,profileList:I}=n,E=rc.getUserProfile(g);if(!(Ar()===g||PE(g)&&E))return{isProfileUpdated:!1,profile:null};const m=ju.normalizeProfileFields(I),D=Object.keys(m).some(W=>W===xD?this._isCustomFieldChanged(E.profileCustomField,m.profileCustomField):E[W]!==m[W]);if(!D)return{isProfileUpdated:!1,profile:E};const M=Date.now(),T=Object.prototype.hasOwnProperty.call(m,xD)?this._mergeProfileCustomField(E.profileCustomField,m.profileCustomField):E.profileCustomField,P=Object.assign(Object.assign(Object.assign({},E),m),{profileCustomField:T,lastUpdatedTime:M});return rc.getUserProfileMap().set(g,P),{isProfileUpdated:D,profile:P}}_filterRequestAndCacheUsers(n){const g=[],I=[];return n.forEach(E=>{const m=rc.getUserProfileMap().has(E);PE(E)&&m?I.push(rc.getUserProfile(E)):this._isStrangerAndProfileValid(E)?I.push(this._strangerProfileMap.get(E)):g.push(E)}),{userIdListToRequest:g,profileFromCache:I}}_handleProfileFormResponse(n){const{userProfile:g}=n;if(!Array.isArray(g))return[];const I=g.filter(m=>m.userId!=="@TLS#NOT_FOUND"&&m.userId!==""&&!YD(m.profileItem)),E=Date.now();return I.map(m=>{const D=ju.createProfile(m.userId,m.profileItem);return D.lastUpdatedTime=E,D})}_isStrangerAndProfileValid(n){var g;if(!PE(n)){const{lastUpdatedTime:I=0}=this._strangerProfileMap.get(n)||{},E=((g=me.store.get("cloudConfig"))===null||g===void 0?void 0:g.stranger_profile_expiration_time)||6e5;return Date.now()-I<=E}return!1}_chunkUserIDList(n,g){return Array.from({length:Math.ceil(n.length/g)},(I,E)=>n.slice(E*g,(E+1)*g))}_batchFetchUserProfiles(n){return mA(this,void 0,void 0,function*(){const g=[],I=[];let E={};return this._chunkUserIDList(n,100).forEach(m=>{g.push(pR(m))}),(yield Promise.allSettled(g)).forEach(m=>{if(m.status==="fulfilled"){const D=m.value,M=this._handleProfileFormResponse(D);B(M)&&I.push(...M)}else if(m.status==="rejected"){const{code:D,message:M}=m.reason||{};E={errorCode:D,message:M}}}),{data:I,error:E}})}_isCustomFieldChanged(n=[],g=[]){if(!B(g)||g.length===0)return!1;if(!B(n)||n.length===0)return!0;const I=new Map(n.map(E=>[E.key,E.value]));return g.some(E=>I.get(E.key)!==E.value)}_mergeProfileCustomField(n=[],g=[]){const I=B(n)?n.map(E=>Object.assign({},E)):[];return B(g)&&g.length!==0&&g.forEach(({key:E,value:m})=>{const D=I.find(M=>M.key===E);D?D.value=m:I.push({key:E,value:m})}),I}_reset(){rc.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const Xm=new Map,VD=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let s=0,n=VD.length;s>(-2*m&6)):0)E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(E);try{return decodeURIComponent(escape(g))}catch(I){return console.warn(I),""}}const{isEmpty:GT}=me.utils,{generateProtocolData:$m}=me.common;function mR(s){return mA(this,void 0,void 0,function*(){const n="im_open_status.ws_get_user_status",g=$m({servcmd:n,data:{To_Account:s}}),I=`${g.head.seq}${n}`,E=yield me.channel.sendPacket(g,{requestId:I});if(E)return function(m){const{ErrorCode:D,ErrorInfo:M,ErrorList:T=[],UserStatusList:P=[]}=m,W=P.map(EA=>{const{To_Account:RA,Status:kA,CustomStatus:xA,Detail:LA=[]}=EA;return{userID:RA,statusType:kA,customStatus:tp(xA),onlineDevices:bT(LA)}}),iA=T.map(EA=>{const{To_Account:RA,Invalid_Account:kA,ErrorCode:xA,ErrorInfo:LA}=EA;return{userID:GT(kA)?RA:kA,code:xA,message:LA}});return{errorCode:D,errorInfo:M,successUserList:W,failureUserList:iA}}(E)})}function bT(s){const n=[];return s?.forEach(g=>{const{Platform:I,Status:E}=g;E==="Online"&&n.push(I)}),n}class kT{constructor(){this._customStatus=""}init(){const{notificationCenter:n}=me;dr.getInstance().registerApi({apiName:"getUserStatus",context:this}),dr.getInstance().registerApi({apiName:"setSelfStatus",context:this}),dr.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),dr.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),ws.getInstance().registerWorkflowStep(Pt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ht.USER_STATUS_UPDATE,this._onReOnline,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}setSelfStatus(n){return mA(this,void 0,void 0,function*(){const g=Ar(),{customStatus:I}=n;try{return yield function(E){return mA(this,void 0,void 0,function*(){const m="im_open_status.ws_set_custom_status",D=$m({servcmd:m,data:{CustomStatus:E}}),M=`${D.head.seq}${m}`,T=yield me.channel.sendPacket(D,{requestId:M});if(T){const{ErrorCode:P,ErrorInfo:W}=T;return{errorCode:P,errorInfo:W}}})}(I),this._customStatus=I,{code:0,data:{userID:g,statusType:Th,customStatus:I},successLog:{message:`customStatus: ${I}`}}}catch(E){const{errorCode:m,errorInfo:D}=E;throw new gs({functionName:"setSelfStatus",code:m,message:D})}})}getUserStatus(n){return mA(this,void 0,void 0,function*(){const{userIDList:g=[]}=n;if(this._isOnlyMeInArray(g))return this._getMyStatus();const I=yield this._getUserStatus(g);return Object.assign(Object.assign({},I),{successLog:{message:`userIDList length: ${g.length}`}})})}setCustomStatus(n){const g=tp(n);this._customStatus=g}subscribeUserStatus(n){return mA(this,void 0,void 0,function*(){try{const{userIDList:g=[]}=n;this._checkBusinessCapabilityBits("subscribeUserStatus");const I=this._getMaxUserCount("subscribe"),E=this._sliceUserIDList(g,I),m=yield function(M){return mA(this,void 0,void 0,function*(){const{channel:T}=me,P="im_open_status.ws_status_subscribe",W=$m({servcmd:P,data:{To_Account:M}}),iA=`${W.head.seq}${P}`;return yield T.sendPacket(W,{requestId:iA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:I}=g;throw new gs({functionName:"subscribeUserStatus",code:I})}})}unsubscribeUserStatus(n){return mA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:g=[]}=n,I=this._getMaxUserCount("unsubscribe"),E=this._sliceUserIDList(g,I),m=yield function(M){return mA(this,void 0,void 0,function*(){const{channel:T}=me,P="im_open_status.ws_status_unsubscribe";let W={};W=M.length===0?{UnsubscribeAll:1}:{To_Account:M};const iA=$m({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:I}=g;throw new gs({functionName:"unsubscribeUserStatus",code:I})}})}_onUserStatusUpdate(n){const{UserStatusList:g=[]}=n||{},I=g.map(E=>{const{To_Account:m,Status:D,CustomStatus:M,Platform:T}=E,P={userID:m,statusType:D,customStatus:tp(M)};return T&&(P.onlineDevices=T),P});this._emitUserStatusUpdatedEvent(I)}_onReOnline(n){const g=tp(n.data.customStatus);if(this._customStatus===g)return;this._customStatus=g;const I={userID:Ar(),statusType:Th,customStatus:g};this._emitUserStatusUpdatedEvent(I)}_emitUserStatusUpdatedEvent(n){me.notificationCenter.emitOuterEvent(yr.USER_STATUS_UPDATED,{name:yr.USER_STATUS_UPDATED,data:n})}_sliceUserIDList(n,g){return n.slice(0,g)}_parseResponse(n){const{ErrorList:g=[]}=n;return g.map(I=>{const{To_Account:E,Invalid_Account:m,ErrorCode:D,ErrorInfo:M}=I;return{userID:me.utils.isEmpty(m)?E:m,code:D,message:M}})}_checkBusinessCapabilityBits(n){if(!me.store.get("commercialConfig").get(NT))throw new gs({functionName:n,code:ua.NO_USE,replacement1:n})}_getMaxUserCount(n){const g=me.store.get("cloudConfig")||{},I={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:E,default:m}=I[n],D=g[E]||m;return parseInt(D,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:Ar(),statusType:Th,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(n){return mA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const g=this._getMaxUserCount("query"),I=this._sliceUserIDList(n,g),E=yield mR(I),{successUserList:m,failureUserList:D}=E||{};return{code:0,data:{successUserList:m,failureUserList:D}}}catch(g){const{errorCode:I}=g;throw new gs({functionName:"getUserStatus",code:I})}})}_isOnlyMeInArray(n){const g=Ar();return n.length===1&&n.indexOf(g)>-1}_dispose(){const{notificationCenter:n}=me;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const JD={getUserProfile:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},updateMyProfile:{nick:{required:!1,rules:["string"],allowEmpty:!0},avatar:{required:!1,rules:["string"],allowEmpty:!0},gender:{required:!1,rules:["string"],allowEmpty:!0},selfSignature:{required:!1,rules:["string"],allowEmpty:!0},allowType:{required:!1,rules:["string"],allowEmpty:!0},birthday:{required:!1,rules:["number"],allowEmpty:!1},language:{required:!1,rules:["string"],allowEmpty:!0},messageSettings:{required:!1,rules:["string"],allowEmpty:!0},adminForbidType:{required:!1,rules:["string"],allowEmpty:!0},level:{required:!1,rules:["number"],allowEmpty:!1},role:{required:!1,rules:["number"],allowEmpty:!0},profileCustomField:{required:!1,rules:["array"],allowEmpty:!0,customValidator:function(s){for(const n of s){if(typeof n!="object")return"Each item in profileCustomField must be an object";if(typeof n?.key!="string")return"Each item.key in profileCustomField must be a string";if(!n?.key.startsWith(PD))return'Each item.key in profileCustomField must start with "Tag_Profile_Custom"'}return!0}}},setSelfStatus:{customStatus:{required:!0,rules:["string"],allowEmpty:!0}},getUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!1,rules:["array"],allowEmpty:!0}}},LT={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class UT{constructor(){this.userProfile=new Zm,this.userStatus=new kT,this.userProfile.init(),this.userStatus.init(),jc({auth:LT,params:JD})}}function HD(s){const n=[];if(!l(s))return n;const g=s.length;if(g===0)return n;for(let I=g-1;I>=0;I--)s[I]==="1"&&n.push(2**(g-I-1));return n}var wd,yC,_d;(function(s){s.NOT_START="notStart",s.PENDING="pending",s.RESOLVED="resolved",s.REJECTED="rejected"})(wd||(wd={})),function(s){s[s.C2C=1]="C2C",s[s.GROUP=2]="GROUP"}(yC||(yC={})),function(s){s[s.C2C=8]="C2C",s[s.GROUP=2]="GROUP"}(_d||(_d={}));class qD{constructor(){this._name="SyncConversationHandler",this._pagingStatus=wd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:n}=me;ws.getInstance().registerWorkflowStep(Pt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ht.CONVERSATION_RECOVER,this._syncConversationList,this),ws.getInstance().registerWorkflowStep(Pt.SYNC_SERVER_INFO_AFTER_LOGIN,Ht.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this),me.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===wd.RESOLVED}_syncConversationListAfterLogin(){return mA(this,void 0,void 0,function*(){return this._pagingStatus=wd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return mA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=me;n.debug("_syncConversationList","start");try{const I=yield this._pagingGetConversationList(!0);this._pagingStatus=wd.RESOLVED;const{conversationList:E=[]}=I||{};return n.info("_syncConversationList",`success count:${E.length}`),I}catch(I){const E=new gs(I);n.error("_syncConversationList",`fail ${g(I)}`,{error:E})}})}_pagingGetConversationList(n){return mA(this,void 0,void 0,function*(){try{const g=[];this._pagingStatus=wd.PENDING;const I=yield function(iA){return mA(this,void 0,void 0,function*(){const{fromAccount:EA,pagingTimeStamp:RA,pagingStartIndex:kA,pagingPinnedTimeStamp:xA,pagingPinnedStartIndex:LA}=iA;return gg({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:EA,StartIndex:kA,TimeStamp:RA,TopStartIndex:LA,TopTimeStamp:xA}})})}({fromAccount:Ar(),pagingTimeStamp:n?this._pagingTimeStamp:0,pagingStartIndex:n?this._pagingStartIndex:0,pagingPinnedTimeStamp:n?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:n?this._pagingPinnedStartIndex:0}),{CompleteFlag:E,SessionItem:m=[],TimeStamp:D,StartIndex:M,TopTimeStamp:T,TopStartIndex:P}=I||{};let W=[];if(E===1&&(this._pagingStatus=wd.RESOLVED),m.length>0&&(W=this._getConversationOptions(m),g.push(...W)),me.notificationCenter.emitInnerEvent(so.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:W}),this._pagingTimeStamp=D,this._pagingStartIndex=M,this._pagingPinnedTimeStamp=T,this._pagingPinnedStartIndex=P,E!==1){const{conversationList:iA}=yield this._pagingGetConversationList(n);g.push(...iA)}return{conversationList:g}}catch(g){throw g}})}_getConversationOptions(n){const{utils:{isUndefined:g}}=me,I=this._convertConversationKey(n);return this._filterValidConversations(I).map(E=>(g(E.lastMsg)&&(E.lastMsg={elements:[]}),E.type===yC.C2C?this._assembleC2COption(E):this._assembleGroupOption(E)))}_filterValidConversations(n){return n.filter(({type:g,userID:I})=>g===yC.C2C&&!function(E){let m;return E.startsWith(ko.CONV_C2C)&&(m=E.replace(ko.CONV_C2C,"")),m==="@TLS#ERROR"||m==="@TLS#NOT_FOUND"}(I)||g===2)}_assembleC2COption(n){var g,I,E,m,D,M,T,P;const W=this._createUserprofile(n);return{conversationID:`${ko.CONV_C2C}${n.userID}`,type:ko.CONV_C2C,lastMessage:{lastTime:n.time,lastSequence:n.sequence,fromAccount:n.lastC2CMsgFromAccount,type:!((g=n.lastMsg)===null||g===void 0)&&g.elements[0]?(I=n.lastMsg)===null||I===void 0?void 0:I.elements[0].type:null,payload:!((E=n.lastMsg)===null||E===void 0)&&E.elements[0]?this._amendLayersOverLimitProp(n.lastMsg.elements[0].content):null,cloudCustomData:((M=(D=(m=n.lastMsg)===null||m===void 0?void 0:m.elements)===null||D===void 0?void 0:D[0])===null||M===void 0?void 0:M.cloudCustomData)||"",isRevoked:n.lastMessageFlag===_d.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(n),revoker:((P=(T=n.lastMsg)===null||T===void 0?void 0:T.revokerInfo)===null||P===void 0?void 0:P.revoker)||null},unreadCount:0,userProfile:W,peerReadTime:n.peerReadTime,isPinned:n.isPinned===1,customData:n.customMark||"",markList:HD(n.standardMark),conversationGroupList:[],remark:n.friendRemark||"",messageRemindType:this._transMsgRemindType(n.messageRemindType)}}_createUserprofile(n){var g;const{userID:I,nick:E,peerAvatar:m}=n,D=[{tag:"Tag_Profile_IM_Nick",value:E},{tag:"Tag_Profile_IM_Image",value:m}];return(g=me.user.userProfile)===null||g===void 0?void 0:g.createProfile(I,D)}_computeIsPeerRead(n){const g=Ar(),{lastC2CMsgFromAccount:I,time:E,c2cPeerReadTime:m}=n;return I===g&&E<=m}_assembleGroupOption(n){var g,I,E,m,D;return{conversationID:`${ko.CONV_GROUP}${n.groupID}`,type:ko.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:n.time,lastSequence:n.sequence,fromAccount:n.msgGroupFromAccount},this._patchTypeAndPayload(n)),{cloudCustomData:((E=(I=(g=n.lastMsg)===null||g===void 0?void 0:g.elements)===null||I===void 0?void 0:I[0])===null||E===void 0?void 0:E.cloudCustomData)||"",isRevoked:n.lastMessageFlag===_d.GROUP,onlineOnlyFlag:!1,nick:n.msgGroupFromNickName||"",nameCard:n.msgGroupFromCardName||"",revoker:((D=(m=n.lastMsg)===null||m===void 0?void 0:m.revokerInfo)===null||D===void 0?void 0:D.revoker)||null}),groupProfile:{groupID:n.groupID,name:n.groupNick,avatar:n.groupImage,type:n.groupType,nextMessageSeq:n.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(n),peerReadTime:0,isPinned:n.isPinned===1,version:0,customData:n.customMark||"",markList:HD(n.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(n.messageRemindType),subType:n.groupType}}_convertConversationKey(n){return n.map(g=>({type:g.Type,userID:g.To_Account,nick:g.C2cNick,peerAvatar:g.C2cImage,time:g.MsgTimeStamp,sequence:g.MsgSeq,lastC2CMsgFromAccount:g.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(g.LastMsg),lastMessageFlag:g.LastMsgFlags,c2cPeerReadTime:g.C2cPeerReadTime,peerReadTime:g.C2cPeerReadTime,friendRemark:g.C2cRemark,isPinned:g.TopFlags,standardMark:g.StandardMark,customMark:g.CustomMark,messageRemindType:g.MsgRecvOption,groupID:g.ToAccount,groupNick:g.GroupNick,groupImage:g.GroupImage,groupType:g.GroupType,nextMessageSeq:g.GroupNextMsgSeq,msgGroupFromAccount:g.MsgGroupFrom_Account,msgGroupFromNickName:g.MsgGroupFromNickName,msgGroupFromCardName:g.MsgGroupFromCardName,unreadCount:g.UnreadMsgCount,noUnreadCount:g.GroupIgnoredUnreadSeqCount}))}_convertLastMsgKey(n){var g,I,E;const{utils:{isEmpty:m}}=me;if(m(n))return null;let D="",M=null;if(!m(n.GroupTips)){const{From_Account:T,GroupName:P}=((g=n.GroupTips)===null||g===void 0?void 0:g.GroupInfo)||{};D=ko.MSG_GRP_TIP,M=Object.assign(Object.assign({},this._parseContent(D,n.GroupTips.MsgBody)),{groupProfile:{from:T,groupName:P}})}return n.MsgBody&&(D=(I=n.MsgBody[0])===null||I===void 0?void 0:I.MsgType,M=this._parseContent(D,n.MsgBody[0])),{event:n.Event,elements:[{type:D,content:M,cloudCustomData:n.CloudCustomData}],revokerInfo:{revoker:(E=n.RevokerInfo)===null||E===void 0?void 0:E.Revoker_Account}}}_parseContent(n,g){var I;if(!g)return g;const E=me.message.messageFactory.getElementClass(n);return E?(I=E.parseServerPushElement(g))===null||I===void 0?void 0:I.content:g}_amendLayersOverLimitProp(n){const{LayersOverLimit:g}=n;return yo(n,["LayersOverLimit"]).layersOverLimit=g===1,n}_transMsgRemindType(n){let g="";return n===0?g=ko.MSG_REMIND_ACPT_AND_NOTE:n===1?g=ko.MSG_REMIND_DISCARD:n===2?g=ko.MSG_REMIND_ACPT_NOT_NOTE:n===3&&(g=ko.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}_patchTypeAndPayload(n){var g;const{utils:{isUndefined:I}}=me,{event:E,elements:m=[]}=n.lastMsg||{};return I(E)?{type:m[0]?m[0].type:null,payload:m[0]?this._amendLayersOverLimitProp(m[0].content):null}:{type:ko.MSG_GRP_TIP,payload:((g=m?.[0])===null||g===void 0?void 0:g.content)||{}}}_computeGroupUnreadCount(n){const{unreadCount:g=0,noUnreadCount:I=0}=n,E=g-I;return E>0?E:0}_reset(){this._pagingStatus=wd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:n}=me;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class KD{constructor(){this.syncConversationHandler=new qD,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Wr}`);var jD={create:function(s){var n,g;const{SDKAppID:I,testEnv:E=!1,devMode:m=!1,unlimitedAVChatRoom:D=!1,scene:M="",oversea:T=!1,instance:P,disableIndependentDomain:W=!1,proxyServer:iA=""}=s;let EA=I;if(!function(kA){if(typeof kA=="number")return!0;const xA=Number(kA);return!Number.isNaN(xA)}(EA))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(EA=Number(EA),Ea.has(EA))return Ea.get(EA);let RA=null;if(P)RA=P,RA._workflowManager&&ws.setInstance(RA._workflowManager),RA._pluginManager&&RA._pluginManager.installBuiltInPlugin(mB),P.isReady()&&((g=(n=ws.getInstance()).executeWorkflow)===null||g===void 0||g.call(n,Pt.SYNC_SERVER_INFO_AFTER_LOGIN));else{const kA=function(){function re(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${re()+re()}${re()}${re()}${re()}${re()}${re()}${re()}`}();me.init({sdkAppId:EA,instanceId:kA,testEnv:E,devMode:m,unlimitedAVChatRoom:D,disableIndependentDomain:W,scene:M,oversea:T,sdkEdition:Vm,version:Wr,proxyServer:iA}),ws.getInstance().init(),me.message=new OD,me.user=new UT,me.login=new Sh,me.conversation=new KD,tu.getInstance().installBuiltInPlugin(mB),RA=dr.getInstance().exposeApiForClient(),RA._workflowManager=ws.getInstance(),RA._pluginManager=tu.getInstance();const{utils:{IS_WORKER_AVAILABLE:xA,USER_AGENT:LA,getPlatformType:SA,isIOSWebView:OA}}=me,JA=`instanceID:${kA} SDKAppID:${I} platform:${HA} host:${SA()} isIOSWebView:${OA} workerAvailable:${xA} UserAgent:${LA}`;me.ssoLog.info("sdkConstruct",JA)}return Ea.set(EA,RA),RA},TSignaling:Hc,EVENT:yr,VERSION:Wr,TYPES:ko};return jD})}(S1)),S1.exports}var XiA=ZiA();const tg=F3(XiA);var M1={exports:{}},$iA=M1.exports,Qz;function AoA(){return Qz||(Qz=1,function(t,i){(function(r,l){t.exports=l()})($iA,function(){function r(ge,qe){if(!(ge instanceof qe))throw new TypeError("Cannot call a class as a function")}function l(ge,qe){for(var ft=0;ft"u"&&typeof uni.requireNativePlugin=="function",WA=TA&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios",zA=(TA&&uni.getDeviceInfo().platform.toLocaleLowerCase(),IA||rA||pA||lA||cA||TA),$A=F!==void 0&&(F.nativeModuleProxy!==void 0||F.ReactNative!==void 0),De=rA?qq:pA?tt:lA?swan:cA?my:IA?wx:TA?uni:{},Ce=function(ge){if(k(ge)!=="object"||ge===null)return!1;var qe=Object.getPrototypeOf(ge);if(qe===null)return!0;for(var ft=qe;Object.getPrototypeOf(ft)!==null;)ft=Object.getPrototypeOf(ft);return qe===ft};function ct(ge){if(ge==null)return!0;if(typeof ge=="boolean")return!1;if(typeof ge=="number")return ge===0;if(typeof ge=="string"||typeof ge=="function"||Array.isArray(ge))return ge.length===0;if(ge instanceof Error)return ge.message==="";if(Ce(ge)){for(var qe in ge)if(Object.prototype.hasOwnProperty.call(ge,qe))return!1;return!0}return!1}var mt=function(){return u(function ge(){r(this,ge),this._n="WebRequest"},[{key:"request",value:function(ge,qe){var ft=this,ni="".concat(this._n,".request"),Vt=ge.downloadUrl||"",gi=(ge.method||"PUT").toUpperCase(),Fi=ge.url;if(console.log("%c tim-upload-plugin %c","background:#0abf5b; padding:1px; border-radius:3px; color: #fff","background:transparent","".concat(ni," URL:").concat(Fi)),ge.qs){var _o=function(ki){var ns=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"&",Ko=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"=";return ct(ki)?"":Ce(ki)?Object.keys(ki).map(function($i){var jt=encodeURIComponent($i)+Ko;return Array.isArray(ki[$i])?ki[$i].map(function(io){return jt+encodeURIComponent(io)}).join(ns):jt+encodeURIComponent(ki[$i])}).filter(Boolean).join(ns):void 0}(ge.qs);_o&&(Fi+="".concat(Fi.indexOf("?")===-1?"?":"&").concat(_o))}var to=new XMLHttpRequest;to.open(gi,Fi,!0),to.responseType=ge.dataType||"text";var uo=ge.headers||{};if(ge.uploadByIP&&(uo=w(w({},uo),{},{host:ge.uploadIP})),!ct(uo))for(var Vs in uo)uo.hasOwnProperty(Vs)&&Vs.toLowerCase()!=="content-length"&&Vs.toLowerCase()!=="user-agent"&&Vs.toLowerCase()!=="origin"&&Vs.toLowerCase()!=="host"&&to.setRequestHeader(Vs,uo[Vs]);return to.onload=function(){if(to.status===200)qe(null,ft._xhrRes(to,ft._xhrBody(to,Vt,ge.uploadByIP&&ge.uploadIP),uo));else{if(ge.uploadIP&&ge.url.indexOf(ge.uploadIP)===-1)return ge.url=function(ns,Ko){return ns.replace(/^http(s)?:\/\/(.*?)\//,"https://".concat(Ko,"/"))}(ge.url,ge.uploadIP),ge.uploadByIP=!0,ft.request(ge,qe);var ki={code:to.status,message:JSON.stringify(to.responseText)};qe(ki,ft._xhrRes(to,ft._xhrBody(to,Vt,ge.uploadByIP&&ge.uploadIP),uo))}},to.onerror=function(ki){var ns=ft._xhrBody(to,Vt,ge.uploadByIP&&ge.uploadIP),Ko={code:to.status,message:JSON.stringify(to.responseText)};ns||to.statusText||to.status!==0||(ki.message="CORS blocked or network error"),qe(Ko,ft._xhrRes(to,ns)),Ko=null},ge.onProgress&&to.upload&&(to.upload.onprogress=function(ki){var ns=ki.total,Ko=ki.loaded,$i=Math.floor(100*Ko/ns);ge.onProgress({total:ns,loaded:Ko,percent:($i>=100?100:$i)/100})}),to.send(ge.resources),to}},{key:"_xhrRes",value:function(ge,qe){var ft={};return ge.getAllResponseHeaders().trim().split(`
-`).forEach(function(ni){if(ni){var Vt=ni.indexOf(":"),gi=ni.substr(0,Vt).trim().toLowerCase(),Fi=ni.substr(Vt+1).trim();ft[gi]=Fi}}),{statusCode:ge.status,statusMessage:ge.statusText,headers:ft,data:qe}}},{key:"_xhrBody",value:function(ge,qe,ft){return ge.status===200&&qe?{location:qe,uploadIP:ft}:{response:ge.responseText,uploadIP:ft}}}])}(),Ke=["unknown","image","video","audio","log"],Dt=["name"],qt=function(){return u(function ge(){r(this,ge)},[{key:"request",value:function(ge,qe){var ft=this,ni=ge.resources,Vt=ni===void 0?"":ni,gi=ge.headers,Fi=gi===void 0?{}:gi,_o=ge.url,to=ge.downloadUrl,uo=to===void 0?"":to,Vs=_o,ki=null,ns=uo.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/),Ko=decodeURIComponent(ns[3]),$i=Ko.indexOf("?")>-1?Ko.split("?")[0]:Ko,jt={key:ge.fileKey?ge.fileKey:$i,success_action_status:200,"Content-Type":""},io={};if(WA){var bi=_o.split("?sign=");if(bi.length>1){var vs=bi[1];Vs="".concat(bi[0],"?sign=").concat(encodeURIComponent("".concat(vs))),io.sign=decodeURIComponent(vs),io.signature=decodeURIComponent(vs)}}var HA={url:Vs,header:Fi,name:"file",filePath:Vt,formData:w(w({},jt),io),timeout:ge.timeout||3e5};if(cA){var le=HA;le.name,HA=w(w({},function(xe,Lt){if(xe==null)return{};var it,gt,Xt=function(be,je){if(be==null)return{};var Mt={};for(var Rt in be)if({}.hasOwnProperty.call(be,Rt)){if(je.includes(Rt))continue;Mt[Rt]=be[Rt]}return Mt}(xe,Lt);if(Object.getOwnPropertySymbols){var $t=Object.getOwnPropertySymbols(xe);for(gt=0;gt<$t.length;gt++)it=$t[gt],Lt.includes(it)||{}.propertyIsEnumerable.call(xe,it)&&(Xt[it]=xe[it])}return Xt}(le,Dt)),{},{fileName:"file",fileType:Ke[ge.fileType]})}return(ki=De.uploadFile(w(w({},HA),{},{success:function(xe){ft._handleResponse({response:xe,downloadUrl:uo,callback:qe})},fail:function(xe){ft._handleResponse({response:xe,downloadUrl:uo,callback:qe})}}))).onProgressUpdate&&ki.onProgressUpdate(function(xe){ge.onProgress&&ge.onProgress({total:xe.totalBytesExpectedToSend,loaded:xe.totalBytesSent,percent:Math.floor(xe.progress)/100})}),ki}},{key:"_handleResponse",value:function(ge){var qe=ge.downloadUrl,ft=ge.response,ni=ge.callback,Vt=ft.header,gi={};if(Vt)for(var Fi in Vt)Vt.hasOwnProperty(Fi)&&(gi[Fi.toLowerCase()]=Vt[Fi]);var _o=+ft.statusCode;_o===200?ni(null,{statusCode:_o,headers:gi,data:w(w({},ft.data),{},{location:qe})}):ni({code:_o,message:JSON.stringify(ft.data)},{statusCode:_o,headers:gi,data:void 0})}}])}(),It=function(){return u(function ge(){r(this,ge)},[{key:"request",value:function(ge,qe){var ft=this,ni=ge.resources,Vt=ni===void 0?"":ni,gi=ge.fileKey,Fi=gi===void 0?"":gi,_o=ge.url,to=ge.downloadUrl,uo=to===void 0?"":to,Vs=new FormData;Vs.append("key",Fi),Vs.append("success_action_status",200),Vs.append("file",{uri:Vt,type:"application/octet-stream",name:"uploaded_file"}),fetch(_o,{method:"POST",headers:{"Content-Type":"multipart/form-data"},body:Vs}).then(function(ki){ft._handleResponse({response:ki,downloadUrl:uo,callback:qe})}).catch(function(ki){ft._handleResponse({response:ki,downloadUrl:uo,callback:qe})})}},{key:"_handleResponse",value:function(ge){var qe=ge.downloadUrl,ft=ge.response,ni=ge.callback,Vt=ft.headers,gi=ft.status,Fi=Vt&&Vt.map||{};gi===200?ni(null,{statusCode:200,headers:Fi,data:{location:qe}}):ni({code:gi,message:JSON.stringify(ft)},{statusCode:gi,headers:Fi,data:void 0})}}])}();return function(){return u(function ge(){r(this,ge),this.retry=1,this.tryCount=0,this.systemClockOffset=0,this.httpRequest=zA?new qt:$A?new It:new mt,console.log("TIMUploadPlugin.VERSION: ".concat("1.4.3"))},[{key:"uploadFile",value:function(ge,qe){var ft=this;return this.httpRequest.request(ge,function(ni,Vt){ni&&ft.tryCount=3e4&&(this.systemClockOffset=_o-Fi,qe=!0)}else Math.floor(ge.statusCode/100)===5&&(qe=!0)}return qe}}],[{key:"getVersion",value:function(){return"1.4.3"}}])}()})}(M1)),M1.exports}var eoA=AoA();const toA=F3(eoA);/**
+`],{type:"application/javascript"});this._worker=new Worker(URL.createObjectURL(g)),this._worker.postMessage({type:fr,url:n})}send(n){var g,u;try{(g=this._worker)===null||g===void 0||g.postMessage({type:Ls,data:n})}catch(E){(u=this._onSendFail)===null||u===void 0||u.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;if(this._worker){const M={[ms]:g,[as]:u,[Su]:E,[Wa]:m,[Cs]:D};this._onSendFail=D,this._worker.onmessage=T=>{var P;const{type:W}=T?.data||{};typeof M[W]=="function"&&((P=M[W])===null||P===void 0||P.call(M,T?.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Vc}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}class VI{}var $o,Xi=new class{constructor(){this._store=new Map}get(s){return this._store.get(s)}getStorage(s){return ki?gi?my.getStorageSync({key:s}).data:io.getStorageSync(s):this._canUseLocalStorage()?localStorage.getItem(s):{}}set(s,n){const g=this._store.get(s)||{};n instanceof Map?this._store.set(s,n):this._store.set(s,Object.assign(Object.assign({},g),n))}setStorage(s,n){ki?gi?my.setStorageSync({key:s,data:JSON.stringify(n)}):io.setStorageSync(s,JSON.stringify(n)):this._canUseLocalStorage()&&localStorage.setItem(s,JSON.stringify(n))}clear(s){typeof s=="string"?this._store.set(s,{}):this._store.clear()}clearLocalStorage(s){this._canUseLocalStorage()&&(typeof s=="string"?localStorage.setItem(s,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return typeof window<"u"&&navigator&&navigator.cookieEnabled&&localStorage}};class pc{connectSocket(n){return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},multiple:!0,complete:()=>{}}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(M=>u(M?.data)),this._socket.onError(()=>m),this._onSendFail=D)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}(function(s){s[s.CONNECTED=0]="CONNECTED",s[s.CONNECTING=1]="CONNECTING",s[s.DISCONNECTED=2]="DISCONNECTED"})($o||($o={}));class ng{constructor(n){this._url="",this._readyState=$o.DISCONNECTED,this._url=n,this._id=U(),this._emitter=new On,gi?this._socket=new pc:Le||To||Dt||je||Fi||Jt?this._socket=new cn({onError:this._onError.bind(this)}):an?this._socket=new VI:this._canUseWebWorker()?this._socket=new sg:this._socket=new Dl,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this._readyState=$o.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(n){this._readyState!==$o.CONNECTED?this.reconnect():this._socket.send(n)}reconnect(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(n,g,u){this._emitter.on(n,g,u)}off(n,g,u){this._emitter.off(n,g,u)}isConnected(){return this._readyState===$o.CONNECTED}disconnect(){this._readyState=$o.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(n){this._readyState===$o.CONNECTING&&(this._readyState=$o.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:n}))}_onMessage(n){this._emitter.emit("message",n)}_onClose(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:n})}_onError(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:n})}_onSendFail(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:n})}_bindSocketHandlers(){this._socket.bindSocketHandlers({onOpen:this._onOpen.bind(this),onMessage:this._onMessage.bind(this),onClose:this._onClose.bind(this),onError:this._onError.bind(this),onSendFail:this._onSendFail.bind(this)})}_unbindSocketHandlers(){this._socket.unbindSocketHandlers()}_canUseWebWorker(){const n=Xi.get("cloudConfig")||{};return(r(n.isWorkerEnabled)||n.isWorkerEnabled==="1")&&Go}}const Dg={[ut.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[ut.KOREA]:[[3e7,4e7],[173e7,174e7]],[ut.GERMANY]:[[4e7,5e7],[174e7,175e7]],[ut.IND]:[[5e7,6e7],[175e7,176e7]],[ut.JPN]:[[6e7,7e7],[176e7,177e7]],[ut.USA]:[[7e7,8e7],[177e7,178e7]],[ut.INDONESIA]:[[8e7,9e7],[178e7,179e7]],[ut.KSA]:[[9e7,1e8],[179e7,18e8]]};function Ia(s){var n;if(!((n=Xi.get("instance"))===null||n===void 0)&&n.oversea)return ut.OVERSEA;for(const g of Object.keys(Dg))for(const[u,E]of Dg[g])if(s>=u&&s`${iA}=${W[iA]}`).join("&"));var W;return g?`${s}/binfo?${P}&compress=gzip`:`${s}/info?${P}`}function Hs(s){const n=Xi.get("instance"),{sdkAppId:g,testEnv:u,proxyServer:E}=n,m=Ia(g);if(u)return Hn(pt.TEST[m].DEFAULT,{isBinary:s});if(!Rs(E))return Hn(E,{isBinary:s});const D=pt.PRODUCTION[m],M=jt&&D.ANYCAST,T=jt,P=!!D.BACKUP_CN;return Hn({[bo.INITIAL]:()=>(_o=bo.DEFAULT,D.DEFAULT),[bo.DEFAULT]:()=>(_o=bo.IPV6,D.IPV6),[bo.IPV6]:()=>(_o=bo.BACKUP,D.BACKUP),[bo.BACKUP]:()=>T?(_o=bo.BACKUP_WEB_ONLY,function(W){const iA=Math.floor(10001*Math.random())+1e4;return W.replace("*",String(iA))}(D.BACKUP_WEB_ONLY)):P?(_o=bo.BACKUP_CN,D.BACKUP_CN):M?(_o=bo.ANYCAST,D.ANYCAST):D.DEFAULT,[bo.BACKUP_WEB_ONLY]:()=>P?(_o=bo.BACKUP_CN,D.BACKUP_CN):M?(_o=bo.ANYCAST,D.ANYCAST):D.DEFAULT,[bo.BACKUP_CN]:()=>(_o=M?bo.ANYCAST:bo.DEFAULT,D[_o]),[bo.ANYCAST]:()=>(_o=bo.DEFAULT,D.ANYCAST="",D.DEFAULT)}[_o](),{isBinary:s})}var Sg=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(s,n){const g=Date.now(),u=g-s;this._timeOffsetWithServer=n+u-g}};const mc=16;var fn=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(s){const{id:n}=s;this.removeTask(n),this._tasks.push(s),this._taskMap.set(n,s),this._sort(),this._scheduleNextTask()}_createTask(s){const{id:n,callback:g,context:u,isOnce:E=!1,intervalMs:m=mc}=s,D=Math.max(m,mc);return{id:n,nextExecuteTime:Date.now()+D,intervalMs:m,callback:g,context:u,isOnce:E}}addTask(s){const n=this._createTask(s);this._addTaskToScheduler(n)}addOnceTask(s){const n=this._createTask(Object.assign(Object.assign({},s),{isOnce:!0}));this._addTaskToScheduler(n)}removeTask(s){const n=this._tasks.findIndex(g=>g.id===s);n>-1&&(this._tasks.splice(n,1),this._taskMap.delete(s),this._scheduleNextTask())}updateTaskInterval(s,n){const g=this._taskMap.get(s);g&&(g.intervalMs=n,g.nextExecuteTime=Date.now()+n,this._sort(),this._scheduleNextTask())}clearAllTasks(){this._tasks=[],this._taskMap.clear(),this._timer&&(clearTimeout(this._timer),this._timer=null)}dispose(){this.clearAllTasks()}_sort(){this._tasks.sort((s,n)=>s.nextExecuteTime-n.nextExecuteTime)}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const s=this._tasks[0];if(s){const n=Math.max(0,s.nextExecuteTime-Date.now());this._timer=setTimeout(()=>this._execute(),n)}}_execute(){const s=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=s;){const n=this._tasks[0];try{n.context?n.callback.call(n.context):n.callback(),n.isOnce?this.removeTask(n.id):(n.nextExecuteTime=s+n.intervalMs,this._sort())}catch(g){console.warn(`Task ${n.id} execution failed:`,g),n.isOnce&&this.removeTask(n.id)}}this._scheduleNextTask()}};function Ga(s){const n=[];for(let g=0;g=55296&&u<=56319){const E=s.charCodeAt(++g)-56320+(u-55296<<10)+65536;n.push(240|E>>18,128|E>>12&63,128|E>>6&63,128|63&E)}else u<=127?n.push(u):u<=2047?n.push(192|u>>6,128|63&u):n.push(224|u>>12,128|u>>6&63,128|63&u)}return new Uint8Array(n)}function In(s){const n=Array.isArray(s)?[]:Object.create(null);for(const g in s)Object.prototype.hasOwnProperty.call(s,g)&&_(g)&&s[g]!=null&&(s[g]===null||typeof s[g]!="object"?n[g]=s[g]:n[g]=In(s[g]));return n}function fs(s,n){if(mA.includes(s))return 0;const g=Ga(JSON.stringify(n));let u=4294967295;const{length:E}=g;for(let m=0;m>>=1:u=u>>>1^3988292384}return(4294967295^u)>>>0}function ua(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",a2:D.a2Key||void 0,tinyid:D.tinyID||void 0,status_instid:D.statusInstanceId||0,sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.a2Key?void 0:D.userId,usersig:D.a2Key?void 0:D.userSig,sdkability:478343027,sdkability_ext:lA(""),cappid:M.applicationID||0,tjgID:"",seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}}function yn(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:lA(""),cappid:M.applicationID||0,seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}}let ba=U();function Sa(){return ba=ba<2415919103?ba+1:U(),ba}function $(){var s;const n=Xi.get("login")||{},g=Xi.get("instance")||{};return{sdk_type:30,sdk_app_id:g.sdkAppId,sdk_version:"1.6.18",tiny_id:Number(n.tinyID),user_id:n.userId||((s=Xi.get("webPush"))===null||s===void 0?void 0:s.userId),platform:HA,instance_id:g.instanceId,trace_id:new Date().getTime()}}var K,vA=Object.freeze({__proto__:null,calcBodyCRC:fs,filterProtocolDataInvalidFields:In,generateCosSpecifiedData:function(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.userId,usersig:D.userSig,status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:lA(""),cappid:M.applicationID||0,seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}},generateProtocolData:ua,generateSSOLogProtocolData:yn,generateSequence:Sa,getCommonHead:$,getHostSite:Ia,taskScheduler:fn,timeManager:Sg});(function(s){s[s.info=4]="info",s[s.warning=5]="warning",s[s.error=6]="error"})(K||(K={}));const qA={method:"extension",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",uiPlatform:"ui_platform",timestamp:"timestamp"};class Ae{constructor(n){this.level=K.info,this._canSendLog=!0,this._logCreatedAt=Sg.getServerTimeMs(),this.timestamp=0,this.networkType=8,this.code=0,this.moreMessage="",this.method="",this.message="",this.costTime=0,this.duplicate=!1,this.eventType=0,this.uiPlatform=this._getUiPlatform(),this._sdkEdition=this._getSDKEdition();const{method:g,eventType:u=0,message:E="",costTime:m=0,error:D,uiPlatform:M,moreMessage:T="",code:P=0,startTime:W=0}=n||{};this.eventType=u,this.method=g,this.message=E,this.costTime=m,this.moreMessage=`${T} startTime:${W}`,this.code=P,D&&this.setError(D),Rs(M)||(this.uiPlatform=M)}setMoreMessage(n){this.moreMessage=`${this.moreMessage} ${n}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Sg.getTimeOffsetWithServer()}end(n=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=Sg.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),n&&this._ssoLogModule.uploadSSOLogData())}setError(n){var g;return n instanceof Error?this._canSendLog?(!((g=Xi.get("netWorkMonitor"))===null||g===void 0)&&g.isNetworkOnline&&(n.errorCode&&(this.code=n.errorCode),n.errorMessage&&this.setMoreMessage(n.errorMessage)),this.level=K.error,this):this:(console.warn("SSOLogData.setError value not instanceof Error, please check!"),this)}setLogInfo(n){return Object.keys(n).forEach(g=>{Object.keys(qA).includes(g)&&(this[g]=n[g])}),this}setSSOLogModule(n){this._ssoLogModule=n}_convertSSOLogDataKeyToServe(){const n={};return Object.keys(this).forEach(g=>{const u=g;qA[u]&&(n[qA[u]]=this[u])}),n}_getUiPlatform(){var n;const g=(n=Xi.get("instance"))===null||n===void 0?void 0:n.scene;if(typeof g=="string"){const u=Number(g);return isNaN(u)?void 0:u}}_getSDKEdition(){var n;return(n=Xi.get("instance"))===null||n===void 0?void 0:n.sdkEdition}}var pe;(function(s){s.RECONNECTED="reconnected",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.SOCKET_DISCONNECTED="socket_disconnected"})(pe||(pe={}));var Pe=pe;const Oe=20,rt=6e4,dt=[4,5,6],Mt="report-logger";var Pt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=IA.DEBUG,this._throttleConfig={global:{throttleTime:xe,maxCount:Be},single:{throttleTime:ge,maxCount:ue}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,gn.subscribeInnerEvent(Pe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),fn.addTask({id:Mt,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(s){const{evt_rpt_threshold:n=Oe,evt_rpt_waiting:g=rt,evt_rpt_level:u=dt,evt_rpt_sdkappid_bl:E="",evt_rpt_tinyid_wl:m="",evt_rpt_global_throttle_time:D=xe,evt_rpt_global_throttle_count:M=Be,evt_rpt_single_throttle_time:T=ge,evt_rpt_single_throttle_count:P=ue}=s||{};this._sdkAppIdBlackList=E.split(",").map(W=>Number(W)),this._waitingTime=Number(g),this._minThreshold=n,this._reportLevel=u,this._tinyIdWhiteList=m.split(","),this._throttleConfig={global:{throttleTime:D,maxCount:M},single:{throttleTime:T,maxCount:P}}}createSSOLogData(s){const n=new Ae(s);return n.setSSOLogModule(this),this._ssoLogMap.set(s.method,n),n}getSSOLogData(s){return this._ssoLogMap.get(s)||{}}pushToLogQueue(s){s&&(this._logQueue.push(s),this._shouldUploadImmediately()&&this.uploadSSOLogData())}setLogLevel(s){[IA.DEBUG,IA.ERROR,IA.INFO,IA.NONE,IA.WARN].includes(s)&&(this._logLevel=s)}debug(s,n="",g){this._log(IA.DEBUG,s,n,g)}info(s,n="",g){this._log(IA.INFO,s,n,g)}warn(s,n="",g){this._log(IA.WARN,s,n,g)}error(s,n="",g){this._log(IA.ERROR,s,n,g)}_shouldUploadImmediately(){return this._logQueue.length>=this._minThreshold}_isReportDue(){return Date.now()>=this._lastReportAt+this._waitingTime}_checkAndReportIfDue(){this._isReportDue()&&this._logQueue.length>0&&this.uploadSSOLogData()}uploadSSOLogData(){return pA(this,void 0,void 0,function*(){if(this._logQueue.length===0)return;const s=this._logQueue.slice();this._logQueue=[];try{const n=this._filterLogs(s);if(n.length===0)return void(this._lastReportAt=Date.now());const g={Header:$(),Event:n};Rs(g.Header.user_id)||(yield function(u){const E="imopenstat.tim_web_report_v2",m=yn({servcmd:E,data:u}),D=`${m.head.seq}${E}`;return ye.sendPacket(m,{requestId:D})}(g))}catch(n){this._requeueFailedLogs(s),this.debug("uploadSSOLogData",en(n))}finally{this._lastReportAt=Date.now()}})}_requeueFailedLogs(s){this._logQueue=s.concat(this._logQueue);const n=this._logQueue.length-200;n>0&&(this._logQueue.splice(0,n),this.debug("uploadSSOLogData",`log queue overflow, dropped ${n} oldest logs`))}_savePlatFormInfo(){var s,n;if(Le){const g=(n=(s=wx.getAccountInfoSync)===null||s===void 0?void 0:s.call(wx))===null||n===void 0?void 0:n.miniProgram;if(g){const{appId:u,envVersion:E}=g;Xi.set("instance",{appId:u,envVersion:E})}}else jt&&Xi.set("instance",{href:window.location.href})}_filterLogs(s){const{tinyID:n}=Xi.get("login")||{},{sdkAppId:g}=Xi.get("instance")||{};return this._sdkAppIdBlackList.includes(g)&&!this._tinyIdWhiteList.includes(n)?[]:s.filter(u=>this._reportLevel.includes(u.level))}_checkThrottle(s){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(s)}_checkGlobalThrottle(){const s=Date.now();if(s-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=s;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(s){const n=Date.now(),g=this._singleThrottleMap.get(s);return g?n-g.startTime>=this._throttleConfig.single.throttleTime?(g.count=1,g.startTime=n,!1):g.count>=this._throttleConfig.single.maxCount||(g.count++,!1):(this._singleThrottleMap.set(s,{count:1,startTime:n}),!1)}_shouldLog(s){return s>=this._logLevel&&this._logLevel!==IA.NONE}_shouldReport(s){return this._reportLevel.includes(WA[s])}_formatLog(s,n,g,u){const E=new Date,m=`${E.getHours()}:${E.getMinutes()}:${E.getSeconds()}:${E.getMilliseconds()}`,D=`<${IA[s]}>`;return wt||ki?[`${cA} [${m}] ${D} [${n}] ${g}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",cA,"",`[${m}] ${D} [${n}] ${g} params: ${en(u)}`]}_log(s,n,g,u){if(this._shouldLog(s)){const E=this._formatLog(s,n,g,u);TA[s].apply(console,E)}if(this._shouldReport(s)){const E=this._getThrottleKey(n,g,u);this._checkThrottle(E)||this.createSSOLogData(Object.assign(Object.assign({message:g},u),{method:n})).end()}}_getThrottleKey(s,n,g){const u=`${s}${n}${en(Object.assign(Object.assign({},g),{costTime:""}))}`,E=Ga(JSON.stringify(u));let m=4294967295;const{length:D}=E;for(let M=0;M>>=1:m=m>>>1^3988292384}return`${(4294967295^m)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),fn.removeTask(Mt),gn.unSubscribeInnerEvent(Pe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._logQueue=[],this._logLevel=IA.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const li=15e3,ct="Channel",Ot="channel_schedule_task",Ji="channel_reconnect_task",qi="connected",qs="connecting",Mi="disconnected",zo=1e3,Mg="network_status_change",sr="activity_status_change",yr="send_fail",xn="reconnect_failed",Sl="socket_error",Ks="socket_close";function rI(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function Wg(s){return Wg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Wg(s)}function fc(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mu,Ma={exports:{}},Ml=(Mu||(Mu=1,function(s){s.exports=function n(g,u,E){function m(T,P){if(!u[T]){if(!g[T]){if(!P&&fc)return fc(T);if(D)return D(T,!0);var W=new Error("Cannot find module '"+T+"'");throw W.code="MODULE_NOT_FOUND",W}var iA=u[T]={exports:{}};g[T][0].call(iA.exports,function(EA){return m(g[T][1][EA]||EA)},iA,iA.exports,n,g,u,E)}return u[T].exports}for(var D=fc,M=0;M>>6:(EA<65536?iA[xA++]=224|EA>>>12:(iA[xA++]=240|EA>>>18,iA[xA++]=128|EA>>>12&63),iA[xA++]=128|EA>>>6&63),iA[xA++]=128|63&EA);return iA},u.buf2binstring=function(W){return P(W,W.length)},u.binstring2buf=function(W){for(var iA=new E.Buf8(W.length),EA=0,RA=iA.length;EA>10&1023,SA[RA++]=56320|1023&kA)}return P(SA,RA)},u.utf8border=function(W,iA){var EA;for((iA=iA||W.length)>W.length&&(iA=W.length),EA=iA-1;0<=EA&&(192&W[EA])==128;)EA--;return EA<0||EA===0?iA:EA+M[W[EA]]>iA?EA:iA}},{"./common":1}],3:[function(n,g,u){g.exports=function(E,m,D,M){for(var T=65535&E,P=E>>>16&65535,W=0;D!==0;){for(D-=W=2e3>>1:m>>>1;D[M]=m}return D}();g.exports=function(m,D,M,T){var P=E,W=T+M;m^=-1;for(var iA=T;iA>>8^P[255&(m^D[iA])];return-1^m}},{}],6:[function(n,g,u){g.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],7:[function(n,g,u){g.exports=function(E,m){var D,M,T,P,W,iA,EA,RA,kA,xA,LA,SA,OA,JA,ne,se,_i,Ti,Lt,Ni,cs,Se,mt,UA,oi;D=E.state,M=E.next_in,UA=E.input,T=M+(E.avail_in-5),P=E.next_out,oi=E.output,W=P-(m-E.avail_out),iA=P+(E.avail_out-257),EA=D.dmax,RA=D.wsize,kA=D.whave,xA=D.wnext,LA=D.window,SA=D.hold,OA=D.bits,JA=D.lencode,ne=D.distcode,se=(1<>>=Lt=Ti>>>24,OA-=Lt,(Lt=Ti>>>16&255)==0)oi[P++]=65535&Ti;else{if(!(16&Lt)){if(!(64&Lt)){Ti=JA[(65535&Ti)+(SA&(1<>>=Lt,OA-=Lt),OA<15&&(SA+=UA[M++]<>>=Lt=Ti>>>24,OA-=Lt,!(16&(Lt=Ti>>>16&255))){if(!(64&Lt)){Ti=ne[(65535&Ti)+(SA&(1<>>=Lt,OA-=Lt,(Lt=P-W)>3,SA&=(1<<(OA-=Ni<<3))-1,E.next_in=M,E.next_out=P,E.avail_in=M>>24&255)+(Se>>>8&65280)+((65280&Se)<<8)+((255&Se)<<24)}function SA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new E.Buf16(320),this.work=new E.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function OA(Se){var mt;return Se&&Se.state?(mt=Se.state,Se.total_in=Se.total_out=mt.total=0,Se.msg="",mt.wrap&&(Se.adler=1&mt.wrap),mt.mode=RA,mt.last=0,mt.havedict=0,mt.dmax=32768,mt.head=null,mt.hold=0,mt.bits=0,mt.lencode=mt.lendyn=new E.Buf32(kA),mt.distcode=mt.distdyn=new E.Buf32(xA),mt.sane=1,mt.back=-1,iA):EA}function JA(Se){var mt;return Se&&Se.state?((mt=Se.state).wsize=0,mt.whave=0,mt.wnext=0,OA(Se)):EA}function ne(Se,mt){var UA,oi;return Se&&Se.state?(oi=Se.state,mt<0?(UA=0,mt=-mt):(UA=1+(mt>>4),mt<48&&(mt&=15)),mt&&(mt<8||15=Gi.wsize?(E.arraySet(Gi.window,mt,UA-Gi.wsize,Gi.wsize,0),Gi.wnext=0,Gi.whave=Gi.wsize):(oi<(_s=Gi.wsize-Gi.wnext)&&(_s=oi),E.arraySet(Gi.window,mt,UA-oi,_s,Gi.wnext),(oi-=_s)?(E.arraySet(Gi.window,mt,UA-oi,oi,0),Gi.wnext=oi,Gi.whave=Gi.wsize):(Gi.wnext+=_s,Gi.wnext===Gi.wsize&&(Gi.wnext=0),Gi.whave>>8&255,UA.check=D(UA.check,dg,2,0),Tt=_t=0,UA.mode=2;break}if(UA.flags=0,UA.head&&(UA.head.done=!1),!(1&UA.wrap)||(((255&_t)<<8)+(_t>>8))%31){Se.msg="incorrect header check",UA.mode=30;break}if((15&_t)!=8){Se.msg="unknown compression method",UA.mode=30;break}if(Tt-=4,Va=8+(15&(_t>>>=4)),UA.wbits===0)UA.wbits=Va;else if(Va>UA.wbits){Se.msg="invalid window size",UA.mode=30;break}UA.dmax=1<>8&1),512&UA.flags&&(dg[0]=255&_t,dg[1]=_t>>>8&255,UA.check=D(UA.check,dg,2,0)),Tt=_t=0,UA.mode=3;case 3:for(;Tt<32;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>8&255,dg[2]=_t>>>16&255,dg[3]=_t>>>24&255,UA.check=D(UA.check,dg,4,0)),Tt=_t=0,UA.mode=4;case 4:for(;Tt<16;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>8),512&UA.flags&&(dg[0]=255&_t,dg[1]=_t>>>8&255,UA.check=D(UA.check,dg,2,0)),Tt=_t=0,UA.mode=5;case 5:if(1024&UA.flags){for(;Tt<16;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>8&255,UA.check=D(UA.check,dg,2,0)),Tt=_t=0}else UA.head&&(UA.head.extra=null);UA.mode=6;case 6:if(1024&UA.flags&&(xi<(Bo=UA.length)&&(Bo=xi),Bo&&(UA.head&&(Va=UA.head.extra_len-UA.length,UA.head.extra||(UA.head.extra=new Array(UA.head.extra_len)),E.arraySet(UA.head.extra,oi,Gi,Bo,Va)),512&UA.flags&&(UA.check=D(UA.check,oi,Bo,Gi)),xi-=Bo,Gi+=Bo,UA.length-=Bo),UA.length))break A;UA.length=0,UA.mode=7;case 7:if(2048&UA.flags){if(xi===0)break A;for(Bo=0;Va=oi[Gi+Bo++],UA.head&&Va&&UA.length<65536&&(UA.head.name+=String.fromCharCode(Va)),Va&&Bo>9&1,UA.head.done=!0),Se.adler=UA.check=0,UA.mode=12;break;case 10:for(;Tt<32;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>=7&Tt,Tt-=7&Tt,UA.mode=27;break}for(;Tt<3;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>=1)){case 0:UA.mode=14;break;case 1:if(Ni(UA),UA.mode=20,mt!==6)break;_t>>>=2,Tt-=2;break A;case 2:UA.mode=17;break;case 3:Se.msg="invalid block type",UA.mode=30}_t>>>=2,Tt-=2;break;case 14:for(_t>>>=7&Tt,Tt-=7&Tt;Tt<32;){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>16^65535)){Se.msg="invalid stored block lengths",UA.mode=30;break}if(UA.length=65535&_t,Tt=_t=0,UA.mode=15,mt===6)break A;case 15:UA.mode=16;case 16:if(Bo=UA.length){if(xi>>=5,Tt-=5,UA.ndist=1+(31&_t),_t>>>=5,Tt-=5,UA.ncode=4+(15&_t),_t>>>=4,Tt-=4,286>>=3,Tt-=3}for(;UA.have<19;)UA.lens[tS[UA.have++]]=0;if(UA.lencode=UA.lendyn,UA.lenbits=7,wI={bits:UA.lenbits},xl=T(0,UA.lens,0,19,UA.lencode,0,UA.work,wI),UA.lenbits=wI.bits,xl){Se.msg="invalid code lengths set",UA.mode=30;break}UA.have=0,UA.mode=19;case 19:for(;UA.have>>16&255,RI=65535&Yg,!((wr=Yg>>>24)<=Tt);){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>=wr,Tt-=wr,UA.lens[UA.have++]=RI;else{if(RI===16){for(AE=wr+2;Tt>>=wr,Tt-=wr,UA.have===0){Se.msg="invalid bit length repeat",UA.mode=30;break}Va=UA.lens[UA.have-1],Bo=3+(3&_t),_t>>>=2,Tt-=2}else if(RI===17){for(AE=wr+3;Tt>>=wr)),_t>>>=3,Tt-=3}else{for(AE=wr+7;Tt>>=wr)),_t>>>=7,Tt-=7}if(UA.have+Bo>UA.nlen+UA.ndist){Se.msg="invalid bit length repeat",UA.mode=30;break}for(;Bo--;)UA.lens[UA.have++]=Va}}if(UA.mode===30)break;if(UA.lens[256]===0){Se.msg="invalid code -- missing end-of-block",UA.mode=30;break}if(UA.lenbits=9,wI={bits:UA.lenbits},xl=T(P,UA.lens,0,UA.nlen,UA.lencode,0,UA.work,wI),UA.lenbits=wI.bits,xl){Se.msg="invalid literal/lengths set",UA.mode=30;break}if(UA.distbits=6,UA.distcode=UA.distdyn,wI={bits:UA.distbits},xl=T(W,UA.lens,UA.nlen,UA.ndist,UA.distcode,0,UA.work,wI),UA.distbits=wI.bits,xl){Se.msg="invalid distances set",UA.mode=30;break}if(UA.mode=20,mt===6)break A;case 20:UA.mode=21;case 21:if(6<=xi&&258<=gr){Se.next_out=Fr,Se.avail_out=gr,Se.next_in=Gi,Se.avail_in=xi,UA.hold=_t,UA.bits=Tt,M(Se,ln),Fr=Se.next_out,_s=Se.output,gr=Se.avail_out,Gi=Se.next_in,oi=Se.input,xi=Se.avail_in,_t=UA.hold,Tt=UA.bits,UA.mode===12&&(UA.back=-1);break}for(UA.back=0;xg=(Yg=UA.lencode[_t&(1<>>16&255,RI=65535&Yg,!((wr=Yg>>>24)<=Tt);){if(xi===0)break A;xi--,_t+=oi[Gi++]<>ac)])>>>16&255,RI=65535&Yg,!(ac+(wr=Yg>>>24)<=Tt);){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>=ac,Tt-=ac,UA.back+=ac}if(_t>>>=wr,Tt-=wr,UA.back+=wr,UA.length=RI,xg===0){UA.mode=26;break}if(32&xg){UA.back=-1,UA.mode=12;break}if(64&xg){Se.msg="invalid literal/length code",UA.mode=30;break}UA.extra=15&xg,UA.mode=22;case 22:if(UA.extra){for(AE=UA.extra;Tt>>=UA.extra,Tt-=UA.extra,UA.back+=UA.extra}UA.was=UA.length,UA.mode=23;case 23:for(;xg=(Yg=UA.distcode[_t&(1<>>16&255,RI=65535&Yg,!((wr=Yg>>>24)<=Tt);){if(xi===0)break A;xi--,_t+=oi[Gi++]<>ac)])>>>16&255,RI=65535&Yg,!(ac+(wr=Yg>>>24)<=Tt);){if(xi===0)break A;xi--,_t+=oi[Gi++]<>>=ac,Tt-=ac,UA.back+=ac}if(_t>>>=wr,Tt-=wr,UA.back+=wr,64&xg){Se.msg="invalid distance code",UA.mode=30;break}UA.offset=RI,UA.extra=15&xg,UA.mode=24;case 24:if(UA.extra){for(AE=UA.extra;Tt>>=UA.extra,Tt-=UA.extra,UA.back+=UA.extra}if(UA.offset>UA.dmax){Se.msg="invalid distance too far back",UA.mode=30;break}UA.mode=25;case 25:if(gr===0)break A;if(Bo=ln-gr,UA.offset>Bo){if((Bo=UA.offset-Bo)>UA.whave&&UA.sane){Se.msg="invalid distance too far back",UA.mode=30;break}Bo>UA.wnext?(Bo-=UA.wnext,ll=UA.wsize-Bo):ll=UA.wnext-Bo,Bo>UA.length&&(Bo=UA.length),wC=UA.window}else wC=_s,ll=Fr-UA.offset,Bo=UA.length;for(gr_i?(Lt=ll[wC+xA[mt]],Ni=Tt[$u+xA[mt]]):(Lt=96,Ni=0),SA=1<>Fr)+(OA-=SA)]=Ti<<24|Lt<<16|Ni,OA!==0;);for(SA=1<>=1;if(SA!==0?(_t&=SA-1,_t+=SA):_t=0,mt++,--ln[Se]==0){if(Se===oi)break;Se=W[iA+xA[mt]]}if(_s{const M=new Uint8Array(D).slice(4);let T;try{T=Ml.inflate(M,{to:"string"})}catch(P){console.error("inflate error",P)}return T})(s.data):function(D){const M=new Uint8Array(D);let T="",P=0;const{length:W}=M;for(;P0)for(let kA=0;kA{var u;const{uplinkData:E,canResend:m,resolve:D,reject:M,timeout:T}=n;if(m){this._pendingRequests.set(g,{resolve:D,reject:M,timestamp:Date.now(),uplinkData:E,timeout:T,canResend:m});const P=this._isBinarySupported?Ga(E).buffer:E;(u=this._socketAdapter)===null||u===void 0||u.send(P)}else this._pendingRequests.delete(g)})}_onConnect(s){const{socketId:n,event:g={}}=s||{};this._connectionId=n,this._connectionEstablishedTime=Date.now();const u=Date.now()-this._connectionStartTime,E=`${ct}.onConnect cost:${u} ms. socketID:${n} res:${JSON.stringify(g)}`;if(this._ssoLog({method:"onConnect",message:E}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const m=`${ct}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:m}),gn.emitInnerEvent(Pe.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:qi,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(s){const n=ua({servcmd:"openim.ws_msg_push_ack",data:{SessionData:s}});this.sendPacket(n)}_executeScheduledTaskIfReady(){return pA(this,void 0,void 0,function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()})}_canSendHeartbeat(){var s;return((s=this._socketAdapter)===null||s===void 0?void 0:s.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return pA(this,void 0,void 0,function*(){var s;const n=ua({servcmd:"heartbeat.alive",data:{}});try{const g=`${n.head.seq}${n.head.servcmd}`;yield this.sendPacket(n,{requestId:g,timeout:3e3})}catch(g){const u=(s=Xi.get("netWorkMonitor"))===null||s===void 0?void 0:s.isNetworkOnline,E=`${ct}.sendHeartbeat failed. isNetWorkOnline:${u} error: ${en(g)}`;this._ssoLog({method:"sendHeartbeatError",message:E}),this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return pA(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=To?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(s){const n=`${ct}.networkStatusChange ${JSON.stringify(s)}`;this._ssoLog({method:"networkStatusChange",message:n});const{isNetworkOnline:g,networkType:u}=s;g&&u!=="none"?this._handleConnectStateChange({state:qi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg}):this._handleConnectStateChange({state:Mi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg})}isPrivateNetWork(){const s=Xi.get("instance")||{};return s.proxyServer&&!s.fileDownloadProxy}_handleConnectStateChange(s){const{state:n,shouldAttemptReconnect:g,shouldEmitEvent:u,reason:E}=s,m=`${ct}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${g} shouldEmitEvent: ${u} reason: ${E}`;this._currentConnectState!==n&&(this._ssoLog({method:"handleConnectStateChange",message:m}),u&&(Pt.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${n}`),gn.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:n}}),this._currentConnectState=n,n===Mi&&gn.emitInnerEvent(Pe.SOCKET_DISCONNECTED)),g&&(this._resetReconnectDelay(),fn.addTask({id:Ji,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this})))}_handleActivityStatusChange(s){var n,g;const u=(g=(n=this._socketAdapter)===null||n===void 0?void 0:n._ws)===null||g===void 0?void 0:g.readyState,E=`${ct}.activityStatusChange ${JSON.stringify(s)} readyState: ${u}`;Pt.debug("activityStatusChange",E),u===3&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:sr})}_resetReconnectDelay(){var s;Pt.debug(`${ct}._resetReconnectDelay`),fn.removeTask(Ji);const n=(s=Xi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?zo:1e3}_scheduleReconnectWithBackoff(){var s;const n=(s=Xi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?Math.min(5e3,Math.max(zo,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const g=new Date().toTimeString().slice(0,8),u=`${ct}.scheduleReconnectWithBackoff timeStr: ${g} intendedDelay: ${this._intendedDelay}`;Pt.debug(u),this.reconnect(),fn.updateTaskInterval(Ji,this._intendedDelay)}_ssoLog(s){const{method:n,message:g}=s;Pt.info(n,g)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(s){pA(this,void 0,void 0,function*(){const n=s.split("/")[2];if(!n.startsWith("ws"))return;const g=`https://${n}/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:g,data:{}})}catch(u){Pt.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${u.message}`)}})}(this._url),function(s){pA(this,void 0,void 0,function*(){const n=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:n,data:{}})}catch(g){Pt.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${g.message}`)}})}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[s,n]of this._pendingRequests.entries()){const{reject:g,timestamp:u,timeout:E}=n;Date.now()-u>=E&&(this._pendingRequests.delete(s),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),g({errorCode:Qr,errorInfo:"NETWORK_TIMEOUT",data:{requestId:s}}))}}_updateIsBinarySupported(){var s;if(!((s=Xi.get("instance"))===null||s===void 0)&&s.devMode)return void(this._isBinarySupported=!1);const n=Es();if((gi||Le&&n==="windows"||Vs)&&(this._isBinarySupported=!1),To){const{uniRuntimeVersion:g=""}=io.getSystemInfoSync();(function(u){const E=u.split(".").map(Number),[m=0,D=0,M=0]=E;return m>2||!(m<2)&&(D>2||!(D<2)&&M>=6)})(g)||(this._isBinarySupported=!1)}}_isCompressedData(s){const n=new Uint8Array(s);return n[0]===67&&n[1]===79&&n[2]===77&&n[3]===80}};const fe={init:function(s){Xi.set("instance",s),ye.init()},destroy:function(){ye.dispose(),Xi.clear(),fn.dispose()},notificationCenter:gn,channel:ye,store:Xi,ssoLog:Pt,utils:yg,common:vA,constants:_e},vg=s=>typeof s=="function";function rg(s,n,g){const u=g||[];if(!s||!n)return!1;const E=Object.keys(s).filter(D=>!u.includes(D)),m=Object.keys(n).filter(D=>!u.includes(D));return E.length===m.length&&E.every(D=>!!n.hasOwnProperty(D)&&(typeof s[D]=="object"&&s[D]!==null?rg(s[D],n[D],g):s[D]===n[D]))}var Rg;(function(s){s.SDK_READY="sdkStateReady",s.SDK_NOT_READY="sdkStateNotReady",s.SDK_DESTROY="sdkDestroy",s.MESSAGE_RECEIVED="onMessageReceived",s.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",s.MESSAGE_MODIFIED="onMessageModified",s.MESSAGE_REVOKED="onMessageRevoked",s.MESSAGE_READ_BY_PEER="onMessageReadByPeer",s.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",s.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",s.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",s.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",s.CONVERSATION_LIST_UPDATED="onConversationListUpdated",s.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",s.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",s.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",s.GROUP_LIST_UPDATED="onGroupListUpdated",s.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",s.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",s.TOPIC_CREATED="onTopicCreated",s.TOPIC_DELETED="onTopicDeleted",s.TOPIC_UPDATED="onTopicUpdated",s.PROFILE_UPDATED="onProfileUpdated",s.USER_STATUS_UPDATED="onUserStatusUpdated",s.BLACKLIST_UPDATED="blacklistUpdated",s.FRIEND_LIST_UPDATED="onFriendListUpdated",s.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",s.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",s.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",s.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",s.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",s.KICKED_OUT="kickedOut",s.ERROR="error",s.NET_STATE_CHANGE="netStateChange",s.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated",s.SERVER_CONFIG_UPDATED="onServerConfigUpdated",s.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",s.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived",s.GROUP_ONLINE_MEMBER_COUNT_CHANGED="onGroupOnlineMemberCountChanged",s.RICH_STATUS_CHANGED="onRichStatusChanged"})(Rg||(Rg={}));var Dn,Dr=Rg;(function(s){s.LOGOUT="logout",s.DESTROY="destroy",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.PROFILE_UPDATE="profile_updated",s.ERROR="error",s.RECONNECTED="reconnected",s.FORCE_OFFLINE="im_open_status.stat_forceoffline",s.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",s.OVERLOAD_PUSH="OverLoadPush.notify2",s.NEW_MESSAGE="new_message",s.MESSAGE_PUSH="im_open_push.msg_push",s.MESSAGE_DELETED="message_deleted",s.MESSAGE_REVOKED="message_revoked",s.MESSAGE_MODIFIED="message_modified",s.SOCKET_DISCONNECTED="socket_disconnected",s.CONVERSATION_UPDATED="conversation_updated",s.TOPIC_MESSAGE_DELETED="topic_message_deleted",s.TOPIC_MESSAGE_REVOKED="topic_message_revoked",s.TOPIC_MESSAGE_MODIFIED="topic_message_modified",s.TOPIC_NEW_MESSAGE="topic_new_message",s.QUALITY_STAT="quality_stat",s.SYNC_CONVERSATION_LIST="sync_conversation_list",s.HISTORY_MESSAGE_FETCHED="history_message_fetched"})(Dn||(Dn={}));var Ii,so=Dn;(function(s){s.NEW_INVITATION_RECEIVED="newInvitationReceived",s.INVITEE_ACCEPTED="ts_invitee_accepted",s.INVITEE_REJECTED="ts_invitee_rejected",s.INVITATION_CANCELLED="ts_invitation_cancelled",s.INVITATION_TIMEOUT="ts_invitation_timeout",s.INVITATION_MODIFIED="ts_invitation_modified"})(Ii||(Ii={}));var Hc=Ii;const zg=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),wg={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem",MSG_STREAM:"TIMStreamElem"};var Yr;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(Yr||(Yr={}));const yc={modify:so.MESSAGE_MODIFIED,delete:so.MESSAGE_DELETED,revoke:so.MESSAGE_REVOKED};var qc;(function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"})(qc||(qc={}));const ag=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},wg),{MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest"}),{RECEIVE_WITH_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_MSG_EXCEPT_AT:"NotReceiveMsgExceptAt",MSG_AT_ALL:"__kImSDK_MesssageAtALL__"}),{MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard"}),{MessageStatus:Yr,Direction:qc}),vu={[yc.modify]:so.TOPIC_MESSAGE_MODIFIED,[yc.delete]:so.TOPIC_MESSAGE_DELETED,[yc.revoke]:so.TOPIC_MESSAGE_REVOKED},mE={GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3,USER_NOT_FOUND:"@TLS#NOT_FOUND"},_g=Object.assign({},mE),ka={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},Dc=Object.assign(Object.assign(Object.assign(Object.assign({},ka),{CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3}),{CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8}),{READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage"}),fE=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},{SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay"}),{ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny"}),{SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both"}),{SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both"}),{SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd"}),{SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single"}),{FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut"}),La={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},sa={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},Tg={JOINED:1,QUITTED:2,KICKED:3,ADMIN_SET:4,ADMIN_CANCELED:5,GROUP_PROFILE_UPDATED:6,GROUP_MEMBER_PROFILE_UPDATED:7,TOPIC_PROFILE_UPDATED:8},aI=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},La),{GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom"}),{GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11}),{JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval"}),{INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess"}),{GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers"}),{GROUP_ID_PREFIX:sa,GROUP_TIPS_OPERATION_TYPE:Tg}),hs={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},Lo=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zg),ag),_g),Dc),fE),aI),hs),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",NET_STATE_CONNECTED:"connected"}),Ea={NO_SDKAPPID:2e3,NO_TINYID:2022,NO_A2KEY:2023,USER_NOT_LOGGED_IN:2024,REPEAT_LOGIN:2025,MSG_SEND_FAIL:2100,MSG_SEND_FAIL_NOT_IN_AV:2101,MSG_SEND_GRP_WITH_TOPIC_FAIL:2115,MSG_INSTANCE_REQUIRED:2105,MSG_INVALID_CONV_TYPE:2106,MSG_REVOKE_FAIL:2110,MSG_DELETE_FAIL:2111,MSG_UNREAD_ALL_FAIL:2112,READ_RECEIPT_MSG_LIST_EMPTY:2114,CANNOT_DELETE_GRP_SYSTEM_NOTICE:2116,NOT_MY_FRIEND:2700,NETWORK_ERROR:2800,NETWORK_TIMEOUT:2801,NO_NETWORK:2805,UNCAUGHT_ERROR:2903,INVALID_OPERATION:2905,SDK_IS_NOT_READY:2999,LOGGING_IN:3e3,LOGIN_FAILED:3001,KICKED_OUT_MULT_DEVICE:3002,KICKED_OUT_MULT_ACCOUNT:3003,KICKED_OUT_USERSIG_EXPIRED:3004,LOGGED_OUT:3005,KICKED_OUT_REST_API:3006,NO_USE:3122,OPTIONS_IS_EMPTY:3153,MSG_A2KEY_EXPIRED:20002,ACCOUNT_A2KEY_EXPIRED:70001,HELLO_ANSWER_KICKED_OUT:1002,OPEN_SERVICE_OVERLOAD_ERROR:60022},nr={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3",NODE:"4"},xt={SYNC_SERVER_INFO_AFTER_RE_ONLINE:"sync-server-info-after-re-online",SYNC_SERVER_INFO_AFTER_LOGIN:"sync-server-info-after-login",RECEIVE_C2C_NEW_MESSAGE:"receive-c2c-new-message",RECEIVE_GROUP_NEW_MESSAGE:"receive-group-new-message",RECEIVE_GROUP_TIPS_NOTIFICATION:"receive-group-tips-notification"},qt={USER_STATUS_UPDATE:"user-status-update",CONVERSATION_RECOVER:"conversation-recover",HISTORY_MESSAGE_RECOVER:"history-message-recover",BLACKLIST_RECOVER:"blacklist-recover",FRIEND_RECOVER:"friend-recover",GROUP_ATTRIBUTE_CACHE_CLEAR:"group-attribute-cache-clear",UNREAD_MESSAGE_RECOVER:"unread-message-recover",HANDLE_NEW_MESSAGE:"handle-new-message",HANDLE_CONVERSATION_PROFILE_UPDATED:"handle-conversation-profile-updated",COMMERCIAL_CONFIG_UPDATE:"commercial-config-update",UNREAD_MESSAGE_SYNC:"unread-message-sync",FRIEND_AND_BLACKLIST_SYNC:"friend-and-blacklist-sync",SIGNALING_MESSAGE_RECOVER:"signaling-message-recover",GROUP_LIST_SYNC:"group-list-sync",CONVERSATION_LIST_SYNC:"conversation-list-sync",USER_PROFILE_SYNC:"user-profile-sync",CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED:"conversation-update-after-unread-sync-finished",CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED:"conversation-update-after-group-list-sync-finished",HANDLE_C2C_NEW_MESSAGE:"handle-c2c-new-message",HANDLE_GROUP_NEW_MESSAGE:"handle-group-new-message",CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE:"create-or-update-conversation-by-receive-new-message",HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD:"handle-group-tips-from-sync-unread",HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD:"handle-c2c-revoked-message-from-sync-unread",GROUP_REVOKED_NOTICE_RECOVER:"group-revoked-notice-recover",CLOUD_CONFIG_SYNC:"cloud-config-sync",UPDATE_GROUP_NEXT_SEQUENCE:"update-group-next-sequence",EMIT_C2C_MESSAGE_EVENT:"emit-c2c-message-event",EMIT_GROUP_MESSAGE_EVENT:"emit-group-message-event",CONVERSATION_GROUP_LIST_SYNC:"conversation-group-list-sync",CONVERSATION_GROUP_UPDATE:"conversation-group-update",UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED:"update-topic-after-unread-sync-finished",UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE:"update-topic-by-received-new-message",TOPIC_REQUEST_INFO_RESET:"topic-request-info-reset",QUALITY_REPORT:"quality-report",GROUP_TIPS_RECOVER:"group-tips-recover",HANDLE_GROUP_TIPS_NOTIFICATION:"handle-group-tips-notification",C2C_HISTORY_MESSAGE_RECOVER:"c2c-history-message-recover",FRIEND_APPLICATION_LIST_RECOVER:"friend-application-list-recover",EMIT_GROUP_TIPS_EVENT:"emit-group-tips-event",STREAM_MESSAGE_RECOVER:"stream-message-recover"},Ng={[xt.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:qt.USER_STATUS_UPDATE},{stepId:qt.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:qt.UNREAD_MESSAGE_SYNC,dependency:qt.C2C_HISTORY_MESSAGE_RECOVER},{stepId:qt.CONVERSATION_RECOVER},{stepId:qt.HISTORY_MESSAGE_RECOVER,dependency:qt.CONVERSATION_RECOVER},{stepId:qt.BLACKLIST_RECOVER},{stepId:qt.FRIEND_RECOVER},{stepId:qt.FRIEND_APPLICATION_LIST_RECOVER},{stepId:qt.GROUP_REVOKED_NOTICE_RECOVER,dependency:qt.HISTORY_MESSAGE_RECOVER},{stepId:qt.GROUP_TIPS_RECOVER,dependency:qt.HISTORY_MESSAGE_RECOVER},{stepId:qt.TOPIC_REQUEST_INFO_RESET},{stepId:qt.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_RECOVER]},{stepId:qt.EMIT_C2C_MESSAGE_EVENT,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:qt.C2C_HISTORY_MESSAGE_RECOVER,dependency:qt.CONVERSATION_RECOVER},{stepId:qt.STREAM_MESSAGE_RECOVER}],[xt.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:qt.COMMERCIAL_CONFIG_UPDATE},{stepId:qt.CLOUD_CONFIG_SYNC},{stepId:qt.USER_PROFILE_SYNC},{stepId:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.FRIEND_AND_BLACKLIST_SYNC},{stepId:qt.GROUP_LIST_SYNC},{stepId:qt.CONVERSATION_LIST_SYNC},{stepId:qt.SIGNALING_MESSAGE_RECOVER,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC]},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_LIST_SYNC]},{stepId:qt.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[qt.GROUP_LIST_SYNC,qt.CONVERSATION_LIST_SYNC]},{stepId:qt.CONVERSATION_GROUP_LIST_SYNC},{stepId:qt.CONVERSATION_GROUP_UPDATE,dependency:[qt.CONVERSATION_LIST_SYNC,qt.CONVERSATION_GROUP_LIST_SYNC]},{stepId:qt.QUALITY_REPORT}],[xt.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:qt.HANDLE_C2C_NEW_MESSAGE},{stepId:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_C2C_NEW_MESSAGE},{stepId:qt.EMIT_C2C_MESSAGE_EVENT,dependency:[qt.HANDLE_C2C_NEW_MESSAGE,qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC]}],[xt.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.UPDATE_GROUP_NEXT_SEQUENCE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.EMIT_GROUP_MESSAGE_EVENT,dependency:[qt.HANDLE_GROUP_NEW_MESSAGE,qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[xt.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:qt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:qt.EMIT_GROUP_TIPS_EVENT,dependency:[qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,qt.HANDLE_GROUP_TIPS_NOTIFICATION],skipIfDependencyMissing:!1}]},gI={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},rr={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},JI=["login","getMyProfile","getUserProfile","updateMyProfile","setSelfStatus","getUserStatus","subscribeUserStatus","unsubscribeUserStatus","modifyMessage","deleteGroupMember","dismissGroup","getGroupMemberList","getGroupOnlineMemberCount","joinGroup","markGroupMemberList","quitGroup","searchCloudMessages","searchCloudGroups","searchCloudGroupMembers","searchCloudUsers","getMyFollowingList","getMyFollowersList","getMutualFollowersList","followUser","unfollowUser","getUserFollowInfo","checkFollowType","getFriendProfile","addFriend","deleteFriend","updateFriend","checkFriend","setFriendApplicationRead","createFriendGroup","deleteFriendGroup","addToFriendGroup","removeFromFriendGroup","renameFriendGroup","changeGroupOwner","createGroup","dismissGroup","getGroupList","getGroupOnlineMemberCount","getGroupProfile","searchGroupByID","updateGroupProfile","handleGroupApplication","deleteGroupAttributes","getGroupAttributes","initGroupAttributes","setGroupAttributes","addGroupMember","deleteGroupMember","getGroupMemberList","getGroupMemberProfile","setGroupMemberMuteTime","setGroupMemberNameCard","setGroupMemberRole","deleteMessage","revokeMessage","setMessageExtensions","getMessageExtensions","deleteMessageExtensions","getMessageList","addMessageReaction","removeMessageReaction","clearHistoryMessage","sendMessageReadReceipt","getMessageReadReceiptList","getGroupMessageReadMemberList","createMergerMessage","invite","accept","cancel","reject","modifyInvitation","deleteConversation","pinConversation","setMessageRead","setAllMessageRead","getConversationList","getTotalUnreadMessageCount","renameConversationGroup","deleteConversationGroup","markConversation","setConversationCustomData","deleteConversationsFromGroup","addConversationsToGroup","createConversationGroup"];var za=Object.freeze({__proto__:null,ERROR_CODE:Ea,InnerEvent:so,NEED_LOG_API:JI,OuterConstant:Lo,OuterEvent:Dr,PUSH:hs,QUALITY_METRICS:gI,SDK_EDITION:nr,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:rr,SignalingEvent:Hc,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Ng,WORKFLOW_NAME:xt,WORKFLOW_STEP:qt}),na,un,Sn;(function(s){s[s.USER_INITIATED=0]="USER_INITIATED",s[s.KICKED_OUT=1]="KICKED_OUT"})(na||(na={})),function(s){s[s.multipleAccount=1]="multipleAccount",s[s.multipleDevice=2]="multipleDevice",s[s.restApi=3]="restApi"}(un||(un={})),function(s){s[s.multipleDevice=3002]="multipleDevice",s[s.multipleAccount=3003]="multipleAccount",s[s.usersigExpired=70001]="usersigExpired",s[s.restApi=20002]="restApi"}(Sn||(Sn={}));const Ru={[un.multipleAccount]:"multipleAccount",[un.multipleDevice]:"multipleDevice",[un.restApi]:"REST_API_Kick",[Sn.multipleAccount]:"multipleAccount",[Sn.multipleDevice]:"multipleDevice",[Sn.restApi]:"REST_API_Kick",[Sn.usersigExpired]:"userSigExpired"},Gg="login_online_presence_task",{ERROR:Ua,DESTROY:Kc,FORCE_OFFLINE:HI}=so,{KICKED_OUT_MULT_ACCOUNT:yE,KICKED_OUT_MULT_DEVICE:cI,KICKED_OUT_REST_API:wu,ACCOUNT_A2KEY_EXPIRED:vl,MSG_A2KEY_EXPIRED:Sc}=Ea;class _u{init(){const{notificationCenter:n}=fe;n.subscribeInnerEvent(HI,this._handleForceOfflineFromServerPush,this),n.subscribeInnerEvent(Ua,Sc,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(Ua,vl,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(Ua,yE,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Ua,cI,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Ua,wu,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Kc,this._dispose,this)}_handleForceOfflineFromServerPush(n){var g;if(((g=fe.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)===!0){const{EventArray:u=[]}=n?.body||{};this._extractKickedOutMessages(u).forEach(E=>{const{KickoutMsgNotify:{KickType:m,NewInstInfo:D,Instid:M}}=E;this._isCurrentInstanceKickedOut(M)&&this._processKickedOutReasonInfo({kickedOutReasonCode:m,newInstanceInfo:D})})}}_extractKickedOutMessages(n){return n.reduce((g,u)=>[...g,...u.C2cNotifyMsgArray||[]],[]).filter(g=>{var u;return this._isKickedOut((u=g?.KickoutMsgNotify)===null||u===void 0?void 0:u.KickType)})}_handleForceOfflineFromResponse(n){const{errorCode:g}=n;this._processKickedOutReasonInfo({kickedOutReasonCode:g})}_processKickedOutReasonInfo(n){return pA(this,void 0,void 0,function*(){const{kickedOutReasonCode:g}=n,{ssoLog:u,utils:{safeStringify:E}}=fe;try{this._logKickedOutEvent(n),this._shouldLogoutAfterKickedOut(g)?yield fe.login.loginAction.logout(na.KICKED_OUT):fe.login.loginAction.handleLogoutCompleted()}catch(m){u.debug("_processKickedOutReasonInfo",` fail ${E(m)}`)}finally{fe.notificationCenter.emitOuterEvent(Dr.KICKED_OUT,{data:{type:Ru[g]},name:Dr.KICKED_OUT})}})}_logKickedOutEvent(n){const{kickedOutReasonCode:g,newInstanceInfo:u={}}=n,E=`type:${Ru[g]} newInstanceInfo: ${JSON.stringify(u)}`;fe.ssoLog.warn("kickedOut",E)}_isKickedOut(n){return[un.multipleAccount,un.multipleDevice,un.restApi].includes(n)}_isChatLoginEvent(n){const{requestHead:g}=n||{};return g?.idtype!==1}_shouldLogoutAfterKickedOut(n){return![Sn.usersigExpired,un.restApi].includes(n)}_isCurrentInstanceKickedOut(n){const{isLoggedIn:g,statusInstanceId:u}=fe.store.get("login")||{};return g===!0&&n===u}_dispose(){const{notificationCenter:n}=fe;n.unSubscribeInnerEvent(HI,this._handleForceOfflineFromServerPush,this),n.unSubscribeInnerEvent(Ua,vl,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,Sc,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,yE,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,cI,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,wu,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Kc,this._dispose,this)}}function Tu(s){return pA(this,void 0,void 0,function*(){const n="im_open_status.wslogin",g=fe.common.generateProtocolData({servcmd:n,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:s}}),u=`${g.head.seq}${n}`,E=yield fe.channel.sendPacket(g,{timeout:9e4,requestId:u});if(E){const{HelloInterval:m,InstId:D,TinyId:M,TimeStamp:T,CustomStatus:P,PurchaseBits:W,A2Key:iA,RichMsgAuthKey:EA,ErrorCode:RA,ErrorInfo:kA,ActionStatus:xA}=E;return{helloInterval:m,instanceID:D,tinyID:M,timeStamp:T,customStatus:P,purchaseBits:W,a2Key:iA,authKey:EA,errorCode:RA,errorInfo:kA,actionStatus:xA}}})}function Rl(){const{store:s}=fe;return Ia(s.get("instance").sdkAppId)!==ut.CHINA}function rs(s){var n;try{const g=Xi.getStorage("errorMessage");if(!s||!g)return"";const u=((n=JSON.parse(g))===null||n===void 0?void 0:n.errorMessage)||{},{code:E,replacement1:m="",replacement2:D=""}=s;if(!E)return"";const M=Rl()?`${E}_en`:`${E}_cn`;let T=u[u[M]?M:E]||"";return T&&(m&&(T=T.replace("$replacement1",m)),D&&(T=T.replace("$replacement2",D))),T}catch(g){return console.warn("Error parsing stored error messages:",g),""}}class gs extends Error{constructor(n={}){n.code=n.code||n.errorCode;let{functionName:g="Unknown",code:u,message:E="",data:m="",moreMessage:D="",errorMessage:M=""}=n;M=(u?rs(n):"")||M||E;let T=u?`${g} failed. error: {"message": ${M}, "code": ${u}}`:`${g} failed. error: {"message": ${M}}`;T=`${T} ${D}`,super(),this.code=u,this.errorCode=u,this.errorMessage=M,this.message=T,this.data=m}}function Id(s,n){var g;if(s&&((g=fe.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)!==!0)throw new gs({code:Ea.USER_NOT_LOGGED_IN,functionName:n})}function lI(s,n,g){if(Array.isArray(s))for(let u=0;u{return P===(W=u,Object.prototype.toString.call(W).match(/^\[object (.*)\]$/)[1].toLowerCase());var W})){for(let W=0;W{const{interceptor:E,context:m}=u;E.apply(m,[g])})}(s)}function Mc(s,n){DE.push({interceptor:s,context:n})}function jc(s){const{params:n,auth:g}=s;n&&typeof n=="object"&&Object.assign(wl,n),g&&typeof g=="object"&&Object.assign(ud,g)}function tn(s){return fe.store.get("commercialConfig").get(s)}class ws{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(n,g)=>{const u=Date.now();g?(this._stepStartTimes.set(`${n}-${g}`,u),fe.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} started at ${new Date(u).toISOString()}`)):(this._workflowStartTimes.set(n,u),fe.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] started at ${new Date(u).toISOString()}`))},success:(n,g)=>{const u=Date.now();if(g){const E=this._stepStartTimes.get(`${n}-${g}`),m=E?u-E:0;this._stepStartTimes.delete(`${n}-${g}`),fe.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} completed successfully at ${new Date(u).toISOString()} (${m}ms)`)}else{const E=this._workflowStartTimes.get(n),m=E?u-E:0;this._workflowStartTimes.delete(n),fe.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] completed successfully at ${new Date(u).toISOString()} (${m}ms)`)}},error:(n,g,u)=>{const{ssoLog:E,utils:{safeStringify:m}}=fe,D=Date.now();if(g){const M=this._stepStartTimes.get(`${n}-${g}`),T=M?D-M:0;this._stepStartTimes.delete(`${n}-${g}`),E.error("_executeWorkflowStep",`[Workflow ${n}] Step ${g} failed at ${new Date(D).toISOString()} (${T}ms) ${m(u)}`,{error:u})}else{const M=this._workflowStartTimes.get(n),T=M?D-M:0;this._workflowStartTimes.delete(n),E.error("_executeWorkflowStep",`[Workflow ${n}] failed at ${new Date(D).toISOString()} (${T}ms) ${m(u)}`,{error:u})}}}}static getInstance(){return ws._instance||(ws._instance=new ws),ws._instance}static setInstance(n){ws._instance=n}init(){this._initializeWorkflows()}registerWorkflowStep(n,g,u,E){if(!this._handlers.has(n))return void fe.ssoLog.debug("registerWorkflowStep",`Workflow '${n}' not defined in core`);if(!Ng[n].find(D=>D.stepId===g))return void fe.ssoLog.debug("registerWorkflowStep",`Step '${g}' not defined in workflow '${n}'`);const m=this._handlers.get(n);m.has(g)||m.set(g,E?u.bind(E):u)}executeWorkflow(n,g){return pA(this,void 0,void 0,function*(){if(!this._validateWorkflow(n))return;fe.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Started execution at ${new Date().toISOString()}`);const u=Ng[n],E={},m={cancelled:!1};this._activeWorkflows.set(n,{cancelToken:m});try{const D=new Map;u.forEach(T=>{D.set(T.stepId,T)});const M={workflowName:n,pendingSteps:new Set(u.map(T=>T.stepId)),completedSteps:new Set,runningSteps:new Set,stepMap:D,stepResults:E,data:g,cancelToken:m};yield new Promise((T,P)=>{const W=()=>{if(m.cancelled)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(iA=>!M.runningSteps.has(iA)).forEach(iA=>{M.completedSteps.has(iA)||M.runningSteps.has(iA)||this._executeWorkflowStep(iA,M,{onComplete:()=>{if(M.pendingSteps.size===0)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(EA=>!M.runningSteps.has(EA)).length===0&&M.runningSteps.size===0&&(fe.ssoLog.debug("executeWorkflow",`Workflow ${n} completed with some steps skipped due to dependency failures`),T())},onError:P,onStepComplete:W})})};W()}),fe.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Completed execution at ${new Date().toISOString()}`)}catch(D){fe.ssoLog.error("executeWorkflow",`[Workflow ${n}] Failed execution at ${new Date().toISOString()}`,{error:D})}finally{this._activeWorkflows.delete(n)}})}_executeWorkflowStep(n,g,u){return pA(this,void 0,void 0,function*(){const{workflowName:E,runningSteps:m,stepMap:D,stepResults:M,data:T}=g;m.add(n),this._logWorkflowExecution(E,n,"start");try{const P=D.get(n);let W=null;P?.dependency&&(l(P.dependency)?W=M[P.dependency]:Array.isArray(P.dependency)&&(W={},P.dependency.forEach(EA=>{W[EA]=M[EA]})));const iA=this._handlers.get(E).get(n);if(iA){const EA=yield Promise.resolve(iA({data:T,result:W}));M[n]=EA,this._logWorkflowExecution(E,n,"success")}g.completedSteps.add(n)}catch(P){const W=`[Workflow].${E}.${n}`,{errorCode:iA,errorInfo:EA=`${W} failed`}=P||{},RA=new gs({functionName:W,code:iA,message:EA});fe.ssoLog.error(W,EA,{error:RA}),this._logWorkflowExecution(E,n,"error",P),u.onError(P)}finally{m.delete(n),g.pendingSteps.delete(n),u.onStepComplete(),u.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Ng).forEach(n=>{this._handlers.has(n)||this._handlers.set(n,new Map)})}_cancelWorkFlow(n){const g=this._activeWorkflows.get(n);if(!g)return;const{cancelToken:u}=g;u.cancelled=!0,this._activeWorkflows.delete(n)}_cancelAllWorkflows(){Object.keys(Ng).forEach(n=>{this._cancelWorkFlow(n)})}_validateWorkflow(n){return Ng[n]?!!this._handlers.get(n):!1}_getExecutableSteps(n){const{pendingSteps:g,completedSteps:u,stepMap:E,workflowName:m}=n;return Array.from(g).filter(D=>{const M=E.get(D)||{},{dependency:T,skipIfDependencyMissing:P=!0}=M;if(!T)return!0;if(l(T))return this._isStepRegistered({workflowName:m,stepId:T})?u.has(T):!P;if(h(T)){if(T.filter(W=>!this._isStepRegistered({workflowName:m,stepId:W})).length>0&&P)return!1;for(const W of T)if(!u.has(W))return!1;return!0}return!1})}_isStepRegistered(n){var g;const{workflowName:u,stepId:E}=n;return(g=this._handlers.get(u))===null||g===void 0?void 0:g.has(E)}_logWorkflowExecution(n,g,u,E){this._logHandlers[u](n,g)}}const da=new Map,Xr=({type:s,groupID:n})=>s===Lo.GRP_COMMUNITY||`${n}`.startsWith(sa.COMMUNITY)&&!`${n}`.includes(sa.TOPIC),Wc=(s="")=>{const n=s.startsWith("GROUP")?s.replace("GROUP",""):s;return n.startsWith(sa.COMMUNITY)&&`${n}`.includes(sa.TOPIC)},Ed="openim",Zg="million_group_open_http_svc";function gg(s){return pA(this,void 0,void 0,function*(){const{servcmd:n,data:g}=function(m){const{data:D}=m;return SE(D)||Xg(D)}(s)?function(m){let{servcmd:D,data:M}=m;return Xg(M)?function(T){const{servcmd:P,data:W}=T;let{GroupId:iA=""}=W;const EA=iA;return[iA]=EA.split(sa.TOPIC),{servcmd:qn(P),data:Object.assign(Object.assign({},W),{GroupId:iA,TopicId:EA})}}(m):(SE(M)&&(D=qn(D)),{servcmd:D,data:M})}(s):s,u=fe.common.generateProtocolData({servcmd:n,data:g}),E=`${u.head.seq}${n}`;return fe.channel.sendPacket(u,{requestId:E,timeout:s.timeout})})}function SE(s){const{Type:n,GroupId:g,GroupIdList:u=[]}=s,E=g||u[0]||"";return Xr({type:n,groupID:E})}function Xg(s){const{GroupId:n=""}=s;return Wc(n)}function qn(s){if(s.includes(Ed))return s;const n=s.split(".")[1];return`${Zg}.${n}`}function Ar(){var s;return(s=fe.store.get("login"))===null||s===void 0?void 0:s.userId}const Fa=s=>h(s)||f(s),dd=(s,n,g,u)=>{if(!Fa(s)||!Fa(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M{if(r(n))return"";if(s===Lo.MSG_TEXT)return n.text||"";const g=qI[s];return g?Nu(g):""},Zc=[{cmd:"ws_get_user_status",interval:5,count:20},{cmd:"ws_status_subscribe",interval:5,count:20},{cmd:"ws_status_unsubscribe",interval:5,count:20},{cmd:"get_group_self_member_info",interval:5,count:20},{cmd:"modify_group_base_info",interval:1,count:8},{cmd:"get_pendency",interval:1,count:15},{cmd:"set_group_attr",interval:5,count:10},{cmd:"modify_group_attr",interval:5,count:10},{cmd:"delete_group_attr",interval:5,count:10},{cmd:"clear_group_attr",interval:5,count:10},{cmd:"get_group_attr",interval:5,count:20},{cmd:"update_group_counter",interval:5,count:20},{cmd:"get_group_counter",interval:5,count:20},{cmd:"get_topic",interval:1,count:10},{cmd:"read_all_unread_msg",interval:1,count:1},{cmd:"query",interval:5,count:20}],KI="im_sdk_config_mgr.fetch_config",uI="im_sdk_config_mgr.push_configv2",Xc="cloud-config",$c=2996,va=new class{init(s){this.core=s}};function bg(s){return pA(this,void 0,void 0,function*(){const{sdkAppId:n}=va.core.store.get("instance")||{},g=va.core.helper.generateProtocolData({servcmd:KI,data:{uint32_sdkappid:n,uint64_version:s}}),u=`${g.head.seq}${KI}`;return va.core.channel.sendPacket(g,{requestId:u})})}var ys=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:u,constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},channel:D}=s;n.subscribeInnerEvent(uI,this._handlePushedConfig,this),u.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),u.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(Zc),D.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(s){return pA(this,void 0,void 0,function*(){var n;const g={code:0,data:""};return s&&(g.data=((n=this._core.store.get("cloudConfig"))===null||n===void 0?void 0:n[s])||""),g})}checkMethodCallOverLimit(s){if(!this._cmdFrequencyLimitMap.has(s))return;if(!this._methodCallFrequencyMap.has(s))return void this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});const{count:n,interval:g}=this._cmdFrequencyLimitMap.get(s);let{startTime:u,methodCallCounter:E}=this._methodCallFrequencyMap.get(s);if(Date.now()-u>1e3*g)this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});else if(E+=1,this._methodCallFrequencyMap.set(s,{startTime:u,methodCallCounter:E}),E>n)throw new this._core.helper.ChatError({code:$c,replacement1:s})}_handlePushedConfig(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.info("_handlePushedConfig",g(s)),yield this._updateCloudConfig(s)})}_handleLoginSuccess(){return pA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{if(this._canFetch()){const g=yield bg(this._version);s.info("_fetchCloudConfigIfLogin",n(g)),yield this._updateCloudConfig(g)}this._core.helper.taskScheduler.addTask({id:Xc,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(g){s.debug("_fetchCloudConfigIfLogin",n(g))}})}_fetchCloudConfigIfReady(){return pA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;if(this._canFetch())try{const g=yield bg(this._version);s.info("_fetchCloudConfigIfReady",n(g)),yield this._updateCloudConfig(g)}catch(g){s.error("_fetchCloudConfigIfReady",n(g))}})}_updateCloudConfig(s){return pA(this,void 0,void 0,function*(){const n=this._parseCloudConfig(s);n&&(this._core.store.set("cloudConfig",n),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,n),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config:n}}))})}_canFetch(){const{isLoggedIn:s}=this._core.store.get("login")||{};return s&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(s){const{int32_error_code:n,str_error_message:g,str_json_config:u,uint32_expired_time:E,uint32_sdkappid:m,uint64_version:D}=s;let M=null;if(n===0){if(this._version!==D)try{M=JSON.parse(u),this._version=D}catch{}this._expirationTime=Date.now()+1e3*E}else this._expirationTime=n===void 0?Date.now()+36e5:Date.now()+12e4;return M}_parseCmdFreqLimit(){return pA(this,void 0,void 0,function*(){var s;let n=(s=yield this.getServerConfig("cmd_frequency_limit"))===null||s===void 0?void 0:s.data;const{isEmpty:g}=this._core.utils;if(!g(n))try{n=JSON.parse(n),this._updateCmdFreqLimitMap(n)}catch(u){console.warn(u)}})}_updateCmdFreqLimitMap(s){s.forEach(n=>{this._cmdFrequencyLimitMap.set(n.cmd,{interval:n.interval,count:n.count})})}_reset(){this._core.helper.taskScheduler.removeTask(Xc),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Zc),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(uI,this._handlePushedConfig,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}};class Kn{constructor(n=0,g=0){this.high=n,this.low=g}equal(n){return n!==null&&this.low===n.low&&this.high===n.high}toString(){const n=Number(this.high).toString(16);let g=Number(this.low).toString(16);if(g.length<8){let u=8-g.length;for(;u;)g=`0${g}`,u--}return n+g}}const vc={SEARCH_GRP_SNS:new Kn(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new Kn(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new Kn(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new Kn(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new Kn(0,Math.pow(2,6)).toString(),USER_STATUS:new Kn(0,Math.pow(2,7)).toString(),CONV_MARK:new Kn(0,Math.pow(2,9)).toString(),CONV_GROUP:new Kn(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new Kn(0,Math.pow(2,11)).toString(),MSG_EXT:new Kn(0,Math.pow(2,13)).toString(),GRP_COUNTER:new Kn(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new Kn(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new Kn(Math.pow(2,7)).toString(),PLUGIN_CS:new Kn(Math.pow(2,8)).toString(),PLUGIN_PUSH:new Kn(Math.pow(2,9)).toString(),PLUGIN_BOT:new Kn(Math.pow(2,10)).toString(),MSG_REACTION:new Kn(Math.pow(2,16)).toString(),FOLLOW:new Kn(Math.pow(2,20)).toString()},jI="CommercialConfig",WI="commercial-config";var ME=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}install(s){this._core=s;const{helper:n,notificationCenter:g,constants:{WORKFLOW_NAME:u,WORKFLOW_STEP:E,InnerEvent:m}}=s;g.subscribeInnerEvent(m.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),g.subscribeInnerEvent(m.LOGOUT,this._handleLogout,this),g.subscribeInnerEvent(m.DESTROY,this._dispose,this),n.registerWorkflowStep(u.SYNC_SERVER_INFO_AFTER_LOGIN,E.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),s.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this),s.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(s){return pA(this,void 0,void 0,function*(){const n=parseInt(s,10).toString(2),{length:g}=n;let u,E=!0;for(let m=g-1,D=0;m>=0;m--,D++)if(n.charAt(m)==="1"&&(u=D<32?new Kn(0,2**D).toString():new Kn(2**(D-32),0).toString(),!this._featureMap.get(u))){E=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${jI}.isFeatureEnabled decimalNumber:${s} key:${u} ret:${E}`),{code:0,data:{enabled:E}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return pA(this,void 0,void 0,function*(){var s;const{ssoLog:n,utils:{safeStringify:g},common:{buildAndSendPacket:u}}=this._core;try{this._isFetching=!0;const E=yield u({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:(s=this._core.store.get("instance"))===null||s===void 0?void 0:s.sdkAppId}});E&&(this._parseCommercialConfig(E),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(E){n.error("_fetchAndParseCommercialConfig",g(E))}finally{this._isFetching=!1}})}_syncCommercialConfig(s){return pA(this,void 0,void 0,function*(){const{purchaseBits:n}=s?.data||{};n&&(this._parsePurchaseBits(n),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:WI,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})})}_canFetch(){var s;const n=(s=this._core.store.get("login"))===null||s===void 0?void 0:s.isLoggedIn,g=Date.now()>=this._expirationTime;return n&&!this._isFetching&&g}_handlePushedConfig(s){s?.body&&(this._parseCommercialConfig(s.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return pA(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(s){const{ssoLog:n}=this._core;if(typeof s!="object")return;const{int32_error_code:g,str_error_message:u,str_purchase_bits:E,uint32_expired_time:m}=s;g===0?(this._parsePurchaseBits(E),this._expirationTime=Date.now()+1e3*m):g===void 0?(n.warn("_parseCommercialConfig",`${jI}._parseCommercialConfig failed. Invalid message format:`,s),this._expirationTime=Date.now()+36e5):(n.warn("_parseCommercialConfig",`${jI}._parseCommercialConfig errorCode:${g} errorMessage:${u}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(s){return s&&typeof s=="string"&&s.length>=1&&s.length<=64&&/[01]{1,64}/.test(s)}_parsePurchaseBits(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(this._isValidPurchaseBits(s)){this._purchaseBits=s,this._featureMap.clear(),this._methodKeyMap.clear();let u=null;for(let E=s.length-1,m=0;E>=0;E--,m++)if(u=m<32?new Kn(0,2**m).toString():new Kn(2**(m-32),0).toString(),s[E]==="1"){this._featureMap.set(u,!0);const D=this._getKeyByValue(vc,u);D&&this._methodKeyMap.set(D,!0)}else{this._featureMap.set(u,!1);const D=this._getKeyByValue(vc,u);D&&this._methodKeyMap.set(D,!1)}}else n.warn("_parsePurchaseBits",`${jI}.parsePurchaseBits invalid purchases:${g(s)}`)}_getKeyByValue(s,n){const g=Object.entries(s).find(([u,E])=>E===n);return g?g[0]:void 0}_handleLogout(){this._reset()}_dispose(){this._reset(),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._core.helper.taskScheduler.removeTask(WI),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}},nh=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,channel:u}=this._core;n.subscribeInnerEvent(g.OVERLOAD_PUSH,this._handleOverLoadPush,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),u.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(s){if(!this._serverOverloadInfoMap.has(s))return;const{overloadStartTimestamp:n,delaySeconds:g}=this._serverOverloadInfoMap.get(s);if(Date.now()-n<=1e3*g)throw new this._core.helper.ChatError({functionName:s,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(s)}_handleOverLoadPush(s){const{OverLoadServCmd:n,DelaySecs:g}=s;this._serverOverloadInfoMap.set(n,{overloadStartTimestamp:Date.now(),delaySeconds:g})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.OVERLOAD_PUSH,this._handleOverLoadPush,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}},lC=new class{constructor(){this.name="ConfigCenter"}install(s){va.init(s),ys.install(s),ME.install(s),nh.install(s)}},rh=new class{constructor(){this.name="ErrorMessage",this._core=null}install(s){return pA(this,void 0,void 0,function*(){if(this._core=s,this._canFetch()){const n=yield this._fetchErrorMessage();if(!n)return;const g=this._parseResponse(n);this._saveErrorMessage(g)}})}_canFetch(){const s=this._core.store.getStorage("errorMessage");return!s||this._isExpired(s)}_saveErrorMessage(s){this._core.store.setStorage("errorMessage",{errorMessage:s,errorMessageSavedTime:new Date().getTime()})}_fetchErrorMessage(){return pA(this,void 0,void 0,function*(){try{return yield this._core.helper.httpRequest({method:"GET",url:"https://web.sdk.qcloud.com/im/download/error-message/v3/0.0.6/tim-error-message.txt"})}catch(s){console.error(s)}})}_isExpired(s){if(!s)return!0;const{errorMessageSavedTime:n}=s;return n&&new Date().getTime()-n>=6048e5}_parseResponse(s){if(typeof s=="string"){const n=s.split(`;
+`),g={},u=new RegExp(/'/g);for(let E=0;E{var JA,ne,se;const _i=function(Ti,Lt){const{From_Account:Ni,From_AccountHeadurl:cs,From_AccountNick:Se,IsNeedReadReceipt:mt,MsgBody:UA,MsgClientTime:oi,MsgRandom:_s,MsgSeq:Gi,MsgTimeStamp:Fr,SendMsgControl:xi,SupportMessageExtension:gr,To_Account:_t,TinyId:Tt,MsgCheckResult:$u,CloudCustomData:ln,IsPeerRead:Bo,MsgFlagBits:ll,MsgVersion:wC,EventArray:wr}=Ti;return{from:Ni,avatar:cs,nick:Se,needReadReceipt:mt===1,readReceiptSentByPeer:Bo,clientTime:oi,messageFlagBits:ll,random:_s,sequence:Gi,time:Fr,messageControlInfo:xi,isSupportExtension:gr,to:_t,tinyID:Tt,checkResult:$u,cloudCustomData:ln,messageVersion:wC,eventArray:wr,elements:Lt.message.messageHelper.parseServerPushMessageElement(UA)}}(OA,xA);if(!((se=(ne=(JA=OA?.EventArray)===null||JA===void 0?void 0:JA[0])===null||ne===void 0?void 0:ne.hasOwnProperty)===null||se===void 0)&&se.call(ne,"C2cNotifyMsgArray"))SA.push(...function(Ti){var Lt;const Ni=[];return(Lt=Ti.EventArray)===null||Lt===void 0||Lt.forEach(cs=>{var Se,mt;const{C2cNotifyMsgArray:UA}=cs,oi=(mt=(Se=UA?.[0])===null||Se===void 0?void 0:Se.WithdrawC2cMsgNotify)===null||mt===void 0?void 0:mt.C2cWithdrawInfoArray;Array.isArray(oi)&&Ni.push(...oi)}),Ni}(OA));else{const Ti=xA.message.messageFactory.createMessage(Object.assign(Object.assign({},_i),{conversationType:"C2C",flow:"in"})),{elements:Lt}=_i;Ti.setElement(Lt),LA.push(Ti)}}),{unreadMessageList:LA,revokedMessageList:SA}}(T.MsgList,n);return{syncFlag:T?.SyncFlag,unreadMessageList:EA,revokedMessageList:RA,unreadCountList:P,overflowUnreadCountList:W,cookie:T?.Cookie,groupTipList:iA}}catch(T){console.warn(T)}})}var kg,no;(function(s){s[s.START_SYNC=0]="START_SYNC",s[s.SYNCING=1]="SYNCING",s[s.SYNC_COMPLETE=2]="SYNC_COMPLETE"})(kg||(kg={})),function(s){s[s.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",s[s.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(no||(no={}));var IC=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}install(s){this._core=s;const{constants:n}=s;s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.SOCKET_DISCONNECTED,this._handleDisconnect,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(s){return pA(this,void 0,void 0,function*(){const{isAfterReOnline:n=!1,isAfterNewMessageReceived:g=!1,isAfterLogin:u=!1}=s||{};let E=kg.START_SYNC;const m=[],D=[],M=[],T=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:E});){const P=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:E,syncTriggerEvent:g?no.NEW_MESSAGE_RECEIVED:no.LOGIN_SUCCESS});if(!P)break;const{unreadMessageList:W=[],revokedMessageList:iA=[],overflowUnreadCountList:EA,unreadCountList:RA,groupTipList:kA}=P;if(this._cookie=P?.cookie||"",E=P?.syncFlag,this._parseAndSaveUnreadMessageList(W),M.push(...iA),this._updateConversationUnreadOptions({unreadCountList:RA,overflowUnreadCountList:EA,conversationUpdateFieldList:m}),Array.isArray(kA)&&D.push(...kA),n){const{messages:xA}=this._handleNewMessageList(W);T.push(...xA)}}return n?{conversationUpdateFieldList:m,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D,messages:T,isUnreadC2CMessage:!0}:{conversationUpdateFieldList:m,isInstantMessage:!u,isUnreadC2CMessage:!0,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D}})}_syncUnreadDBMessageAfterLogin(){return pA(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(s){return pA(this,void 0,void 0,function*(){if(s.data.Flag===1)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})})}_updateConversationUnreadOptions(s){const{unreadCountList:n,overflowUnreadCountList:g,conversationUpdateFieldList:u}=s,{constants:{OuterConstant:{CONV_C2C:E,CONV_SYSTEM:m}}}=this._core;n?.forEach(D=>{const{From_Account:M,UnreadCount:T}=D;if(M!==m){const P=u.find(({conversationID:W})=>W===`${E}${M}`);P?P.unreadCount=T:u.push({conversationID:`${E}${M}`,unreadCount:T,type:E})}}),g?.forEach(D=>{const{From_Account:M,LastMsgTime:T}=D;M!==m&&(u.find(({conversationID:P})=>P===`${E}${M}`)||u.push({conversationID:`${E}${M}`,type:E,lastMsgTime:T}))})}_syncUnreadDBMessageAfterReOnline(){return pA(this,void 0,void 0,function*(){return this._syncUnreadMessage({isAfterReOnline:!0})})}_updateMessageProfile(s){var n;const{messageDataHandler:g}=this._core.message||{},u=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{from:E,nick:m,avatar:D,conversationID:M=""}=s;if(E!==u){const T=g.getLatestMsgSentByPeer(M);if(T){const{nick:P,avatar:W}=T;m&&D?m===P&&D===W||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!1}):(s.nick=P,s.avatar=W)}}else{const T=g.getLatestMsgSentByMe(M);!T||m===T.nick&&D===T.avatar||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!0})}}_handleNewMessageList(s){const{messageDataHandler:n}=this._core.message||{},g=new Map,u=[];return s.forEach(E=>{this._updateMessageProfile(E);let m=E.isModified===1;if(n.isMessageSentByCurrentInstance(E)?E.isModified=m:m=!1,E.isOnlineMessage())E._onlineOnlyFlag=!0,n.isMessageSentByCurrentInstance(E)||u.push(E);else if(this._shouldStoreUnreadMessage(E)){if(n.storeConversationMessage(E)){const{conversationID:D,conversationType:M,conversationSubType:T,flow:P,_isExcludedFromUnreadCount:W,_isExcludedFromLastMessage:iA}=E,EA=iA?"":E;g.has(D)?(g.get(D).lastMessage=EA,P==="in"&&(W||g.get(D).unreadCount++)):g.set(D,{conversationID:D,type:M,subType:T,unreadCount:W||P!=="in"?0:1,lastMessage:EA})}n.isMessageSentByCurrentInstance(E)&&!m||u.push(E)}}),{messages:u,conversationOptions:g}}_shouldStoreUnreadMessage(s){var n;const{conversationID:g}=s,{message:u,appStore:E,utils:{isEmpty:m}}=this._core||{},D=Array.from(((n=E.conversationStore.getConversationMap())===null||n===void 0?void 0:n.keys())||[]),M=this._getLocalLastMessageTime(g);return!u.messageDataHandler.isInMessageList(s)&&D.includes(g)&&this._localConversationIDListBeforeDisconnect.includes(g)&&!m(M)}_fetchUnreadDBMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;try{n.debug("_fetchUnreadDBMessage",`unread-message-synchronizer._fetchUnreadDBMessage options:${g(s)}`);const E=yield Al(s,this._core);if(!E)return null;const{syncFlag:m,unreadMessageList:D,revokedMessageList:M,cookie:T,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}=E;return this._parseAndSaveUnreadMessageList(D),{syncFlag:m,cookie:T,unreadMessageList:D,revokedMessageList:M,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}}catch(u){console.log(u)}})}_canContinueSync({cookie:s,syncFlag:n}){var g;return n===kg.START_SYNC||n===kg.SYNCING&&!(!((g=this._core)===null||g===void 0)&&g.helper.isEmpty(s))}_parseAndSaveUnreadMessageList(s){s.forEach(n=>{const{ID:g}=n;this._unreadDBMessageMap.set(g,n)})}_handleDisconnect(){var s;const{appStore:n}=this._core;this._localConversationIDListBeforeDisconnect=Array.from(((s=n.conversationStore.getConversationMap())===null||s===void 0?void 0:s.keys())||[])}_getLocalLastMessageTime(s){const{message:n}=this._core,g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.time}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}},vE=new class{init(s){var n;this._core=s,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),document?.addEventListener("visibilitychange",this._visibilityChangeHandler),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var s,n;const g=document?.visibilityState==="visible";(s=this._core)===null||s===void 0||s.store.set("activityMonitor",{isActive:g}),(n=this._core)===null||n===void 0||n.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:g})}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){document?.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},RE=new class{init(s){var n;this._core=s,this._bindAppActivityEvent(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var s,n,g,u,E;const{MINI_APP_NAMESPACE:m,IN_TT_MINI_GAME:D,IN_WX_MINI_GAME:M}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};D||M?((n=m?.onShow)===null||n===void 0||n.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(g=m?.onHide)===null||g===void 0||g.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})})):((u=m?.onAppShow)===null||u===void 0||u.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(E=m?.onAppHide)===null||E===void 0||E.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},Cd=new class{init(s){const{IN_MINI_APP:n,IN_WX_MINI_PLUGIN:g}=s.helper;g||(n?RE.init(s):vE.init(s))}};const wE="none",el="online";var EI=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(this,void 0,void 0,function*(){navigator.onLine?this._onOnline():this._onOffline(),this._onOnlineCallback=this._onOnline.bind(this),this._onOfflineCallback=this._onOffline.bind(this),window.addEventListener("online",this._onOnlineCallback),window.addEventListener("offline",this._onOfflineCallback)})}_deactivateNetworkMonitoring(){this._onOnlineCallback!==null&&(window.removeEventListener("online",this._onOnlineCallback),this._onOnlineCallback=null),this._onOfflineCallback!==null&&(window.removeEventListener("offline",this._onOfflineCallback),this._onOfflineCallback=null)}_onNetworkStatusChange(s){var n,g;const{isConnected:u,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:u,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:u,networkType:E})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:el})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:wE})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},Gu=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:s}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),s.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(s){console.error(s)}})}_deactivateNetworkMonitoring(){if(this._mpNetworkStatusCallback!==null){const{utils:{MINI_APP_NAMESPACE:s}}=this._core;s.offNetworkStatusChange&&s.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null}}_onNetworkStatusChange(s){var n,g;const{isConnected:u,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:u,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:u,networkType:E})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},bu=new class{init(s){const{IN_MINI_APP:n}=s.utils;n?Gu.init(s):EI.init(s)}},uC=new class{constructor(){this.name="SystemStateMonitor"}install(s){Cd.init(s),bu.init(s)}};const vr=new Set(["tui_room_svr.*","callkit_records_svr.*","room_engine_srv.*","room_engine_http_srv.*","room_engine_mic.*","live_engine_srv.*","live_engine_http_srv.*","live_engine_pk.*","trtc_ai_service.*","call_engine_srv.*"]),cg="tui_room_svr.*";var Rc=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=vr}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:u}=s;n.subscribeInnerEvent(g.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),n.subscribeInnerEvent("im_open_push.msg_push",n.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),u.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),u.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(s){return pA(this,void 0,void 0,function*(){const n="transferBusinessCommand";try{const{serviceCommand:g=cg}=s||{};if(!this._isValidTransferredCommand(g))throw new this._core.helper.ChatError({code:2995,functionName:n});return{code:0,data:(yield function(E,m){return pA(this,void 0,void 0,function*(){const{helper:D,channel:M}=m,{serviceCommand:T=cg,data:P}=E||{};let W={};try{W=typeof P=="string"?JSON.parse(P):P}catch(RA){console.warn(RA)}const iA=D.generateProtocolData({servcmd:T,data:W}),EA=`${iA.head.seq}${T}`;return M.sendPacket(iA,{requestId:EA,shouldRejectOnError:!1})})}(s,this._core))||{}}}catch(g){throw console.warn(g),new this._core.helper.ChatError({code:g?.errorCode,message:g?.errorInfo,data:{},functionName:n})}})}_onCloudConfigUpdate(s={}){try{if(typeof s.rtc_cmd!="string")return;const n=JSON.parse(s.rtc_cmd);Array.isArray(n)&&(this._transferredCommands=new Set([...this._transferredCommands,...n]))}catch(n){console.log(n)}}_isValidTransferredCommand(s=""){const n=`${s?.split(".")[0]}.*`;return this._transferredCommands.has(n)}_onServerPushBusinessCommand(s){const{OuterEvent:n,notificationCenter:g}=this._core,{MsgContent:u}=s||{},{ROOM_CUSTOM_DATA_RECEIVED:E}=n;g.emitOuterEvent(E,{name:E,data:u})}_reset(){this._transferredCommands=vr}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;this._reset(),s.unSubscribeInnerEvent(n.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),s.unSubscribeInnerEvent("im_open_push.msg_push",s.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const ku=1,_l=2,hd=3,$r=4,dI=5,_n="TIMCustomElem",EC="C2C",tl="GROUP",Bd="invite",CI="accept",Oa="cancel",dC="reject",Pa="modifyInvitation",ur="signaling",Qd=8010,Lu="signaling-timeout";function Er(s){return s.filter(n=>{if(n.type===_n){const{cloudCustomData:g="",payload:{data:u=""}={}}=n,E=g.match(/"type":"tsignaling"/),m=u.match(/inviteID/),D=u.match(/actionType/);return E||m&&D}return!1})}function wc(s){const{data:n}=s.payload;try{return JSON.parse(n)}catch(g){return console.error(g),null}}function il(s,n){return s.toString(16).padStart(n,"0")}function Lg(s){if(s<0||s>53)throw new Error("Number of digits must be between 0 and 53");if(s<=30)return Math.floor(Math.random()*(1<0;const M=this._core.common.getCurrentUserID();return D.includes(M)}return!0}updateSignaling(s){const n=`${ur}.updateSignaling`,{inviteID:g,inviter:u,inviteeList:E,groupID:m}=s;if(console.log(`${n} inviteID:${g} inviter:${u} groupID:${m}`),m&&this.hasSignaling(g)){const D=E[0],{inviteeList:M}=this._onlineSignalingMap.get(g);M.includes(D)&&(M.splice(M.indexOf(D),1),console.log(`${n} remove ${D}. localInviteeList.length:${M.length}`)),M.length===0&&this.removeSignaling(g)}else this.removeSignaling(g)}setSignalingListenStatus(s){this._isSignalingListening=s}getSignalingListenStatus(){return this._isSignalingListening}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._isSignalingListening=!1}_reset(){this._onlineSignalingMap.clear()}},$g=new class{init(s){this._core=s}createInviteSignaling(s){const n=this._generateInviteID(),g=this._createInviteSignalingData(Object.assign(Object.assign({},s),{inviteID:n})),{groupID:u,inviteeList:E}=g,m=u||E[0];return{signaling:this._createSignaling(g,m),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createAcceptSignaling(s){const n=this._createAcceptSignalingData(s),{groupID:g,inviter:u}=n,E=g||u;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createCancelSignaling(s){const n=this._createCancelSignalingData(s),{groupID:g,inviteeList:u}=n,E=g||u[0];return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createRejectSignaling(s){const n=this._createRejectSignalingData(s),{groupID:g,inviter:u}=n,E=g||u;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createTimeoutSignaling(s){const{isInviter:n=!1}=s,g=this._createTimeoutSignalingData(s),{groupID:u,inviteeList:E,inviter:m}=g,D=u||(n?E[0]:m);return{signaling:this._createSignaling(g,D),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(g)}}_createSignalingExtensionOptions(s){var n,g;const{data:u="",onlineUserOnly:E,inviteID:m="",offlinePushInfo:D,actionType:M}=s,T=((g=(n=Oo.getSignaling(m))===null||n===void 0?void 0:n.signaling)===null||g===void 0?void 0:g._onlineOnlyFlag)||!1;return{onlineUserOnly:E||T,offlinePushInfo:D,messageControlInfo:this._createMessageControlInfo(u,M)}}_createMessageControlInfo(s,n){const g=n===dI&&!!s.match(/excludeTimeoutSignalingFromHistoryMessage/),u=!!s.match(/excludeFromHistoryMessage/)||!!s.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:g||u,excludedFromLastMessage:g||u}}_createInviteSignalingData(s){const n=`${ur}._createInviteSignalingData`,{userID:g,timeout:u=0,groupID:E="",inviteeList:m=[]}=s,D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:ku,inviter:D,inviteeList:E?m:[g],timeout:u});return console.log(`${n} signalingData:`,M),M}_createAcceptSignalingData(s){const n=`${ur}._createAcceptSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:hd,groupID:m,inviter:E,inviteeList:[u]});return console.log(`${n} signalingData:`,D),D}_createCancelSignalingData(s){const n=`${ur}._createCancelSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviteeList:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:_l,groupID:m,inviter:u,inviteeList:E});return console.log(`${n} signalingData:`,D),D}_createRejectSignalingData(s){const n=`${ur}._createRejectSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:$r,groupID:m,inviter:E,inviteeList:[u]});return console.log(`${n} signalingData:`,D),D}_createTimeoutSignalingData(s){const n=`${ur}._createTimeoutSignalingData`,{isInviter:g=!1,inviteID:u}=s,{inviteeList:E,inviter:m}=Oo.getSignaling(u),D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:dI,inviter:m,inviteeList:g?E:[D]});return console.log(`${n} signalingData:`,M),M}_createSignaling(s,n){var g,u,E;const{groupID:m=""}=s,D={to:n,conversationType:m?tl:EC,priority:"High",payload:{data:JSON.stringify(s)}};return(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(D)}_generateInviteID(){return[il(Lg(32),8),il(Lg(16),4),il(16384|Lg(12),4),il(32768|Lg(14),4),il(Lg(48),12)].join("-")}_generateBaseSignalData(s){const{data:n="",inviteID:g="",groupID:u=""}=s;return{businessID:1,timeout:0,data:n,inviteID:g,groupID:u}}},Za=new class{constructor(){this._isProcessingSignaling=!1}init(s){this._core=s,s.helper.registerApi({apiName:"invite",context:this}),s.helper.registerApi({apiName:"accept",context:this}),s.helper.registerApi({apiName:"cancel",context:this}),s.helper.registerApi({apiName:"reject",context:this}),s.helper.registerApi({apiName:"modifyInvitation",context:this}),s.helper.registerApi({apiName:"getSignalingInfo",context:this}),s.helper.registerApi({apiName:"addSignalingListener",context:this}),s.helper.registerApi({apiName:"removeSignalingListener",context:this}),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this)}invite(s){return pA(this,void 0,void 0,function*(){var n;try{this._validateBeforeInvite(s);const{signaling:g,signalingData:u,signalingExtensionOptions:E}=$g.createInviteSignaling(s),m=yield this._sendSignaling(g,E);if(m?.code===0){const{inviteID:D,timeout:M}=u;return Oo.saveSignaling(D,Object.assign(Object.assign({},u),{signaling:g})),M>0&&((n=this._core)===null||n===void 0||n.helper.taskScheduler.addOnceTask({id:`${Lu}-${D}`,intervalMs:1e3*(M+5),callback:this.handleInvitationExpiryTimer.bind(this,D)})),Object.assign(Object.assign({},m),{inviteID:D})}return m}catch(g){throw g}})}accept(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeAccept(n),this._isProcessingSignaling=!0;const{signaling:g,signalingData:u,signalingExtensionOptions:E}=$g.createAcceptSignaling(s),m=yield this._sendSignaling(g,E);return m?.code===0?(Oo.updateSignaling(u),Object.assign(Object.assign({},m),{inviteID:n})):m}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}cancel(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeCancel(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:u}=$g.createCancelSignaling(s),E=yield this._sendSignaling(g,u);return E?.code===0?(Oo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}reject(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeReject(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:u}=$g.createRejectSignaling(s),E=yield this._sendSignaling(g,u);return E?.code===0?(Oo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}modifyInvitation(s){return pA(this,void 0,void 0,function*(){var n,g;const{inviteID:u,data:E}=s;let m="";try{this._validateBeforeModifyInvitation(u);const D=Oo.getSignaling(u),{signaling:M}=D,T=Do(D,["signaling"]);m=M.payload.data,T.data=E,M.payload.data=JSON.stringify(T);const P=yield(g=(n=this._core)===null||n===void 0?void 0:n.message.messageAction)===null||g===void 0?void 0:g.modifyMessage(M);return Oo.hasSignaling(u)&&Oo.saveSignaling(u,Object.assign(Object.assign({},T),{signaling:M})),P}catch(D){if(m){const{signaling:M}=Oo.getSignaling(u);M.payload.data=m}throw D}})}getSignalingInfo(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(Er([s]).length===0)return;const u=wc(s),E={businessID:u.businessID||1,inviteID:u.inviteID,groupID:u.groupID||"",inviter:u.inviter||"",inviteeList:u.inviteeList||[],data:u.data||"",actionType:u.actionType||ku,timeout:u.timeout||0};return n.debug(`${ur} getSignalingInfo ${g(E)}`),E}addSignalingListener(s,n,g){var u,E;s===((u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED)&&Oo.setSignalingListenStatus(!0),(E=this._core)===null||E===void 0||E.notificationCenter.subscribeOuterEvent(s,n,g)}removeSignalingListener(s,n,g){var u,E;s===((u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED)&&Oo.setSignalingListenStatus(!1),(E=this._core)===null||E===void 0||E.notificationCenter.unSubscribeOuterEvent(s,n,g)}handleInvitationExpiryTimer(s){const n=Oo.getOnlineSignalingMap(),g=this._core.common.getCurrentUserID();if(!n.has(s))return;const u=n.get(s).inviter===g;this._sendTimeoutNotice({inviteID:s,isInviter:u})}_sendSignaling(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;return(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)})}_sendTimeoutNotice(s){return pA(this,void 0,void 0,function*(){var n,g,u;this._core.ssoLog.debug("_sendTimeoutNotice",`${ur}._sendTimeoutNotice params:${JSON.stringify(s)}`);const{isInviter:E,inviteID:m}=s,{signaling:D,signalingData:M,signalingExtensionOptions:T}=$g.createTimeoutSignaling(s),P=yield this._sendSignaling(D,T);if(P?.code===0){const{data:W,groupID:iA,inviteeList:EA,inviter:RA}=M;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent((g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_TIMEOUT,{name:(u=this._core)===null||u===void 0?void 0:u.SignalingEvent.INVITATION_TIMEOUT,data:{data:W,groupID:iA,inviteID:m,inviteeList:EA,inviter:RA,isSelfTimeout:!0,message:D}}),E?Oo.removeSignaling(m):Oo.updateSignaling(M)}})}_validateInviteId(s,n){if(!Oo.hasSignaling(n))throw new this._core.helper.ChatError({functionName:s,code:Qd})}_validateProcessStatus(s){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:s,message:"processing other signaling operations"})}_validateBeforeInvite(s){const n=Bd,{userID:g}=s,u=this._core.common.getCurrentUserID();if(g===u)throw new this._core.helper.ChatError({functionName:n,message:`cannot invite yourself, currentUserId:${u}, inviteeId:${g}`})}_validateBeforeAccept(s){const n=CI;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:u}=Oo.getSignaling(s);if(!u.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeCancel(s){const n=Oa;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviter:u}=Oo.getSignaling(s);if(u!==g){const E=`unmatched inviter:${u} and my userID:${g}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeReject(s){const n=dC;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:u}=Oo.getSignaling(s);if(!u.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeModifyInvitation(s){const n=Pa;this._validateInviteId(n,s)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this)}_reset(){this._isProcessingSignaling=!1}},Tl=new class{constructor(){this._actionProcessor=new Map([[ku,this._onNewInvitationReceived.bind(this)],[$r,this._onInviteeRejected.bind(this)],[hd,this._onInviteeAccepted.bind(this)],[_l,this._onInvitationCancelled.bind(this)],[dI,this._onInvitationTimeout.bind(this)]])}init(s){this._core=s,s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}handleActionSignaling(s){s.forEach(n=>{const g=wc(n);if(g){const u=this._actionProcessor.get(g.actionType);u?.(g,n)}})}_handleMessageReceived(s){if(!Oo.getSignalingListenStatus())return;const n=Er(s.data);n.length!==0&&this.handleActionSignaling(n)}_handleMessageModified(s){if(!Oo.getSignalingListenStatus())return;const n=Er(s.data);n.length>0&&n.forEach(g=>{const u=wc(g);u&&this._onInvitationModified(u,g)})}_onNewInvitationReceived(s,n){var g,u;const E=`${ur}._onNewInvitationReceived`,{inviteID:m,inviteeList:D,groupID:M}=s,T=this._core.common.getCurrentUserID();if(this._core.ssoLog.debug("_onNewInvitationReceived",`${E} signalingData:${JSON.stringify(s)}}`),M&&!D.includes(T))return;let{timeout:P}=s;const W=Date.now()/1e3-n.time;P>0&&W>0&&P>W&&(P-=W);const iA=Oo.getSignaling(m);iA!==s&&(iA||Oo.saveSignaling(m,Object.assign(Object.assign({},s),{signaling:n})),P>0&&((g=this._core)===null||g===void 0||g.helper.taskScheduler.addOnceTask({id:`${Lu}-${m}`,intervalMs:1e3*P,callback:Za.handleInvitationExpiryTimer.bind(Za,m)})),this._emitEvent({name:(u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:D})}))}_onInviteeRejected(s){var n;const g=`${ur}._onInviteeRejected`,{inviteID:u,inviter:E,groupID:m,inviteeList:D}=s,M=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInviteeRejected",`${g} inviteID:${u} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_REJECTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInviteeAccepted(s){var n;const g=`${ur}._onInviteeAccepted`,{inviteID:u,inviter:E,groupID:m,inviteeList:D}=s,M=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInviteeAccepted",`${g} inviteID:${u} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_ACCEPTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInvitationCancelled(s){var n;const g=`${ur}._onInvitationCancelled`,{inviteID:u,inviter:E,groupID:m}=s,D=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInvitationCancelled",`${g} inviteID:${u} hasInviteID:${D} inviter:${E} groupID:${m}`),D&&(Oo.removeSignaling(u),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_CANCELLED,data:this._generateBaseEmitData(s)}))}_onInvitationTimeout(s){var n;const g=`${ur}._onInvitationTimeout`,{inviteID:u,inviteeList:E}=s,m=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInvitationTimeout",`${g} inviteID:${u} hasInviteID:${m} data:${s.data}`),m&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_TIMEOUT,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:E,isSelfTimeout:!1})}))}_onInvitationModified(s,n){var g;const u=`${ur}._onInvitationModified`,{inviteID:E,data:m}=s,D=Oo.hasSignaling(E);this._core.ssoLog.debug("_onInvitationModified",`${u} inviteID:${E} data:${m}`),D&&(Oo.saveSignaling(E,Object.assign(Object.assign({},s),{signaling:n})),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_MODIFIED,data:{inviteID:E,data:m}}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}_generateBaseEmitData(s){const{inviteID:n,inviter:g,groupID:u,data:E}=s;return{inviteID:n,inviter:g,groupID:u,data:E||""}}_dispose(){var s,n,g;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),(g=this._core)===null||g===void 0||g.notificationCenter.unSubscribeOuterEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}},Aa=new class{constructor(){this._offlineSignalingMap=new Map}init(s){this._core=s;const{notificationCenter:n,helper:g,constants:{InnerEvent:u,WORKFLOW_STEP:E,WORKFLOW_NAME:m}}=s;n.subscribeInnerEvent(u.DESTROY,this._dispose,this),n.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_LOGIN,E.SIGNALING_MESSAGE_RECOVER,this._handleC2COfflineMessage,this)}_handleC2COfflineMessage(s){const{result:{unreadMessageMap:n}={}}=s||{};if(!(n?.size!==0&&Oo.getSignalingListenStatus()))return;const g=Er([...n.values()]);if(g.length!==0&&(g.forEach(u=>{this._handleC2CActionType(u)}),this._offlineSignalingMap.size>0)){const u=this._sortOfflineSignalingByTime();Tl.handleActionSignaling(u)}}_handleC2CActionType(s){const n=wc(s);if(!n)return;const{actionType:g}=n;g===ku?this._saveValidOfflineInvite(n,s):this._removeOfflineInvite(n)}_saveValidOfflineInvite(s,n){const{inviteID:g,inviteeList:u=[],timeout:E=0}=s,m=this._core.common.getCurrentUserID();if(!u.includes(m))return;const D=Date.now()/1e3-n.time;E>0&&D>E&&E!==0||this._offlineSignalingMap.set(g,Object.assign(Object.assign({},s),{signalingList:[n]}))}_removeOfflineInvite(s){const{inviteID:n=""}=s;this._offlineSignalingMap.has(n)&&this._offlineSignalingMap.delete(n)}_sortOfflineSignalingByTime(){let s=[];return this._offlineSignalingMap.forEach(n=>{s=[...s,...n.signalingList]}),s.sort((n,g)=>n.time-g.time)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._offlineSignalingMap.clear()}};const ah={invite:{userID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0},timeout:{required:!1,rules:["number"],allowEmpty:!1},onlineUserOnly:{required:!1,rules:["boolean"],allowEmpty:!1},offlinePushInfo:{required:!1,rules:["object"],allowEmpty:!1}},cancel:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},accept:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},reject:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},modifyInvitation:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}}},js={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var zI=new class{constructor(){this.name="Signaling"}install(s){Za.init(s),Tl.init(s),$g.init(s),Oo.init(s),Aa.init(s),s.helper.registerValidateConfig({auth:js,params:ah})}};const Us=new class{init(s){this.core=s}};function _c(s){let n;const{message:g}=Us.core,{conversationID:u,messageID:E}=s;return n=g.messageDataHandler.getLocalMessageList(u).find(m=>m.ID===E),!n&&(n=g.messageDataHandler.getSparseMessageList(u).find(m=>m.ID===E)),n}function Ac(s){return s.map(n=>{const{from:g,to:u,cloudCustomData:E,avatar:m,nick:D,ID:M,clientSequence:T,clientTime:P,messageRandom:W,messageSequence:iA,time:EA}=n;return{ClientSeq:T,CloudCustomData:E,From_Account:g,From_AccountHeadurl:m,From_AccountNick:D,Id:M,MsgBody:JSON.parse(JSON.stringify(n.transformElementsToServerFormat())),MsgClientTime:P,MsgRandom:W,Random:W,MsgSeq:iA,MsgTimeStamp:EA,ReceiverId:u,SenderId:g,To_Account:u}})}function dr(s){var n;const{From_Account:g,From_AccountHeadurl:u,From_AccountNick:E,GroupId:m,MsgClientTime:D,ClientSeq:M,To_Account:T,MsgTimeStamp:P,TinyId:W,MsgRandom:iA,MsgSeq:EA}=s;return{from:g,avatar:u,nick:E,clientTime:D,time:P,tinyID:W,random:iA,sequence:EA,to:T,groupID:m,clientSequence:M,_elements:(n=s.MsgBody)===null||n===void 0?void 0:n.map(RA=>{const{MsgType:kA}=RA;return Us.core.message.messageFactory.getElementClass(kA).parseServerPushElement(RA)})}}var Vr,Xa;(function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_STREAM="TIMStreamElem"})(Vr||(Vr={})),function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"}(Xa||(Xa={}));const _E="MSG_REACTION",CC="MSG_EXT",gh=0,ro=1,Tc={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},Nl="16k_zh",hC="16k_en",BC="16k_yue",Gl="16k_ja",ZI="16k_zh-PY",hI={[Tc.ZH_CN]:Nl,[Tc.EN_US]:hC,[Tc.YUE_HK]:BC,[Tc.JA_JP]:Gl,[Tc.ZH_PY]:ZI},BI=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,TE={READ:0,UNREAD:1},bl=1,kl=2,Ug=3;var ec;(function(s){s.IN="in",s.OUT="out"})(ec||(ec={}));const pd=16,NE=17;var Nc;(function(s){s[s.DATA=0]="DATA",s[s.REVOKED=1]="REVOKED"})(Nc||(Nc={}));var XI;(function(s){s[s.NORMAL=0]="NORMAL",s[s.TIMEOUT=1]="TIMEOUT"})(XI||(XI={}));const co="StreamMsg.PushStreamHttp";var GE=new class{constructor(){this._reactionsMap=new Map}init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:u},InnerEventSubType:{MESSAGE_REACTION_UPDATED:E,MESSAGE_REACTION_UPDATED_SYNC:m}}=s;n.registerApi({apiName:"addMessageReaction",context:this}),n.registerApi({apiName:"removeMessageReaction",context:this}),n.registerApi({apiName:"getMessageReactions",context:this}),n.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),g.subscribeInnerEvent(u,E,this._handleReactionUpdated,this),g.subscribeInnerEvent(u,m,this._handleReactionSync,this)}addMessageReaction(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,ssoLog:u,helper:E}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:m,ID:D,conversationType:M,from:T,to:P,clientSequence:W,random:iA,time:EA,sequence:RA}=s,kA=`conversationID:${m} messageID:${D} reactionID:${n}`;try{return this._recordMessageReactedByMe(D,n),M===g.CONV_C2C?yield function(xA,LA){return pA(this,void 0,void 0,function*(){var SA;const{from:OA,to:JA,clientSequence:ne,random:se,time:_i,reactionID:Ti}=xA,Lt={From_Account:OA,To_Account:JA,MsgKey:`${ne}_${se}_${_i}`,Reaction:Ti,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:Lt})})}({from:T,to:P,clientSequence:W,random:iA,time:EA,reactionID:n},this._core):M===g.CONV_GROUP&&(yield function(xA,LA){return pA(this,void 0,void 0,function*(){var SA;const{to:OA,reactionID:JA,sequence:ne}=xA,se={GroupId:OA,MsgSeq:ne,Reaction:JA,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:se})})}({to:P,reactionID:n,sequence:RA},this._core)),{code:0,successLog:{message:kA}}}catch(xA){this._removeMyReactionRecord(D,n);const{errorCode:LA}=xA||{};throw new E.ChatError({functionName:"addMessageReaction",code:LA,moreMessage:kA})}})}removeMessageReaction(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,helper:u}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:E,ID:m,conversationType:D,from:M,to:T,clientSequence:P,random:W,time:iA,sequence:EA}=s,RA=`conversationID:${E} messageID:${m} reactionID:${n}`;try{return this._removeMyReactionRecord(m,n),D===g.CONV_C2C?yield function(kA,xA){return pA(this,void 0,void 0,function*(){var LA;const{from:SA,to:OA,clientSequence:JA,random:ne,time:se,reactionID:_i}=kA,Ti={From_Account:SA,To_Account:OA,MsgKey:`${JA}_${ne}_${se}`,Reaction:_i,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:Ti})})}({from:M,to:T,clientSequence:P,random:W,time:iA,reactionID:n},this._core):D===g.CONV_GROUP&&(yield function(kA,xA){return pA(this,void 0,void 0,function*(){var LA;const{to:SA,reactionID:OA,sequence:JA}=kA,ne={GroupId:SA,MsgSeq:JA,Reaction:OA,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:ne},xA)})}({to:T,reactionID:n,sequence:EA},this._core)),{code:0,successLog:{message:RA}}}catch(kA){const{errorCode:xA}=kA||{};throw new u.ChatError({functionName:"removeMessageReaction",code:xA,moreMessage:RA})}})}getAllUserListOfMessageReaction(s){return pA(this,void 0,void 0,function*(){this._validateMessageReactionBusinessCapability();const{message:n,reactionID:g,nextSeq:u=0}=s,E=s.count>100?100:s.count,{conversationID:m}=n,{ssoLog:D,helper:M,constants:T}=this._core;try{let P=null;if(P=m.startsWith(T.OuterConstant.CONV_C2C)?yield function(W){return pA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{from:xA,to:LA,clientSequence:SA,random:OA,time:JA}=iA,ne={Reaction:RA,NextSeq:EA,Count:kA,From_Account:xA,To_Account:LA,MsgKey:`${SA}_${OA}_${JA}`};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:ne})})}({message:n,reactionID:g,nextSeq:u,count:E}):yield function(W){return pA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{sequence:xA,to:LA}=iA,SA={Reaction:RA,NextSeq:EA,GroupId:LA,Count:kA,MsgSeq:xA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:SA})})}({message:n,reactionID:g,nextSeq:u,count:E}),P){const{Reaction_Account:W,NextSeq:iA}=P,EA=yield this._getUserProfileList(W);return{code:0,data:{nextSeq:iA,isCompleted:u===0,userList:EA}}}}catch(P){const{errorCode:W}=P||{};throw new M.ChatError({functionName:"getAllUserListOfMessageReaction",code:W})}})}getMessageReactions(s){return pA(this,void 0,void 0,function*(){const{constants:n}=this._core;this._validateMessageReactionBusinessCapability();const{messageList:g,maxUserCountPerReaction:u=10}=s,E=g[0];let m=null;const D=new Map,{from:M,to:T,conversationType:P}=E,W=this._generateMessageKeyList(g,D);P===n.OuterConstant.CONV_C2C?m=yield function(kA){return pA(this,void 0,void 0,function*(){const{from:xA,to:LA,messageKeyList:SA,maxUserCountPerReaction:OA}=kA,JA={From_Account:xA,To_Account:LA,MsgKeyList:SA,Count:OA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:JA})})}({from:M,to:T,messageKeyList:W,maxUserCountPerReaction:u}):P===n.OuterConstant.CONV_GROUP&&(m=yield function(kA){return pA(this,void 0,void 0,function*(){const{groupId:xA,messageSequenceList:LA,maxUserCountPerReaction:SA}=kA,OA={GroupId:xA,MsgSeqList:LA,Count:SA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:OA})})}({groupId:T,messageSequenceList:W,maxUserCountPerReaction:u}));const{Results:iA=[]}=m||{},EA=this._extractUserIDsFromReactionResults(iA),RA=yield this._getUserProfileMap(EA);return{code:0,data:{resultList:iA.map(kA=>{const{ReactionList:xA,MsgSeq:LA,MsgKey:SA}=kA;return{messageID:this._generateMessageID({messageSequence:LA,messageKey:SA,messageIDMap:D}),reactionList:xA.map(OA=>{const{Reaction:JA,Count:ne,Reaction_Account:se,ReactedByMe:_i}=OA;return{reactionID:JA,totalUserCount:ne,partialUserList:this._generatePartialUserInfo({userIDList:se,userProfileMap:RA}),reactedByMyself:_i===1}})}})}}})}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(s){const n=[];return s?.forEach(g=>{const{ReactionList:u=[]}=g;u.forEach(E=>{E.Reaction_Account&&n.push(...E.Reaction_Account)})}),n}_getUserProfileList(s){return pA(this,void 0,void 0,function*(){var n;try{const g=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:s});return g?g.data:[]}catch{return[]}})}_getUserProfileMap(s){return pA(this,void 0,void 0,function*(){const n=new Map;return(yield this._getUserProfileList(s)).forEach(g=>{const{nick:u,avatar:E,userID:m}=g;n.set(m,{nick:u,avatar:E,userID:m})}),n})}_recordMessageReactedByMe(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)?this._reactionsMap.get(g).reactedByMe=!0:this._reactionsMap.set(g,{reactedByMe:!0})}_removeMyReactionRecord(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)&&(this._reactionsMap.get(g).reactedByMe=!1)}_recordMessageReactionInfo(s){const{messageID:n,reactionID:g,reactionInfo:u}=s,E=`${n}-${g}`,m=this._reactionsMap.get(E)||{};this._reactionsMap.set(E,Object.assign(Object.assign({},m),u))}_validateMessageReactionBusinessCapability(){const{helper:s,constants:n}=this._core;if(!s.checkBusinessCapabilityBits(_E))throw new s.ChatError({functionName:"addMessageReaction",code:n.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(s){const{MsgReactionNotifyList:n}=s,{notificationCenter:g,constants:u}=this._core;n.forEach(E=>pA(this,void 0,void 0,function*(){const{C2CMsgInfo:m,GroupMsgInfo:D,MsgReactionSummary:M}=E,{TinyId:T,MsgClientTime:P,MsgRandom:W}=Object.assign(Object.assign({},m),D),iA=`${T}-${P}-${W}`,EA=this._extractUserIDsFromReactionResults([{ReactionList:M}]),RA=yield this._getUserProfileMap(EA),kA=M.map(xA=>{var LA;const{Reaction:SA,Reaction_Account:OA}=xA,JA=this._generatePartialUserInfo({userIDList:OA,userProfileMap:RA}),ne=OA?xA.Count:0,se=((LA=this._reactionsMap.get(`${iA}-${SA}`))===null||LA===void 0?void 0:LA.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:iA,reactionID:SA,reactionInfo:{reactionID:SA,totalUserCount:ne,partialUserList:JA}}),{reactionID:SA,totalUserCount:ne,partialUserList:JA,reactedByMyself:se}});g.emitOuterEvent(u.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:u.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:kA}})}))}_handleReactionSync(s){var n;const{notificationCenter:g,constants:u}=this._core,{C2CMsgInfo:E={},GroupMsgInfo:m={},Reaction:D,OperateType:M}=s.MsgReactionNotify,{TinyId:T="",MsgClientTime:P=0,MsgRandom:W=0}=Object.assign(Object.assign({},E),m),iA=`${T}-${P}-${W}`,EA=`${iA}-${D}`;if(M===1?this._recordMessageReactedByMe(iA,D):this._removeMyReactionRecord(iA,D),(n=this._reactionsMap.get(EA))===null||n===void 0?void 0:n.reactionID){const RA=this._reactionsMap.get(EA);RA.reactedByMyself=M===1,g.emitOuterEvent(u.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:u.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:[RA]}})}}_generatePartialUserInfo({userIDList:s,userProfileMap:n}){const g=[];return s?.forEach(u=>{n.has(u)&&g.push(n.get(u))}),g}_generateMessageID(s){const{messageSequence:n,messageKey:g,messageIDMap:u}=s;return g?u.get(g):u.get(n)}_generateMessageKeyList(s,n){const{constants:g}=this._core,u=s[0],{conversationType:E}=u;let m=[];return E===g.OuterConstant.CONV_C2C?m=s.map(D=>{const{clientSequence:M,random:T,time:P,ID:W}=D,iA=`${M}_${T}_${P}`;return n.set(iA,W),iA}):E===g.OuterConstant.CONV_GROUP&&(m=s.map(D=>{const{ID:M,sequence:T}=D;return n.set(T,M),T})),m}},$a=new class{init(s){this._core=s;const{helper:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:u,GROUP_MESSAGE_READ_RECEIPT:E},notificationCenter:m}=s;n.registerApi({apiName:"sendMessageReadReceipt",context:this}),n.registerApi({apiName:"getMessageReadReceiptList",context:this}),n.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),m.subscribeInnerEvent(g,u,this._handleC2CMessageReadReceipt,this),m.subscribeInnerEvent(g,E,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(s){return pA(this,void 0,void 0,function*(){var n;const{common:g,constants:u}=this._core,E=this._filterValidMessageSendByOther(s);if(E.length===0)throw new g.ChatError({code:u.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{const{conversationType:m}=E[0];return m===u.OuterConstant.CONV_C2C?yield function(D){return pA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P=D[0].conversationID.replace(T.OuterConstant.CONV_C2C,""),W=D.map(EA=>{const{from:RA,to:kA,sequence:xA,random:LA,time:SA,clientTime:OA}=EA;return{From_Account:RA,To_Account:kA,MsgSeq:xA,MsgRandom:LA,MsgTime:SA,MsgClientTime:OA}}),iA={Peer_Account:P,C2CMsgInfo:W};return M.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:iA})})}(E):yield function(D){return pA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P={GroupId:D[0].conversationID.replace(T.OuterConstant.CONV_GROUP,""),MsgSeqList:D.map(W=>({MsgSeq:W.sequence}))};return M.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:P})})}(E),{code:0,data:{}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g.ChatError({code:D,message:M,moreMessage:`peerAccount:${(n=E?.[0])===null||n===void 0?void 0:n.conversationID}`})}})}getMessageReadReceiptList(s){return pA(this,void 0,void 0,function*(){const{common:n,constants:g}=this._core;try{const{conversationType:u}=s[0];if(u===g.OuterConstant.CONV_GROUP){const E=this._filterValidMessageSendByMe(s);if(E?.length>0){const m=yield function(M){return pA(this,void 0,void 0,function*(){const{common:T,constants:P}=Us.core,W={GroupId:M[0].conversationID.replace(P.OuterConstant.CONV_GROUP,""),MsgSeqList:M.map(iA=>({MsgSeq:iA.sequence}))};return T.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:W})})}(E),{GroupMsgReceiptList:D}=m||{};this._updateGroupMessagesReadReceiptInfo({messageList:s,readReceiptList:D})}}return{code:0,data:{messageList:s}}}catch(u){const{errorCode:E,errorInfo:m}=u;throw new n.ChatError({code:E,message:m})}})}getGroupMessageReadMemberList(s){return pA(this,void 0,void 0,function*(){const{constants:n,common:g}=this._core,{message:u,filter:E=TE.READ,cursor:m=""}=s,{conversationID:D,sequence:M,ID:T}=u,P=D.replace(n.OuterConstant.CONV_GROUP,""),W=s.count>=100?100:s.count;try{const iA=yield function(EA){return pA(this,void 0,void 0,function*(){const{sequence:RA,groupID:kA,filter:xA,cursor:LA,count:SA}=EA,OA={MsgSeq:RA,GroupId:kA,Filter:xA,Cursor:LA,Num:SA};return Us.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:OA})})}({groupID:P,sequence:M,filter:E,cursor:m,count:W});if(iA){const{Cursor:EA,IsFinish:RA,UnreadList:kA,ReadList:xA}=iA,LA={cursor:EA,isCompleted:RA===1,messageID:T,unreadUserIDList:[],readUserIDList:[]};return E===TE.READ?LA.readUserIDList=xA.map(SA=>SA.Read_Account):E===TE.UNREAD&&(LA.unreadUserIDList=kA.map(SA=>SA.Unread_Account)),{code:0,data:LA}}}catch(iA){const{errorCode:EA,errorInfo:RA}=iA;throw new g.ChatError({code:EA,message:RA})}})}_handleC2CMessageReadReceipt(s){const n=[],{constants:g,helper:u}=this._core,{C2cMsgInfo:E,PeerReadTime:m,Peer_Account:D}=s;if(u.isEmpty(E))return;const M=`${g.OuterConstant.CONV_C2C}${D}`;E?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA}=T,EA=`${P}-${W}-${iA}`,RA=_c({conversationID:M,messageID:EA});RA&&!RA.readReceiptInfo.isPeerRead&&(RA.readReceiptInfo.isPeerRead=!0,RA.readReceiptInfo.timestamp=m,n.push({userID:D,messageID:EA,isPeerRead:!0,timestamp:m}))}),this._emitReadReceiptEventIfNeed(n)}_updateGroupMessagesReadReceiptInfo(s){const{messageList:n,readReceiptList:g}=s,u=new Map;n.forEach(E=>{u.set(E.sequence,E)}),g?.forEach(E=>{if(E.Code===0){const{MsgSeq:m,ReadNum:D,UnreadNum:M}=E,T=u.get(m);T&&(T.readReceiptInfo.readCount=D,T.readReceiptInfo.unreadCount=M)}})}_handleGroupMessageReadReceipt(s){const n=[],{constants:g}=this._core,{GroupTips:u}=s;u.forEach(E=>{const{MsgBody:{GroupMsgReceiptList:m},GroupInfo:{GroupId:D}}=E,M=`${g.OuterConstant.CONV_GROUP}${D}`;m?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA,ReadNum:EA,UnreadNum:RA}=T,kA=`${P}-${W}-${iA}`,xA=_c({conversationID:M,messageID:kA}),LA={groupID:D,messageID:kA,readCount:0,unreadCount:0};xA&&(typeof EA=="number"&&(xA.readReceiptInfo.readCount=EA,LA.readCount=EA),typeof RA=="number"&&(xA.readReceiptInfo.unreadCount=RA,LA.unreadCount=RA),n.push(LA))})}),this._emitReadReceiptEventIfNeed(n)}_emitReadReceiptEventIfNeed(s){const{notificationCenter:n,OuterEvent:g}=this._core;s.length>0&&n.emitOuterEvent(g.MESSAGE_READ_RECEIPT_RECEIVED,{name:g.MESSAGE_READ_RECEIPT_RECEIVED,data:s})}_filterValidMessageSendByOther(s){return this._filterNeedReadReceiptMessages(s).filter(n=>{const{from:g}=n;return g!==this._core.common.getCurrentUserID()})}_filterValidMessageSendByMe(s){const{OuterConstant:n}=this._core.constants;return this._filterNeedReadReceiptMessages(s).filter(g=>{const{from:u,status:E}=g;return u===this._core.common.getCurrentUserID()&&E===n.MessageStatus.SUCCESS})}_filterNeedReadReceiptMessages(s){return s.filter(n=>n.needReadReceipt===!0)}dispose(){const{InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:n,GROUP_MESSAGE_READ_RECEIPT:g},notificationCenter:u}=this._core;u.unSubscribeInnerEvent(s,n,this._handleC2CMessageReadReceipt,this),u.unSubscribeInnerEvent(s,g,this._handleGroupMessageReadReceipt,this)}};function $I(s,n,g){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:u}}=Us.core,{from:E,to:m,clientSequence:D,random:M,time:T}=s;return u({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:E,To_Account:m,MsgKey:`${D}_${M}_${T}`,OperateType:g,ExtensionList:n}})})}function Uu(s,n,g){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:u}}=Us.core,{to:E,sequence:m}=s;return u({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:E,MsgSeq:m,OperateType:g,ExtensionList:n}})})}var Gc=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(s){this._core=s;const{notificationCenter:n,helper:{registerApi:g},InnerEvent:{MESSAGE_PUSH:u,LOGOUT:E},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:m}}=s;g({apiName:"setMessageExtensions",context:this}),g({apiName:"getMessageExtensions",context:this}),g({apiName:"deleteMessageExtensions",context:this}),n.subscribeInnerEvent(u,m,this._handleMessageExtensionsNotify,this),n.subscribeInnerEvent(E,this.reset,this)}setMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");const{constants:{OuterConstant:g},ssoLog:u}=this._core,{ID:E,conversationID:m,sequence:D,time:M,conversationType:T}=s;let P=n;n.length>20&&(P=n.slice(0,20),u.warn("setMessageExtensions","the length of extensions cannot exceed 20"));const W=this._generateServerExtensions(s,P),iA=`convID:${m} messageID:${E} sequence:${D} time:${M} count:${P.length}`;try{let EA;if(T===g.CONV_C2C?EA=yield $I(s,W,bl):T===g.CONV_GROUP&&(EA=yield Uu(s,W,bl)),EA){const{resultList:RA,successCount:kA,failureCount:xA}=this._handleModifyMessageExtensions(s,EA);return{code:0,data:{extensions:RA},successLog:{message:`${iA} successCount:${kA} failCount:${xA}`}}}return{code:0,data:{extensions:[]}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:RA,moreMessage:iA})}})}getMessageExtensions(s){return pA(this,void 0,void 0,function*(){const{utils:{isUndefined:n}}=this._core;this._validateMessageExtensionBusinessCapability("getMessageExtensions");const{conversationID:g,ID:u,sequence:E,time:m}=s,D=`convID:${g} messageID:${u} sequence:${E} time:${m}`;try{let M;this._completedFetchExtensions.has(u)&&(M=this._extensionsLatestSequenceMap.get(u));const T=yield this._fetchMessageExtensions(s,M);return n(M)&&T.length>1&&this._completedFetchExtensions.add(u),{code:0,data:{extensions:T},successLog:{message:D}}}catch(M){const{errorCode:T,errorInfo:P=""}=M||{};throw new this._core.common.ChatError({code:T,message:P,moreMessage:D})}})}deleteMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");const{utils:{isEmpty:g},constants:{OuterConstant:u}}=this._core,{conversationType:E,conversationID:m,sequence:D,ID:M,time:T}=s;let P=Ug;const W=[];g(n)||(P=kl,n?.forEach(RA=>{W.push({key:RA,value:"",seq:0})}));const iA=`convID:${m} messageID:${M} sequence:${D} time:${T} operateType:${P}`,EA=this._generateServerExtensions(s,W);try{let RA;if(E===u.CONV_C2C?RA=yield $I(s,EA,P):E===u.CONV_GROUP&&(RA=yield Uu(s,EA,P)),RA){const{resultList:kA,successCount:xA,failureCount:LA}=this._handleModifyMessageExtensions(s,RA);return{code:0,data:{extensions:kA},successLog:{message:`${iA}successCount:${xA} failCount:${LA}`}}}return{code:0,data:{extensions:[]}}}catch(RA){const{errorCode:kA}=RA;throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:kA,moreMessage:iA})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,LOGOUT:g},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:u}}=this._core;s.unSubscribeInnerEvent(n,u,this._handleMessageExtensionsNotify,this),s.subscribeInnerEvent(g,this.reset,this)}_handleModifyMessageExtensions(s,n){const{ID:g}=s,{Seq:u}=n,E=n.ExtensionList||[],m=[];let D=0,M=0,T=[];return E.forEach(P=>{const{ErrorCode:W,Extension:iA}=P,{Key:EA,Value:RA,Seq:kA}=iA;m.push({code:W,key:EA,value:RA}),W===0?D++:M++,T.push({key:EA,value:RA,seq:kA})}),this._extensionsLatestSequenceMap.set(g,u),T.length>0&&this._updateLocalExtensions(s.ID,T),{resultList:m,successCount:D,failureCount:M}}_updateLocalExtensions(s,n){this._messageExtensionsMap.has(s)||this._messageExtensionsMap.set(s,new Map);const g=this._messageExtensionsMap.get(s);n?.forEach(u=>{const{key:E,seq:m,value:D=""}=u;g?.set(E,{value:D,seq:m})})}_fetchMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){const{constants:{OuterConstant:g},utils:{isEmpty:u}}=this._core;try{let E;const{conversationType:m,ID:D}=s;if(m===g.CONV_C2C?E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{from:W,to:iA,clientSequence:EA,random:RA,time:kA}=M;return P({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:W,To_Account:iA,MsgKey:`${EA}_${RA}_${kA}`,StartSeq:T}})}(s,n):m===g.CONV_GROUP&&(E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{to:W,sequence:iA}=M;return P({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:W,MsgSeq:iA,StartSeq:T}})}(s,n)),E){const{LatestSeq:M,ClearSeq:T,CompleteFlag:P}=E,W=(E.ExtensionList||[]).map(EA=>({key:EA.Key,value:EA.Value,seq:EA.Seq}));if(this._updateLocalExtensions(D,W),this._clearLocationExtensions(D,T),this._extensionsLatestSequenceMap.set(D,M),P!==1){const EA=W[W.length-1].seq+1;return this._fetchMessageExtensions(s,EA)}const iA=[];if(this._messageExtensionsMap.has(D)){const EA=this._messageExtensionsMap.get(D);EA?.forEach((RA,kA)=>{const{value:xA}=RA;u(xA)||iA.push({key:kA,value:xA})})}return iA}}catch(E){throw E}})}_clearLocationExtensions(s,n){if(!(n<=0)&&this._messageExtensionsMap.has(s)){const g=this._messageExtensionsMap.get(s);g?.forEach((u,E)=>{u.seq<=n&&g.delete(E)})}}_generateServerExtensions(s,n){const{ID:g}=s;if(this._messageExtensionsMap.has(g)){const u=this._messageExtensionsMap.get(g);return n.map(E=>{var m;const{key:D,value:M}=E;let T=0;return u?.has(D)&&(T=(m=u.get(D))===null||m===void 0?void 0:m.seq),{Key:D,Value:M,Seq:T}})}return n.map(u=>({Key:u.key,Value:u.value,Seq:0}))}_validateMessageExtensionBusinessCapability(s){const{helper:n,constants:g}=this._core;if(!n.checkBusinessCapabilityBits(CC))throw new n.ChatError({functionName:s,code:g.ERROR_CODE.NO_USE,replacement1:s})}_handleMessageExtensionsNotify(s){const{SetKVInfo:n,DeleteKVInfo:g,ClearKVInfo:u,MsgOptType:E,TinyId:m,MsgLastSeq:D,ExtensionC2cMsgInfo:M,ExtensionGroupMsgInfo:T}=s?.MsgExtensionNotify||{},P=M||T||{},{MsgClientTime:W,MsgRandom:iA}=P,EA=`${m}-${W}-${iA}`;this._extensionsLatestSequenceMap.set(EA,D),E===bl?this._handleMessageExtensionsUpdated({messageID:EA,updateMessageExtensionsInfo:n}):E===kl?this._handleMessageExtensionsDeleted({messageID:EA,deleteMessageExtensionsInfo:g}):E===Ug&&this._handleMessageExtensionsCleared({messageID:EA,clearMessageExtensionsInfo:u})}_handleMessageExtensionsUpdated(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:u,updateMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push({key:P.Key,value:P.Value}),{key:P.Key,value:P.Value,seq:P.Seq}));this._updateLocalExtensions(u,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_UPDATED,{name:g.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:u,extensions:m}})}_handleMessageExtensionsDeleted(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:u,deleteMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push(P.Key),{key:P.Key,seq:P.Seq}));this._updateLocalExtensions(u,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_DELETED,{name:g.MESSAGE_EXTENSIONS_DELETED,data:{messageID:u,keyList:m}})}_handleMessageExtensionsCleared(s){const{notificationCenter:n,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:g},utils:{isEmpty:u}}=this._core,{messageID:E,clearMessageExtensionsInfo:m=[]}=s,D=[];m.forEach(M=>{const{ClearMsgSeq:T}=M;this._messageExtensionsMap.has(E)&&(this._messageExtensionsMap.get(E)||[]).forEach((P,W)=>{P.seq<=T&&!u(P.value)&&D.push(W)}),this._clearLocationExtensions(E,T)}),n.emitOuterEvent(g,{name:g,data:{messageID:E,keyList:D}})}};const QI={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{constants:{OuterConstant:n}}=Us.core;return s.status!==n.MessageStatus.SUCCESS?"message is not success":s.isSupportExtension===!0||"message is not support extension"}},ol={setMessageExtensions:[QI,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[QI],deleteMessageExtensions:[QI]},sl=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const n=function(g){var u;return typeof g?.text!="string"||typeof g.text=="string"&&((u=g?.text)===null||u===void 0?void 0:u.length)===0?"payload.text is invalid.":!0}(s);return n!==!0?n:!(s?.atUserList&&!Array.isArray(s.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{utils:{isString:n,isNumber:g}}=Us.core;return n(s?.description)?g(s?.longitude)?!!g(s?.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s!="number"?"maxUserCountPerReaction is invalid.":!(s<0||s>10)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>s.status==="success"||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),ol),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),{createQuoteMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"quotedMessage",required:!0,rules:["object"],allowEmpty:!1}]}),xa=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0}),{createQuoteMessage:!0});class bE{constructor(n){this._core=n}deleteMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:u}=n,E={From_Account:this._core.common.getCurrentUserID(),To_Account:g,MsgKeyList:u};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:E})})}revokeMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,from:u,sequence:E,time:m,random:D}=n,M={MsgInfo:{From_Account:u,To_Account:g,MsgSeq:E,MsgRandom:D,MsgTimeStamp:m}};return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:M})})}}class ra{constructor(n){this._core=n}deleteMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:u}=n,E={GroupId:g,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:u};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:E})})}revokeMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,sequence:u}=n,E={GroupId:g,MsgSeqList:[{MsgSeq:u}]};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:E})})}}const Mn=2116;class br{constructor(n){this._core=n}generateRevokeMessage(n){const{conversationID:g,sequence:u,random:E,tinyID:m,clientTime:D,revokeReason:M,revoker:T}=n;let P={};const{messageDataHandler:W}=this._core.message;return P=W.revokeMessage({conversationID:g,sequence:u,random:E,revoker:T}),P||(P={conversationID:g,sequence:u},m&&D&&E&&(P.ID=`${m}-${D}-${E}`)),P.revoker=T,P.revokeReason=M,P.revokerInfo={userID:T,nick:"",avatar:""},P}updateRevokerInfo(n){return pA(this,void 0,void 0,function*(){const g=n.map(u=>u.revoker);try{const u=yield this._fetchUserInfos(g);u&&n.forEach(E=>{const{revoker:m}=E;u[m]&&(E.revokerInfo.nick=u[m].nick||"",E.revokerInfo.avatar=u[m].avatar||"",E.revokerInfo.userID=m)})}catch(u){console.debug(u)}})}_fetchUserInfos(n){return pA(this,void 0,void 0,function*(){var g,u;const E=yield(g=this._core.user.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:n});return E?.data?(u=E.data)===null||u===void 0?void 0:u.reduce((m,{userID:D,nick:M,avatar:T})=>(m[D]={nick:M||"",avatar:T||""},m),{}):null})}}var nl=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(s){this._core=s,this._groupMessageAction=new ra(s),this._c2cMessageAction=new bE(s),this._messageHelper=new br(s);const{helper:n}=s;n.registerApi({apiName:"deleteMessage",context:this}),n.registerApi({apiName:"revokeMessage",context:this}),n.registerApi({apiName:"resendMessage",context:this}),n.registerApi({apiName:"findMessage",context:this}),n.registerApi({apiName:"createQuoteMessage",context:this})}deleteMessage(s){return pA(this,void 0,void 0,function*(){let n=[],g=[];const{conversationID:u,conversationType:E}=s[0],m=u.replace(E,"");if(E==="@TIM#SYSTEM")throw new this._core.helper.ChatError({code:Mn});if(s.forEach(D=>{const{conversationID:M,conversationType:T,status:P,_onlineOnlyFlag:W,sequence:iA,random:EA,time:RA}=D||{};if(P==="success"&&M===u&&T===E){if(!W){const kA=T==="C2C"?`${iA}_${EA}_${RA}`:String(iA);n.push(kA)}g.push(D)}}),n.length===0)return this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}};n.length>30&&(n=n.slice(0,30),g=g.slice(0,30));try{return E==="C2C"?yield this._c2cMessageAction.deleteMessage({to:m,messageIdentifiers:n}):yield this._groupMessageAction.deleteMessage({to:m,messageIdentifiers:n}),this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}}}catch(D){const{utils:{safeStringify:M}}=this._core,{errorCode:T,errorInfo:P}=D;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:T,message:P,moreMessage:`messageIdentifiers: ${M(n)}`})}})}revokeMessage(s){return pA(this,void 0,void 0,function*(){var n;const{conversationType:g,isRevoked:u,ID:E,type:m,from:D,to:M}=s;let T=null;const P=`type:${m} from:${D} to:${M} ID:${E}`;if(g==="@TIM#SYSTEM")throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(u)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:P});try{if(T=g==="C2C"?yield this._c2cMessageAction.revokeMessage(s):yield this._groupMessageAction.revokeMessage(s),T){const{RecallRetList:W}=T,iA=((n=W?.[0])===null||n===void 0?void 0:n.RetCode)||0;if(iA!==0)throw new this._core.helper.ChatError({code:iA,moreMessage:P});return s.isRevoked=!0,yield this._handleRevokeMessageSuccess(s),{code:0,data:{message:s},successLog:{message:P}}}}catch(W){const{errorCode:iA}=W;throw new this._core.helper.ChatError({functionName:"revokeMessage",code:iA,moreMessage:P})}})}resendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u;return s.isResend=!0,s.status="unSend",(u=(g=this._core)===null||g===void 0?void 0:g.apiMap)===null||u===void 0?void 0:u.sendMessage(s,n)})}findMessage(s){return this._core.message.messageDataHandler.findMessage(s)}createQuoteMessage(s,n){const{ID:g,time:u,sequence:E}=n;return s.quoteInfo={msgID:g,messageTime:u,messageSequence:E},s}_handleDeleteMessageSuccess(s){if(s.length===0)return;const{message:{messageDataHandler:n},common:{isTopic:g},notificationCenter:u,InnerEvent:E}=this._core;s.forEach(D=>{D.isDeleted=!0;const M=n.getLocalMessageList(D.conversationID);M?.forEach(T=>{T.ID===D.ID&&(T.isDeleted=!0)})});const{conversationID:m=""}=s[0];g(m)?u.emitInnerEvent(E.TOPIC_MESSAGE_DELETED,m):u.emitInnerEvent(E.MESSAGE_DELETED,m)}_handleRevokeMessageSuccess(s){return pA(this,void 0,void 0,function*(){var n;const g=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{conversationID:u,sequence:E,random:m}=s;this._core.message.messageDataHandler.revokeMessage({conversationID:u,sequence:E,random:m,revoker:g}),yield this._messageHelper.updateRevokerInfo([s])})}};class Ll{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Index:u,Data:E}=g;return new Ll({index:u,data:E})}constructor(n){this.type=Vr.MSG_FACE;const{index:g,data:u}=n;this.content={index:g,data:u}}validateBeforeSend(){var n,g;return typeof((n=this.content)===null||n===void 0?void 0:n.index)=="number"&&typeof((g=this.content)===null||g===void 0?void 0:g.data)=="string"?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{index:E,data:m}=u;return{MsgType:this.type,MsgContent:{Index:E,Data:m}}}}class bc{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Desc:u,Longitude:E,Latitude:m}=g;return new bc({description:u,longitude:E,latitude:m})}constructor(n){this.type=Vr.MSG_LOCATION;const{description:g,longitude:u,latitude:E}=n;this.content={description:g,longitude:u,latitude:E}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{description:E,longitude:m,latitude:D}=u;return{MsgType:this.type,MsgContent:{Desc:E,Longitude:m,Latitude:D}}}}class kE{static parseServerPushElement(n){const{MsgContent:g={}}=n,{StreamMsgID:u,CompatibleText:E,Markdown:m,BinaryData:D,ErrorCode:M,ErrorMsg:T}=g;return new kE({streamMessageID:u,compatibleText:E,markdown:m,binaryData:D,errorCode:M,errorMessage:T})}constructor(n){this.type=Vr.MSG_STREAM,this.content={streamMessageID:"",compatibleText:"",errorCode:0,errorMessage:"",isStreamEnded:!1},this._chunks=[],this._latestIndex=0;const{streamMessageID:g,compatibleText:u,markdown:E,binaryData:m,errorCode:D=0,errorMessage:M="",isStreamEnded:T=!1,chunks:P=[],latestIndex:W=0}=n;this.content.streamMessageID=g,this.content.compatibleText=u,this.content.markdown=E,this.content.binaryData=m,this.content.errorCode=D,this.content.errorMessage=M,this.content.isStreamEnded=T,this.content.chunks=P,this.content.latestIndex=W}updateChunks(n){if(!n||n.length===0)return;const g=n.sort((m,D)=>m.index-D.index),u=this._getMaxRevokedChunkIndex(g);u>=0&&(this._chunks=[],this._latestIndex=u,this._updateContent());const E=this._getValidChunks(g);if(E.length!==0&&(this._mergeAndSortChunks(E),this._chunks.length>0)){const m=this._chunks[this._chunks.length-1];this._latestIndex=m.index,this._updateContent(),this.content.isStreamEnded=m.isLast}}getLatestIndex(){return this._latestIndex}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{streamMessageID:E,chunks:m}=u,D=m?.map(M=>({EventType:M.eventType||"data",Index:M.index,Markdown:M.markdown,IsLast:M.isLast}));return{MsgType:this.type,MsgContent:{StreamMsgID:E,Chunks:D}}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.chunks)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}_filterContinuousChunks(n,g){if(n.length===0)return[];const u=[];let E=g;for(const m of n){if(m.index>E)break;m.index===E&&(u.push(m),E++)}return u}_mergeAndSortChunks(n){const g=new Map;this._chunks.forEach(u=>{g.set(u.index,u)}),n.forEach(u=>{g.set(u.index,u)}),this._chunks=Array.from(g.values()).sort((u,E)=>u.index-E.index)}_updateContent(){this.content.markdown=this._chunks.map(g=>g.markdown).join("");const n=this._chunks.map(g=>g.binaryData).filter(g=>g?.length>0);if(n.length===0)this.content.binaryData=new Uint8Array(0);else if(n.length===1)this.content.binaryData=n[0];else{const g=n.reduce((m,D)=>m+D.length,0),u=new Uint8Array(g);let E=0;for(const m of n)u.set(m,E),E+=m.length;this.content.binaryData=u}}_getMaxRevokedChunkIndex(n){let g=-1;for(let u=0;ug&&(g=E.index)}return g}_getValidChunks(n){const g=n.filter(u=>u.eventType===Nc.DATA&&u.index>this._latestIndex);return this._filterContinuousChunks(g,this._latestIndex+1)}}var kc=new class{init(s){this._core=s,s.message.messageFactory.registerElementClass(Vr.MSG_FACE,Ll),s.message.messageFactory.registerElementClass(Vr.MSG_LOCATION,bc),s.message.messageFactory.registerElementClass(Vr.MSG_STREAM,kE),s.helper.registerApi({apiName:"createFaceMessage",context:this}),s.helper.registerApi({apiName:"createTextAtMessage",context:this}),s.helper.registerApi({apiName:"createForwardMessage",context:this}),s.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(s){if(!s)return null;const{index:n,data:g}=s?.payload||{},u=new Ll({index:n,data:g}),E=this._core.common.getCurrentUserID(),m=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(u),m}createTextAtMessage(s){const{atUserList:n}=s?.payload||{},g=this._core.apiMap.createTextMessage(s),{OuterConstant:u}=this._core;if(!g)return null;if(Array.isArray(n)){const E=[],m=[];n.forEach(D=>{D!==u.MSG_AT_ALL?(E.push({GroupAtAllFlag:gh,GroupAt_Account:D}),m.push(D)):(E.push({GroupAtAllFlag:ro}),m.push(u.MSG_AT_ALL))}),g._groupAtInfoList=E,g.atUserList=m}return g}createForwardMessage(s){const{helper:n,OuterConstant:g}=this._core,{to:u,conversationType:E,priority:m,payload:D,needReadReceipt:M,receiverList:T,cloudCustomData:P="",isSupportExtension:W=!1}=s;if(!Array.isArray(D._elements))throw new n.ChatError({functionName:"createForwardMessage",code:2454});if(D.type===g.MSG_GRP_TIP)throw new n.ChatError({functionName:"createForwardMessage",code:2453});const iA=this._core.common.getCurrentUserID(),EA=this._core.message.messageFactory.createMessage({to:u,from:iA,conversationType:E,isPlaceMessage:0,priority:m,payload:D,needReadReceipt:M,isSupportExtension:W,cloudCustomData:P,receiverList:T});return EA.setRelayFlag(!0),EA.setElement(D._elements[0]),EA}createLocationMessage(s){if(!s)return null;const{description:n,longitude:g,latitude:u}=s?.payload||{},E=new bc({description:n,longitude:g,latitude:u}),m=this._core.common.getCurrentUserID(),D=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:m}));return D.setElement(E),D}};let Fu=class{init(s){this._messageHelper=new br(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_REVOKED_MESSAGE:u},helper:{registerWorkflowStep:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(g,u,this._handleC2CNotifyMessage,this),E(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(s){const{C2cNotifyMsgArray:n}=s;n?.forEach(g=>{Object.keys(g).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(g)})}_handleC2CRevokeMessage(s){return pA(this,void 0,void 0,function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:n}}=s;yield this._parseAndEmitC2CRevokedMessages(n)}catch(n){console.debug(n)}})}_parseAndEmitC2CRevokedMessages(s){return pA(this,void 0,void 0,function*(){const n=[],{notificationCenter:g,OuterEvent:u,common:{getCurrentUserID:E}}=this._core;s.forEach(m=>{var D;const{MsgRand:M,MsgSeq:T,To_Account:P,From_Account:W,RevokerInfo:{Revoker_Account:iA,Revoke_Reason:EA}}=m,RA=E()===W?`C2C${P}`:`C2C${W}`,kA=((D=m?.RevokerInfo)===null||D===void 0?void 0:D.Reason)||EA,xA=this._messageHelper.generateRevokeMessage({conversationID:RA,sequence:T,random:M,revoker:iA,revokeReason:kA});n.push(xA)}),n.length>0&&(yield this._messageHelper.updateRevokerInfo(n),g.emitOuterEvent(u.MESSAGE_REVOKED,{name:u.MESSAGE_REVOKED,data:n}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(s){return pA(this,void 0,void 0,function*(){const{revokedMessageList:n}=s.result;yield this._parseAndEmitC2CRevokedMessages(n)})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{C2C_REVOKED_MESSAGE:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleC2CNotifyMessage,this)}},QC=class{init(s){this._messageHelper=new br(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{GROUP_MESSAGE_REVOKED:u}}=s;n.subscribeInnerEvent(g,u,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(s){const{GroupTips:n}=s;n?.forEach(g=>{var u;Array.isArray((u=g?.MsgBody)===null||u===void 0?void 0:u.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(g)})}_handleGroupRevokeMessage(s){return pA(this,void 0,void 0,function*(){try{const{RevokerInfo:n,MsgBody:{GroupWithdrawInfoArray:g},GroupInfo:u}=s,E=[],m=[],{notificationCenter:D,OuterEvent:M,utils:{isEmpty:T},common:{isCommunity:P}}=this._core;let W=!1;u&&(W=P({groupID:u.GroupId})||!T(u.TopicId)),g.forEach(iA=>{const{Random:EA,MsgSeq:RA,GroupId:kA,MsgClientTime:xA,TinyId:LA,TopicId:SA,RevokerInfo:{Revoker_Account:OA=n?.Revoker_Account||"",Reason:JA=n?.Reason||""}}=iA,ne=SA?`GROUP${SA}`:`GROUP${kA}`,se=this._messageHelper.generateRevokeMessage({conversationID:ne,sequence:RA,random:EA,tinyID:LA,clientTime:xA,revoker:OA,revokeReason:JA});W?(se.revokerInfo.nick=u.From_AccountNick,se.revokerInfo.avatar=u.From_AccountHeadurl,E.push(se)):m.push(se)}),m.length>0&&(yield this._messageHelper.updateRevokerInfo(m),E.push(...m)),E.length!==0&&D.emitOuterEvent(M.MESSAGE_REVOKED,{name:M.MESSAGE_REVOKED,data:E})}catch(n){console.debug(n)}})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{GROUP_MESSAGE_REVOKED:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleGroupNotifyMessage,this)}};var Au=new class{constructor(){this._c2cMessageReceiver=new Fu,this._groupMessageReceiver=new QC}init(s){this._c2cMessageReceiver.init(s),this._groupMessageReceiver.init(s)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}},ch=new class{constructor(){this._core=null}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"translateText",context:this})}translateText(s){return pA(this,void 0,void 0,function*(){try{const{sourceLanguage:n,sourceTextList:g,targetLanguage:u}=s,E=yield function(m,D){return pA(this,void 0,void 0,function*(){var M,T;const{sourceTextList:P,sourceLanguage:W,targetLanguage:iA}=m,{store:EA,common:RA}=D,kA={SourceText:P,Source:W,Target:iA,FromAccount:(M=EA.get("login"))===null||M===void 0?void 0:M.tinyID,SDKAppID:(T=EA.get("instance"))===null||T===void 0?void 0:T.sdkAppId},xA=yield RA.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:kA});if(xA){const{CmdErrorCode:LA,TargetText:SA}=xA;return{cmdErrorCode:LA,translatedTextList:SA}}})}({sourceLanguage:n,sourceTextList:g,targetLanguage:u},this._core);if(E){const{cmdErrorCode:{ErrorCode:m,ErrorInfo:D},translatedTextList:M}=E;if(m===0)return{code:0,data:{translatedTextList:M}};throw{errorCode:m,errorInfo:D,message:D}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};throw new this._core.helper.ChatError({functionName:"translateText",code:g,message:u})}})}},Ou=new class{init(s){this._core=s,s.helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(s){return pA(this,void 0,void 0,function*(){var n;const{message:g,language:u=Tc.ZH_PY}=s;let{url:E}=g.payload||{};const m=this._core.common.getCurrentUserID();g.from===m&&g.flow==="out"&&(E=g.payload.remoteAudioUrl),this._validateVoiceFormat(E);const D=((n=BI.exec(E))===null||n===void 0?void 0:n[1])||"mp3",M=hI[u]||ZI;try{const T=yield function(P){var W;const{store:iA,common:EA}=Us.core,{url:RA,format:kA,serverLanguageType:xA}=P,LA={BytesUrl:RA,BytesEngServiceType:xA,BytesVoiceFormat:kA,Uint32Sdkappid:(W=iA.get("instance"))===null||W===void 0?void 0:W.sdkAppId,Uint64SourceType:0};return EA.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:LA})}({url:E,format:D,serverLanguageType:M});if(T){const{CmdErrorCode:P,BytesResult:W}=T;if(P.ErrorCode===0)return{code:0,data:{result:W}};throw{code:P.ErrorCode,message:P.ErrorInfo}}}catch(T){const{code:P,message:W}=T||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:P,message:W})}})}_validateVoiceFormat(s){if(!BI.test(s))throw new this._core.common.ChatError({code:2119})}};class pI{constructor(n){const{constants:g,common:u,utils:E}=Us.core,{CONV_C2C:m,CONV_GROUP:D}=g.OuterConstant,{ID:M,tinyID:T,from:P,to:W,clientTime:iA=u.timeManager.getServerTimeSeconds()||0,random:EA,sequence:RA,cloudCustomData:kA="",nick:xA="",avatar:LA="",clientSequence:SA,conversationType:OA,groupID:JA,_elements:ne,time:se}=n;this.ID=M||`${T}-${iA}-${EA}`,this.messageRandom=EA,this.from=P,this.messageSender=P,this.time=se,this.messageSequence=RA,this.clientSequence=SA||RA,this.clientTime=iA,this.cloudCustomData=kA,this.messageReceiver=W,this.avatar=LA,this.nick=xA;const _i=E.deepCopyWithMethods(ne);_i.forEach(Ti=>{Ti.payload=Ti.content,delete Ti.content}),this.messageBody=_i,M?OA.startsWith(m)?this.receiverUserID=W:OA.startsWith(D)&&(this.receiverGroupID=W):JA?(this.receiverGroupID=JA,this.messageReceiver=JA):W&&(this.receiverUserID=W,this.messageReceiver=W)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(n=>n.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class rl{static parseServerPushElement(n){const{MsgContent:g}=n,{MsgList:u=[],CompatibleText:E,AbstractList:m,Title:D,PbMsgKey:M,JsonMsgKey:T}=g||{},P=u.map(W=>dr(W));return new rl({messageList:P,title:D,abstractList:m,compatibleText:E,pbDownloadKey:M,downloadKey:T})}constructor(n){this.type=Us.core.constants.OuterConstant.MSG_MERGER;const{messageList:g,title:u,abstractList:E,compatibleText:m,pbDownloadKey:D="",downloadKey:M="",version:T=0,layersOverLimit:P=!1}=n,W=[];g.forEach(iA=>{if(iA){const EA=new pI(iA);W.push(EA)}}),this.content={messageList:W,title:u,abstractList:E,compatibleText:m,version:T,downloadKey:M,pbDownloadKey:D,layersOverLimit:P}}validateBeforeSend(){const{isEmpty:n}=Us.core.helper;return n(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{abstractList:E,compatibleText:m,downloadKey:D,layersOverLimit:M,pbDownloadKey:T,title:P,version:W,messageList:iA}=u;return{MsgType:this.type,MsgContent:{AbstractList:E,CompatibleText:m,JsonMsgKey:D,LayersOverLimit:M,PbMsgKey:T,Title:P,Version:W,MsgList:Ac(iA)}}}}var pC=new class{init(s){this._core=s;const{message:n,helper:g,constants:{OuterConstant:u}}=s;n.messageFactory.registerElementClass(u.MSG_MERGER,rl),g.registerApi({apiName:"createMergerMessage",context:this}),g.registerApi({apiName:"sendMessage",context:this,matcher:E=>E[0].type===u.MSG_MERGER}),g.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(s){const{common:n}=this._core;if(!s)return null;const g=new rl(s.payload),u=n.getCurrentUserID(),E=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:u}));return E.setRelayFlag(!0),E.setElement(g),E}sendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;try{const m=function(P){let W="utf-8";Us.core.helper.IN_BROWSER&&document&&(W=document.charset.toLowerCase());let iA,EA=0,RA=0;if(RA=P.length,W==="utf-8"||W==="utf8")for(let kA=0;kA11264){D=this._core.utils.deepCopyWithMethods(s);try{const{JsonMsgKey:P,PbMsgKey:W}=yield function(EA){return pA(this,void 0,void 0,function*(){const{payload:{messageList:RA}}=EA,kA={MsgList:Ac(RA)};return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:kA})})}(D),{payload:iA}=D;M=new rl(Object.assign(Object.assign({},iA),{messageList:[],downloadKey:P,pbDownloadKey:W})),D.setElement(M)}catch(P){console.error(P)}}const{data:{message:T}}=yield(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(D,n);return M&&T.setElement(s._elements),{code:0,data:{message:T}}}catch(m){const{errorCode:D}=m;throw new this._core.helper.ChatError({code:D})}})}downloadMergerMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,g=s.payload,{downloadKey:u,pbDownload:E,type:m,messageList:D}=g,M=Do(g,["downloadKey","pbDownload","type","messageList"]);try{const T=yield function(iA){return pA(this,void 0,void 0,function*(){return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:iA}})})}(u),{MsgList:P}=T||{},W=P?.map(iA=>{const EA=dr(iA);return new pI(EA)});return typeof s.isOnlineMessage=="function"?s.setElement({type:s.type,content:Object.assign({messageList:W},M)}):(s.payload.messageList=W,s.payload.downloadKey="",s.payload.pbDownloadKey=""),n.info("downloadMergerMessage",` success downloadKey:${u}`),s}catch(T){const{errorCode:P}=T;throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:P,moreMessage:u})}})}},aa=new class{init(s){this._core=s,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(s){return pA(this,void 0,void 0,function*(){const{appStore:n,message:g,common:{getCurrentUserID:u},utils:{isArray:E}}=this._core,{GroupId:m,To_Account:D}=s;s.From_Account=s.From_Account||u();let M=null;if(m){M=this._generateGroupMessage(Object.assign(Object.assign({},s),{ToGroupId:m}));const T=n.userStore.getUserProfile(u());M.level=T?.level||0,E(D)&&D.length>0&&(M._receiverList=D)}else D&&(M=this._generateC2CMessage(s));return g.messageSender.sendMessage(M,s)})}_generateC2CMessage(s){const{message:n,OuterConstant:{CONV_C2C:g}}=this._core,u=g,E=n.messageHelper.parseServerPushMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:u,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}_generateGroupMessage(s){const{message:n,OuterConstant:{CONV_GROUP:g}}=this._core,u=g,E=n.messageHelper.parseServerGroupMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:u,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}},tc=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:u},InnerEventSubType:{GROUP_MESSAGE_PINNED:E}}=s;g.subscribeInnerEvent(u,E,this._handleGroupMessagePinned,this),n.registerApi({apiName:"pinGroupMessage",context:this}),n.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,common:{isTopic:g},OuterConstant:{GROUP_ID_PREFIX:u},helper:{ChatError:E}}=this._core;let{groupID:m,message:D,isPinned:M}=s;const{sequence:T}=D;try{return yield function(P){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:W,getCurrentUserID:iA}}=Us.core,{groupID:EA,sequence:RA,isPinned:kA}=P,xA=iA(),LA=kA?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",SA={GroupId:EA,MsgSeq:RA};return kA?SA.Pinner_Account=xA:SA.UnPinner_Account=xA,W({servcmd:LA,data:SA})})}({groupID:m,sequence:T,isPinned:M}),{code:0,data:{}}}catch(P){const{errorCode:W,errorInfo:iA}=P||{};throw new E({code:W,message:iA})}})}getPinnedGroupMessageList(s){return pA(this,void 0,void 0,function*(){let n=[];try{const g=yield function(u){return pA(this,void 0,void 0,function*(){const{groupID:E}=u,{common:{buildAndSendPacket:m}}=Us.core;return m({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:E}})})}({groupID:s});if(g){const{PinnedMsgList:u=[]}=g;n=yield this._updatePinnedMessageInfo({serverPinnedMessageList:u,groupID:s})}return{code:0,data:{messageList:n}}}catch(g){throw g}})}_handleGroupMessagePinned(s){const{message:{messageHelper:n,messageFactory:g},notificationCenter:u,OuterEvent:E,OuterConstant:m}=this._core;s.GroupTips.forEach(D=>{const{ToGroupId:M,MsgBody:{PinnedMsg:T,OpType:P,MsgOperatorMemberExtraInfo:W,SdkGroupMessageId:iA}}=D,{UserId:EA,NickName:RA="",ImageUrl:kA=""}=W;let xA=null,LA=!1;if(P===pd){LA=!0;const SA=n.parseServerGroupMessage(T);xA=g.createMessage(Object.assign(Object.assign({},SA),{conversationType:m.CONV_GROUP,flow:"in"})),xA.setElement(SA.elements),xA.pinnerInfo={userID:EA,nick:RA,avatar:kA}}else if(P===NE){const{ClientTime:SA,Random:OA,SenderTinyId:JA,ServerTime:ne,MsgSeq:se}=iA;xA={ID:`${JA}-${SA}-${OA}`,sequence:se,random:OA,time:ne,clientTime:SA}}xA&&u.emitOuterEvent(E.PINNED_GROUP_MESSAGE_UPDATED,{name:E.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:M,message:xA,isPinned:LA,operatorInfo:{userID:EA,nick:RA,avatar:kA}}})})}_findMessageBySequence(s,n){const{message:{messageDataHandler:g}}=this._core;return[...g.getLocalMessageList(s),...g.getSparseMessageList(s)].find(u=>u.sequence===n)}_updatePinnedMessageInfo(s){return pA(this,arguments,void 0,function*({serverPinnedMessageList:n,groupID:g}){const{OuterConstant:{CONV_GROUP:u},utils:{isEmpty:E}}=this._core,m=[],D=[],M=[],T=new Map,P=`${u}${g}`;for(let iA=0;iA{const{sequence:kA}=RA,xA=T.get(kA),LA=iA[xA]||{userID:xA,nick:"",avatar:""};RA.pinnerInfo=LA}),m.sort((RA,kA)=>RA.sequence-kA.sequence),m}return[]})}_fetchPinnedMessageInfo(s){return pA(this,void 0,void 0,function*(){var n,g;const{message:{messageHistory:u},user:{userProfile:E},utils:{isArray:m}}=this._core,{conversationID:D,messageSequenceList:M,pinnerIDList:T}=s,P=yield Promise.all([this._fetchMessageBySequence({conversationID:D,messageSequenceList:M}),E?.getUserProfile({userIDList:T})]);if(m(P)){const W={};return(((n=P[1])===null||n===void 0?void 0:n.data)||[]).forEach(iA=>{const{userID:EA,nick:RA="",avatar:kA=""}=iA;W[EA]={userID:EA,nick:RA,avatar:kA}}),{messageList:((g=P[0])===null||g===void 0?void 0:g.messageList)||[],pinnerInfoMap:W}}})}_fetchMessageBySequence(s){return pA(this,void 0,void 0,function*(){const{utils:{isEmpty:n},message:{messageHistory:g}}=this._core,{conversationID:u,messageSequenceList:E}=s;return n(E)?[]:g.getGroupRoamingMessagesByAnchor({conversationID:u,messageSequenceList:E,getType:3})})}};class lg{constructor(n){this.eventType=Nc.DATA,this.index=0,this.markdown="",this.isLast=!1,this.binaryData=null;const{EventType:g,Index:u,Markdown:E,IsLast:m,BinaryData:D}=n;this.eventType=g,this.index=u,this.markdown=E,this.isLast=m,this.binaryData=D}}var mI=new class{constructor(){this._messageMap=new Map,this._retryCountMap=new Map}init(s){this._core=s;const{notificationCenter:n,OuterEvent:{MESSAGE_RECEIVED:g},InnerEvent:{HISTORY_MESSAGE_FETCHED:u},common:{workflowManager:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(co,this._handleStreamMessageChunkPush,this),n.subscribeOuterEvent(g,this._handleMessageReceived,this),n.subscribeInnerEvent(u,this.processHistoryMessage,this),E.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.STREAM_MESSAGE_RECOVER,this._recoverStreamMessage,this)}processHistoryMessage(s){const{utils:{isEmpty:n,safeStringify:g},ssoLog:u}=this._core;try{s?.forEach(E=>{var m;if(this._isValidStreamMessage(E)){const D=(m=E?._elements)===null||m===void 0?void 0:m[0],{streamMessageID:M,markdown:T,binaryData:P}=D?.content||{};n(T)&&n(P)?(this._messageMap.set(M,E),this._fetchStreamMessageChunks(E)):D.content.isStreamEnded=!0}})}catch(E){u.error("processHistoryMessage.error",g(E))}}_handleMessageReceived(s){const n=s.data;n?.forEach(g=>{var u,E;if(this._isValidStreamMessage(g)){const{streamMessageID:m}=((E=(u=g?._elements)===null||u===void 0?void 0:u[0])===null||E===void 0?void 0:E.content)||{};m&&(this._messageMap.set(m,g),this._fetchStreamMessageChunks(g))}})}_isValidStreamMessage(s){var n,g;const{utils:{isEmpty:u}}=this._core,{streamMessageID:E}=((g=(n=s?._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g.content)||{};return s.type===Vr.MSG_STREAM&&!u(E)}_fetchStreamMessageChunks(s){return pA(this,void 0,void 0,function*(){var n,g;const{constants:{ERROR_CODE:u},ssoLog:E,utils:{safeStringify:m}}=this._core,D=(n=s._elements)===null||n===void 0?void 0:n[0],M=(g=D?.content)===null||g===void 0?void 0:g.streamMessageID;try{const{from:T,to:P}=s,W=D.getLatestIndex();if(D.content.isStreamEnded)return;const iA=yield function(EA){return pA(this,void 0,void 0,function*(){const{from:RA,to:kA,streamMessageID:xA,index:LA}=EA,SA={From_Account:RA,To_Account:kA,StreamMsgID:xA,AckIndex:LA};return Us.core.common.buildAndSendPacket({servcmd:"StreamMsg.GetStreamHttp",data:SA,timeout:5e3})})}({from:T,to:P,streamMessageID:M,index:W});if(iA){const{ErrorCode:EA,ErrorInfo:RA}=iA;if(EA!==0)throw D.content.errorCode=EA,D.content.errorMessage=RA,{errorCode:EA,errorMessage:RA}}}catch(T){if(T.errorCode===u.NETWORK_TIMEOUT&&this._shouldRetryFetch(M)){const P=this._retryCountMap.get(M)||0;E.debug("_fetchStreamMessageChunks.timeout",`error: ${m(T)} retried: ${P}`),this._retryCountMap.set(M,P+1),this._fetchStreamMessageChunks(s)}else E.error("_fetchStreamMessageChunks.error",m(T))}})}_shouldRetryFetch(s){const{utils:{isNumber:n}}=this._core;if(!this._retryCountMap.has(s))return this._retryCountMap.set(s,1),!0;const g=this._retryCountMap.get(s);return!!(n(g)&&g<=3)}_onStreamEnded(s,n,g){const{ssoLog:u}=this._core;g.content.isStreamEnded=!0,g.stopReason=n,this._messageMap.delete(s),u.debug("_onStreamEnded",`streamMessage end, StopReason: ${n}`)}_handleStreamMessageChunkPush(s){var n;const{ssoLog:g}=this._core,{StopReason:u,Chunks:E,StreamID:m}=s?.body||{},D=this._messageMap.get(m);if(!D)return void g.warn(`_handleStreamMessageChunkPush, unfounded message: ${m}`);const M=(n=D._elements)===null||n===void 0?void 0:n[0];if(M&&this._validateExpectedChunk(M,E)){if(E.length>0){const T=E.map(P=>new lg(P));M.updateChunks(T)}this._emitMessageModify(D),function(T,P){pA(this,void 0,void 0,function*(){const{common:{generateProtocolData:W},utils:{safeStringify:iA},ssoLog:EA,channel:RA}=Us.core,kA={StreamMsgID:T,AckIndex:P};try{const xA=W({servcmd:"StreamMsg.AckHttp",data:kA});RA.sendPacket(xA)}catch(xA){EA.debug("sendStreamChunkAck",iA(xA))}})}(m,M.getLatestIndex()),M.content.isStreamEnded&&this._onStreamEnded(m,u,M)}}_emitMessageModify(s){const{notificationCenter:n,OuterEvent:{MESSAGE_MODIFIED:g}}=this._core;n.emitOuterEvent(g,{name:g,data:[s]})}_validateExpectedChunk(s,n){const g=s.getLatestIndex()+1;let u=!1;for(let E=0;Em.Index).join(", ")}]`),!1}return!0}_recoverStreamMessage(){this._retryCountMap.clear();const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{const g=Array.from(this._messageMap.entries());for(let u=Math.max(0,g.length-300);u{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA);if(kA.status===200)n(null,SA);else{if(EA&&!RA.includes(EA))return s.url=this._domainName2IP(RA,EA),s.uploadByIP=!0,this.request(s,n);n({code:kA.status,message:JSON.stringify(kA.responseText)},SA)}},kA.onerror=()=>{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA),OA={code:kA.status,message:kA.status===0?"CORS blocked or network error":JSON.stringify(kA.responseText)};n(OA,SA)},s.onProgress&&kA.upload&&(kA.upload.onprogress=LA=>{const{total:SA,loaded:OA}=LA,JA=Math.min(Math.floor(100*OA/SA),100);s.onProgress({total:SA,loaded:OA,percent:JA/100})}),kA.send(P),kA})}_buildResponse(s,n){const g={};return s.getAllResponseHeaders().trim().split(`
+`).forEach(u=>{if(u){const[E,m]=u.split(":").map(D=>D.trim());g[E.toLowerCase()]=m}}),{statusCode:s.status,statusMessage:s.statusText,headers:g,data:n}}_getResponseBody(s,n,g){return s.status===200&&n?{location:n,uploadIP:g}:{response:s.responseText,uploadIP:g}}_queryString(s,n="&",g="="){var u;const{isEmpty:E,isPlainObject:m}=(u=this._core)===null||u===void 0?void 0:u.utils;return E(s)?"":m(s)?Object.keys(s).map(D=>{const M=encodeURIComponent(D)+g;return Array.isArray(s[D])?s[D].map(T=>M+encodeURIComponent(T)).join(n):M+encodeURIComponent(s[D])}).filter(Boolean).join(n):void 0}_domainName2IP(s,n){return s.replace(/^http(s)?:\/\/(.*?)\//,`https://${n}/`)}};const xu=["unknown","image","video","audio","log"];var fI=new class{init(s){this._core=s}request(s,n){var g;const{MINI_APP_NAMESPACE:u,IN_ALIPAY_MINI_APP:E,isUniIOSApp:m}=(g=this._core)===null||g===void 0?void 0:g.utils,{resources:D="",headers:M={},url:T,downloadUrl:P=""}=s;let W=T,iA=null;const EA=P?P.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!EA)return void console.warn("message Invalid download URL format");const RA=decodeURIComponent(EA[3]),kA=RA.includes("?")?RA.split("?")[0]:RA||"",xA={key:s.fileKey||kA,success_action_status:200,"Content-Type":""},LA={};if(m()){const[OA,JA]=T.split("?sign=");JA&&(W=`${OA}?sign=${encodeURIComponent(JA)}`,LA.sign=decodeURIComponent(JA),LA.signature=decodeURIComponent(JA))}let SA={url:W,header:M,name:"file",filePath:D,formData:Object.assign(Object.assign({},xA),LA),timeout:s.timeout||3e5};if(E){const{name:OA}=SA,JA=Do(SA,["name"]);SA=Object.assign(Object.assign({},JA),{fileName:"file",fileType:s.fileType?xu[s.fileType]:"image"})}return iA=u.uploadFile(Object.assign(Object.assign({},SA),{success:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})},fail:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})}})),iA.onProgressUpdate&&iA.onProgressUpdate(OA=>{s.onProgress&&s.onProgress({total:OA.totalBytesExpectedToSend||0,loaded:OA.totalBytesSent||0,percent:OA.progress?Math.floor(OA.progress)/100:0})}),iA}_handleResponse(s){const{downloadUrl:n,response:g,callback:u}=s,E={};if(g.header)for(const D in g.header)g.header.hasOwnProperty(D)&&(E[D.toLowerCase()]=g.header[D]);const m=+g.statusCode;m===200?u(null,{statusCode:m,headers:E,data:Object.assign(Object.assign({},g.data),{location:n})}):u({code:m,message:JSON.stringify(g.data)},{statusCode:m,headers:E,data:void 0})}};function al(s){return function(n){return Object.prototype.toString.call(n).match(/^\[object (.*)\]$/)[1].toLowerCase()}(s)==="file"}function kr(s){const n=s||99999999;return Math.round(Math.random()*n)}function Lr(s,n=!0,g=!0){const u=Date.now();return n?g?u-s+" ms":`${Math.round((u-s)/1e3)} s`:g?u-s:Math.round((u-s)/1e3)}function Ig(s){return`${Array.from({length:8},()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1)).join("")}-${s}`}function ar(s,n){return Math.round(Number(s)*10**n)/10**n}function Rr(s){return s<=1048576?`${ar(s/1024,1)}KB/s`:`${ar(s/1048576,1)}MB/s`}const ic="TIMImageElem",Fg="TIMSoundElem",Ya="TIMFileElem",Ul="TIMVideoFileElem",Ca="RichMediaMessagePlugin",yI=["rich.my-imcloud.com","imrich.qcloud.com"],eu=1,ha=2,gl=3,UE=255;var tu;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(tu||(tu={}));const FE={wechat:/^(wxfile:\/\/tmp_|http:\/\/temp\/|cloud:\/\/temp-)/,alipay:/^(https:\/\/resource\/|alipayfile:\/\/tmp\/)/,baidu:/^(http:\/\/tmp\/|swanfile:\/\/tmp_)/,bytedance:/^(ttfile:\/\/tmp_|\/(var|tmp)\/|tttemp:\/\/)/,qq:/^(qqfile:\/\/tmp_|http:\/\/qtemp\/)/},Jr=Symbol("isCustomUpload");var iu,Ft=new class{init(s){this._core=s}addAuthToUrl(s=""){if(this._isMiniProgramTempFile(s))return s;const n=function(g){return g?g.startsWith("https://")?g:g.startsWith("http://")?g.replace("http://","https://"):g:""}(s);return this.processResourceUrl(n)}removeAuthToUrl(s){return function(n,g){const[u,E]=n.split("?");if(!E)return u;const m=E.split("&").reduce((M,T)=>{const[P,W]=T.split("=");return P&&P!==g&&(M[P]=W||""),M},{}),D=Object.keys(m).map(M=>`${M}${m[M]?`=${m[M]}`:""}`).join("&");return D?`${u}?${D}`:u}(s,"authKey")}_isMiniProgramTempFile(s){return!!this.getPlatformFlags().IN_MINI_APP&&Object.values(FE).some(n=>n.test(s))}extractFileFromInput(s){const{utils:{isArray:n}}=this._core;return al(s)?s:function(g){if(typeof g!="object"||g===null)return!1;const u=Object.getPrototypeOf(g);if(u===null)return!0;let E=u;for(;Object.getPrototypeOf(E)!==null;)E=Object.getPrototypeOf(E);return u===E}(s)&&typeof uni<"u"?n(s.tempFiles)&&s.tempFiles.length>0?s.tempFiles[0]:n(s.files)?s.files[0]:s.tempFile?s.tempFile:null:s instanceof HTMLInputElement&&s.files&&s.files.length>0?s.files[0]:null}probeImageWidthHeight(s){return pA(this,void 0,void 0,function*(){var n;const{IN_MINI_APP:g,IN_BROWSER:u}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return this._shouldSkipProbing()?{width:0,height:0}:u?this._probeImageDimensionsWeb(s):g?this._probeImageDimensionsMiniApp(s):void 0})}isSimpleCos(){var s;const n=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{simple_cos:g}=n;return g!=="0"}getFileDNList(){var s;let n=yI;const g=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{file_dn_list:u}=g;if(u===void 0)return n;try{JSON.parse(u).forEach(E=>{n.includes(E)||n.push(E)})}catch(E){console.warn(E),n=yI}return n}getPlatform(){var s;return(s=this._core)===null||s===void 0?void 0:s.utils.platform}generateUUID(s,n){var g;let u=`${this.getSDKAppID()}-${this.getCurrentUserID()}-${(g=this._core)===null||g===void 0?void 0:g.utils.randomString()}`;if(n)return`${u}.${n}`;const E=s.name||s.value||s.url||s.tempFilePath,m=E&&E.slice(E.lastIndexOf(".")+1);return m&&(u=`${u}.${m}`),u}processResourceUrl(s){if(!s)return"";let n=s;const g=this.getFileDownloadProxy(),u=this.getAuthKey(),E=this.getFileDNList();return g&&(s.startsWith("http://")?n=s.replace(/^http:\/\/[^/]+/,g):s.startsWith("https://")&&(n=s.replace(/^https:\/\/[^/]+/,g))),u&&n.indexOf("authKey=")===-1&&function(D,M){let T=!1;if(D){const P=D.match(/:\/\/([0-9]?\.)?(.[^/:]+)/),W=P&&P[2]||"";if(W.includes("rich-dev"))return!0;for(let iA=0;iA-1?`${n}&authKey=${u}`:`${n}?authKey=${u}`),n}getCurrentUserID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.userId}getSDKAppID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.sdkAppId}getFileDownloadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileDownloadProxy)||""}getFileUploadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileUploadProxy)||""}getAuthKey(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.authKey)||""}isPrivateNetWork(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.proxyServer}getPlatformFlags(){var s;const{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:u,IN_UNI_NATIVE_APP:E}=(s=this._core)===null||s===void 0?void 0:s.utils;return{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:u,IN_UNI_NATIVE_APP:E}}isEmpty(s){var n;const{isEmpty:g}=(n=this._core)===null||n===void 0?void 0:n.utils;return g(s)}generateURL(s,n){const{needAddAuthToUrl:g=!0}=n||{};return g?this.addAuthToUrl(s):s}_probeImageDimensionsMiniApp(s){var n;const{MINI_APP_NAMESPACE:g}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return new Promise(u=>{g.getImageInfo({src:s,success:E=>u({width:E.width,height:E.height}),fail:()=>u({width:0,height:0})})})}_shouldSkipProbing(){var s;const{IN_RN_APP:n,IS_IE:g,IE_VERSION:u,IN_WX_MINI_GAME:E}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};return n||g&&u===9||E}_probeImageDimensionsWeb(s){return new Promise(n=>{const g=new Image,u=()=>{g.onload=null,g.onerror=null,g.src=""};g.onload=()=>{n({width:g.width,height:g.height}),u()},g.onerror=()=>{n({width:0,height:0}),u()},g.src=s})}},Yu={exports:{}},Vu=(iu||(iu=1,function(s){s.exports=function(n){var g=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function u(LA,SA){var OA=LA[0],JA=LA[1],ne=LA[2],se=LA[3];JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&ne|~JA&se)+SA[0]-680876936|0)<<7|OA>>>25)+JA|0)&JA|~OA&ne)+SA[1]-389564586|0)<<12|se>>>20)+OA|0)&OA|~se&JA)+SA[2]+606105819|0)<<17|ne>>>15)+se|0)&se|~ne&OA)+SA[3]-1044525330|0)<<22|JA>>>10)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&ne|~JA&se)+SA[4]-176418897|0)<<7|OA>>>25)+JA|0)&JA|~OA&ne)+SA[5]+1200080426|0)<<12|se>>>20)+OA|0)&OA|~se&JA)+SA[6]-1473231341|0)<<17|ne>>>15)+se|0)&se|~ne&OA)+SA[7]-45705983|0)<<22|JA>>>10)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&ne|~JA&se)+SA[8]+1770035416|0)<<7|OA>>>25)+JA|0)&JA|~OA&ne)+SA[9]-1958414417|0)<<12|se>>>20)+OA|0)&OA|~se&JA)+SA[10]-42063|0)<<17|ne>>>15)+se|0)&se|~ne&OA)+SA[11]-1990404162|0)<<22|JA>>>10)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&ne|~JA&se)+SA[12]+1804603682|0)<<7|OA>>>25)+JA|0)&JA|~OA&ne)+SA[13]-40341101|0)<<12|se>>>20)+OA|0)&OA|~se&JA)+SA[14]-1502002290|0)<<17|ne>>>15)+se|0)&se|~ne&OA)+SA[15]+1236535329|0)<<22|JA>>>10)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&se|ne&~se)+SA[1]-165796510|0)<<5|OA>>>27)+JA|0)&ne|JA&~ne)+SA[6]-1069501632|0)<<9|se>>>23)+OA|0)&JA|OA&~JA)+SA[11]+643717713|0)<<14|ne>>>18)+se|0)&OA|se&~OA)+SA[0]-373897302|0)<<20|JA>>>12)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&se|ne&~se)+SA[5]-701558691|0)<<5|OA>>>27)+JA|0)&ne|JA&~ne)+SA[10]+38016083|0)<<9|se>>>23)+OA|0)&JA|OA&~JA)+SA[15]-660478335|0)<<14|ne>>>18)+se|0)&OA|se&~OA)+SA[4]-405537848|0)<<20|JA>>>12)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&se|ne&~se)+SA[9]+568446438|0)<<5|OA>>>27)+JA|0)&ne|JA&~ne)+SA[14]-1019803690|0)<<9|se>>>23)+OA|0)&JA|OA&~JA)+SA[3]-187363961|0)<<14|ne>>>18)+se|0)&OA|se&~OA)+SA[8]+1163531501|0)<<20|JA>>>12)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA&se|ne&~se)+SA[13]-1444681467|0)<<5|OA>>>27)+JA|0)&ne|JA&~ne)+SA[2]-51403784|0)<<9|se>>>23)+OA|0)&JA|OA&~JA)+SA[7]+1735328473|0)<<14|ne>>>18)+se|0)&OA|se&~OA)+SA[12]-1926607734|0)<<20|JA>>>12)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA^ne^se)+SA[5]-378558|0)<<4|OA>>>28)+JA|0)^JA^ne)+SA[8]-2022574463|0)<<11|se>>>21)+OA|0)^OA^JA)+SA[11]+1839030562|0)<<16|ne>>>16)+se|0)^se^OA)+SA[14]-35309556|0)<<23|JA>>>9)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA^ne^se)+SA[1]-1530992060|0)<<4|OA>>>28)+JA|0)^JA^ne)+SA[4]+1272893353|0)<<11|se>>>21)+OA|0)^OA^JA)+SA[7]-155497632|0)<<16|ne>>>16)+se|0)^se^OA)+SA[10]-1094730640|0)<<23|JA>>>9)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA^ne^se)+SA[13]+681279174|0)<<4|OA>>>28)+JA|0)^JA^ne)+SA[0]-358537222|0)<<11|se>>>21)+OA|0)^OA^JA)+SA[3]-722521979|0)<<16|ne>>>16)+se|0)^se^OA)+SA[6]+76029189|0)<<23|JA>>>9)+ne|0,JA=((JA+=((ne=((ne+=((se=((se+=((OA=((OA+=(JA^ne^se)+SA[9]-640364487|0)<<4|OA>>>28)+JA|0)^JA^ne)+SA[12]-421815835|0)<<11|se>>>21)+OA|0)^OA^JA)+SA[15]+530742520|0)<<16|ne>>>16)+se|0)^se^OA)+SA[2]-995338651|0)<<23|JA>>>9)+ne|0,JA=((JA+=((se=((se+=(JA^((OA=((OA+=(ne^(JA|~se))+SA[0]-198630844|0)<<6|OA>>>26)+JA|0)|~ne))+SA[7]+1126891415|0)<<10|se>>>22)+OA|0)^((ne=((ne+=(OA^(se|~JA))+SA[14]-1416354905|0)<<15|ne>>>17)+se|0)|~OA))+SA[5]-57434055|0)<<21|JA>>>11)+ne|0,JA=((JA+=((se=((se+=(JA^((OA=((OA+=(ne^(JA|~se))+SA[12]+1700485571|0)<<6|OA>>>26)+JA|0)|~ne))+SA[3]-1894986606|0)<<10|se>>>22)+OA|0)^((ne=((ne+=(OA^(se|~JA))+SA[10]-1051523|0)<<15|ne>>>17)+se|0)|~OA))+SA[1]-2054922799|0)<<21|JA>>>11)+ne|0,JA=((JA+=((se=((se+=(JA^((OA=((OA+=(ne^(JA|~se))+SA[8]+1873313359|0)<<6|OA>>>26)+JA|0)|~ne))+SA[15]-30611744|0)<<10|se>>>22)+OA|0)^((ne=((ne+=(OA^(se|~JA))+SA[6]-1560198380|0)<<15|ne>>>17)+se|0)|~OA))+SA[13]+1309151649|0)<<21|JA>>>11)+ne|0,JA=((JA+=((se=((se+=(JA^((OA=((OA+=(ne^(JA|~se))+SA[4]-145523070|0)<<6|OA>>>26)+JA|0)|~ne))+SA[11]-1120210379|0)<<10|se>>>22)+OA|0)^((ne=((ne+=(OA^(se|~JA))+SA[2]+718787259|0)<<15|ne>>>17)+se|0)|~OA))+SA[9]-343485551|0)<<21|JA>>>11)+ne|0,LA[0]=OA+LA[0]|0,LA[1]=JA+LA[1]|0,LA[2]=ne+LA[2]|0,LA[3]=se+LA[3]|0}function E(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA.charCodeAt(SA)+(LA.charCodeAt(SA+1)<<8)+(LA.charCodeAt(SA+2)<<16)+(LA.charCodeAt(SA+3)<<24);return OA}function m(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA[SA]+(LA[SA+1]<<8)+(LA[SA+2]<<16)+(LA[SA+3]<<24);return OA}function D(LA){var SA,OA,JA,ne,se,_i,Ti=LA.length,Lt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)u(Lt,E(LA.substring(SA-64,SA)));for(OA=(LA=LA.substring(SA-64)).length,JA=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],SA=0;SA>2]|=LA.charCodeAt(SA)<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(u(Lt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return ne=(ne=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),se=parseInt(ne[2],16),_i=parseInt(ne[1],16)||0,JA[14]=se,JA[15]=_i,u(Lt,JA),Lt}function M(LA){var SA,OA,JA,ne,se,_i,Ti=LA.length,Lt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)u(Lt,m(LA.subarray(SA-64,SA)));for(OA=(LA=SA-64>2]|=LA[SA]<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(u(Lt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return ne=(ne=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),se=parseInt(ne[2],16),_i=parseInt(ne[1],16)||0,JA[14]=se,JA[15]=_i,u(Lt,JA),Lt}function T(LA){var SA,OA="";for(SA=0;SA<4;SA+=1)OA+=g[LA>>8*SA+4&15]+g[LA>>8*SA&15];return OA}function P(LA){var SA;for(SA=0;SA"u"||ArrayBuffer.prototype.slice||function(){function LA(SA,OA){return(SA=0|SA||0)<0?Math.max(SA+OA,0):Math.min(SA,OA)}ArrayBuffer.prototype.slice=function(SA,OA){var JA,ne,se,_i,Ti=this.byteLength,Lt=LA(SA,Ti),Ni=Ti;return OA!==n&&(Ni=LA(OA,Ti)),Lt>Ni?new ArrayBuffer(0):(JA=Ni-Lt,ne=new ArrayBuffer(JA),se=new Uint8Array(ne),_i=new Uint8Array(this,Lt,JA),se.set(_i),ne)}}(),xA.prototype.append=function(LA){return this.appendBinary(W(LA)),this},xA.prototype.appendBinary=function(LA){this._buff+=LA,this._length+=LA.length;var SA,OA=this._buff.length;for(SA=64;SA<=OA;SA+=64)u(this._hash,E(this._buff.substring(SA-64,SA)));return this._buff=this._buff.substring(SA-64),this},xA.prototype.end=function(LA){var SA,OA,JA=this._buff,ne=JA.length,se=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(SA=0;SA>2]|=JA.charCodeAt(SA)<<(SA%4<<3);return this._finish(se,ne),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},xA.prototype.setState=function(LA){return this._buff=LA.buff,this._length=LA.length,this._hash=LA.hash,this},xA.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},xA.prototype._finish=function(LA,SA){var OA,JA,ne,se=SA;if(LA[se>>2]|=128<<(se%4<<3),se>55)for(u(this._hash,LA),se=0;se<16;se+=1)LA[se]=0;OA=(OA=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),JA=parseInt(OA[2],16),ne=parseInt(OA[1],16)||0,LA[14]=JA,LA[15]=ne,u(this._hash,LA)},xA.hash=function(LA,SA){return xA.hashBinary(W(LA),SA)},xA.hashBinary=function(LA,SA){var OA=P(D(LA));return SA?kA(OA):OA},xA.ArrayBuffer=function(){this.reset()},xA.ArrayBuffer.prototype.append=function(LA){var SA,OA=RA(this._buff.buffer,LA),JA=OA.length;for(this._length+=LA.byteLength,SA=64;SA<=JA;SA+=64)u(this._hash,m(OA.subarray(SA-64,SA)));return this._buff=SA-64>2]|=JA[SA]<<(SA%4<<3);return this._finish(se,ne),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.ArrayBuffer.prototype.getState=function(){var LA=xA.prototype.getState.call(this);return LA.buff=EA(LA.buff),LA},xA.ArrayBuffer.prototype.setState=function(LA){return LA.buff=iA(LA.buff,!0),xA.prototype.setState.call(this,LA)},xA.ArrayBuffer.prototype.destroy=xA.prototype.destroy,xA.ArrayBuffer.prototype._finish=xA.prototype._finish,xA.ArrayBuffer.hash=function(LA,SA){var OA=P(M(new Uint8Array(LA)));return SA?kA(OA):OA},xA}()}(Yu)),Yu.exports),mC=rI(Vu),q=new class{constructor(){this.uploadFileTryCount=0,this.maxRetries=1,this.systemClockOffset=0,this.httpRequest=null,this.uploadFileType="",this.duration=900,this.fetchCosTryCount=0}init(s){var n;this._core=s;const{IN_MINI_APP:g}=s.utils;this.httpRequest=g?fI:Pu,(n=this.httpRequest)===null||n===void 0||n.init(s)}uploadToCOS(s){return pA(this,void 0,void 0,function*(){const n=`${Ca} uploadToCOS`,{ssoLog:g,utils:{safeStringify:u}}=this._core,{file:E}=s;this.uploadFileType=s.uploadFileType,g.debug("uploadToCOS",`${n} options:${u(s)}`);try{const m=Date.now(),D=yield this._createCosOptions(s),M=D.fileExistsInCOS?{data:{location:D.downloadUrl}}:yield this._uploadFile(D);this._handleUploadError(M,s);const T=this._createUploadResult(E,M),P=Date.now()-m,W=function(EA){return EA<1024?`${EA}B`:EA<1048576?`${Math.floor(EA/1024)}KB`:`${Math.floor(EA/1048576)}MB`}(E.size),iA=`size:${W} time:${P}ms speed:${Rr(1e3*E.size/P)}`;return g.debug("uploadToCOS",`${n} ok. name:${E.name} ${iA}`),{uploadOptions:D,response:T}}catch(m){throw g.warn("uploadToCOS",`${n} failed, error:${u(m)}`),m}})}_handleUploadError(s,n){var g,u;const{ChatError:E}=(g=this._core)===null||g===void 0?void 0:g.helper;if(s.statusCode===403)throw n.url,!((u=s?.data)===null||u===void 0)&&u.uploadIP&&s.data.uploadIP,new E({message:"Upload failed with status 403"})}_createUploadResult(s,n){return{fileName:s.name,fileSize:s.size,fileType:s.type.slice(s.type.indexOf("/")+1).toLowerCase(),location:n.data.location||"",uploadTime:Lr(Date.now(),!1),uploadSpeed:Rr(1e3*s.size/Lr(Date.now(),!1))}}_createCosOptions(s){return pA(this,void 0,void 0,function*(){const{fileName:n,resources:g,uploadMethod:u}=yield this._prepareUploadParams(s),E=this._isC2CConversation(s.message.conversationID)?1:2;try{const m=yield this._fetchCosSignatureUrl({fileType:this.uploadFileType,fileName:n,uploadMethod:u,duration:this.duration,userID:s.message.from,conversationType:E}),{uploadUrl:D,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,existFlag:EA}=m,RA=!Ft.isPrivateNetWork()&&m.uploadIP;return{url:this._getRawOrUploadProxyUrl(D),fileType:this.uploadFileType,fileName:n,resources:g,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,uploadIP:RA||"",fileExistsInCOS:EA===1,onProgress:kA=>this._handleUploadProgress(kA,s)}}catch(m){throw console.error("Failed to create COS pre-signed URL options:",m),m}})}_prepareUploadParams(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g,isEmpty:u}}=this._core;n.debug("_prepareUploadParams",` prepareUploadParams:${g(s)}`);const{file:E}=s,{IN_MINI_APP:m,IN_RN_APP:D}=Ft.getPlatformFlags(),M=m||D,T=M&&s.message.type!==Ya,{name:P}=E,W=P.slice(P.lastIndexOf(".")),iA=`${kr(999999)}${W}`,EA=T?E.name:iA,RA=yield this._generateHashFileName(E);return{fileName:u(RA)?Ig(EA):`${RA}${W}`,resources:M?E.url:E,uploadMethod:M?1:0}})}_generateHashFileName(s){return pA(this,void 0,void 0,function*(){const{utils:{IN_MINI_APP:n,IN_BROWSER:g,IN_UNI_NATIVE_APP:u,isArray:E},ssoLog:m}=this._core,D=Date.now();let M="";return g&&(M=yield this._generateHashFileNameInWeb(s)),n&&(E(s.tempFiles)&&(s=s.tempFiles[0]),u||(M=yield this._generateFileNameInMiniProgram(s)),u&&(M=yield this._generateFileNameInUNINativeApp(s))),m.info("_generateHashFileName",`hashFileName:${M} costTime:${Date.now()-D}`),M})}_generateHashFileNameInWeb(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;let u="";try{u=yield new Promise((E,m)=>{const D=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;D||(n.warn("_generateHashFileNameInWeb","Browser does not support file slicing"),E(""));const M=10485760,T=Math.ceil(s.size/M);let P=0;const W=new mC.ArrayBuffer,iA=new FileReader,EA=setTimeout(()=>{iA.abort(),n.warn("_generateHashFileNameInWeb","File hash generation timeout"),E("")},2e3);function RA(){const kA=P*M,xA=kA+M>=s.size?s.size:kA+M;iA.readAsArrayBuffer(D.call(s,kA,xA))}iA.onload=kA=>{n.debug("_generateHashFileNameInWeb",`read chunk nr ${P+1} of ${T}`),W.append(kA.target.result),P++,P{clearTimeout(EA),m(kA)},RA()})}catch(E){n.warn("_generateHashFileNameInWeb",g(E))}return u})}_generateFileNameInMiniProgram(s){return pA(this,void 0,void 0,function*(){const{utils:{MINI_APP_NAMESPACE:n,safeStringify:g,isEmpty:u},ssoLog:E}=this._core;let m="";if(u(s.url))return E.warn("_generateFileNameInMiniProgram","file.url is empty"),m;if(typeof n?.getFileSystemManager!="function")return E.warn("_generateFileNameInUNINativeApp","getFileSystemManager is not a function"),m;try{m=yield new Promise((D,M)=>{n.getFileSystemManager().getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_generateFileNameInUNINativeApp(s){return pA(this,void 0,void 0,function*(){var n;const{utils:{safeStringify:g,isEmpty:u},ssoLog:E}=this._core;let m="";if(u(s.url))return E.warn("_generateFileNameInUNINativeApp","file.url is empty"),m;if(typeof((n=plus==null?void 0:plus.io)===null||n===void 0?void 0:n.getFileInfo)!="function")return E.warn("_generateFileNameInUNINativeApp","plus.io.getFileInfo is not a function"),m;try{m=yield new Promise((D,M)=>{plus.io.getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_handleUploadProgress(s,n){if(typeof n.onProgress=="function")try{n.onProgress(s.percent)}catch(g){throw console.warn("Upload progress callback error:",g),g}}_fetchCosSignatureUrl(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core,u=Ft.isSimpleCos(),E=this._prepareCosRequestData(s),m=u?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const D=yield function(T,P,W){return pA(this,void 0,void 0,function*(){try{const{helper:iA,channel:EA}=W,RA=iA.generateCosSpecifiedData({servcmd:T,data:P}),kA=`${RA.head.seq}${T}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(iA){throw console.warn("getCosSig error:",iA),iA}})}(m,E,this._core);this.fetchCosTryCount=0;const M=this._processResponse(D);return n.debug("_fetchCosSignatureUrl",` ok. isSimpleCos:${u} data:${g(M)}`),M||{}}catch(D){if(this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(s);throw this.fetchCosTryCount=0,D}})}_processResponse(s){var n;const g=Ft.isSimpleCos(),u=g?(n=s?.rpt_pre_sig)===null||n===void 0?void 0:n[0]:s;if(!u)return{};if(g){const{str_final_ip:W,rpt_pre_sig:iA,uint32_file_id:EA,uint32_exist_flag:RA,str_download_url:kA,str_upload_url:xA,str_snapshot_url:LA,str_file_key:SA}=u;return{uploadIP:W,preSig:iA,fileID:EA,existFlag:RA,downloadUrl:kA,uploadUrl:xA,requestSnapshotUrl:LA,fileKey:SA}}const{upload_url:E,download_url:m,snapshot_url:D,thumb_url:M,large_url:T,file_key:P}=u;return{uploadUrl:E,downloadUrl:m,requestSnapshotUrl:D,thumbUrl:M,largeUrl:T,fileKey:P}}_prepareCosRequestData(s){return Ft.isSimpleCos()?{uint32_upload_method:s.uploadMethod,uint32_platform:Ft.getPlatform(),uint32_sdkappid:Ft.getSDKAppID(),str_user_id:s.userID,uint32_scene:s.conversationType,rpt_upload_object:[{uint32_file_id:1,uint32_file_type:s.fileType,str_file_name:s.fileName}]}:{file_type:s.fileType,file_name:s.fileName,upload_method:s.uploadMethod,Duration:s.duration}}_uploadFile(s){return pA(this,void 0,void 0,function*(){return new Promise((n,g)=>{this.httpRequest.request(s,(u,E)=>{u&&this.uploadFileTryCount=3e4}_syncSystemClock(s){var n,g,u;const E=((n=s.headers)===null||n===void 0?void 0:n.date)||((g=s.headers)===null||g===void 0?void 0:g.Date)||((u=s.error)===null||u===void 0?void 0:u.ServerTime);if(E){const m=Date.now(),D=Date.parse(E);this.systemClockOffset=D-m}}_getRawOrUploadProxyUrl(s){const n=Ft.getFileUploadProxy();let g=s;return n&&(g=s.replace(/^https:\/\/[^/]+/,n)),g}_isC2CConversation(s){return s.slice(0,3)==="C2C"}};const L=2108,oA=2251,G=2252,x=2253,tA=["jpg","jpeg","gif","png","bmp","image","webp"],uA={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255},wA=1,XA=2;class Qe{constructor(n,g){this.instanceID=kr(9999999),this.sizeType=n.type||0,this.type=0,this.size=n.size||0,this.width=n.width||0,this.height=n.height||0,this.imageUrl=Ft.addAuthToUrl(n.imageUrl||n.url||""),this.url=Ft.addAuthToUrl(n.url||g)}setSizeType(n){this.sizeType=n}setType(n){this.type=n}setImageUrl(n){n&&(this.imageUrl=Ft.addAuthToUrl(n))}getImageUrl(){return this.imageUrl}}function p(s){const{originUrl:n,originWidth:g,originHeight:u,min:E=198}=s,m=parseInt(g)||0,D=parseInt(u)||0,M={url:void 0,width:0,height:0};if((m<=D?m:D)<=E)M.url=n,M.width=m,M.height=D;else{D<=m?(M.width=Math.ceil(m*E/D),M.height=E):(M.width=E,M.height=Math.ceil(D*E/m));const T=n&&n.indexOf("?")>-1?`${n}&`:`${n}?`;M.url=E===198?`${T}imageView2/3/w/198/h/198`:`${T}imageView2/3/w/720/h/720`}if(n===void 0){const{url:T}=M;return Do(M,["url"])}return M}class B{constructor(n){this._imageMemoryURL="",this._percent=0,this.type=ic;const{uuid:g,file:u,imageFormat:E,imageInfoArray:m=[],isCustomUpload:D=!1}=n;this._imageMemoryURL=this.createImageDataAsURL(u),this.content={imageFormat:E,uuid:g,imageInfoArray:[]},this[Jr]=D,this.initImageInfoArray(m),this.autoFixUrl()}static parseServerPushElement(n){const{MsgContent:g}=n,{ImageFormat:u,ImageInfoArray:E,UUID:m}=g,D=function(M){return M.map(T=>({size:T.Size,type:T.Type,width:T.Width,height:T.Height,url:T.URL}))}(E);return new B({imageFormat:u,imageInfoArray:D,uuid:m})}createImageDataAsURL(n){let g="";const{IN_MINI_APP:u,IN_RN_APP:E,IN_BROWSER:m}=Ft.getPlatformFlags();return n&&((u||E)&&(g=n.url),m&&(g=window.URL.createObjectURL(n))),g}initImageInfoArray(n=[]){const g={type:0,size:0,width:0,height:0,url:""};for(let u=0;u<3;u++){const E=n[u]||Object.assign({},g),m=new Qe(E,this._imageMemoryURL);m.setSizeType(u+1),m.setType(u),this.addImageInfo(m)}this.updateAccessSideImageInfoArray()}autoFixUrl(){const n=["http","https"];this.content.imageInfoArray.forEach(g=>{if(!g.url||g.imageUrl==="")return;const[u,...E]=g.imageUrl.split("://"),m=E.join("://");n.includes(u)||g.setImageUrl(`https://${m}`)})}updatePercent(n){this._percent=Math.min(n,1)}updateImageFormat(n){this.content.imageFormat=uA[n.toUpperCase()]||uA.UNKNOWN}addImageInfo(n){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(n)}updateImageInfoArray(n){const g=this.content.imageInfoArray.length;let u;for(let E=0;E({InstanceId:g.instanceID,Type:g.sizeType,MsgType:g.type,Size:g.size,Width:g.width,Height:g.height,URL:Ft.removeAuthToUrl(g.imageUrl)}))}}const v=new class{init(s){this.core=s}},N={[eu]:"i",[gl]:"a",[ha]:"v",[UE]:"f"};let O=null,z=null;function X(s){var n;const{store:g,utils:{isNumber:u,safeStringify:E},ssoLog:m}=v.core;try{const D=((n=g.get("cloudConfig"))===null||n===void 0?void 0:n.upload_size_limit)||"";D!==z&&(z=D,O=JSON.parse(D)||{});const M=O?.[N[s]];if(u(M))return 1024*M*1024}catch(D){m.debug("getCloudControlUploadSizeLimit",E(D))}return null}var nA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createImageMessage",context:this}),u.registerExperimentalAPI("createImageMessage",this,"createCustomUploadImageMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(ic,B),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createImageMessage(s){var n,g,u;try{const E=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,m=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:E})),D=this._processImage(s);s.payload.file=D;const M={imageFormat:uA.UNKNOWN,uuid:Ft.generateUUID(D),file:D,imageInfoArray:[]},T=new B(M);return m.setElement(T),this._messageOptionsMap.set(m.clientSequence,s),m}catch(E){throw E}}createCustomUploadImageMessage(s){var n,g,u,E;const{store:m,utils:{isEmpty:D}}=this._core,M=(n=m.get("login"))===null||n===void 0?void 0:n.userId,T=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:M})),{largeImageUuid:P,largeFileSize:W,largeImageWidth:iA,largeImageHeight:EA,largeImageUrl:RA,originImageUuid:kA,originFileSize:xA,originImageWidth:LA,originImageHeight:SA,originImageUrl:OA,thumbImageUuid:JA,thumbFileSize:ne,thumbImageWidth:se,thumbImageHeight:_i,thumbImageUrl:Ti}=((E=s?.payload)===null||E===void 0?void 0:E.file)||{};if(D(OA)||D(kA))throw new Error("createImageMessageExperimental originImageUrl or originImageUuid is empty");const Lt=new B({imageFormat:uA.UNKNOWN,uuid:kA,imageInfoArray:[{instanceID:kA,size:xA,width:LA,height:SA,imageUrl:OA,url:OA},{instanceID:P,size:W,width:iA,height:EA,imageUrl:RA,url:RA},{instanceID:JA,size:ne,width:se,height:_i,imageUrl:Ti,url:Ti}],isCustomUpload:!0});return T.setElement(Lt),this._messageOptionsMap.set(T.clientSequence,s),T._skipUpload=!0,T}upload(s){return pA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadImage(g);const u=yield this._performImageUpload(n,s,g),E=this._generateImageInfo(u);return n.updateImageFormat(u?.fileType),n.updateImageInfoArray(E),this._updateImageType(n.content.imageInfoArray),s})}_performImageUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:eu,file:g,to:u,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{uploadOptions:m,response:D}=yield q.uploadToCOS(E);return this._parseResponse(m,D)})}_generateImageInfo(s){const{location:n,fileSize:g,width:u,height:E,smallImageUrl:m,smallImageWidth:D,smallImageHeight:M,largeImageUrl:T,largeImageWidth:P,largeImageHeight:W,imageInfoArray:iA}=s,EA=Ft.addAuthToUrl(n),RA={size:g,url:EA,width:u,height:E};return iA?.length>0?this._processImageInfoArray(iA,g):m&&T?[Object.assign({},RA),{largeImageUrl:T,largeImageWidth:P,largeImageHeight:W},{smallImageUrl:m,smallImageWidth:D,smallImageHeight:M}]:[Object.assign({},RA),this._generateThumbInfo(EA,u,E,720),this._generateThumbInfo(EA,u,E,198)]}_generateThumbInfo(s,n,g,u){return p({originUrl:s,originWidth:n,originHeight:g,min:u})}_processImageInfoArray(s,n){let g,u,E;for(const m of s)m.type===1?(u=m,u.size=n):m.type===2?(E=m,E.size=n):(g=m,g.size=n);return[Object.assign({},g),Object.assign({},E),Object.assign({},u)]}_parseResponse(s,n){return pA(this,void 0,void 0,function*(){try{const{thumbUrl:g,largeUrl:u,downloadUrl:E}=s;if(g&&u&&(yield this._getImageInfoByUrl(g,n,"thumb"),yield this._getImageInfoByUrl(u,n,"large")),Ft.isSimpleCos()&&!Ft.isPrivateNetWork()&&(yield this._getImageInfoArray(E,n),n?.uploadIP)){const m=this._extractDomainFromUrl(E);m&&(yield this._getDownloadIP(m,n))}return n}catch(g){throw g}})}_extractDomainFromUrl(s){var n;try{const g=s.match(/:\/\/([^\/]+)/);return g?g[1]:null}catch(g){return(n=this._core)===null||n===void 0||n.ssoLog.warn("_extractDomainFromUrl",`Failed to extract domain from URL:${g.message}`),null}}_getImageInfoByUrl(s,n,g){return pA(this,void 0,void 0,function*(){var u;try{const E=Ft.addAuthToUrl(s),{width:m=0,height:D=0}=yield Ft.probeImageWidthHeight(E);n.width=m,n.height=D,g==="thumb"?(n.smallImageUrl=s,n.smallImageWidth=m,n.smallImageHeight=D):(n.largeImageUrl=s,n.largeImageWidth=m,n.largeImageHeight=D)}catch(E){(u=this._core)===null||u===void 0||u.ssoLog.warn("_getImageInfoByUrl",`Failed to get ${g} image info:${E.message}`)}})}_validateBeforeUploadImage(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper;if(!s)throw new g({code:oA});this._checkImageType(s),this._checkImageSize(s)}_processImage(s){var n;try{const{IN_MINI_APP:g}=(n=this._core)===null||n===void 0?void 0:n.utils;let{file:u}=s.payload;return u=g?this._processMiniAppImageFile(u):this._processWebImageFile(u),u}catch(g){throw g}}_processMiniAppImageFile(s){al(s)&&console.warn("FileUnsupportedInMiniApp","createImageMessage");const n=s.tempFiles[0].path||s.tempFiles[0].tempFilePath;return{url:n,name:n.slice(n.lastIndexOf("/")+1),size:s.tempFiles&&s.tempFiles[0].size||1,type:n.slice(n.lastIndexOf(".")+1).toLowerCase()}}_processWebImageFile(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper,u=Ft.extractFileFromInput(s);if(!u)throw new g({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return u}_getDownloadIP(s,n){return pA(this,void 0,void 0,function*(){const g=`${Ca} getDownloadIP domainName: ${s}`;try{const u=yield function(m,D){return pA(this,void 0,void 0,function*(){try{const{helper:M,channel:T}=D,P="im_cos_msg.get_final_ip",W={str_domain:m},iA=M.generateProtocolData({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})}catch(M){throw console.warn("getFinalIP error:",M),M}})}(s,this._core);if(!u||!u.str_final_ip)return;console.log(`${g} ok. downloadIP:${u}`);const E=n.location.split("/");E[0]=u.str_final_ip,n.location=E.join("/")}catch(u){console.warn(u)}})}_getImageInfoArray(s,n){return pA(this,void 0,void 0,function*(){try{const g=yield function(u,E){return pA(this,void 0,void 0,function*(){try{const{helper:m,channel:D}=E,M="im_cos_msg.get_imageinfo",T={str_image_url:u},P=m.generateProtocolData({servcmd:M,data:T}),W=`${P.head.seq}${M}`;return yield D.sendPacket(P,{requestId:W})}catch(m){throw console.warn("getImageInfo error:",m),m}})}(s,this._core);return n.imageInfoArray=this._processImageInfoResponse(g),n}catch(g){throw n.imageInfoArray=void 0,g}})}_processImageInfoResponse(s){if(!s)return[];const{rpt_msg_image_info:n}=s;return n.map(g=>({type:g.uint32_image_type,url:g.str_url,width:g.uint32_width,height:g.uint32_height,imageFormat:g.str_image_format}))}_checkImageType(s){const{utils:n,helper:g}=this._core;let u="";if(n.IN_MINI_APP&&(u=s.url.slice(s.url.lastIndexOf(".")+1)),n.IN_BROWSER&&(u=s.name.slice(s.name.lastIndexOf(".")+1)),tA.indexOf(u.toLowerCase())<0)throw new g.ChatError({code:G})}_checkImageSize(s){const{utils:n,helper:g,store:u}=this._core;let E=0;if(E=(n.IN_MINI_APP,s.size),E===0)throw new g.ChatError({code:L});if(E>=(X(eu)||20971520))throw new g.ChatError({code:x})}_updateImageType(s){s[1].type=XA,s[2].type=wA}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const DA=2108,GA=2401,VA=2402,ee="2.5.0",Ee="1.18.0";function Ke(s,n){const g=s.split("."),u=n.split("."),E=Math.max(g.length,u.length);for(;g.lengthM)return 1;if(D0;return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{uuid:E,downloadFlag:m,fileUrl:D,fileName:M,fileSize:T}=u;return{MsgType:this.type,MsgContent:{Download_Flag:m,Url:Ft.removeAuthToUrl(D),FileName:M,FileSize:T,UUID:E}}}_getFileInfo(n){const{utils:{IN_UNI_NATIVE_APP:g}}=v.core;if(n.fileName&&n.fileSize)return{size:n.fileSize,name:n.fileName};const{file:u}=n;return u?(g&&this._processNativeAppFile(u),{size:u.size,name:u.name}):{size:0,name:""}}_processNativeAppFile(n){if(n.path&&n.path.includes(".")){const g=n.path.slice(n.path.lastIndexOf(".")+1).toLowerCase();n.type=g,n.name||(n.name=`${kr(999999)}.${g}`)}n.name||(n.type="",n.name=n.path.slice(n.path.lastIndexOf("/")+1).toLowerCase()),n.suffix&&(n.type=n.suffix),n.url||(n.url=n.path)}}ot=Jr;var kt=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createFileMessage",context:this}),u.registerExperimentalAPI("createFileMessage",this,"createCustomUploadFileMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Ya,at),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createFileMessage(s){var n,g,u;try{this._checkVersion();const E=this._processFile(s.payload.file);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={uuid:Ft.generateUUID(E),file:E},T=new at(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadFileMessage(s){var n,g,u;try{const{store:E,message:m,utils:{isEmpty:D}}=this._core,M=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:T,uuid:P,fileSize:W,fileName:iA=""}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{};if(D(T))throw new Error("url is required");const EA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:M})),RA=new at({url:T,uuid:P,file:{size:W,name:iA},isCustomUpload:!0});return EA.setElement(RA),EA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const{file:n}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadFile(n);const g=s.getElements()[0],u=yield this._performFileUpload(g,s,n),E=Ft.addAuthToUrl(u?.location);return g.updateFileUrl(E),s})}_validateBeforeUploadFile(s){const{helper:{ChatError:n}}=this._core;if(!s)throw new n({code:GA});const g=X(UE)||104857600;if(s.size>g)throw new n({code:VA});if(s.size===0)throw new n({code:DA})}_performFileUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:UE,file:g,to:u,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processFile(s){var n,g;const{IN_BROWSER:u,IN_RN_APP:E,IN_WX_MINI_APP:m,IN_QQ_MINI_APP:D,IN_UNI_NATIVE_APP:M}=(n=this._core)===null||n===void 0?void 0:n.utils,{ChatError:T}=(g=this._core)===null||g===void 0?void 0:g.helper;if(u||M){const P=Ft.extractFileFromInput(s);if(!P)throw new T({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return P}if(m||D){const{tempFiles:P}=s;return Object.assign(Object.assign({},P[0]),{url:P[0].path})}return E?Object.assign(Object.assign({},s),{url:s.uri}):s}_checkVersion(){var s,n;const{MINI_APP_NAMESPACE:g,IN_MINI_APP:u,IN_WX_MINI_APP:E,IN_QQ_MINI_APP:m,IN_UNI_NATIVE_APP:D}=(s=this._core)===null||s===void 0?void 0:s.utils,{ChatError:M}=(n=this._core)===null||n===void 0?void 0:n.helper;if(u){if(!(E||m||D))throw new M({message:"Unsupported mini app environment"});const T=g.getSystemInfoSync().SDKVersion;if(E&&Ke(T,ee)<0)throw new M({message:`WXChooseMessageFile requires SDK version ${ee} or higher`});if(m&&Ke(T,Ee)<0)throw new M({message:`QQChooseMessageFile requires SDK version ${Ee} or higher`})}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Yt=2108,Ui=2351,ao=2352,zi=["mp4","quicktime","mov","video"];var ui;class Po{constructor(n){this.type=Ul,this.uploadProgress=0,this[ui]=!1;const g=typeof n?.videoSecond=="number"?n?.videoSecond:0;this[Jr]=n.isCustomUpload||!1,this.content={remoteVideoUrl:Ft.addAuthToUrl(n.remoteVideoUrl||n.videoUrl||""),videoFormat:n.videoFormat,videoSecond:parseInt(g?.toString(),10),videoSize:n.videoSize,videoUrl:Ft.addAuthToUrl(n.videoUrl),videoDownloadFlag:2,videoUUID:n.videoUUID,thumbUUID:n.thumbUUID,thumbFormat:n.thumbFormat,thumbWidth:n.thumbWidth,snapshotWidth:n.thumbWidth,thumbHeight:n.thumbHeight,snapshotHeight:n.thumbHeight,thumbSize:n.thumbSize,snapshotSize:n.thumbSize,thumbDownloadFlag:2,thumbUrl:Ft.addAuthToUrl(n.thumbUrl),snapshotUrl:Ft.addAuthToUrl(n.thumbUrl)}}static parseServerPushElement(n){const{MsgContent:g}=n,{VideoUrl:u,VideoFormat:E,VideoSecond:m,VideoSize:D,VideoDownloadFlag:M,VideoUUID:T,ThumbUUID:P,ThumbFormat:W,ThumbWidth:iA,SnapshotWidth:EA,ThumbHeight:RA,SnapshotHeight:kA,ThumbSize:xA,SnapshotSize:LA,ThumbDownloadFlag:SA,ThumbUrl:OA,SnapshotUrl:JA}=g;return new Po({videoUrl:u,videoFormat:E,videoSecond:m,videoSize:D,videoDownloadFlag:M,videoUUID:T,thumbUUID:P,thumbFormat:W,thumbWidth:iA,snapshotWidth:EA,thumbHeight:RA,snapshotHeight:kA,thumbSize:xA,snapshotSize:LA,thumbDownloadFlag:SA,thumbUrl:OA,snapshotUrl:JA})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateVideoUrl(n){n&&(this.content.remoteVideoUrl=n)}updateSnapshotInfo(n){const{snapshotUrl:g,snapshotWidth:u,snapshotHeight:E}=n;Ft.isEmpty(g)||(this.content.thumbUrl=this.content.snapshotUrl=g),Ft.isEmpty(u)||(this.content.thumbWidth=this.content.snapshotWidth=Number(u)),Ft.isEmpty(E)||(this.content.thumbHeight=this.content.snapshotHeight=Number(E))}validateBeforeSend(){if(this[Jr])return{isValid:!0};const n=this.content.remoteVideoUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{remoteVideoUrl:E,videoFormat:m,videoSecond:D,videoSize:M,videoDownloadFlag:T,videoUUID:P,thumbUUID:W,thumbFormat:iA,thumbWidth:EA,snapshotWidth:RA,thumbHeight:kA,snapshotHeight:xA,thumbSize:LA,snapshotSize:SA,thumbDownloadFlag:OA,thumbUrl:JA,snapshotUrl:ne}=u;return{MsgType:this.type,MsgContent:{VideoUrl:Ft.removeAuthToUrl(E),VideoFormat:m,VideoSecond:D,VideoSize:M,VideoDownloadFlag:T,VideoUUID:P,ThumbUUID:W,ThumbFormat:iA,ThumbWidth:EA,SnapshotWidth:RA,ThumbHeight:kA,SnapshotHeight:xA,ThumbSize:LA,SnapshotSize:SA,ThumbDownloadFlag:OA,ThumbUrl:Ft.removeAuthToUrl(JA),SnapshotUrl:Ft.removeAuthToUrl(ne)}}}}ui=Jr;var As,pi=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createVideoMessage",context:this}),u.registerExperimentalAPI("createVideoMessage",this,"createCustomUploadVideoMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Ul,Po),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createVideoMessage(s){var n,g,u;try{const E=this._processVideo(s);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={videoFormat:E.videoFile.type,videoSecond:ar(E.videoFile.second,0),videoSize:E.videoFile.size,remoteVideoUrl:"",videoUrl:E.videoFile.url,videoUUID:Ft.generateUUID(E.videoFile),thumbUUID:Ft.generateUUID(E.videoFile,"jpg"),thumbWidth:E.width||200,thumbHeight:E.height||200,thumbUrl:E.thumbUrl,thumbSize:E.thumbSize,thumbFormat:"jpg"},T=new Po(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadVideoMessage(s){var n,g,u;try{const{store:E,message:m}=this._core;this._validateCustomUploadVideoMessage(s);const D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{videoUrl:M,videoUuid:T,duration:P,snapshotUrl:W,snapshotUuid:iA,videoFileSize:EA,videoType:RA,snapshotWidth:kA,snapshotHeight:xA,snapshotFileSize:LA,snapshotType:SA="jpg"}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},OA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:D})),JA=new Po({videoFormat:RA,videoSecond:P||0,videoSize:EA,remoteVideoUrl:M,videoUrl:M,videoUUID:T,thumbUUID:iA,thumbWidth:kA||200,thumbHeight:xA||200,thumbUrl:W,thumbSize:LA,thumbFormat:SA,isCustomUpload:!0});return OA.setElement(JA),this._messageOptionsMap.set(OA.clientSequence,s),OA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadVideo(g);const u=yield this._performVideoUpload(n,s,g),{location:E,snapshotInfo:m}=u,D=Ft.addAuthToUrl(E);return n.updateVideoUrl(D),Ft.isEmpty(m)||n.updateSnapshotInfo(m),s})}_validateBeforeUploadVideo(s){const{helper:{ChatError:n}}=this._core,g=X(ha)||104857600;if(s.videoFile.size>g)throw new n({code:Ui});if(s.videoFile.size===0)throw new n({code:Yt});if(zi.indexOf(s.videoFile.type)===-1)throw new n({code:ao})}_validateCustomUploadVideoMessage(s){var n;const{utils:{isEmpty:g,isNumber:u}}=this._core,{videoUrl:E,videoUuid:m,duration:D,snapshotUrl:M,snapshotUuid:T}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(E)||g(m)||!u(D)||g(M)||g(T))throw new Error("Invalid video message options: missing required fields (videoUrl, videoUuid, duration, snapshotUrl, snapshotUuid)")}_performVideoUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:ha,file:g,to:u,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{response:m,uploadOptions:D}=yield q.uploadToCOS(E);return{snapshotInfo:yield this._getSnapshotInfoByUrl(D.requestSnapshotUrl),location:m.location}})}_processVideo(s){var n,g;try{const{ChatError:u}=(n=this._core)===null||n===void 0?void 0:n.helper,{IN_MINI_APP:E,IN_BROWSER:m}=(g=this._core)===null||g===void 0?void 0:g.utils;let{file:D}=s.payload,M={};if(E&&(M=this._processMiniVideoFile(D),D.name=M.name,D.url=M.url,D.type=M.type),m){const T=Ft.extractFileFromInput(D);if(!T)throw new u({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});D=T,M=this._processWebVideoFile(D)}return D.videoFile=M,D.thumbUrl="",D.thumbSize=0,D}catch(u){throw console.warn(`${Ca} _processFile error:`,u),u}}_processMiniVideoFile(s){const{utils:{IN_UNI_NATIVE_APP:n},helper:{ChatError:g}}=this._core;if(al(s))throw new g({message:"FileUnsupportedInMiniApp"});Array.isArray(s.tempFiles)&&(s=s.tempFiles[0]);let u=s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase();return n&&(u=s.fileType||u),{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.size||1,second:s.duration||0,type:u}}_processWebVideoFile(s){const{name:n,size:g=1,duration:u=0,type:E}=s,m=E.split("/")[1];return{url:window.URL.createObjectURL(s),name:n,size:g,second:u,type:m}}_getSnapshotInfoByUrl(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core;try{n.debug("_getSnapshotInfoByUrl",`${Ca} _getSnapshotInfoByUrl url:${s}`);const g={version:1,platform:Ft.getPlatform(),cover_name:Ig(kr(99999)),snapshot_url:s},u=yield function(T,P){return pA(this,void 0,void 0,function*(){try{const W="im_cos_msg.video_cover",{helper:iA,channel:EA}=P,RA=iA.generateCosSpecifiedData({servcmd:W,data:T}),kA=`${RA.head.seq}${W}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(W){throw console.warn("getSnapshotInfo error:",W),W}})}(g,this._core),{download_url:E}=u||{};if(n.debug("_getSnapshotInfoByUrl",`${Ca} _getSnapshotInfoByUrl OK snapshotUrl:${E}`),Ft.isEmpty(E))return{};const m=Ft.addAuthToUrl(E),{width:D=0,height:M=0}=yield Ft.probeImageWidthHeight(m);return{snapshotUrl:m,snapshotWidth:D,snapshotHeight:M}}catch(g){throw g}})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};class Ki{constructor(n){this.uploadProgress=0,this.type=Fg,this[As]=!1,this[Jr]=n.isCustomUpload||!1,this.content={downloadFlag:2,second:n.second,size:n.size,url:Ft.generateURL(n.url,{needAddAuthToUrl:!this[Jr]}),remoteAudioUrl:Ft.addAuthToUrl(n.url||""),uuid:n.uuid}}static parseServerPushElement(n){const{MsgContent:g}=n,{Url:u,Download_Flag:E,Second:m,Size:D,UUID:M}=g;return new Ki({url:u,downloadFlag:E,second:m,size:D,uuid:M})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateAudioUrl(n){this.content.remoteAudioUrl=n}validateBeforeSend(){if(this[Jr])return{isValid:!0};const n=this.content.remoteAudioUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{uuid:E,downloadFlag:m,remoteAudioUrl:D,size:M,second:T}=u;return{MsgType:this.type,MsgContent:{Url:Ft.removeAuthToUrl(D),Download_Flag:m,Second:T,Size:M,UUID:E}}}}As=Jr;const Ws=2108,we=2300,Rt=2301;var FA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createAudioMessage",context:this}),u.registerExperimentalAPI("createAudioMessage",this,"createCustomUploadAudioMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Fg,Ki),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createAudioMessage(s){var n,g,u;try{let{file:E}=s.payload;E=this._processAudioFile(s.payload.file),s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={second:Math.max(1,Math.round((E.duration||E.second)/1e3)),size:E.fileSize||E.size||1,url:E.tempFilePath||E.uri||E.url,uuid:Ft.generateUUID(E)},T=new Ki(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadAudioMessage(s){var n,g,u;try{this._validateCustomUploadOptions(s);const{store:E,message:m}=this._core,D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:M,uuid:T,duration:P,fileSize:W}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},iA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:D})),EA=new Ki({second:P,size:W||1,url:M,uuid:T,isCustomUpload:!0});return iA.setElement(EA),this._messageOptionsMap.set(iA.clientSequence,s),iA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.debug("upload",`${Ca} uploadAudio message:${g(s)}`);const{file:u}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadAudio(u);const E=s.getElements()[0],m=yield this._performAudioUpload(E,s,u),D=Ft.addAuthToUrl(m?.location);return E.updateAudioUrl(D),s})}_validateBeforeUploadAudio(s){const{helper:{ChatError:n},store:g}=this._core;if(!s)throw new n({code:we});const u=X(gl)||20971520;if(s.size>u)throw new n({code:Rt});if(s.size===0)throw new n({code:Ws})}_performAudioUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:gl,file:g,to:u,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processAudioFile(s){var n;const{IN_MINI_APP:g,IN_BROWSER:u}=(n=this._core)===null||n===void 0?void 0:n.utils;return g?this._processMiniFile(s):u?this._processWebFile(s):void 0}_processMiniFile(s){return{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.fileSize,second:s.duration,type:s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase()}}_processWebFile(s){if(s.tempFilePath||s.uri)return s;const n=URL.createObjectURL(s);return s.tempFilePath=n,s}_validateCustomUploadOptions(s){var n;const{utils:{isEmpty:g}}=this._core,{url:u,uuid:E,duration:m}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(u)||g(E)||g(m))throw new Error("Invalid audio message options")}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Wt={to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1},onProgress:{required:!1,rules:["function"],allowEmpty:!1}},En={createImageMessage:Wt,createAudioMessage:Wt,createVideoMessage:Wt,createFileMessage:Wt},Zt={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},us={[ic]:nA,[Ya]:kt,[Ul]:pi,[Fg]:FA};var vi=new class{constructor(){this.name="RichMediaMessage"}install(s){this._core=s;const{constants:{OuterConstant:{MSG_AUDIO:n,MSG_FILE:g,MSG_IMAGE:u,MSG_VIDEO:E}}}=s;v.init(s),nA.init(s),kt.init(s),pi.init(s),FA.init(s),q.init(s),Ft.init(s),s.helper.registerApi({apiName:"sendMessage",context:this,matcher:m=>[n,g,u,E].includes(m[0].type)}),s.helper.registerValidateConfig({auth:Zt,params:En})}sendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;try{return this._isCustomUpload(s)||(yield this._upload(s)),yield(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)}catch(m){throw m}})}_upload(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(n.debug("_upload",` uploadFile message:${g(s)}`),s._relayFlag!==!0)try{const u=us[s.type];u&&(yield u.upload(s),n.info("_upload",` type:${s.type}`))}catch(u){throw s.status=tu.FAIL,u instanceof Error&&(u.data={message:s}),this._core.message.messageDataHandler.storeConversationMessage(s),u}})}_isCustomUpload(s){var n,g;return((g=(n=s._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g[Jr])===!0}};const ho=new class{init(s){this.core=s}};class Ct{constructor(n){this.conversationID=n.conversationID||"",this.unreadCount=n.unreadCount||0,this.type=n.type||"",this.lastMessage=ho.core.common.buildLastMessage(n.lastMessage),this.peerReadTime=n.peerReadTime||0,this.groupAtInfoList=[],this.remark=n.remark||"",this.isPinned=n.isPinned||!1,this.messageRemindType=n.messageRemindType,this.markList=n.markList||[],this.customData=n.customData||"",this.conversationGroupList=n.conversationGroupList||[],this.draftText=n.draftText||"",this.userProfile=n.userProfile,this.groupProfile=n.groupProfile,this.subType=n.subType||"",this._isInfoCompleted=!1,this._init()}_init(){var n;const{core:{OuterConstant:g,utils:{isUndefined:u}}}=ho;u(this.userProfile)&&this.type===g.CONV_C2C?this.userProfile={userID:this.conversationID.replace(g.CONV_C2C,"")}:this.type===g.CONV_GROUP&&(!this.subType&&(!((n=this.groupProfile)===null||n===void 0)&&n.type)&&(this.subType=this.groupProfile.type),u(this.groupProfile)&&(this.groupProfile={groupID:this.conversationID.replace(g.CONV_GROUP,""),selfInfo:{},lastMessage:{},type:this.subType}))}updateUnreadCount(n){var g;const{core:{OuterConstant:u,utils:{isUndefined:E},store:m}}=ho,{nextUnreadCount:D,isFromGetConversations:M,isUnreadC2CMessage:T}=n;if(E(D))return;if(this.subType===u.GRP_AVCHATROOM)return void(this.unreadCount=0);if(M&&this.type===u.CONV_GROUP)return void(this.unreadCount=D);if(T&&this.type===u.CONV_C2C)return void(this.unreadCount=D);const P=((g=m.get("cloudConfig"))===null||g===void 0?void 0:g.support_unread_count_for_meeting)==="1";this.subType!==u.GRP_MEETING||P?this.unreadCount+=D:this.unreadCount=0}updateLastMessage(n){this.lastMessage=ho.core.common.buildLastMessage(n)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(n){const{core:{OuterConstant:g}}=ho,{sequence:u,time:E}=n;return this.type===g.CONV_C2C&&u===this.lastMessage.lastSequence&&E===this.lastMessage.lastTime||this.type===g.CONV_GROUP&&u===this.lastMessage.lastSequence}setLastMessageRevoked(n){this.lastMessage.isRevoked=n}setLastMessageRevoker(n){this.lastMessage.revoker=n}setDraftText(n){this.draftText=n}updateGroupAtInfoList(n){const{core:{common:{updateGroupAtInfo:g}}}=ho;g(n,this.groupAtInfoList)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}const Bt=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s.slice(0,3)===n.CONV_C2C},ug=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s.slice(0,5)===n.CONV_GROUP},ks=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s===n.CONV_SYSTEM};function ji(s){const{OuterConstant:n}=ho.core;let g="";return s===0?g=n.MSG_REMIND_ACPT_AND_NOTE:s===1?g=n.MSG_REMIND_DISCARD:s===2?g=n.MSG_REMIND_ACPT_NOT_NOTE:s===3&&(g=n.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}function Hr(s){const{OuterConstant:n}=ho.core;let g;return s.startsWith(n.CONV_C2C)&&(g=s.replace(n.CONV_C2C,"")),g==="@TLS#ERROR"||g==="@TLS#NOT_FOUND"}function oc(s,n){const{helper:g}=ho.core,u=new g.ChatError({functionName:s,code:n?.errorCode||n?.code,message:n?.errorInfo||n?.message});throw console.error(`${s} fail:`,u),u}var is,ga;(function(s){s[s.OFF=0]="OFF",s[s.ON=1]="ON"})(is||(is={})),function(s){s[s.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(ga||(ga={}));var Ba;(function(s){s[s.CONV_NOT_FOUND=2500]="CONV_NOT_FOUND",s[s.USER_OR_GRP_NOT_FOUND=2501]="USER_OR_GRP_NOT_FOUND",s[s.CONV_UN_RECORDED_TYPE=2502]="CONV_UN_RECORDED_TYPE"})(Ba||(Ba={}));const ea=0,H=1;var BA=new class{constructor(){this._name="GetC2CMessageRemindType"}init(s){this._core=s}get(s){return pA(this,void 0,void 0,function*(){try{const{common:n}=this._core,g=yield function(E,m){return pA(this,void 0,void 0,function*(){const{toAccount:D,userIDList:M}=E,T={To_Account:D,Peer_Account:M};return m.common.buildAndSendPacket({servcmd:"openim.get_c2c_peer_mute_notifications",data:T})})}({toAccount:n.getCurrentUserID(),userIDList:s},this._core),{MuteNotificationsList:u=[]}=g||{};u.forEach(E=>{const{Peer_Account:m,MuteNotifications:D}=E,M=`${this._core.OuterConstant.CONV_C2C}${m}`,T=ji(D);NA.patchMessageRemindType([M],T)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},yA=new class{constructor(){this._name="GetGroupMessageRemindType"}init(s){this._core=s}get(s){return pA(this,void 0,void 0,function*(){if(s.length!==0)try{const n=yield function(u,E){return pA(this,void 0,void 0,function*(){const{groupIDList:m,responseFilter:D}=u,M={GroupIdList:m,ResponseFilter:D};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:M})})}({groupIDList:s,responseFilter:{MemberInfoFilter:["MsgFlag"]}},this._core),{GroupInfo:g=[]}=n||{};g.forEach(u=>{var E;const{GroupId:m,MemberList:D}=u,M=((E=D[0])===null||E===void 0?void 0:E.MsgFlag)||"",T=`${this._core.OuterConstant.CONV_GROUP}${m}`;NA.patchMessageRemindType([T],M)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},NA=new class{constructor(){this._name="ConversationDataHandler",this._totalUnreadCount=0,this._groupAtTipsList=[]}init(s){this._core=s;const{helper:n,notificationCenter:g,appStore:{conversationStore:u},constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},InnerEvent:{SYNC_CONVERSATION_LIST:D,MESSAGE_PUSH:M,NEW_MESSAGE:T,MESSAGE_DELETED:P,MESSAGE_REVOKED:W,MESSAGE_MODIFIED:iA,CONVERSATION_UPDATED:EA,LOGOUT:RA,DESTROY:kA},InnerEventSubType:{C2C_MESSAGE_PEER_READ:xA}}=s;this._conversationStore=u,n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,this._handleGroupListSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_RE_ONLINE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_TIPS_NOTIFICATION,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this);const{InnerEventSubType:{GROUP_AT_TIPS:LA}}=g;g.subscribeInnerEvent(D,this._handleConversationSynced,this),g.subscribeInnerEvent(T,this._handleNewMessage,this),g.subscribeInnerEvent(M,LA,this._handleNewGroupAtTips,this),g.subscribeInnerEvent(P,this._handleMessageDeleted,this),g.subscribeInnerEvent(W,this._handleMessageRevoked,this),g.subscribeInnerEvent(iA,this._handleMessageModified,this),g.subscribeInnerEvent(EA,this._handleConversationUpdated,this),g.subscribeInnerEvent(M,xA,this._handleMessageRead,this),g.subscribeInnerEvent(RA,this._reset,this),g.subscribeInnerEvent(kA,this._dispose,this),s.ssoLog.debug(`${this._name}.init`)}_handleConversationSynced(s){this.updateLocalConversationList({conversationUpdateFieldList:s.conversationUpdateFieldList||[],isFromGetConversations:!0,updateUnreadCount:!0}),this.emitConversationListUpdate()}_handleUnreadSyncFinished(s){const{constants:{WORKFLOW_STEP:n}}=this._core,{conversationUpdateFieldList:g=[],groupTipList:u=[],isUnreadC2CMessage:E}=s.result[n.UNREAD_MESSAGE_SYNC]||{};let m=!1;g.forEach(D=>{const{conversationID:M,unreadCount:T}=D,P=this.getLocalConversation(M);P&&P.unreadCount!==T&&(P.updateUnreadCount({nextUnreadCount:T,isUnreadC2CMessage:E}),m=!0)}),m&&this.emitConversationListUpdate(),this._handleGroupAtTipsSynced(u)}_handleGroupAtTipsSynced(s){var n;for(let g=0;g0&&this._handleNewGroupAtTips({GroupTips:M._groupAtInfoList}),m=!0}m&&this.emitConversationListUpdate()}_handleNewMessage(s){const{conversationUpdateFieldList:n=[],isInstantMessage:g=!0,isUnreadC2CMessage:u=!1,updateUnreadCount:E=!0}=s.result||{};if(n.length===0)return;const{common:{isTopic:m}}=this._core;m(n[0].conversationID)||(this.updateLocalConversationList({conversationUpdateFieldList:n,isInstantMessage:g,isUnreadC2CMessage:u,isFromGetConversations:!1,updateUnreadCount:E}),n.filter(D=>this._isConversationNeedShow(D.conversationID)).length>0&&this.emitConversationListUpdate())}_handleNewGroupAtTips(s){const{GroupTips:n=[]}=s;n.forEach(g=>{const{GroupAtTips:u,MsgBody:E,MsgRandom:m,ClientSeq:D}=g;let M={};u?M=this._convertGroupAtTipsKey(u):E?M=Object.assign({},this._convertGroupAtTipsKey(E)):g.groupAtType&&(M=Object.assign({},g)),M.__random=m,M.__sequence=D,this._groupAtTipsList.push(M)}),console.log(`${this._name}._handleNewGroupAtTips groupAtTipsList: ${JSON.stringify(this._groupAtTipsList)}`),this._updateGroupAtInfoList()}_convertGroupAtTipsKey(s){const{From_Account:n,GroupId:g,MsgSeq:u,GroupAtType:E}=s;return{from:n,groupID:g,sequence:u,groupAtType:E}}_updateGroupAtInfoList(){if(this._groupAtTipsList.length===0)return;const{common:s,OuterConstant:n}=this._core,g=s.getCurrentUserID();let u=!1;this._groupAtTipsList.forEach(E=>{const{groupID:m,from:D}=E;if(D!==g){const M=this.getLocalConversation(`${n.CONV_GROUP}${m}`);M&&(M.updateGroupAtInfoList(E),u=!0)}}),u&&this.emitConversationListUpdate(),this._groupAtTipsList.length=0}_handleMessageDeleted(s){var n,g;console.log(`${this._name}._handleMessageDeleted, conversationID:`,s);const{message:{messageDataHandler:u},OuterConstant:E}=this._core,m=u?.getLocalMessageList(s)||[];let D={};for(let P=(m.length||0)-1;P>=0;P--)if(!m[P].isDeleted&&m[P]._isExcludedFromLastMessage!==!0){D=m[P];break}const M=this.getLocalConversation(s);if(!M)return;let T=!1;M.lastMessage.lastSequence===D.sequence&&M.lastMessage.lastTime===D.time||(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D)&&(D=void 0),M.updateLastMessage(D),T=!0),s.startsWith(E.CONV_C2C)&&this.updateUnreadCount(s),T&&(this.emitConversationListUpdate(),console.log(`${this._name}._handleMessageDeleted. update conversationID:${s} with lastMessage:`,M.lastMessage))}_handleMessageRevoked(s){const{messageList:n=[],updateUnreadCount:g=!0}=s;if(console.log(`${this._name}._handleMessageRevoked messageList:${n.length}`),n.length===0)return;let u=null,E=!1;n.forEach(m=>{u=this.getLocalConversation(m.conversationID),u&&(g&&u.reduceUnreadCount()&&(E=!0),u.isLastMessageRevoked({sequence:m.sequence,time:m.time})&&(u.setLastMessageRevoked(!0),u.setLastMessageRevoker(m.revoker),E=!0))}),E&&this.emitConversationListUpdate()}_handleMessageModified(s){const{utils:{isEmpty:n},common:{getMessagePreviewText:g},ssoLog:u}=this._core;u.debug(`${this._name}._handleMessageModified`,JSON.stringify(s));const{conversationID:E,messageList:m}=s,D=this.getLocalConversation(E);if(n(D))return;const{lastMessage:M}=D;if(M){const T=m?.[0]||{};M.lastTime===T.time&&M.lastSequence===T.sequence&&M.version!==T.version&&(M.type=T.type,M.payload=T.payload,M.messageForShow=g(T.type,T.payload),M.cloudCustomData=T.cloudCustomData,M.version=T.version,this.emitConversationListUpdate(),console.log(`${this._name} conversationID:${E} lastMessage updated`))}}_handleConversationUpdated(s){this.emitConversationListUpdate(s?.needSort)}updateLocalConversationList(s){const{isFromGetConversations:n}=s,{newConversationList:g}=this._getTmpConversationListMapping(s);this._sortConversationList(),n||this._updateNewConversationProfile(g),this._core.ssoLog.debug("updateLocalConversationList",` newConversationList: ${g.length}`)}_getTmpConversationListMapping(s){const{OuterConstant:n}=this._core,{conversationUpdateFieldList:g,isFromGetConversations:u,isInstantMessage:E,isUnreadC2CMessage:m=!1,updateUnreadCount:D}=s,M=[],T=g?.length;for(let P=0;P{M[1].isPinned===!0?s(M[1].lastMessage.lastTime)?u.push(M):g.push(M):s(M[1].lastMessage.lastTime)?m.push(M):E.push(M)});const D=g.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime).concat(u).concat(E.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime)).concat(m);this._updateConversationMapFromList(D)}_updateNewConversationProfile(s){if(s.length===0)return;const n=[],g=[],{OuterConstant:{CONV_GROUP:u,CONV_C2C:E}}=this._core;s.forEach(m=>{const{conversationID:D,type:M}=m;if(M===E){const T=D.replace(E,"");n.push(T)}else if(M===u){const T=D.replace(u,"");g.push(T)}}),n.length>0&&this._updateC2CConversation(n),g.length>0&&this._updateGroupConversation(g)}_updateC2CConversation(s){var n;const{OuterConstant:{CONV_C2C:g},appStore:{userStore:u},user:E}=this._core;let m=!1;(n=E.userProfile)===null||n===void 0||n.getUserProfile({userIDList:s}).then(D=>{(D?.data||[]).forEach(M=>{var T;const{userID:P}=M,W=this.getLocalConversation(`${g}${P}`);if(W){const iA=((T=u.getFriend(P))===null||T===void 0?void 0:T.remark)||"";W.remark=iA,W.userProfile=M,m=!0}}),m&&this.emitConversationListUpdate()}).catch(D=>{}),BA.get(s)}_updateGroupConversation(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g},utils:{safeStringify:u},ssoLog:E,apiMap:{getGroupProfile:m}}=this._core;let D=!1;try{yield Promise.all(s.map(M=>pA(this,void 0,void 0,function*(){const T=g.getGroup(M),P=this.getLocalConversation(`${n}${M}`);T&&P&&(P.groupProfile=T,D=!0),P&&!P.getProfileCompleted()&&typeof m=="function"&&(yield m({groupID:M}))}))),yA.get(s),D&&this.emitConversationListUpdate()}catch(M){E.debug("_updateGroupConversation",u(M))}})}_handleMessageRead(s){const{OuterConstant:{CONV_C2C:n}}=this._core,{C2cNotifyMsgArray:g=[]}=s||{};g.forEach(u=>{const{To_Account:E,UinPairReadArray:m=[]}=u?.C2cReadedReceipt||{};m?.forEach(D=>{const{LastReadTime:M}=D,T=`${n}${E}`;this._updateConversationReadInfo({conversationID:T,peerReadTime:M}),this._updateMessageListPeerRead({conversationID:T,peerReadTime:M})})})}_updateConversationReadInfo(s){const{appStore:n,utils:{isEmpty:g},common:{getCurrentUserID:u}}=this._core,{conversationID:E,peerReadTime:m}=s,D=n.conversationStore.getConversationMap();if(D.has(E)){const M=D.get(E);M.peerReadTime=m;const T=M?.lastMessage;g(T)||T.fromAccount===u()&&T.lastTime<=m&&!T.isPeerRead&&(T.isPeerRead=!0,n.conversationStore.updateConversation(E,{lastMessage:T}))}}_updateMessageListPeerRead(s){const{notificationCenter:n,OuterEvent:g,message:u}=this._core,{conversationID:E,peerReadTime:m}=s,D=u.messageDataHandler.getLocalMessageList(E),M=u.messageDataHandler.getSparseMessageList(E),T=[];D.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),M.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),n.emitOuterEvent(g.MESSAGE_READ_BY_PEER,{name:g.MESSAGE_READ_BY_PEER,data:T})}_isConversationNeedShow(s){var n,g;const{OuterConstant:{CONV_GROUP:u,GRP_ROOM:E,GRP_LIVE:m},utils:{isUndefined:D}}=this._core,M=this.getLocalConversation(s);if(D(M))return!0;const T=M.type===u&&((n=M.groupProfile)===null||n===void 0?void 0:n.type)===E,P=M.type===u&&((g=M.groupProfile)===null||g===void 0?void 0:g.type)===m;return!(T||P)}updateUnreadCount(s,n=!0){var g,u;let E=!1;const m=this.getLocalConversation(s),D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageDataHandler)===null||u===void 0?void 0:u.getLocalMessageList(s);if(!m)return E;const M=m.unreadCount,T=D?.filter(P=>!P.isRead&&!P._onlineOnlyFlag&&!P.isDeleted).length;return console.log(`${this._name}._updateUnreadCount conversationID:${s} currentUnreadCount:${M} newUnreadCount:${T}`),M!==T&&(m.unreadCount=T,E=!0,n===!0&&this.emitConversationListUpdate()),E}emitConversationListUpdate(s=!1){var n,g;s&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:u},conversation:E}=this._core,m=this.getLocalConversationList();this._emitEvent({name:u,data:m,isSyncCompleted:(g=(n=E?.syncConversationHandler)===null||n===void 0?void 0:n.isSyncCompleted)===null||g===void 0?void 0:g.call(n)}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var s;const n=this.getTotalUnreadMessageCount();this._totalUnreadCount!==n&&(this._core.ssoLog.debug("_emitTotalUnreadCountUpdate",` from ${this._totalUnreadCount} to ${n}`),this._totalUnreadCount=n,this._emitEvent({name:(s=this._core)===null||s===void 0?void 0:s.OuterEvent.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,data:n}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}getTotalUnreadMessageCount(){const{OuterConstant:s,utils:{isEmpty:n}}=this._core,g=this.getLocalConversationList();let u=0;return g.forEach(E=>{E.type!==s.CONV_SYSTEM&&(n(E.messageRemindType)||E.messageRemindType===s.MSG_REMIND_ACPT_AND_NOTE)&&(u+=E.unreadCount)}),u}getLocalConversationList(){return[...this._conversationStore.getConversationMap().values()].filter(s=>this._isConversationNeedShow(s.conversationID))}hasLocalConversation(s){return this._conversationStore.getConversationMap().has(s)}getLocalConversation(s){return this._conversationStore.getConversationMap().get(s)}setLocalConversation(s,n){return this._conversationStore.getConversationMap().set(s,n)}deleteLocalConversation(s){this._conversationStore.getConversationMap().delete(s)}_updateConversationMapFromList(s){this._clearConversationMap();for(const[n,g]of s)this.setLocalConversation(n,g)}_clearConversationMap(){this._conversationStore.getConversationMap().clear()}patchMessageRemindType(s,n){let g=!1;s.forEach(u=>{const E=this.getLocalConversation(u);E?.messageRemindType!==n&&(E.messageRemindType=n,g=!0)}),console.log(`${this._name}.patchMessageRemindType conversationIDList:${s} messageRemindType:${n} hasUpdated:${g}`),g&&this.emitConversationListUpdate()}markMessageAsRead(s){const{message:{messageDataHandler:n}}=this._core,{conversationID:g,lastReadTime:u=0,lastReadSequence:E=0}=s,m=n?.getLocalMessageList(g);if(m.length===0)return;const{length:D}=m;for(let M=D-1;M>=0;M--){const T=m[M],P=u&&T.time>u,W=E&&T.sequence>E;if(!P&&!W){if(T.flow==="in"&&T.isRead)break;T.setIsRead(!0)}}}appendToPinnedConversation(s){const n=[...this._conversationStore.getConversationMap().entries()],g=n.findIndex(u=>u[1].isPinned===!1);n.splice(g,0,[s.conversationID,s]),this._updateConversationMapFromList(n),this.emitConversationListUpdate()}_reset(){this._clearConversationMap(),this._totalUnreadCount=0,this._groupAtTipsList=[]}_dispose(){const{notificationCenter:s,InnerEvent:{NEW_MESSAGE:n,MESSAGE_DELETED:g,MESSAGE_REVOKED:u,MESSAGE_MODIFIED:E,CONVERSATION_UPDATED:m,LOGOUT:D,DESTROY:M,SYNC_CONVERSATION_LIST:T}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:P}}=s;s.unSubscribeInnerEvent(n,this._handleNewMessage,this),s.unSubscribeInnerEvent(n,P,this._handleNewGroupAtTips,this),s.unSubscribeInnerEvent(g,this._handleMessageDeleted,this),s.unSubscribeInnerEvent(u,this._handleMessageRevoked,this),s.unSubscribeInnerEvent(E,this._handleMessageModified,this),s.unSubscribeInnerEvent(m,this._handleConversationUpdated,this),s.unSubscribeInnerEvent(T,this._handleConversationSynced,this),s.unSubscribeInnerEvent(D,this._reset,this),s.unSubscribeInnerEvent(M,this._dispose,this)}},zA=new class{constructor(){this._name="GetConversationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationList",context:this})}getConversationList(s){return pA(this,void 0,void 0,function*(){return{code:0,data:{conversationList:this._getConversationList(s),isSyncCompleted:this._core.conversation.syncConversationHandler.isSyncCompleted()}}})}_getConversationList(s){const{utils:{isUndefined:n,isArray:g,isPlainObject:u}}=this._core;if(n(s))return NA.getLocalConversationList();if(g(s))return s.length===0?[]:NA.getLocalConversationList().filter(E=>s.includes(E.conversationID));if(u(s)){const{type:E,markType:m,groupName:D,hasUnreadCount:M,hasGroupAtInfo:T}=s;return NA.getLocalConversationList().filter(P=>this._filterType(P,E)&&this._filterMarkType(P,m)&&this._filterGroupName(P,D)&&this._filterUnreadCount(P,M)&&this._filterGroupAtInfo(P,T))}return[]}_filterType(s,n){const{OuterConstant:g}=this._core;return n!==g.CONV_C2C&&n!==g.CONV_GROUP||s.type===n}_filterGroupName(s,n){const{utils:{isString:g}}=this._core;return!g(n)||(n===""?s.conversationGroupList.length===0:s.conversationGroupList.includes(n))}_filterMarkType(s,n){const{utils:{isNumber:g}}=this._core;return!g(n)||(n===0?s.markList.length===0:s.markList.includes(n))}_filterUnreadCount(s,n){let g=!0;return n===!0?g=s.unreadCount>=1:n===!1&&(g=s.unreadCount===0),g}_filterGroupAtInfo(s,n){let g=!0;return n===!0?g=s.groupAtInfoList.length>=1:n===!1&&(g=s.groupAtInfoList.length===0),g}},Re=new class{constructor(){this._name="GetConversationProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,GRP_AVCHATROOM:u},appStore:{groupStore:E},utils:{isEmpty:m}}=this._core,D={code:0,data:{}};let M=NA.getLocalConversation(s);if(ks(s))return D.data.conversation=M,D;let T=!1;const P=Bt(s)?n:g;if(m(M)&&(T=!0,M=new Ct({conversationID:s,type:P})),console.log(`${this._name}.getConversationProfile conversationID:${s} isNewConversation:${T}`),D.data.conversation=M,M?.getProfileCompleted())return D;if(P===n){const W=s.replace(n,"");yield this._handleC2CConversation(M,W),T&&(yield BA.get([W]))}if(P===g){const W=s.replace(g,"");if(!E.getGroup(W))return D;yield this._handleGroupConversation(M,W),T&&M.groupProfile.type!==u&&(yield yA.get([W]))}return D})}_handleC2CConversation(s,n){return pA(this,void 0,void 0,function*(){var g,u;const{user:E,helper:m,utils:{isEmpty:D},appStore:{conversationStore:M,userStore:T}}=this._core,{conversationID:P}=s,W=yield(g=E.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:[n]});if(W?.data.length===0)throw new m.ChatError({code:Ba.USER_OR_GRP_NOT_FOUND});s.userProfile=W?.data[0];const iA=(u=T.getFriend(n))===null||u===void 0?void 0:u.remark;D(iA)||s.remark===iA||(s.remark=iA),s.setProfileCompleted();const EA=NA.hasLocalConversation(P);console.log(`${this._name}._handleC2CConversation conversationID:${P} hasLocalConversation: ${EA}`),EA?M.updateConversation(P,s):NA.appendToPinnedConversation(s)})}_handleGroupConversation(s,n){return pA(this,void 0,void 0,function*(){const{apiMap:{getGroupProfile:g},appStore:{conversationStore:u}}=this._core,{conversationID:E}=s,m=yield g({groupID:n});s.groupProfile=m?.data.group,s.setProfileCompleted();const D=NA.hasLocalConversation(E);console.log(`${this._name}._handleGroupConversation conversationID:${E} hasLocalConversation: ${D}`),D?u.updateConversation(E,s):NA.appendToPinnedConversation(s)})}},le=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return NA.getTotalUnreadMessageCount()}},Ne=new class{constructor(){this._serverGroupConversationLastReadSeqMap=new Map,this._name="SetMessageRead"}init(s){this._core=s;const{helper:n,common:{isTopic:g},notificationCenter:u,InnerEvent:{MESSAGE_PUSH:E},InnerEventSubType:{ALL_MESSAGE_READ:m}}=s;n.registerApi({apiName:"setMessageRead",context:this,matcher:D=>!g(D[0].conversationID)}),n.registerApi({apiName:"setAllMessageRead",context:this}),u.subscribeInnerEvent(E,m,this._handleAllMessageRead,this)}handleC2CMessageReadSync(s){const{helper:{isEmpty:n},OuterConstant:g}=this._core;s.forEach(u=>{const{ReadC2cMsgNotify:E}=u;if(!n(E)){const{UinPairReadArray:m=[]}=E;m.forEach(D=>{const{From_Account:M,LastReadTime:T}=D,P=`${g.CONV_C2C}${M}`;console.log(`${this._name}.handleC2CMessageReadSync conversationID:${P} lastReadTime:${T}`),NA.markMessageAsRead({conversationID:P,lastReadTime:T}),NA.updateUnreadCount(P)})}})}handleGroupMessageReadSync(s){const{OuterConstant:n,utils:{isUndefined:g}}=this._core;s.forEach(u=>{const{GroupReadInfoArray:E}=u.MsgBody;g(E)||E.forEach(m=>{const{GroupId:D,LastReadMsgSeq:M}=m,T=`${n.CONV_GROUP}${D}`;console.log(`${this._name}.handleGroupMessageReadSync conversationID:${T} lastReadSequence:${M}`),NA.markMessageAsRead({conversationID:T,lastReadSequence:M}),NA.updateUnreadCount(T),this._clearGroupAtInfoList(T)})})}setMessageRead(s){return pA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:u}=this._core,{conversationID:E}=s,m={code:0,data:{}},D=NA.getLocalConversation(E);let M=`${this._name}.setMessageRead conversationID:${E} unreadCount:${D?.unreadCount||0}`;if(m.successLog={message:M},!D)return m;const T=!(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D.groupAtInfoList));if(D.type===u.CONV_GROUP&&T&&this._deleteGroupAtTips(E),D.unreadCount===0)return m;const{helper:{ChatError:P}}=this._core;try{if(D.type===u.CONV_C2C){const W=this._getLocalMessageMaxTime(D);M+=`lastMessageTime:${W}`,yield this._setC2CMessageRead(E,W)}if(D.type===u.CONV_GROUP){const W=this._getLocalMessageMaxSequence(D);M+=`lastMessageSequence:${W}`,yield this._setGroupMessageRead(E,W)}}catch(W){const{errorCode:iA,errorInfo:EA}=W;throw new P({functionName:"setMessageRead",code:iA,message:EA,moreMessage:M})}return D.type===u.CONV_SYSTEM&&(D.unreadCount=0),NA.emitConversationListUpdate(),Object.assign(Object.assign({},m),{successLog:{message:M}})})}setAllMessageRead(){return pA(this,arguments,void 0,function*(s={}){const{OuterConstant:{READ_ALL_MSG:n},utils:{safeStringify:g}}=this._core;let u=`scope:${s.scope}`;s.scope||(s.scope=n);const{scope:E}=s,m=this._generateSetAllMessageReadRequestData(E);if(m.allC2CMessageReadStatus===ea&&m.groupMessageReadInfoList.length===0)return{code:0};try{const D=yield function(M){return pA(this,void 0,void 0,function*(){const{allC2CMessageReadStatus:T,groupMessageReadInfoList:P}=M,W={C2CReadAllMsg:T,GroupReadInfo:P};return ho.core.common.buildAndSendPacket({servcmd:"openim.read_all_unread_msg",data:W})})}(m);if(D){const{GroupReadInfoArray:M,C2CReadAllMsg:T}=D,P=this._parseGroupReadInfo(M);this._updateAllConversationReadStatus({allC2CMessageReadStatus:T})>0&&NA.emitConversationListUpdate(),u+=`failureGroupInfoList:${g(P)}`}return{code:0,successLog:{message:u}}}catch(D){const{errorCode:M}=D;throw new this._core.helper.ChatError({functionName:"setAllMessageRead",code:M,moreMessage:u})}})}_handleAllMessageRead(s){const{GroupReadInfoArray:n,C2CReadAllMsg:g}=s;this._parseGroupReadInfo(n),this._updateAllConversationReadStatus({allC2CMessageReadStatus:g})>0&&NA.emitConversationListUpdate()}_updateAllConversationReadStatus(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g},appStore:u}=this._core,E=u.conversationStore.getConversationMap(),{allC2CMessageReadStatus:m}=s;let D=0;for(const[M,T]of E)if(T.unreadCount>=1){if(m===H&&T.type===n){const P=this._getLocalMessageMaxTime(T);NA.markMessageAsRead({conversationID:M,lastReadTime:P})}else if(T.type===g){const P=M.replace(g,"");if(this._serverGroupConversationLastReadSeqMap.has(P)){const W=this._serverGroupConversationLastReadSeqMap.get(P);NA.markMessageAsRead({conversationID:M,lastReadSequence:W})}}NA.updateUnreadCount(M,!1)&&(D+=1)}return D}_generateSetAllMessageReadRequestData(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_C2C_MSG:u},appStore:E}=this._core,m={allC2CMessageReadStatus:ea,groupMessageReadInfoList:[]},D=E.conversationStore.getConversationMap();for(const[,M]of D){const{type:T,unreadCount:P}=M;if(this._shouldSetAllMessageRead({scope:s,type:T,unreadCount:P})){if(T===n&&m.allC2CMessageReadStatus===ea){if(m.allC2CMessageReadStatus=H,s===u)break}else if(T===g){const W=this._getLocalMessageMaxSequence(M),{groupID:iA}=M.groupProfile;m.groupMessageReadInfoList.push({GroupId:iA,MsgSeq:W})}}}return m}_parseGroupReadInfo(s){const{utils:{isUndefined:n}}=this._core,g=[];return s?.forEach(u=>{const{GroupId:E,MsgSeq:m,RetCode:D,LastReadMsgSeq:M}=u;n(D)?this._serverGroupConversationLastReadSeqMap.set(E,M):(this._serverGroupConversationLastReadSeqMap.set(E,m),D!==0&&g.push(`${E}-${m}-${D}`))}),g}_deleteGroupAtTips(s){return pA(this,void 0,void 0,function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${s}`);const n=NA.getLocalConversation(s);if(!n)return;const g=n?.groupAtInfoList||[];if(g.length!==0)try{const{common:{getCurrentUserID:u,isCommunity:E},OuterConstant:{CONV_GROUP:m,CONV_AT_ALL:D}}=this._core;let M=[...g];if(E({groupID:s.replace(m,"")})&&(M=g.filter(P=>!P.atTypeArray.includes(D)),M.length===0))return void this._clearGroupAtInfoList(s,!1);const T=M.map(P=>({From_Account:P.from,To_Account:u(),MsgSeq:P.__sequence,MsgRandom:P.__random,GroupId:P.groupID}));yield function(P,W){return pA(this,void 0,void 0,function*(){const{messageListToDelete:iA}=P,EA={DelMsgList:iA};return W.common.buildAndSendPacket({servcmd:"openim.deletemsg",data:EA})})}({messageListToDelete:T},this._core),console.log(`${this._name}._deleteGroupAtTips ok. count:${g.length}`),this._clearGroupAtInfoList(s)}catch(u){console.error(`${this._name}._deleteGroupAtTips fail:`,u)}})}_clearGroupAtInfoList(s,n=!0){const g=NA.getLocalConversation(s);g&&(g.groupAtInfoList.length>0&&(g.clearGroupAtInfoList(),console.log(`${this._name}._clearGroupAtInfoList conversationID:${s} needEmitConversationUpdate:${n}`)),n&&NA.emitConversationListUpdate())}_getLocalMessageMaxTime(s){var n;const{conversationID:g}=s,u=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...u.map(D=>D.time));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastTime)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxTime update lastMessageTime from ${m} to ${E}`),m=E),m}_getLocalMessageMaxSequence(s){var n;const{conversationID:g}=s,u=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...u.map(D=>D.sequence));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastSequence)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxSequence update lastMessageSequence from ${m} to ${E}`),m=E),m}_setC2CMessageRead(s,n){return pA(this,void 0,void 0,function*(){try{yield function(g,u){return pA(this,void 0,void 0,function*(){return u.common.buildAndSendPacket({servcmd:"openim.msgreaded",data:g})})}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:s.replace("C2C",""),LastedMsgTime:n,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${n}`),NA.markMessageAsRead({conversationID:s,lastReadTime:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setC2CMessageRead fail:`,g),g}})}_setGroupMessageRead(s,n){return pA(this,void 0,void 0,function*(){try{yield function(g,u){return pA(this,void 0,void 0,function*(){const{groupID:E,lastMessageSequence:m}=g,D={GroupId:E,MsgReadedSeq:m};return u.common.buildAndSendPacket({servcmd:"group_open_http_svc.msg_read_report",data:D})})}({groupID:s.replace("GROUP",""),lastMessageSequence:n},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${n}`),NA.markMessageAsRead({conversationID:s,lastReadSequence:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setGroupMessageRead fail:`,g),g}})}_shouldSetAllMessageRead(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_MSG:u,READ_ALL_C2C_MSG:E,READ_ALL_GROUP_MSG:m}}=this._core,{type:D,scope:M,unreadCount:T}=s;return!(T<=0)&&(!(D!==n||![u,E].includes(M))||!(D!==g||![u,m].includes(M)))}},ae=new class{constructor(){this._name="PinConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"pinConversation",context:this})}handleConversationPinned(s,n){const{utils:{isArray:g}}=this._core;if(!g(s))return;const{OuterConstant:u}=this._core;let E=!1;s.forEach(m=>{const{Type:D,Peer_Account:M,GroupId:T}=m;let P;D===1?P=NA.getLocalConversation(`${u.CONV_C2C}${M}`):D===2&&(P=NA.getLocalConversation(`${u.CONV_GROUP}${T}`)),P&&(console.log(`${this._name}.handleConversationPinned conversationID:${P.conversationID} localPinned:${P.isPinned} remotePinned:${n}`),n&&!P.isPinned&&(P.isPinned=!0,E=!0),!n&&P.isPinned&&(P.isPinned=!1,E=!0))}),E&&NA.emitConversationListUpdate(!0)}pinConversation(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n,common:g,helper:{ChatError:u}}=this._core,{conversationID:E,isPinned:m}=s,D={code:0,data:{conversationID:E}},M=NA.getLocalConversation(E);if(M&&M.isPinned===m)return D;if(ks(E))return M&&(M.isPinned=m),NA.emitConversationListUpdate(!0),D;const T=`conversationID:${E} isPinned:${m}`;try{let P=null;if(Bt(E)?P={Type:1,To_Account:E.replace(n.CONV_C2C,"")}:ug(E)&&(P={Type:2,GroupId:E.replace(n.CONV_GROUP,"")}),yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{fromAccount:RA,operationType:kA,itemList:xA}=iA,LA={From_Account:RA,OperationType:kA,RecentContactItem:xA};return EA.common.buildAndSendPacket({servcmd:"recentcontact.top",data:LA})})}({fromAccount:g.getCurrentUserID(),operationType:m===!0?1:2,itemList:[P]},this._core)){if(M)M.isPinned!==m&&(M.isPinned=m);else{const iA=new Ct({conversationID:E,type:Bt(E)?n.CONV_C2C:n.CONV_GROUP,isPinned:m});NA.setLocalConversation(E,iA)}NA.emitConversationListUpdate(!0)}return Object.assign(Object.assign({},D),{successLog:{message:T}})}catch(P){const{errorCode:W,errorInfo:iA}=P;throw new u({functionName:"pinConversation",code:W,message:iA,moreMessage:T})}})}},Fe=new class{constructor(){this._name="DeleteConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteConversation",context:this})}handleConversationDeleted(s){const{utils:{isArray:n}}=this._core;if(!n(s))return;const{OuterConstant:g}=this._core,u=[];s.forEach(E=>{const{Type:m,Peer_Account:D,GroupId:M}=E;m===1&&u.push(`${g.CONV_C2C}${D}`),m===2&&u.push(`${g.CONV_GROUP}${M}`)}),console.log(`${this._name}.handleConversationDeleted conversationIDList:${u}`),this._deleteLocalConversationList(u)}deleteConversation(s){return pA(this,void 0,void 0,function*(){const{utils:{isString:n}}=this._core;if(n(s))return this._deleteConversation({conversationIDList:[s],flag:ga.ONLY_CONVERSATIONID});const g=Object.assign({},s);return g.conversationIDList.length>100&&(g.conversationIDList=g.conversationIDList.slice(0,100)),this._deleteConversation(g)})}_deleteConversation(s){return pA(this,void 0,void 0,function*(){const{conversationIDList:n,clearHistoryMessage:g=!0,flag:u=0}=s,{helper:{ChatError:E}}=this._core,m=`conversationIDList:${n} clearHistoryMessage:${g}`;try{const D=yield Promise.all([this._deleteConversationFromLocal(n),this._deleteConversationFromServer(n,g)]),M=[...D[0],...D[1]];if(M.length===0)throw new this._core.helper.ChatError({code:Ba.CONV_NOT_FOUND});return{code:0,data:u===ga.ONLY_CONVERSATIONID?{conversationID:M[0]}:{conversationIDList:M},successLog:{message:m}}}catch(D){const{errorCode:M,errorInfo:T}=D;throw new E({code:M,message:T,moreMessage:m})}})}_deleteConversationFromLocal(s){const{OuterConstant:n}=this._core;return s.filter(g=>{var u;if(!NA.hasLocalConversation(g))return!1;const E=(u=NA.getLocalConversation(g))===null||u===void 0?void 0:u.type;return E!==n.CONV_GROUP||this._hasLocalGroup(g)?E===n.CONV_SYSTEM&&(this._deleteLocalConversation(g),!0):(this._deleteLocalConversation(g),!0)})}_deleteConversationFromServer(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,common:u}=this._core,E={fromAccount:u.getCurrentUserID(),conversationList:[],clearHistoryMessage:n?1:0};if(s.forEach(D=>{var M;if(NA.hasLocalConversation(D)){const T=((M=NA.getLocalConversation(D))===null||M===void 0?void 0:M.type)||"",P=D.replace(T,"");T===g.CONV_C2C?E.conversationList.push({To_Account:P,Type:1}):T===g.CONV_GROUP&&this._hasLocalGroup(D)&&E.conversationList.push({ToGroupid:P,Type:2})}}),E.conversationList.length===0)return[];const m=yield function(D,M){return pA(this,void 0,void 0,function*(){const{fromAccount:T,conversationList:P,clearHistoryMessage:W}=D,iA={From_Account:T,ContactItem:P,ClearRamble:W};return M.common.buildAndSendPacket({servcmd:"recentcontact.batch_delete",data:iA})})}(E,this._core);if(m){const{ResultItem:D=[]}=m,M=[];return D.length>0&&D.forEach(T=>{if(T.ResultCode===0){const P=T.Type===1?`${g.CONV_C2C}${T.To_Account}`:`${g.CONV_GROUP}${T.ToGroupid}`;M.push(P)}}),this._deleteLocalConversationList(M),M}return[]})}_deleteLocalConversationList(s){let n=!1;s.forEach(g=>{NA.hasLocalConversation(g)&&(this._deleteLocalConversation(g,!1),n=!0)}),console.log(`${this._name}._deleteLocalConversationList isUpdate:${n}`),n&&NA.emitConversationListUpdate()}_deleteLocalConversation(s,n=!0){const g=NA.hasLocalConversation(s);console.log(`${this._name}._deleteLocalConversation conversationID:${s} has:${g}`),g&&(NA.deleteLocalConversation(s),this._deleteConversationLocalMessage(s),n&&NA.emitConversationListUpdate())}_hasLocalGroup(s){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g}}=this._core,u=s.replace(n,"");return!!g.getGroup(u)}_deleteConversationLocalMessage(s){console.log(`${this._name}._deleteConversationLocalMessage conversationID:${s}`),this._core.message.messageDataHandler.deleteConversationMessageList(s),this._core.message.messageHistory.completedHistoryConversations.delete(s)}},St=new class{constructor(){this._name="SetConversationDraft"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(s){return pA(this,void 0,void 0,function*(){const{conversationID:n,draftText:g}=s;if(console.log(`${this._name} conversationID:${n} draftText:${g}`),!NA.hasLocalConversation(n))throw new this._core.helper.ChatError({code:Ba.CONV_NOT_FOUND});const u=NA.getLocalConversation(n);return u?.setDraftText(g),NA.emitConversationListUpdate(),{code:0,data:{conversation:u}}})}},Kt=new class{constructor(){this._name="SetC2CMessageRemindType"}init(s){this._core=s}set(s,n){return pA(this,void 0,void 0,function*(){s.length>30&&(console.warn(`${this._name}.set userIDList length:${s.length} exceeds limit 30`),s.splice(30));const g=function(){const{MSG_REMIND_ACPT_AND_NOTE:P,MSG_REMIND_DISCARD:W,MSG_REMIND_ACPT_NOT_NOTE:iA}=ho.core.OuterConstant;return{[P]:0,[W]:1,[iA]:2}}()[n],u=yield function(P,W){return pA(this,void 0,void 0,function*(){const{userIDList:iA,receiveMessageOption:EA}=P,RA={Peer_Account:iA,Mute_Notifications:EA};return W.common.buildAndSendPacket({servcmd:"openim.set_c2c_peer_mute_notifications",data:RA})})}({userIDList:s,receiveMessageOption:g},this._core),{ErrorList:E=[]}=u||{},m=[];E.forEach(P=>{const{Peer_Account:W,ErrorCode:iA}=P;m.push({userID:W,code:iA});const EA=s.indexOf(W);EA>-1&&s.splice(EA,1)});const D=[],M=[],{OuterConstant:T}=this._core;return s.forEach(P=>{M.push(`${T.CONV_C2C}${P}`),D.push({userID:P})}),NA.patchMessageRemindType(M,n),{code:0,data:{successUserIDList:D,failureUserIDList:m}}})}},ai=new class{constructor(){this._name="SetGroupMessageRemindType"}init(s){this._core=s}set(s,n){return pA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:g,isTopic:u},OuterConstant:E}=this._core;if(yield function(m,D){return pA(this,void 0,void 0,function*(){const{groupID:M,userID:T,receiveMessageOption:P}=m,W={GroupId:M,Member_Account:T,MsgFlag:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:W})})}({groupID:s,userID:g(),receiveMessageOption:n},this._core),!u(s)){const m=`${E.CONV_GROUP}${s}`;NA.patchMessageRemindType([m],n)}return{code:0,data:{groupID:s,messageRemindType:n}}})}},ft=new class{constructor(){this._name="SetMessageRemindType"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setMessageRemindType",context:this})}handleC2CMessageRemindTypeSync(s){const{helper:{isEmpty:n},OuterConstant:g,ssoLog:u}=this._core;s.forEach(E=>{const{MuteNotificationsSync:m}=E;if(!n(m)){const{To_Account:D,MuteNotifications:M}=m,T=D.map(W=>`${g.CONV_C2C}${W}`),P=ji(M);u.debug(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${T} messageRemindType:${P}`),NA.patchMessageRemindType(T,P)}})}setMessageRemindType(s){return pA(this,void 0,void 0,function*(){const n="setMessageRemindType",{groupID:g,userIDList:u,messageRemindType:E}=s,{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;try{if(!D(g))return M.debug(`${this._name}.${n} groupID:${g} messageRemindType:${E}`),yield ai.set(g,E);if(!D(u))return M.debug(`${this._name}.${n} userIDList:${u} messageRemindType:${E}`),yield Kt.set(u,E);throw new m.ChatError({functionName:n,message:"userIDList or groupID is required"})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:`groupID:${g} userIDList:${u} messageRemindType:${E}`})}})}},Bi=new class{init(s){s.ssoLog.debug("ConversationAction.init"),this._core=s,zA.init(s),Re.init(s),le.init(s),Ne.init(s),ae.init(s),Fe.init(s),St.init(s),ft.init(s);const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g,DESTROY:u}}=this._core,{InnerEventSubType:{CONV_MODIFIED:E,C2C_MESSAGE_READ_SYNC:m,GROUP_MESSAGE_READ_SYNC:D,C2C_REMIND_TYPE_SYNC:M}}=n;n.subscribeInnerEvent(g,E,this._onConversationModified,this),n.subscribeInnerEvent(g,m,this._onC2CMessageReadSync,this),n.subscribeInnerEvent(g,M,this._onC2CMessageRemindTypeSync,this),n.subscribeInnerEvent(g,D,this._onGroupMessageReadSync,this),n.subscribeInnerEvent(u,this._dispose,this)}_onConversationModified(s){const{constants:{ConvModifyPushType:n}}=this._core,{RecentContactMod:g=[]}=s;g.forEach(u=>{const{PushType:E}=u;if(E===n.CONV_DELETED){const{RecentContactList:m}=u.RecentContactDeleteItem;Fe.handleConversationDeleted(m)}if(E===n.CONV_PINED){const{RecentContactList:m}=u.RecentContactTopItem;ae.handleConversationPinned(m,!0)}if(E===n.CONV_UNPINED){const{RecentContactList:m}=u.RecentContactTopItem;ae.handleConversationPinned(m,!1)}})}_onC2CMessageReadSync(s){const{C2cNotifyMsgArray:n=[]}=s;Ne.handleC2CMessageReadSync(n)}_onC2CMessageRemindTypeSync(s){const{C2cNotifyMsgArray:n=[]}=s;ft.handleC2CMessageRemindTypeSync(n)}_onGroupMessageReadSync(s){const{GroupTips:n=[]}=s;Ne.handleGroupMessageReadSync(n)}_dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,DESTROY:g}}=this._core,{InnerEventSubType:{CONV_MODIFIED:u,C2C_MESSAGE_READ_SYNC:E,GROUP_MESSAGE_READ_SYNC:m,C2C_REMIND_TYPE_SYNC:D}}=s;s.unSubscribeInnerEvent(n,u,this._onConversationModified,this),s.unSubscribeInnerEvent(n,E,this._onC2CMessageReadSync,this),s.unSubscribeInnerEvent(n,D,this._onC2CMessageRemindTypeSync,this),s.unSubscribeInnerEvent(n,m,this._onGroupMessageReadSync,this),s.unSubscribeInnerEvent(g,this._dispose,this)}},Ao=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setAllReceiveMessageOpt",context:this})}setAllReceiveMessageOpt(s){return pA(this,void 0,void 0,function*(){try{const{OuterConstant:{MSG_REMIND_ACPT_NOT_NOTE:n}}=this._core,{messageRemindType:g=n,isRepeated:u=!0}=s,{startTime:E=0,endTime:m=0}=this._calcStartAndEndTime(s),D=yield function(M){return pA(this,void 0,void 0,function*(){const{common:T}=ho.core,{startTime:P,endTime:W,isRepeated:iA,messageRemindType:EA}=M,RA={StartTime:P,EndTime:W,IsRepeated:iA,Level:EA};return T.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_set_do_not_disturb",data:RA})})}({messageRemindType:this._getType(g),startTime:E,endTime:m,isRepeated:u?is.ON:is.OFF});return{code:0,data:{errorCode:D.ErrorCode,errorInfo:D.ErrorInfo}}}catch(n){oc("setAllReceiveMessageOpt",n)}})}_calcStartAndEndTime(s){const{startHour:n=0,startMinute:g=0,startSecond:u=0,duration:E=0,isRepeated:m=!0}=s,D=new Date,M=new Date(D.getFullYear(),D.getMonth(),D.getDate(),n,g,u),T=Math.round(M.getTime()/1e3);let P=T+E;return m&&E>=86400&&(P=T+86400),{startTime:T,endTime:P}}_getType(s){const{OuterConstant:n}=this._core;return{[n.MSG_REMIND_ACPT_AND_NOTE]:0,[n.MSG_REMIND_DISCARD]:1,[n.MSG_REMIND_ACPT_NOT_NOTE]:2}[s]}},Is=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:u}=s;n.registerApi({apiName:"getAllReceiveMessageOpt",context:this}),g.subscribeInnerEvent(u.MESSAGE_PUSH,g.InnerEventSubType.ALL_RECEIVE_MESSAGE_OPTION,this.onAllReceiveMsgOptionNotify,this)}onAllReceiveMsgOptionNotify(s){const n=this._handleResult(s),{notificationCenter:g,OuterEvent:{ALL_RECEIVE_MESSAGE_OPT_UPDATED:u}}=this._core;g.emitOuterEvent(u,{name:u,data:n})}getAllReceiveMessageOpt(){return pA(this,void 0,void 0,function*(){try{const s=yield function(){return pA(this,void 0,void 0,function*(){const{common:n}=ho.core,g={To_Account:n.getCurrentUserID()};return n.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_get_do_not_disturb",data:g})})}();return{code:0,data:this._handleResult(s)}}catch(s){oc("getAllReceiveMessageOpt",s)}})}_handleResult(s){const{OuterConstant:n}=this._core,{MSG_REMIND_ACPT_AND_NOTE:g,MSG_REMIND_DISCARD:u,MSG_REMIND_ACPT_NOT_NOTE:E}=n,m={0:g,1:u,2:E},{Level:D,StartTime:M,EndTime:T,IsRepeated:P}=s;return{messageRemindType:m[D]||g,startTime:M,endTime:T,isRepeated:P===is.ON}}},Uo=new class{init(s){s.ssoLog.debug("ReceiveMessageOptions.init"),this._core=s,Kt.init(s),ai.init(s),BA.init(s),yA.init(s),Ao.init(s),Is.init(s)}};const ti=s=>!Bt(s)&&!ug(s)&&!ks(s),Ur={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ti(s)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ti(s)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ti(s)||"conversationID is invalid."},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},deleteConversation:[{key:"options",required:!0,rules:["string","object"],allowEmpty:!1,customValidator:s=>{const{core:{utils:{isArray:n,isObject:g,isString:u}}}=ho;if(!u(s)&&!g(s))return"options is String or Object.";if(u(s)&&ti(s))return"conversationID is invalid.";if(g(s)){if(!n(s.conversationIDList))return"conversationIDList is not Array.";if(s.conversationIDList.length===0)return"conversationIDList is empty.";if(s.conversationIDList.some(E=>{if(ti(E))return!0}))return"conversationIDList includes invalid conversationID.";if(s.clearHistoryMessage&&typeof s.clearHistoryMessage!="boolean")return"clearHistoryMessage is not Boolean."}return!0}}],setConversationDraft:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!Bt(s)&&!ug(s))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}},setAllReceiveMessageOpt:{messageRemindType:{required:!1,rules:["string"],allowEmpty:!0},startHour:{required:!1,rules:["number"],allowEmpty:!0},startMinute:{required:!1,rules:["number"],allowEmpty:!0},startSecond:{required:!1,rules:["number"],allowEmpty:!0},duration:{required:!1,rules:["number"],allowEmpty:!0},isRepeated:{required:!1,rules:["boolean"],allowEmpty:!0}}},Zo={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0,getAllReceiveMessageOpt:!0,setAllReceiveMessageOpt:!0};var jn=new class{constructor(){this.name="Conversation"}install(s){ho.init(s),Bi.init(s),Uo.init(s),NA.init(s),s.helper.registerValidateConfig({auth:Zo,params:Ur})}};const Wn=new class{init(s){this.core=s}},ta="AVChatRoom",qr="AV_HISTORY_MSG",sc="GRP_COUNTER",Ju="Set",pm="Increase",Ri="Decrease",ii=0,yo=1,on=2,os=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Eg=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Fl=["Role","JoinTime","MsgFlag","MsgSeq"],md=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],Lc=0,Mr=1,DI="notStart",ou="resolved",Og="rejected",su=10018,SI=11e3,Uc=2,Hu=["Owner","Admin","Member"],mm=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],fm=0,ym=1,Dm=2,sD=4,nD=1,bv=2,rD=3,aD=4,kv=5,ET=1,fd=0,dT=4,gD=6,CT=400,cD=300,hT={from:!0,groupID:!0,groupName:!0,to:!0},Lv={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},BT=2,Uv=4,QT=5,pT=7,lD=8,ID=15,_Q=20,Sm=21,Mm=2600,yd=2602,mT=2603,fT=2620,vm=2621,uD=2623,lh=2660,yT=2661,DT=2681,Rm=2683,Fv=2684,ED=2685,wm=2687,Ov=3122,ST=10018,MT={0:"DisableInvite",1:"NeedPermission",2:"FreeAccess"},Pv=s=>s===Wn.core.OuterConstant.GRP_PUBLIC,Dd=s=>s===Wn.core.OuterConstant.GRP_AVCHATROOM,_m=(s,n)=>{const{isArray:g}=Wn.core.utils;if(!g(s)||!g(n))return!1;let u=!1;return n.forEach(({key:E,value:m})=>{const D=s.find(M=>M.key===E);D?D.value!==m&&(D.value=m,u=!0):(s.push({key:E,value:m}),u=!0)}),u},Sd=s=>{const n=[];if(!s)return n;for(let g=0,u=s.length;g{const n=[];for(let g=0,u=s.length;g0&&M.members.forEach(T=>{T.userID===this.selfInfo.userID&&D(this.selfInfo,T,["sequence"])})}updateSelfInfo(n){const{nameCard:g,joinTime:u,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M}=n,{common:{deepMerge:T}}=Wn.core;T(this.selfInfo,{nameCard:g,joinTime:u,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M},[],["",null,void 0,0,NaN])}setSelfNameCard(n){this.selfInfo.nameCard=n}}var Yi=new class{constructor(){this._name="GroupDataHandler"}init(s){this._core=s;const{appStore:{groupStore:n}}=s;this._groupMap=n.getGroupMap()}hasLocalGroup(s){return this._groupMap.has(s)}getLocalGroup(s){return this._groupMap.get(s)}updateLocalGroup(s){const{common:{getCurrentUserID:n}}=this._core;let g;s.forEach(E=>{var m;g=E.groupID,this.hasLocalGroup(g)?(m=this.getLocalGroup(g))===null||m===void 0||m.updateGroup(E):(this._groupMap.set(g,new qu(E)),this._clearGroupLocalMessage(g))});const u=n();for(const[,E]of this._groupMap)E.selfInfo.userID=u,E.selfInfo.role==="Owner"&&(E.ownerID=u)}deleteLocalGroup(s){this._groupMap.delete(s)}getLocalGroupList(){const{OuterConstant:{GRP_ROOM:s,GRP_LIVE:n}}=this._core;return[...this._groupMap.values()].filter(g=>{const{type:u}=g;return u!==s&&u!==n})}clearLocalGroup(){this._groupMap.clear()}emitGroupListUpdate(){const s=this.getLocalGroupList(),{OuterEvent:{GROUP_LIST_UPDATED:n},notificationCenter:g}=this._core;g.emitOuterEvent(n,{name:n,data:s})}updateConversationGroupProfile(s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core,u=`${g}${s}`,E=n.getConversation(u);if(E){const m=this.getLocalGroup(s);E.setProfileCompleted(),n.updateConversation(u,{groupProfile:m})}}reset(){this.clearLocalGroup()}_clearGroupLocalMessage(s){const{message:{messageHistory:n,messageDataHandler:g},OuterConstant:{CONV_GROUP:u},ssoLog:E}=this._core;E.debug("_clearGroupLocalMessage",`groupID:${s}`);const m=`${u}${s}`;n.completedHistoryConversations.delete(m),g.deleteConversationMessageList(m)}};function Nm(s,n){return pA(this,void 0,void 0,function*(){const{type:g,limit:u,offset:E,supportTopic:m=0,memberAccount:D,responseFilter:M}=s,T={Type:g,Limit:u,Offset:E,Member_Account:D,ResponseFilter:M,SupportTopic:m,NeedAppDefineData:1};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_joined_group_list",data:T})})}const dn=function(s,n){return{code:0,data:s||{},successLog:n}};var xv=new class{constructor(){this._name="GetGroupList",this._pagingStatus=DI,this.PAGING_GRP_COUNT_LIMIT=200}init(s){this._core=s;const{helper:n,constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:u}}=s;n.registerApi({apiName:"getGroupList",context:this}),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_LOGIN,u.GROUP_LIST_SYNC,this._syncGroupList,this)}getGroupList(){return pA(this,arguments,void 0,function*(s=!1){if(s){const g=[];return yield this._pagingGetJoinedCommunityList({limit:this.PAGING_GRP_COUNT_LIMIT,offset:0,groupList:g}),Yi.updateLocalGroup(g),Yi.getLocalGroupList()}if(this._core.ssoLog.debug("getGroupList",`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===Og||this._pagingStatus===DI)return this._syncGroupList().then(()=>{const g=Yi.getLocalGroupList();return dn({groupList:g,isSyncCompleted:this._isSyncCompleted()})}).catch(g=>{throw g});const n=Yi.getLocalGroupList();return dn({groupList:n,isSyncCompleted:this._isSyncCompleted()},{message:`return group count:${n.length}`})})}_syncGroupList(){return pA(this,void 0,void 0,function*(){this._pagingStatus===DI&&Yi.clearLocalGroup();const s=this.PAGING_GRP_COUNT_LIMIT,n=[];try{yield this._pagingGetGroupList({limit:s,offset:0,groupList:n}),this._pagingStatus=ou,this._groupListTreeShaking(n),Yi.updateLocalGroup(n);const g=Yi.getLocalGroupList();return this._core.ssoLog.debug("_syncGroupList",`${this._name}._syncGroupList ok, count:${g.length}`),Yi.emitGroupListUpdate(),g}catch(g){throw this._pagingStatus=Og,g}})}_pagingGetGroupList(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{isCommunityRelay:g=!1,groupList:u}=s;let E,{limit:m,offset:D}=s;const M=[...os];g&&(E=this._core.OuterConstant.GRP_COMMUNITY,M.push("AtInfoList"));try{const T=yield Nm({type:E,limit:m,offset:D,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:M,SelfInfoFilter:[...Fl]}},this._core),{GroupIdList:P=[],TotalCount:W=0}=T||{},iA=this._convertGroupKey(P);u.push(...iA);const EA=D+m,RA=!(W>EA),kA=`offset:${D} limit:${m} total:${W} isCompleted:${RA} current:${u.length} isCommunityRelay:${g}`;return n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. ${kA}`),g?RA?u:(D=EA,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:u})):RA?(n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList start to get community list`),D=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:u})):(D=EA,this._pagingGetGroupList({limit:m,offset:D,groupList:u}))}catch(T){if(T.ErrorCode===su)return n.warn("_pagingGetGroupList",`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetGroupList({isCommunityRelay:g,limit:m,offset:D,groupList:u});if(g)return T.code===SI&&n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. community unavailable`),u;throw T}})}_pagingGetJoinedCommunityList(s){return pA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:n},OuterConstant:g,ssoLog:u}=this._core,{groupList:E}=s;let{limit:m,offset:D}=s;try{const M=yield Nm({limit:m,offset:D,type:g.GRP_COMMUNITY,memberAccount:n(),supportTopic:1,responseFilter:{GroupBaseInfoFilter:[...os],SelfInfoFilter:[...Fl]}},this._core),{GroupIdList:T=[],TotalCount:P=0}=M||{},W=this._convertGroupKey(T);E.push(...W);const iA=D+m,EA=!(P>iA),RA=`offset:${D} limit:${m} total:${P} isCompleted:${EA} current:${E.length}`;return u.debug("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList ok. ${RA}`),EA?E:(D=iA,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E}))}catch(M){if(M.code===ST)return u.warn("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E});throw M}})}_groupListTreeShaking(s){const n=new Map([...Yi.getLocalGroupList()]);for(let u=0,E=s.length;u{const{AtFlagList:E,AtMsgSeq:m,From_Account:D}=u;g.push({groupID:s,groupAtType:E,sequence:m,from:D})}),g}},Ku=new class{constructor(){this._name="CreateGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"createGroup",context:this})}createGroup(s){return pA(this,void 0,void 0,function*(){var n;this._preCheckParams(s);const{helper:{ChatError:g}}=this._core;try{const{utils:{isEmpty:u},common:{getCurrentUserID:E},OuterConstant:{GRP_AVCHATROOM:m}}=this._core,D=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{name:RA,type:kA,groupID:xA,introduction:LA,notification:SA,avatar:OA,maxMemberNum:JA,joinOption:ne,inviteOption:se,memberList:_i,groupCustomField:Ti,isSupportTopic:Lt}=iA;let Ni,cs;_i&&(Ni=_i.map(mt=>{const{userID:UA,memberCustomField:oi}=mt;return{Member_Account:UA,AppMemberDefinedData:oi?OE(oi):void 0}})),Ti&&(cs=OE(Ti));const Se={Name:RA,Type:kA,GroupId:xA,Introduction:LA,Notification:SA,FaceUrl:OA,MaxMemberCount:JA,ApplyJoinOption:ne,InviteJoinOption:se,MemberList:Ni,AppDefinedData:cs,SupportTopic:Lt,webPushFlag:1};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.create_group",data:Se})})}(Object.assign(Object.assign({},s),{ownerID:E()}),this._core),{GroupId:M,OverJoinedGroupLimit_Account:T=[]}=D||{},P=`${this._name}.createGroup ok, type:${s.type} groupID:${M} overLimitUserIDList:${T}`;if(u(s.memberList)||u(T)||(s.memberList=(n=s.memberList)===null||n===void 0?void 0:n.filter(iA=>T.includes(iA.userID))),s.type===m)return dn({group:new qu(Object.assign(Object.assign({},s),{groupID:M}))},{message:P});Yi.updateLocalGroup([Object.assign(Object.assign({},s),{groupID:M})]);const W=Yi.getLocalGroup(M);return this._notNeedSendCustomMessage(s)||(this._sendCustomMessage(M,s.type),Yi.emitGroupListUpdate()),dn({group:W},{message:P})}catch(u){const{errorCode:E,errorInfo:m}=u;throw new g({functionName:"createGroup",code:E,message:m,moreMessage:` groupID:${s.groupID}`})}})}_preCheckParams(s){const{type:n,groupID:g}=s,{utils:{isEmpty:u,isUndefined:E},common:{isCommunity:m}}=this._core,D=!u(g);if(!(()=>{const{GRP_PUBLIC:M,GRP_WORK:T,GRP_MEETING:P,GRP_AVCHATROOM:W,GRP_COMMUNITY:iA}=Wn.core.OuterConstant;return[M,T,P,W,iA]})().includes(n))throw new this._core.helper.ChatError({code:Mm});if(!m({type:n})){if(D&&m({groupID:g}))throw new this._core.helper.ChatError({code:yd});E(s.isSupportTopic)||(s.isSupportTopic=void 0)}if(this._canIUseMemberList(n)||E(s.memberList)||(s.memberList=void 0),this._canIUseJoinOption(n)||E(s.joinOption)||(s.joinOption=void 0),m({type:n})){if(D&&!m({groupID:g}))throw new this._core.helper.ChatError({code:yd});s.isSupportTopic=this._canIUseTopic(s)?1:0}}_canIUseMemberList(s){return!Dd(s)}_canIUseJoinOption(s){return Pv(s)||this._core.common.isCommunity({type:s})}_canIUseTopic(s){const{isSupportTopic:n}=s;return n===!0}_notNeedSendCustomMessage(s){const{type:n,isSupportTopic:g}=s,{OuterConstant:{GRP_AVCHATROOM:u,GRP_COMMUNITY:E}}=this._core;return n===u||n===E&&g===1}_sendCustomMessage(s,n){var g,u,E,m,D,M;const{OuterConstant:T,common:{t:P}}=this._core;let W=P("CREATE_GROUP"),iA=Lc;n===T.GRP_COMMUNITY&&(W=P("CREATE_COMMUNITY"),iA=Mr);const EA={to:s,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:W,cmd:iA,opUser:this._core.store.get("login").userId,version:4})}},RA=(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(EA);(M=(D=(m=this._core)===null||m===void 0?void 0:m.message)===null||D===void 0?void 0:D.messageSender)===null||M===void 0||M.sendMessage(RA,{})}},zs=new class{constructor(){this._name="AttributesDataHandler",this._groupAttributesCache=new Map,this._groupAttributesCacheValuesCopy={}}init(s){this._core=s;const{helper:n,constants:g}=s;n.registerWorkflowStep(g.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,g.WORKFLOW_STEP.GROUP_ATTRIBUTE_CACHE_CLEAR,this.clearLocalMainSequence,this)}clearLocalMainSequence(){this._groupAttributesCache.forEach(s=>{s.localMainSequence=0})}isGroupAttributesUpdated(s){const{elements:{newGroupProfile:n}}=s,{utils:{isEmpty:g,isUndefined:u}}=this._core;return!u(n)&&!g(n.groupAttributeOption)}handleGroupAttributesUpdated(s){const{groupID:n,groupAttributeOption:g}=s,{serverMainSequence:u,groupAttributeList:E=[],operation:m}=g;this._core.ssoLog.debug("handleGroupAttributesUpdated",`${this._name}.handleGroupAttributesUpdated groupID:${n} operation:${m}`);const{utils:{isUndefined:D}}=this._core;D(m)||(this.refreshGroupAttributesCache({groupID:n,serverMainSequence:u,groupAttributeList:E,operation:m}),this.emitGroupAttributesUpdated(n))}initGroupAttributesCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupAttributesCache.set(n,{lastUpdateTime:0,localMainSequence:0,serverMainSequence:0,avChatRoomKey:g,values:new Map}),this._core.ssoLog.debug("initGroupAttributesCache",`${this._name}.initGroupAttributesCache. groupID:${n} avChatRoomKey:${g}`)}hasGroupAttributesCache(s){return this._groupAttributesCache.has(s)}getGroupAttributesCache(s){return this.hasGroupAttributesCache(s)||this.initGroupAttributesCache({groupID:s}),this._groupAttributesCache.get(s)}deleteGroupAttributesCache(s){this.hasGroupAttributesCache(s)&&this._groupAttributesCache.delete(s)}refreshGroupAttributesCache(s){const{groupID:n,serverMainSequence:g,groupAttributeList:u,operation:E}=s;if(this.hasGroupAttributesCache(n)){const m=this.getGroupAttributesCache(n),{localMainSequence:D}=m;E!==kv&&g-D!==1||(m.serverMainSequence=g,m.localMainSequence=g,m.lastUpdateTime=Date.now(),this._updateGroupAttributesCacheValues({groupAttributes:m,groupAttributeList:u,operation:E})),g-D>1&&(m.serverMainSequence=g),this._groupAttributesCache.set(n,m),this._core.ssoLog.debug("refreshGroupAttributesCache",`${this._name}.refreshGroupAttributesCache. operation:${E} localMainSequence:${D} serverMainSequence:${g}`)}}_updateGroupAttributesCacheValues(s){const{groupAttributes:n,groupAttributeList:g=[],operation:u}=s;u!==rD?u!==aD?(u===nD&&n.values.clear(),g.forEach(E=>{const{key:m,value:D,sequence:M}=E;n.values.set(m,{value:D,sequence:M})})):g.forEach(E=>{n.values.delete(E.key)}):n.values.clear()}getGroupAttributesCacheValues(s){var n;const{groupID:g,keyList:u=[]}=s,E={};if(this.hasGroupAttributesCache(g)){const{values:m}=this.getGroupAttributesCache(g);if(u.length===0){for(const D of m.keys())E[D]=((n=m.get(D))===null||n===void 0?void 0:n.value)||"";return E}return u.forEach(D=>{var M;m.has(D)&&(E[D]=((M=m.get(D))===null||M===void 0?void 0:M.value)||"")}),E}return E}saveGroupAttributesCacheValuesCopy(s){this._groupAttributesCacheValuesCopy=this.getGroupAttributesCacheValues({groupID:s})}emitGroupAttributesUpdated(s){var n,g;const{OuterConstant:{GRP_ROOM:u,GRP_LIVE:E}}=this._core,m=this.getGroupAttributesCacheValues({groupID:s}),D=this._core.appStore.groupStore.getGroup(s),{updatedKeyList:M,deletedKeyList:T}=this._computeValuesChangedData(m);M.length===0&&T.length===0||([u,E].includes(D.type)?(this._core.ssoLog.debug("RICH_STATUS_CHANGED",`${this._name}.emitRichStatusChanged update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.OuterEvent.RICH_STATUS_CHANGED,data:{groupID:s,richStatus:m,updatedKeyList:M,deletedKeyList:T}})):(this._core.ssoLog.debug("emitGroupAttributesUpdated",`${this._name}.emitGroupAttributesUpdated update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.OuterEvent.GROUP_ATTRIBUTES_UPDATED,data:{groupID:s,groupAttributes:m,updatedKeyList:M,deletedKeyList:T}})))}_computeValuesChangedData(s){const{utils:{isUndefined:n}}=this._core,g=[],u=[];return Object.keys(s).forEach(E=>{s[E]!==this._groupAttributesCacheValuesCopy[E]&&g.push(E)}),Object.keys(this._groupAttributesCacheValuesCopy).forEach(E=>{n(s[E])&&u.push(E)}),this._groupAttributesCacheValuesCopy={},{updatedKeyList:g,deletedKeyList:u}}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}convertKeyValueMapToList(s){const n=[];return Object.keys(s).forEach(g=>{n.push({key:g,value:s[g]})}),n}reset(){this._groupAttributesCache.clear(),this._groupAttributesCacheValuesCopy={}}},uh=new class{constructor(){this._name="DismissGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}dismissGroup(s){return pA(this,void 0,void 0,function*(){const{helper:{ChatError:n}}=this._core;try{yield function(u,E){return pA(this,void 0,void 0,function*(){const m={GroupId:u};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.destroy_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:s})}catch(g){const{errorCode:u,errorInfo:E}=g;throw new n({functionName:"dismissGroup",code:u,message:E})}})}},Ol=new class{constructor(){this._name="GetGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupCustomFieldFilter:g}=s,u={groupIDList:[n],responseFilter:{GroupBaseInfoFilter:[...os],AppDefinedDataFilter_Group:g,MemberInfoFilter:[...md]}},{helper:{ChatError:E}}=this._core;try{const m=yield this.getGroupProfileAdvance(u),{successGroupList:D,failureGroupList:M}=m;if(M.length>0)throw M[0];let T;return!Yi.hasLocalGroup(n)&&Dd(D[0].type)?T=new qu(D[0]):(Yi.updateLocalGroup(D),T=Yi.getLocalGroup(n)),T.isSupportTopic||Yi.updateConversationGroupProfile(n),dn({group:T},{message:`groupID:${n}`})}catch(m){const{code:D,message:M}=m;throw new E({functionName:"getGroupProfile",code:D,message:M})}})}getGroupProfileAdvance(s){return pA(this,void 0,void 0,function*(){const{groupIDList:n}=s,{common:{isCommunity:g}}=this._core,u=n.filter(T=>!g({groupID:T})),E=n.filter(T=>g({groupID:T}));u.length>50&&(u.length=50),E.length>50&&(E.length=50);const m=yield Promise.all([this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:u})),this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:E,isCommunityProfile:!0}))]),D=[],M=[];return m.forEach(T=>{D.push(...T.successGroupList),M.push(...T.failureGroupList)}),{successGroupList:D,failureGroupList:M}})}_getGroupProfileAdvance(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{isUndefined:g}}=this._core,{isCommunityProfile:u=!1}=s,E=Do(s,["isCommunityProfile"]);if(E.groupIDList.length===0)return{successGroupList:[],failureGroupList:[]};try{const m=yield function(W,iA){return pA(this,void 0,void 0,function*(){const{groupIDList:EA,responseFilter:RA}=W,kA={GroupIdList:EA,ResponseFilter:RA};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:kA})})}(E,this._core),{GroupInfo:D=[]}=m||{},M=this._convertGroupProfileKey(D),T=M.filter(W=>g(W.errorCode)||W.errorCode===0),P=M.filter(W=>W.errorCode&&W.errorCode!==0).map(W=>({code:W.errorCode,message:W.errorInfo,data:{groupID:W.groupID}}));return n.debug("_getGroupProfileAdvance",`${this._name}._getGroupProfileAdvance ok, groupID:${E.groupIDList.join(",")}`),{successGroupList:T,failureGroupList:P}}catch(m){if(u)return{successGroupList:[],failureGroupList:[]};throw m}})}_convertGroupProfileKey(s){const n=[];for(let g=0,u=s.length;g0&&u{const{Key:T,Value:P=0}=M;E.set(T,P)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:u,counters:E,avChatRoomKey:m})}}initGroupCountersCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupCountersMap.set(n,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:g})}getLocalCounters(s,n){const g={};if(!this._hasLocalGroupCounters(s))return g;const{counters:u}=this.getLocalGroupCounters(s);if(n.length>0)n.forEach(E=>{u.has(E)&&(g[E]=u.get(E))});else for(const E of u.keys())g[E]=u.get(E);return g}deleteLocalGroupCounters(s){const{groupID:n,counterList:g=[],groupCounterSeq:u}=s;if(this._hasLocalGroupCounters(n)){const{counters:E,avChatRoomKey:m}=this.getLocalGroupCounters(n);g.forEach(D=>{E.delete(D.key)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:u,counters:E,avChatRoomKey:m})}}setGroupCounters(s,n){if(!this._hasLocalGroupCounters(s))return;const g=this.getLocalGroupCounters(s),{counters:u}=g;let E=!1;Object.entries(n).forEach(([m,D])=>{u.has(m)&&u.get(m)!==D&&(u.set(m,D),E=!0)}),E&&this._groupCountersMap.set(s,Object.assign(Object.assign({},g),{lastUpdateTime:Date.now(),counters:u}))}_hasLocalGroupCounters(s){return this._groupCountersMap.has(s)}reset(){this._groupCountersMap.clear()}},PE=new class{constructor(){this._name="JoinGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}joinGroup(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{helper:{ChatError:g},OuterConstant:u,ssoLog:E}=this._core;try{if(Yi.hasLocalGroup(n))try{return yield Ol.getGroupProfile({groupID:n}),dn({status:u.JOIN_STATUS_ALREADY_IN_GROUP,group:Yi.getLocalGroup(n)},{message:`groupID:${n} joinedStatus:${u.JOIN_STATUS_ALREADY_IN_GROUP}`})}catch{return E.warn("joinGroup",`${this._name}.joinGroup ${n} was unjoined, start to join!`),Yi.deleteLocalGroup(n),yield this._applyJoinGroup(s)}return yield this._applyJoinGroup(s)}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g({functionName:"joinGroup",code:D,message:M,moreMessage:`groupID:${n}`})}})}_applyJoinGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n,helper:g,ssoLog:u}=this._core,{groupID:E}=s,m=Object.assign({},s),D=g.checkBusinessCapabilityBits(qr);D&&(m.historyMessageFlag=1);const M=yield function(SA,OA){return pA(this,void 0,void 0,function*(){const{groupID:JA,applyMessage:ne,historyMessageFlag:se}=SA,_i={GroupId:JA,ApplyMsg:ne,HugeGroupHistoryMsgFlag:se};return OA.common.buildAndSendPacket({servcmd:"group_open_http_svc.apply_join_group",data:_i})})}(m,this._core),{Type:T,JoinedStatus:P,LongPollingKey:W,StartSeq:iA,HugeGroupFlag:EA,AVChatRoomKey:RA,RspMsgList:kA=[]}=M||{},xA=`groupID:${E} joinedStatus:${P} longPollingKey:${W} startSeq:${iA} avChatRoomFlag:${EA} canGetAVChatRoomHistoryMsg:${D}, historyMessageCount:${kA.length}`;u.debug("_applyJoinGroup",`${this._name}._applyJoinGroup ok, ${xA}`);let LA=new qu({groupID:E,type:T});if(P===n.JOIN_STATUS_WAIT_APPROVAL)return dn({status:n.JOIN_STATUS_WAIT_APPROVAL,group:LA});if(P===n.JOIN_STATUS_SUCCESS){try{LA=(yield Ol.getGroupProfile({groupID:E})).data.group}catch(SA){u.warn("_applyJoinGroup",`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${E}, errorCode:${SA?.code}`)}return this._handleJoinResult({group:LA,avChatRoomFlag:EA,longPollingKey:W,startSequence:iA,avChatRoomKey:RA,historyMessageList:kA})}throw new this._core.helper.ChatError({code:lh})})}_handleJoinResult(s){const{group:n,avChatRoomFlag:g,avChatRoomKey:u}=s;return g===1?(zs.initGroupAttributesCache({groupID:n.groupID,avChatRoomKey:u}),nc.initGroupCountersCache({groupID:n.groupID,avChatRoomKey:u}),dn(s)):(Yi.updateLocalGroup([n]),Yi.emitGroupListUpdate(),dn({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:n},{message:`groupID:${n.groupID}`}))}},TQ=new class{constructor(){this._name="QuitGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}quitGroup(s){return pA(this,void 0,void 0,function*(){if(!Yi.hasLocalGroup(s))throw new this._core.helper.ChatError({code:uD});const{helper:{ChatError:n}}=this._core;try{yield function(u,E){return pA(this,void 0,void 0,function*(){const m={GroupId:u};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.quit_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:`groupID:${s}`})}catch(g){const{errorCode:u,errorInfo:E}=g;throw new n({functionName:"quitGroup",code:u,message:E,moreMessage:`groupID:${s}`})}})}},gB=new class{constructor(){this._name="SearchGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(s){return pA(this,void 0,void 0,function*(){try{const n=yield function(OA,JA){return pA(this,void 0,void 0,function*(){const ne={GroupIdList:[OA],GroupBasePublicInfoFilter:[...Eg]};return JA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_public_info",data:ne})})}(s,this._core),{GroupInfo:g=[]}=n||{},{AppDefinedData:u=[],ApplyJoinOption:E,CreateTime:m,FaceUrl:D,Introduction:M,InviteJoinOption:T,MaxMemberNum:P,MemberNum:W,Name:iA,Owner_Account:EA,Type:RA,ErrorCode:kA,ErrorInfo:xA}=g[0];if(kA!==0)throw new this._core.helper.ChatError({code:kA,message:xA});const LA=Sd(u),SA=new qu({groupID:s,name:iA,avatar:D,introduction:M,joinOption:E,inviteOption:T,maxMemberCount:P,memberCount:W,type:RA,ownerID:EA,createTime:m,groupCustomField:LA});return dn({group:SA})}catch(n){const{errorCode:g,errorInfo:u}=n;throw new this._core.helper.ChatError({functionName:"searchGroupByID",code:g,message:u})}})}},vT=new class{constructor(){this._name="UpdateGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{utils:{isUndefined:g,safeStringify:u},ssoLog:E,helper:m}=this._core;let D=Yi.getLocalGroup(n);if(D){const{type:M}=D;this._canIUseJoinOption(M)||g(s.joinOption)||(E.warn("updateGroupProfile",`${this._name}.updateGroupProfile groupID:${n} joinOption is unavailable for Work/Meeting/AVChatRoom`),s.joinOption=void 0)}g(s.muteAllMembers)||(s.muteAllMembers=s.muteAllMembers===!0?"On":"Off");try{return yield function(M,T){return pA(this,void 0,void 0,function*(){const{groupID:P,name:W,avatar:iA,introduction:EA,notification:RA,muteAllMembers:kA,joinOption:xA,inviteOption:LA,groupCustomField:SA}=M,OA={GroupId:P,Name:W,FaceUrl:iA,Introduction:EA,Notification:RA,ShutUpAllMember:kA,ApplyJoinOption:xA,InviteJoinOption:LA,AppDefinedData:SA?OE(SA):void 0};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_base_info",data:OA})})}(s,this._core),D?(D.updateGroup(s),Yi.emitGroupListUpdate()):D=new qu(s),dn({group:D},{message:`groupID:${n}`})}catch(M){const{errorCode:T,errorInfo:P}=M;throw new m.ChatError({code:T,message:P,moreMessage:`options:${u(s)}`})}})}_canIUseJoinOption(s){return Pv(s)||this._core.common.isCommunity({type:s})}},RT=new class{constructor(){this._name="ChangeGroupOwner"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(s){return pA(this,void 0,void 0,function*(){const n="changeGroupOwner",{groupID:g,newOwnerID:u}=s,E=Yi.getLocalGroup(g),{helper:m,OuterConstant:D,common:{getCurrentUserID:M}}=this._core;if(E?.type===D.GRP_AVCHATROOM)throw new m.ChatError({functionName:n,code:fT});if(u===M())throw new m.ChatError({functionName:n,code:vm});try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,newOwnerID:iA}=T,EA={GroupId:W,NewOwner_Account:iA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.change_group_owner",data:EA})})}(s,this._core),E.ownerID=u,Yi.emitGroupListUpdate(),dn({group:E})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},NQ=new class{constructor(){this._name="GetGroupOnlineMemberCount",this._onlineMemberCountMap=new Map}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}getGroupOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const n="getGroupOnlineMemberCount";if(!Yi.hasLocalGroup(s))return dn({memberCount:0});const g=Date.now();if(this._onlineMemberCountMap.has(s)){const u=this._onlineMemberCountMap.get(s),{lastReqTime:E=0,memberCount:m=0}=u||{};if(g-E<=6e4)return dn({memberCount:m})}try{const u=yield function(D,M){return pA(this,void 0,void 0,function*(){const T={GroupId:D};return M.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:T})})}(s,this._core),{OnlineMemberNum:E=0}=u||{};this._onlineMemberCountMap.set(s,{lastReqTime:Date.now(),memberCount:E});const m=`${this._name}.${n} ok. groupID:${s} memberCount:${E}`;return dn({memberCount:E},{message:m})}catch(u){throw new this._core.helper.ChatError({functionName:n,code:u?.errorCode,message:u?.errorInfo})}})}},GQ=new class{init(s,n){s.ssoLog.debug("GroupAction.init"),xv.init(s),Ku.init(s),uh.init(s,n),PE.init(s,n),TQ.init(s,n),gB.init(s),Ol.init(s),vT.init(s),RT.init(s),NQ.init(s,n)}dismissGroup(s){return uh.dismissGroup(s)}joinGroup(s){return PE.joinGroup(s)}quitGroup(s){return TQ.quitGroup(s)}getGroupOnlineMemberCount(s){return NQ.getGroupOnlineMemberCount(s)}},Yv=new class{constructor(){this._name="GetGroupApplicationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return pA(this,void 0,void 0,function*(){const s="getGroupApplicationList";try{const n=yield Promise.all([this._getGroupApplicationList(),this._getGroupApplicationList({type:this._core.OuterConstant.GRP_COMMUNITY})]);this._core.ssoLog.debug("getGroupApplicationList",`${this._name}.${s} ok.`);const g=this._handleGroupApplicationResult([...n[0],...n[1]]);return dn({applicationList:g})}catch(n){throw new this._core.helper.ChatError({functionName:s,code:n?.errorCode,message:n?.errorInfo})}})}_getGroupApplicationList(s){return pA(this,void 0,void 0,function*(){const{type:n,startTime:g=0,limit:u=20}=s||{},{common:E}=this._core;let m;try{m=yield function(P,W){return pA(this,void 0,void 0,function*(){const{type:iA,startTime:EA,limit:RA,handleAccount:kA}=P,xA={Type:iA,StartTime:EA,Limit:RA,Handle_Account:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_pendency",data:xA})})}({type:n,startTime:g,limit:u,handleAccount:E.getCurrentUserID()},this._core)}catch(P){if(P?.errorCode!==11e3)throw P;m={}}const{NextStartTime:D=0,PendencyList:M=[]}=m||{};if(D===0)return M;const T=yield this._getGroupApplicationList(Object.assign(Object.assign({},s),{startTime:D}));return[...M,...T]})}_handleGroupApplicationResult(s){const n=[];return s.forEach(g=>{const u=this._convertApplicationData(g),{handled:E}=u,m=Do(u,["handled"]);E===0&&n.push(m)}),n}_convertApplicationData(s){const{Handled:n,AddTime:g,ApplyInviteMsg:u,Authentication:E,FromUserNickName:m,From_Account:D,GroupId:M,GroupName:T,PendencyType:P,To_Account:W}=s;return{handled:n,messageKey:g,applicant:D,applicantNick:m,groupID:M,groupName:T,authentication:E,applicationType:P,userID:W,note:u,addTime:g}}},Vv=new class{constructor(){this._name="HandleGroupApplication"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(s){return pA(this,void 0,void 0,function*(){const{application:n}=s,g=this._handleParams(s);try{n?.applicationType===Uc?yield function(E,m){return pA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,invitee:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,Invited_Account:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_invite_join_permission_group",data:EA})})}(g,this._core):yield function(E,m){return pA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,messageKey:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,MsgKey:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_apply_join_group",data:EA})})}(g,this._core);const u=Yi.getLocalGroup(g.groupID);return dn({group:u})}catch(u){throw new this._core.helper.ChatError({functionName:"handleGroupApplication",code:u?.errorCode,message:u?.errorInfo})}})}_handleParams(s){var n;const{handleAction:g,handleMessage:u,message:E,application:m}=s;let D,M,T,P,W;if(E){const{payload:iA}=E||{};D=iA.operatorID,M=(n=iA.groupProfile)===null||n===void 0?void 0:n.groupID,T=iA.authentication,P=iA.messageKey}else D=m?.applicant||"",M=m?.groupID||"",T=m?.authentication||"",P=m?.messageKey||0;return m?.applicationType===Uc&&(W=m.userID),{handleAction:g,handleMessage:u,applicant:D,invitee:W,groupID:M,authentication:T,messageKey:P}}},dD=new class{init(s){s.ssoLog.debug("GroupApplication.init"),Yv.init(s),Vv.init(s)}};let yC=class{constructor(s){this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this.isOnline=!1,this.updateMember(s)}updateMember(s){const{core:{utils:{isUndefined:n},common:{deepMerge:g}}}=Wn;n(s.muteTime)||(this.muteUntil=Math.floor((Date.now()+1e3*s.muteTime)/1e3)),n(s.onlineStatus)||(this.isOnline=s.onlineStatus==="Online");const u=[null,void 0,"",0,NaN];s.memberCustomField&&_m(this.memberCustomField,s.memberCustomField),g(this,s,["memberCustomField","marks","onlineStatus","muteTime"],u)}};function cB(s,n){return pA(this,void 0,void 0,function*(){const{groupID:g,userID:u,muteTime:E,role:m,nameCard:D,memberCustomField:M}=s;let T;M&&(T=OE(M));const P={GroupId:g,Member_Account:u,ShutUpTime:E,Role:m,NameCard:D,AppMemberDefinedData:T};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:P})})}var CD=new class{constructor(){this._name="GetGroupMemberList"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="getGroupMemberList",{groupID:g,offset:u=0,count:E=100,role:m="",filter:D=""}=s,M=Yi.getLocalGroup(g),T=E>100?100:E,P={groupID:g,offset:u,limit:T,memberRoleFilter:Hu.includes(m)?[m]:void 0,memberInfoFilter:mm};try{const W=yield function(se,_i){return pA(this,void 0,void 0,function*(){const{isCommunity:Ti}=_i.common,{groupID:Lt,offset:Ni,limit:cs,memberRoleFilter:Se,memberInfoFilter:mt}=se,UA={GroupId:Lt,Limit:cs,MemberRoleFilter:Se,MemberInfoFilter:mt};return Ti({groupID:Lt})?UA.Next=String(Ni):UA.Offset=Ni,_i.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_member_info",data:UA})})}(P,this._core),{MemberList:iA,MemberNum:EA,Next:RA}=W||{},kA=`${this._name}.${n} ok, totalMemberCount:${EA} next:${RA}`,{utils:{isArray:xA,isEmpty:LA},common:{isCommunity:SA}}=this._core;if(M&&(M.memberCount=EA),!xA(iA)||iA.length===0)return dn({memberList:[],offset:0},{message:kA});let OA=u+T;SA({groupID:g})&&(OA=LA(RA)?0:RA),iA.lengthD.userID),u=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=u?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,u=s.length;g50&&(T.warn("getGroupMemberProfile",`${this._name}.${n} userIDList length:${u.length} exceeds limit 50`),u.splice(50));const P=`userIDList length:${u.length} groupID:${g}`;try{const W=yield function(kA,xA){return pA(this,void 0,void 0,function*(){const{groupID:LA,userIDList:SA,memberInfoFilter:OA,memberCustomFieldFilter:JA}=kA,ne={GroupId:LA,Member_List_Account:SA,MemberInfoFilter:OA,AppDefinedDataFilter_GroupMember:JA};return xA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_specified_group_member_info",data:ne})})}({groupID:g,userIDList:u,memberCustomFieldFilter:E,memberInfoFilter:[...mm]},this._core),{MemberList:iA}=W||{};if(!M(iA)||iA.length===0)return dn({memberList:[]});let EA=this._convertMemberInfo(iA);EA=yield this._getMemberAvatarAndNick(EA);const RA=this._generateGroupMember(EA);return dn({memberList:RA},{message:P})}catch(W){throw new D.ChatError({functionName:n,code:W?.errorCode,message:W?.errorInfo,moreMessage:P})}})}_convertMemberInfo(s){const n=[];for(let g=0,u=s.length;gD.userID),u=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=u?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,u=s.length;g({Member_Account:M}));try{const M=yield function(RA,kA){return pA(this,void 0,void 0,function*(){const{groupID:xA,userIDList:LA}=RA,SA={GroupId:xA,MemberList:LA};return kA.common.buildAndSendPacket({servcmd:"group_open_http_svc.add_group_member",data:SA})})}({groupID:g,userIDList:D},this._core),{MemberList:T=[]}=M||{},{failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA}=this._handleResult(T);return dn({failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA,group:E},{message:` groupID:${g} successUserIDList:${W} failureUserIDList:${P} existedUserIDList:${iA} overLimitUserIDList:${EA}`})}catch(M){throw new m.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_handleResult(s){const n=[],g=[],u=[],E=[];return s.forEach(m=>{const{Result:D,Member_Account:M}=m;D===fm?n.push(M):D===ym?g.push(M):D===Dm?u.push(M):D===sD&&E.push(M)}),{failureUserIDList:n,successUserIDList:g,existedUserIDList:u,overLimitUserIDList:E}}},vd=new class{constructor(){this._name="DeleteGroupMember"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupMember",{groupID:g,userIDList:u}=s,E=Yi.getLocalGroup(g),{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;if(D(E))throw new m.ChatError({functionName:n,code:mT});u.length>20&&(M.warn("deleteGroupMember",`${this._name}.${n} userIDList length:${u.length} exceeds limit 20`),u.splice(20));try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,reason:EA}=T,RA={GroupId:W,MemberToDel_Account:iA,Reason:EA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_member",data:RA})})}({groupID:g,userIDList:u},this._core),dn({group:E,userIDList:u},{message:`groupID:${g} userIDList length:${u.length}`})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},Jv=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(s){return pA(this,void 0,void 0,function*(){const{helper:n}=this._core,{groupID:g,userID:u,muteTime:E}=s,m=` groupID:${g} userID:${u} muteTime:${E}`;this._preCheckSettingMuteParams(s);try{yield cB(s,this._core);const D=Yi.getLocalGroup(g),M=new yC({userID:u,muteTime:E});return dn({group:D,member:M},{message:m})}catch(D){throw new n.ChatError({functionName:"setGroupMemberMuteTime",code:D?.errorCode,message:D?.errorInfo,moreMessage:m})}})}_preCheckSettingMuteParams(s){const{userID:n}=s,{store:g,helper:u}=this._core;if(n===g.get("login").userId)throw new u.ChatError({functionName:"setGroupMemberMuteTime",code:ED})}},kQ=new class{constructor(){this._name="SetGroupMemberRole"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(s){return pA(this,void 0,void 0,function*(){const n="setGroupMemberRole",{helper:g}=this._core,{groupID:u,userID:E,role:m}=s,D=`${this._name}.${n} ok, groupID:${u} userID:${E} role:${m}`;this._preCheckSettingRoleParams(s);try{yield cB(s,this._core);const M=Yi.getLocalGroup(u),T=new yC({userID:E,role:m});return dn({group:M,member:T},{message:D})}catch(M){throw new g.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo,moreMessage:D})}})}_preCheckSettingRoleParams(s){var n;const{groupID:g,userID:u,role:E}=s,{store:m,helper:D,OuterConstant:M,common:{isCommunity:T}}=this._core,P=Yi.getLocalGroup(g);if(((n=P?.selfInfo)===null||n===void 0?void 0:n.role)!==M.GRP_MBR_ROLE_OWNER)throw new D.ChatError({functionName:"setGroupMemberRole",code:DT});if(u===m.get("login").userId)throw new D.ChatError({functionName:"setGroupMemberRole",code:Fv});const W=[...Hu];if(T({groupID:g})&&W.push(M.GRP_MBR_ROLE_CUSTOM),!W.includes(E))throw new D.ChatError({functionName:"setGroupMemberRole",code:Rm})}},hD=new class{constructor(){this._name="SetGroupMemberNameCard"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(s){return pA(this,void 0,void 0,function*(){var n;const g="setGroupMemberNameCard",{helper:u,common:{getCurrentUserID:E}}=this._core,{groupID:m,userID:D=E(),nameCard:M}=s,T=`${this._name}.${g} ok, groupID:${m} userID:${D} nameCard:${M}`;this._preCheckSettingNameCardParams(s);try{yield cB({groupID:m,userID:D,nameCard:M},this._core);const W=Yi.getLocalGroup(m);D===((n=W?.selfInfo)===null||n===void 0?void 0:n.userID)&&(W.updateSelfInfo({nameCard:M}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m));const iA=new yC({userID:D,nameCard:M});return dn({group:W,member:iA},{message:T})}catch(P){throw new u.ChatError({functionName:g,code:P?.errorCode,message:P?.errorInfo,moreMessage:T})}})}_preCheckSettingNameCardParams(s){const{groupID:n}=s,{helper:g}=this._core,u=Yi.getLocalGroup(n);if(Dd(u?.type))throw new g.ChatError({functionName:"setGroupMemberNameCard",code:wm})}},Gm=new class{constructor(){this._name="SetGroupMemberCustomField"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(s){return pA(this,void 0,void 0,function*(){const n="setGroupMemberCustomField",{helper:g,common:{getCurrentUserID:u}}=this._core;this._preCheckSettingCustomFiledParams(s);const{groupID:E,userID:m=u(),memberCustomField:D}=s,M=`${this._name}.${n} ok, groupID:${E}userID:${m} memberCustomField:${JSON.stringify(D)}`;try{yield cB({groupID:E,userID:m,memberCustomField:D},this._core);const P=Yi.getLocalGroup(E),W=new yC({userID:m,memberCustomField:D});return dn({group:P,member:W},{message:M})}catch(T){throw new g.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:M})}})}_preCheckSettingCustomFiledParams(s){const{groupID:n}=s,{helper:g}=this._core,u=Yi.getLocalGroup(n);if(Dd(u?.type))throw new g.ChatError({functionName:"setGroupMemberCustomField",code:wm})}},Hv=new class{init(s,n){s.ssoLog.debug("GroupMember.init"),CD.init(s,n),bQ.init(s),Md.init(s),vd.init(s,n),Jv.init(s),kQ.init(s),hD.init(s),Gm.init(s)}getGroupMemberList(s){return CD.getGroupMemberList(s)}deleteGroupMember(s){return vd.deleteGroupMember(s)}},wT=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupCounters",context:this})}getGroupCounters(s){return pA(this,void 0,void 0,function*(){const n="getGroupCounters";try{Tm(n,sc);const{groupID:g,keyList:u=[]}=s,{avChatRoomKey:E,lastUpdateTime:m}=nc.getLocalGroupCounters(g);if(!(Date.now()-m>=this._getExpireTime()))return{code:0,data:{counters:nc.getLocalCounters(g,u)}};const D=yield function(P){return pA(this,void 0,void 0,function*(){const{groupID:W,GroupCounterKeys:iA,avChatRoomKey:EA}=P,{common:RA}=Wn.core,kA={GroupId:W,keyList:iA,BytesKey:EA};return RA.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_counter",data:kA})})}({groupID:g,keyList:u,avChatRoomKey:E}),{GroupCounter:M=[],GroupCounterSeq:T}=D;return nc.updateLocalGroupCounters({groupID:g,counterList:M,groupCounterSeq:T}),{code:0,data:{counters:nc.getLocalCounters(g,u)}}}catch(g){fC(n,g)}})}_getExpireTime(){const{store:s,utils:{isUndefined:n}}=this._core,g=s.get("cloudConfig")||{},{grp_counter_expire_time:u}=g;return n(u)?3e4:Number(u)}},bm=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"setGroupCounters",context:this}),n.registerApi({apiName:"increaseGroupCounter",context:this}),n.registerApi({apiName:"decreaseGroupCounter",context:this})}setGroupCounters(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(Ju,s)})}increaseGroupCounter(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(pm,s)})}decreaseGroupCounter(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(Ri,s)})}_handleCounterOperation(s,n){return pA(this,void 0,void 0,function*(){const g=`${s}GroupCounter`;try{Tm(g,sc);const{groupID:u,key:E,value:m=0}=n,{avChatRoomKey:D}=nc.getLocalGroupCounters(u),M=s===Ju?this._convertObjectToList(n.counters):[{Key:E,Value:m}],T=yield this._updateGroupCounters({groupID:u,counterList:M,avChatRoomKey:D,mode:s});return nc.setGroupCounters(u,T),{code:0,data:{counters:T}}}catch(u){fC(g,u)}})}_updateGroupCounters(s){return pA(this,void 0,void 0,function*(){const n=yield function(E){const{groupID:m,counterList:D,mode:M,avChatRoomKey:T}=E,{common:P}=Wn.core,W={GroupId:m,GroupCounter:D,Mode:M,BytesKey:T};return P.buildAndSendPacket({servcmd:"group_open_http_svc.update_group_counter",data:W})}(s),{GroupCounter:g=[]}=n,u={};return g.forEach(E=>{const{Key:m,Value:D=0}=E;u[m]=D}),u})}_convertObjectToList(s){return Object.entries(s).map(([n,g])=>({Key:n,Value:g||0}))}},lB=new class{init(s){this._core=s,wT.init(s),bm.init(s)}isGroupCounterUpdated(s){const{elements:{groupCounterInfo:n}}=s,{utils:{isEmpty:g}}=this._core;return!g(n)}handleGroupCounterUpdated(s){const{to:n,elements:{groupCounterInfo:g}}=s;g.forEach(u=>{const{type:E,groupCounterSeq:m,counterList:D=[]}=u;E!==ii&&E!==on||this._processAndNotifyCounterUpdate(n,m,D),E===yo&&nc.deleteLocalGroupCounters({groupID:n,groupCounterSeq:m,counterList:D})})}_processAndNotifyCounterUpdate(s,n,g){const{OuterEvent:u,notificationCenter:E}=this._core;nc.updateLocalGroupCounters({groupID:s,groupCounterSeq:n,counterList:g}),g.forEach(({Key:m,Value:D=0})=>{E.emitOuterEvent(u.GROUP_COUNTER_UPDATED,{name:u.GROUP_COUNTER_UPDATED,data:{groupID:s,key:m,value:D}})})}reset(){nc.reset()}},km=new class{constructor(){this._name="InitGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g}=s,{serverMainSequence:u,avChatRoomKey:E}=zs.getGroupAttributesCache(n),m=zs.convertKeyValueMapToList(g);try{const D=yield function(W,iA){return pA(this,void 0,void 0,function*(){const{groupID:EA,mainSequence:RA,groupAttributeList:kA,avChatRoomKey:xA}=W,LA={GroupId:EA,AttrMainSeq:RA,GroupAttr:kA,BytesKey:xA,AttrControl:["RaceConflict"]};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.set_group_attr",data:LA})})}({groupID:n,avChatRoomKey:E,groupAttributeList:m,mainSequence:u},this._core),{AttrMainSeq:M,GroupAttr:T}=D||{},P=T.map(W=>{const{Key:iA,seq:EA}=W;return{key:iA,value:g[iA],sequence:EA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:M,groupAttributeList:P,operation:nD}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${M}`})}catch(D){throw new this._core.helper.ChatError({functionName:"initGroupAttributes",code:D?.errorCode,message:D?.errorInfo})}})}},_T=new class{constructor(){this._name="SetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupAttributes",context:this}),n.registerExperimentalAPI("setRichStatus",this)}setGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g,richStatusMode:u}=s,{serverMainSequence:E,avChatRoomKey:m,values:D}=zs.getGroupAttributesCache(n),M=zs.convertKeyValueMapToList(g).map(T=>{var P;const{key:W,value:iA}=T;return{key:W,value:iA,seq:((P=D.get(T.key))===null||P===void 0?void 0:P.sequence)||0}});try{const T=yield function(EA,RA){return pA(this,void 0,void 0,function*(){const{groupID:kA,mainSequence:xA,groupAttributeList:LA,avChatRoomKey:SA,richStatusMode:OA}=EA,JA={GroupId:kA,AttrMainSeq:xA,GroupAttr:LA,BytesKey:SA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:OA};return RA.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_attr",data:JA})})}({groupID:n,avChatRoomKey:m,groupAttributeList:M,mainSequence:E,richStatusMode:u},this._core),{AttrMainSeq:P,GroupAttr:W}=T||{},iA=W.map(EA=>{const{Key:RA,seq:kA}=EA;return{key:RA,value:g[RA],sequence:kA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:P,groupAttributeList:iA,operation:bv}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${P}`})}catch(T){throw new this._core.helper.ChatError({functionName:"setGroupAttributes",code:T?.errorCode,message:T?.errorInfo})}})}setRichStatus(s){return pA(this,void 0,void 0,function*(){const{groupID:n,richStatus:g}=s;return this.setGroupAttributes({groupID:n,groupAttributes:g,richStatusMode:!0})})}},BD=new class{constructor(){this._name="DeleteGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteGroupAttributes",context:this}),n.registerExperimentalAPI("deleteRichStatus",this)}deleteGroupAttributes(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupAttributes",{groupID:g,keyList:u=[],richStatusMode:E}=s;try{let m;m=u.length===0?yield this._clearGroupAttributes(g,{richStatusMode:E}):yield this._deleteGroupAttributes(g,{keyList:u,richStatusMode:E});const{resultList:D,serverMainSequence:M,operation:T,groupAttributeList:P}=m||{},W=`${this._name}.${n} ok. groupID:${g} operation: ${T}`;return zs.saveGroupAttributesCacheValuesCopy(g),zs.refreshGroupAttributesCache({groupID:g,serverMainSequence:M,groupAttributeList:P,operation:T}),zs.emitGroupAttributesUpdated(g),dn({keyList:D},{message:W})}catch(m){throw new this._core.helper.ChatError({functionName:n,code:m?.errorCode,message:m?.errorInfo})}})}deleteRichStatus(s){return pA(this,void 0,void 0,function*(){return this.deleteGroupAttributes(Object.assign(Object.assign({},s),{richStatusMode:!0}))})}_deleteGroupAttributes(s,n){return pA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:u,values:E}=zs.getGroupAttributesCache(s),{keyList:m,richStatusMode:D}=n,M=[],T=[];m.forEach(iA=>{if(E.has(iA)){const{sequence:EA=0}=E.get(iA)||{};T.push({key:iA,seq:EA}),M.push(iA)}});const P=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{groupID:RA,mainSequence:kA,groupAttributeList:xA,avChatRoomKey:LA,richStatusMode:SA}=iA,OA={GroupId:RA,AttrMainSeq:kA,GroupAttr:xA,BytesKey:LA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:SA};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_attr",data:OA})})}({groupID:s,avChatRoomKey:u,groupAttributeList:T,mainSequence:g,richStatusMode:D},this._core),{AttrMainSeq:W}=P||{};return{resultList:M,serverMainSequence:W,groupAttributeList:T,operation:aD}})}_clearGroupAttributes(s,n){return pA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:u,values:E}=zs.getGroupAttributesCache(s),{richStatusMode:m}=n||{},D=[...E.keys()],M=yield function(P,W){return pA(this,void 0,void 0,function*(){const{groupID:iA,mainSequence:EA,avChatRoomKey:RA,richStatusMode:kA}=P,xA={GroupId:iA,AttrMainSeq:EA,BytesKey:RA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.clear_group_attr",data:xA})})}({groupID:s,avChatRoomKey:u,mainSequence:g,richStatusMode:m},this._core),{AttrMainSeq:T}=M||{};return{resultList:D,serverMainSequence:T,operation:rD}})}},QD=new class{constructor(){this._name="GetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupAttributes",context:this}),n.registerExperimentalAPI("getRichStatus",this,"getGroupAttributes")}getGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{avChatRoomKey:g,lastUpdateTime:u,localMainSequence:E,serverMainSequence:m}=zs.getGroupAttributesCache(n),{helper:{ChatError:D}}=this._core,M=`groupID:${n} localMainSequence:${E} serverMainSequence:${m} keyList:${s.keyList}`;if(Date.now()-u>=3e4||E{const{key:iA,value:EA,seq:RA}=W;return{key:iA,value:EA,sequence:RA}});return zs.refreshGroupAttributesCache({groupID:u,serverMainSequence:M,groupAttributeList:P,operation:kv}),{serverGroupAttributeList:T}})}},LQ=new class{init(s){s.ssoLog.debug("GroupAttribute.init"),km.init(s),_T.init(s),BD.init(s),QD.init(s),zs.init(s)}isGroupAttributesUpdated(s){return zs.isGroupAttributesUpdated(s)}handleGroupAttributesUpdated(s){const{to:n,elements:{newGroupProfile:g}}=s,{groupAttributeOption:u}=g,{serverMainSequence:E,withChangedAttributeInfo:m}=u,{localMainSequence:D}=zs.getGroupAttributesCache(n),M=E-D;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${n} withChangedAttributeInfo:${m} diffSequence:${M}`),M!==0)if(zs.saveGroupAttributesCacheValuesCopy(n),m!==1||M!==1){if(zs.hasGroupAttributesCache(n)){const{avChatRoomKey:T}=zs.getGroupAttributesCache(n);QD.getGroupAttributesFromServer({groupID:n,avChatRoomKey:T}).then(()=>{zs.emitGroupAttributesUpdated(n)}).catch(()=>{})}}else zs.handleGroupAttributesUpdated({groupID:n,groupAttributeOption:u})}reset(){zs.reset()}};function xE(s,n="tips"){const{ClientSeq:g,From_Account:u,MsgClientTime:E,MsgPriority:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,TinyId:P,ToGroupId:W,GroupInfo:iA,MsgBody:EA}=s,RA=function(kA){const{GroupCode:xA,GroupId:LA,GroupName:SA,GroupType:OA,MsgFrom_AccountExtraInfo:JA,From_Account:ne,To_Account:se}=kA;return{groupCode:xA,groupID:LA,groupName:SA,type:OA,messageFromAccountExtraInformation:JA,from:ne,to:se}}(iA);return{clientSequence:g,from:u,clientTime:E,priority:m,random:D,sequence:M,time:T,tinyID:P,to:W,groupProfile:RA,elements:n==="tips"?ju(EA):Eh(EA)}}function ju(s){const n={};return Object.keys(s).forEach(g=>{var u,E;switch(g){case"MemberNum":n.memberCount=s[g];break;case"OpType":n.operationType=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"List_Account":n.userIDList=s[g];break;case"MsgMemberExtraInfo":n.memberInfoList=(u=s[g])===null||u===void 0?void 0:u.map(m=>pD(m));break;case"MsgOperatorMemberExtraInfo":n.operatorInfo=pD(s[g]);break;case"MsgGroupNewInfo":n.newGroupProfile=function(m){const D={};return Object.keys(m).forEach(M=>{switch(M){case"GroupIntroduction":D.introduction=m[M];break;case"GroupName":D.groupName=m[M];break;case"GroupFaceUrl":D.avatar=m[M];break;case"GroupNotification":D.notification=m[M];break;case"ApplyJoinOption":D.joinOption=m[M];break;case"InviteJoinOption":D.inviteOption=m[M];break;case"ShutupAll":D.muteAllMembers=m[M];break;case"Owner_Account":D.ownerID=m[M];break;case"GroupAttrOption":D.groupAttributeOption=function(P){const{BytesChangedKeys:W,GroupAttrSeq:iA,OpType:EA,PushChangedAttrValFlag:RA,GroupAttrInfo:kA}=P,xA=kA.map(LA=>{const{Key:SA,Val:OA,SubKeySeq:JA}=LA;return{key:SA,value:OA,sequence:JA}});return{changedKeyList:W,groupAttributeList:xA,serverMainSequence:iA,operation:EA,withChangedAttributeInfo:RA}}(m[M]);break;case"MsgAppDefinedData":D.groupCustomField=(T=m[M])==null?void 0:T.map(P=>({key:P.Key,value:P.Value}));break;case"InviteOption":D.inviteOption=MT[m[M]]||m[M]}var T}),D}(s[g]);break;case"MsgMemberInfo":n.msgMemberInfo=(E=s[g])===null||E===void 0?void 0:E.map(m=>function(D){const{ShutupTime:M,User_Account:T}=D;return{muteTime:M,userID:T}}(m));break;case"OnlineMemberInfo":n.onlineMemberInfo=function(m){const{ExpireTime:D,OnlineMemberNum:M}=m;return{expireTime:D,onlineMemberNum:M}}(s[g]);break;case"GroupCounterInfo":n.groupCounterInfo=function(m){return m.map(D=>{const{GroupCounterSeq:M,GroupCounter:T,Type:P}=D;return{type:P,groupCounterSeq:M,counterList:T}})}(s[g])}}),n}function pD(s){const{ImageUrl:n,NickName:g,Role:u,UserId:E}=s;return{avatar:n,nick:g,role:u,userID:E}}function Eh(s){const n={};return Object.keys(s).forEach(g=>{switch(g){case"MsgKey":n.messageKey=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"ReportType":n.operationType=s[g];break;case"Authentication":n.authentication=s[g];break;case"MsgFlag":n.messageRemindType=s[g];break;case"UserDefinedField":n.userDefinedField=s[g];break;case"RemarkInfo":n.remarkInfo=s[g];break;case"BanDuration":n.duration=s[g];break;case"MuteTime":n.muteTime=s[g];break;case"MsgMemberExtraInfoList":n.inviteeInfoList=(u=s[g]||[])==null?void 0:u.map(E=>{const{UserId:m,ImageUrl:D,NickName:M}=E;return{userID:m,avatar:D,nick:M}});break;case"MemberList_Account":n.inviteeList=s[g]}var u}),n}class Lm{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=ju(n);return new Lm(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"groupProfile":this._initGroupProfile(n[g]);break;case"operatorInfo":this._initOperatorInfo(n[g]);break;case"memberInfoList":case"msgMemberInfo":this._updateMemberList(n[g]);break;case"newGroupProfile":this._initNewGroupProfile(n[g]);break;case"memberExtraInfo":case"remarkInfo":case"onlineMemberInfo":break;default:this.content[g]=n[g]}}),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let u=0;u{n.forEach(u=>{g.userID===u.userID&&Object.assign(g,u)})}):this.content.memberList=n}_initNewGroupProfile(n){this.content.newGroupProfile={};const g=Object.keys(n);for(let u=0;u0&&this._handleGroupTipMessage(g),{conversationUpdateFieldList:u,messageList:g}}_emitGroupTipsEvent(s){var n;const{constants:{WORKFLOW_STEP:g}}=this._core,{messageList:u=[]}=((n=s?.result)===null||n===void 0?void 0:n[g.HANDLE_GROUP_TIPS_NOTIFICATION])||{};if(u.length>0){const{notificationCenter:E,OuterEvent:m}=this._core;E.emitOuterEvent(m.MESSAGE_RECEIVED,{name:m.MESSAGE_RECEIVED,data:u})}}_handleGroupTips(s,n=!0){const{Event:g,GroupTips:u}=s,E=new Map,m=[],D=[];for(let M=0,T=u.length;M{const{operationType:u}=g.payload;switch(u){case n.JOINED:this._handleNewMemberJoined(g);break;case n.QUITTED:this._handleMemberQuitted(g);break;case n.KICKED:this._handleMemberKicked(g);break;case n.GROUP_PROFILE_UPDATED:this._handleGroupProfileUpdated(g);break;case n.ADMIN_SET:this._handleMemberGrantAdmin(g);break;case n.ADMIN_CANCELED:this._handleMemberRevokeAdmin(g)}})}_handleNewMemberJoined(s){this._handleGroupMemberCountUpdated(s)}_handleMemberQuitted(s){this._handleGroupMemberCountUpdated(s)}_handleMemberKicked(s){this._handleGroupMemberCountUpdated(s)}_handleGroupProfileUpdated(s){var n;const{newGroupProfile:g,groupProfile:u,operatorInfo:E}=s.payload,{groupID:m}=u,D=Yi.getLocalGroup(m);Object.keys(g).forEach(T=>{switch(T){case"ownerID":this._handleGroupOwnerChanged(m,g);break;case"groupName":D.name=g[T];break;case"groupCustomField":Array.isArray(D[T])&&Array.isArray(g[T])?_m(D[T],g[T]):D[T]=g[T];break;default:D[T]=g[T]}});const{utils:{isUndefined:M}}=this._core;M(E)||((n=D?.selfInfo)===null||n===void 0?void 0:n.userID)!==E.userID||Object.keys(E).forEach(T=>{T==="nameCard"&&D.updateSelfInfo({nameCard:E[T]}),T==="role"&&this._updateSelfRole(D,E[T])}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m)}_handleGroupOwnerChanged(s,n){const{common:g,OuterConstant:u}=this._core,E=Yi.getLocalGroup(s),m=g.getCurrentUserID(),{ownerID:D}=n;m===D&&E.updateGroup({ownerID:D,selfInfo:{role:u.GRP_MBR_ROLE_OWNER}})}_updateSelfRole(s,n){const{OuterConstant:g}=this._core;let u=g.GRP_MBR_ROLE_MEMBER;n===CT?u=g.GRP_MBR_ROLE_OWNER:n===cD&&(u=g.GRP_MBR_ROLE_ADMIN),s.updateSelfInfo({role:u})}_handleGroupMemberCountUpdated(s){const{memberCount:n,groupProfile:{groupID:g}}=s.payload,u=Yi.getLocalGroup(g),{utils:{isNumber:E}}=this._core;u&&E(n)&&u.memberCount!==n&&(u.memberCount=n,Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(g))}_handleGroupTipsRecover(s){const{utils:{isArray:n}}=this._core,{groupTipList:g}=s?.result||{};n(g)&&g.forEach(u=>{const{messageList:E}=this._handleGroupTips({Event:u.Event,GroupTips:[u]},!1);this._handleGroupTipMessage(E)})}_handleMemberGrantAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:u}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&u.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_ADMIN}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}_handleMemberRevokeAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:u}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&u.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_MEMBER}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}};class UQ{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=Eh(n);return new UQ(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"remarkInfo":this.content.handleMessage=n[g];break;case"groupProfile":this._initGroupProfile(n[g]);break;case"memberInfoList":break;default:this.content[g]=n[g]}})}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let u=0;u0&&this._handleGroupSysTemMessage(g,E),g===!0&&E.length>0&&m.emitOuterEvent(D.MESSAGE_RECEIVED,{name:D.MESSAGE_RECEIVED,data:E})}_handleGroupSystemNotification(s,n){const g=[];let u={};for(let E=0;E0?[u]:[],messageList:g}}_assembleMessage(s){const{message:{messageFactory:n},OuterConstant:g,utils:{randomInt:u}}=this._core;s.flow="in",s.conversationType=g.CONV_SYSTEM,s.conversationSubType=s.groupProfile.type,s.conversationID=g.CONV_SYSTEM;const E=n.createMessage(s),m=new UQ(Object.assign(Object.assign({},s.elements),{groupProfile:Object.assign({},s.groupProfile)}));E.setElement(m),E.isSystemMessage=!0;const D=E.sequence===1&&E.random===1,M=E.sequence===2&&E.random===2;return(D||M)&&(E.sequence=u(),E.random=u(),E.generateMessageID()),E}_handleConversationOptions(s,n){const{OuterConstant:g}=this._core,u={conversationID:g.CONV_SYSTEM,unreadCount:0,type:g.CONV_SYSTEM,subType:s.conversationSubType,lastMessage:null};return n&&u.unreadCount++,u}_handleGroupSysTemMessage(s,n){s&&n.forEach(g=>{const{operationType:u}=g.payload;switch(u){case BT:this._handleGroupJoinResult(g);break;case Uv:this._handleMemberKicked(g);break;case QT:this._handleGroupDismissed(g);break;case pT:this._handleGroupInvitedResult(g);break;case lD:this._handleGroupQuitResult(g);break;case _Q:this._handleMessageRemindTypeSynced(g);break;case Sm:this._handleAVChatRoomMemberBanned(g)}})}_handleGroupJoinResult(s){const{groupProfile:n}=s.payload,{groupID:g,type:u}=n,E=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupJoinResult",` groupID:${g} type:${u} hasLocalGroup:${E}`),E||Dd(u)||(Yi.updateLocalGroup([Object.assign({},n)]),Yi.emitGroupListUpdate())}_handleMemberKicked(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupDismissed(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupInvitedResult(s){const{groupProfile:n}=s.payload,{groupID:g}=n,u=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupInvitedResult",` groupID:${g} hasLocalGroup:${u}`),u||Ol.getGroupProfile({groupID:g}).then(E=>{const{data:{group:m}}=E;Yi.updateLocalGroup([Object.assign({},m)]),Yi.emitGroupListUpdate()})}_handleGroupQuitResult(s){const{groupProfile:{groupID:n,type:g}}=s.payload,u=Yi.hasLocalGroup(n);this._core.ssoLog.debug("_handleGroupQuitResult",` groupID:${n} type:${g} hasLocalGroup:${u}`),u&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleMessageRemindTypeSynced(s){const{groupProfile:{groupID:n},messageRemindType:g}=s.payload;this._updateConversationProfile(n,{messageRemindType:g})}_handleAVChatRoomMemberBanned(s){const{groupProfile:{groupID:n,type:g}}=s.payload;this._deleteLocalGroup(n,g)}_deleteLocalGroup(s,n){if(Dd(n)){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:u}}=this._core;g.deleteConversation(`${u}${s}`)}Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate()}_updateConversationProfile(s,n){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:u}}=this._core,E=`${u}${s}`;g.getConversation(E)&&g.updateConversation(E,n)}},mD=new class{init(s){this._core=s,s.ssoLog.debug("GroupNotificationHandler.init"),qv.init(s),Kv.init(s);const{notificationCenter:n,InnerEvent:g}=s,{InnerEventSubType:u}=n;n.subscribeInnerEvent(g.MESSAGE_PUSH,u.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),n.subscribeInnerEvent(g.MESSAGE_PUSH,u.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this)}_onNewGroupTipsNotification(s){const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g}}=this._core;n.executeWorkflow(g.RECEIVE_GROUP_TIPS_NOTIFICATION,s)}_onNewGroupSystemNotification(s){Kv.onNewGroupSystemNotification(s)}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this)}};const vn={required:!0,rules:["string"],allowEmpty:!1},FQ={required:!0,rules:["number"],allowEmpty:!1},Rd={required:!0,rules:["array"],allowEmpty:!1},fD={required:!0,rules:["object"],allowEmpty:!1},TT={createGroup:{name:vn,type:vn},dismissGroup:[Object.assign({key:"groupID"},vn)],joinGroup:{groupID:vn,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},vn)],searchGroupByID:[Object.assign({key:"groupID"},vn)],getGroupProfile:{groupID:vn,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:vn,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:vn,newOwnerID:vn},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},vn)],handleGroupApplication:{handleAction:vn},getGroupMemberList:{groupID:vn},getGroupMemberProfile:{groupID:vn,userIDList:Rd,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:vn,userIDList:Rd},deleteGroupMember:{groupID:vn,userIDList:Rd},setGroupMemberMuteTime:{groupID:vn,userID:vn,muteTime:Object.assign(Object.assign({},FQ),{customValidator:s=>!(s<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:vn,userID:vn,role:vn},setGroupMemberNameCard:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:vn},setGroupMemberCustomField:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:Rd},markGroupMemberList:{groupID:vn,markType:Object.assign(Object.assign({},FQ),{customValidator:s=>!(s<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:Rd},initGroupAttributes:{groupID:vn,groupAttributes:fD},setGroupAttributes:{groupID:vn,groupAttributes:fD},deleteGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},Rd),{allowEmpty:!0})},getGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},Rd),{allowEmpty:!0})},getGroupCounters:{groupID:vn,keyList:{required:!1,rules:["array"],allowEmpty:!0}},setGroupCounters:{groupID:vn,counters:fD},increaseGroupCounter:{groupID:vn,key:vn,value:FQ},decreaseGroupCounter:{groupID:vn,key:vn,value:FQ}},NT={getGroupList:!0,createGroup:!0,dismissGroup:!0,joinGroup:!0,quitGroup:!0,searchGroupByID:!0,getGroupProfile:!0,updateGroupProfile:!0,changeGroupOwner:!0,getGroupOnlineMemberCount:!0,getGroupApplicationList:!0,handleGroupApplication:!0,getGroupMemberList:!0,getGroupMemberProfile:!0,addGroupMember:!0,deleteGroupMember:!0,setGroupMemberMuteTime:!0,setGroupMemberRole:!0,setGroupMemberNameCard:!0,setGroupMemberCustomField:!0,markGroupMemberList:!0,initGroupAttributes:!0,setGroupAttributes:!0,getGroupAttributes:!0,deleteGroupAttributes:!0,getGroupCounters:!0,setGroupCounters:!0,increaseGroupCounter:!0,decreaseGroupCounter:!0};var GT=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=Yi,this.groupAction=GQ,this.groupAttribute=LQ,this.groupMember=Hv,this.groupCounter=lB,this.name="Group"}install(s,n=[]){this._core=s,Wn.init(s),Yi.init(s),GQ.init(s,this),Hv.init(s,this),dD.init(s),lB.init(s),LQ.init(s),mD.init(s),s.helper.registerValidateConfig({auth:NT,params:TT}),this._installSubPlugins(n);const{notificationCenter:g,InnerEvent:u}=s;g.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.subscribeInnerEvent(u.DESTROY,this._dispose,this)}getInstalledSubPlugins(){return this._installedSubPlugins}_installSubPlugins(s){const{utils:{isArray:n}}=this._core;s&&n(s)&&s.forEach(g=>{var u;this._installedSubPlugins.includes(g.name)||((u=g.install)===null||u===void 0||u.call(g,this._core,this),this._installedSubPlugins.push(g.name))})}_reset(){Yi.reset(),LQ.reset(),lB.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const IB=new class{init(s){this.core=s}},jv="AV_MBR_LIST",bT="AV_BAN_MBR",YE={NORMAL_MESSAGE:3,GROUP_TIPS_HAS_ROAMING:4,GROUP_SYSTEM_MESSAGE:5,GROUP_TIPS_HAS_NO_ROAMING:6,BROADCAST_MESSAGE:17,MESSAGE_REVOKED:20,MESSAGE_REACTION:21,LIVE_CUSTOM_DATA:100},dh={GROUP_DISMISSED:5,QUIT_GROUP:8,AVCHATROOM_MEMBER_BANNED:21},yD=60,DD=2603,kT=2686,LT=2688,OQ=3122;class Wv{constructor(n){const{core:g,manager:u,groupID:E,getRequestParams:m,onSuccess:D,onFail:M}=n;this._name="Polling",this._core=g,this._manager=u,this._timeoutID=-1,this._isRunning=!1,this._groupID=E,this._getRequestParams=m,this._onSuccess=D,this._onFail=M}start(){this._isRunning=!0,this._request(),console.log(`${this._name}.start pollingInterval:${this._manager.getCurrentPollingInterval(this._groupID)}`)}isRunning(){return this._isRunning}_request(){return pA(this,void 0,void 0,function*(){try{const n=this._getRequestParams(this._groupID),g=yield function(E,m){return pA(this,void 0,void 0,function*(){const{longPollingKey:D,startSequence:M,startBroadcastSeq:T,simplifiedMessage:P}=E,W={Key:D,StartSeq:M,StartBroadcastSeq:T,DownsizeFlag:P,USP:1,HoldTime:90};return m.common.buildAndSendPacket({servcmd:"group_open_long_polling_http_svc.get_msg",data:W})})}(n,this._core);this._onSuccess(this._groupID,g);const u=this._manager.getCurrentPollingInterval(this._groupID);this._runNextPolling(u)}catch(n){this._onFail(this._groupID,n),this._runNextPolling(2e3)}})}_runNextPolling(n){this.isRunning()&&(this._timeoutID>-1&&clearTimeout(this._timeoutID),this._timeoutID=setTimeout(this._request.bind(this),n))}stop(){console.log(`${this._name}.stop timerID:${this._timeoutID}`),this._timeoutID>-1&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}class Ch{constructor(n){this._maxLength=n,this._map=new Map}set(n){var g;if(this._map.size>=this._maxLength){const u=((g=this._map.entries().next().value)===null||g===void 0?void 0:g[0])||"";this._map.delete(u)}this._map.set(n,1)}has(n){return this._map.has(n)}delete(n){this.has(n)&&this._map.delete(n)}clear(){this._map.clear()}}const Wu=s=>s===YE.GROUP_TIPS_HAS_NO_ROAMING||s===YE.GROUP_TIPS_HAS_ROAMING,PQ=s=>s===YE.GROUP_SYSTEM_MESSAGE;function Um(s){const n=function(g){const{E:u,MCT:E,MR:m,MP:D,MTS:M,GId:T,MS:P,CCD:W,F_Account:iA,IsSys:EA,GInf:RA,MsgBody:kA}=g,xA=Do(g,["E","MCT","MR","MP","MTS","GId","MS","CCD","F_Account","IsSys","GInf","MsgBody"]);return Object.assign({Event:u,MsgClientTime:E,MsgRandom:m,MsgPriority:D,MsgTimeStamp:M,ToGroupId:T,MsgSeq:P,CloudCustomData:W,From_Account:iA,IsSystemMsg:EA,GroupInfo:SD(RA),MsgBody:UT(kA)},xA)}(s);return function(g){const{Event:u}=g;(Wu(u)||PQ(u))&&(g.From_Account=g.From_Account||"@TIM#SYSTEM"),E=u,(E===YE.BROADCAST_MESSAGE||(m=>m===YE.NORMAL_MESSAGE)(u))&&function(m){const{core:{OuterConstant:D}}=IB;m.CloudCustomData=m.CloudCustomData||"",m.MsgBody=m.MsgBody.map(M=>{if(M.MsgType===D.MSG_CUSTOM){const{content:T={}}=M;M.content=Object.assign({Data:"",Desc:"",Ext:""},T)}return M})}(g);var E;Wu(u)&&function(m){const{GroupJoinType:D,MsgOperatorMemberExtraInfo:M={},MsgMemberExtraInfo:T,Operator_Account:P,List_Account:W,OpType:iA}=m.MsgBody||{};typeof D=="number"||iA!==1&&iA!==2||(m.MsgBody.GroupJoinType=iA===2?0:1),T||(m.MsgBody.MsgMemberExtraInfo=W?.map(EA=>({UserId:EA}))),iA!==1||T||(m.MsgBody.MsgMemberExtraInfo=[{UserId:M.UserId}]),m.MsgBody.MsgOperatorMemberExtraInfo=Object.assign({Operator_Account:P,ImageUrl:"",NickName:""},M)}(g),PQ(u)&&function(m){const{MsgOperatorMemberExtraInfo:D={},Operator_Account:M}=m.MsgBody||{};m.MsgBody.MsgMemberExtraInfo=Object.assign({UserId:M,ImageUrl:"",NickName:""},D),m.MsgBody=Object.assign({Authentication:"",RemarkInfo:"",MsgKey:1e3*m.MsgTimeStamp},m.MsgBody),m.MsgBody=Object.keys(m.MsgBody).filter(T=>T!=="MsgOperatorMemberExtraInfo").reduce((T,P)=>Object.assign(Object.assign({},T),{[P]:m.MsgBody[P]}),{})}(g)}(n),n}function SD(s){const n=s||{},{GN:g,GT:u,F_Hd:E,F_NN:m,F_Ll:D}=n,M=Do(n,["GN","GT","F_Hd","F_NN","F_Ll"]),T=Object.assign({GroupName:g,GroupType:u},M);return E&&(T.From_AccountHeadurl=E),m&&(T.From_AccountNick=m),D&&(T.From_AccountLevel=D),T}function UT(s){let n=s;Array.isArray(s)||(n=[s]);const g=n.map(u=>{const{O_Account:E,Opt:m,L_Account:D,RT:M,UDF:T,OpInf:P,OnlineInf:W,MsgMemberExtraInfo:iA}=u,EA=Do(u,["O_Account","Opt","L_Account","RT","UDF","OpInf","OnlineInf","MsgMemberExtraInfo"]),RA=Object.assign({Operator_Account:E,OpType:m,List_Account:D,ReportType:M,UserDefinedField:T},EA);return P&&(RA.MsgOperatorMemberExtraInfo=function(kA){const{Img:xA,NN:LA}=kA,SA=Do(kA,["Img","NN"]);return Object.assign({ImageUrl:xA,NickName:LA},SA)}(P)),iA&&(RA.MsgMemberExtraInfo=function(kA){return kA?.map(xA=>{const{Img:LA,NN:SA}=xA,OA=Do(xA,["Img","NN"]);return Object.assign({ImageUrl:LA,NickName:SA},OA)})}(iA)),W&&(RA.OnlineMemberInfo=function(kA){const{ET:xA,Num:LA}=kA;return{ExpireTime:xA,OnlineMemberNum:LA}}(W)),RA});return Array.isArray(s)?g:g[0]}var hh=new class{constructor(){this._name="MessageParser",this._sequenceList=new Ch(200),this._messageIDList=new Ch(100),this._broadcastMessageIDMap=new Map,this._reportMessageStackedCount=0}init(s,n){this._core=s,this._avChatRoomHandler=n}onMessageReceived(s,n,g=!1){this._sortServerMessageList({groupID:s,serverMessageList:n,isHistoryMessage:g});const u=this._handleMessageList(s,n);if(u.length===0)return;if(!g){const{appStore:{conversationStore:T},OuterConstant:{CONV_GROUP:P},common:{buildLastMessage:W}}=this._core,iA=W(u[u.length-1]);T.updateConversation(`${P}${s}`,{lastMessage:iA})}this._checkMessageStacked(u);const E=u.filter(T=>T.isModified===!0),m=u.filter(T=>T.isModified===!1),{OuterEvent:{MESSAGE_RECEIVED:D,MESSAGE_MODIFIED:M}}=this._core;E.length>0&&this._emitEvent({name:M,data:E}),m.length>0&&this._emitEvent({name:D,data:m})}_sortServerMessageList(s){const{groupID:n,serverMessageList:g,isHistoryMessage:u}=s;let E=[];this._avChatRoomHandler.isPollingSimplifiedMessage()&&!u?(g.sort((m,D)=>m.MS-D.MS),E=g.map(m=>m.MS)):(g.sort((m,D)=>m.MsgSeq-D.MsgSeq),E=g.map(m=>m.MsgSeq)),console.log(`${this._name}._sortServerMessageList groupID:${n} count:${E.length} sequenceList:${E}`),E.length=0}_handleMessageList(s,n){var g;const{message:{messageDataHandler:u,messageHelper:E}}=this._core,m=this._avChatRoomHandler.isPollingSimplifiedMessage(),D=[],M=n.length;for(let T=0;Tg===YE.MESSAGE_REVOKED)(n)?(this._handleMessageRevoked(s),null):(g=>g===YE.LIVE_CUSTOM_DATA)(n)?(this._onLiveCustomData(s),null):(g=>g===YE.MESSAGE_REACTION)(n)?null:s:(console.warn(`${this._name}.onMessageReceived unknown event:${n}`),null)}_createMessage(s){const{message:{messageFactory:n},OuterConstant:g}=this._core;let u=g.CONV_GROUP;s.elements.type===g.MSG_GRP_SYS_NOTICE&&(u=g.CONV_SYSTEM);const E=!!s.isSystemMessage,m=n.createMessage(Object.assign(Object.assign({},s),{conversationType:u,isSystemMessage:E,flow:"in"}));return m.setElement(s.elements),m}_filterDuplicateMessage(s){const{common:n}=this._core;if(!n.isUnlimitedAVChatRoom()){if(this._sequenceList.has(s.sequence))return null;this._sequenceList.set(s.sequence)}const g=this._messageIDList.has(s.ID);return g?(console.warn(`${this._name}_filterDuplicateMessageItem ID:${s.ID} has:${g}`),null):(this._messageIDList.set(s.ID),s)}_handleMessageRevoked(s){const{OuterConstant:n,OuterEvent:{MESSAGE_REVOKED:g}}=this._core,{ToGroupId:u,MsgBody:{RevokeMsgList:E},RevokerInfo:{Revoker_Account:m,Reason:D=""}}=s,M=[];E.forEach(T=>{const{TinyId:P,MsgClientTime:W,Random:iA,MsgSeq:EA}=T,RA={conversationID:`${n.CONV_GROUP}${u}`,ID:`${P}-${W}-${iA}`,revoker:m,revokeReason:D,revokerInfo:{userID:m,nick:"",avatar:""},sequence:EA};M.push(RA)}),M.length!==0&&this._emitEvent({name:g,data:M})}_onLiveCustomData(s){const{OuterEvent:{ROOM_CUSTOM_DATA_RECEIVED:n}}=this._core,{ToGroupId:g,MsgSeq:u,MsgTimeStamp:E,MsgBody:m}=s,D=m?.Content||m?.MsgContent||"";this._emitEvent({name:n,data:D}),console.log(`${this._name}._onLiveCustomData groupID:${g} sequence:${u} time:${E} data:${D}`)}_onGroupDismissed(s){this._avChatRoomHandler.reset(s)}_checkMessageStacked(s){const{length:n}=s;if(n>=100&&this._reportMessageStackedCount<5){const g=this._avChatRoomHandler.getJoinedGroups();this._core.ssoLog.info("MessageStacked",`count:${n} groupID:${g.join(",")}`),this._reportMessageStackedCount+=1}}_emitEvent(s){this._core.notificationCenter.emitOuterEvent(s.name,s)}onBroadcastMessageReceived(s){const{message:{messageHelper:n},OuterEvent:{MESSAGE_RECEIVED:g}}=this._core,u=this._avChatRoomHandler.isPollingSimplifiedMessage(),E=[],m=s.length;for(let D=0;D0&&this._emitEvent({name:g,data:E})}_updateLocalOnlineMemberCountFromTips(s){const{utils:{isEmpty:n}}=this._core,{ToGroupId:g,MsgBody:{OnlineMemberInfo:u}}=s;if(n(u))return;const{OnlineMemberNum:E=0,ExpireTime:m=yD}=u,D=Date.now();let M=this._avChatRoomHandler.getLocalOnlineMemberCount(g);n(M)?M={lastReqTime:0,lastSyncTime:0,latestUpdateTime:D,memberCount:E,expireTime:m}:(M.latestUpdateTime=D,M.memberCount=E),this._avChatRoomHandler.updateLocalOnlineMemberCount(g,M)}reset(){this._reportMessageStackedCount=0,this._sequenceList.clear(),this._messageIDList.clear(),this._broadcastMessageIDMap.clear()}};const uB=s=>{const{core:{store:n}}=IB;return(n.get("cloudConfig")||{})[s]},Bh=s=>{const{core:{utils:{isUndefined:n}}}=IB;return!n(s)},xQ=()=>{const s=uB("polling_interval");return Bh(s)?parseInt(s,10):300},EB=()=>{const s=uB("polling_simplified_msg");return Bh(s)?parseInt(s,10):0};var zv=new class{constructor(){this._name="GetAVChatRoomOnlineMemberCount"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},OuterConstant:g}=this._core,u=n.getGroup(s);return u?u.type===g.GRP_AVCHATROOM?this._getOnlineMemberCount(s):this._parentPlugin.groupAction.getGroupOnlineMemberCount(s):{code:0,data:{memberCount:0}}})}_getOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const n="_getOnlineMemberCount",{utils:{isEmpty:g}}=this._core,u=Pg.getLocalOnlineMemberCount(s);if(g(u)||this._isExpired(s)){const{memberCount:E=0}=yield this._getOnlineMemberCountFromServer(s);return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${E} from server.`),{code:0,data:{memberCount:E}}}return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${u.memberCount} from local.`),{code:0,data:{memberCount:u.memberCount}}})}_isExpired(s){const n=Pg.getLocalOnlineMemberCount(s),g=Date.now(),u=g-n.lastSyncTime>1e3*n.expireTime,E=g-n.latestUpdateTime>1e4,m=g-n.lastReqTime>3e3;return u&&E&&m}_getOnlineMemberCountFromServer(s){return pA(this,void 0,void 0,function*(){const n="_getOnlineMemberCountFromServer";try{const g=yield function(M,T){return pA(this,void 0,void 0,function*(){const P={GroupId:M};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:P})})}(s,this._core),{OnlineMemberNum:u=0,ExpireTime:E=yD}=g||{},m=Date.now(),D={lastSyncTime:m,latestUpdateTime:m,lastReqTime:m,memberCount:u,expireTime:E};return Pg.updateLocalOnlineMemberCount(s,D),{memberCount:u}}catch(g){const u=new this._core.helper.ChatError({functionName:n,code:g?.errorCode,message:g?.errorInfo});throw console.error(`${this._name}.${n} fail:`,u),u}})}},Pg=new class{constructor(){this._name="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this._onlineMemberCountMap=new Map,this._pollingIntervalMap=new Map,this._pollingNoMessageCountMap=new Map,this._membersReqInfoMap=new Map,this._startBroadcastSequence=1}init(s,n){this._core=s,this._parentPlugin=n,hh.init(s,this),s.ssoLog.debug("AVChatRoomHandler.init")}onAVChatRoomSystemNotification(s){const{OuterConstant:{GRP_AVCHATROOM:n}}=this._core,{GroupTips:g=[]}=s;for(let u=0;u0&&(n=[...this._joinedGroupMap.values()].filter(g=>g.type===s)),n}handleJoinGroupResult(s){return pA(this,void 0,void 0,function*(){const{utils:{isUndefined:n},OuterConstant:{CONV_GROUP:g},apiMap:{getConversationProfile:u},OuterConstant:E}=this._core,{longPollingKey:m,group:D,historyMessageList:M=[]}=s,{groupID:T}=D;return yield this._preCheck(D),this._joinedGroupMap.set(T,D),this._parentPlugin.groupDataHandler.updateLocalGroup([D]),this._parentPlugin.groupDataHandler.emitGroupListUpdate(),u(`${g}${T}`),zv.getGroupOnlineMemberCount(T),M.length>0&&hh.onMessageReceived(T,M,!0),n(m)?{code:0,data:{status:E.JOIN_STATUS_SUCCESS,group:D}}:{code:0,data:this.startMessageLongPolling(s)}})}isGroupCounterUpdated(s){return this._parentPlugin.groupCounter.isGroupCounterUpdated(s)}handleGroupCounterUpdated(s){this._parentPlugin.groupCounter.handleGroupCounterUpdated(s)}_preCheck(s){return pA(this,void 0,void 0,function*(){const{common:n,OuterConstant:g,helper:u,apiMap:{quitGroup:E},ssoLog:m}=this._core;if(n.isUnlimitedAVChatRoom()){if(this._pollingInstanceMap.size>(()=>{const T=uB("polling_count_limit");return Bh(T)&&T>0?parseInt(T,10):20})())throw new u.ChatError({code:LT,message:"the count of longPolling exceeds the max limit"});return}if(this._joinedAVChatRoomCount()===0||s.type===g.GRP_LIVE)return;const[D,M]=this._joinedGroupMap.entries().next().value;if(M.selfInfo.role===g.GRP_MBR_ROLE_OWNER)this._parentPlugin.groupDataHandler.deleteLocalGroup(D);else try{yield E(D)}catch(T){m.debug("quitGroup",`${this._name}._preCheck quitGroup failed, groupID:${D} info:`,T)}this.reset(D)})}startMessageLongPolling(s){const{OuterConstant:n}=this._core,{longPollingKey:g,startSequence:u=1,group:E}=s,{groupID:m}=E;return this._pollingRequestInfoMap.set(m,{longPollingKey:g,startSequence:u}),this._pollingIntervalMap.set(m,xQ()),this._startPolling(m),this._reportLongPollingCount(),{status:n.JOIN_STATUS_SUCCESS,group:E}}_startPolling(s){if(this._core.ssoLog.debug("_startPolling",`${this._name}._startPolling groupID:${s}`),this._pollingInstanceMap.has(s)){const g=this._pollingInstanceMap.get(s);return void(g?.isRunning()||g==null||g.start())}const n=new Wv({core:this._core,manager:this,groupID:s,getRequestParams:this._handleRequestParams.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});n.start(),this._pollingInstanceMap.set(s,n)}_handleRequestParams(s){const{longPollingKey:n,startSequence:g}=this._pollingRequestInfoMap.get(s)||{};return s===[...this._pollingInstanceMap.keys()][0]?{longPollingKey:n,startSequence:g,startBroadcastSeq:this._startBroadcastSequence,simplifiedMessage:EB()}:{longPollingKey:n,startSequence:g,simplifiedMessage:EB()}}_handleSuccess(s,n){const{ErrorCode:g}=n;if(g!==0){const{longPollingKey:u,startSequence:E}=this._pollingRequestInfoMap.get(s)||{};return void console.warn(`${this._name}._handleSuccess groupID:${s} key:${u} startSeq:${E} errorCode:${g}`)}this._hasJoinedAVChatRoom(s)&&this._handleResponseData(s,n)}_handleResponseData(s,n){const{Key:g,NextSeq:u,NextBroadcastSeq:E,RspMsgList:m=[],RspBroadcastMsgList:D=[]}=n;if(g&&u&&this._pollingRequestInfoMap.set(s,{longPollingKey:g,startSequence:u}),E&&E>this._startBroadcastSequence&&(this._startBroadcastSequence=E),m.length>0)this._getPollingNoMessageCount(s)!==0&&(this._updatePollingNoMessageCount(s,0),this._pollingIntervalMap.set(s,xQ())),hh.onMessageReceived(s,m);else{let M=this._getPollingNoMessageCount(s);if(M+=1,this._updatePollingNoMessageCount(s,M),M===(()=>{const T=uB("polling_no_msg_count");return Bh(T)?parseInt(T,10):20})()){const T=xQ()+(()=>{const P=uB("polling_interval_plus");return Bh(P)?parseInt(P,10):2e3})();this._pollingIntervalMap.set(s,T)}}D.length>0&&hh.onBroadcastMessageReceived(D)}_handleFailure(s,n){const{ssoLog:g,utils:{safeStringify:u}}=this._core;g.warn("polling",`${this._name}._handleFailure groupID:${s} error: ${u(n)}`)}_joinedAVChatRoomCount(){const{OuterConstant:s}=this._core;let n=[];return this._joinedGroupMap.size>0&&(n=this.getJoinedGroups().filter(g=>g.type===s.GRP_AVCHATROOM)),n.length}_hasJoinedAVChatRoom(s){return this._joinedGroupMap.has(s)}getJoinedGroups(){return[...this._joinedGroupMap.values()]}updateLocalLiveGroup(s,n){this._joinedGroupMap.set(s,n),this._parentPlugin.groupDataHandler.updateLocalGroup([n])}handleLiveHistoryMessages(s,n){hh.onMessageReceived(s,n,!0)}isOverFrequencyLimit(s){if(!this._membersReqInfoMap.has(s))return this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1;let{startTime:n,requestCount:g}=this._membersReqInfoMap.get(s);const{interval:u,count:E}=(()=>{const m=uB("av_members_freq_limit");if(Bh(m)){const{interval:D,count:M}=JSON.parse(m);if(M>0&&D>0)return{interval:D,count:M}}return{interval:30,count:4}})();return Date.now()-n>1e3*u?(this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1):(g+=1,this._membersReqInfoMap.set(s,{startTime:n,requestCount:g}),g>E)}_stopPolling(s){if(this._core.ssoLog.debug("_stopPolling",`${this._name}._stopPolling groupID:${s}`),s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core;n.deleteConversation(`${g}${s}`);const u=this._pollingInstanceMap.get(s);return u?.stop(),this._parentPlugin.groupDataHandler.deleteLocalGroup(s),this._pollingInstanceMap.delete(s),this._pollingRequestInfoMap.delete(s),this._joinedGroupMap.delete(s),this._onlineMemberCountMap.delete(s),this._pollingIntervalMap.delete(s),this._pollingNoMessageCountMap.delete(s),void this._membersReqInfoMap.delete(s)}for(const n of this._pollingInstanceMap.values())n?.stop();this._pollingInstanceMap.clear(),this._pollingRequestInfoMap.clear(),this._joinedGroupMap.clear(),this._onlineMemberCountMap.clear(),this._pollingIntervalMap.clear(),this._pollingNoMessageCountMap.clear(),this._membersReqInfoMap.clear()}_updatePollingNoMessageCount(s,n){this._pollingNoMessageCountMap.set(s,n)}_getPollingNoMessageCount(s){return this._pollingNoMessageCountMap.get(s)||0}_reportLongPollingCount(){const s=this._joinedGroupMap.size;if(s>1){const{common:n,OuterConstant:g,ssoLog:u}=this._core,E=n.isUnlimitedAVChatRoom()?1:0,m=[],D=[];Array.from(this._joinedGroupMap.values()).forEach(({groupID:M,type:T})=>{T===g.GRP_LIVE?D.push(M):m.push(M)}),u.info("longPollingCount",String(s),{moreMessage:`av:${m.join(",")} live:${D.join(",")} code: ${E}`,eventType:29})}}reset(s){this._stopPolling(s),this._startBroadcastSequence=1,hh.reset()}},Zv=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}joinGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.joinGroup(s),{data:{status:u,group:{type:E}}}=g;return E===n.GRP_AVCHATROOM?u===n.JOIN_STATUS_ALREADY_IN_GROUP?g:Pg.handleJoinGroupResult(g.data):g})}},FT=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}quitGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.quitGroup(s),{data:{type:u}}=g;return u===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},Xv=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}dismissGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.dismissGroup(s),{data:{type:u}}=g;return u===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},Fm=new class{constructor(){this._name="GetAVChatRoomMemberList"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},helper:g,OuterConstant:u}=this._core,{groupID:E}=s,m=n.getGroup(E);if(m?.type===u.GRP_AVCHATROOM&&g.checkBusinessCapabilityBits(jv)){if(Pg.isOverFrequencyLimit(E))throw{code:2996,message:`Over frequency limit: get_members-${E}`};return this._getGroupMemberList(s)}return this._parentPlugin.groupMember.getGroupMemberList(s)})}_getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="_getGroupMemberList",{helper:g}=this._core;try{const u=yield function(M,T){return pA(this,void 0,void 0,function*(){const{groupID:P,offset:W=0}=M,iA={GroupId:P,Timestamp:W};return T.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.get_members",data:iA})})}(s,this._core),{MemberList:E=[],NextTimestamp:m=0}=u||{},D=this._handleMemberList(E);return console.log(`${this._name}.${n} ok, groupID:${s.groupID} count:${D.length} nextOffset:${m}`),{code:0,data:{memberList:D,offset:m}}}catch(u){const E=new g.ChatError({functionName:n,code:u?.errorCode,message:u?.errorInfo});throw console.error(`${this._name}.${n} fail:`,E),E}})}_handleMemberList(s){return s.map(n=>{const{Member_Account:g,NickName:u="",Avatar:E="",Remark:m="",JoinTime:D=0,Marks:M=[]}=n;return{userID:g,nick:u,avatar:E,remark:m,joinTime:D,marks:M,isOnline:!0}})}},Om=new class{constructor(){this._name="DeleteAVChatRoomMember"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupMember",{appStore:{groupStore:g},utils:{isUndefined:u},helper:E,OuterConstant:m}=this._core,{groupID:D}=s,M=g.getGroup(D);if(u(M))throw new E.ChatError({functionName:n,code:DD});if(M.type===m.GRP_AVCHATROOM){if(E.checkBusinessCapabilityBits(bT))return this._deleteGroupMember(s);throw new E.ChatError({functionName:n,code:OQ})}return this._parentPlugin.groupMember.deleteGroupMember(s)})}_deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="_deleteGroupMember",{appStore:{groupStore:g},helper:u,ssoLog:E}=this._core,{groupID:m,duration:D=0,userIDList:M}=s;if(D===0)throw new u.ChatError({functionName:n,code:kT});try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,duration:EA,reason:RA}=T,kA={GroupId:W,Members_Account:iA,Duration:EA,Description:RA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.ban_group_member",data:kA})})}(s,this._core),E.debug(n,`${this._name}.${n} ok, groupID:${m}`),{code:0,data:{group:g.getGroup(m),userIDList:M}}}catch(T){throw new u.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},wd=new class{constructor(){this._name="MarkAVChatRoomMember"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"markGroupMemberList",context:this})}markGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="markGroupMemberList",{groupID:g,markType:u,enableMark:E,userIDList:m=[]}=s,D=this._generateRequestData(s);try{const M=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{groupID:RA,operationType:kA,memberList:xA}=iA,LA={GroupId:RA,CommandType:kA,MemberList:xA};return EA.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.modify_user_info",data:LA})})}(D,this._core),{MemberList:T=[]}=M||{},{successUserIDList:P,failureUserIDList:W}=this._handleResult(T,m);return{code:0,data:{successUserIDList:P,failureUserIDList:W},successLog:{message:`${this._name}.${n} ok, groupID:${g} markType:${u} enableMark:${E} success:${P.length} fail:${W.length}`}}}catch(M){throw new this._core.helper.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_generateRequestData(s){const{groupID:n,markType:g,enableMark:u,userIDList:E=[]}=s,m=u===!0?1:2,D=[...E];return D.length>500&&console.warn(`${this._name}._generateRequestData, the length of userIDList cannot exceed 500`),{groupID:n,operationType:m,memberList:D.map(M=>({Member_Account:M,Marks:[g]}))}}_handleResult(s,n){const g=[],u=[];return s.length===n.length?(g.push(...n),{successUserIDList:g,failureUserIDList:u}):(n.forEach(E=>{s.find(m=>m.Member_Account===E)?g.push(E):u.push(E)}),{successUserIDList:g,failureUserIDList:u})}},$v=new class{init(s,n){s.ssoLog.debug("AVChatRoomAction.init"),Zv.init(s,n),FT.init(s,n),Xv.init(s,n),Fm.init(s,n),zv.init(s,n),Om.init(s,n),wd.init(s)}},AR=new class{constructor(){this._name="LiveHandler"}init(s){this._core=s;const{helper:n,ssoLog:g}=s;n.registerExperimentalAPI("startMessageLongPolling",this),n.registerExperimentalAPI("stopMessageLongPolling",this),g.debug("LiveHandler.init")}startMessageLongPolling(s){const{common:n,utils:{isEmpty:g},OuterConstant:u,ssoLog:E}=this._core,{groupID:m,longPollingKey:D,longPollingSequence:M=1}=s;if(g(D))return E.warn("startMessageLongPolling",`${this._name}.startMessageLongPolling longPollingKey is empty.`),Promise.resolve({});Pg.hasPollingInstance(m)&&this.stopMessageLongPolling({groupID:m});const T=Pg.getJoinedLiveList(),P=n.isUnlimitedAVChatRoom();!P&&T.length>0&&this.stopMessageLongPolling({groupID:T[0].groupID}),E.debug("startMessageLongPolling",`${this._name}.startMessageLongPolling isUnlimited:${P} groupID:${m} longPollingKey:${D} longPollingSequence:${M}`);const W={groupID:m,type:u.GRP_LIVE};return Pg.updateLocalLiveGroup(m,W),this._getLiveHistoryMessages({groupID:m,longPollingKey:D,startSequence:M}),Pg.startMessageLongPolling({group:W,longPollingKey:D,startSequence:M})}stopMessageLongPolling(s){const{groupID:n}=s;return Pg.reset(n),this._core.ssoLog.debug("stopMessageLongPolling",`${this._name}.stopMessageLongPolling ok, groupID:${n}`),Promise.resolve({groupID:n})}_getLiveHistoryMessages(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{groupID:g}=s;try{const u=yield function(m,D){return pA(this,void 0,void 0,function*(){const{groupID:M,longPollingKey:T,startSequence:P}=m,W={GroupId:M,LongPollingKey:T,PullPreSeq:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_huge_group_msg",data:W})})}(s,this._core),{RspMsgList:E=[]}=u||{};n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages ok, groupID:${g} count:${E.length}`),E.length>0&&Pg.handleLiveHistoryMessages(g,E)}catch(u){n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages failed, groupID:${g} info:${u.message}`)}})}},Pm=new class{constructor(){this.name="AVChatRoom"}install(s,n){this._core=s,IB.init(s),Pg.init(s,n),$v.init(s,n),AR.init(s);const{notificationCenter:g,InnerEvent:u}=s,{InnerEventSubType:E}=g;g.subscribeInnerEvent(u.MESSAGE_PUSH,E.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),g.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.subscribeInnerEvent(u.DESTROY,this._dispose,this)}_onAVChatRoomSystemNotification(s){Pg.onAVChatRoomSystemNotification(s)}_reset(){Pg.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Ag=new class{init(s){this.core=s}},xm="message",dB="user",CB={OR:"or",AND:"and"},MI=20,OT=20,eR=20,Qh={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!s||!!(Array.isArray(s)&&s.length<=5)||"keywordList should be an array and length <= 5"},Ym={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>!s||!![CB.OR,CB.AND].includes(s)||"keywordListMatchType should be OR or AND"},DC={required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s=="number"&&s>=1&&s<=100||"count must be a number between 1 and 100"},YQ={required:!1,rules:["string"],allowEmpty:!0},tR={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core;if(!Array.isArray(s))return"groupTypeList should be an array";const g=[n.GRP_PUBLIC,n.GRP_COMMUNITY,n.GRP_WORK,n.GRP_MEETING];let u=!1;for(let E=0;E{const{OuterConstant:n}=Ag.core,g=[n.MSG_TEXT,n.MSG_IMAGE,n.MSG_AUDIO,n.MSG_FILE,n.MSG_VIDEO,n.MSG_LOCATION,n.MSG_CUSTOM,n.MSG_MERGER];let u=!1;for(let E=0;E{const{OuterConstant:n}=Ag.core;return!(!s?.startsWith(n.CONV_C2C)&&!s?.startsWith(n.CONV_GROUP)&&s!==n.CONV_SYSTEM)||"conversationID is invalid"}},Vm=s=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:n=>typeof n=="number"&&n>=0||`${s} should be a number >= 0';`}),MD={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core;return!![n.GENDER_FEMALE,n.GENDER_MALE].includes(s)||"gender is invalid"}},Jm={searchCloudMessages:{keywordList:Qh,keywordListMatchType:Ym,cursor:YQ,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!!(Array.isArray(s)&&s.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:iR,conversationID:oR,timePosition:Vm("timePosition"),timePeriod:Vm("timePeriod")},searchCloudUsers:{keywordList:Qh,keywordListMatchType:Ym,cursor:YQ,count:DC,miniBirthday:Vm("miniBirthday"),maxBirthday:Vm("maxBirthday"),gender:MD},searchCloudGroupMembers:{keywordList:Qh,keywordListMatchType:Ym,cursor:YQ,count:DC,groupTypeList:tR,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:Qh,keywordListMatchType:Ym,cursor:YQ,count:DC,groupTypeList:tR}},vD={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var RD=new class{constructor(){this.name="CloudSearch"}install(s){this._core=s,Ag.init(s),s.helper.registerApi({apiName:"searchCloudMessages",context:this}),s.helper.registerApi({apiName:"searchCloudUsers",context:this}),s.helper.registerApi({apiName:"searchCloudGroupMembers",context:this}),s.helper.registerApi({apiName:"searchCloudGroups",context:this}),s.helper.registerValidateConfig({auth:vD,params:Jm})}searchCloudMessages(s){return pA(this,void 0,void 0,function*(){try{const{OuterConstant:n,helper:g}=this._core,{conversationID:u,timePeriod:E,timePosition:m}=s,D=Do(s,["conversationID","timePeriod","timePosition"]),M=Object.assign({count:100},D);u&&(u.startsWith(n.CONV_C2C)?M.account=u.replace(n.CONV_C2C,""):u.startsWith(n.CONV_GROUP)&&(M.groupID=u.replace(n.CONV_GROUP,""))),this._setTimeRangeParams(M,{timePeriod:E,timePosition:m});const T=yield function(LA){return pA(this,void 0,void 0,function*(){const{count:SA,keywordList:OA,keywordListMatchType:JA,senderUserIDList:ne,messageTypeList:se,endTime:_i,startTime:Ti,cursor:Lt,account:Ni,groupID:cs}=LA,Se={Count:SA,KeywordList:OA,MatchType:JA,SendUserIDList:ne,MsgTypeList:se,EndTime:_i,StartTime:Ti,Cursor:Lt,PeerAccount:Ni,GroupID:cs};return Ag.core.common.buildAndSendPacket({servcmd:"message_search.query",data:Se})})}(M);if(!T)return{code:0,data:{}};const{ErrorCode:P,ErrorInfo:W,TotalCount:iA,Cursor:EA="",ConversationMsgs:RA=[]}=T;if(P!==0)throw{errorCode:P,errorInfo:W};const kA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} res: totalCount:${iA}`;return{code:0,data:{searchResultList:RA.map(LA=>{const{MsgList:SA,Count:OA,GroupID:JA,UserID:ne}=LA,se=JA?`${n.CONV_GROUP}${JA}`:`${n.CONV_C2C}${ne}`;if(this._isSearchingAllConversations(s)&&OA>1)return{conversationID:se,messageCount:OA,messageList:[]};const _i=SA.map(Ti=>g.isEmpty(JA)?function(Lt,Ni){const cs=Ni.OuterConstant.CONV_C2C,Se=Ni.message.messageHelper.parseServerPushMessage(Lt),mt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Se),{conversationType:cs,flow:"in"}));return mt.setElement(Se.elements),mt}(Ti,this._core):function(Lt,Ni){const cs=Ni.OuterConstant.CONV_GROUP,Se=Ni.message.messageHelper.parseServerGroupMessage(Lt),mt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Se),{conversationType:cs,flow:"in"}));return mt.setElement(Se.elements),mt}(Ti,this._core));return{conversationID:se,messageCount:OA,messageList:_i}}),cursor:EA,totalCount:iA},successLog:{message:kA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:xm,functionName:"searchCloudMessages"})}})}searchCloudUsers(s){return pA(this,void 0,void 0,function*(){var n;try{const{keywordListMatchType:g,count:u=OT}=s,E=Do(s,["keywordListMatchType","count"]),m=Object.assign({count:u,keywordListMatchType:g===CB.AND?1:0},E);this._setBirthdayRangeParams(m,s);const D=yield function(kA){return pA(this,void 0,void 0,function*(){const{count:xA,keywordList:LA,keywordListMatchType:SA,miniBirthday:OA,maxBirthday:JA,cursor:ne,gender:se}=kA,_i={Count:xA,Keywords:LA,KeywordMatchType:SA,Cursor:ne,UserBirthStart:OA,UserBirthEnd:JA,Gender:se};return Ag.core.common.buildAndSendPacket({servcmd:"user_search.query",data:_i})})}(m);if(!D)return{error:0,data:{}};const{ErrorCode:M,ErrorInfo:T,TotalCount:P,Cursor:W="",Users:iA=[]}=D;if(M!==0)throw{errorCode:M,errorInfo:T};const EA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${P}`,RA=[];for(let kA=0,xA=iA.length;kA({tag:ne.Tag,value:ne.StrValue})),JA=(n=this._core.user.userProfile)===null||n===void 0?void 0:n.createProfile(LA,OA);RA.push(JA)}return{code:0,data:{searchResultList:RA,cursor:W,totalCount:P},successLog:{message:EA}}}catch(g){const{errorCode:u,errorInfo:E}=g||{};this._handleError({errorCode:u,errorInfo:E,searchType:dB,functionName:"searchCloudUsers"})}})}searchCloudGroupMembers(s){return pA(this,void 0,void 0,function*(){try{const{count:n=eR,keywordListMatchType:g}=s,u=Do(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===CB.AND?1:0},u),m=yield function(RA){return pA(this,void 0,void 0,function*(){const{count:kA,keywordList:xA,keywordListMatchType:LA,groupTypeList:SA,cursor:OA,groupIDList:JA}=RA,ne={Count:kA,Keywords:xA,KeywordMatchType:LA,Cursor:OA,GroupType:SA,GroupIdList:JA};return Ag.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:ne})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,GroupMembers:T=[],Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`,EA=new Map;return T.forEach(RA=>{const{GroupID:kA,GroupName:xA,GroupType:LA,GroupFaceUrl:SA,GroupMemberUserName:OA,GroupMemberUserID:JA,GroupMemberNameCard:ne,GroupMemberAvatar:se=""}=RA,_i={groupID:kA,name:xA,type:LA,avatar:SA},Ti={userID:JA,nick:OA,nameCard:ne,avatar:se};if(EA.has(kA)){const Lt=EA.get(kA);Lt.memberList.push(Ti),EA.set(kA,Lt)}else EA.set(kA,{groupInfo:_i,memberList:[Ti]})}),{code:0,data:{searchResultList:[...EA.values()],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:dB,functionName:"searchCloudGroupMembers"})}})}searchCloudGroups(s){return pA(this,void 0,void 0,function*(){try{const{count:n=MI,keywordListMatchType:g}=s,u=Do(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===CB.AND?1:0},u),m=yield function(EA){return pA(this,void 0,void 0,function*(){const{count:RA,keywordList:kA,keywordListMatchType:xA,groupTypeList:LA,cursor:SA}=EA,OA={Count:RA,Keywords:kA,KeywordMatchType:xA,Cursor:SA,GroupType:LA};return Ag.core.common.buildAndSendPacket({servcmd:"group_search.query",data:OA})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,Groups:T,Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`;return{code:0,data:{searchResultList:T?.map(EA=>function(RA){const{GroupFaceUrl:kA,GroupID:xA,GroupIntroduction:LA,GroupMemberNum:SA,GroupName:OA,GroupOwnerTinyID:JA,GroupOwnerUserID:ne,GroupOwnerUserName:se,GroupType:_i,GroupAddOption:Ti,GroupInviteOption:Lt}=RA;return{avatar:kA,groupID:xA,introduction:LA,memberCount:SA,name:OA,ownerTinyID:JA,ownerID:ne,ownerNick:se,type:_i,joinOption:Ti,inviteOption:Lt}}(EA))||[],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:dB,functionName:"searchCloudGroups"})}})}_setTimeRangeParams(s,{timePeriod:n,timePosition:g}){n&&n>0&&(s.startTime=g&&g>0?g-n:this._core.helper.timeManager.getServerTimeSeconds()-n),s.startTime&&s.startTime<0&&(s.startTime=void 0),g&&g>0&&(s.endTime=g)}_handleError({errorCode:s,errorMessage:n,searchType:g}){const{helper:u}=this._core;let E=s;throw s===60020?E="SearchUnable":g!==xm&&s===27003?E="SearchParamsError":g!==xm&&s===60018&&(E="SearchOverLimit"),new u.ChatError({code:E,message:n})}_isSearchingAllConversations(s){return this._core.helper.isEmpty(s.conversationID)}_setBirthdayRangeParams(s,n){const{miniBirthday:g,maxBirthday:u}=n;g!==void 0&&(s.miniBirthday=g,u===void 0&&(s.maxBirthday=4294967295)),u!==void 0&&(s.maxBirthday=u)}};function ph(s,n){return Math.round(Number(s)*Math.pow(10,n))/Math.pow(10,n)}const sR="qualityStat",wD="im-ssolog-quality-stat";var _D;(function(s){s[s.ONLINE=8]="ONLINE"})(_D||(_D={}));const Hm="networkRTT",mh="messageE2EDelay",hB="sendMessageC2C",fh="sendMessageGroup",yh="sendMessageGroupAV",BB="sendMessageRichMedia",QB="cosUpload",SC="messageReceivedGroup",VQ="messageReceivedGroupAVPush",JQ="messageReceivedGroupAVPull",PT={[Hm]:2,[mh]:3,[hB]:4,[fh]:5,[yh]:6,[BB]:7,[SC]:8,[VQ]:9,[JQ]:10,[QB]:11},nR=[hB,fh,yh,BB,QB],Dh=[SC,VQ,JQ],pB=[Hm,mh,hB,fh,yh,BB,QB,SC,VQ,JQ],TD={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MSG_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},qm="quality_stat";var HQ=new class{constructor(){this._messageStatsMap=new Map,this._userSideErrorCodes=new Set(Object.values(TD))}init(s){this._core=s,Object.values(nR).forEach(n=>{this._messageStatsMap.set(n,{totalCount:0,successCount:0,failedCountOfUserSide:0,costSum:0,costCount:0,fileSizeSum:0})})}dispatchSendStats(s){const{name:n,message:g,error:u,startTs:E}=s,{SEND_MESSAGE_STAT:m}=this._core.constants;switch(n){case m.TOTAL_COUNT:this._handleTotalCount(g);break;case m.SUCCESS_COUNT:this._handleSuccessCount(g);break;case m.FAILED_COUNT:this._handleFailedCount(g,u);break;case m.SEND_COST:this._handleSendCost(g,E)}}getStatResult(s){const n=this._messageStatsMap.get(s);if(!n||n.totalCount===0)return null;const{totalCount:g,successCount:u,failedCountOfUserSide:E}=n,m=ph(u/g*100,2),D=u+E,M=ph(D/g*100,2),T=this._calcAverageValue(n,s);return this._resetStat(s),{total_count:g,success_count_business:u,percent_business:m,success_count_platform:D,percent_platform:M,average_value:T}}_handleTotalCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.totalCount++}_handleSuccessCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.successCount++}_handleFailedCount(s,n){var g;const u=(g=n?.code)!==null&&g!==void 0?g:n?.errorCode;if(this._isUserSideError(u)){const E=this._getSendMessageSpecifiedKey(s),m=E&&this._messageStatsMap.get(E);m&&m.failedCountOfUserSide++}}_handleSendCost(s,n){const g=this._getSendMessageSpecifiedKey(s),u=g&&this._messageStatsMap.get(g);u&&(u.costSum+=Date.now()-n,u.costCount++)}_isUserSideError(s){return this._userSideErrorCodes.has(s)||s>=120001&&s<=13e4||s>=10100&&s<=10200}_getSendMessageSpecifiedKey(s){const{MSG_IMAGE:n,MSG_AUDIO:g,MSG_VIDEO:u,MSG_FILE:E,CONV_C2C:m,CONV_GROUP:D,GRP_AVCHATROOM:M}=this._core.OuterConstant;if([n,g,u,E].includes(s.type))return BB;if(s.conversationType===m)return hB;if(s.conversationType===D){const{groupStore:T}=this._core.appStore,P=T.getGroup(s.to);if(!P)return;const{type:W}=P;return W===M?yh:fh}}_calcAverageValue(s,n){return s.costCount===0?0:Math.round(n===QB?1e3*s.fileSizeSum/s.costSum:s.costSum/s.costCount)}_resetStat(s){const n=this._messageStatsMap.get(s);n&&(n.totalCount=0,n.successCount=0,n.failedCountOfUserSide=0,n.costSum=0,n.costCount=0,n.fileSizeSum=0)}},qQ=new class{constructor(){this._lastCycleStats=new Map,this._currentCycleStats=new Map}init(s){this._core=s;const{OuterEvent:n,notificationCenter:g}=s;this._initStatsMap(),g.subscribeOuterEvent(n.MESSAGE_RECEIVED,this._onMessageReceived,this)}addMessageSequence(s){const n=this._getReceivedMessageSpecifiedKey(s),{utils:{isUndefined:g},OuterConstant:{CONV_GROUP:u},ssoLog:E}=this._core;if(g(n)||!this._currentCycleStats.has(n))return void E.debug("addMessageSequence",`${sR}.addMessageSequence invalid key:${n}`);const{conversationID:m,sequence:D}=s,M=m.replace(u,""),T=this._lastCycleStats.get(n);if(T.size===0||!T.has(M))return void this._addToCurrentCycle(n,M,D);const P=T.get(M);D>P.minSeq&&D{const{sortedSequences:m,minSeq:D,maxSeq:M}=E;m.length>0&&(u+=m.length,g+=M-D+1)}),g===0?null:(this._transferCycleDataOptimized(s),{total_count:g,success_count_business:u,percent_business:ph(u/g*100,2)})}reset(){this._lastCycleStats.clear(),this._currentCycleStats.clear()}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_initStatsMap(){Object.values(Dh).forEach(s=>{this._lastCycleStats.set(s,new Map),this._currentCycleStats.set(s,new Map)})}_onMessageReceived(s){const{data:n=[]}=s;n.forEach(g=>{this.addMessageSequence(g)})}_transferCycleDataOptimized(s){const n=this._currentCycleStats.get(s);if(!n)return;const g=new Map;n.forEach((u,E)=>{const m=u.dirty?[...u.sortedSequences].sort((D,M)=>D-M):u.sortedSequences;g.set(E,{sortedSequences:m,minSeq:u.minSeq,maxSeq:u.maxSeq,dirty:!1})}),this._lastCycleStats.set(s,g),this._currentCycleStats.set(s,new Map)}_getReceivedMessageSpecifiedKey(s){const{OuterConstant:{CONV_GROUP:n,GRP_AVCHATROOM:g}}=this._core;if(s.conversationType===n&&s?._onlineOnlyFlag!==!0){const{groupStore:u}=this._core.appStore,E=u.getGroup(s.to);if(!E)return null;const{type:m}=E;return m===g?JQ:SC}}_insertToLastCycle(s,n){n.dirty&&(n.sortedSequences.sort((u,E)=>u-E),n.dirty=!1);const g=this._findInsertPos(n.sortedSequences,s);n.sortedSequences.splice(g,0,s),n.minSeq=Math.min(n.minSeq,s),n.maxSeq=Math.max(n.maxSeq,s)}_findInsertPos(s,n){let g=0,u=s.length-1;for(;g<=u;){const E=Math.floor((g+u)/2);if(s[E]===n)return E;s[E]0&&(this._totalDelay+=g,this._totalCount++,g<=1?this._countLessThan1s++:g<=3&&this._countLessThan3s++)}getStatResult(){if(this._totalCount===0)return null;const s={total_count:this._totalCount,success_count_business:this._countLessThan1s,success_count_platform:this._countLessThan3s,percent_business:this._calculatePercentage(this._countLessThan1s,this._totalCount),percent_platform:this._calculatePercentage(this._countLessThan3s,this._totalCount),average_value:this._calculateAverageDelay(this._totalCount)};return this.reset(),s}reset(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_onMessageReceived(s){const{data:n=[]}=s,{OuterConstant:{MSG_GRP_TIP:g,MSG_GRP_SYS_NOTICE:u}}=this._core,E=[g,u];n.forEach(m=>{!E.includes(m.type)&&m.clientTime>0&&this.addMessageDelay(m.clientTime)})}_calculateAverageDelay(s){return s===0?0:ph(this._totalDelay/s,1)}_calculatePercentage(s,n){return ph(s/n*100,2)}},rR=new class{init(s){this.core=s}},xT=new class{constructor(){this.name="MessageQualityStat",this._reportIndex=0,this._wholePeriod=!1,this._pendingReports=[],this._failedLogsCache=new Map}install(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{QUALITY_STAT:u,LOGOUT:E,DESTROY:m},constants:{WORKFLOW_NAME:D,WORKFLOW_STEP:M}}=s;rR.init(s),HQ.init(s),qQ.init(s),KQ.init(s),n.registerWorkflowStep(D.SYNC_SERVER_INFO_AFTER_LOGIN,M.QUALITY_REPORT,this.handleLoginSuccess,this),g.subscribeInnerEvent(u,this._handleQualityStat,this),g.subscribeInnerEvent(E,this._reset,this),g.subscribeInnerEvent(m,this._dispose,this)}handleLoginSuccess(){const{store:s,helper:n,utils:{isUndefined:g}}=this._core,u=s.get("cloudConfig")||{},{q_rpt_interval:E}=u,m=g(E)?12e4:Number(E);n.taskScheduler.addTask({id:qm,intervalMs:m,callback:this.report,context:this})}report(){this._wholePeriod=!0;const s=[...pB.map(n=>{const g=this._buildQualityReportItem(n);return g?Object.assign(Object.assign({},g),{report_index:this._reportIndex,whole_period:this._wholePeriod}):null}).filter(Boolean),...this._pendingReports];this._pendingReports=[],this._needSkipReport()||this._uploadQualityReports(s)}_handleQualityStat(s){const{constants:{QUALITY_METRICS:n}}=this._core,{label:g,data:u}=s;g===n.MESSAGE_SEND_SUCCESS_RATE&&HQ.dispatchSendStats(u)}_needSkipReport(){return this._isSDKAppIDInBlacklist()&&!this._isTinyIDInWhitelist()}_isSDKAppIDInBlacklist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},u=s.get("instance")||{},{sdkAppId:E}=u,{q_rpt_sdkappid_bl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").map(D=>Number(D)).includes(E)}_isTinyIDInWhitelist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},u=s.get("login")||{},E=Number(u.tinyID),{q_rpt_tinyid_wl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").includes(E)}_buildQualityReportItem(s){const n=this._getStatResultByKey(s);if(n===null)return null;const g={quality_type:PT[s],timestamp:Date.now(),network_type:_D.ONLINE,extension:""};return Object.assign(Object.assign({},g),n)}_getStatResultByKey(s){switch(s){case mh:return KQ.getStatResult();case hB:case fh:case yh:case BB:case QB:return HQ.getStatResult(s);case SC:case VQ:case JQ:return qQ.getStatResult(s);default:return null}}_uploadQualityReports(s){return pA(this,void 0,void 0,function*(){try{const n={header:this._core.common.getCommonHead(),quality:s};yield function(g){const{common:u,channel:E}=rR.core,m="imopenstat.tim_web_report_v2",D=u.generateSSOLogProtocolData({servcmd:m,data:g}),M=`${D.head.seq}${m}`;return E.sendPacket(D,{requestId:M})}(n),this._reportIndex++,this._wholePeriod=!1}catch(n){console.warn("doReport failed. error:",n),this._pendingReports=this._pendingReports.concat(s),this._cacheFailedLogs()}})}_cacheFailedLogs(){const s=this._pendingReports,n=`${sR}._cacheFailedLogs`;let g=[...this._failedLogsCache.get(wD)||[],...s];g.length>10&&(g=g.slice(g.length-10),console.log(`${n} logs overflow, keeping last 10 items`)),this._failedLogsCache.set(wD,g),console.log(`${n} count: ${g.length}`),this._pendingReports=[]}_reset(){const{helper:s}=this._core;s.taskScheduler.removeTask(qm)}_dispose(){const{notificationCenter:s,InnerEvent:{QUALITY_STAT:n,LOGOUT:g,DESTROY:u}}=this._core;s.unSubscribeInnerEvent(n,this._handleQualityStat,this),s.unSubscribeInnerEvent(g,this._reset,this),s.unSubscribeInnerEvent(u,this._dispose,this),this._reset(),KQ.dispose(),qQ.dispose()}};const cl=new class{init(s){this.core=s}};function aR(s){return pA(this,void 0,void 0,function*(){var n;const{message:g,user:u,appStore:E,constants:{OuterConstant:m}}=cl.core,D=E.conversationStore.getConversationMap();if(D.has(s)){const T=(n=D.get(s))===null||n===void 0?void 0:n.userProfile;if(T&&s.startsWith(m.CONV_C2C)){const{avatar:P,nick:W}=T;cl.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:P,latestNick:W,isSentByMe:!1})}}const{data:M}=(yield u.userProfile.getMyProfile())||{};if(M){const{avatar:T,nick:P}=M;g.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:T,latestNick:P,isSentByMe:!0})}})}function gR(s){return pA(this,void 0,void 0,function*(){const n=s.map(g=>g.revoker);try{const g=yield function(u){return pA(this,void 0,void 0,function*(){var E,m;const D=yield(E=cl.core.user.userProfile)===null||E===void 0?void 0:E.getUserProfile({userIDList:u});return D?.data?(m=D.data)===null||m===void 0?void 0:m.reduce((M,{userID:T,nick:P,avatar:W})=>(M[T]={nick:P||"",avatar:W||""},M),{}):null})}(n);g&&s.forEach(u=>{const{revoker:E}=u;g[E]&&(u.revokerInfo.nick=g[E].nick||"",u.revokerInfo.avatar=g[E].avatar||"",u.revokerInfo.userID=E)})}catch(g){console.debug(g)}})}const ND=1,cR=2,Sh=20,jQ=2500,lR=1,Mh=300;function WQ(s){return pA(this,void 0,void 0,function*(){var n,g;const{appStore:u,utils:{isEmpty:E},common:{getCurrentUserID:m},notificationCenter:D,OuterEvent:M,OuterConstant:{CONV_C2C:T}}=cl.core,{messageList:P,conversationID:W}=s,iA=u.conversationStore.getConversationMap();let EA=(n=iA.get(W))===null||n===void 0?void 0:n.peerReadTime;if(!EA){const kA=W.replace(T,""),xA=yield function(LA){return pA(this,void 0,void 0,function*(){const SA={To_Account:LA};return cl.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:SA})})}([kA]);if(xA){const{ReadTime:LA}=xA;EA=LA?.[0],iA.has(W)&&(iA.get(W).peerReadTime=EA)}}if(iA.has(W)){const kA=(g=iA.get(W))===null||g===void 0?void 0:g.lastMessage;E(kA)||kA.fromAccount===m()&&kA.lastTime<=EA&&!kA.isPeerRead&&(kA.isPeerRead=!0,u.conversationStore.updateConversation(W,{lastMessage:kA}))}const RA=[];P.forEach(kA=>{kA.time<=EA&&!kA.isPeerRead&&kA.flow==="out"&&(kA.isPeerRead=!0,RA.push(kA))}),RA.length>0&&D.emitOuterEvent(M.MESSAGE_READ_BY_PEER,{name:M.MESSAGE_READ_BY_PEER,data:RA})})}var IR=new class{init(s){this._core=s,s.helper.registerApi({apiName:"getMessageList",context:this}),s.helper.registerApi({apiName:"getMessageListHopping",context:this}),s.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(s){return pA(this,void 0,void 0,function*(){try{const{message:n,OuterConstant:{Direction:g,CONV_C2C:u,CONV_GROUP:E},InnerEvent:{HISTORY_MESSAGE_FETCHED:m},notificationCenter:D}=this._core,{conversationID:M,nextReqMessageID:T}=s,P=Sh;if(M==="@TIM#SYSTEM")return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const W=this._getAvailableLocalMessagesCount({conversationID:M,nextReqMessageID:T});if(this._needFetchHistoryMessageList({conversationID:M,availableLocalMessagesCount:W,targetCount:P})){let iA=null;if(M.startsWith(E)?iA=yield n.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:Number(T),count:P,direction:g.FORWARD,shouldMarkCompleted:!0}):M.startsWith(u)&&(iA=yield n.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,messageID:T,count:P,direction:g.FORWARD,shouldMarkCompleted:!0})),iA){const{nextReqMessageIDFromServer:EA,hasNoMoreHistoryMessage:RA,messageList:kA}=iA,xA=n.messageDataHandler.prependLocalMessageList({messageList:kA,conversationID:M});(function(ne){const{appStore:se,message:_i,OuterConstant:Ti}=cl.core,Lt=se.conversationStore.getConversation(ne),Ni=_i.messageDataHandler.getLocalMessageList(ne);if(!Lt||Ni.length===0||ne===Ti.CONV_SYSTEM)return;const cs=[];for(let mt=0;mtUA.isRevoked).length;Se=cs.length-Lt.unreadCount-mt}else Se=cs.length-Lt.unreadCount;for(let mt=0;mtne.isRevoked);yield gR(SA),D.emitInnerEvent(m,xA);const OA={nextReqMessageID:RA?"":String(EA),messageList:LA,isCompleted:RA},JA=LA.map(ne=>ne.sequence);return{code:0,data:OA,successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W} sequenceList: ${JSON.stringify(JA)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:M,nextReqMessageID:T,count:P}),successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W}}`}}}catch(n){const{code:g,message:u}=n||{};throw new this._core.helper.ChatError({code:g,message:u,moreMessage:`options: ${this._core.utils.safeStringify(s)}`})}})}getMessageListHopping(s){return pA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:{Direction:u,CONV_C2C:E,CONV_GROUP:m},utils:{safeStringify:D}}=this._core,{conversationID:M,sequence:T,time:P,direction:W=u.FORWARD}=s,{utils:{isEmpty:iA},message:EA,notificationCenter:RA,InnerEvent:{HISTORY_MESSAGE_FETCHED:kA}}=this._core;if(![u.BACKWARD,u.FORWARD].includes(W))throw new this._core.helper.ChatError({message:"direction must be 0 or 1",moreMessage:`options: ${D(s)}`});let{count:xA=Sh}=s;xA=xA>Sh?Sh:xA;let LA=null;if(M.startsWith(m)){if(LA=yield EA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:T,count:xA,direction:W}),LA){const{nextReqMessageIDFromServer:SA,hasNoMoreHistoryMessage:OA,messageList:JA,invisibleSequenceList:ne}=LA;if(this._core.message.messageDataHandler.storeSparseMessageList(JA),RA.emitInnerEvent(kA,JA),W===u.FORWARD){const se=OA&&SA<1;return{code:0,data:{messageList:JA,isCompleted:se,nextMessageSeq:se?"":SA}}}if(W===u.BACKWARD){if(iA(JA)&&iA(ne))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const se=((n=JA?.[JA.length-1])===null||n===void 0?void 0:n.sequence)||0,_i=((g=ne?.[ne.length-1])===null||g===void 0?void 0:g.sequence)||0;return{code:0,data:{messageList:JA.filter(Ti=>Ti.sequence>=T),isCompleted:!OA,nextMessageSeq:OA?Math.max(se,_i)+1:""}}}return{code:0,data:LA}}}else if(M.startsWith(E)&&(LA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,count:xA+1,time:P,direction:W}),LA)){const{messageList:SA,lastMessageTime:OA,hasNoMoreHistoryMessage:JA}=LA;return RA.emitInnerEvent(kA,SA),JA||(W===u.FORWARD?SA.shift():SA.pop()),EA.messageDataHandler.storeSparseMessageList(SA),yield WQ({messageList:SA,conversationID:M}),{code:0,data:{messageList:SA,isCompleted:JA,nextMessageTime:JA?"":OA}}}})}clearHistoryMessage(s){return pA(this,void 0,void 0,function*(){var n;const{appStore:g,common:{ChatError:u,getCurrentUserID:E},OuterConstant:{CONV_C2C:m,CONV_GROUP:D},apiMap:M,message:T}=this._core,P=g.conversationStore.getConversation(s);if(!P)throw new u({code:jQ});const W={fromAccount:E()},{type:iA}=P;iA===m?(W.type=ND,W.toAccount=s.replace(m,"")):iA===D&&(W.type=cR,W.toGroupID=s.replace(D,""));try{return yield(n=M?.setMessageRead)===null||n===void 0?void 0:n.call(M,{conversationID:s}),(yield function(RA){return pA(this,void 0,void 0,function*(){const{fromAccount:kA,type:xA,toAccount:LA,toGroupID:SA}=RA,OA={From_Account:kA,Type:xA,To_Account:LA,ToGroupid:SA};return cl.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:OA})})}(W))&&(T.messageDataHandler.deleteConversationMessageList(s),T.messageHistory.completedHistoryConversations.delete(s),T.messageHistory.clearHistoryMessageListFetchAnchors(s),this._updateConversationLastMessage(s)),{code:0,data:{conversationID:s},successLog:{message:`convID:${s}`}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:RA,moreMessage:`convID:${s}`})}})}_updateConversationLastMessage(s){const{appStore:n}=this._core;n.conversationStore.updateConversation(s,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:s,nextReqMessageID:n}){const{OuterConstant:{CONV_C2C:g,CONV_GROUP:u}}=this._core,E=this._core.message.messageDataHandler.getLocalMessageList(s),{length:m}=E;if(!n)return m;let D=-1;return s?.startsWith(g)?D=E.findIndex(M=>M.ID===n):s?.startsWith(u)&&(D=E.findIndex(M=>n.includes("-")?M.ID===n:String(M.sequence)===n)),D===-1?0:D}_needFetchHistoryMessageList({conversationID:s,availableLocalMessagesCount:n,targetCount:g}){const{message:u}=this._core;return nn.startsWith(E)?EA.ID===g:String(EA.sequence)===g),W=iA>u?iA-u:0,T=iA):W=M>u?M-u:0,P.messageList=D.slice(W,iA),P.isCompleted=T<=u&&m.messageHistory.completedHistoryConversations.has(n),P.isCompleted?P.nextReqMessageID="":P.nextReqMessageID=this._generateNextReqMessageID({conversationID:n,targetIndex:W}),n.startsWith(E)&&(yield aR(n),yield WQ({messageList:P.messageList,conversationID:n})),P})}_generateNextReqMessageID({conversationID:s,targetIndex:n}){const g=this._core.message.messageDataHandler.getLocalMessageList(s);return s.startsWith("C2C")?g[n].ID:String(g[n].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}},mB=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(s){this._core=s;const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:u,InnerEvent:E}}=s;n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,u.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,u.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),s.notificationCenter.subscribeInnerEvent(E.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(s){const{conversationList:n}=s?.result||{},{OuterConstant:g,utils:{isArray:u}}=this._core;if(u(n)){const E=n.filter(m=>m.type===g.CONV_GROUP&&m.groupProfile.type!==g.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(E)}}_recoverGroupHistoryMessage(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=[],u=[];return yield Promise.all(s?.map(E=>pA(this,void 0,void 0,function*(){const{groupProfile:{groupID:m}={},lastMessage:{lastSequence:D}={}}=E,M=`${n.CONV_GROUP}${m}`;let T=this._getLocalLastMessageSequence(M);this._shouldRecoverHistory({localLastMessageSequence:T,serverLastMessageSequence:D})&&(yield this._recoverGroupHistoryForConversation({conversationID:M,localLastMessageSequence:T,serverLastMessageSequence:D,groupTipList:u})),g.push(M.replace(n.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:g,groupTipList:u}})}_recoverGroupHistoryForConversation(s){return pA(this,arguments,void 0,function*({conversationID:n,localLastMessageSequence:g,serverLastMessageSequence:u,groupTipList:E}){try{const{utils:{isArray:m,isObject:D,isEmpty:M},OuterEvent:T,OuterConstant:P,notificationCenter:W,message:iA,appStore:EA,common:{getMessagePreviewText:RA,buildLastMessage:kA}}=this._core,xA=u-g,LA=Math.min(20,xA),SA={},OA=yield iA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:n,sequence:g+LA,direction:P.Direction.FORWARD,count:LA}),{nextReqMessageIDFromServer:JA,hasNoMoreHistoryMessage:ne,messageList:se,serverGroupTipList:_i}=OA;m(_i)&&E.push(..._i);const Ti=ne&&JA<0,Lt=[];if(m(se)&&(se.forEach(Ni=>{iA.messageReceiver.groupMessageReceiver.updateMessageProfile(Ni),Ni.from===P.CONV_SYSTEM&&(Ni.isSystemMessage=!1),iA.messageDataHandler.storeConversationMessage(Ni)&&!M(Ni.payload)&&(Lt.push(Ni),Ni._isExcludedFromLastMessage||(SA.lastMessage=kA(Ni)))}),Lt.length>0&&W.emitOuterEvent(T.MESSAGE_RECEIVED,{name:T.MESSAGE_RECEIVED,data:Lt})),!Ti&&se.length>0){const Ni=se[se.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:n,localLastMessageSequence:Ni,serverLastMessageSequence:u,groupTipList:E})}D(SA.lastMessage)&&(SA.lastMessage.messageForShow=RA(SA.lastMessage.type,SA.lastMessage.payload),EA.conversationStore.updateConversation(n,SA))}catch(m){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${n}`,{error:m})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:s}=this._core,n=s.messageDataHandler.getContinuousMessagesByConversation();for(const[g,u]of n){const E=Array.from(u.values());if(E?.length>0){const m=E[E.length-1];g.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(g,m.time):g.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(g,m.sequence)}}}_getLocalLastMessageSequence(s){const{message:n}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(s))return this._lastMessageSequenceMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.sequence}_shouldRecoverHistory(s){const{localLastMessageSequence:n,serverLastMessageSequence:g}=s;if(typeof n!="number"||typeof g!="number")return!1;const u=g-n;return g!==0&&n>0&&u>=lR&&u{m.type===g.CONV_C2C&&E.push(m)}),this._recoverC2CHistoryMessage(E)}}_recoverC2CHistoryMessage(s){return pA(this,void 0,void 0,function*(){yield Promise.all(s?.map(n=>pA(this,void 0,void 0,function*(){const{conversationID:g,lastMessage:{lastTime:u}={}}=n,E=this._getLocalLastMessageTime(g);this._shouldRecoverC2CHistory({localLastMessageTime:E,serverLastMessageTime:u})&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:E,serverLastMessageTime:u}))})))})}_shouldRecoverC2CHistory(s){const{localLastMessageTime:n,serverLastMessageTime:g}=s,u=g-n;return n>0&&u>=1&&u<=600}_recoverHistoryForC2CConversation(s){return pA(this,void 0,void 0,function*(){var n;const{conversationID:g,localLastMessageTime:u,serverLastMessageTime:E}=s,{utils:{isArray:m,isObject:D,isEmpty:M,safeStringify:T},OuterEvent:P,OuterConstant:W,notificationCenter:iA,message:EA,appStore:RA,common:{getMessagePreviewText:kA,buildLastMessage:xA}}=this._core;try{const LA={},SA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:g,direction:W.Direction.BACKWARD,time:u,count:20});if(M(SA))return;const{hasNoMoreHistoryMessage:OA,messageList:JA}=SA,ne=[];m(JA)&&(JA.forEach(_i=>{EA.messageDataHandler.storeConversationMessage(_i)&&!M(_i.payload)&&(ne.push(_i),_i._isExcludedFromLastMessage||(LA.lastMessage=xA(_i)))}),ne.length>0&&iA.emitOuterEvent(P.MESSAGE_RECEIVED,{name:P.MESSAGE_RECEIVED,data:ne}));const se=(n=JA[JA.length-1])===null||n===void 0?void 0:n.time;!OA&&se>E&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:se,serverLastMessageTime:E})),D(LA.lastMessage)&&(LA.lastMessage.messageForShow=kA(LA.lastMessage.type,LA.lastMessage.payload),RA.conversationStore.updateConversation(g,LA))}catch(LA){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${g} error: ${T(LA)}`)}})}_getLocalLastMessageTime(s){const{message:n}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(s))return this._lastMessageTimeMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}},fB=new class{constructor(){this.name="HistoryMessage"}install(s){this._core=s,cl.init(s),IR.init(s),mB.init(s),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this.dispose,this),mB.dispose()}_reset(){mB.reset()}},GD=new class{init(s){this.core=s}},MC=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(s){const{helper:{registerExperimentalAPI:n}}=s;this._core=s,n("reportModalView",this),n("reportTUIFeatureUsage",this),n("reportRoomEngineEvent",this)}reportModalView(s){const{ssoLog:n,utils:{safeStringify:g,isString:u}}=this._core;try{if(!u(s))throw new Error("reportModalView data is not a string");n.createSSOLogData({method:"reportModalView",message:s,eventType:30}).end(!0)}catch(E){n.debug(`reportModalView Report failed: ${g(E)}`)}}reportTUIFeatureUsage(s){const{ssoLog:n,utils:{safeStringify:g,isEmpty:u}}=this._core,{atomicStoreID:E}=s;try{u(E)||this._reportedAtomicStoreIDs.has(E)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${s.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:E}),this._reportedAtomicStoreIDs.add(E))}catch(m){n.debug(`reportTUIFeatureUsage Report failed: ${g(m)}`)}}reportRoomEngineEvent(s){const{utils:{safeStringify:n},ssoLog:g}=this._core;try{g.debug(`reportRoomEngineEvent Report: ${n(s)}`);const{eventId:u,eventCode:E,eventResult:m,eventMessage:D,moreMessage:M,extensionMessage:T}=s;g.createSSOLogData({method:T,code:u,message:D,eventType:30,costTime:E,uiPlatform:m,moreMessage:M}).end(!0)}catch(u){g.debug(`reportRoomEngineEvent Report failed: ${n(u)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}},zQ=new class{constructor(){this.name="DataReport"}install(s){this._core=s;const{notificationCenter:n,InnerEvent:{LOGOUT:g,DESTROY:u}}=s;GD.init(s),MC.init(s),n.subscribeInnerEvent(g,this._reset,this),n.subscribeInnerEvent(u,this._dispose,this)}_reset(){MC.reset()}_dispose(){const{notificationCenter:s,InnerEvent:{LOGOUT:n,DESTROY:g}}=this._core;s.unSubscribeInnerEvent(n,this._reset,this),s.unSubscribeInnerEvent(g,this._dispose,this),MC.dispose()}};let Km=nr.STANDARD,yB=[];Km=nr.STANDARD,yB=[rh,lC,IC,uC,Rc,xT,fB,zQ,LE,vi,jn,GT,Pm,RD,zI];function DB(s,n){const{operationType:g,memberInfoList:u,operatorInfo:E}=s||{};let m={};if(Rs(u)?Rs(E)||(m=E):g!==Tg.JOINED&&g!==Tg.KICKED&&g!==Tg.ADMIN_SET&&g!==Tg.ADMIN_CANCELED||(m=Object.assign({},u[0])),!Rs(m)){const{nick:D="",avatar:M=""}=m;n.nick=D,n.avatar=M}}const ZQ=s=>({lastTime:s?.time||s?.lastTime||0,lastSequence:s?.sequence||s?.lastSequence||0,fromAccount:s?.from||s?.fromAccount||"",messageForShow:zc(s?.type,s?.payload),payload:s?.payload||null,type:s?.type||"",isRevoked:s?.isRevoked||!1,cloudCustomData:s?.cloudCustomData||"",onlineOnlyFlag:s?._onlineOnlyFlag||!1,nick:s?.nick||"",nameCard:s?.nameCard||"",version:s?.version||0,isPeerRead:s?.isPeerRead||!1,revoker:s?.revoker||null});var XQ=Object.freeze({__proto__:null,ChatError:gs,WorkflowManager:ws,buildAndSendPacket:gg,buildLastMessage:ZQ,get builtInPlugins(){return yB},checkBusinessCapabilityBits:tn,deepMerge:dd,getCurrentUserID:Ar,getErrorMessage:rs,getMessagePreviewText:zc,isC2CConv:s=>l(s)&&s.slice(0,3)===ka.CONV_C2C,isCommunity:Xr,isGroupConv:s=>l(s)&&s.slice(0,5)===ka.CONV_GROUP,isInternational:Rl,isTopic:Wc,isUnlimitedAVChatRoom:function(){var s;return!!(!((s=fe.store.get("instance"))===null||s===void 0)&&s.unlimitedAVChatRoom)},liteChatInstanceMap:da,registerInterceptor:Mc,registerValidateConfig:jc,requireAuth:Id,get sdkEdition(){return Km},setGroupTipsUserInfo:DB,t:Nu,updateGroupAtInfo:(s,n)=>{const{CONV_AT_ME:g,CONV_AT_ALL:u,CONV_AT_ALL_AT_ME:E}=Lo;if(function(M,T){const{CONV_AT_ME:P,CONV_AT_ALL:W,CONV_AT_ALL_AT_ME:iA}=Lo,{groupID:EA,sequence:RA}=M;let kA=!1;return Xr({groupID:EA})&&T.forEach(xA=>{xA.messageSequence===RA&&(xA.atTypeArray.includes(P)&&M.groupAtType.includes(W)&&(xA.atTypeArray=[iA]),xA.atTypeArray.includes(W)&&M.groupAtType.includes(P)&&(xA.atTypeArray=[iA],xA.__random=M.__random,xA.__sequence=M.__sequence),kA=!0)}),kA}(s,n))return;let m=[...s.groupAtType];m.includes(g)&&m.includes(u)&&(m=[E]);const D={from:s.from,groupID:s.groupID,topicID:s.topicID,messageSequence:s.sequence,atTypeArray:m,__random:s.__random,__sequence:s.__sequence};n.push(D)},validateAndExecute:Sr,validateParameters:lI});class nu{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return nu._instance||(nu._instance=new nu),nu._instance}static setInstance(n){nu._instance=n}installBuiltInPlugin(n){n&&this._installPlugin(n,this._builtInPlugins)}installExternalPlugin(n){n&&this._installPlugin(n,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(n,g){let u=[];u=h(n)?n:[n];const E=u.findIndex(D=>D?.name==="AVChatRoom"),m=E>-1?u.splice(E,1):[];u.forEach(D=>{this._isPluginInstalled(D.name)||(D&&vg(D.install)?(g.add(D.name),vg(D.getInstalledSubPlugins)?(m?.forEach(M=>g.add(M?.name)),D.install(Cr.getInstance().exposeApiForPlugin(),m)):D.install(Cr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):vg(D)?(g.add(D.name),D(Cr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(n){return this._builtInPlugins.has(n)||this._externalPlugins.has(n)}_isLoggedIn(){var n;return((n=fe.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}}var SB=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(s){return this._conversationMap.get(s)}updateConversation(s,n,g){const{emit:u=!0,needSort:E=!1}=g||{},m=this._conversationMap.get(s);m&&!Rs(n)&&(Object.keys(n).forEach(D=>{m[D]=n[D]}),u&&fe.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED,{needSort:E}))}deleteConversation(s){this._conversationMap.has(s)&&(this._conversationMap.delete(s),fe.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED))}},$Q=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(s){return this._groupMap.get(s)}updateGroup(s,n){const g=this._groupMap.get(s);g&&!Rs(n)&&Object.keys(n).forEach(u=>{g[u]=n[u]})}},Ap=new class{constructor(){this._messagesByConversation=new Map}updateMessage(s,n,g){var u;const{operation:E,updateUnreadCount:m=!0}=g,D=Do(g,["operation","updateUnreadCount"]),M=[];for(const T of n){const P=(u=this._messagesByConversation.get(s))===null||u===void 0?void 0:u.get(T);if(!P)return!1;Object.keys(D).forEach(W=>{P[W]=D[W]}),M.push(P)}return this._emitMessageStoreOperationEvent(E,{conversationID:s,messageList:M,updateUnreadCount:m}),M}getMessagesByConversation(s){var n;return[...((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(s,n){const{conversationID:g}=n;Wc(g)?fe.notificationCenter.emitInnerEvent(vu[s],n):fe.notificationCenter.emitInnerEvent(s,n)}},rc=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(s){return this.userProfileMap.get(s)}getFriend(s){return this.friendMap.get(s)}},bD=Object.freeze({__proto__:null,conversationStore:SB,groupStore:$Q,messageStore:Ap,userStore:rc});class Cr{static getInstance(){return Cr._instance||(Cr._instance=new Cr),Cr._instance}static setInstance(n){Cr._instance=n}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:fe.notificationCenter.subscribeOuterEvent.bind(fe.notificationCenter),off:fe.notificationCenter.unSubscribeOuterEvent.bind(fe.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:nu.getInstance().installExternalPlugin.bind(nu.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(n){fe.ssoLog.debug("registerPlugin",n)}statKeyFeatureUsage(n){fe.ssoLog.debug("statTUIKeyFeatures",n)}setLogLevel(n){fe.ssoLog.debug("setLogLevel",n),fe.ssoLog.setLogLevel(n)}setApplicationID(n){fe.store.set("instance",{applicationID:n})}getApiMap(){return this._apiMap}setApiMap(n){this._apiMap=n}registerApi(n){const{common:{timeManager:g},utils:{safeStringify:u}}=fe,{apiName:E,context:m,methodName:D=E,matcher:M}=n;this._apiHandlersMap[E]||(this._apiHandlersMap[E]=[]),this._apiHandlersMap[E].push({context:m,methodName:D,matcher:M}),this._apiMap[E]&&this._apiHandlersMap[E].length!==1||(this._apiMap[E]=(...T)=>{const P=g.getServerTimeMs();let W=0;E==="login"&&(W=4),JI.includes(E)&&fe.ssoLog.debug(E,`${E} start params: ${u(T)}`),Sr(D,T);const iA=this._apiHandlersMap[E];for(const EA of iA)if(!EA.matcher||EA.matcher(T))try{const RA=EA.context[EA.methodName].bind(EA.context)(...T);return this._isPromiseLike(RA)?this._handleAsyncResult(RA,E,W,P):(this._reportApiSuccessLog({result:RA,apiName:E,eventType:W,startTime:P}),RA)}catch(RA){throw fe.ssoLog.error(E,`${E} fail ${RA?.message||RA?.errorMessage})`,{error:RA,costTime:g.getServerTimeMs()-P,eventType:W,method:E}),RA}})}registerExperimentalAPI(n,g,u){const E=u||n;this._experimentalApiMap[n]=g[E].bind(g)}destroy(){return pA(this,void 0,void 0,function*(){var n,g;try{!((n=fe.store.get("login"))===null||n===void 0)&&n.isLogin&&(yield this._apiMap.logout()),fe.notificationCenter.emitInnerEvent(so.DESTROY)}catch(u){console.debug("destroy error: ",u)}finally{fe.notificationCenter.emitOuterEvent(Dr.SDK_DESTROY,{SDKAppID:(g=fe.store.get("instance"))===null||g===void 0?void 0:g.sdkAppId}),da.clear(),nu.getInstance().clear(),ws.getInstance().destroy(),fe.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:so,InnerEventSubType:fe.notificationCenter.InnerEventSubType,OuterEvent:Dr,OuterConstant:Lo,SignalingEvent:Hc,helper:Object.assign(Object.assign(Object.assign({},fe.utils),fe.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:Mc,registerValidateConfig:jc,checkBusinessCapabilityBits:tn,registerWorkflowStep:ws.getInstance().registerWorkflowStep.bind(ws.getInstance()),ChatError:gs}),apiMap:this._apiMap},fe),{constants:Object.assign(Object.assign({},za),fe.constants),common:Object.assign(Object.assign(Object.assign({},XQ),fe.common),{workflowManager:ws.getInstance()}),utils:fe.utils,appStore:bD})}callExperimentalAPI(n,g){return fe.ssoLog.debug(`callExperimentalAPI.${n} start params: ${fe.utils.safeStringify(g)}`),this._experimentalApiMap[n]?this._experimentalApiMap[n](g):(fe.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${n} not found, params: ${fe.utils.safeStringify(g)}`),Promise.reject(new gs({code:Ea.INVALID_OPERATION})))}_isPromiseLike(n){return n!==null&&typeof n=="object"&&typeof n.then=="function"}_handleAsyncResult(n,g,u,E){return n.then(m=>(this._reportApiSuccessLog({result:m,apiName:g,eventType:u,startTime:E}),m)).catch(m=>{throw fe.ssoLog.error(g,`${g} fail ${m?.message||m?.errorMessage})`,{error:m,costTime:fe.common.timeManager.getServerTimeMs()-E,eventType:u,method:g,startTime:E}),m})}_reportApiSuccessLog(n){let{result:g,apiName:u,startTime:E,eventType:m}=n;const{timeManager:D}=fe.common,{successLog:{message:M,moreMessage:T}={message:"",moreMessage:""}}=g||{},P=D.getServerTimeMs();u==="login"&&(E+=D.getTimeOffsetWithServer()),JI.includes(u)&&fe.ssoLog.info(u,`${u} success ${M} ${T}`,{costTime:P-E,eventType:m,message:M,moreMessage:T,startTime:E}),g?.successLog&&delete g.successLog}}class uR{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:n,store:g}=fe;g.set("login",{isReady:!1}),Cr.getInstance().registerApi({apiName:"login",context:this}),Cr.getInstance().registerApi({apiName:"logout",context:this}),Cr.getInstance().registerApi({apiName:"getLoginUser",context:this}),Cr.getInstance().registerApi({apiName:"isReady",context:this}),Cr.getInstance().registerApi({apiName:"getServerTime",context:this}),Cr.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),n.subscribeInnerEvent(so.RECONNECTED,this._reLogin,this),fe.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}login(n){return pA(this,void 0,void 0,function*(){var g;const{sdkEdition:u}=fe.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new gs({functionName:"login",code:Ea.REPEAT_LOGIN});const E=yield this._performLogin(n);this._validateAfterLogin(E),this._handleLoginSuccess(E),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const m=(g=fe.channel.getSocketAdapter())===null||g===void 0?void 0:g.getId(),{appId:D,href:M}=fe.store.get("instance")||{},{instanceID:T,customStatus:P}=E||{};return{code:0,data:E,successLog:{message:u,moreMessage:`socketID:${m} instanceID:${T} customStatus:${P} href: ${M} appId: ${D}`}}}catch(E){const{errorCode:m}=E;m!==Ea.REPEAT_LOGIN&&(this._latestLoginAt=0);const D=new gs({functionName:"login",code:m});throw console.error(D),D}})}_reLogin(){return pA(this,void 0,void 0,function*(){var n;try{if(!this._isLoginIn())return;const g=yield Tu(this._customLoginInfo);if(g){const{instanceID:u,customStatus:E}=g;fe.store.set("login",{statusInstanceId:u}),ws.getInstance().executeWorkflow(xt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:E,statusType:mE.USER_STATUS_ONLINE});const m=(n=fe.channel.getSocketAdapter())===null||n===void 0?void 0:n.getId();fe.ssoLog.info("reLogin",`socketId:${m} instanceId:${u}`)}}catch(g){console.warn(g)}})}logout(){return pA(this,arguments,void 0,function*(n=na.USER_INITIATED){const{ssoLog:g}=fe;g.debug("logout",`logout start logoutReason: ${n}`);try{yield this._performLogout(n),g.info("logout","logout success"),fe.ssoLog.uploadSSOLogData()}catch(u){const{errorCode:E}=u;throw new gs({functionName:"logout",code:E})}finally{this.handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?Ar():""}isReady(){var n;return(n=fe.store.get("login"))===null||n===void 0?void 0:n.isReady}setCustomLoginInfo(n=""){this._customLoginInfo=n}handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),ws.getInstance().reset(),fe.notificationCenter.emitInnerEvent("logout")}getServerTime(){const{timeManager:n}=fe.common;return n.getServerTimeMs()}_updateAndEmitSDKReady(){fe.store.set("login",{isReady:!0}),setTimeout(()=>{fe.notificationCenter.emitOuterEvent(Dr.SDK_READY,{name:Dr.SDK_READY})},1)}_updateAndEmitSDKNotReady(){fe.store.set("login",{isReady:!1}),fe.notificationCenter.emitOuterEvent(Dr.SDK_NOT_READY,{name:Dr.SDK_NOT_READY})}_validateAfterLogin(n){const g="login";if(!n)throw new gs({functionName:g,message:"login response is empty"});const{tinyID:u,a2Key:E}=n||{};if(!u)throw new gs({functionName:g,code:Ea.NO_TINYID});if(!E)throw new gs({functionName:g,code:Ea.NO_A2KEY})}_createRepeatLoginResponse(){var n;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:rs({code:"RepeatLogin",replacement1:(n=fe.store.get("login"))===null||n===void 0?void 0:n.userId}),repeatLogin:!0}}}_performLogin(n){return pA(this,void 0,void 0,function*(){const{userID:g,userSig:u}=n;return fe.store.set("login",{userId:g,userSig:u}),this._latestLoginAt=Date.now(),Tu(this._customLoginInfo)})}_ensureAsyncComplete(){return pA(this,void 0,void 0,function*(){yield new Promise(n=>{setTimeout(()=>n(null),1)})})}_handleLoginSuccess(n){const{timeManager:g}=fe.common,{helloInterval:u,timeStamp:E,customStatus:m,purchaseBits:D}=n,M=1e3*E;g.calculateTimeOffsetWithServer(this._latestLoginAt,M),this._helloInterval=u||120,this._updateLoginStore(n),fe.user.userStatus.setCustomStatus(m),ws.getInstance().executeWorkflow(xt.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:D}),fe.common.taskScheduler.addTask({id:Gg,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(n){return function(g){return pA(this,void 0,void 0,function*(){const{logoutReason:u}=g,E="im_open_status.wslogout",m=fe.common.generateProtocolData({servcmd:E,data:{wslogout_type:u,isWebUniapp:0}}),D=`${m.head.seq}${E}`;return yield fe.channel.sendPacket(m,{requestId:D})})}({logoutReason:n})}_updateLoginStore(n){const{a2Key:g,tinyID:u,instanceID:E,authKey:m}=n;fe.store.set("login",{a2Key:g,tinyID:u,statusInstanceId:E,authKey:m,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return pA(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const n="im_open_status.wshello",g=fe.common.generateProtocolData({servcmd:n,data:{isWebUniapp:0}}),u=`${g.head.seq}${n}`;return fe.channel.sendPacket(g,{requestId:u})}()}catch(n){fe.ssoLog.warn("_sendOnlinePresenceRequest",` error:${n.message}`)}})}_isLoginIn(){var n;return((n=fe.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){fe.common.taskScheduler.removeTask(Gg),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",fe.store.clear("login"),fe.store.set("login",{isReady:!1}),fe.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:n}=fe;n.unSubscribeInnerEvent(so.RECONNECTED,this._reLogin,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}const ER={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},YT={logout:!0};class vh{constructor(){this.loginAction=new uR,this.kickedOutHandler=new _u,this.loginAction.init(),this.kickedOutHandler.init(),jc({auth:YT,params:ER})}}var Kr,zu,VE;(function(s){s.CONV_C2C="C2C",s.CONV_GROUP="GROUP",s.CONV_TOPIC="TOPIC",s.CONV_SYSTEM="@TIM#SYSTEM"})(Kr||(Kr={})),function(s){s.MSG_PRIORITY_HIGH="High",s.MSG_PRIORITY_NORMAL="Normal",s.MSG_PRIORITY_LOW="Low",s.MSG_PRIORITY_LOWEST="Lowest"}(zu||(zu={})),function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_IMAGE="TIMImageElem",s.MSG_AUDIO="TIMSoundElem",s.MSG_FILE="TIMFileElem",s.MSG_VIDEO="TIMVideoFileElem",s.MSG_GRP_TIP="TIMGroupTipElem",s.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",s.MSG_MERGER="TIMRelayElem"}(VE||(VE={}));const kD={1:zu.MSG_PRIORITY_HIGH,2:zu.MSG_PRIORITY_NORMAL,3:zu.MSG_PRIORITY_LOW,4:zu.MSG_PRIORITY_LOWEST},LD=0,dR=1;var Zu;(function(s){s.IN="in",s.OUT="out"})(Zu||(Zu={}));const CR=2,ep={};function ru(s){if(!s)return 0;if(ep[s]===void 0){const n=new Date,g=`3${n.getHours()}`.slice(-2),u=`0${n.getMinutes()}`.slice(-2),E=`0${n.getSeconds()}`.slice(-2);ep[s]=parseInt([g,u,E,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${ep[s]}`)}else ep[s]+=1;return ep[s]}class JE{constructor(n){this.ID="",this.random=0,this.sequence=0,this.nameCard="",this.isRead=!1,this.isPeerRead=!1,this.isDeleted=!1,this.isResend=!1,this.hasRiskContent=!1,this._onlineOnlyFlag=!1,this.atUserList=[],this._groupAtInfoList=[],this.isBroadcastMessage=!1,this.priority=zu.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:g=fe.common.timeManager.getServerTimeSeconds()||0,senderTinyID:u,currentUser:E,needReadReceipt:m,isSupportExtension:D,customModerationConfigurationId:M,to:T,from:P,nick:W="",avatar:iA="",time:EA,messageControlInfo:RA,tinyID:kA,cloudCustomData:xA="",messageLifeTime:LA,messageVersion:SA=0,conversationType:OA,sequence:JA,checkResult:ne=0,isPlaceMessage:se=0,messageFlagBits:_i,receiverList:Ti,isSystemMessage:Lt=!1,status:Ni=Yr.SUCCESS,revokeReason:cs="",conversationSubType:Se,clientSequence:mt,protocol:UA="JSON",revokerInfo:oi={userID:"",nick:"",avatar:""},readReceiptInfo:_s={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:Gi,groupProfile:Fr,atUserList:xi,flow:gr,isRead:_t=!1,priority:Tt=zu.MSG_PRIORITY_NORMAL,onlineOnlyFlag:$u=!1,nameCard:ln="",quoteInfo:Bo}=n;var ll;this.clientTime=g,this.senderTinyID=u||kA,this.needReadReceipt=m===!0||m===1,this.isSupportExtension=D===!0||D===1,this._cmConfigID=M,this.to=T,this.nick=W,this.avatar=iA,this.protocol=UA,this.random=Gi===void 0?(ll=ll||99999999,Math.round(Math.random()*ll)):Gi,this.time=EA||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!RA?.excludedFromLastMessage,this._isExcludedFromUnreadCount=!!RA?.excludedFromUnreadCount,this.isModified=!!SA,this.cloudCustomData=xA,this.messageLifeTime=LA,this.from=P||null,this.sequence=JA||0,this.conversationType=OA||Kr.CONV_C2C,this.hasRiskContent=ne>1,this.version=SA,this.isPlaceMessage=se,this.isRevoked=se===2||_i===8,this.isSystemMessage=Lt,this.readReceiptInfo=_s,this.revokeReason=cs,this.revokerInfo=oi,this._receiverList=Ti,this.conversationSubType=Se,this.revoker=oi?.revoker||"",this.clientSequence=mt||JA||0,this.status=Ni,this.atUserList=xi||[],this.flow=gr,this.isRead=_t,this.priority=Tt,this._onlineOnlyFlag=$u,this.nameCard=ln,this.quoteInfo=Bo,this.reInitialize(E),this._initC2CReadReceiptInfo(n),this._extractGroupInfo(Fr)}getElements(){return this._elements}isOnlineMessage(){return this.messageLifeTime===0}setElement(n){Array.isArray(n)?this._elements=n:this._elements=[n],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map(n=>n.transformToServerFormat()):this._elements.transformToServerFormat():null}setRelayFlag(n){this._relayFlag=n}validateBeforeSend(){var n,g,u;return this._relayFlag?{isValid:!0}:((n=this._elements)===null||n===void 0?void 0:n.length)>0?(u=(g=this._elements[0])===null||g===void 0?void 0:g.validateBeforeSend)===null||u===void 0?void 0:u.call(g):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(n){const{readReceiptSentByPeer:g,timestamp:u=0}=n;this.conversationType===Kr.CONV_C2C&&this.needReadReceipt===!0&&(this.readReceiptInfo.isPeerRead=g===1,this.readReceiptInfo.timestamp=u)}_extractGroupInfo(n){if(!n)return;const{From_AccountNick:g,From_AccountHeadurl:u,MsgFrom_AccountExtraInfo:E,GroupType:m}=n,{NameCard:D}=E||{};typeof g=="string"&&(this.nick=g),typeof u=="string"&&(this.avatar=u),typeof D=="string"&&(this.nameCard=D),this.conversationSubType=m}reInitialize(n){n===this.from&&(this.isRead=!0),this._initSequence(n),this._concatConversationID(n),this.generateMessageID()}_concatConversationID(n){let g="";const u=this.conversationType;u!==Kr.CONV_SYSTEM?(g=u===Kr.CONV_C2C?n===this.from?this.to:this.from:this.to,this.conversationID=g?`${u}${g}`:null):this.conversationID=Kr.CONV_SYSTEM}_initSequence(n){this.clientSequence===0&&n&&(this.clientSequence=ru(n)),this.sequence===0&&this.conversationType===Kr.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===Kr.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(n){this.isRead=n}}class _d{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Data:u,Ext:E,Desc:m}=g;return new _d({data:u,description:m,extension:E})}constructor(n){this.type=VE.MSG_CUSTOM;const{data:g="",description:u="",extension:E=""}=n;this.content={data:g,description:u,extension:E}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{data:E,description:m,extension:D}=u;return{MsgType:this.type,MsgContent:{Data:E,Ext:D,Desc:m}}}validateBeforeSend(){const{isEmpty:n}=fe.utils,g=[this.content.data,this.content.description,this.content.extension].some(u=>!n(u));return{isValid:g,error:g?null:{message:"content can not be empty"}}}}class Td{static parseServerPushElement(n){const{MsgContent:g={Text:""}}=n,{Text:u}=g;return new Td({text:u})}constructor(n){this.type=wg.MSG_TEXT,this.content={text:n.text||""}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.text)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{text:E}=u;return{MsgType:this.type,MsgContent:{Text:E}}}}var jm=new class{constructor(){this._elementClassMap={[VE.MSG_CUSTOM]:_d,[VE.MSG_TEXT]:Td}}init(){Cr.getInstance().registerApi({apiName:"createCustomMessage",context:this}),Cr.getInstance().registerApi({apiName:"createTextMessage",context:this})}registerElementClass(s,n){var g;(g=n).prototype!==void 0&&"constructor"in g.prototype&&(this._elementClassMap[s]=n)}getElementClass(s){return this._elementClassMap[s]}createMessage(s){const{from:n,flow:g=Zu.OUT}=s,{userId:u}=fe.store.get("login")||{};this._isSendByCurrentInstance({from:n,flow:g,currentUser:u})?this._updateWithSenderInfo(s):this._isMultiEndpointSyncMessage({from:n,flow:g,currentUser:u})&&(s.flow=Zu.OUT);const E=Object.assign(Object.assign({},s),{currentUser:u});return new JE(E)}createCustomMessage(s){const n=Ar(),g=this.createMessage(Object.assign(Object.assign({},s),{from:n})),u=this._elementClassMap[VE.MSG_CUSTOM];if(!g)return null;if(u){const E=new u(s.payload);g.setElement(E)}return g}createTextMessage(s){var n;if(!s)return null;const g=typeof s.payload=="string"?s.payload:((n=s?.payload)===null||n===void 0?void 0:n.text)||"",u=new Td({text:g}),E=Ar(),m=fe.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(u),m}_updateWithSenderInfo(s){var n,g;const{nick:u,avatar:E,conversationType:m,to:D}=s,{userId:M,tinyID:T}=fe.store.get("login")||{},P=rc.getUserProfile(M);return s.nick=u||P?.nick||"",s.avatar=E||P?.avatar||"",s.tinyID=s.tinyID||T||"",s.from=M,s.status=Yr.UNSENT,s.flow=Zu.OUT,m===ka.CONV_GROUP&&(s.nameCard=(g=(n=$Q.getGroup(D))===null||n===void 0?void 0:n.selfInfo)===null||g===void 0?void 0:g.nameCard),s}_isMultiEndpointSyncMessage(s){const{from:n,flow:g,currentUser:u}=s;return n===u&&g===Zu.IN}_isSendByCurrentInstance(s){const{from:n,flow:g,currentUser:u}=s;return n===u&&g===Zu.OUT}};const hR={PushFlag:0,Title:"",Desc:"",Ext:"",ApnsInfo:{Sound:"",BadgeMode:0,IsVoipPush:void 0,Image:"",InterruptionLevel:"active",ContentAvailable:0},AndroidInfo:{Sound:"",XiaoMiChannelID:"",OPPOChannelID:"",GoogleChannelID:"",VIVOClassification:1,VIVOCategory:"",HuaWeiCategory:"",OPPOCategory:"",HuaWeiImage:"",HonorImage:"",GoogleImage:"",HonorImportance:"",MeizuNotifyType:void 0}},Nd={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},UD={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function BR(s,n){return Object.keys(n).forEach(g=>{const{range:u,defaultValue:E}=n[g];s[g]=u.includes(s[g])?s[g]:E}),s}function tp(s){const n=s.lastIndexOf(".");return n===-1?s:s.slice(0,n)}function QR(s){const{androidInfo:n={},androidOPPOChannelID:g=""}=s,u=n.OPPOChannelID||g,E=BR(n,Nd),{sound:m="",FCMChannelID:D=""}=E,M=Do(E,["sound","FCMChannelID"]);return Object.assign(Object.assign({},M),{Sound:tp(m),OPPOChannelID:u,GoogleChannelID:D})}function pR(s){const{apnsInfo:n={},ignoreIOSBadge:g=!1,disableVoipPush:u}=s,E=BR(n,UD),{ignoreIOSBadge:m,disableVoipPush:D,enableIOSBackgroundNotification:M}=E,T=Do(E,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),P=m===!0||g===!0?1:0;let W;return r(u)||(W=u===!1?1:0),r(D)||(W=D===!1?1:0),Object.assign(Object.assign({},T),{BadgeMode:P,IsVoipPush:W,ContentAvailable:M?1:0})}function FD(s){return fe.utils.isPlainObject(s)?{PushFlag:s.disablePush===!0?1:0,Title:s.title||"",Desc:s.description||"",Ext:s.extension||"",ApnsInfo:pR(s),AndroidInfo:QR(s)}:hR}function Wm(s){const{From_AccountHeadurl:n,From_AccountNick:g,IsNeedReadReceipt:u,IsPeerRead:E,IsSyncMsg:m,MsgBody:D,MsgClientTime:M,MsgLifeTime:T,MsgRandom:P,MsgSeq:W,MsgTimeStamp:iA,SendMsgControl:EA,SupportMessageExtension:RA,TinyId:kA,MsgCheckResult:xA,CloudCustomData:LA,MsgVersion:SA,MsgFlagBits:OA,RevokerInfo:JA,InnerSdkCustomData:ne}=s;let se,{From_Account:_i,To_Account:Ti}=s;if(m===1){const Lt=Ti;Ti=_i,_i=Lt}if(JA){const{Reason:Lt,Revoker_Account:Ni,Revoker_FromUin:cs}=JA;se={reason:Lt,revoker:Ni,revokerFromUin:cs,userID:Ni}}return{from:_i,avatar:n,nick:g,needReadReceipt:u===1,isSyncMessage:m,clientTime:M,messageLifeTime:T,random:P,sequence:W,time:iA,messageControlInfo:{excludedFromLastMessage:EA?.NoLastMsg===1,excludedFromUnreadCount:EA?.NoUnread===1},isSupportExtension:RA,to:Ti,tinyID:kA,checkResult:xA,cloudCustomData:LA,revokerInfo:se,messageVersion:SA,messageFlagBits:OA,readReceiptSentByPeer:E,elements:vC(D),onlineOnlyFlag:T===0,quoteInfo:ip(ne)}}function zm(s){const{From_Account:n,MsgBody:g,MsgClientTime:u,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,To_Account:M,MsgVersion:T,CloudCustomData:P,MsgCheckResult:W}=s;return{from:n,clientTime:u,random:E,sequence:m,time:D,to:M,elements:vC(g),messageVersion:T,cloudCustomData:P,checkResult:W}}function OD(s){const{ClientSeq:n,From_Account:g,GroupInfo:u,MsgBody:E,MsgClientTime:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,SendMsgControl:P,SupportMessageExtension:W,TinyId:iA,CloudCustomData:EA,MsgVersion:RA,MsgCheckResult:kA,NeedReadReceipt:xA,IsPlaceMsg:LA,RevokerInfo:SA,GroupAtInfo:OA,OnlineOnlyFlag:JA,InnerSdkCustomData:ne}=s;let se,_i=zu.MSG_PRIORITY_NORMAL;if(Object.keys(kD).includes(String(s.MsgPriority))&&(_i=kD[s.MsgPriority]),SA){const{Reason:Lt,Revoker_Account:Ni,Revoker_FromUin:cs}=SA;se={reason:Lt,revoker:Ni,revokerFromUin:cs,userID:Ni}}const Ti=function(Lt){const Ni=[];return Array.isArray(Lt)&&Lt.forEach(cs=>{cs.GroupAtAllFlag===LD?Ni.push(cs.GroupAt_Account):cs.GroupAtAllFlag===dR&&Ni.push(Lo.MSG_AT_ALL)}),Ni}(OA);return{clientSequence:n,from:g,groupProfile:u,clientTime:m,priority:_i,random:D,sequence:M,time:T,messageControlInfo:{excludedFromLastMessage:P?.NoLastMsg===1,excludedFromUnreadCount:P?.NoUnread===1},isSupportExtension:W,tinyID:iA,cloudCustomData:EA,messageVersion:RA,checkResult:kA,needReadReceipt:xA,isPlaceMessage:LA,revokerInfo:se,atUserList:Ti,elements:vC(E),to:VT(s),onlineOnlyFlag:JA===1,quoteInfo:ip(ne)}}function VT(s){const{utils:{isEmpty:n},constants:{IS_TOPIC_MESSAGE:g}}=fe,{ToGroupId:u,GroupInfo:{MillionGroupFlag:E=0,TopicId:m}={}}=s;return E!==g||n(m)?u:m}function vC(s){if(!s)return null;if(Array.isArray(s))return s.map(g=>{const u=fe.message.messageFactory.getElementClass(g.MsgType);return u?.parseServerPushElement(g)});const n=fe.message.messageFactory.getElementClass(s.MsgType);return n?.parseServerPushElement(s)}function PD(s){const{From_Account:n,MsgBody:g,MsgClientTime:u,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,GroupId:M,TopicId:T,MsgVersion:P,CloudCustomData:W,MsgCheckResult:iA}=s;return{from:n,clientTime:u,random:E,sequence:m,time:D,groupID:M,topicID:T,elements:vC(g),messageVersion:P,cloudCustomData:W,checkResult:iA}}function ip(s){const{utils:{isString:n,safeStringify:g},ssoLog:u}=fe;if(!n(s))return null;try{const{messageID:E,messageTime:m,messageSequence:D}=JSON.parse(s).businessQuote;return{msgID:E,messageTime:m,messageSequence:D}}catch(E){return u.debug("_parseServerQuoteInfo",g(E)),null}}function op({conversationUpdateFields:s,message:n}){const{conversationID:g,conversationType:u,conversationSubType:E,flow:m,_isExcludedFromUnreadCount:D,_isExcludedFromLastMessage:M}=n,T=M?"":ZQ(n),P=!D&&m===Zu.IN;s.has(g)?(s.get(g).lastMessage=T,P&&s.get(g).unreadCount++):s.set(g,{conversationID:g,type:u,subType:E,unreadCount:P?1:0,lastMessage:T})}function MB(s){return s.filter(n=>{const g=!Rs(n?._elements),u=n?.isPlaceMessage===1;return g||fe.ssoLog.error("emptyMessageBody",`from:${n.from} to:${n.to} sequence:${n.sequence}`),g&&!u})}function vB(s){const{messageDataHandler:n}=fe.message;return!n.isInMessageList(s)&&!n.isMessageSentByCurrentInstance(s)}var mR=Object.freeze({__proto__:null,autoIncrementIndex:ru,createAndroidPushInfo:QR,createApnsPushInfo:pR,createOfflinePushInfo:FD,filterValidMessages:MB,getAndroidSoundName:tp,parseServerGroupMessage:OD,parseServerPushC2CModifyMessage:zm,parseServerPushGroupModifyMessage:PD,parseServerPushMessage:Wm,parseServerPushMessageElement:vC,shouldStoreMessage:vB,updateConversationFields:op});const{isPlainObject:fR}=fe.utils;function sp(s,n={}){const{onlineUserOnly:g,messageControlInfo:u}=n;let{offlinePushInfo:E}=n;s.conversationType===Kr.CONV_C2C&&g===!0&&(E?E.disablePush=!0:E={disablePush:!0});let m="";typeof s.cloudCustomData=="string"&&s.cloudCustomData.length>0&&(m=s.cloudCustomData);const D=[];if(u&&fR(u)){const{excludedFromUnreadCount:M,excludedFromLastMessage:T,excludedFromContentModeration:P}=u;M===!0&&D.push("NoUnread"),T===!0&&D.push("NoLastMsg"),P===!0&&D.push("NoMsgCheck")}return{onlineUserOnly:g,cloudCustomData:m,messageControlInfo:D,offlinePushInfo:E}}function xD(s){const{webhookInfo:{disableCloudMessagePreHook:n=!1,disableCloudMessagePostHook:g=!1}={}}=s||{};if(!n&&!g)return;const u=[];return n&&u.push("ForbidBeforeSendMsgCallback"),g&&u.push("ForbidAfterSendMsgCallback"),u}function Rh(s,n){return pA(this,void 0,void 0,function*(){const g=s.conversationType===Kr.CONV_GROUP?function(E,m){var D;const M=sp(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));let RA;return h(E._receiverList)&&E._receiverList.length>0&&(RA=E._receiverList,E._receiverList.length>50&&(RA=E._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:(D=fe.store.get("login"))===null||D===void 0?void 0:D.userId,GroupId:E.to,MsgBody:EA,CloudCustomData:P,Random:E.random,MsgPriority:E.priority,ClientSeq:E.clientSequence,GroupAtInfo:E._groupAtInfoList,OnlineOnlyFlag:T?1:0,MsgClientTime:E.clientTime,OfflinePushInfo:FD(iA),SendMsgControl:T?void 0:W,NeedReadReceipt:E.needReadReceipt===!0?1:0,To_Account:RA,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,ForbidCallbackControl:xD(m),InnerSdkCustomData:wB(E)}}}(s,n):function(E,m){var D;const M=sp(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=T===!0?0:void 0,RA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:(D=fe.store.get("login"))===null||D===void 0?void 0:D.userId,To_Account:E.to,MsgBody:RA,CloudCustomData:P,MsgSeq:E.sequence,MsgRandom:E.random,MsgLifeTime:EA,From_AccountNick:E.nick,From_AccountHeadurl:E.avatar,SendMsgControl:EA!==0?W:void 0,MsgClientTime:E.clientTime,IsNeedReadReceipt:E.needReadReceipt===!0?1:0,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,OfflinePushInfo:FD(iA),ForbidCallbackControl:xD(m),InnerSdkCustomData:wB(E)}}}(s,n),u=yield gg(g);return u?{time:u.MsgTime,messageDropReason:u.MsgDropReason,sequence:u.MsgSeq}:null})}function wh(s){return pA(this,void 0,void 0,function*(){const{from:n,to:g,version:u=0,sequence:E,random:m,time:D,type:M,cloudCustomData:T}=s,P={From_Account:n,To_Account:g,MsgVersion:u,MsgSeq:E,MsgRandom:m,MsgTime:D,MsgType:M,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:T},W=yield gg({servcmd:"openim.modify_c2c_msg",data:P});if(W){const{MsgBody:iA,MsgVersion:EA,CloudCustomData:RA}=W;return{elements:vC(iA),messageVersion:EA,cloudCustomData:RA}}})}function RB(s){return pA(this,void 0,void 0,function*(){const{to:n,version:g=0,sequence:u,cloudCustomData:E}=s,m={GroupId:n,MsgVersion:g,MsgSeq:u,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:E},D=yield gg({servcmd:"openim.modify_group_msg",data:m});if(D){const{MsgBody:M,MsgVersion:T,CloudCustomData:P}=D;return{elements:vC(M),messageVersion:T,cloudCustomData:P}}})}function _h(s){return pA(this,void 0,void 0,function*(){const{groupID:n,count:g,messageSequence:u,messageSequenceList:E,getType:m}=s,D={GroupId:n,ReqMsgNumber:g,WithRecalledMsg:1,Version:1,GetType:m};return u&&(D.ReqMsgSeq=u),h(E)&&E.length>0&&(D.ReqMsgSeqList=E),yield gg({servcmd:"group_open_http_svc.group_msg_get",data:D})})}function Zm(s){return pA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:u,messageKey:E,direction:m}=s;return gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g,WithRecalledMsg:1,LastMsgTime:u,MsgKey:E,GetDirection:m}})})}function wB(s){if(fe.utils.isObject(s.quoteInfo)){const{msgID:n,messageSequence:g,messageTime:u}=s.quoteInfo;return JSON.stringify({businessQuote:{messageID:n,messageSequence:g,messageTime:u}})}}var YD=Object.freeze({__proto__:null,createMessagePackOptions:sp,generateForbidCallbackControl:xD,getC2CRoamingMessagesByAnchor:Zm,getGroupRoamingMessagesByAnchor:_h,getRoamingMessages:function(s){return pA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:u,messageKey:E}=s;return(yield gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g||15,LastMsgTime:u||0,MsgKey:E,GetDirection:0,WithRecalledMsg:1}}))||[]})},modifyC2CMessage:wh,modifyGroupMessage:RB,sendMessage:Rh});const{isPlainObject:JT}=fe.utils,{MSG_AUDIO:VD,MSG_FILE:JD,MSG_IMAGE:yR,MSG_VIDEO:DR,MSG_MERGER:SR}=Lo;class Xm{constructor(){this._sendProtocolMap=new Map}init(){Cr.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:n=>![VD,JD,yR,DR,SR].includes(n[0].type)})}registerSendProtocol(n,g,u){this._sendProtocolMap.set(n,g.bind(u))}sendMessage(n,g){return pA(this,void 0,void 0,function*(){const{TOTAL_COUNT:u,SEND_COST:E,SUCCESS_COUNT:m,FAILED_COUNT:D}=rr;if(!(n instanceof JE))throw new gs({code:Ea.MSG_INSTANCE_REQUIRED});const M=n.validateBeforeSend();if(!M.isValid){const{code:W,message:iA=""}=M.error||{};throw new gs({code:W,message:iA})}this._reportMessageSendQuality({name:u,message:n});let T=!1;const{messageDataHandler:P}=fe.message||{};try{const{messageControlInfo:W}=g||{};let iA=null;P.addRandomOfSentMessage(n.random);const EA=Date.now(),RA=this._getSendProtocol(n);if(n.conversationType===Kr.CONV_C2C?(T=g?.onlineUserOnly===!0,iA=yield RA(n,g)):n.conversationType===Kr.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(n),iA=yield RA(n,g)),iA){const{messageDropReason:kA,sequence:xA,time:LA}=iA;if(this._updateNickAndAvatarOfSentMessageByMe(n),kA&&this._logRateLimitInfo(n,xA,kA),this._reportMessageSendQuality({name:m,message:n}),this._reportMessageSendQuality({name:E,message:n,startTs:EA}),n.isResend===!0){const SA=P.findMessage(n.ID);SA&&(fe.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${SA.ID}`),P.deleteConversationMessage(SA))}return n.status=Yr.SUCCESS,n.time=LA,n.conversationType===Kr.CONV_GROUP&&(n.sequence=xA),T?n._onlineOnlyFlag=!0:(P.storeConversationMessage(n),this._applySentMessageControlInfo(n,W),this._emitOnlineMessageSent(n)),n.type===wg.MSG_STREAM?{code:0,data:{message:n,streamMessageID:iA.streamMessageID}}:{code:0,data:{message:n}}}}catch(W){n.status=Yr.FAIL,P.removeRandomOfSentMessage(n.random);let{errorCode:iA}=W||{},EA=W?.errorInfo||W?.message||"";throw this._hasRiskContent(iA)&&(n.hasRiskContent=!0),T||this._isRejectedByRestApi(iA)||P.storeConversationMessage(n),this._reportMessageSendQuality({name:D,message:n,error:W}),new gs({code:iA,message:EA,data:{message:n},moreMessage:`type:${n.type} from:${n.from} to:${n.to}`})}})}_hasRiskContent(n){return n===80001||n===80004}_isRejectedByRestApi(n){return n>=10100&&n<=10200||n>=120001&&n<=13e4}_emitOnlineMessageSent(n){const g=n._isExcludedFromLastMessage?"":n,{conversationID:u,conversationType:E}=n,m=Wc(u)?so.TOPIC_NEW_MESSAGE:so.NEW_MESSAGE;fe.notificationCenter.emitInnerEvent(m,{result:{conversationUpdateFieldList:[{conversationID:u,type:E,message:n,lastMessage:g,unreadCount:0}]}})}_applySentMessageControlInfo(n,g){g&&JT(g)&&(g.excludedFromLastMessage===!0&&(n._isExcludedFromLastMessage=!0),g.excludedFromUnreadCount===!0&&(n._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(n,g,u){const E=`from:${n.from} to:${n.to} sequence:${g} messageDropReason:${u}`;fe.ssoLog.warn("messageDropReason",E)}_updateNickAndAvatarOfSentMessageByMe(n){const{messageDataHandler:g}=fe.message||{};let u=!1;const{conversationID:E}=n,m=g.getLatestMsgSentByMe(E);if(m){const{nick:D,avatar:M}=m;D===n.nick&&M===n.avatar||(u=!0),u&&g.updateNickAndAvatarOfSentMessage({conversationID:E,latestNick:n.nick,latestAvatar:n.avatar,isSentByMe:!0})}}_validateBeforeSendGroupMessage(n){return pA(this,void 0,void 0,function*(){var g,u,E;const{to:m,from:D}=n;let M=m,T=$Q.getGroup(M);if(Xr({groupID:M})&&T?.isSupportTopic)throw new gs({code:Ea.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(Wc(m)&&([M]=m.split(sa.TOPIC),T=$Q.getGroup(M)),!T&&typeof((g=Cr.getInstance().getApiMap())===null||g===void 0?void 0:g.getGroupProfile)=="function"){const P=yield Cr.getInstance().getApiMap().getGroupProfile({groupID:M});if(((E=(u=P?.data)===null||u===void 0?void 0:u.group)===null||E===void 0?void 0:E.type)===Lo.GRP_AVCHATROOM){const W=rs({code:Ea.MSG_SEND_FAIL_NOT_IN_AV,replacement1:D,replacement2:M});throw new gs({code:Ea.MSG_SEND_FAIL_NOT_IN_AV,message:W})}}return!0})}_reportMessageSendQuality(n){fe.notificationCenter.emitInnerEvent(so.QUALITY_STAT,{label:gI.MESSAGE_SEND_SUCCESS_RATE,data:n})}_getSendProtocol(n){return this._sendProtocolMap.get(n.type)||Rh}}var HT=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){fe.notificationCenter.subscribeInnerEvent(so.LOGOUT,this._reset,this),fe.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}get _messagesByConversation(){return Ap.getMessages()}storeConversationMessage(s,n=!1){if(an)return!0;const{conversationID:g}=s;if(!g||(this._messagesByConversation.has(g)||this._messagesByConversation.set(g,new Map),this._shouldSkipStoreMessage(s,n)))return!1;const u=this._getUniqueIdOfMessage(s);return this._messagesByConversation.get(g).set(u,s),this._updateLatestMessageMap(s),!0}_updateLatestMessageMap(s){const{conversationID:n}=s;s.flow==="out"?this._setLatestMsgSentByMe(n,s):n.startsWith("C2C")&&this._setLatestMsgSentByPeer(n,s)}_shouldSkipStoreMessage(s,n){const g=this._getUniqueIdOfMessage(s),u=this._messagesByConversation.get(s.conversationID);if(u?.has(g)){const E=u?.get(g);if(!n||E?.isModified===!0)return!0}return!1}deleteConversationMessage(s){var n;const{conversationID:g=""}=s,u=this._getUniqueIdOfMessage(s);this._messagesByConversation.has(g)&&((n=this._messagesByConversation.get(g))===null||n===void 0||n.delete(u))}modifyConversationMessage(s,n){var g;if(!this._messagesByConversation.has(s)&&!this._sparseMessagesByConversation.has(s))return{isUpdated:!1,message:null};const u=this._getUniqueIdOfMessage(n),E=this._getMessageFromLocalMessage(s,u);if(E){const{messageVersion:m,elements:D,cloudCustomData:M,checkResult:T=0}=n,P=T>1;if(fe.ssoLog.debug("modifyConversationMessage",`conversationToMessageMap modifyConversationMessage localVersion:${E.version} remoteVersion:${m}`),E.versionE.ID===s)||null,n)break;if(!n){const u=Array.from(this._sparseMessagesByConversation.values());for(const E of u)if(n=E.get(s)||null,n)break}return n}deleteConversationMessageList(s){this._messagesByConversation.has(s)&&(this._messagesByConversation.delete(s),this._latestMessageSentByMeMap.delete(s),this._latestMessageSentByPeerMap.delete(s)),this._sparseMessagesByConversation.has(s)&&this._sparseMessagesByConversation.delete(s)}revokeMessage({conversationID:s,sequence:n,random:g,revoker:u}){const E=this._messagesByConversation.get(s);let m=null;if(E){const D=Array.from(E.values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m){const M=this._getUniqueIdOfMessage(m);return Ap.updateMessage(s,[M],{isRevoked:!0,revoker:u,operation:yc.revoke}),m}}if(this._sparseMessagesByConversation.has(s)){const D=Array.from(this._sparseMessagesByConversation.get(s).values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m)return m.isRevoked=!0,m.revoker=u,m}}_findMessageBySequenceAndRandom({messageList:s,sequence:n,random:g}){for(let u=0;u0){const D=new Map([...E,...m.entries()]);this._messagesByConversation.set(g,D),this._updateLatestMessageSentByMe(g),this._updateLatestMessageSentByPeer(g)}return u}storeSparseMessageList(s){if(s.length===0)return;const{conversationID:n}=s[0],g=s.length;this._sparseMessagesByConversation.has(n)||this._sparseMessagesByConversation.set(n,new Map);const u=this._sparseMessagesByConversation.get(n);for(let E=0;E=0;u--)if(g[u].flow==="out"){this._setLatestMsgSentByMe(s,g[u]);break}}}_updateLatestMessageSentByPeer(s){var n;const g=Array.from(((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]);if(g.length!==0&&s.startsWith("C2C")){for(let u=g.length-1;u>=0;u--)if(g[u].flow==="in"){this._setLatestMsgSentByPeer(s,g[u]);break}}}_getUniqueIdOfMessage(s){const{from:n,to:g,random:u,sequence:E,time:m}=s;return`${n}-${g}-${u}-${E}-${m}`}_setLatestMsgSentByPeer(s,n){this._latestMessageSentByPeerMap.set(s,n)}_setLatestMsgSentByMe(s,n){this._latestMessageSentByMeMap.set(s,n)}getLatestMsgSentByPeer(s){return this._latestMessageSentByPeerMap.get(s)}getLatestMsgSentByMe(s){return this._latestMessageSentByMeMap.get(s)}addRandomOfSentMessage(s){this._randomOfSentMessageList.add(s)}removeRandomOfSentMessage(s){this._randomOfSentMessageList.delete(s)}updateNickAndAvatarOfSentMessage(s){const{conversationID:n="",latestAvatar:g,latestNick:u,isSentByMe:E=!0}=s,m=this._messagesByConversation.get(n);if(!m)return;const D=Array.from(m.values()),M=E?"out":"in";D.forEach(T=>{const{nick:P,avatar:W,flow:iA}=T;iA===M&&(P!==u&&(T.nick=u),W!==g&&(T.avatar=g))})}isInMessageList(s){var n;const{conversationID:g}=s;if(!g||!this._messagesByConversation.has(g))return!1;const u=this._getUniqueIdOfMessage(s);return(n=this._messagesByConversation.get(g))===null||n===void 0?void 0:n.has(u)}isMessageSentByCurrentInstance(s){const{random:n}=s;return this._randomOfSentMessageList.has(n)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(s){const n=this._messagesByConversation.get(s);return n?[...n.values()]:[]}getSparseMessageList(s){const n=this._sparseMessagesByConversation.get(s);return n?[...n.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),fe.notificationCenter.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),fe.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}};function $m(s,n){const g=SB.getConversation(s);if(g?.lastMessage){const{lastMessage:u}=g,{lastTime:E,lastSequence:m,version:D}=u,{time:M,sequence:T,messageVersion:P,elements:W,cloudCustomData:iA}=n;E===M&&m===T&&D!==P&&(u.type=W[0].type,u.payload=W[0].content,u.messageForShow=zc(u.type,u.payload),u.cloudCustomData=iA,u.version=P,SB.updateConversation(s,{lastMessage:u}))}}class MR{init(){Cr.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,payload:u,sequence:E,conversationType:m,random:D,time:M,from:T,type:P}=n;if(this._canModifyMessageElement(P)){const W=n?._elements||[];W.length>=1&&(W[0].type=P,W[0].content=u)}try{let W=null,iA=null;if(m===Kr.CONV_C2C?W=yield wh(n):m===Kr.CONV_GROUP&&(W=yield RB(n)),W){let EA=`${m}${g}`;return g===Ar()&&m===Kr.CONV_C2C&&(EA=`${m}${T}`),iA={conversationType:m,from:T,to:g,time:M,random:D,sequence:E,elements:W?.elements,cloudCustomData:W?.cloudCustomData,messageVersion:W?.messageVersion,conversationID:EA},this._handleModifyMessageSuccess(iA),{code:0,data:{message:n},successLog:{message:`to:${g}`}}}}catch(W){const{errorCode:iA}=W||{};throw new gs({functionName:"modifyMessage",code:iA,moreMessage:`to:${g}`})}})}_handleModifyMessageSuccess(n){const{conversationID:g}=n,{isUpdated:u,message:E}=fe.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&fe.notificationCenter.emitOuterEvent(Dr.MESSAGE_MODIFIED,{name:Dr.MESSAGE_MODIFIED,data:[E]}),fe.notificationCenter.emitInnerEvent(so.MESSAGE_MODIFIED,{conversationID:g,message:E}),$m(g,n)}_canModifyMessageElement(n){return[VE.MSG_TEXT,VE.MSG_CUSTOM,VE.MSG_LOCATION,VE.MSG_FACE].includes(n)}}class Th{init(){const{notificationCenter:n}=fe,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(xt.RECEIVE_C2C_NEW_MESSAGE,qt.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),ws.getInstance().registerWorkflowStep(xt.RECEIVE_C2C_NEW_MESSAGE,qt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),ws.getInstance().registerWorkflowStep(xt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){ws.getInstance().executeWorkflow(xt.RECEIVE_C2C_NEW_MESSAGE,n)}_handleC2CMessagePush(n){const g=n.data||{},{messageDataHandler:u}=fe.message||{},E=[],m=new Map;return g.C2cMsgArray.forEach(D=>{const M=this._generateC2CMessage(D);this._updateMessageProfile(M);let T=M.isModified===1;u.isMessageSentByCurrentInstance(M)?M.isModified=T:T=!1,M._onlineOnlyFlag?u.isMessageSentByCurrentInstance(M)||E.push(M):vB(M)&&(u.storeConversationMessage(M)&&op({conversationUpdateFields:m,message:M}),u.isMessageSentByCurrentInstance(M)&&!T||E.push(M))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEventsAfterReceiveNewMessage(n){var g;const{messages:u=[]}=((g=n.result)===null||g===void 0?void 0:g[qt.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(u)}_emitMessageEventsAfterSyncUnreadMessage(n){var g;const{messages:u=[]}=((g=n.result)===null||g===void 0?void 0:g[qt.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(u)}_emitMessageEvents(n){const g=n?.filter(E=>E?.isModified===!0)||[];g.length>0&&fe.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:g});const u=n?.filter(E=>!E?.isModified);u.length>0&&fe.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:u})}_generateC2CMessage(n){const g=Kr.CONV_C2C,u=Wm(n),E=fe.message.messageFactory.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:Zu.IN})),{elements:m}=u;return E.setElement(m),E}_updateMessageProfile(n){var g;const{messageDataHandler:u}=fe.message||{},E=(g=fe.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T=""}=n;if(m!==E){const P=u.getLatestMsgSentByPeer(T);if(P){const{nick:W,avatar:iA}=P;r(D)||r(M)?(n.nick=l(W)?W:n.nick,n.avatar=l(iA)?iA:n.avatar):D===W&&M===iA||(u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:T,nick:D,avatar:M}))}}else{const P=u.getLatestMsgSentByMe(T);!P||D===P.nick&&M===P.avatar||u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}}_updateConversationUserProfile(n){const{conversationID:g,nick:u,avatar:E}=n,m=SB.getConversation(g),{userProfile:D={}}=m||{};D.avatar===E&&D.nick===u||SB.updateConversation(g,{userProfile:Object.assign(Object.assign({},D),{nick:u,avatar:E})})}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:u,message:E}=fe.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&fe.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),fe.notificationCenter.emitInnerEvent("ModifyMessageSuccess",n),$m(g,n)}_handleC2CMessageModify(n){n.C2cMsgModNotifys.forEach(g=>{var u;const E=Kr.CONV_C2C;let m=zm(g);const{to:D,from:M}=m;let T=`${E}${D}`;D===((u=fe.store.get("login"))===null||u===void 0?void 0:u.userId)&&(T=`${E}${M}`),m=Object.assign({conversationType:E,conversationID:T},m),this._updateMessageListDueToModify(m)})}_dispose(){const{notificationCenter:n}=fe,{InnerEventSubType:g}=n;fe.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),fe.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),fe.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class Nh{init(){const{notificationCenter:n}=fe,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(xt.RECEIVE_GROUP_NEW_MESSAGE,qt.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),ws.getInstance().registerWorkflowStep(xt.RECEIVE_GROUP_NEW_MESSAGE,qt.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){this._canExecuteReceiverNewMessageWorkFlow(n)&&ws.getInstance().executeWorkflow(xt.RECEIVE_GROUP_NEW_MESSAGE,n)}_handleGroupMessagePush(n){const g=n.data||{},{messageDataHandler:u}=fe.message,E=[],m=new Map,D=g?.GroupMsgArray;return D?.forEach(M=>{if(M.GroupInfo.NotVisible===1)return;const T=this._generateGroupMessage(M);this.updateMessageProfile(T);let P=T.isModified===1;u.isMessageSentByCurrentInstance(T)?T.isModified=P:P=!1,T._onlineOnlyFlag?u.isMessageSentByCurrentInstance(T)||E.push(T):vB(T)&&u.storeConversationMessage(T)&&(E.push(T),op({conversationUpdateFields:m,message:T}))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEvents(n){var g;const{messages:u}=((g=n.result)===null||g===void 0?void 0:g[qt.HANDLE_GROUP_NEW_MESSAGE])||{},E=u?.filter(D=>D?.isModified===!0)||[];E.length>0&&fe.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:E});const m=u?.filter(D=>!D?.isModified)||[];m.length>0&&fe.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:m})}_generateGroupMessage(n){const g=Kr.CONV_GROUP,u=OD(n),E=fe.message.messageFactory.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:Zu.IN})),{elements:m}=u;return E.setElement(m),E}updateMessageProfile(n){var g;const{messageDataHandler:u}=fe.message||{},E=(g=fe.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T="",_elements:P}=n;if(m===E){const W=u.getLatestMsgSentByMe(T);!W||D===W.nick&&M===W.avatar||u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}else if(m===Lo.CONV_SYSTEM){const{operationType:W,memberInfoList:iA,operatorInfo:EA}=P;let RA={};if(Rs(iA)?Rs(EA)||(RA=EA):[Tg.JOINED,Tg.KICKED,Tg.ADMIN_SET,Tg.ADMIN_CANCELED].includes(W)&&(RA=Object.assign({},iA[0])),!Rs(RA)){const{nick:kA="",avatar:xA=""}=RA;n.nick=kA,n.avatar=xA}}}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:u,message:E}=fe.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&fe.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),$m(g,n)}_handleGroupMessageModify(n){n.GroupMsgModNotifys.forEach(g=>{const u=Kr.CONV_GROUP;let E=PD(g);const{topicID:m,groupID:D}=E,M=m||D,T=`${u}${M}`;E=Object.assign({conversationType:u,conversationID:T,to:M},E),this._updateMessageListDueToModify(E)})}_dispose(){const{notificationCenter:n}=fe,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:g,GROUP_MESSAGE_MODIFIED:u}}=n;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,g,this._handleGroupMessagePush,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,u,this._handleGroupMessageModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(n){var g,u;const{GroupId:E,GroupType:m}=((u=(g=n?.GroupMsgArray)===null||g===void 0?void 0:g[0])===null||u===void 0?void 0:u.GroupInfo)||{},D=m===La.GRP_AVCHATROOM;return!(!$Q.getGroup(E)&&D)}}var HD=new class{constructor(){this.c2cMessageReceiver=new Th,this.groupMessageReceiver=new Nh}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const vR={createCustomMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1}},sendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],createTextMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>function(n){var g;return typeof n?.text!="string"||typeof n.text=="string"&&((g=n?.text)===null||g===void 0?void 0:g.length)===0?"payload.text must be a string":!0}(s)}}},qT={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var KT=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(s){return pA(this,void 0,void 0,function*(){try{const{conversationID:n,count:g,direction:u,sequence:E,messageSequenceList:m,shouldMarkCompleted:D=!1,getType:M}=s,T=n.replace(ka.CONV_GROUP,""),P=[];let W=E;if(u===qc.BACKWARD){if(typeof E!="number")return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};W=E+g-1}const iA=yield _h({groupID:T,count:g,messageSequence:W,messageSequenceList:m,getType:M});if(iA){const{RspMsgList:EA=[],NextReqMsgSeq:RA=0,IsFinished:kA,InvisibleMsgSeq:xA}=iA,LA=`groupID:${T} sequence:${E} reqSeq:${W} direction:${u} complete:${kA} nextSequence:${RA} remoteMsgCount:${EA.length} invisibleSequenceList:${xA}`,SA=[];for(let ne=0;ne=E),OA&&D&&this.completedHistoryConversations.add(n);const JA=MB(SA);return fe.ssoLog.info("getGroupRoamingMessagesByAnchor",LA),{messageList:JA,invisibleSequenceList:xA,nextReqMessageIDFromServer:RA,hasNoMoreHistoryMessage:OA,serverGroupTipList:P}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};throw new gs({code:g,message:u})}})}clearHistoryMessageListFetchAnchors(s){this._historyMessageListFetchAnchors.delete(s)}isHistoryMessageFetchCompleted(s){return this.completedHistoryConversations.has(s)}_parseMessage(s){var n;const g=ka.CONV_GROUP;s.Event===4&&(s.MsgBody.MsgType=Lo.MSG_GRP_TIP);const u=OD(s),E=jm.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:"in"}));return DB(((n=u.elements)===null||n===void 0?void 0:n.content)||{},E),E.setElement(u.elements),E}getC2CRoamingMessagesByAnchor(s){return pA(this,void 0,void 0,function*(){var n;try{const{conversationID:g,count:u,messageID:E,time:m,direction:D,shouldMarkCompleted:M=!1}=s;let T=m,P="";if(!m){const EA=E?fe.message.messageDataHandler.findMessage(E):null;if(T=EA?.time||0,E&&this._historyMessageListFetchAnchors.has(g)){const RA=this._historyMessageListFetchAnchors.get(g);T=RA.lastMessageTime,P=RA.messageKey}}const W=g.replace(ka.CONV_C2C,""),iA=yield Zm({count:u,lastMessageTime:T,messageKey:P,peerAccount:W,direction:D});if(iA){const{MsgList:EA=[],Complete:RA,MsgKey:kA,LastMsgTime:xA}=iA;this._historyMessageListFetchAnchors.set(g,{messageKey:kA,lastMessageTime:xA});const LA=[];for(let ne=0;ne{const{tag:E,value:m}=u;E&&E.indexOf(KD)>-1?g.profileCustomField.push({key:E,value:m}):Gd.has(E)&&(g[Gd.get(E)]=m)}),Object.assign(Object.assign({},Af),g)}parseProfileItem(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.Value})}),n}parseProfileList(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.ValueBytes})}),n}convertParamsToProfile(s){const n=[];return Object.keys(s).forEach(g=>{g!==jD&&n.push({tag:Pl[g.toUpperCase()],value:s[g]})}),s.profileCustomField&&h(s.profileCustomField)&&s.profileCustomField.forEach(g=>{n.push({tag:g.key,value:g.value})}),n}normalizeProfileFields(s){const n={},g=[];return s.forEach(u=>{const{tag:E,value:m}=u;if(E&&E.indexOf(KD)>-1&&g.push({key:E,value:m}),Gd.has(E)&&m!==void 0){const D=Gd.get(E);n[D]=m}}),g.length>0&&(n.profileCustomField=g),n}};const{generateProtocolData:wR}=fe.common;function _R(s){return pA(this,void 0,void 0,function*(){const n="profile.portrait_get_all",g={From_Account:Ar(),UserItem:[]};s.forEach(D=>{g.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:D})});const u=wR({servcmd:n,data:g}),E=`${u.head.seq}${n}`,m=yield fe.channel.sendPacket(u,{requestId:E});if(m)return function(D){const{ActionStatus:M,ErrorCode:T,ErrorDisplay:P,ErrorInfo:W,UserProfileItem:iA}=D,EA=[];return iA.map(RA=>{const{To_Account:kA,CustomSequence:xA,ResultCode:LA,ResultInfo:SA,StandardSequence:OA,ProfileItem:JA}=RA,ne=Xu.parseProfileItem(JA);EA.push({userId:kA,customSequence:xA,resultCode:LA,resultInfo:SA,standardSequence:OA,profileItem:ne})}),{actionStatus:M,errorCode:T,errorDisplay:P,errorInfo:W,userProfile:EA}}(m)})}function HE(s){return rc.getFriendMap().has(s)}const{isEmpty:WD}=fe.utils;class ef{constructor(){this._strangerProfileMap=new Map}init(){Cr.getInstance().registerApi({apiName:"getMyProfile",context:this}),Cr.getInstance().registerApi({apiName:"getUserProfile",context:this}),Cr.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=Xu.createProfile.bind(Xu);const{notificationCenter:n}=fe;ws.getInstance().registerWorkflowStep(xt.SYNC_SERVER_INFO_AFTER_LOGIN,qt.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}getMyProfile(){return pA(this,void 0,void 0,function*(){try{const n=Ar(),g=yield _R([n]);if(g){const u=this._handleProfileFormResponse(g)[0];return rc.getUserProfileMap().set(n,u),{code:0,data:u}}}catch(n){const{errorCode:g,errorInfo:u}=n;throw new gs({functionName:"getMyProfile",code:g,message:u})}})}getUserProfile(n){return pA(this,void 0,void 0,function*(){try{let{userIDList:g}=n;const{userIdListToRequest:u,profileFromCache:E}=this._filterRequestAndCacheUsers(g);if(u.length===0)return{code:0,data:E,successLog:{message:`userIDList.length:${g.length}`}};u.length>RR&&(fe.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),u.length=RR);const{data:m,error:D}=yield this._batchFetchUserProfiles(u),M=u.length,T=m.length,P=M-T;if(E.length===0&&M===P&&!WD(D))throw D;if(h(m))return m.forEach(iA=>{HE(iA.userID)?rc.getUserProfileMap().set(iA.userID,iA):this._strangerProfileMap.set(iA.userID,iA)}),{code:0,data:m.concat(E),successLog:{message:`getUserProfile query:${M} success:${T} fail:${P} from cache:${E.length}`}}}catch(g){throw new gs(g)}})}getMyProfileCacheThenServer(){return pA(this,void 0,void 0,function*(){const n=Ar(),g=rc.getUserProfileMap().has(n);return g?{code:0,data:g}:this.getMyProfile()})}updateMyProfile(n){return pA(this,void 0,void 0,function*(){const g=Ar(),u={};for(const m in n)n[m]!==void 0&&(u[m]=n[m]);const E=Xu.convertParamsToProfile(u);try{yield function(P){return pA(this,void 0,void 0,function*(){const W="profile.portrait_set",iA=wR({servcmd:W,data:P}),EA=`${iA.head.seq}${W}`,RA=yield fe.channel.sendPacket(iA,{requestId:EA});if(RA){const{ActionStatus:kA,ErrorCode:xA,ErrorDisplay:LA,ErrorInfo:SA}=RA;return{actionStatus:kA,errorCode:xA,errorDisplay:LA,errorInfo:SA}}})}({From_Account:g,ProfileItem:E});const D=rc.getUserProfile(g);let M;M=D?Object.assign(Object.assign({},D),u):Xu.createProfile(g,E);const T=!rg(D,M,["lastUpdatedTime"]);return M.lastUpdatedTime=Date.now(),rc.getUserProfileMap().set(g,M),T&&this._emitProfileUpdated(M),{code:0,data:M,successLog:{message:`profileArray: ${fe.utils.safeStringify(E)}`}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new gs({functionName:"updateMyProfile",code:D,message:M,moreMessage:`params: ${fe.utils.safeStringify(n)}`})}})}updateMyNickAndAvatar(n){return pA(this,void 0,void 0,function*(){const g=Ar(),u=Date.now(),E=rc.getUserProfile(g);let m={};m=E?Object.assign(E,n):Xu.createProfile(g,n),m.lastUpdatedTime=u,rc.getUserProfileMap().set(g,m)})}_onProfileDataModify(n){const g=function(m){const{Profile_Account:D,PushType:M,ProfileList:T}=m;return{userId:D,pushType:M,profileList:Xu.parseProfileList(T)}}(n.ProfileDataMod[0]);if(WD(g))return;const{isProfileUpdated:u,profile:E}=this._handleProfileModified(g);u&&this._emitProfileUpdated(E)}_emitProfileUpdated(n){fe.notificationCenter.emitInnerEvent(so.PROFILE_UPDATE,{name:so.PROFILE_UPDATE,data:[n]}),fe.notificationCenter.emitOuterEvent(Dr.PROFILE_UPDATED,{name:Dr.PROFILE_UPDATED,data:[n]}),SB.updateConversation(`C2C${n?.userID}`,{userProfile:n})}_dispose(){const{notificationCenter:n}=fe;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(n){const{userId:g,profileList:u}=n,E=rc.getUserProfile(g);if(!(Ar()===g||HE(g)&&E))return{isProfileUpdated:!1,profile:null};const m=Xu.normalizeProfileFields(u),D=Object.keys(m).some(W=>W===jD?this._isCustomFieldChanged(E.profileCustomField,m.profileCustomField):E[W]!==m[W]);if(!D)return{isProfileUpdated:!1,profile:E};const M=Date.now(),T=Object.prototype.hasOwnProperty.call(m,jD)?this._mergeProfileCustomField(E.profileCustomField,m.profileCustomField):E.profileCustomField,P=Object.assign(Object.assign(Object.assign({},E),m),{profileCustomField:T,lastUpdatedTime:M});return rc.getUserProfileMap().set(g,P),{isProfileUpdated:D,profile:P}}_filterRequestAndCacheUsers(n){const g=[],u=[];return n.forEach(E=>{const m=rc.getUserProfileMap().has(E);HE(E)&&m?u.push(rc.getUserProfile(E)):this._isStrangerAndProfileValid(E)?u.push(this._strangerProfileMap.get(E)):g.push(E)}),{userIdListToRequest:g,profileFromCache:u}}_handleProfileFormResponse(n){const{userProfile:g}=n;if(!Array.isArray(g))return[];const u=g.filter(m=>m.userId!=="@TLS#NOT_FOUND"&&m.userId!==""&&!WD(m.profileItem)),E=Date.now();return u.map(m=>{const D=Xu.createProfile(m.userId,m.profileItem);return D.lastUpdatedTime=E,D})}_isStrangerAndProfileValid(n){var g;if(!HE(n)){const{lastUpdatedTime:u=0}=this._strangerProfileMap.get(n)||{},E=((g=fe.store.get("cloudConfig"))===null||g===void 0?void 0:g.stranger_profile_expiration_time)||6e5;return Date.now()-u<=E}return!1}_chunkUserIDList(n,g){return Array.from({length:Math.ceil(n.length/g)},(u,E)=>n.slice(E*g,(E+1)*g))}_batchFetchUserProfiles(n){return pA(this,void 0,void 0,function*(){const g=[],u=[];let E={};return this._chunkUserIDList(n,100).forEach(m=>{g.push(_R(m))}),(yield Promise.allSettled(g)).forEach(m=>{if(m.status==="fulfilled"){const D=m.value,M=this._handleProfileFormResponse(D);h(M)&&u.push(...M)}else if(m.status==="rejected"){const{code:D,message:M}=m.reason||{};E={errorCode:D,message:M}}}),{data:u,error:E}})}_isCustomFieldChanged(n=[],g=[]){if(!h(g)||g.length===0)return!1;if(!h(n)||n.length===0)return!0;const u=new Map(n.map(E=>[E.key,E.value]));return g.some(E=>u.get(E.key)!==E.value)}_mergeProfileCustomField(n=[],g=[]){const u=h(n)?n.map(E=>Object.assign({},E)):[];return h(g)&&g.length!==0&&g.forEach(({key:E,value:m})=>{const D=u.find(M=>M.key===E);D?D.value=m:u.push({key:E,value:m})}),u}_reset(){rc.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const tf=new Map,zD=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let s=0,n=zD.length;s>(-2*m&6)):0)E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(E);try{return decodeURIComponent(escape(g))}catch(u){return console.warn(u),""}}const{isEmpty:WT}=fe.utils,{generateProtocolData:of}=fe.common;function TR(s){return pA(this,void 0,void 0,function*(){const n="im_open_status.ws_get_user_status",g=of({servcmd:n,data:{To_Account:s}}),u=`${g.head.seq}${n}`,E=yield fe.channel.sendPacket(g,{requestId:u});if(E)return function(m){const{ErrorCode:D,ErrorInfo:M,ErrorList:T=[],UserStatusList:P=[]}=m,W=P.map(EA=>{const{To_Account:RA,Status:kA,CustomStatus:xA,Detail:LA=[]}=EA;return{userID:RA,statusType:kA,customStatus:np(xA),onlineDevices:zT(LA)}}),iA=T.map(EA=>{const{To_Account:RA,Invalid_Account:kA,ErrorCode:xA,ErrorInfo:LA}=EA;return{userID:WT(kA)?RA:kA,code:xA,message:LA}});return{errorCode:D,errorInfo:M,successUserList:W,failureUserList:iA}}(E)})}function zT(s){const n=[];return s?.forEach(g=>{const{Platform:u,Status:E}=g;E==="Online"&&n.push(u)}),n}class ZT{constructor(){this._customStatus=""}init(){const{notificationCenter:n}=fe;Cr.getInstance().registerApi({apiName:"getUserStatus",context:this}),Cr.getInstance().registerApi({apiName:"setSelfStatus",context:this}),Cr.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),Cr.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),ws.getInstance().registerWorkflowStep(xt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.USER_STATUS_UPDATE,this._onReOnline,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}setSelfStatus(n){return pA(this,void 0,void 0,function*(){const g=Ar(),{customStatus:u}=n;try{return yield function(E){return pA(this,void 0,void 0,function*(){const m="im_open_status.ws_set_custom_status",D=of({servcmd:m,data:{CustomStatus:E}}),M=`${D.head.seq}${m}`,T=yield fe.channel.sendPacket(D,{requestId:M});if(T){const{ErrorCode:P,ErrorInfo:W}=T;return{errorCode:P,errorInfo:W}}})}(u),this._customStatus=u,{code:0,data:{userID:g,statusType:Gh,customStatus:u},successLog:{message:`customStatus: ${u}`}}}catch(E){const{errorCode:m,errorInfo:D}=E;throw new gs({functionName:"setSelfStatus",code:m,message:D})}})}getUserStatus(n){return pA(this,void 0,void 0,function*(){const{userIDList:g=[]}=n;if(this._isOnlyMeInArray(g))return this._getMyStatus();const u=yield this._getUserStatus(g);return Object.assign(Object.assign({},u),{successLog:{message:`userIDList length: ${g.length}`}})})}setCustomStatus(n){const g=np(n);this._customStatus=g}subscribeUserStatus(n){return pA(this,void 0,void 0,function*(){try{const{userIDList:g=[]}=n;this._checkBusinessCapabilityBits("subscribeUserStatus");const u=this._getMaxUserCount("subscribe"),E=this._sliceUserIDList(g,u),m=yield function(M){return pA(this,void 0,void 0,function*(){const{channel:T}=fe,P="im_open_status.ws_status_subscribe",W=of({servcmd:P,data:{To_Account:M}}),iA=`${W.head.seq}${P}`;return yield T.sendPacket(W,{requestId:iA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"subscribeUserStatus",code:u})}})}unsubscribeUserStatus(n){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:g=[]}=n,u=this._getMaxUserCount("unsubscribe"),E=this._sliceUserIDList(g,u),m=yield function(M){return pA(this,void 0,void 0,function*(){const{channel:T}=fe,P="im_open_status.ws_status_unsubscribe";let W={};W=M.length===0?{UnsubscribeAll:1}:{To_Account:M};const iA=of({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"unsubscribeUserStatus",code:u})}})}_onUserStatusUpdate(n){const{UserStatusList:g=[]}=n||{},u=g.map(E=>{const{To_Account:m,Status:D,CustomStatus:M,Platform:T}=E,P={userID:m,statusType:D,customStatus:np(M)};return T&&(P.onlineDevices=T),P});this._emitUserStatusUpdatedEvent(u)}_onReOnline(n){const g=np(n.data.customStatus);if(this._customStatus===g)return;this._customStatus=g;const u={userID:Ar(),statusType:Gh,customStatus:g};this._emitUserStatusUpdatedEvent(u)}_emitUserStatusUpdatedEvent(n){fe.notificationCenter.emitOuterEvent(Dr.USER_STATUS_UPDATED,{name:Dr.USER_STATUS_UPDATED,data:n})}_sliceUserIDList(n,g){return n.slice(0,g)}_parseResponse(n){const{ErrorList:g=[]}=n;return g.map(u=>{const{To_Account:E,Invalid_Account:m,ErrorCode:D,ErrorInfo:M}=u;return{userID:fe.utils.isEmpty(m)?E:m,code:D,message:M}})}_checkBusinessCapabilityBits(n){if(!fe.store.get("commercialConfig").get(jT))throw new gs({functionName:n,code:Ea.NO_USE,replacement1:n})}_getMaxUserCount(n){const g=fe.store.get("cloudConfig")||{},u={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:E,default:m}=u[n],D=g[E]||m;return parseInt(D,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:Ar(),statusType:Gh,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(n){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const g=this._getMaxUserCount("query"),u=this._sliceUserIDList(n,g),E=yield TR(u),{successUserList:m,failureUserList:D}=E||{};return{code:0,data:{successUserList:m,failureUserList:D}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"getUserStatus",code:u})}})}_isOnlyMeInArray(n){const g=Ar();return n.length===1&&n.indexOf(g)>-1}_dispose(){const{notificationCenter:n}=fe;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const ZD={getUserProfile:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},updateMyProfile:{nick:{required:!1,rules:["string"],allowEmpty:!0},avatar:{required:!1,rules:["string"],allowEmpty:!0},gender:{required:!1,rules:["string"],allowEmpty:!0},selfSignature:{required:!1,rules:["string"],allowEmpty:!0},allowType:{required:!1,rules:["string"],allowEmpty:!0},birthday:{required:!1,rules:["number"],allowEmpty:!1},language:{required:!1,rules:["string"],allowEmpty:!0},messageSettings:{required:!1,rules:["string"],allowEmpty:!0},adminForbidType:{required:!1,rules:["string"],allowEmpty:!0},level:{required:!1,rules:["number"],allowEmpty:!1},role:{required:!1,rules:["number"],allowEmpty:!0},profileCustomField:{required:!1,rules:["array"],allowEmpty:!0,customValidator:function(s){for(const n of s){if(typeof n!="object")return"Each item in profileCustomField must be an object";if(typeof n?.key!="string")return"Each item.key in profileCustomField must be a string";if(!n?.key.startsWith(KD))return'Each item.key in profileCustomField must start with "Tag_Profile_Custom"'}return!0}}},setSelfStatus:{customStatus:{required:!0,rules:["string"],allowEmpty:!0}},getUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!1,rules:["array"],allowEmpty:!0}}},XT={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class $T{constructor(){this.userProfile=new ef,this.userStatus=new ZT,this.userProfile.init(),this.userStatus.init(),jc({auth:XT,params:ZD})}}function XD(s){const n=[];if(!l(s))return n;const g=s.length;if(g===0)return n;for(let u=g-1;u>=0;u--)s[u]==="1"&&n.push(2**(g-u-1));return n}var bd,RC,kd;(function(s){s.NOT_START="notStart",s.PENDING="pending",s.RESOLVED="resolved",s.REJECTED="rejected"})(bd||(bd={})),function(s){s[s.C2C=1]="C2C",s[s.GROUP=2]="GROUP"}(RC||(RC={})),function(s){s[s.C2C=8]="C2C",s[s.GROUP=2]="GROUP"}(kd||(kd={}));class $D{constructor(){this._name="SyncConversationHandler",this._pagingStatus=bd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:n}=fe;ws.getInstance().registerWorkflowStep(xt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.CONVERSATION_RECOVER,this._syncConversationList,this),ws.getInstance().registerWorkflowStep(xt.SYNC_SERVER_INFO_AFTER_LOGIN,qt.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this),fe.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===bd.RESOLVED}_syncConversationListAfterLogin(){return pA(this,void 0,void 0,function*(){return this._pagingStatus=bd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=fe;n.debug("_syncConversationList","start");try{const u=yield this._pagingGetConversationList(!0);this._pagingStatus=bd.RESOLVED;const{conversationList:E=[]}=u||{};return n.info("_syncConversationList",`success count:${E.length}`),u}catch(u){const E=new gs(u);n.error("_syncConversationList",`fail ${g(u)}`,{error:E})}})}_pagingGetConversationList(n){return pA(this,void 0,void 0,function*(){try{const g=[];this._pagingStatus=bd.PENDING;const u=yield function(iA){return pA(this,void 0,void 0,function*(){const{fromAccount:EA,pagingTimeStamp:RA,pagingStartIndex:kA,pagingPinnedTimeStamp:xA,pagingPinnedStartIndex:LA}=iA;return gg({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:EA,StartIndex:kA,TimeStamp:RA,TopStartIndex:LA,TopTimeStamp:xA}})})}({fromAccount:Ar(),pagingTimeStamp:n?this._pagingTimeStamp:0,pagingStartIndex:n?this._pagingStartIndex:0,pagingPinnedTimeStamp:n?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:n?this._pagingPinnedStartIndex:0}),{CompleteFlag:E,SessionItem:m=[],TimeStamp:D,StartIndex:M,TopTimeStamp:T,TopStartIndex:P}=u||{};let W=[];if(E===1&&(this._pagingStatus=bd.RESOLVED),m.length>0&&(W=this._getConversationOptions(m),g.push(...W)),fe.notificationCenter.emitInnerEvent(so.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:W}),this._pagingTimeStamp=D,this._pagingStartIndex=M,this._pagingPinnedTimeStamp=T,this._pagingPinnedStartIndex=P,E!==1){const{conversationList:iA}=yield this._pagingGetConversationList(n);g.push(...iA)}return{conversationList:g}}catch(g){throw g}})}_getConversationOptions(n){const{utils:{isUndefined:g}}=fe,u=this._convertConversationKey(n);return this._filterValidConversations(u).map(E=>(g(E.lastMsg)&&(E.lastMsg={elements:[]}),E.type===RC.C2C?this._assembleC2COption(E):this._assembleGroupOption(E)))}_filterValidConversations(n){return n.filter(({type:g,userID:u})=>g===RC.C2C&&!function(E){let m;return E.startsWith(Lo.CONV_C2C)&&(m=E.replace(Lo.CONV_C2C,"")),m==="@TLS#ERROR"||m==="@TLS#NOT_FOUND"}(u)||g===2)}_assembleC2COption(n){var g,u,E,m,D,M,T,P;const W=this._createUserprofile(n);return{conversationID:`${Lo.CONV_C2C}${n.userID}`,type:Lo.CONV_C2C,lastMessage:{lastTime:n.time,lastSequence:n.sequence,fromAccount:n.lastC2CMsgFromAccount,type:!((g=n.lastMsg)===null||g===void 0)&&g.elements[0]?(u=n.lastMsg)===null||u===void 0?void 0:u.elements[0].type:null,payload:!((E=n.lastMsg)===null||E===void 0)&&E.elements[0]?this._amendLayersOverLimitProp(n.lastMsg.elements[0].content):null,cloudCustomData:((M=(D=(m=n.lastMsg)===null||m===void 0?void 0:m.elements)===null||D===void 0?void 0:D[0])===null||M===void 0?void 0:M.cloudCustomData)||"",isRevoked:n.lastMessageFlag===kd.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(n),revoker:((P=(T=n.lastMsg)===null||T===void 0?void 0:T.revokerInfo)===null||P===void 0?void 0:P.revoker)||null},unreadCount:0,userProfile:W,peerReadTime:n.peerReadTime,isPinned:n.isPinned===1,customData:n.customMark||"",markList:XD(n.standardMark),conversationGroupList:[],remark:n.friendRemark||"",messageRemindType:this._transMsgRemindType(n.messageRemindType)}}_createUserprofile(n){var g;const{userID:u,nick:E,peerAvatar:m}=n,D=[{tag:"Tag_Profile_IM_Nick",value:E},{tag:"Tag_Profile_IM_Image",value:m}];return(g=fe.user.userProfile)===null||g===void 0?void 0:g.createProfile(u,D)}_computeIsPeerRead(n){const g=Ar(),{lastC2CMsgFromAccount:u,time:E,c2cPeerReadTime:m}=n;return u===g&&E<=m}_assembleGroupOption(n){var g,u,E,m,D;return{conversationID:`${Lo.CONV_GROUP}${n.groupID}`,type:Lo.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:n.time,lastSequence:n.sequence,fromAccount:n.msgGroupFromAccount},this._patchTypeAndPayload(n)),{cloudCustomData:((E=(u=(g=n.lastMsg)===null||g===void 0?void 0:g.elements)===null||u===void 0?void 0:u[0])===null||E===void 0?void 0:E.cloudCustomData)||"",isRevoked:n.lastMessageFlag===kd.GROUP,onlineOnlyFlag:!1,nick:n.msgGroupFromNickName||"",nameCard:n.msgGroupFromCardName||"",revoker:((D=(m=n.lastMsg)===null||m===void 0?void 0:m.revokerInfo)===null||D===void 0?void 0:D.revoker)||null}),groupProfile:{groupID:n.groupID,name:n.groupNick,avatar:n.groupImage,type:n.groupType,nextMessageSeq:n.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(n),peerReadTime:0,isPinned:n.isPinned===1,version:0,customData:n.customMark||"",markList:XD(n.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(n.messageRemindType),subType:n.groupType}}_convertConversationKey(n){return n.map(g=>({type:g.Type,userID:g.To_Account,nick:g.C2cNick,peerAvatar:g.C2cImage,time:g.MsgTimeStamp,sequence:g.MsgSeq,lastC2CMsgFromAccount:g.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(g.LastMsg),lastMessageFlag:g.LastMsgFlags,c2cPeerReadTime:g.C2cPeerReadTime,peerReadTime:g.C2cPeerReadTime,friendRemark:g.C2cRemark,isPinned:g.TopFlags,standardMark:g.StandardMark,customMark:g.CustomMark,messageRemindType:g.MsgRecvOption,groupID:g.ToAccount,groupNick:g.GroupNick,groupImage:g.GroupImage,groupType:g.GroupType,nextMessageSeq:g.GroupNextMsgSeq,msgGroupFromAccount:g.MsgGroupFrom_Account,msgGroupFromNickName:g.MsgGroupFromNickName,msgGroupFromCardName:g.MsgGroupFromCardName,unreadCount:g.UnreadMsgCount,noUnreadCount:g.GroupIgnoredUnreadSeqCount}))}_convertLastMsgKey(n){var g,u,E;const{utils:{isEmpty:m}}=fe;if(m(n))return null;let D="",M=null;if(!m(n.GroupTips)){const{From_Account:T,GroupName:P}=((g=n.GroupTips)===null||g===void 0?void 0:g.GroupInfo)||{};D=Lo.MSG_GRP_TIP,M=Object.assign(Object.assign({},this._parseContent(D,n.GroupTips.MsgBody)),{groupProfile:{from:T,groupName:P}})}return n.MsgBody&&(D=(u=n.MsgBody[0])===null||u===void 0?void 0:u.MsgType,M=this._parseContent(D,n.MsgBody[0])),{event:n.Event,elements:[{type:D,content:M,cloudCustomData:n.CloudCustomData}],revokerInfo:{revoker:(E=n.RevokerInfo)===null||E===void 0?void 0:E.Revoker_Account}}}_parseContent(n,g){var u;if(!g)return g;const E=fe.message.messageFactory.getElementClass(n);return E?(u=E.parseServerPushElement(g))===null||u===void 0?void 0:u.content:g}_amendLayersOverLimitProp(n){const{LayersOverLimit:g}=n;return Do(n,["LayersOverLimit"]).layersOverLimit=g===1,n}_transMsgRemindType(n){let g="";return n===0?g=Lo.MSG_REMIND_ACPT_AND_NOTE:n===1?g=Lo.MSG_REMIND_DISCARD:n===2?g=Lo.MSG_REMIND_ACPT_NOT_NOTE:n===3&&(g=Lo.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}_patchTypeAndPayload(n){var g;const{utils:{isUndefined:u}}=fe,{event:E,elements:m=[]}=n.lastMsg||{};return u(E)?{type:m[0]?m[0].type:null,payload:m[0]?this._amendLayersOverLimitProp(m[0].content):null}:{type:Lo.MSG_GRP_TIP,payload:((g=m?.[0])===null||g===void 0?void 0:g.content)||{}}}_computeGroupUnreadCount(n){const{unreadCount:g=0,noUnreadCount:u=0}=n,E=g-u;return E>0?E:0}_reset(){this._pagingStatus=bd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:n}=fe;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class AS{constructor(){this.syncConversationHandler=new $D,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Zr}`);var eS={create:function(s){var n,g;const{SDKAppID:u,testEnv:E=!1,devMode:m=!1,unlimitedAVChatRoom:D=!1,scene:M="",oversea:T=!1,instance:P,disableIndependentDomain:W=!1,proxyServer:iA=""}=s;let EA=u;if(!function(kA){if(typeof kA=="number")return!0;const xA=Number(kA);return!Number.isNaN(xA)}(EA))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(EA=Number(EA),da.has(EA))return da.get(EA);let RA=null;if(P)RA=P,RA._workflowManager&&ws.setInstance(RA._workflowManager),RA._pluginManager&&RA._pluginManager.installBuiltInPlugin(yB),P.isReady()&&((g=(n=ws.getInstance()).executeWorkflow)===null||g===void 0||g.call(n,xt.SYNC_SERVER_INFO_AFTER_LOGIN));else{const kA=function(){function ne(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${ne()+ne()}${ne()}${ne()}${ne()}${ne()}${ne()}${ne()}`}();fe.init({sdkAppId:EA,instanceId:kA,testEnv:E,devMode:m,unlimitedAVChatRoom:D,disableIndependentDomain:W,scene:M,oversea:T,sdkEdition:Km,version:Zr,proxyServer:iA}),ws.getInstance().init(),fe.message=new qD,fe.user=new $T,fe.login=new vh,fe.conversation=new AS,nu.getInstance().installBuiltInPlugin(yB),RA=Cr.getInstance().exposeApiForClient(),RA._workflowManager=ws.getInstance(),RA._pluginManager=nu.getInstance();const{utils:{IS_WORKER_AVAILABLE:xA,USER_AGENT:LA,getPlatformType:SA,isIOSWebView:OA}}=fe,JA=`instanceID:${kA} SDKAppID:${u} platform:${HA} host:${SA()} isIOSWebView:${OA} workerAvailable:${xA} UserAgent:${LA}`;fe.ssoLog.info("sdkConstruct",JA)}return da.set(EA,RA),RA},TSignaling:Hc,EVENT:Dr,VERSION:Zr,TYPES:Lo};return eS})}(W1)),W1.exports}var FoA=UoA();const ig=BW(FoA);var z1={exports:{}},OoA=z1.exports,t8;function PoA(){return t8||(t8=1,function(t,i){(function(r,l){t.exports=l()})(OoA,function(){function r(oe,je){if(!(oe instanceof je))throw new TypeError("Cannot call a class as a function")}function l(oe,je){for(var Dt=0;Dt"u"&&typeof uni.requireNativePlugin=="function",WA=TA&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios",ge=(TA&&uni.getDeviceInfo().platform.toLocaleLowerCase(),lA||rA||mA||IA||cA||TA),ue=U!==void 0&&(U.nativeModuleProxy!==void 0||U.ReactNative!==void 0),xe=rA?qq:mA?tt:IA?swan:cA?my:lA?wx:TA?uni:{},Be=function(oe){if(k(oe)!=="object"||oe===null)return!1;var je=Object.getPrototypeOf(oe);if(je===null)return!0;for(var Dt=je;Object.getPrototypeOf(Dt)!==null;)Dt=Object.getPrototypeOf(Dt);return je===Dt};function ut(oe){if(oe==null)return!0;if(typeof oe=="boolean")return!1;if(typeof oe=="number")return oe===0;if(typeof oe=="string"||typeof oe=="function"||Array.isArray(oe))return oe.length===0;if(oe instanceof Error)return oe.message==="";if(Be(oe)){for(var je in oe)if(Object.prototype.hasOwnProperty.call(oe,je))return!1;return!0}return!1}var pt=function(){return I(function oe(){r(this,oe),this._n="WebRequest"},[{key:"request",value:function(oe,je){var Dt=this,ni="".concat(this._n,".request"),Jt=oe.downloadUrl||"",gi=(oe.method||"PUT").toUpperCase(),Fi=oe.url;if(console.log("%c tim-upload-plugin %c","background:#0abf5b; padding:1px; border-radius:3px; color: #fff","background:transparent","".concat(ni," URL:").concat(Fi)),oe.qs){var To=function(ki){var ns=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"&",jo=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"=";return ut(ki)?"":Be(ki)?Object.keys(ki).map(function($i){var jt=encodeURIComponent($i)+jo;return Array.isArray(ki[$i])?ki[$i].map(function(io){return jt+encodeURIComponent(io)}).join(ns):jt+encodeURIComponent(ki[$i])}).filter(Boolean).join(ns):void 0}(oe.qs);To&&(Fi+="".concat(Fi.indexOf("?")===-1?"?":"&").concat(To))}var to=new XMLHttpRequest;to.open(gi,Fi,!0),to.responseType=oe.dataType||"text";var uo=oe.headers||{};if(oe.uploadByIP&&(uo=w(w({},uo),{},{host:oe.uploadIP})),!ut(uo))for(var Vs in uo)uo.hasOwnProperty(Vs)&&Vs.toLowerCase()!=="content-length"&&Vs.toLowerCase()!=="user-agent"&&Vs.toLowerCase()!=="origin"&&Vs.toLowerCase()!=="host"&&to.setRequestHeader(Vs,uo[Vs]);return to.onload=function(){if(to.status===200)je(null,Dt._xhrRes(to,Dt._xhrBody(to,Jt,oe.uploadByIP&&oe.uploadIP),uo));else{if(oe.uploadIP&&oe.url.indexOf(oe.uploadIP)===-1)return oe.url=function(ns,jo){return ns.replace(/^http(s)?:\/\/(.*?)\//,"https://".concat(jo,"/"))}(oe.url,oe.uploadIP),oe.uploadByIP=!0,Dt.request(oe,je);var ki={code:to.status,message:JSON.stringify(to.responseText)};je(ki,Dt._xhrRes(to,Dt._xhrBody(to,Jt,oe.uploadByIP&&oe.uploadIP),uo))}},to.onerror=function(ki){var ns=Dt._xhrBody(to,Jt,oe.uploadByIP&&oe.uploadIP),jo={code:to.status,message:JSON.stringify(to.responseText)};ns||to.statusText||to.status!==0||(ki.message="CORS blocked or network error"),je(jo,Dt._xhrRes(to,ns)),jo=null},oe.onProgress&&to.upload&&(to.upload.onprogress=function(ki){var ns=ki.total,jo=ki.loaded,$i=Math.floor(100*jo/ns);oe.onProgress({total:ns,loaded:jo,percent:($i>=100?100:$i)/100})}),to.send(oe.resources),to}},{key:"_xhrRes",value:function(oe,je){var Dt={};return oe.getAllResponseHeaders().trim().split(`
+`).forEach(function(ni){if(ni){var Jt=ni.indexOf(":"),gi=ni.substr(0,Jt).trim().toLowerCase(),Fi=ni.substr(Jt+1).trim();Dt[gi]=Fi}}),{statusCode:oe.status,statusMessage:oe.statusText,headers:Dt,data:je}}},{key:"_xhrBody",value:function(oe,je,Dt){return oe.status===200&&je?{location:je,uploadIP:Dt}:{response:oe.responseText,uploadIP:Dt}}}])}(),ze=["unknown","image","video","audio","log"],_e=["name"],We=function(){return I(function oe(){r(this,oe)},[{key:"request",value:function(oe,je){var Dt=this,ni=oe.resources,Jt=ni===void 0?"":ni,gi=oe.headers,Fi=gi===void 0?{}:gi,To=oe.url,to=oe.downloadUrl,uo=to===void 0?"":to,Vs=To,ki=null,ns=uo.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/),jo=decodeURIComponent(ns[3]),$i=jo.indexOf("?")>-1?jo.split("?")[0]:jo,jt={key:oe.fileKey?oe.fileKey:$i,success_action_status:200,"Content-Type":""},io={};if(WA){var bi=To.split("?sign=");if(bi.length>1){var vs=bi[1];Vs="".concat(bi[0],"?sign=").concat(encodeURIComponent("".concat(vs))),io.sign=decodeURIComponent(vs),io.signature=decodeURIComponent(vs)}}var HA={url:Vs,header:Fi,name:"file",filePath:Jt,formData:w(w({},jt),io),timeout:oe.timeout||3e5};if(cA){var ce=HA;ce.name,HA=w(w({},function(Ve,Ut){if(Ve==null)return{};var nt,It,Xt=function(be,Xe){if(be==null)return{};var vt={};for(var wt in be)if({}.hasOwnProperty.call(be,wt)){if(Xe.includes(wt))continue;vt[wt]=be[wt]}return vt}(Ve,Ut);if(Object.getOwnPropertySymbols){var $t=Object.getOwnPropertySymbols(Ve);for(It=0;It<$t.length;It++)nt=$t[It],Ut.includes(nt)||{}.propertyIsEnumerable.call(Ve,nt)&&(Xt[nt]=Ve[nt])}return Xt}(ce,_e)),{},{fileName:"file",fileType:ze[oe.fileType]})}return(ki=xe.uploadFile(w(w({},HA),{},{success:function(Ve){Dt._handleResponse({response:Ve,downloadUrl:uo,callback:je})},fail:function(Ve){Dt._handleResponse({response:Ve,downloadUrl:uo,callback:je})}}))).onProgressUpdate&&ki.onProgressUpdate(function(Ve){oe.onProgress&&oe.onProgress({total:Ve.totalBytesExpectedToSend,loaded:Ve.totalBytesSent,percent:Math.floor(Ve.progress)/100})}),ki}},{key:"_handleResponse",value:function(oe){var je=oe.downloadUrl,Dt=oe.response,ni=oe.callback,Jt=Dt.header,gi={};if(Jt)for(var Fi in Jt)Jt.hasOwnProperty(Fi)&&(gi[Fi.toLowerCase()]=Jt[Fi]);var To=+Dt.statusCode;To===200?ni(null,{statusCode:To,headers:gi,data:w(w({},Dt.data),{},{location:je})}):ni({code:To,message:JSON.stringify(Dt.data)},{statusCode:To,headers:gi,data:void 0})}}])}(),Le=function(){return I(function oe(){r(this,oe)},[{key:"request",value:function(oe,je){var Dt=this,ni=oe.resources,Jt=ni===void 0?"":ni,gi=oe.fileKey,Fi=gi===void 0?"":gi,To=oe.url,to=oe.downloadUrl,uo=to===void 0?"":to,Vs=new FormData;Vs.append("key",Fi),Vs.append("success_action_status",200),Vs.append("file",{uri:Jt,type:"application/octet-stream",name:"uploaded_file"}),fetch(To,{method:"POST",headers:{"Content-Type":"multipart/form-data"},body:Vs}).then(function(ki){Dt._handleResponse({response:ki,downloadUrl:uo,callback:je})}).catch(function(ki){Dt._handleResponse({response:ki,downloadUrl:uo,callback:je})})}},{key:"_handleResponse",value:function(oe){var je=oe.downloadUrl,Dt=oe.response,ni=oe.callback,Jt=Dt.headers,gi=Dt.status,Fi=Jt&&Jt.map||{};gi===200?ni(null,{statusCode:200,headers:Fi,data:{location:je}}):ni({code:gi,message:JSON.stringify(Dt)},{statusCode:gi,headers:Fi,data:void 0})}}])}();return function(){return I(function oe(){r(this,oe),this.retry=1,this.tryCount=0,this.systemClockOffset=0,this.httpRequest=ge?new We:ue?new Le:new pt,console.log("TIMUploadPlugin.VERSION: ".concat("1.4.3"))},[{key:"uploadFile",value:function(oe,je){var Dt=this;return this.httpRequest.request(oe,function(ni,Jt){ni&&Dt.tryCount=3e4&&(this.systemClockOffset=To-Fi,je=!0)}else Math.floor(oe.statusCode/100)===5&&(je=!0)}return je}}],[{key:"getVersion",value:function(){return"1.4.3"}}])}()})}(z1)),z1.exports}var xoA=PoA();const YoA=BW(xoA);/**
* @vue/shared v3.5.13
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
-**//*! #__NO_SIDE_EFFECTS__ */function O3(t){const i=Object.create(null);for(const r of t.split(","))i[r]=1;return r=>r in i}const fa={},__=[],yQ=()=>{},ioA=()=>!1,yY=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),P3=t=>t.startsWith("onUpdate:"),eI=Object.assign,x3=(t,i)=>{const r=t.indexOf(i);r>-1&&t.splice(r,1)},ooA=Object.prototype.hasOwnProperty,qr=(t,i)=>ooA.call(t,i),Ms=Array.isArray,T_=t=>DY(t)==="[object Map]",wZ=t=>DY(t)==="[object Set]",$s=t=>typeof t=="function",fg=t=>typeof t=="string",lm=t=>typeof t=="symbol",Ta=t=>t!==null&&typeof t=="object",_Z=t=>(Ta(t)||$s(t))&&$s(t.then)&&$s(t.catch),TZ=Object.prototype.toString,DY=t=>TZ.call(t),soA=t=>DY(t).slice(8,-1),NZ=t=>DY(t)==="[object Object]",Y3=t=>fg(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,ML=O3(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),SY=t=>{const i=Object.create(null);return r=>i[r]||(i[r]=t(r))},noA=/-(\w)/g,eh=SY(t=>t.replace(noA,(i,r)=>r?r.toUpperCase():"")),roA=/\B([A-Z])/g,Wy=SY(t=>t.replace(roA,"-$1").toLowerCase()),MY=SY(t=>t.charAt(0).toUpperCase()+t.slice(1)),qK=SY(t=>t?`on${MY(t)}`:""),Oy=(t,i)=>!Object.is(t,i),v1=(t,...i)=>{for(let r=0;r{Object.defineProperty(t,i,{configurable:!0,enumerable:!1,writable:l,value:r})},Yj=t=>{const i=parseFloat(t);return isNaN(i)?t:i},aoA=t=>{const i=fg(t)?Number(t):NaN;return isNaN(i)?t:i};let pz;const vY=()=>pz||(pz=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function hr(t){if(Ms(t)){const i={};for(let r=0;r{if(r){const l=r.split(coA);l.length>1&&(i[l[0].trim()]=l[1].trim())}}),i}function Xi(t){let i="";if(fg(t))i=t;else if(Ms(t))for(let r=0;r!!(t&&t.__v_isRef===!0),Di=t=>fg(t)?t:t==null?"":Ms(t)||Ta(t)&&(t.toString===TZ||!$s(t.toString))?kZ(t)?Di(t.value):JSON.stringify(t,LZ,2):String(t),LZ=(t,i)=>kZ(i)?LZ(t,i.value):T_(i)?{[`Map(${i.size})`]:[...i.entries()].reduce((r,[l,u],B)=>(r[KK(l,B)+" =>"]=u,r),{})}:wZ(i)?{[`Set(${i.size})`]:[...i.values()].map(r=>KK(r))}:lm(i)?KK(i):Ta(i)&&!Ms(i)&&!NZ(i)?String(i):i,KK=(t,i="")=>{var r;return lm(t)?`Symbol(${(r=t.description)!=null?r:i})`:t};/**
+**//*! #__NO_SIDE_EFFECTS__ */function QW(t){const i=Object.create(null);for(const r of t.split(","))i[r]=1;return r=>r in i}const ya={},x_=[],vQ=()=>{},VoA=()=>!1,ZY=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),pW=t=>t.startsWith("onUpdate:"),oI=Object.assign,mW=(t,i)=>{const r=t.indexOf(i);r>-1&&t.splice(r,1)},JoA=Object.prototype.hasOwnProperty,Wr=(t,i)=>JoA.call(t,i),Ms=Array.isArray,Y_=t=>XY(t)==="[object Map]",I6=t=>XY(t)==="[object Set]",$s=t=>typeof t=="function",fg=t=>typeof t=="string",dm=t=>typeof t=="symbol",Na=t=>t!==null&&typeof t=="object",u6=t=>(Na(t)||$s(t))&&$s(t.then)&&$s(t.catch),E6=Object.prototype.toString,XY=t=>E6.call(t),HoA=t=>XY(t).slice(8,-1),d6=t=>XY(t)==="[object Object]",fW=t=>fg(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,HL=QW(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$Y=t=>{const i=Object.create(null);return r=>i[r]||(i[r]=t(r))},qoA=/-(\w)/g,oh=$Y(t=>t.replace(qoA,(i,r)=>r?r.toUpperCase():"")),KoA=/\B([A-Z])/g,tD=$Y(t=>t.replace(KoA,"-$1").toLowerCase()),AV=$Y(t=>t.charAt(0).toUpperCase()+t.slice(1)),mj=$Y(t=>t?`on${AV(t)}`:""),Hy=(t,i)=>!Object.is(t,i),Z1=(t,...i)=>{for(let r=0;r