@winspan/claude-forge 8.17.0 → 8.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web/server.d.ts +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +319 -0
- package/dist/web/server.js.map +1 -1
- package/dist/web/static/index.html +500 -1
- package/package.json +1 -1
package/dist/web/server.d.ts
CHANGED
package/dist/web/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,qBAAa,SAAS;IAKR,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEX,OAAO,EAAE,gBAAgB;IAO7C,OAAO,CAAC,WAAW;IAi9Cb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
package/dist/web/server.js
CHANGED
|
@@ -18,10 +18,12 @@ export class WebServer {
|
|
|
18
18
|
options;
|
|
19
19
|
app;
|
|
20
20
|
server = null;
|
|
21
|
+
agents;
|
|
21
22
|
constructor(options) {
|
|
22
23
|
this.options = options;
|
|
23
24
|
this.app = express();
|
|
24
25
|
this.app.use(express.json());
|
|
26
|
+
this.agents = options.agents;
|
|
25
27
|
this.setupRoutes();
|
|
26
28
|
}
|
|
27
29
|
setupRoutes() {
|
|
@@ -980,6 +982,323 @@ export class WebServer {
|
|
|
980
982
|
res.status(500).json({ error: String(err) });
|
|
981
983
|
}
|
|
982
984
|
});
|
|
985
|
+
// ── Agent & Skill Management APIs ────────────────────────────────────────
|
|
986
|
+
// GET /api/agents — list all agents (official + user)
|
|
987
|
+
this.app.get('/api/agents', (_req, res) => {
|
|
988
|
+
try {
|
|
989
|
+
const agentsDir = path.join(homedir(), '.claude', 'agents');
|
|
990
|
+
const official = this.agents?.getAll() || [];
|
|
991
|
+
const userAgents = [];
|
|
992
|
+
if (fs.existsSync(agentsDir)) {
|
|
993
|
+
const files = fs.readdirSync(agentsDir).filter(f => f.endsWith('.md'));
|
|
994
|
+
for (const file of files) {
|
|
995
|
+
const name = file.replace('.md', '');
|
|
996
|
+
if (official.some((a) => a.name === name))
|
|
997
|
+
continue; // Skip official agents
|
|
998
|
+
const content = fs.readFileSync(path.join(agentsDir, file), 'utf-8');
|
|
999
|
+
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
1000
|
+
if (match) {
|
|
1001
|
+
const fm = match[1];
|
|
1002
|
+
const descMatch = fm.match(/description:\s*["']?([^"'\n]+)["']?/);
|
|
1003
|
+
const verMatch = fm.match(/version:\s*["']?([^"'\n]+)["']?/);
|
|
1004
|
+
userAgents.push({
|
|
1005
|
+
name,
|
|
1006
|
+
description: descMatch?.[1] || '',
|
|
1007
|
+
version: verMatch?.[1],
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
res.json({ official, user: userAgents });
|
|
1013
|
+
}
|
|
1014
|
+
catch (err) {
|
|
1015
|
+
logger.warn(`[Web] Failed to list agents: ${err}`);
|
|
1016
|
+
res.status(500).json({ error: String(err) });
|
|
1017
|
+
}
|
|
1018
|
+
});
|
|
1019
|
+
// GET /api/agents/:name — get agent details
|
|
1020
|
+
this.app.get('/api/agents/:name', (req, res) => {
|
|
1021
|
+
try {
|
|
1022
|
+
const { name } = req.params;
|
|
1023
|
+
const agentsDir = path.join(homedir(), '.claude', 'agents');
|
|
1024
|
+
const filePath = path.join(agentsDir, `${name}.md`);
|
|
1025
|
+
if (!fs.existsSync(filePath)) {
|
|
1026
|
+
res.status(404).json({ error: 'Agent not found' });
|
|
1027
|
+
return;
|
|
1028
|
+
}
|
|
1029
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
1030
|
+
const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
1031
|
+
if (!match) {
|
|
1032
|
+
res.json({ name, content });
|
|
1033
|
+
return;
|
|
1034
|
+
}
|
|
1035
|
+
const fm = match[1];
|
|
1036
|
+
const body = match[2];
|
|
1037
|
+
const descMatch = fm.match(/description:\s*["']?([^"'\n]+)["']?/);
|
|
1038
|
+
const verMatch = fm.match(/version:\s*["']?([^"'\n]+)["']?/);
|
|
1039
|
+
const toolsMatch = fm.match(/tools:\s*(.+)/);
|
|
1040
|
+
res.json({
|
|
1041
|
+
name,
|
|
1042
|
+
description: descMatch?.[1] || '',
|
|
1043
|
+
version: verMatch?.[1],
|
|
1044
|
+
tools: toolsMatch?.[1],
|
|
1045
|
+
content,
|
|
1046
|
+
});
|
|
1047
|
+
}
|
|
1048
|
+
catch (err) {
|
|
1049
|
+
logger.warn(`[Web] Failed to get agent ${req.params.name}: ${err}`);
|
|
1050
|
+
res.status(500).json({ error: String(err) });
|
|
1051
|
+
}
|
|
1052
|
+
});
|
|
1053
|
+
// PUT /api/agents/:name — update agent content
|
|
1054
|
+
this.app.put('/api/agents/:name', (req, res) => {
|
|
1055
|
+
try {
|
|
1056
|
+
const { name } = req.params;
|
|
1057
|
+
const { content } = req.body;
|
|
1058
|
+
if (!content || typeof content !== 'string') {
|
|
1059
|
+
res.status(400).json({ error: 'Missing content' });
|
|
1060
|
+
return;
|
|
1061
|
+
}
|
|
1062
|
+
const agentsDir = path.join(homedir(), '.claude', 'agents');
|
|
1063
|
+
const filePath = path.join(agentsDir, `${name}.md`);
|
|
1064
|
+
if (!fs.existsSync(filePath)) {
|
|
1065
|
+
res.status(404).json({ error: 'Agent not found' });
|
|
1066
|
+
return;
|
|
1067
|
+
}
|
|
1068
|
+
// Backup before editing
|
|
1069
|
+
const backupDir = path.join(homedir(), '.claude-forge', 'backups', 'agents');
|
|
1070
|
+
fs.mkdirSync(backupDir, { recursive: true });
|
|
1071
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1072
|
+
const backupPath = path.join(backupDir, `${name}-${timestamp}.md`);
|
|
1073
|
+
fs.copyFileSync(filePath, backupPath);
|
|
1074
|
+
// Write new content
|
|
1075
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
1076
|
+
logger.info(`[Web] Updated agent ${name} (backup: ${backupPath})`);
|
|
1077
|
+
res.json({ success: true, backup: backupPath });
|
|
1078
|
+
}
|
|
1079
|
+
catch (err) {
|
|
1080
|
+
logger.warn(`[Web] Failed to update agent ${req.params.name}: ${err}`);
|
|
1081
|
+
res.status(500).json({ error: String(err) });
|
|
1082
|
+
}
|
|
1083
|
+
});
|
|
1084
|
+
// GET /api/skills — list all skills (official + user)
|
|
1085
|
+
this.app.get('/api/skills', (_req, res) => {
|
|
1086
|
+
try {
|
|
1087
|
+
const skillsDir = path.join(homedir(), '.claude', 'skills');
|
|
1088
|
+
const skills = [];
|
|
1089
|
+
if (fs.existsSync(skillsDir)) {
|
|
1090
|
+
const files = fs.readdirSync(skillsDir).filter(f => f.endsWith('.md'));
|
|
1091
|
+
for (const file of files) {
|
|
1092
|
+
const name = file.replace('.md', '');
|
|
1093
|
+
const content = fs.readFileSync(path.join(skillsDir, file), 'utf-8');
|
|
1094
|
+
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
1095
|
+
if (match) {
|
|
1096
|
+
const fm = match[1];
|
|
1097
|
+
const descMatch = fm.match(/description:\s*["']?([^"'\n]+)["']?/);
|
|
1098
|
+
const verMatch = fm.match(/version:\s*["']?([^"'\n]+)["']?/);
|
|
1099
|
+
const sourceMatch = fm.match(/source:\s*["']?([^"'\n]+)["']?/);
|
|
1100
|
+
skills.push({
|
|
1101
|
+
name,
|
|
1102
|
+
description: descMatch?.[1] || '',
|
|
1103
|
+
version: verMatch?.[1],
|
|
1104
|
+
source: sourceMatch?.[1] || 'user',
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
res.json({ skills });
|
|
1110
|
+
}
|
|
1111
|
+
catch (err) {
|
|
1112
|
+
logger.warn(`[Web] Failed to list skills: ${err}`);
|
|
1113
|
+
res.status(500).json({ error: String(err) });
|
|
1114
|
+
}
|
|
1115
|
+
});
|
|
1116
|
+
// GET /api/skills/:name — get skill details
|
|
1117
|
+
this.app.get('/api/skills/:name', (req, res) => {
|
|
1118
|
+
try {
|
|
1119
|
+
const { name } = req.params;
|
|
1120
|
+
const skillsDir = path.join(homedir(), '.claude', 'skills');
|
|
1121
|
+
const filePath = path.join(skillsDir, `${name}.md`);
|
|
1122
|
+
if (!fs.existsSync(filePath)) {
|
|
1123
|
+
res.status(404).json({ error: 'Skill not found' });
|
|
1124
|
+
return;
|
|
1125
|
+
}
|
|
1126
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
1127
|
+
const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
1128
|
+
if (!match) {
|
|
1129
|
+
res.json({ name, content });
|
|
1130
|
+
return;
|
|
1131
|
+
}
|
|
1132
|
+
const fm = match[1];
|
|
1133
|
+
const body = match[2];
|
|
1134
|
+
const descMatch = fm.match(/description:\s*["']?([^"'\n]+)["']?/);
|
|
1135
|
+
const verMatch = fm.match(/version:\s*["']?([^"'\n]+)["']?/);
|
|
1136
|
+
const sourceMatch = fm.match(/source:\s*["']?([^"'\n]+)["']?/);
|
|
1137
|
+
res.json({
|
|
1138
|
+
name,
|
|
1139
|
+
description: descMatch?.[1] || '',
|
|
1140
|
+
version: verMatch?.[1],
|
|
1141
|
+
source: sourceMatch?.[1] || 'user',
|
|
1142
|
+
content,
|
|
1143
|
+
});
|
|
1144
|
+
}
|
|
1145
|
+
catch (err) {
|
|
1146
|
+
logger.warn(`[Web] Failed to get skill ${req.params.name}: ${err}`);
|
|
1147
|
+
res.status(500).json({ error: String(err) });
|
|
1148
|
+
}
|
|
1149
|
+
});
|
|
1150
|
+
// PUT /api/skills/:name — update skill content
|
|
1151
|
+
this.app.put('/api/skills/:name', (req, res) => {
|
|
1152
|
+
try {
|
|
1153
|
+
const { name } = req.params;
|
|
1154
|
+
const { content } = req.body;
|
|
1155
|
+
if (!content || typeof content !== 'string') {
|
|
1156
|
+
res.status(400).json({ error: 'Missing content' });
|
|
1157
|
+
return;
|
|
1158
|
+
}
|
|
1159
|
+
const skillsDir = path.join(homedir(), '.claude', 'skills');
|
|
1160
|
+
const filePath = path.join(skillsDir, `${name}.md`);
|
|
1161
|
+
if (!fs.existsSync(filePath)) {
|
|
1162
|
+
res.status(404).json({ error: 'Skill not found' });
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1165
|
+
// Backup before editing
|
|
1166
|
+
const backupDir = path.join(homedir(), '.claude-forge', 'backups', 'skills');
|
|
1167
|
+
fs.mkdirSync(backupDir, { recursive: true });
|
|
1168
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1169
|
+
const backupPath = path.join(backupDir, `${name}-${timestamp}.md`);
|
|
1170
|
+
fs.copyFileSync(filePath, backupPath);
|
|
1171
|
+
// Write new content
|
|
1172
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
1173
|
+
logger.info(`[Web] Updated skill ${name} (backup: ${backupPath})`);
|
|
1174
|
+
res.json({ success: true, backup: backupPath });
|
|
1175
|
+
}
|
|
1176
|
+
catch (err) {
|
|
1177
|
+
logger.warn(`[Web] Failed to update skill ${req.params.name}: ${err}`);
|
|
1178
|
+
res.status(500).json({ error: String(err) });
|
|
1179
|
+
}
|
|
1180
|
+
});
|
|
1181
|
+
// ── Execution Trace APIs ──────────────────────────────────────────────────
|
|
1182
|
+
// GET /api/execution-trace — list execution traces with routing info
|
|
1183
|
+
this.app.get('/api/execution-trace', (req, res) => {
|
|
1184
|
+
try {
|
|
1185
|
+
const limit = parseInt(req.query.limit) || 50;
|
|
1186
|
+
const agentFilter = req.query.agent;
|
|
1187
|
+
const obeyedFilter = req.query.obeyed;
|
|
1188
|
+
const db = storage.getDatabase();
|
|
1189
|
+
let sql = `
|
|
1190
|
+
SELECT
|
|
1191
|
+
re.id,
|
|
1192
|
+
re.session_id,
|
|
1193
|
+
re.project_path,
|
|
1194
|
+
re.ts,
|
|
1195
|
+
re.prompt,
|
|
1196
|
+
re.intent_json,
|
|
1197
|
+
re.routed_to_type,
|
|
1198
|
+
re.routed_to_name,
|
|
1199
|
+
re.obeyed,
|
|
1200
|
+
re.classification_ms,
|
|
1201
|
+
re.fallback_used,
|
|
1202
|
+
re.first_tool_name,
|
|
1203
|
+
re.downstream_task_chain,
|
|
1204
|
+
s.status as session_status,
|
|
1205
|
+
s.start_time,
|
|
1206
|
+
s.end_time,
|
|
1207
|
+
s.event_count
|
|
1208
|
+
FROM routing_events re
|
|
1209
|
+
LEFT JOIN sessions s ON re.session_id = s.session_id
|
|
1210
|
+
WHERE 1=1
|
|
1211
|
+
`;
|
|
1212
|
+
const params = [];
|
|
1213
|
+
if (agentFilter) {
|
|
1214
|
+
sql += ` AND re.routed_to_name = ?`;
|
|
1215
|
+
params.push(agentFilter);
|
|
1216
|
+
}
|
|
1217
|
+
if (obeyedFilter === 'true') {
|
|
1218
|
+
sql += ` AND re.obeyed = 1`;
|
|
1219
|
+
}
|
|
1220
|
+
else if (obeyedFilter === 'false') {
|
|
1221
|
+
sql += ` AND re.obeyed = 0`;
|
|
1222
|
+
}
|
|
1223
|
+
sql += ` ORDER BY re.ts DESC LIMIT ?`;
|
|
1224
|
+
params.push(limit);
|
|
1225
|
+
const rows = db.prepare(sql).all(...params);
|
|
1226
|
+
const traces = rows.map(row => ({
|
|
1227
|
+
id: row.id,
|
|
1228
|
+
sessionId: row.session_id,
|
|
1229
|
+
projectPath: row.project_path,
|
|
1230
|
+
timestamp: row.ts,
|
|
1231
|
+
prompt: row.prompt,
|
|
1232
|
+
intent: JSON.parse(row.intent_json || '{}'),
|
|
1233
|
+
routedToType: row.routed_to_type,
|
|
1234
|
+
routedToName: row.routed_to_name,
|
|
1235
|
+
obeyed: row.obeyed,
|
|
1236
|
+
classificationMs: row.classification_ms,
|
|
1237
|
+
fallbackUsed: row.fallback_used === 1,
|
|
1238
|
+
firstTool: row.first_tool_name,
|
|
1239
|
+
taskChain: row.downstream_task_chain ? JSON.parse(row.downstream_task_chain) : [],
|
|
1240
|
+
sessionStatus: row.session_status,
|
|
1241
|
+
sessionStart: row.start_time,
|
|
1242
|
+
sessionEnd: row.end_time,
|
|
1243
|
+
eventCount: row.event_count,
|
|
1244
|
+
}));
|
|
1245
|
+
res.json({ traces });
|
|
1246
|
+
}
|
|
1247
|
+
catch (err) {
|
|
1248
|
+
logger.warn(`[Web] Failed to get execution traces: ${err}`);
|
|
1249
|
+
res.status(500).json({ error: String(err) });
|
|
1250
|
+
}
|
|
1251
|
+
});
|
|
1252
|
+
// GET /api/execution-trace/:session_id — detailed trace for a session
|
|
1253
|
+
this.app.get('/api/execution-trace/:session_id', (req, res) => {
|
|
1254
|
+
try {
|
|
1255
|
+
const { session_id } = req.params;
|
|
1256
|
+
const db = storage.getDatabase();
|
|
1257
|
+
// Get routing event
|
|
1258
|
+
const routing = db.prepare(`
|
|
1259
|
+
SELECT * FROM routing_events WHERE session_id = ?
|
|
1260
|
+
`).get(session_id);
|
|
1261
|
+
if (!routing) {
|
|
1262
|
+
res.status(404).json({ error: 'Trace not found' });
|
|
1263
|
+
return;
|
|
1264
|
+
}
|
|
1265
|
+
// Get all events for this session
|
|
1266
|
+
const events = db.prepare(`
|
|
1267
|
+
SELECT event_id, timestamp, hook_type, tool_name, user_prompt
|
|
1268
|
+
FROM events
|
|
1269
|
+
WHERE session_id = ?
|
|
1270
|
+
ORDER BY timestamp ASC
|
|
1271
|
+
`).all(session_id);
|
|
1272
|
+
// Get injections
|
|
1273
|
+
const injections = db.prepare(`
|
|
1274
|
+
SELECT injection_type, content, timestamp
|
|
1275
|
+
FROM injections
|
|
1276
|
+
WHERE session_id = ?
|
|
1277
|
+
ORDER BY timestamp ASC
|
|
1278
|
+
`).all(session_id);
|
|
1279
|
+
res.json({
|
|
1280
|
+
routing: {
|
|
1281
|
+
prompt: routing.prompt,
|
|
1282
|
+
intent: JSON.parse(routing.intent_json || '{}'),
|
|
1283
|
+
routedToType: routing.routed_to_type,
|
|
1284
|
+
routedToName: routing.routed_to_name,
|
|
1285
|
+
obeyed: routing.obeyed,
|
|
1286
|
+
classificationMs: routing.classification_ms,
|
|
1287
|
+
fallbackUsed: routing.fallback_used === 1,
|
|
1288
|
+
refusalReason: routing.refusal_reason,
|
|
1289
|
+
firstTool: routing.first_tool_name,
|
|
1290
|
+
firstToolTs: routing.first_tool_ts,
|
|
1291
|
+
taskChain: routing.downstream_task_chain ? JSON.parse(routing.downstream_task_chain) : [],
|
|
1292
|
+
},
|
|
1293
|
+
events,
|
|
1294
|
+
injections,
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
catch (err) {
|
|
1298
|
+
logger.warn(`[Web] Failed to get trace details for ${req.params.session_id}: ${err}`);
|
|
1299
|
+
res.status(500).json({ error: String(err) });
|
|
1300
|
+
}
|
|
1301
|
+
});
|
|
983
1302
|
// SSE: real-time event stream
|
|
984
1303
|
this.app.get('/api/events/stream', (req, res) => {
|
|
985
1304
|
res.writeHead(200, {
|
package/dist/web/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAK3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAU/D,MAAM,OAAO,SAAS;IAKA;IAJZ,GAAG,CAAsB;IACzB,MAAM,GAAqD,IAAI,CAAC;IAChE,MAAM,CAAiB;IAE/B,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7C,2DAA2D;QAC3D,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAgB,kBAAkB;YAChE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAG,sBAAsB;SACtE,CAAC;QACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,wCAAwC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxC,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;gBACxB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;gBAC7B,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;aACpC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAChG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC1D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAA2B,CAAC;YACtD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YACxD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;gBACzC,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO;gBACjB,cAAc,EAAE,OAAO;gBACvB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACrG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACzF,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAE3E,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAE,UAAgC,EAAE,EAAE;gBACrF,MAAM,OAAO,GAAG,MAAM;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,CAAC,CAAC,WAAW,IAAK,CAAC,CAAC,UAAkB,EAAE,WAAW,CAAC,CAAC;qBACxG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,IAAK,CAAC,CAAC,UAAkB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAExG,MAAM,SAAS,GAA2B,EAAE,CAAC;gBAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;oBAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEtG,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAC9B,MAAM;yBACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,IAAK,CAAC,CAAC,UAAkB,EAAE,SAAS,CAAC;yBACpG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,UAAkB,CAAC,SAAS,CAAC,CAC7C,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAK,CAAC,CAAC,UAAkB,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;qBAC7F,GAAG,CAAC,CAAC,CAAC,EAAE;oBACP,MAAM,GAAG,GAAI,CAAC,CAAC,UAAkB,EAAE,OAAO,IAAI,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBAC7D,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC1E,CAAC,CAAC,CAAC;gBAEL,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9G,CAAC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBACzD,MAAM,WAAW,GAAG;oBAClB,EAAE,EAAE,SAAS;oBACb,UAAU,EAAE,aAAa;oBACzB,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS;oBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,WAAoB;oBAC5B,WAAW,EAAE,SAAS,CAAC,MAAM;oBAC7B,GAAG,MAAM;oBACT,aAAa,EAAE,gBAAgB;oBAC/B,SAAS,EAAE,YAAY;iBACxB,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,UAAkB,EAAE,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC7H,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACnD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAgB,CAAC,IAAI,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAE7E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAEjG,iEAAiE;YACjE,MAAM,QAAQ,GAIT,EAAE,CAAC;YAER,cAAc;YACd,MAAM;iBACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,CAAC,CAAC,WAAW,IAAK,CAAC,CAAC,UAAkB,EAAE,WAAW,CAAC,CAAC;iBACxG,OAAO,CAAC,CAAC,CAAC,EAAE;gBACX,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,IAAK,CAAC,CAAC,UAAkB,EAAE,WAAW,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,4CAA4C;YAC5C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE;wBACJ,MAAM,EAAE,GAAG,CAAC,cAAc;wBAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,wBAAwB;wBAC5D,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;wBAC1B,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;qBACpC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM;iBACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC;iBACxD,OAAO,CAAC,CAAC,CAAC,EAAE;gBACX,MAAM,SAAS,GAAG,CAAC,CAAC,UAAiB,CAAC;gBACtC,MAAM,UAAU,GAAG,CAAC,CAAC,WAAkB,CAAC;gBAExC,wBAAwB;gBACxB,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,MAAM,GAAG,GAAG,EAAO,EAAE;oBACpD,IAAI,CAAC,GAAG;wBAAE,OAAO,GAAG,CAAC;oBACrB,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC7F,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;wBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,MAAM,MAAM,GAAQ,EAAE,CAAC;wBACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;4BACzC,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;wBACvC,CAAC;wBACD,OAAO,MAAM,CAAC;oBAChB,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC;gBAEF,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,SAAS;wBACjB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC;wBAC/B,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC;wBACjC,OAAO,EAAE,CAAC,UAAU,EAAE,KAAK;qBAC5B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,qEAAqE;YACrE,MAAM;iBACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,IAAK,CAAC,CAAC,WAAmB,EAAE,aAAa,CAAC;iBACnF,OAAO,CAAC,CAAC,CAAC,EAAE;gBACX,MAAM,EAAE,GAAI,CAAC,CAAC,WAAmB,CAAC,aAAa,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,oBAAoB;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAEhE,WAAW;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC9B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;YAEjE,UAAU;YACV,MAAM,OAAO,GAAG,MAAM;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAK,CAAC,CAAC,UAAkB,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;iBAC7F,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,MAAM,GAAG,GAAI,CAAC,CAAC,UAAkB,EAAE,OAAO,IAAI,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClD,CAAC,CAAC,CAAC;YAEL,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAC9B,MAAM;qBACH,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,IAAK,CAAC,CAAC,UAAkB,EAAE,SAAS,CAAC;qBACpG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,UAAkB,CAAC,SAAS,CAAC,CAC7C,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO;gBACP,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK;gBAC/B,OAAO,EAAE;oBACP,OAAO;oBACP,YAAY;oBACZ,gBAAgB,EAAE,aAAa;iBAChC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAE3D,qCAAqC;YACrC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;gBACzE,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEvF,MAAM,KAAK,GAAG;oBACZ,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;oBAC9E,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;oBAClG,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM;oBAChG,aAAa,EAAE,SAAS;yBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;yBAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI;iBACnE,CAAC;gBAEF,OAAO;oBACL,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,KAAK;oBACL,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM;iBAC1E,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7C,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEjD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,gDAAgD;YAChD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnG,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YAE9E,gBAAgB;YAChB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;gBAClE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBAE5G,OAAO;oBACL,MAAM;oBACN,IAAI;oBACJ,YAAY,EAAE,aAAa,CAAC,MAAM;oBAClC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;oBACjE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM;oBAC/D,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnD,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC;gBACP,UAAU;gBACV,SAAS;gBACT,cAAc,EAAE,SAAS,CAAC,MAAM;aACjC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1D,0BAA0B;YAC1B,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAChB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,cAAc,GAAG;gBACrB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;gBACxD,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM;gBACtD,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;gBAC5D,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;aACzD,CAAC;YAEF,iFAAiF;YACjF,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrF,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC1H,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;gBAC3E,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,SAAS,CAAC,MAAM;oBAC5B,YAAY,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;iBAC7D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC;gBACP,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,cAAc,EAAE,SAAS,CAAC,MAAM;gBAChC,SAAS;gBACT,cAAc;gBACd,aAAa;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yEAAyE;QAEzE,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,MAAM,WAAW,GAAG,QAAQ,CAAE,GAAG,CAAC,KAAK,CAAC,MAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa;YAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,MAAM,OAAO,GAAwF,EAAE,CAAC;YACxG,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAsD,EAAE,CAAC;YAExE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,SAAS;oBAAE,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,aAAa;oBAAE,iBAAiB,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACjF,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC;gBACpC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClF,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAAC,WAAW,EAAE,CAAC;gBAAC,CAAC;qBAClD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAC,YAAY,EAAE,CAAC;gBAAC,CAAC;qBACzD,CAAC;oBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAC,YAAY,EAAE,CAAC;gBAAC,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,IAAI,GAAG,CAAC;gBACrC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtD,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,EAAE,CAAC,MAAM,EAAE,CAAC;YAClC,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAW,EAAE,EAAE,CACxB,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAEhH,GAAG,CAAC,IAAI,CAAC;gBACP,WAAW;gBACX,KAAK;gBACL,MAAM;gBACN,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,aAAa,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM;gBACzD,WAAW,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM;gBACxD,iBAAiB;gBACjB,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK;gBAC5D,OAAO,EAAE;oBACP,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;oBACX,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,SAAS,CAAC,MAAM;iBACxB;gBACD,OAAO;gBACP,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAE,GAAG,CAAC,KAAK,CAAC,KAAgB,IAAI,IAAI,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC1D,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAA2B,CAAC;YACpD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,MAA4B,CAAC;YAE3D,MAAM,MAAM,GAAqD,EAAE,KAAK,EAAE,CAAC;YAC3E,IAAI,SAAS;gBAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;YAC7C,IAAI,WAAW;gBAAE,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC;YACnD,IAAI,KAAK;gBAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;YACzC,IAAI,WAAW,KAAK,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;iBAC5C,IAAI,WAAW,KAAK,GAAG;gBAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC3C,IAAI,WAAW,KAAK,GAAG;gBAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAEhD,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAE,GAAG,CAAC,KAAK,CAAC,MAAiB,IAAI,KAAK,CAAC,CAAC;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBACxC,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,sCAAsC;YACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAKlB,CAAC;YAEL,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,QAAQ,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;oBACjD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;wBAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;oBAC3B,QAAQ;oBACR,KAAK,EAAE,CAAC,CAAC,cAAc,IAAI,GAAG;oBAC9B,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,EAAE;iBACZ,CAAC;gBACF,CAAC,CAAC,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;wBACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC9B,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;wBACxC,EAAE,EAAE,CAAC,CAAC,EAAE;qBACT,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,QAAQ,CAAE,GAAG,CAAC,KAAK,CAAC,MAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa;YAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EASpB,CAAC;YAEL,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;oBAAE,SAAS,CAAC,4CAA4C;gBAE7F,IAAI,QAAQ,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;oBACjD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;wBAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAExB,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;oBAC7B,QAAQ;oBACR,KAAK,EAAE,CAAC,CAAC,cAAc,IAAI,GAAG;oBAC9B,aAAa,EAAE,CAAC;oBAChB,QAAQ,EAAE,CAAC;oBACX,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,KAAc;oBACxB,OAAO,EAAE,EAAE;iBACZ,CAAC;gBAEF,CAAC,CAAC,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;4BACb,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9B,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;4BACxC,EAAE,EAAE,CAAC,CAAC,EAAE;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YAED,iCAAiC;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBAC7C,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC;gBAEzE,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,MAAM;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAE;oBACV,IAAI,QAAQ,GAAG,SAAS,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;wBACjD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;4BAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBACtE,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBACxB,OAAO,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,KAAK,CAAC;gBACjE,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEnE,qBAAqB;gBACrB,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC;oBAAE,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC;qBACrE,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC;oBAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC;qBACtE,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG;oBAAE,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;;oBAChD,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAExB,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,6CAA6C;iBACzE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,sCAAsC;gBACtC,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAClE,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,OAAO,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,CAAC;YAEL,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;YAElF,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,GAAgC,MAAM,CAAC;YAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC;iBAAM,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,CAAC;gBACH,qCAAqC;gBACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEnB,0BAA0B;gBAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,CAAC;gBAED,8BAA8B;gBAC9B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;gBAEzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,0BAA0B,CAAC,CAAC;QAE1F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC5D,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,GAAoB,MAAM,CAAC;YACrC,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACjE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,2EAA2E;gBAC3E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,MAAa,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC,CAAC;oBACxF,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;gBACpE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAmC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACpE,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,MAAa,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC7E,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnD,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;oBAC5B,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;oBAC9B,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;oBAChC,OAAO;wBACL,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,KAAK;wBACL,MAAM;wBACN,OAAO;wBACP,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;wBACxB,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;wBAC7C,mBAAmB,EAAE,CAAC,EAAE,qBAAqB,IAAI,IAAI;qBACtD,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,iEAAiE;gBACjE,IAAI,MAAM,GAAkB,IAAI,CAAC;gBACjC,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,eAAe,GAAkB,IAAI,CAAC;gBAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;oBACxB,cAAc,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;oBAClD,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;wBAChC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;wBAChC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;wBAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC1E,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;4BAC5B,eAAe,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC5C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC;oBACP,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE;oBAC/B,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI;oBACnC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS;oBACnC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO;oBAC/B,MAAM;oBACN,MAAM;oBACN,cAAc;oBACd,eAAe;iBAChB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;gBACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACnE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;oBACrE,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,MAAa,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;oBAC/E,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,OAAO,aAAa,EAAE,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBAED,kDAAkD;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;gBAC1E,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC1D,IAAI,UAAU,GAAkB,IAAI,CAAC;gBACrC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,GAAG,WAAW,QAAQ,EAAE,EAAE,CAAC;oBACxC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3E,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAEnD,gEAAgE;gBAChE,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;oBACxB,aAAa,EAAE,KAAK;oBACpB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE;wBACV,GAAG,GAAG,CAAC,UAAU;wBACjB,OAAO;qBACR;iBACF,CAAC,CAAC;gBACH,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEpD,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,sBAAsB,GAAG,CAAC,UAAU,CAAC,EAAE,cAAc,UAAU,EAAE,CAAC,CAAC;gBAC/G,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;gBAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC;YACjF,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,YAAY,CAAC;oBACnB,QAAQ;oBACR,KAAK;oBACL,QAAQ;oBACR,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;oBAClD,YAAY,EAAE,KAAK,EAAE,gBAAgB;iBACtC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,6BAA6B,QAAQ,KAAK,KAAK,aAAa,QAAQ,EAAE,CAAC,CAAC;gBACpF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAE,GAAG,CAAC,KAAK,CAAC,IAAe,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC3D,QAAQ,EAAE,UAAU,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;iBACxC,CAAC,CAAC;gBACH,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;gBAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yEAAyE;QAEzE,4DAA4D;QAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;YAEnC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE;gBACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC1C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3C,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBACvC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;gBAC3B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;gBACjC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE;gBACvD,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,IAAI,KAAK;aAC/D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAEpG,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;gBAEnC,8BAA8B;gBAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAClE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,yEAAyE;oBACzE,4EAA4E;oBAC5E,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;wBAAE,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC9E,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;gBAChC,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACrE,IAAI,OAAO,gBAAgB,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,SAAS,CAAC;gBAC1G,IAAI,OAAO,kBAAkB,KAAK,QAAQ;oBAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;gBAEnG,aAAa,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACvC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oDAAoD;QACpD,uFAAuF;QACvF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;gBAEnC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClD,IAAI,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,2BAA2B,CAAC;gBACjF,kFAAkF;gBAClF,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAE1F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBAED,gCAAgC;gBAChC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACvC,CAAC,CAAC,GAAG,OAAO,SAAS;oBACrB,CAAC,CAAC,GAAG,OAAO,YAAY,CAAC;gBAE3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;oBACtC,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACP,eAAe,EAAE,UAAU,MAAM,EAAE;wBACnC,WAAW,EAAE,MAAM;qBACpB;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,qCAAqC,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC5E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;gBAEnC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClF,IAAI,OAAO,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,2BAA2B,CAAC;gBACnH,MAAM,QAAQ,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9E,yBAAyB;gBACzB,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAE1F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACzC,CAAC,CAAC,GAAG,OAAO,WAAW;oBACvB,CAAC,CAAC,GAAG,OAAO,cAAc,CAAC;gBAE7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;oBACxC,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,WAAW,EAAE,MAAM;wBACnB,mBAAmB,EAAE,YAAY;qBAClC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,QAAQ;wBACf,UAAU,EAAE,EAAE;wBACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;qBAC9C,CAAC;iBACH,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAwB,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAE5E,sDAAsD;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAmE,EAAE,CAAC;gBAEtF,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;4BAAE,SAAS,CAAC,uBAAuB;wBAC9F,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;wBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;wBACrD,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACpB,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;4BAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;4BAC7D,UAAU,CAAC,IAAI,CAAC;gCACd,IAAI;gCACJ,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;gCACjC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;6BACvB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;gBACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;gBAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBAED,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAE7C,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;oBACjC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACtB,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;gBAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;gBAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,wBAAwB;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC7E,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC;gBACnE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAEtC,oBAAoB;gBACpB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,aAAa,UAAU,GAAG,CAAC,CAAC;gBAEnE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBACvE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAgG,EAAE,CAAC;gBAE/G,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;wBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;wBACrD,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACpB,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;4BAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;4BAC7D,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;4BAC/D,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI;gCACJ,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;gCACjC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gCACtB,MAAM,EAAG,WAAW,EAAE,CAAC,CAAC,CAAyB,IAAI,MAAM;6BAC5D,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;gBACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;gBAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBAED,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7D,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAE/D,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;oBACjC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACtB,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM;oBAClC,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;gBAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;gBAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,wBAAwB;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC7E,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC;gBACnE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAEtC,oBAAoB;gBACpB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,aAAa,UAAU,GAAG,CAAC,CAAC;gBAEnE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBACvE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAE7E,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,EAAE,CAAC;gBACxD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAA2B,CAAC;gBAC1D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAA4B,CAAC;gBAE5D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;SAsBT,CAAC;gBAEF,MAAM,MAAM,GAAwB,EAAE,CAAC;gBAEvC,IAAI,WAAW,EAAE,CAAC;oBAChB,GAAG,IAAI,4BAA4B,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBAC5B,GAAG,IAAI,oBAAoB,CAAC;gBAC9B,CAAC;qBAAM,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;oBACpC,GAAG,IAAI,oBAAoB,CAAC;gBAC9B,CAAC;gBAED,GAAG,IAAI,8BAA8B,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAkBxC,CAAC;gBAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,SAAS,EAAE,GAAG,CAAC,UAAU;oBACzB,WAAW,EAAE,GAAG,CAAC,YAAY;oBAC7B,SAAS,EAAE,GAAG,CAAC,EAAE;oBACjB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;oBAC3C,YAAY,EAAE,GAAG,CAAC,cAAc;oBAChC,YAAY,EAAE,GAAG,CAAC,cAAc;oBAChC,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;oBACvC,YAAY,EAAE,GAAG,CAAC,aAAa,KAAK,CAAC;oBACrC,SAAS,EAAE,GAAG,CAAC,eAAe;oBAC9B,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE;oBACjF,aAAa,EAAE,GAAG,CAAC,cAAc;oBACjC,YAAY,EAAE,GAAG,CAAC,UAAU;oBAC5B,UAAU,EAAE,GAAG,CAAC,QAAQ;oBACxB,UAAU,EAAE,GAAG,CAAC,WAAW;iBAC5B,CAAC,CAAC,CAAC;gBAEJ,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,sEAAsE;QACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5D,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;gBAClC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBAEjC,oBAAoB;gBACpB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;;SAE1B,CAAC,CAAC,GAAG,CAAC,UAAU,CAgBJ,CAAC;gBAEd,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,kCAAkC;gBAClC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;SAKzB,CAAC,CAAC,GAAG,CAAC,UAAU,CAMf,CAAC;gBAEH,iBAAiB;gBACjB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;SAK7B,CAAC,CAAC,GAAG,CAAC,UAAU,CAIf,CAAC;gBAEH,GAAG,CAAC,IAAI,CAAC;oBACP,OAAO,EAAE;wBACP,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;wBAC/C,YAAY,EAAE,OAAO,CAAC,cAAc;wBACpC,YAAY,EAAE,OAAO,CAAC,cAAc;wBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,gBAAgB,EAAE,OAAO,CAAC,iBAAiB;wBAC3C,YAAY,EAAE,OAAO,CAAC,aAAa,KAAK,CAAC;wBACzC,aAAa,EAAE,OAAO,CAAC,cAAc;wBACrC,SAAS,EAAE,OAAO,CAAC,eAAe;wBAClC,WAAW,EAAE,OAAO,CAAC,aAAa;wBAClC,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE;qBAC1F;oBACD,MAAM;oBACN,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,yCAAyC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;gBACtF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAE5C,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC9D,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAC9D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAA0B,CAAC;YAExD,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE;gBACjD,IAAI,aAAa,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa;oBAAE,OAAO;gBAChE,IAAI,aAAa,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa;oBAAE,OAAO;gBAClE,IAAI,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU;oBAAE,OAAO;gBACzD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAE5C,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,OAA6B,CAAC;YAE9D,MAAM,UAAU,GAAG,CAAC,QAAiC,EAAE,EAAE;gBACvD,IAAI,aAAa,IAAI,QAAQ,CAAC,UAAU,KAAK,aAAa;oBAAE,OAAO;gBACnE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;gBACpD,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;gBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -353,7 +353,19 @@
|
|
|
353
353
|
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
|
|
354
354
|
注入
|
|
355
355
|
</a>
|
|
356
|
+
<a onclick="nav('execution-trace')" id="nav-execution-trace">
|
|
357
|
+
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
|
|
358
|
+
执行追踪
|
|
359
|
+
</a>
|
|
356
360
|
<div class="nav-section-title">配置</div>
|
|
361
|
+
<a onclick="nav('agents')" id="nav-agents">
|
|
362
|
+
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
|
|
363
|
+
Agent 管理
|
|
364
|
+
</a>
|
|
365
|
+
<a onclick="nav('skills')" id="nav-skills">
|
|
366
|
+
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
|
|
367
|
+
Skill 管理
|
|
368
|
+
</a>
|
|
357
369
|
<a onclick="nav('ai-config')" id="nav-ai-config">
|
|
358
370
|
<svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M12 1v6m0 6v6M5.6 5.6l4.2 4.2m4.2 4.2l4.2 4.2M1 12h6m6 0h6M5.6 18.4l4.2-4.2m4.2-4.2l4.2-4.2"/></svg>
|
|
359
371
|
AI 配置
|
|
@@ -515,6 +527,76 @@
|
|
|
515
527
|
</div>
|
|
516
528
|
</div>
|
|
517
529
|
|
|
530
|
+
<!-- Execution Trace -->
|
|
531
|
+
<div id="page-execution-trace" class="page">
|
|
532
|
+
<div class="toolbar">
|
|
533
|
+
<input class="search-box" id="trace-search" placeholder="搜索 prompt..." oninput="filterTraces()">
|
|
534
|
+
<select class="btn" id="trace-agent-filter" onchange="loadExecutionTraces()">
|
|
535
|
+
<option value="">全部 Agent/Skill</option>
|
|
536
|
+
</select>
|
|
537
|
+
<select class="btn" id="trace-obeyed-filter" onchange="loadExecutionTraces()">
|
|
538
|
+
<option value="">全部状态</option>
|
|
539
|
+
<option value="true">✓ 已遵守</option>
|
|
540
|
+
<option value="false">✗ 违抗</option>
|
|
541
|
+
</select>
|
|
542
|
+
<button class="btn" onclick="loadExecutionTraces()">↻ 刷新</button>
|
|
543
|
+
</div>
|
|
544
|
+
<div class="panel">
|
|
545
|
+
<div class="panel-body">
|
|
546
|
+
<div id="trace-list"></div>
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
</div>
|
|
550
|
+
|
|
551
|
+
<!-- Agent Management -->
|
|
552
|
+
<div id="page-agents" class="page">
|
|
553
|
+
<div class="panel">
|
|
554
|
+
<div class="panel-header">
|
|
555
|
+
<span class="panel-title">Agent 管理</span>
|
|
556
|
+
<button class="btn" onclick="loadAgents()">↻ 刷新</button>
|
|
557
|
+
</div>
|
|
558
|
+
<div class="panel-body">
|
|
559
|
+
<table>
|
|
560
|
+
<thead>
|
|
561
|
+
<tr>
|
|
562
|
+
<th>名称</th>
|
|
563
|
+
<th>描述</th>
|
|
564
|
+
<th>分类</th>
|
|
565
|
+
<th>版本</th>
|
|
566
|
+
<th>来源</th>
|
|
567
|
+
<th>操作</th>
|
|
568
|
+
</tr>
|
|
569
|
+
</thead>
|
|
570
|
+
<tbody id="agents-body"></tbody>
|
|
571
|
+
</table>
|
|
572
|
+
</div>
|
|
573
|
+
</div>
|
|
574
|
+
</div>
|
|
575
|
+
|
|
576
|
+
<!-- Skill Management -->
|
|
577
|
+
<div id="page-skills" class="page">
|
|
578
|
+
<div class="panel">
|
|
579
|
+
<div class="panel-header">
|
|
580
|
+
<span class="panel-title">Skill 管理</span>
|
|
581
|
+
<button class="btn" onclick="loadSkills()">↻ 刷新</button>
|
|
582
|
+
</div>
|
|
583
|
+
<div class="panel-body">
|
|
584
|
+
<table>
|
|
585
|
+
<thead>
|
|
586
|
+
<tr>
|
|
587
|
+
<th>名称</th>
|
|
588
|
+
<th>描述</th>
|
|
589
|
+
<th>版本</th>
|
|
590
|
+
<th>来源</th>
|
|
591
|
+
<th>操作</th>
|
|
592
|
+
</tr>
|
|
593
|
+
</thead>
|
|
594
|
+
<tbody id="skills-body"></tbody>
|
|
595
|
+
</table>
|
|
596
|
+
</div>
|
|
597
|
+
</div>
|
|
598
|
+
</div>
|
|
599
|
+
|
|
518
600
|
<!-- Agent Routing -->
|
|
519
601
|
<div id="page-routing" class="page">
|
|
520
602
|
<div class="toolbar" style="display:flex;gap:0.5rem;align-items:center">
|
|
@@ -694,13 +776,16 @@ function nav(page) {
|
|
|
694
776
|
const pageEl = document.getElementById('page-' + page);
|
|
695
777
|
if (navEl) navEl.classList.add('active');
|
|
696
778
|
if (pageEl) pageEl.classList.add('active');
|
|
697
|
-
const titles = { dashboard:'仪表盘', sessions:'会话', events:'事件', injections:'注入', 'ai-config':'AI 配置', routing:'Agent 路由' };
|
|
779
|
+
const titles = { dashboard:'仪表盘', sessions:'会话', events:'事件', injections:'注入', 'execution-trace':'执行追踪', agents:'Agent 管理', skills:'Skill 管理', 'ai-config':'AI 配置', routing:'Agent 路由' };
|
|
698
780
|
document.getElementById('topbar-title').textContent = titles[page] || page;
|
|
699
781
|
closeDrawer();
|
|
700
782
|
if (page === 'dashboard') loadDashboard();
|
|
701
783
|
else if (page === 'sessions') loadSessions();
|
|
702
784
|
else if (page === 'events') loadEvents();
|
|
703
785
|
else if (page === 'injections') loadInjections();
|
|
786
|
+
else if (page === 'execution-trace') loadExecutionTraces();
|
|
787
|
+
else if (page === 'agents') loadAgents();
|
|
788
|
+
else if (page === 'skills') loadSkills();
|
|
704
789
|
else if (page === 'ai-config') loadAIConfig();
|
|
705
790
|
else if (page === 'routing') loadRouting();
|
|
706
791
|
}
|
|
@@ -1290,6 +1375,420 @@ function showAIError(msg) {
|
|
|
1290
1375
|
okEl.style.display = 'none';
|
|
1291
1376
|
}
|
|
1292
1377
|
|
|
1378
|
+
// === Agent Management ===
|
|
1379
|
+
async function loadAgents() {
|
|
1380
|
+
try {
|
|
1381
|
+
const r = await fetch(API + '/api/agents');
|
|
1382
|
+
if (!r.ok) throw new Error('Failed to load agents');
|
|
1383
|
+
const data = await r.json();
|
|
1384
|
+
|
|
1385
|
+
const tbody = document.getElementById('agents-body');
|
|
1386
|
+
const rows = [];
|
|
1387
|
+
|
|
1388
|
+
data.official.forEach(a => {
|
|
1389
|
+
rows.push(`<tr>
|
|
1390
|
+
<td><strong>${a.name}</strong></td>
|
|
1391
|
+
<td>${a.description}</td>
|
|
1392
|
+
<td><span class="badge badge-info">${a.category}</span></td>
|
|
1393
|
+
<td>${a.version}</td>
|
|
1394
|
+
<td><span class="badge badge-allow">官方</span></td>
|
|
1395
|
+
<td>
|
|
1396
|
+
<button class="btn" onclick="viewAgent('${a.name}')">查看</button>
|
|
1397
|
+
<button class="btn" onclick="editAgent('${a.name}')">编辑</button>
|
|
1398
|
+
</td>
|
|
1399
|
+
</tr>`);
|
|
1400
|
+
});
|
|
1401
|
+
|
|
1402
|
+
data.user.forEach(a => {
|
|
1403
|
+
rows.push(`<tr>
|
|
1404
|
+
<td><strong>${a.name}</strong></td>
|
|
1405
|
+
<td>${a.description}</td>
|
|
1406
|
+
<td>—</td>
|
|
1407
|
+
<td>${a.version || '—'}</td>
|
|
1408
|
+
<td><span class="badge badge-warn">用户</span></td>
|
|
1409
|
+
<td>
|
|
1410
|
+
<button class="btn" onclick="viewAgent('${a.name}')">查看</button>
|
|
1411
|
+
<button class="btn" onclick="editAgent('${a.name}')">编辑</button>
|
|
1412
|
+
</td>
|
|
1413
|
+
</tr>`);
|
|
1414
|
+
});
|
|
1415
|
+
|
|
1416
|
+
tbody.innerHTML = rows.length > 0 ? rows.join('') : '<tr><td colspan="6" style="text-align:center;color:var(--text-dim)">暂无 Agent</td></tr>';
|
|
1417
|
+
} catch (err) {
|
|
1418
|
+
console.error('Failed to load agents:', err);
|
|
1419
|
+
}
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
async function viewAgent(name) {
|
|
1423
|
+
try {
|
|
1424
|
+
const r = await fetch(API + `/api/agents/${name}`);
|
|
1425
|
+
if (!r.ok) throw new Error('Failed to load agent');
|
|
1426
|
+
const data = await r.json();
|
|
1427
|
+
|
|
1428
|
+
const html = `
|
|
1429
|
+
<div style="margin-bottom:1rem">
|
|
1430
|
+
<h3>${data.name}</h3>
|
|
1431
|
+
<p style="color:var(--text-dim)">${data.description}</p>
|
|
1432
|
+
<div style="margin-top:0.5rem">
|
|
1433
|
+
<span class="badge badge-info">${data.version || 'v1.0.0'}</span>
|
|
1434
|
+
${data.tools ? `<span class="badge badge-allow">${data.tools}</span>` : ''}
|
|
1435
|
+
</div>
|
|
1436
|
+
</div>
|
|
1437
|
+
<div style="background:var(--bg-secondary);padding:1rem;border-radius:var(--radius-sm);max-height:60vh;overflow-y:auto">
|
|
1438
|
+
<pre style="margin:0;white-space:pre-wrap;font-size:0.875rem">${escapeHtml(data.content)}</pre>
|
|
1439
|
+
</div>
|
|
1440
|
+
`;
|
|
1441
|
+
openDrawer(`Agent: ${name}`, html);
|
|
1442
|
+
} catch (err) {
|
|
1443
|
+
alert('加载失败: ' + err.message);
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
async function editAgent(name) {
|
|
1448
|
+
try {
|
|
1449
|
+
const r = await fetch(API + `/api/agents/${name}`);
|
|
1450
|
+
if (!r.ok) throw new Error('Failed to load agent');
|
|
1451
|
+
const data = await r.json();
|
|
1452
|
+
|
|
1453
|
+
const html = `
|
|
1454
|
+
<div style="margin-bottom:1rem">
|
|
1455
|
+
<h3>编辑 Agent: ${data.name}</h3>
|
|
1456
|
+
<p style="color:var(--text-dim)">${data.description}</p>
|
|
1457
|
+
</div>
|
|
1458
|
+
<textarea id="edit-agent-content" style="width:100%;height:60vh;font-family:monospace;font-size:0.875rem;padding:0.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary)">${escapeHtml(data.content)}</textarea>
|
|
1459
|
+
<div style="margin-top:1rem;display:flex;gap:0.5rem;justify-content:flex-end">
|
|
1460
|
+
<button class="btn" onclick="closeDrawer()">取消</button>
|
|
1461
|
+
<button class="btn btn-primary" onclick="saveAgent('${name}')">💾 保存</button>
|
|
1462
|
+
</div>
|
|
1463
|
+
<div id="edit-agent-msg" style="margin-top:0.5rem;padding:0.5rem;border-radius:var(--radius-sm);display:none"></div>
|
|
1464
|
+
`;
|
|
1465
|
+
openDrawer(`编辑 Agent: ${name}`, html);
|
|
1466
|
+
} catch (err) {
|
|
1467
|
+
alert('加载失败: ' + err.message);
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
async function saveAgent(name) {
|
|
1472
|
+
const content = document.getElementById('edit-agent-content').value;
|
|
1473
|
+
const msgEl = document.getElementById('edit-agent-msg');
|
|
1474
|
+
try {
|
|
1475
|
+
const r = await fetch(API + `/api/agents/${name}`, {
|
|
1476
|
+
method: 'PUT',
|
|
1477
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1478
|
+
body: JSON.stringify({ content }),
|
|
1479
|
+
});
|
|
1480
|
+
if (!r.ok) throw new Error('Failed to save agent');
|
|
1481
|
+
const data = await r.json();
|
|
1482
|
+
msgEl.textContent = `✓ 保存成功!备份: ${data.backup}`;
|
|
1483
|
+
msgEl.style.background = 'var(--primary)';
|
|
1484
|
+
msgEl.style.color = 'white';
|
|
1485
|
+
msgEl.style.display = 'block';
|
|
1486
|
+
setTimeout(() => { closeDrawer(); loadAgents(); }, 1500);
|
|
1487
|
+
} catch (err) {
|
|
1488
|
+
msgEl.textContent = `保存失败: ${err.message}`;
|
|
1489
|
+
msgEl.style.background = 'var(--red)';
|
|
1490
|
+
msgEl.style.color = 'white';
|
|
1491
|
+
msgEl.style.display = 'block';
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
// === Skill Management ===
|
|
1496
|
+
async function loadSkills() {
|
|
1497
|
+
try {
|
|
1498
|
+
const r = await fetch(API + '/api/skills');
|
|
1499
|
+
if (!r.ok) throw new Error('Failed to load skills');
|
|
1500
|
+
const data = await r.json();
|
|
1501
|
+
|
|
1502
|
+
const tbody = document.getElementById('skills-body');
|
|
1503
|
+
const rows = data.skills.map(s => `<tr>
|
|
1504
|
+
<td><strong>${s.name}</strong></td>
|
|
1505
|
+
<td>${s.description}</td>
|
|
1506
|
+
<td>${s.version || '—'}</td>
|
|
1507
|
+
<td><span class="badge ${s.source === 'official' ? 'badge-allow' : 'badge-warn'}">${s.source === 'official' ? '官方' : '用户'}</span></td>
|
|
1508
|
+
<td>
|
|
1509
|
+
<button class="btn" onclick="viewSkill('${s.name}')">查看</button>
|
|
1510
|
+
<button class="btn" onclick="editSkill('${s.name}')">编辑</button>
|
|
1511
|
+
</td>
|
|
1512
|
+
</tr>`);
|
|
1513
|
+
|
|
1514
|
+
tbody.innerHTML = rows.length > 0 ? rows.join('') : '<tr><td colspan="5" style="text-align:center;color:var(--text-dim)">暂无 Skill</td></tr>';
|
|
1515
|
+
} catch (err) {
|
|
1516
|
+
console.error('Failed to load skills:', err);
|
|
1517
|
+
}
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
async function viewSkill(name) {
|
|
1521
|
+
try {
|
|
1522
|
+
const r = await fetch(API + `/api/skills/${name}`);
|
|
1523
|
+
if (!r.ok) throw new Error('Failed to load skill');
|
|
1524
|
+
const data = await r.json();
|
|
1525
|
+
|
|
1526
|
+
const html = `
|
|
1527
|
+
<div style="margin-bottom:1rem">
|
|
1528
|
+
<h3>${data.name}</h3>
|
|
1529
|
+
<p style="color:var(--text-dim)">${data.description}</p>
|
|
1530
|
+
<div style="margin-top:0.5rem">
|
|
1531
|
+
<span class="badge badge-info">${data.version || 'v1.0.0'}</span>
|
|
1532
|
+
<span class="badge ${data.source === 'official' ? 'badge-allow' : 'badge-warn'}">${data.source === 'official' ? '官方' : '用户'}</span>
|
|
1533
|
+
</div>
|
|
1534
|
+
</div>
|
|
1535
|
+
<div style="background:var(--bg-secondary);padding:1rem;border-radius:var(--radius-sm);max-height:60vh;overflow-y:auto">
|
|
1536
|
+
<pre style="margin:0;white-space:pre-wrap;font-size:0.875rem">${escapeHtml(data.content)}</pre>
|
|
1537
|
+
</div>
|
|
1538
|
+
`;
|
|
1539
|
+
openDrawer(`Skill: ${name}`, html);
|
|
1540
|
+
} catch (err) {
|
|
1541
|
+
alert('加载失败: ' + err.message);
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
async function editSkill(name) {
|
|
1546
|
+
try {
|
|
1547
|
+
const r = await fetch(API + `/api/skills/${name}`);
|
|
1548
|
+
if (!r.ok) throw new Error('Failed to load skill');
|
|
1549
|
+
const data = await r.json();
|
|
1550
|
+
|
|
1551
|
+
const html = `
|
|
1552
|
+
<div style="margin-bottom:1rem">
|
|
1553
|
+
<h3>编辑 Skill: ${data.name}</h3>
|
|
1554
|
+
<p style="color:var(--text-dim)">${data.description}</p>
|
|
1555
|
+
</div>
|
|
1556
|
+
<textarea id="edit-skill-content" style="width:100%;height:60vh;font-family:monospace;font-size:0.875rem;padding:0.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary)">${escapeHtml(data.content)}</textarea>
|
|
1557
|
+
<div style="margin-top:1rem;display:flex;gap:0.5rem;justify-content:flex-end">
|
|
1558
|
+
<button class="btn" onclick="closeDrawer()">取消</button>
|
|
1559
|
+
<button class="btn btn-primary" onclick="saveSkill('${name}')">💾 保存</button>
|
|
1560
|
+
</div>
|
|
1561
|
+
<div id="edit-skill-msg" style="margin-top:0.5rem;padding:0.5rem;border-radius:var(--radius-sm);display:none"></div>
|
|
1562
|
+
`;
|
|
1563
|
+
openDrawer(`编辑 Skill: ${name}`, html);
|
|
1564
|
+
} catch (err) {
|
|
1565
|
+
alert('加载失败: ' + err.message);
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
async function saveSkill(name) {
|
|
1570
|
+
const content = document.getElementById('edit-skill-content').value;
|
|
1571
|
+
const msgEl = document.getElementById('edit-skill-msg');
|
|
1572
|
+
try {
|
|
1573
|
+
const r = await fetch(API + `/api/skills/${name}`, {
|
|
1574
|
+
method: 'PUT',
|
|
1575
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1576
|
+
body: JSON.stringify({ content }),
|
|
1577
|
+
});
|
|
1578
|
+
if (!r.ok) throw new Error('Failed to save skill');
|
|
1579
|
+
const data = await r.json();
|
|
1580
|
+
msgEl.textContent = `✓ 保存成功!备份: ${data.backup}`;
|
|
1581
|
+
msgEl.style.background = 'var(--primary)';
|
|
1582
|
+
msgEl.style.color = 'white';
|
|
1583
|
+
msgEl.style.display = 'block';
|
|
1584
|
+
setTimeout(() => { closeDrawer(); loadSkills(); }, 1500);
|
|
1585
|
+
} catch (err) {
|
|
1586
|
+
msgEl.textContent = `保存失败: ${err.message}`;
|
|
1587
|
+
msgEl.style.background = 'var(--red)';
|
|
1588
|
+
msgEl.style.color = 'white';
|
|
1589
|
+
msgEl.style.display = 'block';
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
function escapeHtml(text) {
|
|
1594
|
+
const div = document.createElement('div');
|
|
1595
|
+
div.textContent = text;
|
|
1596
|
+
return div.innerHTML;
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
// === Execution Trace ===
|
|
1600
|
+
let allTraces = [];
|
|
1601
|
+
|
|
1602
|
+
async function loadExecutionTraces() {
|
|
1603
|
+
try {
|
|
1604
|
+
const agentFilter = document.getElementById('trace-agent-filter').value;
|
|
1605
|
+
const obeyedFilter = document.getElementById('trace-obeyed-filter').value;
|
|
1606
|
+
const params = new URLSearchParams({ limit: '100' });
|
|
1607
|
+
if (agentFilter) params.set('agent', agentFilter);
|
|
1608
|
+
if (obeyedFilter) params.set('obeyed', obeyedFilter);
|
|
1609
|
+
|
|
1610
|
+
const r = await fetch(API + '/api/execution-trace?' + params.toString());
|
|
1611
|
+
if (!r.ok) throw new Error('Failed to load traces');
|
|
1612
|
+
const data = await r.json();
|
|
1613
|
+
allTraces = data.traces;
|
|
1614
|
+
|
|
1615
|
+
// Populate agent filter dropdown
|
|
1616
|
+
const agentSet = new Set();
|
|
1617
|
+
allTraces.forEach(t => {
|
|
1618
|
+
if (t.routedToName) agentSet.add(t.routedToName);
|
|
1619
|
+
});
|
|
1620
|
+
const agentSelect = document.getElementById('trace-agent-filter');
|
|
1621
|
+
const currentAgent = agentSelect.value;
|
|
1622
|
+
agentSelect.innerHTML = '<option value="">全部 Agent/Skill</option>' +
|
|
1623
|
+
Array.from(agentSet).sort().map(a =>
|
|
1624
|
+
`<option value="${a}" ${a === currentAgent ? 'selected' : ''}>${a}</option>`
|
|
1625
|
+
).join('');
|
|
1626
|
+
|
|
1627
|
+
renderTraces();
|
|
1628
|
+
} catch (err) {
|
|
1629
|
+
console.error('Failed to load traces:', err);
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
function renderTraces() {
|
|
1634
|
+
const searchTerm = document.getElementById('trace-search').value.toLowerCase();
|
|
1635
|
+
const filtered = allTraces.filter(t =>
|
|
1636
|
+
!searchTerm || t.prompt.toLowerCase().includes(searchTerm)
|
|
1637
|
+
);
|
|
1638
|
+
|
|
1639
|
+
const list = document.getElementById('trace-list');
|
|
1640
|
+
if (filtered.length === 0) {
|
|
1641
|
+
list.innerHTML = '<div style="text-align:center;padding:2rem;color:var(--text-dim)">暂无执行追踪记录</div>';
|
|
1642
|
+
return;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
const items = filtered.map(t => {
|
|
1646
|
+
const time = new Date(t.timestamp).toLocaleString('zh-CN');
|
|
1647
|
+
const obeyedBadge = t.obeyed === 1
|
|
1648
|
+
? '<span class="badge badge-allow">✓ 遵守</span>'
|
|
1649
|
+
: t.obeyed === 0
|
|
1650
|
+
? '<span class="badge badge-block">✗ 违抗</span>'
|
|
1651
|
+
: '<span class="badge badge-info">— 未路由</span>';
|
|
1652
|
+
|
|
1653
|
+
const routeBadge = t.routedToName
|
|
1654
|
+
? `<span class="badge badge-info">${t.routedToType === 'agent' ? '🤖' : '⚡'} ${t.routedToName}</span>`
|
|
1655
|
+
: '<span class="badge badge-warn">无路由</span>';
|
|
1656
|
+
|
|
1657
|
+
const intentBadge = t.intent.taskType
|
|
1658
|
+
? `<span class="badge" style="background:var(--bg-secondary)">${t.intent.taskType}</span>`
|
|
1659
|
+
: '';
|
|
1660
|
+
|
|
1661
|
+
const firstToolBadge = t.firstTool
|
|
1662
|
+
? `<span class="badge" style="background:var(--bg-secondary)">首工具: ${t.firstTool}</span>`
|
|
1663
|
+
: '';
|
|
1664
|
+
|
|
1665
|
+
const classificationBadge = t.fallbackUsed
|
|
1666
|
+
? '<span class="badge badge-warn">正则兜底</span>'
|
|
1667
|
+
: t.classificationMs
|
|
1668
|
+
? `<span class="badge badge-allow">AI 分类 (${t.classificationMs}ms)</span>`
|
|
1669
|
+
: '';
|
|
1670
|
+
|
|
1671
|
+
return `
|
|
1672
|
+
<div style="border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;margin-bottom:0.75rem;cursor:pointer;transition:background 0.2s"
|
|
1673
|
+
onclick="viewTraceDetails('${t.sessionId}')"
|
|
1674
|
+
onmouseover="this.style.background='var(--bg-secondary)'"
|
|
1675
|
+
onmouseout="this.style.background='transparent'">
|
|
1676
|
+
<div style="display:flex;justify-content:space-between;align-items:start;margin-bottom:0.5rem">
|
|
1677
|
+
<div style="flex:1">
|
|
1678
|
+
<div style="font-weight:500;margin-bottom:0.25rem">${escapeHtml(t.prompt.slice(0, 100))}${t.prompt.length > 100 ? '...' : ''}</div>
|
|
1679
|
+
<div style="font-size:0.75rem;color:var(--text-dim)">${time} · Session: ${t.sessionId.slice(0, 8)}</div>
|
|
1680
|
+
</div>
|
|
1681
|
+
<div style="display:flex;gap:0.25rem;flex-wrap:wrap;justify-content:flex-end">
|
|
1682
|
+
${obeyedBadge}
|
|
1683
|
+
${routeBadge}
|
|
1684
|
+
</div>
|
|
1685
|
+
</div>
|
|
1686
|
+
<div style="display:flex;gap:0.5rem;flex-wrap:wrap;font-size:0.75rem">
|
|
1687
|
+
${intentBadge}
|
|
1688
|
+
${firstToolBadge}
|
|
1689
|
+
${classificationBadge}
|
|
1690
|
+
${t.taskChain.length > 0 ? `<span class="badge badge-info">子 Agent: ${t.taskChain.join(' → ')}</span>` : ''}
|
|
1691
|
+
</div>
|
|
1692
|
+
</div>
|
|
1693
|
+
`;
|
|
1694
|
+
}).join('');
|
|
1695
|
+
|
|
1696
|
+
list.innerHTML = items;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
function filterTraces() {
|
|
1700
|
+
renderTraces();
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
async function viewTraceDetails(sessionId) {
|
|
1704
|
+
try {
|
|
1705
|
+
const r = await fetch(API + `/api/execution-trace/${sessionId}`);
|
|
1706
|
+
if (!r.ok) throw new Error('Failed to load trace details');
|
|
1707
|
+
const data = await r.json();
|
|
1708
|
+
|
|
1709
|
+
const routing = data.routing;
|
|
1710
|
+
const obeyedText = routing.obeyed === 1
|
|
1711
|
+
? '<span class="badge badge-allow">✓ 遵守</span>'
|
|
1712
|
+
: routing.obeyed === 0
|
|
1713
|
+
? '<span class="badge badge-block">✗ 违抗</span>'
|
|
1714
|
+
: '<span class="badge badge-info">— 未路由</span>';
|
|
1715
|
+
|
|
1716
|
+
const html = `
|
|
1717
|
+
<div style="margin-bottom:1.5rem">
|
|
1718
|
+
<h3>执行追踪详情</h3>
|
|
1719
|
+
<div style="font-size:0.875rem;color:var(--text-dim);margin-top:0.5rem">Session: ${sessionId}</div>
|
|
1720
|
+
</div>
|
|
1721
|
+
|
|
1722
|
+
<div style="margin-bottom:1.5rem">
|
|
1723
|
+
<h4 style="margin-bottom:0.5rem">用户 Prompt</h4>
|
|
1724
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);font-size:0.875rem">
|
|
1725
|
+
${escapeHtml(routing.prompt)}
|
|
1726
|
+
</div>
|
|
1727
|
+
</div>
|
|
1728
|
+
|
|
1729
|
+
<div style="margin-bottom:1.5rem">
|
|
1730
|
+
<h4 style="margin-bottom:0.5rem">AI 意图分类</h4>
|
|
1731
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);font-size:0.875rem">
|
|
1732
|
+
<div><strong>任务类型:</strong> ${routing.intent.taskType || '—'}</div>
|
|
1733
|
+
<div><strong>复杂度:</strong> ${routing.intent.complexity || '—'}</div>
|
|
1734
|
+
<div><strong>分类耗时:</strong> ${routing.classificationMs ? routing.classificationMs + 'ms' : '—'}</div>
|
|
1735
|
+
<div><strong>分类方式:</strong> ${routing.fallbackUsed ? '<span class="badge badge-warn">正则兜底</span>' : '<span class="badge badge-allow">AI 分类</span>'}</div>
|
|
1736
|
+
${routing.intent.reasoning ? `<div style="margin-top:0.5rem"><strong>推理:</strong> ${escapeHtml(routing.intent.reasoning)}</div>` : ''}
|
|
1737
|
+
</div>
|
|
1738
|
+
</div>
|
|
1739
|
+
|
|
1740
|
+
<div style="margin-bottom:1.5rem">
|
|
1741
|
+
<h4 style="margin-bottom:0.5rem">路由决策</h4>
|
|
1742
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);font-size:0.875rem">
|
|
1743
|
+
<div><strong>路由类型:</strong> ${routing.routedToType || '无'}</div>
|
|
1744
|
+
<div><strong>路由目标:</strong> ${routing.routedToName || '—'}</div>
|
|
1745
|
+
<div><strong>执行状态:</strong> ${obeyedText}</div>
|
|
1746
|
+
${routing.refusalReason ? `<div style="margin-top:0.5rem;color:var(--red)"><strong>违抗原因:</strong> ${escapeHtml(routing.refusalReason)}</div>` : ''}
|
|
1747
|
+
</div>
|
|
1748
|
+
</div>
|
|
1749
|
+
|
|
1750
|
+
<div style="margin-bottom:1.5rem">
|
|
1751
|
+
<h4 style="margin-bottom:0.5rem">实际执行</h4>
|
|
1752
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);font-size:0.875rem">
|
|
1753
|
+
<div><strong>首个工具:</strong> ${routing.firstTool || '—'}</div>
|
|
1754
|
+
${routing.taskChain.length > 0 ? `<div><strong>子 Agent 链:</strong> ${routing.taskChain.join(' → ')}</div>` : ''}
|
|
1755
|
+
</div>
|
|
1756
|
+
</div>
|
|
1757
|
+
|
|
1758
|
+
<div style="margin-bottom:1.5rem">
|
|
1759
|
+
<h4 style="margin-bottom:0.5rem">事件时间线 (${data.events.length} 个事件)</h4>
|
|
1760
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);max-height:300px;overflow-y:auto;font-size:0.875rem">
|
|
1761
|
+
${data.events.map(e => `
|
|
1762
|
+
<div style="padding:0.25rem 0;border-bottom:1px solid var(--border)">
|
|
1763
|
+
<span style="color:var(--text-dim)">${new Date(e.timestamp).toLocaleTimeString('zh-CN')}</span>
|
|
1764
|
+
<span class="badge badge-info" style="margin:0 0.5rem">${e.hook_type}</span>
|
|
1765
|
+
${e.tool_name ? `<span class="badge">${e.tool_name}</span>` : ''}
|
|
1766
|
+
</div>
|
|
1767
|
+
`).join('')}
|
|
1768
|
+
</div>
|
|
1769
|
+
</div>
|
|
1770
|
+
|
|
1771
|
+
${data.injections.length > 0 ? `
|
|
1772
|
+
<div style="margin-bottom:1.5rem">
|
|
1773
|
+
<h4 style="margin-bottom:0.5rem">注入内容 (${data.injections.length} 条)</h4>
|
|
1774
|
+
<div style="background:var(--bg-secondary);padding:0.75rem;border-radius:var(--radius-sm);max-height:300px;overflow-y:auto;font-size:0.875rem">
|
|
1775
|
+
${data.injections.map(inj => `
|
|
1776
|
+
<div style="padding:0.5rem 0;border-bottom:1px solid var(--border)">
|
|
1777
|
+
<div><span class="badge badge-info">${inj.injection_type}</span></div>
|
|
1778
|
+
<div style="margin-top:0.25rem;white-space:pre-wrap;font-family:monospace;font-size:0.8rem">${escapeHtml(inj.content.slice(0, 200))}${inj.content.length > 200 ? '...' : ''}</div>
|
|
1779
|
+
</div>
|
|
1780
|
+
`).join('')}
|
|
1781
|
+
</div>
|
|
1782
|
+
</div>
|
|
1783
|
+
` : ''}
|
|
1784
|
+
`;
|
|
1785
|
+
|
|
1786
|
+
openDrawer('执行追踪详情', html);
|
|
1787
|
+
} catch (err) {
|
|
1788
|
+
alert('加载失败: ' + err.message);
|
|
1789
|
+
}
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1293
1792
|
function routingWindow() {
|
|
1294
1793
|
const el = document.getElementById('routing-window');
|
|
1295
1794
|
return el ? el.value : '168';
|