workerclaw 0.8.2 → 0.9.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/README.md +5 -0
- package/dist/agent/agent-engine.d.ts +33 -1
- package/dist/agent/agent-engine.d.ts.map +1 -1
- package/dist/agent/agent-engine.js +278 -2
- package/dist/agent/agent-engine.js.map +1 -1
- package/dist/sandbox/browser-sandbox.d.ts +31 -4
- package/dist/sandbox/browser-sandbox.d.ts.map +1 -1
- package/dist/sandbox/browser-sandbox.js +103 -125
- package/dist/sandbox/browser-sandbox.js.map +1 -1
- package/dist/sandbox/browser-session.d.ts +87 -0
- package/dist/sandbox/browser-session.d.ts.map +1 -0
- package/dist/sandbox/browser-session.js +250 -0
- package/dist/sandbox/browser-session.js.map +1 -0
- package/dist/skills/browser-skill.d.ts +23 -2
- package/dist/skills/browser-skill.d.ts.map +1 -1
- package/dist/skills/browser-skill.js +297 -20
- package/dist/skills/browser-skill.js.map +1 -1
- package/dist/task/task-manager.d.ts.map +1 -1
- package/dist/task/task-manager.js +13 -0
- package/dist/task/task-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,11 +5,17 @@
|
|
|
5
5
|
* - 页面加载超时控制
|
|
6
6
|
* - 响应大小限制
|
|
7
7
|
* - 弹窗拦截
|
|
8
|
-
* - Cookie
|
|
8
|
+
* - Cookie 隔离(同一 taskId 内共享 session,跨任务隔离)
|
|
9
9
|
* - 资源限制(截图质量/大小)
|
|
10
10
|
* - URL 安全验证(阻止内网/危险协议)
|
|
11
|
+
*
|
|
12
|
+
* 架构:
|
|
13
|
+
* - BrowserSessionManager 管理共享 Browser 进程 + 按任务隔离的 Context
|
|
14
|
+
* - 同一任务的多次操作复用同一 Context(保持登录态/Cookie)
|
|
15
|
+
* - 不同任务之间 Context 完全隔离
|
|
11
16
|
*/
|
|
12
17
|
import { createLogger } from '../core/logger.js';
|
|
18
|
+
import { BrowserSessionManager } from './browser-session.js';
|
|
13
19
|
// ==================== 默认配置 ====================
|
|
14
20
|
const DEFAULT_CONFIG = {
|
|
15
21
|
pageTimeoutMs: 30000,
|
|
@@ -47,9 +53,31 @@ function isLocalAddress(hostname) {
|
|
|
47
53
|
export class BrowserSandbox {
|
|
48
54
|
logger;
|
|
49
55
|
config;
|
|
56
|
+
sessionManager;
|
|
50
57
|
constructor(browserConfig) {
|
|
51
58
|
this.config = { ...DEFAULT_CONFIG, ...browserConfig };
|
|
52
59
|
this.logger = createLogger('BrowserSandbox');
|
|
60
|
+
// 初始化会话管理器
|
|
61
|
+
const sessionConfig = {
|
|
62
|
+
launchArgs: [
|
|
63
|
+
'--no-sandbox',
|
|
64
|
+
'--disable-setuid-sandbox',
|
|
65
|
+
'--disable-dev-shm-usage',
|
|
66
|
+
'--disable-gpu',
|
|
67
|
+
'--disable-extensions',
|
|
68
|
+
'--no-first-run',
|
|
69
|
+
'--disable-default-apps',
|
|
70
|
+
],
|
|
71
|
+
userAgent: this.config.userAgent,
|
|
72
|
+
proxyUrl: this.config.proxyUrl,
|
|
73
|
+
};
|
|
74
|
+
this.sessionManager = new BrowserSessionManager(sessionConfig);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 获取会话管理器(供 AgentEngine 调用销毁会话)
|
|
78
|
+
*/
|
|
79
|
+
getSessionManager() {
|
|
80
|
+
return this.sessionManager;
|
|
53
81
|
}
|
|
54
82
|
/**
|
|
55
83
|
* 验证 URL 安全性
|
|
@@ -75,56 +103,28 @@ export class BrowserSandbox {
|
|
|
75
103
|
}
|
|
76
104
|
/**
|
|
77
105
|
* 导航到指定 URL 并提取页面内容
|
|
106
|
+
*
|
|
107
|
+
* @param url 目标 URL
|
|
108
|
+
* @param options 导航选项
|
|
109
|
+
* @param taskId 任务 ID(用于会话隔离,同一 taskId 内保持登录态)
|
|
78
110
|
*/
|
|
79
|
-
async navigate(url, options) {
|
|
111
|
+
async navigate(url, options, taskId) {
|
|
80
112
|
// URL 安全验证
|
|
81
113
|
const urlCheck = this.validateUrl(url);
|
|
82
114
|
if (!urlCheck.allowed) {
|
|
83
115
|
return { success: false, title: '', url, content: '', error: urlCheck.reason };
|
|
84
116
|
}
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
try {
|
|
88
|
-
const pw = await import('playwright');
|
|
89
|
-
chromium = pw.chromium;
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
return {
|
|
93
|
-
success: false,
|
|
94
|
-
title: '',
|
|
95
|
-
url,
|
|
96
|
-
content: '',
|
|
97
|
-
error: 'playwright 未安装或 Chromium 不可用。请运行: npx playwright install chromium',
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
let browser = null;
|
|
101
|
-
let context = null;
|
|
117
|
+
// 无 taskId 时使用默认隔离 key(向后兼容)
|
|
118
|
+
const sessionKey = taskId || '__no_session__';
|
|
102
119
|
let page = null;
|
|
120
|
+
let needsCleanup = false;
|
|
103
121
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
args: [
|
|
108
|
-
'--no-sandbox',
|
|
109
|
-
'--disable-setuid-sandbox',
|
|
110
|
-
'--disable-dev-shm-usage',
|
|
111
|
-
'--disable-gpu',
|
|
112
|
-
'--disable-extensions',
|
|
113
|
-
'--no-first-run',
|
|
114
|
-
'--disable-default-apps',
|
|
115
|
-
],
|
|
116
|
-
});
|
|
117
|
-
context = await browser.newContext({
|
|
118
|
-
userAgent: this.config.userAgent || 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
119
|
-
javaScriptEnabled: this.config.enableJavaScript,
|
|
120
|
-
ignoreHTTPSErrors: true,
|
|
121
|
-
viewport: { width: this.config.screenshotMaxWidth, height: 720 },
|
|
122
|
-
proxy: this.config.proxyUrl ? { server: this.config.proxyUrl } : undefined,
|
|
123
|
-
});
|
|
124
|
-
page = await context.newPage();
|
|
122
|
+
const session = await this.sessionManager.getOrCreate(sessionKey);
|
|
123
|
+
page = await session.context.newPage();
|
|
124
|
+
needsCleanup = true;
|
|
125
125
|
// 拦截弹窗
|
|
126
126
|
if (this.config.blockPopups) {
|
|
127
|
-
context.on('page', (p) => p.close().catch(() => { }));
|
|
127
|
+
session.context.on('page', (p) => p.close().catch(() => { }));
|
|
128
128
|
}
|
|
129
129
|
// 导航
|
|
130
130
|
const response = await page.goto(url, {
|
|
@@ -138,10 +138,7 @@ export class BrowserSandbox {
|
|
|
138
138
|
const status = response.status();
|
|
139
139
|
if (status >= 400) {
|
|
140
140
|
return {
|
|
141
|
-
success: false,
|
|
142
|
-
title: '',
|
|
143
|
-
url,
|
|
144
|
-
content: '',
|
|
141
|
+
success: false, title: '', url, content: '',
|
|
145
142
|
error: `HTTP ${status}: ${response.statusText()}`,
|
|
146
143
|
};
|
|
147
144
|
}
|
|
@@ -149,10 +146,7 @@ export class BrowserSandbox {
|
|
|
149
146
|
const contentLength = response.headers()['content-length'];
|
|
150
147
|
if (contentLength && parseInt(contentLength) > this.config.maxPageSizeKB * 1024) {
|
|
151
148
|
return {
|
|
152
|
-
success: false,
|
|
153
|
-
title: '',
|
|
154
|
-
url,
|
|
155
|
-
content: '',
|
|
149
|
+
success: false, title: '', url, content: '',
|
|
156
150
|
error: `页面过大 (${Math.round(parseInt(contentLength) / 1024)}KB),超过限制 ${this.config.maxPageSizeKB}KB`,
|
|
157
151
|
};
|
|
158
152
|
}
|
|
@@ -216,69 +210,54 @@ export class BrowserSandbox {
|
|
|
216
210
|
const error = err;
|
|
217
211
|
this.logger.error('页面导航失败', { url, error: error.message });
|
|
218
212
|
return {
|
|
219
|
-
success: false,
|
|
220
|
-
title: '',
|
|
221
|
-
url,
|
|
222
|
-
content: '',
|
|
213
|
+
success: false, title: '', url, content: '',
|
|
223
214
|
error: error.message.includes('Timeout')
|
|
224
215
|
? `页面加载超时 (${this.config.pageTimeoutMs}ms)`
|
|
225
216
|
: error.message,
|
|
226
217
|
};
|
|
227
218
|
}
|
|
228
219
|
finally {
|
|
229
|
-
//
|
|
230
|
-
|
|
231
|
-
|
|
220
|
+
// 只关闭 page,不关闭 context 和 browser(保持会话)
|
|
221
|
+
if (page && needsCleanup) {
|
|
222
|
+
try {
|
|
232
223
|
await page.close().catch(() => { });
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if (browser)
|
|
236
|
-
await browser.close().catch(() => { });
|
|
224
|
+
}
|
|
225
|
+
catch { }
|
|
237
226
|
}
|
|
238
|
-
|
|
239
|
-
|
|
227
|
+
// 无 taskId 的一次性会话,立即销毁
|
|
228
|
+
if (!taskId) {
|
|
229
|
+
try {
|
|
230
|
+
await this.sessionManager.destroy(sessionKey);
|
|
231
|
+
}
|
|
232
|
+
catch { }
|
|
240
233
|
}
|
|
241
234
|
}
|
|
242
235
|
}
|
|
243
236
|
/**
|
|
244
237
|
* 提取页面结构化数据(链接、图片、元数据)
|
|
238
|
+
*
|
|
239
|
+
* @param url 目标 URL
|
|
240
|
+
* @param taskId 任务 ID(用于会话隔离)
|
|
245
241
|
*/
|
|
246
|
-
async extractStructured(url) {
|
|
242
|
+
async extractStructured(url, taskId) {
|
|
247
243
|
const urlCheck = this.validateUrl(url);
|
|
248
244
|
if (!urlCheck.allowed) {
|
|
249
245
|
return { success: false, url, title: '', text: '', links: [], images: [], meta: {}, error: urlCheck.reason };
|
|
250
246
|
}
|
|
251
|
-
|
|
252
|
-
try {
|
|
253
|
-
const pw = await import('playwright');
|
|
254
|
-
chromium = pw.chromium;
|
|
255
|
-
}
|
|
256
|
-
catch {
|
|
257
|
-
return { success: false, url, title: '', text: '', links: [], images: [], meta: {}, error: 'playwright 不可用' };
|
|
258
|
-
}
|
|
259
|
-
let browser = null;
|
|
260
|
-
let context = null;
|
|
247
|
+
const sessionKey = taskId || '__no_session__';
|
|
261
248
|
let page = null;
|
|
249
|
+
let needsCleanup = false;
|
|
262
250
|
try {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
ignoreHTTPSErrors: true,
|
|
267
|
-
});
|
|
268
|
-
page = await context.newPage();
|
|
251
|
+
const session = await this.sessionManager.getOrCreate(sessionKey);
|
|
252
|
+
page = await session.context.newPage();
|
|
253
|
+
needsCleanup = true;
|
|
269
254
|
const response = await page.goto(url, {
|
|
270
255
|
timeout: this.config.pageTimeoutMs,
|
|
271
256
|
waitUntil: 'domcontentloaded',
|
|
272
257
|
});
|
|
273
258
|
if (!response || response.status() >= 400) {
|
|
274
259
|
return {
|
|
275
|
-
success: false,
|
|
276
|
-
url,
|
|
277
|
-
title: '',
|
|
278
|
-
text: '',
|
|
279
|
-
links: [],
|
|
280
|
-
images: [],
|
|
281
|
-
meta: {},
|
|
260
|
+
success: false, url, title: '', text: '', links: [], images: [], meta: {},
|
|
282
261
|
error: `HTTP ${response?.status() || '无响应'}`,
|
|
283
262
|
};
|
|
284
263
|
}
|
|
@@ -319,55 +298,45 @@ export class BrowserSandbox {
|
|
|
319
298
|
catch (err) {
|
|
320
299
|
const error = err;
|
|
321
300
|
return {
|
|
322
|
-
success: false,
|
|
323
|
-
url,
|
|
324
|
-
title: '',
|
|
325
|
-
text: '',
|
|
326
|
-
links: [],
|
|
327
|
-
images: [],
|
|
328
|
-
meta: {},
|
|
301
|
+
success: false, url, title: '', text: '', links: [], images: [], meta: {},
|
|
329
302
|
error: error.message,
|
|
330
303
|
};
|
|
331
304
|
}
|
|
332
305
|
finally {
|
|
333
|
-
|
|
334
|
-
|
|
306
|
+
if (page && needsCleanup) {
|
|
307
|
+
try {
|
|
335
308
|
await page.close().catch(() => { });
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
309
|
+
}
|
|
310
|
+
catch { }
|
|
311
|
+
}
|
|
312
|
+
if (!taskId) {
|
|
313
|
+
try {
|
|
314
|
+
await this.sessionManager.destroy(sessionKey);
|
|
315
|
+
}
|
|
316
|
+
catch { }
|
|
340
317
|
}
|
|
341
|
-
catch { }
|
|
342
318
|
}
|
|
343
319
|
}
|
|
344
320
|
/**
|
|
345
321
|
* 截取页面截图
|
|
322
|
+
*
|
|
323
|
+
* @param url 目标 URL
|
|
324
|
+
* @param workDir 工作目录
|
|
325
|
+
* @param options 截图选项
|
|
326
|
+
* @param taskId 任务 ID(用于会话隔离)
|
|
346
327
|
*/
|
|
347
|
-
async takeScreenshot(url, workDir, options) {
|
|
328
|
+
async takeScreenshot(url, workDir, options, taskId) {
|
|
348
329
|
const urlCheck = this.validateUrl(url);
|
|
349
330
|
if (!urlCheck.allowed) {
|
|
350
331
|
return { success: false, path: '', width: 0, height: 0, sizeKB: 0, error: urlCheck.reason };
|
|
351
332
|
}
|
|
352
|
-
|
|
353
|
-
try {
|
|
354
|
-
const pw = await import('playwright');
|
|
355
|
-
chromium = pw.chromium;
|
|
356
|
-
}
|
|
357
|
-
catch {
|
|
358
|
-
return { success: false, path: '', width: 0, height: 0, sizeKB: 0, error: 'playwright 不可用' };
|
|
359
|
-
}
|
|
360
|
-
let browser = null;
|
|
361
|
-
let context = null;
|
|
333
|
+
const sessionKey = taskId || '__no_session__';
|
|
362
334
|
let page = null;
|
|
335
|
+
let needsCleanup = false;
|
|
363
336
|
try {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
ignoreHTTPSErrors: true,
|
|
368
|
-
viewport: { width: this.config.screenshotMaxWidth, height: 720 },
|
|
369
|
-
});
|
|
370
|
-
page = await context.newPage();
|
|
337
|
+
const session = await this.sessionManager.getOrCreate(sessionKey);
|
|
338
|
+
page = await session.context.newPage();
|
|
339
|
+
needsCleanup = true;
|
|
371
340
|
await page.goto(url, {
|
|
372
341
|
timeout: this.config.pageTimeoutMs,
|
|
373
342
|
waitUntil: 'domcontentloaded',
|
|
@@ -388,17 +357,26 @@ export class BrowserSandbox {
|
|
|
388
357
|
return { success: false, path: '', width: 0, height: 0, sizeKB: 0, error: error.message };
|
|
389
358
|
}
|
|
390
359
|
finally {
|
|
391
|
-
|
|
392
|
-
|
|
360
|
+
if (page && needsCleanup) {
|
|
361
|
+
try {
|
|
393
362
|
await page.close().catch(() => { });
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
363
|
+
}
|
|
364
|
+
catch { }
|
|
365
|
+
}
|
|
366
|
+
if (!taskId) {
|
|
367
|
+
try {
|
|
368
|
+
await this.sessionManager.destroy(sessionKey);
|
|
369
|
+
}
|
|
370
|
+
catch { }
|
|
398
371
|
}
|
|
399
|
-
catch { }
|
|
400
372
|
}
|
|
401
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* 关闭所有会话和浏览器(框架退出时调用)
|
|
376
|
+
*/
|
|
377
|
+
async close() {
|
|
378
|
+
await this.sessionManager.destroyAll();
|
|
379
|
+
}
|
|
402
380
|
/**
|
|
403
381
|
* 内部截图方法(复用已打开的 page 实例)
|
|
404
382
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/browser-sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/browser-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 浏览器会话管理器
|
|
3
|
+
*
|
|
4
|
+
* 管理 Playwright Browser 实例和 BrowserContext 池,实现:
|
|
5
|
+
* - 全局共享 Browser 进程(节省 ~400MB 内存)
|
|
6
|
+
* - 按 taskId 隔离 BrowserContext(Cookie/Storage/Session 独立)
|
|
7
|
+
* - 同一任务的多次浏览器操作复用同一 Context(保持登录态)
|
|
8
|
+
* - 任务结束后自动销毁 Context 释放资源
|
|
9
|
+
* - 超时自动清理防泄漏
|
|
10
|
+
*/
|
|
11
|
+
interface BrowserSession {
|
|
12
|
+
browser: any;
|
|
13
|
+
context: any;
|
|
14
|
+
createdAt: number;
|
|
15
|
+
lastUsedAt: number;
|
|
16
|
+
pageCount: number;
|
|
17
|
+
}
|
|
18
|
+
export interface BrowserSessionConfig {
|
|
19
|
+
/** 会话最大空闲时间(ms),超时自动销毁,默认 10 分钟 */
|
|
20
|
+
maxIdleMs?: number;
|
|
21
|
+
/** 最大并发 session 数,默认 5 */
|
|
22
|
+
maxSessions?: number;
|
|
23
|
+
/** 启动浏览器时的额外参数 */
|
|
24
|
+
launchArgs?: string[];
|
|
25
|
+
/** User-Agent */
|
|
26
|
+
userAgent?: string;
|
|
27
|
+
/** 代理 URL */
|
|
28
|
+
proxyUrl?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare class BrowserSessionManager {
|
|
31
|
+
private logger;
|
|
32
|
+
private config;
|
|
33
|
+
/** 共享 Browser 实例(懒初始化) */
|
|
34
|
+
private sharedBrowser;
|
|
35
|
+
private browserInitializing;
|
|
36
|
+
/** 会话池:taskId → BrowserSession */
|
|
37
|
+
private sessions;
|
|
38
|
+
/** 超时清理定时器 */
|
|
39
|
+
private cleanupTimer;
|
|
40
|
+
constructor(config?: BrowserSessionConfig);
|
|
41
|
+
/**
|
|
42
|
+
* 获取或创建指定任务的浏览器会话
|
|
43
|
+
*
|
|
44
|
+
* - 如果 taskId 已有会话且未过期,直接返回(复用 Context,保持登录态)
|
|
45
|
+
* - 否则创建新 Context(全新隔离环境)
|
|
46
|
+
*/
|
|
47
|
+
getOrCreate(taskId: string): Promise<BrowserSession>;
|
|
48
|
+
/**
|
|
49
|
+
* 销毁指定任务的会话
|
|
50
|
+
*/
|
|
51
|
+
destroy(taskId: string): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* 销毁所有会话(关闭共享浏览器)
|
|
54
|
+
*/
|
|
55
|
+
destroyAll(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* 获取当前会话统计
|
|
58
|
+
*/
|
|
59
|
+
getStats(): {
|
|
60
|
+
totalSessions: number;
|
|
61
|
+
maxSessions: number;
|
|
62
|
+
sessions: {
|
|
63
|
+
taskId: string;
|
|
64
|
+
ageMs: number;
|
|
65
|
+
idleMs: number;
|
|
66
|
+
pageCount: any;
|
|
67
|
+
}[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* 获取共享 Browser 实例(懒初始化,单例)
|
|
71
|
+
*/
|
|
72
|
+
private getSharedBrowser;
|
|
73
|
+
/**
|
|
74
|
+
* 启动 Chromium 浏览器
|
|
75
|
+
*/
|
|
76
|
+
private launchBrowser;
|
|
77
|
+
/**
|
|
78
|
+
* 清理超时空闲会话
|
|
79
|
+
*/
|
|
80
|
+
private cleanupIdleSessions;
|
|
81
|
+
/**
|
|
82
|
+
* 驱逐最老的空闲会话(用于并发上限控制)
|
|
83
|
+
*/
|
|
84
|
+
private evictOldestIdle;
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=browser-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.d.ts","sourceRoot":"","sources":["../../src/sandbox/browser-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,UAAU,cAAc;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAwB;IAEtC,0BAA0B;IAC1B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,mBAAmB,CAA6B;IAExD,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAqC;IAErD,cAAc;IACd,OAAO,CAAC,YAAY,CAA+C;gBAEvD,MAAM,CAAC,EAAE,oBAAoB;IAuBzC;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAyD1D;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;OAEG;IACH,QAAQ;;;;;;;;;;IAeR;;OAEG;YACW,gBAAgB;IA4B9B;;OAEG;YACW,aAAa;IA6B3B;;OAEG;YACW,mBAAmB;IAiBjC;;OAEG;YACW,eAAe;CAmB9B"}
|