indirecttek-vibe-engine 2.6.32 → 2.6.43
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 +31 -43
- package/out/extension.js +115 -63
- package/out/extension.js.map +1 -1
- package/out/permissions/PermissionManager.js +159 -0
- package/out/permissions/PermissionManager.js.map +1 -0
- package/out/telemetry.js.map +1 -1
- package/package.json +18 -3
package/README.md
CHANGED
|
@@ -6,74 +6,62 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## 🚀
|
|
9
|
+
## 🚀 Quick Start (Direct Mode)
|
|
10
10
|
|
|
11
11
|
**Prerequisites:**
|
|
12
|
-
-
|
|
13
|
-
-
|
|
12
|
+
- **Ollama** installed and running (`http://localhost:11434`).
|
|
13
|
+
- **Model**: `qwen2.5-coder:14b` (Recommended). Pull it via `ollama pull qwen2.5-coder:14b`.
|
|
14
14
|
|
|
15
|
-
### Step 1: Install
|
|
16
|
-
|
|
15
|
+
### Step 1: Install & Go
|
|
16
|
+
1. Install **"IndirectTek Vibe Engine"** from VS Code Marketplace.
|
|
17
|
+
2. Open the **IndirectTek AI** chat panel.
|
|
18
|
+
3. Type: *"Create a hello world python script"*.
|
|
19
|
+
4. **Important**: Check your Settings! The default configuration might point to a specific IP (`192.168...`). Change `partnerBot.ollamaUrl` to `http://localhost:11434` (or your server IP) if running locally.
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
The brain of the operation runs separately to ensure stability. Open a terminal and run:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx indirecttek-vibe-engine@latest
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
It will print a security token:
|
|
26
|
-
```text
|
|
27
|
-
🚀 Starting IndirectTek Vibe Agent...
|
|
28
|
-
🔑 GENERATED TOKEN: vibe-abcd-1234
|
|
29
|
-
👉 Copy this token...
|
|
30
|
-
```
|
|
31
|
-
*Keep this terminal running!*
|
|
32
|
-
|
|
33
|
-
### Step 3: Connect
|
|
34
|
-
1. Open VS Code Settings (`Cmd+,`).
|
|
35
|
-
2. Search for **"IndirectTek"**.
|
|
36
|
-
3. Configure:
|
|
37
|
-
- **Ollama Url**: `http://<YOUR_SERVER_IP>:11434` (Ask your Admin for this IP)
|
|
38
|
-
- **Model**: `qwen2.5-coder:32b` (Or whatever works on your server)
|
|
39
|
-
- **Use Controller**: ✅ **CHECKED** (This connects to the npx process)
|
|
40
|
-
- **Controller Token**: Paste the `vibe-xxxx` token from Step 2.
|
|
41
|
-
|
|
42
|
-
### Step 4: Vibe Check
|
|
43
|
-
Open the **IndirectTek AI** chat panel.
|
|
44
|
-
You should see: `✅ Agent Controller Connected`.
|
|
45
|
-
|
|
46
|
-
Type: *"Create a hello world python script"* to test it out!
|
|
21
|
+
_Note: The agent connects to `http://localhost:11434` by default._
|
|
47
22
|
|
|
48
23
|
---
|
|
49
24
|
|
|
50
|
-
## 🛠️ Advanced:
|
|
25
|
+
## 🛠️ Advanced: Vibe Controller (Optional)
|
|
51
26
|
|
|
52
|
-
|
|
53
|
-
|
|
27
|
+
For **Telemetry**, **Dashboards**, and **Enterprise Features**, run the standalone Vibe Controller:
|
|
28
|
+
|
|
29
|
+
1. Run: `npx indirecttek-vibe-engine@latest`
|
|
30
|
+
2. Copy the **Token**.
|
|
31
|
+
3. In VS Code Settings:
|
|
32
|
+
- Set **Use Controller** to `true`.
|
|
33
|
+
- Paste the **Controller Token**.
|
|
54
34
|
|
|
55
35
|
---
|
|
56
36
|
|
|
57
|
-
## ✨ Key Features (v2.
|
|
37
|
+
## ✨ Key Features (v2.6)
|
|
58
38
|
- **100% Data Privacy**: Your code never leaves your network.
|
|
39
|
+
- **Permission System (Yellow Card)**: Interactive approval for sensitive actions:
|
|
40
|
+
- **Shell**: `run_command` requires manual allow (Always/Once/Deny).
|
|
41
|
+
- **Visual**: `generate_image` triggers approval.
|
|
42
|
+
- **Files**: `create_file` checks permissions.
|
|
43
|
+
- **Cybernetic Vision**: The agent can now **Scan Directories** (`LIST_DIR`) to understand your project structure instantly.
|
|
44
|
+
- **Studio Mode**: Generate assets using `generate_image` (requires Fooocus API).
|
|
59
45
|
- **Intent Router**: Automatically switches models based on task (Chat vs Refactor vs Plan).
|
|
60
|
-
- **Context Hygiene**: Enforces strict token limits to prevent "poisoning" the model with too much history.
|
|
61
|
-
- **Deep Telemetry**: Tracks real-time Token/s and Latency for every request.
|
|
62
|
-
- **Visual Dashboard**: View live metrics and request logs at `http://localhost:43110/stats`.
|
|
63
|
-
- **Auto-Summary**: Automatically summarizes changes (Edits, Commands) at the end of every task.
|
|
64
46
|
- **Autonomous Editing**: Strict "Hunk Only" editing to prevent creating massive diffs.
|
|
65
47
|
|
|
66
48
|
## ⚙️ Configuration (The "Router")
|
|
67
|
-
You can
|
|
49
|
+
You can map distinct models to different "Intents" in your `settings.json`:
|
|
68
50
|
|
|
69
51
|
```json
|
|
70
52
|
"partnerBot.models.fast": "qwen2.5:7b", // Chat, Explanations
|
|
71
53
|
"partnerBot.models.default": "qwen2.5-coder:14b", // Refactoring, Editing
|
|
72
54
|
"partnerBot.models.deep": "qwen2.5:32b", // Planning, Complex Logic
|
|
55
|
+
"partnerBot.allowedCommands": ["npm install", "cd", "ls", "grep"] // Whitelist
|
|
73
56
|
```
|
|
74
57
|
|
|
75
58
|
The agent will automatically route "Fix this" requests to the **Default** (Coder) model and casual chat to the **Fast** model.
|
|
76
59
|
|
|
60
|
+
## 🚨 Troubleshooting
|
|
61
|
+
- **Command 'cd' not in allowed list**: Update to v2.6.39+.
|
|
62
|
+
- **Image Generation fails**: Ensure Fooocus is running and `partnerBot.fooocusUrl` is correct.
|
|
63
|
+
- **Connection Refused**: Check your `ollamaUrl`. If using WSL or Docker, use the host IP.
|
|
64
|
+
|
|
77
65
|
---
|
|
78
66
|
|
|
79
67
|
## 📜 License
|
package/out/extension.js
CHANGED
|
@@ -7,7 +7,8 @@ const vscode = require("vscode");
|
|
|
7
7
|
// _checkConnection is implemented below, removing duplicate here.
|
|
8
8
|
const fs = require("fs");
|
|
9
9
|
const path = require("path");
|
|
10
|
-
const
|
|
10
|
+
const PermissionManager_1 = require("./permissions/PermissionManager");
|
|
11
|
+
const telemetry_1 = require("./telemetry");
|
|
11
12
|
const auth_1 = require("./auth");
|
|
12
13
|
const node_fetch_1 = require("node-fetch");
|
|
13
14
|
function activate(context) {
|
|
@@ -42,7 +43,7 @@ class PartnerBotProvider {
|
|
|
42
43
|
this._pendingApprovals = new Map();
|
|
43
44
|
this._messageHistory = [];
|
|
44
45
|
this._context = context;
|
|
45
|
-
this._permissionManager = new
|
|
46
|
+
this._permissionManager = new PermissionManager_1.PermissionManager(context);
|
|
46
47
|
if (!PartnerBotProvider.outputChannel) {
|
|
47
48
|
PartnerBotProvider.outputChannel = vscode.window.createOutputChannel("IndirectTek Vibe Engine");
|
|
48
49
|
}
|
|
@@ -234,6 +235,11 @@ class PartnerBotProvider {
|
|
|
234
235
|
const allowed = config.get('allowCommandExecution') ?? true;
|
|
235
236
|
const executionMode = config.get('commandExecutionMode') || 'interactive';
|
|
236
237
|
const whitelist = config.get('allowedCommands') || [];
|
|
238
|
+
// Hotfix: Ensure 'cd' and 'ls' are allowed even if config is stale
|
|
239
|
+
if (!whitelist.includes('cd'))
|
|
240
|
+
whitelist.push('cd');
|
|
241
|
+
if (!whitelist.includes('ls'))
|
|
242
|
+
whitelist.push('ls');
|
|
237
243
|
if (!allowed) {
|
|
238
244
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nCommand execution disabled in settings.` });
|
|
239
245
|
this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' blocked (settings).` });
|
|
@@ -257,8 +263,10 @@ class PartnerBotProvider {
|
|
|
257
263
|
resolve(false);
|
|
258
264
|
return;
|
|
259
265
|
}
|
|
266
|
+
const execCwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : undefined;
|
|
267
|
+
const requestCwd = execCwd || '';
|
|
260
268
|
// 3. Permission Manager Check (Centralized Capability System)
|
|
261
|
-
const permissionCheck = await this._permissionManager.checkCommandPermission(command);
|
|
269
|
+
const permissionCheck = await this._permissionManager.checkCommandPermission(command, requestCwd);
|
|
262
270
|
if (permissionCheck.verdict === 'DENY') {
|
|
263
271
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nBlocked by Policy: ${permissionCheck.reason || 'Denied'}` });
|
|
264
272
|
this._messageHistory.push({ role: 'user', content: `[System]: Command '${command}' denied by policy.` });
|
|
@@ -266,18 +274,44 @@ class PartnerBotProvider {
|
|
|
266
274
|
return;
|
|
267
275
|
}
|
|
268
276
|
if (permissionCheck.verdict === 'ASK') {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
277
|
+
telemetry_1.telemetry.log({
|
|
278
|
+
timestamp: new Date().toISOString(),
|
|
279
|
+
request_type: 'permission',
|
|
280
|
+
selected_model: 'n/a',
|
|
281
|
+
mode: 'permissionRequested',
|
|
282
|
+
input_tokens: 0,
|
|
283
|
+
output_tokens: 0,
|
|
284
|
+
total_latency_ms: 0,
|
|
285
|
+
success: true,
|
|
286
|
+
requestId: permissionCheck.request.requestId,
|
|
287
|
+
kind: permissionCheck.request.kind,
|
|
288
|
+
commandPrefix: this._permissionManager.getCommandPrefix(command),
|
|
289
|
+
verdict: 'ASK',
|
|
290
|
+
scope: 'none'
|
|
291
|
+
});
|
|
272
292
|
// 3a. Ask for Approval via Resumable UI
|
|
273
293
|
this._view?.webview.postMessage({
|
|
274
294
|
type: 'askApproval',
|
|
275
|
-
|
|
276
|
-
requestId: requestId
|
|
295
|
+
request: permissionCheck.request
|
|
277
296
|
});
|
|
278
297
|
// 3b. Pause and Wait for User Decision
|
|
279
298
|
const decision = await new Promise((res) => {
|
|
280
|
-
this._pendingApprovals.set(requestId, res);
|
|
299
|
+
this._pendingApprovals.set(permissionCheck.request.requestId, res);
|
|
300
|
+
});
|
|
301
|
+
telemetry_1.telemetry.log({
|
|
302
|
+
timestamp: new Date().toISOString(),
|
|
303
|
+
request_type: 'permission',
|
|
304
|
+
selected_model: 'n/a',
|
|
305
|
+
mode: 'permissionDecision',
|
|
306
|
+
input_tokens: 0,
|
|
307
|
+
output_tokens: 0,
|
|
308
|
+
total_latency_ms: 0,
|
|
309
|
+
success: decision !== 'DENY',
|
|
310
|
+
requestId: permissionCheck.request.requestId,
|
|
311
|
+
kind: permissionCheck.request.kind,
|
|
312
|
+
commandPrefix: this._permissionManager.getCommandPrefix(command),
|
|
313
|
+
verdict: decision === 'DENY' ? 'DENY' : 'ALLOW',
|
|
314
|
+
scope: decision === 'ALLOW_WORKSPACE' ? 'workspace' : (decision === 'ALLOW_ONCE' ? 'once' : 'deny')
|
|
281
315
|
});
|
|
282
316
|
if (decision === 'DENY') {
|
|
283
317
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
|
|
@@ -285,20 +319,19 @@ class PartnerBotProvider {
|
|
|
285
319
|
resolve(false);
|
|
286
320
|
return;
|
|
287
321
|
}
|
|
288
|
-
if (decision === '
|
|
289
|
-
this._permissionManager.
|
|
290
|
-
this._messageHistory.push({ role: 'assistant', content: `[System]: Permission granted
|
|
322
|
+
if (decision === 'ALLOW_WORKSPACE') {
|
|
323
|
+
this._permissionManager.rememberWorkspaceAllow(command);
|
|
324
|
+
this._messageHistory.push({ role: 'assistant', content: `[System]: Permission granted for workspace.` });
|
|
291
325
|
}
|
|
292
326
|
}
|
|
293
|
-
// Verdict is ALLOW (or ASK -> ALLOW
|
|
327
|
+
// Verdict is ALLOW (or ASK -> ALLOW), fall through to execution...
|
|
294
328
|
// Auto-Mode / Approved Execution flow continues below...
|
|
295
329
|
// AUTO or Approved Interactive
|
|
296
330
|
const terminal = vscode.window.createTerminal(`Agent: ${commandName}`);
|
|
297
331
|
terminal.show();
|
|
298
332
|
this._view?.webview.postMessage({ type: 'actionEntry', value: `run_command: ${command}` });
|
|
299
333
|
const cp = require('child_process');
|
|
300
|
-
|
|
301
|
-
cp.exec(command, { cwd }, (err, stdout, stderr) => {
|
|
334
|
+
cp.exec(command, { cwd: execCwd }, (err, stdout, stderr) => {
|
|
302
335
|
terminal.sendText(command);
|
|
303
336
|
let output = stdout + '\n' + stderr;
|
|
304
337
|
if (output.length > 2000)
|
|
@@ -346,24 +379,28 @@ class PartnerBotProvider {
|
|
|
346
379
|
// We treat 'Create File' permissions as proxy for 'Generate Image' (writes file)
|
|
347
380
|
// Or we can assume it's 'edit' since it writes to workspace.
|
|
348
381
|
// Let's use 'create' scope.
|
|
349
|
-
const
|
|
382
|
+
const cwd = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : '';
|
|
383
|
+
const permissionCheck = await this._permissionManager.checkFilePermission(outputPath, 'create', cwd);
|
|
350
384
|
if (permissionCheck.verdict === 'ASK') {
|
|
351
|
-
const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
|
|
352
385
|
this._view?.webview.postMessage({
|
|
353
386
|
type: 'askApproval',
|
|
354
|
-
|
|
355
|
-
|
|
387
|
+
request: {
|
|
388
|
+
...permissionCheck.request,
|
|
389
|
+
kind: 'image',
|
|
390
|
+
command: `generate_image ${outputPath}`,
|
|
391
|
+
reason: `Generate image: ${prompt}`
|
|
392
|
+
}
|
|
356
393
|
});
|
|
357
394
|
const decision = await new Promise((res) => {
|
|
358
|
-
this._pendingApprovals.set(requestId, res);
|
|
395
|
+
this._pendingApprovals.set(permissionCheck.request.requestId, res);
|
|
359
396
|
});
|
|
360
397
|
if (decision === 'DENY') {
|
|
361
398
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
|
|
362
399
|
return;
|
|
363
400
|
}
|
|
364
|
-
// We don't really
|
|
365
|
-
// but if user says
|
|
366
|
-
if (decision === '
|
|
401
|
+
// We don't really allow image gen paths as workspace patterns since they are random usually,
|
|
402
|
+
// but if user says Allow Workspace, it applies to that specific filename.
|
|
403
|
+
if (decision === 'ALLOW_WORKSPACE') {
|
|
367
404
|
this._permissionManager.rememberFileDecision(outputPath, 'create', 'ALLOW_ALWAYS');
|
|
368
405
|
}
|
|
369
406
|
}
|
|
@@ -481,6 +518,8 @@ IMPORTANT: You must use the following XML tags for actions. DO NOT use JSON. DO
|
|
|
481
518
|
- SEARCH_REPLACE: Use <SEARCH_REPLACE><FILE>relative/path</FILE><SEARCH>exact existing code to match</SEARCH><REPLACE>new code</REPLACE></SEARCH_REPLACE>
|
|
482
519
|
- READ_FILE: Use <READ_FILE>relative/path</READ_FILE>
|
|
483
520
|
- RUN_COMMAND: Use <RUN_COMMAND>shell command</RUN_COMMAND>
|
|
521
|
+
- GENERATE_IMAGE: Use <GENERATE_IMAGE><PROMPT>description of image</PROMPT><OUTPUT>relative/path.png</OUTPUT></GENERATE_IMAGE>
|
|
522
|
+
- LIST_DIR: Use <LIST_DIR /> to see file structure.
|
|
484
523
|
|
|
485
524
|
[EXAMPLES]
|
|
486
525
|
User: Create a file named hello.ts
|
|
@@ -489,9 +528,15 @@ Assistant: <CREATE_FILE><PATH>hello.ts</PATH><CONTENT>console.log("hello");</CON
|
|
|
489
528
|
User: Run npm install
|
|
490
529
|
Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
491
530
|
|
|
531
|
+
User: Generate an image of a red cat
|
|
532
|
+
Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUTPUT></GENERATE_IMAGE>
|
|
533
|
+
|
|
492
534
|
[ENVIRONMENT]
|
|
493
535
|
- Workspace root folder name: ${workspaceRoot}
|
|
494
|
-
- You are running inside a local VS Code extension with full read/write access to the open workspace (subject to user settings). Implement changes via tools instead of only describing them
|
|
536
|
+
- You are running inside a local VS Code extension with full read/write access to the open workspace (subject to user settings). Implement changes via tools instead of only describing them.
|
|
537
|
+
- IMPORTANT: <RUN_COMMAND> runs in a NEW shell instance every time. Use 'cd folder && command' syntax.
|
|
538
|
+
- IMPORTANT: When working in a subdirectory, you MUST include the prefix in file paths, e.g. <CREATE_FILE><PATH>subfolder/file</PATH>...
|
|
539
|
+
- IMPORTANT: When using scaffolding tools (npx create-next-app, vite, etc.), ALWAYS use flags to disable interactivity (e.g. '--yes', '--typescript', '--no-eslint', '--defaults'). Do not let it hang waiting for input.`;
|
|
495
540
|
// Detect Controller Usage
|
|
496
541
|
const config = vscode.workspace.getConfiguration('partnerBot');
|
|
497
542
|
const useController = config.get('useController', false) && config.get('controllerUrl', '') !== '';
|
|
@@ -556,33 +601,17 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
556
601
|
assistantResponse.includes('<GENERATE_IMAGE>')) {
|
|
557
602
|
mutatingActionOccurred = true;
|
|
558
603
|
}
|
|
559
|
-
// v2.6.30 Fix: ALWAYS parse the response locally.
|
|
604
|
+
// v2.6.30/34 Fix: ALWAYS parse the response locally.
|
|
560
605
|
// The Controller (in Proxy Mode) runs the LLM but does NOT execute tools.
|
|
561
|
-
// We must parse the stream/buffer here to find <RUN_COMMAND> etc.
|
|
562
|
-
// Legacy code removed: if (useController) { continue; }
|
|
563
606
|
// 3. Process the full response for XML tags
|
|
564
|
-
// Note: We process the ACCUMULATED response (assistantResponse)
|
|
565
|
-
// But _processStreamChunk usually expects chunks?
|
|
566
|
-
// Actually, _processStreamChunk maintains _streamBuffer state.
|
|
567
|
-
// If we fed it chunks in the callback, it would work incrementally.
|
|
568
|
-
// But currently the callback only updates UI.
|
|
569
|
-
// So we feed the WHOLE response now.
|
|
570
|
-
// Wait, we need to append to _streamBuffer?
|
|
571
|
-
// queryOllama callback alread appended to _streamBuffer (Line 614).
|
|
572
|
-
// So we just need to call a parsing function that checks _streamBuffer?
|
|
573
|
-
// Check _processStreamChunk implementation. It takes 'chunk' and appends to buffer.
|
|
574
|
-
// If buffer is already full (from callback), we shouldn't append again.
|
|
575
|
-
// Let's look at how it was done before.
|
|
576
|
-
// It seems _processStreamChunk was NOT called in the callback.
|
|
577
|
-
// So we must call it here.
|
|
578
|
-
// Reset buffer? No, callback filled it.
|
|
579
|
-
// We should pass an empty string to _processStreamChunk to trigger the regex check on existing buffer?
|
|
580
|
-
// Or refactor _processStreamChunk to not append if empty?
|
|
581
|
-
// Actually, best safety:
|
|
582
|
-
// The callback populated 'assistantResponse'.
|
|
583
|
-
// Let's reset _streamBuffer and feed assistantResponse to _processStreamChunk.
|
|
584
607
|
this._streamBuffer = "";
|
|
585
|
-
|
|
608
|
+
try {
|
|
609
|
+
// v2.6.34 Update: _processStreamChunk returns boolean (true if tool found/executed)
|
|
610
|
+
toolActionOccurred = await this._processStreamChunk(assistantResponse);
|
|
611
|
+
}
|
|
612
|
+
catch (e) {
|
|
613
|
+
console.error("Error parsing stream:", e);
|
|
614
|
+
}
|
|
586
615
|
try {
|
|
587
616
|
// After stream finishes, check for tool calls that need feedback (like READ_FILE)
|
|
588
617
|
// My stream parser handles EDIT/CREATE/RUN internally.
|
|
@@ -665,8 +694,9 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
665
694
|
}
|
|
666
695
|
// --- VIBE CODING PARSER 3.0 ---
|
|
667
696
|
async _processStreamChunk(chunk) {
|
|
668
|
-
|
|
697
|
+
// We accumulate buffer. chunk is usually full content in v2.6.30 fix logic.
|
|
669
698
|
this._streamBuffer += chunk;
|
|
699
|
+
let toolFound = false;
|
|
670
700
|
// Decode HTML entities (common model failure mode)
|
|
671
701
|
this._streamBuffer = this._streamBuffer
|
|
672
702
|
.replace(/</g, '<')
|
|
@@ -697,6 +727,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
697
727
|
const searchMatch = /<SEARCH>([\s\S]*?)<\/SEARCH>/.exec(innerContent);
|
|
698
728
|
const replaceMatch = /<REPLACE>([\s\S]*?)<\/REPLACE>/.exec(innerContent);
|
|
699
729
|
if (fileMatch && searchMatch && replaceMatch) {
|
|
730
|
+
toolFound = true;
|
|
700
731
|
const targetFile = fileMatch[1].trim();
|
|
701
732
|
this._view?.webview.postMessage({ type: 'thoughtStart', value: `Editing: ${targetFile}` });
|
|
702
733
|
const result = await this._applyEdit(targetFile, searchMatch[1].trim(), replaceMatch[1].trim());
|
|
@@ -714,6 +745,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
714
745
|
const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
|
|
715
746
|
const bodyMatch = /<CONTENT>([\s\S]*?)<\/CONTENT>/.exec(innerContent);
|
|
716
747
|
if (pathMatch && bodyMatch) {
|
|
748
|
+
toolFound = true;
|
|
717
749
|
const targetFile = pathMatch[1].trim();
|
|
718
750
|
this._view?.webview.postMessage({ type: 'thoughtStart', value: `Creating: ${targetFile}` });
|
|
719
751
|
const result = await this._createFile(targetFile, bodyMatch[1].trim());
|
|
@@ -726,6 +758,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
726
758
|
// 3. RUN_COMMAND
|
|
727
759
|
const cmdRegex = /<RUN_COMMAND>([\s\S]*?)<\/RUN_COMMAND>/g;
|
|
728
760
|
while ((match = cmdRegex.exec(this._streamBuffer)) !== null) {
|
|
761
|
+
toolFound = true;
|
|
729
762
|
const content = match[0];
|
|
730
763
|
const command = match[1].trim();
|
|
731
764
|
// Decide whether to auto-run or just suggest the command based on settings.
|
|
@@ -750,14 +783,32 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
750
783
|
// 4. READ_FILE
|
|
751
784
|
const readRegex = /<READ_FILE>([\s\S]*?)<\/READ_FILE>/g;
|
|
752
785
|
while ((match = readRegex.exec(this._streamBuffer)) !== null) {
|
|
786
|
+
toolFound = true;
|
|
753
787
|
const content = match[0];
|
|
754
788
|
const file = match[1].trim();
|
|
755
789
|
this._view?.webview.postMessage({ type: 'thoughtStart', value: `Reading: ${file}` });
|
|
790
|
+
// v2.6.34 Fix: actually read the file into history
|
|
791
|
+
const fileContent = await this._readFileContent(file);
|
|
792
|
+
this._messageHistory.push({ role: 'user', content: `[System: Content of ${file}]:\n\`\`\`\n${fileContent}\n\`\`\`` });
|
|
756
793
|
this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Read' });
|
|
757
794
|
this._streamBuffer = this._streamBuffer.replace(content, "");
|
|
758
795
|
readRegex.lastIndex = 0;
|
|
759
796
|
}
|
|
760
|
-
// 5.
|
|
797
|
+
// 5. LIST_DIR (New v2.6.34 - Updated regex for self-closing tags)
|
|
798
|
+
// Matches <LIST_DIR /> OR <LIST_DIR>path</LIST_DIR>
|
|
799
|
+
const listRegex = /<LIST_DIR\s*\/?>((?:.|\n)*?)<\/LIST_DIR>|<LIST_DIR\s*\/>/g;
|
|
800
|
+
while ((match = listRegex.exec(this._streamBuffer)) !== null) {
|
|
801
|
+
toolFound = true;
|
|
802
|
+
const content = match[0];
|
|
803
|
+
// If it's the self-closing match, match[1] will be undefined.
|
|
804
|
+
this._view?.webview.postMessage({ type: 'thoughtStart', value: `Listing files...` });
|
|
805
|
+
const structure = await this._getWorkspaceStructure();
|
|
806
|
+
this._messageHistory.push({ role: 'user', content: `[System: File Structure]:\n${structure}` });
|
|
807
|
+
this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Done' });
|
|
808
|
+
this._streamBuffer = this._streamBuffer.replace(content, "");
|
|
809
|
+
listRegex.lastIndex = 0;
|
|
810
|
+
}
|
|
811
|
+
// 6. GENERATE_IMAGE
|
|
761
812
|
const imgRegex = /<GENERATE_IMAGE>([\s\S]*?)<\/GENERATE_IMAGE>/g;
|
|
762
813
|
while ((match = imgRegex.exec(this._streamBuffer)) !== null) {
|
|
763
814
|
if (this._abortController?.signal.aborted)
|
|
@@ -767,6 +818,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
767
818
|
const promptMatch = /<PROMPT>(.*?)<\/PROMPT>/.exec(innerContent);
|
|
768
819
|
const outputMatch = /<OUTPUT>(.*?)<\/OUTPUT>/.exec(innerContent);
|
|
769
820
|
if (promptMatch && outputMatch) {
|
|
821
|
+
toolFound = true;
|
|
770
822
|
if (this._imagesGeneratedThisTurn >= 1) {
|
|
771
823
|
PartnerBotProvider.outputChannel.appendLine('[Info] XML: Skipping additional image generation (Limit 1 per turn).');
|
|
772
824
|
// Consume tag but do nothing
|
|
@@ -781,6 +833,7 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
781
833
|
imgRegex.lastIndex = 0;
|
|
782
834
|
}
|
|
783
835
|
}
|
|
836
|
+
return toolFound;
|
|
784
837
|
}
|
|
785
838
|
async _createFile(relPath, content) {
|
|
786
839
|
try {
|
|
@@ -796,22 +849,21 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
796
849
|
}
|
|
797
850
|
const fullUri = vscode.Uri.joinPath(root, relPath);
|
|
798
851
|
// Phase 3: File Permission Check
|
|
799
|
-
const
|
|
852
|
+
const cwd = folders[0].uri.fsPath;
|
|
853
|
+
const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'create', cwd);
|
|
800
854
|
if (permissionCheck.verdict === 'ASK') {
|
|
801
|
-
const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
|
|
802
855
|
this._view?.webview.postMessage({
|
|
803
856
|
type: 'askApproval',
|
|
804
|
-
|
|
805
|
-
requestId: requestId
|
|
857
|
+
request: permissionCheck.request
|
|
806
858
|
});
|
|
807
859
|
const decision = await new Promise((res) => {
|
|
808
|
-
this._pendingApprovals.set(requestId, res);
|
|
860
|
+
this._pendingApprovals.set(permissionCheck.request.requestId, res);
|
|
809
861
|
});
|
|
810
862
|
if (decision === 'DENY') {
|
|
811
863
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
|
|
812
864
|
return `[System]: Action denied by user.`;
|
|
813
865
|
}
|
|
814
|
-
if (decision === '
|
|
866
|
+
if (decision === 'ALLOW_WORKSPACE') {
|
|
815
867
|
this._permissionManager.rememberFileDecision(relPath, 'create', 'ALLOW_ALWAYS');
|
|
816
868
|
}
|
|
817
869
|
}
|
|
@@ -869,22 +921,21 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
|
|
|
869
921
|
const endPos = doc.positionAt(endIndex);
|
|
870
922
|
const range = new vscode.Range(startPos, endPos);
|
|
871
923
|
// Phase 3: File Permission Check
|
|
872
|
-
const
|
|
924
|
+
const cwd = files[0].fsPath ? path.dirname(files[0].fsPath) : '';
|
|
925
|
+
const permissionCheck = await this._permissionManager.checkFilePermission(relPath, 'edit', cwd);
|
|
873
926
|
if (permissionCheck.verdict === 'ASK') {
|
|
874
|
-
const requestId = Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
|
|
875
927
|
this._view?.webview.postMessage({
|
|
876
928
|
type: 'askApproval',
|
|
877
|
-
|
|
878
|
-
requestId: requestId
|
|
929
|
+
request: permissionCheck.request
|
|
879
930
|
});
|
|
880
931
|
const decision = await new Promise((res) => {
|
|
881
|
-
this._pendingApprovals.set(requestId, res);
|
|
932
|
+
this._pendingApprovals.set(permissionCheck.request.requestId, res);
|
|
882
933
|
});
|
|
883
934
|
if (decision === 'DENY') {
|
|
884
935
|
this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nUser Denied Action.` });
|
|
885
936
|
return `[System]: Action denied by user.`;
|
|
886
937
|
}
|
|
887
|
-
if (decision === '
|
|
938
|
+
if (decision === 'ALLOW_WORKSPACE') {
|
|
888
939
|
this._permissionManager.rememberFileDecision(relPath, 'edit', 'ALLOW_ALWAYS');
|
|
889
940
|
}
|
|
890
941
|
}
|
|
@@ -1158,13 +1209,14 @@ Capabilities:
|
|
|
1158
1209
|
2. **Edit Files**: Use the \`replace_file_content\` tool for edits.
|
|
1159
1210
|
3. **Run Commands**: You can run \`npm install\`, \`npm test\`, \`grep\`, etc.
|
|
1160
1211
|
4. **Explore**: Use \`list_dir\` to see file structure.
|
|
1212
|
+
5. **Generate Images**: Use \`generate_image\` to create assets.
|
|
1161
1213
|
|
|
1162
1214
|
Rules:
|
|
1163
1215
|
- **Always** begin by listing the relevant files or searching if you are unsure.
|
|
1164
1216
|
- When editing, use exact string matching for the target content to replace.
|
|
1165
1217
|
- If a file edit fails, read the file again to check whitespace/indentation.
|
|
1166
1218
|
- Be concise in your thought process.
|
|
1167
|
-
- Valid Tools: view_file, list_dir, replace_file_content, run_command, create_file.
|
|
1219
|
+
- Valid Tools: view_file, list_dir, replace_file_content, run_command, create_file, generate_image.
|
|
1168
1220
|
- Do not output bare markdown unless answering a direct question. Use the tools.`;
|
|
1169
1221
|
return base;
|
|
1170
1222
|
}
|
package/out/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;AAgBA,4BAoCC;AApDD,iCAAiC;AAGjC,gBAAgB;AAEhB,qBAAqB;AAErB,kEAAkE;AAClE,yBAAyB;AACzB,6BAA6B;AAC7B,uEAAoE;AACpE,2CAAwC;AACxC,iCAAqC;AAErC,2CAA+B;AAE/B,SAAgB,QAAQ,CAAC,OAAgC;IACrD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvE,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAC7E,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACvD,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACnD,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,iDAAiD,CAAC,CAAC;IACnG,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAC3D,MAAM,GAAG,GAAG,oBAAoB,IAAI,QAAQ,CAAC;QAE7C,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAUD,MAAM,kBAAkB;IAapB,YAA6B,aAAyB,EAAE,OAAgC;QAA3D,kBAAa,GAAb,aAAa,CAAY;QAX9C,qBAAgB,GAA2B,IAAI,CAAC;QAChD,kBAAa,GAAW,EAAE,CAAC;QAC3B,6BAAwB,GAAW,CAAC,CAAC;QACrC,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,eAAU,GAAY,KAAK,CAAC;QAK5B,sBAAiB,GAA+E,IAAI,GAAG,EAAE,CAAC;QA2d1G,oBAAe,GAAwC,EAAE,CAAC;QAxd9D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACpC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;QACpG,CAAC;IACL,CAAC;IAEM,kBAAkB,CACrB,WAA+B,EAC/B,OAAyC,EACzC,MAAgC;QAEhC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QAEzB,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG;YAC1B,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;SAC3C,CAAC;QAEF,iGAAiG;QACjG,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YAE9G,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,cAAc;oBACf,oCAAoC;oBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5D,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM;gBACV,KAAK,MAAM;oBACP,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7E,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,wCAAwC;wBACtD,IAAI,CAAC;4BACD,8DAA8D;4BAC9D,8CAA8C;4BAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAChE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;wBAC9C,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBACzE,CAAC;oBACL,CAAC;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,MAAM;gBACV,KAAK,KAAK;oBACN,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM;gBACV,KAAK,MAAM;oBACP,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,wBAAwB;oBAC5C,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,MAAM;gBACV,KAAK,YAAY;oBACb,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,MAAM;gBACV,KAAK,eAAe,EAAE,+BAA+B;oBACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,oBAAoB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC5G,MAAM;gBACV,KAAK,cAAc;oBACf,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,+BAA+B,EAAE,0CAA0C,CAAC,CAAC;oBAC5G,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM;gBACV,KAAK,YAAY;oBACb,+DAA+D;oBAC/D,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzE,kBAAkB;oBAClB,8EAA8E;oBAC9E,kCAAkC;oBAClC,iFAAiF;oBACjF,MAAM;gBACV,KAAK,WAAW;oBACZ,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;oBACjF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM;YACd,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAExE,+DAA+D;QAC/D,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACnF,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAEhF,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,kBAAkB;QAEvF,uBAAuB;QACvB,IAAI,YAAY,GAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAS,WAAW,CAAC,IAAI,4BAA4B,CAAC;YAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC;YAExF,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAE7D,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;gBAC1C,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YACrC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa;YAC3F,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,cAAc;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,kCAAkC;QAE1D,iBAAiB;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,aAAa,GAAG,oBAAoB,IAAI,QAAQ,CAAC;gBAEvD,yCAAyC;gBACzC,IAAA,oBAAK,EAAC,aAAa,EAAE;oBACjB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;iBACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACV,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,mCAAmC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACT,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnG,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,uBAAuB;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACxE,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBAC5B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAC3C,OAAO,IAAI,OAAO,CAAU,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAU,uBAAuB,CAAC,IAAI,IAAI,CAAC;YACrE,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAS,sBAAsB,CAAC,IAAI,aAAa,CAAC;YAClF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAW,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAChE,mEAAmE;YACnE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC,CAAC;gBAC/G,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,uBAAuB,EAAE,CAAC,CAAC;gBAC3G,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7G,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,OAAO,qFAAqF,EAAE,CAAC,CAAC;gBAC7K,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,kBAAkB;YAClB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,WAAW,wBAAwB,EAAE,CAAC,CAAC;gBACrH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,8BAA8B,EAAE,CAAC,CAAC;gBAClH,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAGD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAChH,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,CAAC;YAEjC,8DAA8D;YAC9D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAElG,IAAI,eAAe,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,qBAAqB,EAAE,CAAC,CAAC;gBACzG,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,qBAAS,CAAC,GAAG,CAAC;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,KAAK;oBACrB,IAAI,EAAE,qBAAqB;oBAC3B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS;oBAC5C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI;oBAClC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAChE,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM;iBAChB,CAAC,CAAC;gBAEH,wCAAwC;gBACxC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,qBAAS,CAAC,GAAG,CAAC;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,KAAK;oBACrB,IAAI,EAAE,oBAAoB;oBAC1B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,QAAQ,KAAK,MAAM;oBAC5B,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS;oBAC5C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI;oBAClC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAChE,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC/C,KAAK,EAAE,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;iBACtG,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,mBAAmB,EAAE,CAAC,CAAC;oBACvG,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACX,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;oBACxD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACL,CAAC;YACD,mEAAmE;YAEnE,yDAAyD;YAGzD,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,OAAO,EAAE,EAAE,CAAC,CAAC;YAE3F,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAEpC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;gBAC5E,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAE3B,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;gBACpC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;oBAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC;gBAEhF,gCAAgC;gBAChC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;oBAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;wBACnD,MAAM,IAAI,kFAAkF,CAAC;oBACjG,CAAC;oBACD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5B,MAAM,IAAI,uDAAuD,CAAC;oBACtE,CAAC;oBACD,4BAA4B;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,0BAA0B;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAED,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC,GAAG,CAAC,IAAI,MAAM,MAAM,EAAE,EAAE,CAAC,CAAC;oBACrH,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5F,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAIO,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,UAAkB,EAAE,MAAoB;QACvF,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO;QAE5B,gCAAgC;QAChC,sFAAsF;QACtF,8FAA8F;QAC9F,6FAA6F;QAC7F,wCAAwC;QACxC,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,EAAE,CAAC;YACrC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,0DAA0D,CAAC,CAAC;YACxG,OAAO;QACX,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhG,0CAA0C;QAC1C,iFAAiF;QACjF,6DAA6D;QAC7D,4BAA4B;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;gBAC5B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;oBACL,GAAG,eAAe,CAAC,OAAO;oBAC1B,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,kBAAkB,UAAU,EAAE;oBACvC,MAAM,EAAE,mBAAmB,MAAM,EAAE;iBACtC;aACJ,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;gBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;gBAC3F,OAAO;YACX,CAAC;YACD,6FAA6F;YAC7F,0EAA0E;YAC1E,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC,IAAI,2BAA2B,CAAC,CAAC,cAAc;YAClG,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC;YAEhF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,MAAM;oBACN,uBAAuB,EAAE,UAAU;oBACnC,qBAAqB,EAAE,OAAO;oBAC9B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,KAAK;iBACvB,CAAC;gBACF,MAAM,CAAC,oBAAoB;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC5B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAErE,oBAAoB;YACpB,iDAAiD;YACjD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAE1F,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,QAAQ,KAAK,EAAE,CAAC,CAAC;YAErG,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAK,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE1C,uBAAuB;YACvB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACxE,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACtD,oBAAoB;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAEhD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,UAAU,EAAE,EAAE,CAAC,CAAC;YAEjG,iBAAiB;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,MAAM,OAAO,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3G,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,UAAU,EAAE,EAAE,CAAC,CAAC;QAEnG,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6CAA6C,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAMO,KAAK,CAAC,WAAW,CAAC,OAA6B,EAAE,aAAsB,EAAE,aAAsB,EAAE,OAAe,OAAO,EAAE,SAAiB,MAAM;QACpJ,yCAAyC;QACzC,uBAAuB;QACvB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;QAE9D,yDAAyD;QACzD,IAAI,QAAgB,CAAC;QACrB,IAAI,cAAkC,CAAC;QACvC,IAAI,cAAkC,CAAC;QACvC,IAAI,KAAK,GAAW,OAAO,CAAC;QAC5B,IAAI,OAAO,GAAW,MAAM,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,OAAO,CAAC;YACnB,cAAc,GAAG,aAAa,CAAC;YAC/B,cAAc,GAAG,aAAa,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/B,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;YAChC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,MAAM,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,iDAAiD;QACjD,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,kBAAkB;QAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,GAAG,sBAAsB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACxG,IAAI,GAAG,kBAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,SAAS,EAAE,CAAC;YACrK,CAAC;YACD,aAAa,IAAI,KAAK,IAAI,IAAI,CAAC;QACnC,CAAC;QAED,sBAAsB;QACtB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAI,cAAc;YAAE,aAAa,IAAI,+BAA+B,cAAc,EAAE,CAAC;QAErF,sDAAsD;QACtD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACnG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3C,CAAC,CAAC,cAAc,CAAC;QAErB,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;gCAqBD,aAAa;;;;0NAI6K,CAAC;QAEnN,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QAEpH,yEAAyE;QACzE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,4FAA4F;QAC5F,gCAAgC;QAChC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC;QAEnE,+FAA+F;QAC/F,MAAM,aAAa,GAAG,2JAA2J,CAAC;QAElL,MAAM,eAAe,GAAG,GAAG,eAAe,GAAG,QAAQ,0BAA0B,aAAa,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAE/H,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,mBAAmB;QAE9C,uBAAuB;QACvB,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,aAAsB,EAAE,OAAe,OAAO,EAAE,SAAiB,MAAM;QAC/F,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,kBAAkB;QAE3C,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,kBAAkB;YAE9C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,cAAc;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3F,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;YAE9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,sBAAsB,GAAG,KAAK,CAAC,CAAC,4BAA4B;YAEhE,iBAAiB;YACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,yHAAyH;YACzH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;gBAC5B,iBAAiB,IAAI,KAAK,CAAC;gBAC3B,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAE5B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,8CAA8C,CAAC,CAAC;gBAC5F,MAAM;YACV,CAAC;YAED,0EAA0E;YAC1E,wEAAwE;YACxE,4GAA4G;YAC5G,+DAA+D;YAC/D,6DAA6D;YAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC;YAErF,8DAA8D;YAC9D,kFAAkF;YAClF,6CAA6C;YAC7C,kEAAkE;YAClE,+EAA+E;YAC/E,IAAI,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAC9C,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACjD,sBAAsB,GAAG,IAAI,CAAC;YAClC,CAAC;YAED,sDAAsD;YACtD,2EAA2E;YAE3E,4CAA4C;YAC5C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,oFAAoF;gBACpF,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YAGD,IAAI,CAAC;gBACD,kFAAkF;gBAClF,uDAAuD;gBACvD,iDAAiD;gBAEjD,2DAA2D;gBAC3D,uEAAuE;gBAEvE,MAAM,SAAS,GAAG,gCAAgC,CAAC;gBACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAEhD,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,OAAO,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBAEjH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAEzD,wCAAwC;oBACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAE7E,gCAAgC;oBAChC,MAAM,UAAU,GAAG,uBAAuB,OAAO,gBAAgB,WAAW,0CAA0C,CAAC;oBACvH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;oBAEjE,kBAAkB,GAAG,IAAI,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACJ,iDAAiD;oBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACjF,CAAC;YAEL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpH,CAAC;gBACD,MAAM,CAAC,qBAAqB;YAChC,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACjC,CAAC;YAID,0BAA0B;YAC1B,uEAAuE;YACvE,qBAAqB;YACrB,IAAI,CAAC,kBAAkB,IAAI,sBAAsB,EAAE,CAAC;gBAChD,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iCAAiC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEjH,qCAAqC;gBACrC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,2HAA2H;iBACvI,CAAC,CAAC;gBAEH,kCAAkC;gBAClC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClF,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzF,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAgC;gBAE7D,MAAM,CAAC,gCAAgC;YAC3C,CAAC;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACtB,mCAAmC;gBACnC,MAAM;YACV,CAAC;YAED,SAAS,EAAE,CAAC;QAChB,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC1C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,gDAAgD,OAAO,GAAG,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,uBAAuB;YACvB,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,eAAe,OAAO,0BAA0B,CAAC;YAC5D,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,sBAAsB,OAAO,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,iCAAiC;IACzB,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC3C,4EAA4E;QAC5E,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,mDAAmD;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;aAClC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE3B,4EAA4E;QAC5E,qDAAqD;QACrD,8EAA8E;QAC9E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,mCAAmC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzG,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtD,6BAA6B;YAC7B,IAAI,cAAc,KAAK,YAAY;gBAAE,cAAc,GAAG,aAAa,CAAC;YACpE,IAAI,cAAc,KAAK,YAAY;gBAAE,cAAc,GAAG,aAAa,CAAC;YACpE,IAAI,cAAc,KAAK,UAAU;gBAAE,cAAc,GAAG,WAAW,CAAC;YAChE,IAAI,cAAc,KAAK,eAAe;gBAAE,cAAc,GAAG,gBAAgB,CAAC;YAC1E,OAAO,IAAI,KAAK,GAAG,cAAc,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,SAAS,GAAG,+CAA+C,CAAC;QAClE,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzE,IAAI,SAAS,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBAC3C,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;gBAE5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,yCAAyC,CAAC;QAC9D,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;gBAE5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,yCAAyC,CAAC;QAC3D,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhC,4EAA4E;YAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAU,uBAAuB,EAAE,IAAI,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAS,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAEtE,IAAI,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACnC,2EAA2E;gBAC3E,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,yDAAyD;gBACzD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,wBAAwB,OAAO,EAAE;iBAC7C,CAAC,CAAC;YACP,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,eAAe;QACf,MAAM,SAAS,GAAG,qCAAqC,CAAC;QACxD,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;YAErF,mDAAmD;YACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,IAAI,eAAe,WAAW,UAAU,EAAE,CAAC,CAAC;YAEtH,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,kEAAkE;QAClE,oDAAoD;QACpD,MAAM,SAAS,GAAG,2DAA2D,CAAC;QAC9E,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,8DAA8D;YAC9D,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,+CAA+C,CAAC;QACjE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,aAAa;YAE/D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjE,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,EAAE,CAAC;oBACrC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,sEAAsE,CAAC,CAAC;oBACpH,6BAA6B;gBACjC,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;gBACnG,OAAO,6BAA6B,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAE5B,sEAAsE;YACtE,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,iCAAiC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,OAAO,kCAAkC,CAAC;gBAC9C,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACpF,CAAC;YACL,CAAC;YAED,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAEnE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAClG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,SAAS,OAAO,yBAAyB,CAAC;QAErD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,mBAAmB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe;QACrE,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC7E,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClG,OAAO,gBAAgB,OAAO,cAAc,CAAC;YACjD,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAE/B,2BAA2B;YAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAE1C,iBAAiB;YACjB,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1B,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEvD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzB,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;oBACvC,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/D,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;gBACvH,OAAO,+CAA+C,OAAO,IAAI,CAAC;YACtE,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEjD,iCAAiC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAChG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,OAAO,kCAAkC,CAAC;gBAC9C,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzF,OAAO,SAAS,OAAO,yBAAyB,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,OAAO,2CAA2C,OAAO,IAAI,CAAC;YAClE,CAAC;QAEL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,kBAAkB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,SAAS,IAAI,WAAW,MAAM,CAAC,IAAI,IAAI,CAAC;YAExC,qBAAqB;YACrB,4CAA4C;YAC5C,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,cAAc,GAAG,yFAAyF,CAAC;YAEjH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAC1C,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,cAAc,EACd,GAAG,CAAC,qBAAqB;aAC5B,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,iCAAiC;gBACjC,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACpJ,SAAS;gBACb,CAAC;gBAED,SAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1E,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAE3D,2BAA2B;QAC3B,MAAM,UAAU,GAAG;YACf,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAS,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAC/C,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAClD,CAAC;qBAAM,IAAI,OAAO,EAAE,oBAAoB,KAAK,SAAS,EAAE,CAAC;oBACrD,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC;gBACxD,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;SACJ,CAAC;QACF,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,CAAC,MAA8C,EAAE,CAAU,EAAE,EAAE;gBACnE,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,6BAA6B,MAAM,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7H,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;qBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC,CAAC;YAChH,CAAC;SACJ,CAAC;QACF,MAAM,MAAM,GAAG;YACX,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;gBACjB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjD,4DAA4D;gBAC5D,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;SACJ,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAK,EAAE,MAAM,CAAC,CAAC;QAEzE,MAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAiB,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,kCAAkC,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAiB,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;YAC1D,OAAO;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAClC,CAAC;QAEF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,YAAY,GAAG,wBAAwB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,wGAAwG,IAAI,GAAG,YAAY,EAAE,CAAC;QAC7I,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAA6C,EAAE,MAAmB,EAAE,OAAgC,EAAE,aAAsB,EAAE,SAAiB,OAAO,EAAE,YAAoB,MAAM;QACxM,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE/D,wDAAwD;QACxD,mDAAmD;QACnD,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,IAAI,SAAS,KAAK,KAAK;YAAE,WAAW,GAAG,eAAe,CAAC;QACvD,IAAI,SAAS,KAAK,OAAO;YAAE,WAAW,GAAG,MAAM,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS;YAAE,WAAW,GAAG,SAAS,CAAC;QAErD,oCAAoC;QACpC,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,mBAAmB;QAC7C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,WAAW,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACnD,WAAW,GAAG,MAAM,CAAC;YACrB,2DAA2D;QAC/D,CAAC;QAED,qCAAqC;QACrC,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;YAC5D,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,MAAM,CAAC;YACnC,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,MAAM,CAAC;YAEnC,kBAAkB;YAClB,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,mBAAmB,CAAC,CAAC,OAAO,MAAM,CAAC;gBACxC,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;gBAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;gBACjC,KAAK,eAAe,CAAC,CAAC,OAAO,SAAS,CAAC;gBACvC,KAAK,gBAAgB,CAAC,CAAC,OAAO,SAAS,CAAC;gBACxC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEhE,wCAAwC;QACxC,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC,IAAI,YAAY,CAAC;YACpE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,mBAAmB,CAAC;YACjF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC,IAAI,6BAA6B,CAAC;YAErF,IAAI,YAAY,KAAK,MAAM;gBAAE,KAAK,GAAG,SAAS,CAAC;iBAC1C,IAAI,YAAY,KAAK,MAAM;gBAAE,KAAK,GAAG,SAAS,CAAC;;gBAC/C,KAAK,GAAG,YAAY,CAAC;QAC9B,CAAC;QAED,mDAAmD;QACnD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,kBAAkB,WAAW,cAAc,WAAW,YAAY,YAAY,cAAc,KAAK,EAAE,CAAC,CAAC;QACjJ,gDAAgD;QAEhD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,WAAW,CAAC,IAAI,wBAAwB,CAAC;QAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,CAAC,IAAI,KAAK,CAAC;QACpE,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAErE,IAAI,aAAa,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAE1D,+EAA+E;gBAC/E,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,oBAAoB,cAAc,QAAQ,EAAE;oBACrE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;wBAClC,cAAc,EAAE,KAAK;qBACxB;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,KAAK,EAAE,4BAA4B;wBACnC,QAAQ;wBACR,IAAI,EAAE,WAAW,EAAE,iBAAiB;wBACpC,MAAM,EAAE,WAAW,EAAE,wBAAwB;wBAC7C,IAAI,EAAE,YAAY,EAAE,mCAAmC;wBACvD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;qBACpC,CAAC;oBACF,MAAM;iBACT,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAExD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO;YACX,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,GAAG,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAyB,GAAG,CAAC,OAAO,sCAAsC,EAAE,CAAC,CAAC;YAClJ,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;gBACrE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK;oBACL,QAAQ;oBACR,MAAM,EAAE,IAAI;iBACf,CAAC;gBACF,MAAM;aACT,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAExD,4CAA4C;YAC5C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,SAAS;oBAC3B,IAAI,CAAC;wBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;4BACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAClC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,gBAAyB,KAAK;QACjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG;;;;;;;;;;;;;;;;;mFAiB4D,CAAC;YACxE,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,mBAAmB;YACnB,OAAO;;uCAEoB,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAuB;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QAErG,sDAAsD;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/E,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE7C,qBAAqB;QACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,8BAA8B;QAC9B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE5C,iDAAiD;QACjD,8FAA8F;QAC9F,MAAM,GAAG,GAAG,mFAAmF,OAAO,CAAC,SAAS,sBAAsB,OAAO,CAAC,SAAS,gCAAgC,OAAO,CAAC,SAAS,mCAAmC,CAAC;QAC5O,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,SAAS,QAAQ;IACb,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,gEAAgE,CAAC;IAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionManager = void 0;
|
|
4
|
+
const vscode = require("vscode");
|
|
5
|
+
class PermissionManager {
|
|
6
|
+
constructor(_context) {
|
|
7
|
+
this._context = _context;
|
|
8
|
+
this._sessionWhitelistedFiles = new Set();
|
|
9
|
+
this._workspaceKey = 'permission.workspaceAllowPatterns';
|
|
10
|
+
this._intrinsicSafePrefixes = [
|
|
11
|
+
'ls',
|
|
12
|
+
'grep',
|
|
13
|
+
'cat',
|
|
14
|
+
'find',
|
|
15
|
+
'pwd',
|
|
16
|
+
'echo',
|
|
17
|
+
'git status',
|
|
18
|
+
'git log',
|
|
19
|
+
'git diff'
|
|
20
|
+
];
|
|
21
|
+
this._dangerousPrefixes = [
|
|
22
|
+
'rm',
|
|
23
|
+
'sudo',
|
|
24
|
+
'chmod',
|
|
25
|
+
'chown',
|
|
26
|
+
'mkfs',
|
|
27
|
+
'dd',
|
|
28
|
+
'shutdown',
|
|
29
|
+
'reboot',
|
|
30
|
+
'kill',
|
|
31
|
+
'pkill',
|
|
32
|
+
'del',
|
|
33
|
+
'rd'
|
|
34
|
+
];
|
|
35
|
+
const stored = _context.workspaceState.get(this._workspaceKey, []);
|
|
36
|
+
this._workspaceAllowPatterns = stored.filter(p => this._isSafePattern(p));
|
|
37
|
+
}
|
|
38
|
+
async checkCommandPermission(command, cwd) {
|
|
39
|
+
const normalized = this._normalizeCommand(command);
|
|
40
|
+
const reasonBase = 'State-changing command requires approval';
|
|
41
|
+
const request = this._buildRequest('command', normalized, cwd, reasonBase, 'write');
|
|
42
|
+
if (this._isDangerousCommand(normalized)) {
|
|
43
|
+
const allowDangerous = vscode.workspace.getConfiguration('partnerBot')
|
|
44
|
+
.get('allowDangerousCommands') ?? false;
|
|
45
|
+
if (!allowDangerous) {
|
|
46
|
+
return {
|
|
47
|
+
verdict: 'DENY',
|
|
48
|
+
reason: 'Blocked dangerous command',
|
|
49
|
+
request: { ...request, reason: 'Blocked dangerous command', riskCategory: 'dangerous' }
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (this._isIntrinsicSafe(normalized)) {
|
|
54
|
+
return {
|
|
55
|
+
verdict: 'ALLOW',
|
|
56
|
+
reason: 'Safe read-only command',
|
|
57
|
+
request: { ...request, reason: 'Safe read-only command', riskCategory: 'safe' }
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (this._matchesWorkspaceAllow(normalized)) {
|
|
61
|
+
return {
|
|
62
|
+
verdict: 'ALLOW',
|
|
63
|
+
reason: 'Workspace allow pattern',
|
|
64
|
+
request: { ...request, reason: 'Workspace allow pattern' }
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
verdict: 'ASK',
|
|
69
|
+
reason: reasonBase,
|
|
70
|
+
request
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async checkFilePermission(filePath, operation, cwd) {
|
|
74
|
+
const key = `${operation}:${filePath}`;
|
|
75
|
+
const reasonBase = 'File modification requires approval';
|
|
76
|
+
const request = this._buildRequest('file', `${operation}_file ${filePath}`, cwd, reasonBase, 'write');
|
|
77
|
+
if (this._sessionWhitelistedFiles.has(key)) {
|
|
78
|
+
return { verdict: 'ALLOW', reason: 'Session whitelisted', request };
|
|
79
|
+
}
|
|
80
|
+
return { verdict: 'ASK', reason: reasonBase, request };
|
|
81
|
+
}
|
|
82
|
+
rememberWorkspaceAllow(command) {
|
|
83
|
+
const prefix = this._deriveWorkspacePrefix(command);
|
|
84
|
+
const pattern = `${prefix}*`;
|
|
85
|
+
if (!this._isSafePattern(pattern))
|
|
86
|
+
return;
|
|
87
|
+
if (!this._workspaceAllowPatterns.includes(pattern)) {
|
|
88
|
+
this._workspaceAllowPatterns.push(pattern);
|
|
89
|
+
this._context.workspaceState.update(this._workspaceKey, this._workspaceAllowPatterns);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
rememberFileDecision(filePath, operation, decision) {
|
|
93
|
+
if (decision === 'ALLOW_ALWAYS') {
|
|
94
|
+
const key = `${operation}:${filePath}`;
|
|
95
|
+
this._sessionWhitelistedFiles.add(key);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
getCommandPrefix(command) {
|
|
99
|
+
return this._deriveWorkspacePrefix(command);
|
|
100
|
+
}
|
|
101
|
+
_buildRequest(kind, command, cwd, reason, riskCategory) {
|
|
102
|
+
return {
|
|
103
|
+
requestId: this._createRequestId(),
|
|
104
|
+
kind,
|
|
105
|
+
command,
|
|
106
|
+
cwd,
|
|
107
|
+
reason,
|
|
108
|
+
riskCategory
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
_createRequestId() {
|
|
112
|
+
return Buffer.from(Math.random().toString()).toString('base64').substring(0, 8);
|
|
113
|
+
}
|
|
114
|
+
_normalizeCommand(command) {
|
|
115
|
+
return command.trim().replace(/\s+/g, ' ');
|
|
116
|
+
}
|
|
117
|
+
_matchesWorkspaceAllow(command) {
|
|
118
|
+
return this._workspaceAllowPatterns.some(pattern => this._matchesPattern(pattern, command));
|
|
119
|
+
}
|
|
120
|
+
_matchesPattern(pattern, command) {
|
|
121
|
+
if (!this._isSafePattern(pattern))
|
|
122
|
+
return false;
|
|
123
|
+
const normalizedPattern = pattern.trim();
|
|
124
|
+
if (normalizedPattern.endsWith('*')) {
|
|
125
|
+
const prefix = normalizedPattern.slice(0, -1);
|
|
126
|
+
return command.startsWith(prefix);
|
|
127
|
+
}
|
|
128
|
+
return command === normalizedPattern;
|
|
129
|
+
}
|
|
130
|
+
_isSafePattern(pattern) {
|
|
131
|
+
const trimmed = pattern.trim();
|
|
132
|
+
if (!trimmed)
|
|
133
|
+
return false;
|
|
134
|
+
if (trimmed.includes('*') && !trimmed.endsWith('*'))
|
|
135
|
+
return false;
|
|
136
|
+
const withoutWildcard = trimmed.endsWith('*') ? trimmed.slice(0, -1) : trimmed;
|
|
137
|
+
return !withoutWildcard.includes('*');
|
|
138
|
+
}
|
|
139
|
+
_deriveWorkspacePrefix(command) {
|
|
140
|
+
const normalized = this._normalizeCommand(command);
|
|
141
|
+
const tokens = normalized.split(' ');
|
|
142
|
+
const multiTokenRoots = new Set(['npm', 'pnpm', 'yarn', 'git', 'npx', 'bun']);
|
|
143
|
+
if (tokens.length >= 2 && multiTokenRoots.has(tokens[0])) {
|
|
144
|
+
return `${tokens[0]} ${tokens[1]}`;
|
|
145
|
+
}
|
|
146
|
+
return tokens[0];
|
|
147
|
+
}
|
|
148
|
+
_isIntrinsicSafe(command) {
|
|
149
|
+
return this._intrinsicSafePrefixes.some(prefix => this._matchesPrefix(command, prefix));
|
|
150
|
+
}
|
|
151
|
+
_isDangerousCommand(command) {
|
|
152
|
+
return this._dangerousPrefixes.some(prefix => this._matchesPrefix(command, prefix));
|
|
153
|
+
}
|
|
154
|
+
_matchesPrefix(command, prefix) {
|
|
155
|
+
return command === prefix || command.startsWith(`${prefix} `);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.PermissionManager = PermissionManager;
|
|
159
|
+
//# sourceMappingURL=PermissionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../src/permissions/PermissionManager.ts"],"names":[],"mappings":"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"}
|
package/out/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,yBAAyB;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,yBAAyB;AAoBzB,MAAa,eAAe;IAGxB;QACI,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,kDAAkD;gBAClD,OAAO,CAAC,KAAK,CAAC,oCAAoC,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAEM,GAAG,CAAC,KAAqB;QAC5B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1C,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEM,gBAAgB,CAAC,QAAgB,GAAG;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACD,uDAAuD;YACvD,iEAAiE;YACjE,+BAA+B;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAqB,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;CACJ;AAjDD,0CAiDC;AAEY,QAAA,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "indirecttek-vibe-engine",
|
|
3
3
|
"displayName": "IndirectTek Vibe Engine",
|
|
4
4
|
"description": "Autonomous Local AI Agent. Vibe Coding v1.0.",
|
|
5
|
-
"version": "2.6.
|
|
5
|
+
"version": "2.6.43",
|
|
6
6
|
"icon": "media/icon.png",
|
|
7
7
|
"bin": {
|
|
8
8
|
"vibe-agent": "bin/vibe-agent.js"
|
|
@@ -142,13 +142,28 @@
|
|
|
142
142
|
"gh",
|
|
143
143
|
"wrangler",
|
|
144
144
|
"docker",
|
|
145
|
-
"docker-compose"
|
|
145
|
+
"docker-compose",
|
|
146
|
+
"cd",
|
|
147
|
+
"ls",
|
|
148
|
+
"cat",
|
|
149
|
+
"grep",
|
|
150
|
+
"mkdir",
|
|
151
|
+
"rm",
|
|
152
|
+
"mv",
|
|
153
|
+
"cp",
|
|
154
|
+
"echo",
|
|
155
|
+
"pwd"
|
|
146
156
|
],
|
|
147
157
|
"items": {
|
|
148
158
|
"type": "string"
|
|
149
159
|
},
|
|
150
160
|
"description": "List of CLI commands the agent is allowed to run via <RUN_COMMAND>. Only commands whose first token matches an entry here will be executed."
|
|
151
161
|
},
|
|
162
|
+
"partnerBot.allowDangerousCommands": {
|
|
163
|
+
"type": "boolean",
|
|
164
|
+
"default": false,
|
|
165
|
+
"description": "Allow execution of commands that are denied by default as dangerous (rm, sudo, chmod, etc.)."
|
|
166
|
+
},
|
|
152
167
|
"partnerBot.limits.fast": {
|
|
153
168
|
"type": "number",
|
|
154
169
|
"default": 2048,
|
|
@@ -209,4 +224,4 @@
|
|
|
209
224
|
"@types/node-fetch": "^2.6.13",
|
|
210
225
|
"node-fetch": "^2.7.0"
|
|
211
226
|
}
|
|
212
|
-
}
|
|
227
|
+
}
|