@fractary/faber 2.3.7 → 2.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/workflow/__tests__/resolver.test.js +168 -20
- package/dist/workflow/__tests__/resolver.test.js.map +1 -1
- package/dist/workflow/resolver.d.ts +29 -2
- package/dist/workflow/resolver.d.ts.map +1 -1
- package/dist/workflow/resolver.js +278 -46
- package/dist/workflow/resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as os from 'os';
|
|
9
|
-
import { WorkflowResolver, WorkflowNotFoundError, } from '../resolver.js';
|
|
9
|
+
import { WorkflowResolver, WorkflowNotFoundError, SSRFError, } from '../resolver.js';
|
|
10
10
|
describe('WorkflowResolver', () => {
|
|
11
11
|
let testDir;
|
|
12
12
|
let marketplaceRoot;
|
|
@@ -17,8 +17,8 @@ describe('WorkflowResolver', () => {
|
|
|
17
17
|
testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'faber-resolver-test-'));
|
|
18
18
|
marketplaceRoot = path.join(testDir, 'marketplaces');
|
|
19
19
|
projectRoot = path.join(testDir, 'project');
|
|
20
|
-
// Create directory structures
|
|
21
|
-
fs.mkdirSync(path.join(marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
20
|
+
// Create directory structures (new .fractary/faber/workflows location)
|
|
21
|
+
fs.mkdirSync(path.join(marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows'), {
|
|
22
22
|
recursive: true,
|
|
23
23
|
});
|
|
24
24
|
fs.mkdirSync(path.join(projectRoot, '.fractary/faber/workflows'), { recursive: true });
|
|
@@ -34,11 +34,11 @@ describe('WorkflowResolver', () => {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
/**
|
|
37
|
-
* Helper to create a workflow file
|
|
37
|
+
* Helper to create a workflow file in the new .fractary/faber/workflows location
|
|
38
38
|
*/
|
|
39
39
|
function createWorkflow(namespace, name, config) {
|
|
40
40
|
const basePath = namespace === 'fractary-faber'
|
|
41
|
-
? path.join(marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
41
|
+
? path.join(marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows')
|
|
42
42
|
: path.join(projectRoot, '.fractary/faber/workflows');
|
|
43
43
|
const fullConfig = {
|
|
44
44
|
id: config.id || name,
|
|
@@ -148,7 +148,7 @@ describe('WorkflowResolver', () => {
|
|
|
148
148
|
it('should prepend ancestor global context to child global context', async () => {
|
|
149
149
|
createWorkflow('project', 'child', {
|
|
150
150
|
id: 'child',
|
|
151
|
-
extends: 'fractary-faber:base',
|
|
151
|
+
extends: 'faber@fractary-faber:base',
|
|
152
152
|
context: {
|
|
153
153
|
global: 'Child global context',
|
|
154
154
|
},
|
|
@@ -159,7 +159,7 @@ describe('WorkflowResolver', () => {
|
|
|
159
159
|
it('should prepend ancestor phase context to child phase context', async () => {
|
|
160
160
|
createWorkflow('project', 'child-phase', {
|
|
161
161
|
id: 'child-phase',
|
|
162
|
-
extends: 'fractary-faber:base',
|
|
162
|
+
extends: 'faber@fractary-faber:base',
|
|
163
163
|
context: {
|
|
164
164
|
phases: {
|
|
165
165
|
build: 'Child build context',
|
|
@@ -174,7 +174,7 @@ describe('WorkflowResolver', () => {
|
|
|
174
174
|
it('should override ancestor step context with child step context', async () => {
|
|
175
175
|
createWorkflow('project', 'child-step', {
|
|
176
176
|
id: 'child-step',
|
|
177
|
-
extends: 'fractary-faber:base',
|
|
177
|
+
extends: 'faber@fractary-faber:base',
|
|
178
178
|
context: {
|
|
179
179
|
steps: {
|
|
180
180
|
implement: 'Child implement step (overrides base)',
|
|
@@ -188,7 +188,7 @@ describe('WorkflowResolver', () => {
|
|
|
188
188
|
it('should merge step contexts when different step IDs', async () => {
|
|
189
189
|
createWorkflow('project', 'child-new-step', {
|
|
190
190
|
id: 'child-new-step',
|
|
191
|
-
extends: 'fractary-faber:base',
|
|
191
|
+
extends: 'faber@fractary-faber:base',
|
|
192
192
|
context: {
|
|
193
193
|
steps: {
|
|
194
194
|
'new-step': 'Child new step context',
|
|
@@ -203,7 +203,7 @@ describe('WorkflowResolver', () => {
|
|
|
203
203
|
it('should inherit ancestor context when child has none', async () => {
|
|
204
204
|
createWorkflow('project', 'no-child-context', {
|
|
205
205
|
id: 'no-child-context',
|
|
206
|
-
extends: 'fractary-faber:base',
|
|
206
|
+
extends: 'faber@fractary-faber:base',
|
|
207
207
|
// No context defined
|
|
208
208
|
});
|
|
209
209
|
const resolved = await resolver.resolveWorkflow('no-child-context');
|
|
@@ -218,7 +218,7 @@ describe('WorkflowResolver', () => {
|
|
|
218
218
|
});
|
|
219
219
|
createWorkflow('project', 'child-only-context', {
|
|
220
220
|
id: 'child-only-context',
|
|
221
|
-
extends: 'fractary-faber:no-ctx-base',
|
|
221
|
+
extends: 'faber@fractary-faber:no-ctx-base',
|
|
222
222
|
context: {
|
|
223
223
|
global: 'Child only global',
|
|
224
224
|
},
|
|
@@ -246,7 +246,7 @@ describe('WorkflowResolver', () => {
|
|
|
246
246
|
// Create parent extending core
|
|
247
247
|
createWorkflow('fractary-faber', 'default', {
|
|
248
248
|
id: 'default',
|
|
249
|
-
extends: 'fractary-faber:core',
|
|
249
|
+
extends: 'faber@fractary-faber:core',
|
|
250
250
|
context: {
|
|
251
251
|
global: 'Default global',
|
|
252
252
|
phases: {
|
|
@@ -262,7 +262,7 @@ describe('WorkflowResolver', () => {
|
|
|
262
262
|
it('should accumulate global context from all ancestors (grandparent → parent → child)', async () => {
|
|
263
263
|
createWorkflow('project', 'grandchild', {
|
|
264
264
|
id: 'grandchild',
|
|
265
|
-
extends: 'fractary-faber:default',
|
|
265
|
+
extends: 'faber@fractary-faber:default',
|
|
266
266
|
context: {
|
|
267
267
|
global: 'Grandchild global',
|
|
268
268
|
},
|
|
@@ -273,7 +273,7 @@ describe('WorkflowResolver', () => {
|
|
|
273
273
|
it('should accumulate phase context through inheritance chain', async () => {
|
|
274
274
|
createWorkflow('project', 'grandchild-phase', {
|
|
275
275
|
id: 'grandchild-phase',
|
|
276
|
-
extends: 'fractary-faber:default',
|
|
276
|
+
extends: 'faber@fractary-faber:default',
|
|
277
277
|
context: {
|
|
278
278
|
phases: {
|
|
279
279
|
build: 'Grandchild build',
|
|
@@ -291,7 +291,7 @@ describe('WorkflowResolver', () => {
|
|
|
291
291
|
it('should resolve step contexts with proper override chain', async () => {
|
|
292
292
|
createWorkflow('project', 'grandchild-step', {
|
|
293
293
|
id: 'grandchild-step',
|
|
294
|
-
extends: 'fractary-faber:default',
|
|
294
|
+
extends: 'faber@fractary-faber:default',
|
|
295
295
|
context: {
|
|
296
296
|
steps: {
|
|
297
297
|
'core-step': 'Grandchild overrides core step',
|
|
@@ -310,13 +310,13 @@ describe('WorkflowResolver', () => {
|
|
|
310
310
|
it('should preserve inheritance chain in resolved workflow', async () => {
|
|
311
311
|
createWorkflow('project', 'grandchild-chain', {
|
|
312
312
|
id: 'grandchild-chain',
|
|
313
|
-
extends: 'fractary-faber:default',
|
|
313
|
+
extends: 'faber@fractary-faber:default',
|
|
314
314
|
});
|
|
315
315
|
const resolved = await resolver.resolveWorkflow('grandchild-chain');
|
|
316
316
|
expect(resolved.inheritance_chain).toEqual([
|
|
317
317
|
'grandchild-chain',
|
|
318
|
-
'fractary-faber:default',
|
|
319
|
-
'fractary-faber:core',
|
|
318
|
+
'faber@fractary-faber:default',
|
|
319
|
+
'faber@fractary-faber:core',
|
|
320
320
|
]);
|
|
321
321
|
});
|
|
322
322
|
});
|
|
@@ -405,14 +405,14 @@ describe('WorkflowResolver', () => {
|
|
|
405
405
|
});
|
|
406
406
|
createWorkflow('project', 'extends-legacy', {
|
|
407
407
|
id: 'extends-legacy',
|
|
408
|
-
extends: 'fractary-faber:legacy',
|
|
408
|
+
extends: 'faber@fractary-faber:legacy',
|
|
409
409
|
context: {
|
|
410
410
|
global: 'New context on child',
|
|
411
411
|
},
|
|
412
412
|
});
|
|
413
413
|
const resolved = await resolver.resolveWorkflow('extends-legacy');
|
|
414
414
|
expect(resolved.context?.global).toBe('New context on child');
|
|
415
|
-
expect(resolved.inheritance_chain).toEqual(['extends-legacy', 'fractary-faber:legacy']);
|
|
415
|
+
expect(resolved.inheritance_chain).toEqual(['extends-legacy', 'faber@fractary-faber:legacy']);
|
|
416
416
|
});
|
|
417
417
|
it('should preserve other workflow properties alongside context', async () => {
|
|
418
418
|
createWorkflow('project', 'full-workflow', {
|
|
@@ -470,5 +470,153 @@ describe('WorkflowResolver', () => {
|
|
|
470
470
|
expect(fresh.description).toBe('Second version');
|
|
471
471
|
});
|
|
472
472
|
});
|
|
473
|
+
describe('Flexible Reference Formats', () => {
|
|
474
|
+
/**
|
|
475
|
+
* Helper to create a workflow in explicit plugin@marketplace format
|
|
476
|
+
*/
|
|
477
|
+
function createExplicitWorkflow(marketplace, plugin, name, config) {
|
|
478
|
+
const basePath = path.join(marketplaceRoot, marketplace, 'plugins', plugin, '.fractary/faber/workflows');
|
|
479
|
+
fs.mkdirSync(basePath, { recursive: true });
|
|
480
|
+
const fullConfig = {
|
|
481
|
+
id: config.id || name,
|
|
482
|
+
phases: config.phases || {
|
|
483
|
+
frame: { enabled: true },
|
|
484
|
+
architect: { enabled: true },
|
|
485
|
+
build: { enabled: true },
|
|
486
|
+
evaluate: { enabled: true },
|
|
487
|
+
release: { enabled: true },
|
|
488
|
+
},
|
|
489
|
+
autonomy: config.autonomy || { level: 'guarded' },
|
|
490
|
+
...config,
|
|
491
|
+
};
|
|
492
|
+
fs.writeFileSync(path.join(basePath, `${name}.json`), JSON.stringify(fullConfig, null, 2));
|
|
493
|
+
}
|
|
494
|
+
describe('Explicit plugin@marketplace:workflow Format', () => {
|
|
495
|
+
it('should resolve explicit format: faber@fractary-faber:default', async () => {
|
|
496
|
+
createExplicitWorkflow('fractary-faber', 'faber', 'default', {
|
|
497
|
+
id: 'default',
|
|
498
|
+
description: 'Default workflow from explicit format',
|
|
499
|
+
});
|
|
500
|
+
const resolved = await resolver.resolveWorkflow('faber@fractary-faber:default');
|
|
501
|
+
expect(resolved.id).toBe('default');
|
|
502
|
+
expect(resolved.description).toBe('Default workflow from explicit format');
|
|
503
|
+
expect(resolved.inheritance_chain).toEqual(['faber@fractary-faber:default']);
|
|
504
|
+
});
|
|
505
|
+
it('should resolve explicit format with different marketplace', async () => {
|
|
506
|
+
createExplicitWorkflow('fractary-faber-software', 'faber-software', 'software-development', {
|
|
507
|
+
id: 'software-development',
|
|
508
|
+
description: 'Software development workflow',
|
|
509
|
+
});
|
|
510
|
+
const resolved = await resolver.resolveWorkflow('faber-software@fractary-faber-software:software-development');
|
|
511
|
+
expect(resolved.id).toBe('software-development');
|
|
512
|
+
expect(resolved.description).toBe('Software development workflow');
|
|
513
|
+
});
|
|
514
|
+
it('should support inheritance with explicit format', async () => {
|
|
515
|
+
// Create parent in explicit format
|
|
516
|
+
createExplicitWorkflow('fractary-faber', 'faber', 'core', {
|
|
517
|
+
id: 'core',
|
|
518
|
+
description: 'Core workflow',
|
|
519
|
+
context: {
|
|
520
|
+
global: 'Core global context',
|
|
521
|
+
},
|
|
522
|
+
});
|
|
523
|
+
// Create child extending parent using explicit format
|
|
524
|
+
createWorkflow('project', 'my-workflow', {
|
|
525
|
+
id: 'my-workflow',
|
|
526
|
+
extends: 'faber@fractary-faber:core',
|
|
527
|
+
description: 'My custom workflow',
|
|
528
|
+
context: {
|
|
529
|
+
global: 'My custom context',
|
|
530
|
+
},
|
|
531
|
+
});
|
|
532
|
+
const resolved = await resolver.resolveWorkflow('my-workflow');
|
|
533
|
+
expect(resolved.id).toBe('my-workflow');
|
|
534
|
+
expect(resolved.inheritance_chain).toEqual(['my-workflow', 'faber@fractary-faber:core']);
|
|
535
|
+
expect(resolved.context?.global).toBe('Core global context\n\nMy custom context');
|
|
536
|
+
});
|
|
537
|
+
it('should throw WorkflowNotFoundError for non-existent explicit reference', async () => {
|
|
538
|
+
await expect(resolver.resolveWorkflow('nonexistent@nonexistent-marketplace:workflow')).rejects.toThrow(WorkflowNotFoundError);
|
|
539
|
+
});
|
|
540
|
+
});
|
|
541
|
+
describe('Project-local Format', () => {
|
|
542
|
+
it('should resolve project-local workflow by name only', async () => {
|
|
543
|
+
createWorkflow('project', 'my-local-workflow', {
|
|
544
|
+
id: 'my-local-workflow',
|
|
545
|
+
description: 'Project local workflow',
|
|
546
|
+
});
|
|
547
|
+
const resolved = await resolver.resolveWorkflow('my-local-workflow');
|
|
548
|
+
expect(resolved.id).toBe('my-local-workflow');
|
|
549
|
+
expect(resolved.description).toBe('Project local workflow');
|
|
550
|
+
});
|
|
551
|
+
it('should fallback to plugin defaults for project-local format', async () => {
|
|
552
|
+
// Create workflow in plugin defaults (simulating fallback path)
|
|
553
|
+
createWorkflow('fractary-faber', 'default-fallback', {
|
|
554
|
+
id: 'default-fallback',
|
|
555
|
+
description: 'Fallback workflow from plugin',
|
|
556
|
+
});
|
|
557
|
+
const resolved = await resolver.resolveWorkflow('default-fallback');
|
|
558
|
+
expect(resolved.id).toBe('default-fallback');
|
|
559
|
+
expect(resolved.description).toBe('Fallback workflow from plugin');
|
|
560
|
+
});
|
|
561
|
+
});
|
|
562
|
+
describe('URL Format', () => {
|
|
563
|
+
it('should recognize url: prefix as URL reference', async () => {
|
|
564
|
+
// URL format is detected by the resolver but requires network fetch
|
|
565
|
+
// We test that it throws the appropriate error for an invalid URL
|
|
566
|
+
await expect(resolver.resolveWorkflow('url:https://example.com/nonexistent-workflow.json')).rejects.toThrow();
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
describe('Path Security', () => {
|
|
570
|
+
it('should reject path traversal in explicit format plugin name', async () => {
|
|
571
|
+
await expect(resolver.resolveWorkflow('../../../etc/passwd@marketplace:workflow')).rejects.toThrow(/path traversal/);
|
|
572
|
+
});
|
|
573
|
+
it('should reject path traversal in explicit format marketplace name', async () => {
|
|
574
|
+
await expect(resolver.resolveWorkflow('plugin@../../../etc:workflow')).rejects.toThrow(/path traversal/);
|
|
575
|
+
});
|
|
576
|
+
it('should reject path traversal in explicit format workflow name', async () => {
|
|
577
|
+
await expect(resolver.resolveWorkflow('plugin@marketplace:../../../etc/passwd')).rejects.toThrow(/path traversal/);
|
|
578
|
+
});
|
|
579
|
+
it('should reject path traversal in project-local format', async () => {
|
|
580
|
+
await expect(resolver.resolveWorkflow('../../../etc/passwd')).rejects.toThrow(/path traversal/);
|
|
581
|
+
});
|
|
582
|
+
});
|
|
583
|
+
describe('SSRF Security', () => {
|
|
584
|
+
it('should reject HTTP URLs (only HTTPS allowed)', async () => {
|
|
585
|
+
await expect(resolver.resolveWorkflow('url:http://example.com/workflow.json')).rejects.toThrow(SSRFError);
|
|
586
|
+
await expect(resolver.resolveWorkflow('url:http://example.com/workflow.json')).rejects.toThrow(/not allowed.*HTTPS/i);
|
|
587
|
+
});
|
|
588
|
+
it('should reject file:// URLs', async () => {
|
|
589
|
+
await expect(resolver.resolveWorkflow('url:file:///etc/passwd')).rejects.toThrow(SSRFError);
|
|
590
|
+
});
|
|
591
|
+
it('should reject data: URLs', async () => {
|
|
592
|
+
await expect(resolver.resolveWorkflow('url:data:application/json,{"id":"test"}')).rejects.toThrow(SSRFError);
|
|
593
|
+
});
|
|
594
|
+
it('should reject localhost URLs', async () => {
|
|
595
|
+
await expect(resolver.resolveWorkflow('url:https://localhost/workflow.json')).rejects.toThrow(SSRFError);
|
|
596
|
+
await expect(resolver.resolveWorkflow('url:https://localhost/workflow.json')).rejects.toThrow(/[Ll]ocalhost/);
|
|
597
|
+
});
|
|
598
|
+
it('should reject localhost.localdomain URLs', async () => {
|
|
599
|
+
await expect(resolver.resolveWorkflow('url:https://localhost.localdomain/workflow.json')).rejects.toThrow(SSRFError);
|
|
600
|
+
});
|
|
601
|
+
it('should reject .local domain URLs', async () => {
|
|
602
|
+
await expect(resolver.resolveWorkflow('url:https://internal.local/workflow.json')).rejects.toThrow(SSRFError);
|
|
603
|
+
});
|
|
604
|
+
it('should reject .localhost subdomain URLs', async () => {
|
|
605
|
+
await expect(resolver.resolveWorkflow('url:https://evil.localhost/workflow.json')).rejects.toThrow(SSRFError);
|
|
606
|
+
});
|
|
607
|
+
it('should reject invalid URL format', async () => {
|
|
608
|
+
await expect(resolver.resolveWorkflow('url:not-a-valid-url')).rejects.toThrow(SSRFError);
|
|
609
|
+
await expect(resolver.resolveWorkflow('url:not-a-valid-url')).rejects.toThrow(/[Ii]nvalid URL/);
|
|
610
|
+
});
|
|
611
|
+
// Note: Testing actual private IP blocking requires DNS resolution,
|
|
612
|
+
// which is difficult to mock in unit tests. The following tests verify
|
|
613
|
+
// that the URL validation catches common attack patterns.
|
|
614
|
+
it('should block AWS metadata endpoint hostnames', async () => {
|
|
615
|
+
// AWS metadata endpoint typically requires resolution to 169.254.169.254
|
|
616
|
+
// This test verifies the hostname-based protection
|
|
617
|
+
await expect(resolver.resolveWorkflow('url:https://169.254.169.254/latest/meta-data/')).rejects.toThrow();
|
|
618
|
+
});
|
|
619
|
+
});
|
|
620
|
+
});
|
|
473
621
|
});
|
|
474
622
|
//# sourceMappingURL=resolver.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/workflow/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/workflow/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,6 +165,11 @@ export declare class InvalidWorkflowError extends Error {
|
|
|
165
165
|
reason: string;
|
|
166
166
|
constructor(workflowId: string, reason: string);
|
|
167
167
|
}
|
|
168
|
+
export declare class SSRFError extends Error {
|
|
169
|
+
url: string;
|
|
170
|
+
reason: string;
|
|
171
|
+
constructor(url: string, reason: string);
|
|
172
|
+
}
|
|
168
173
|
/**
|
|
169
174
|
* Resolves workflow inheritance chains and merges phases.
|
|
170
175
|
*
|
|
@@ -200,7 +205,8 @@ export declare class WorkflowResolver {
|
|
|
200
205
|
private buildInheritanceChain;
|
|
201
206
|
/**
|
|
202
207
|
* Load a workflow file by ID.
|
|
203
|
-
* Supports
|
|
208
|
+
* Supports URL references, explicit plugin@marketplace references,
|
|
209
|
+
* and project-local references with fallback to plugin defaults.
|
|
204
210
|
*/
|
|
205
211
|
private loadWorkflowFile;
|
|
206
212
|
/**
|
|
@@ -208,7 +214,28 @@ export declare class WorkflowResolver {
|
|
|
208
214
|
*/
|
|
209
215
|
private loadAndCacheWorkflow;
|
|
210
216
|
/**
|
|
211
|
-
*
|
|
217
|
+
* Fetch a workflow from a URL with caching.
|
|
218
|
+
* Cache is valid for 1 hour.
|
|
219
|
+
*
|
|
220
|
+
* Security: Validates URL to prevent SSRF attacks before fetching.
|
|
221
|
+
*/
|
|
222
|
+
private fetchWorkflowFromUrl;
|
|
223
|
+
/**
|
|
224
|
+
* Hash a string using SHA-256.
|
|
225
|
+
*/
|
|
226
|
+
private hashString;
|
|
227
|
+
/**
|
|
228
|
+
* Clean up expired cache entries (older than 1 hour).
|
|
229
|
+
* Called opportunistically when writing new cache files.
|
|
230
|
+
* Errors are silently ignored to not disrupt normal operations.
|
|
231
|
+
*/
|
|
232
|
+
private cleanupExpiredCache;
|
|
233
|
+
/**
|
|
234
|
+
* Resolve a workflow ID to a file path or URL reference.
|
|
235
|
+
* Supports three formats:
|
|
236
|
+
* 1. URL: url:https://example.com/workflow.json
|
|
237
|
+
* 2. Explicit: plugin@marketplace:workflow
|
|
238
|
+
* 3. Project-local: workflow-name
|
|
212
239
|
* Validates all path components to prevent path traversal attacks.
|
|
213
240
|
*/
|
|
214
241
|
private resolveWorkflowPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Centralized workflow resolution ensures consistent behavior across CLI, MCP, and agents.
|
|
8
8
|
*/
|
|
9
|
+
import * as crypto from 'crypto';
|
|
10
|
+
import * as dns from 'dns';
|
|
9
11
|
import * as fs from 'fs';
|
|
10
12
|
import * as os from 'os';
|
|
11
13
|
import * as path from 'path';
|
|
14
|
+
import { promisify } from 'util';
|
|
12
15
|
// ============================================================================
|
|
13
16
|
// Custom Errors
|
|
14
17
|
// ============================================================================
|
|
@@ -50,6 +53,120 @@ export class InvalidWorkflowError extends Error {
|
|
|
50
53
|
this.name = 'InvalidWorkflowError';
|
|
51
54
|
}
|
|
52
55
|
}
|
|
56
|
+
export class SSRFError extends Error {
|
|
57
|
+
url;
|
|
58
|
+
reason;
|
|
59
|
+
constructor(url, reason) {
|
|
60
|
+
super(`SSRF protection blocked URL ${url}: ${reason}`);
|
|
61
|
+
this.url = url;
|
|
62
|
+
this.reason = reason;
|
|
63
|
+
this.name = 'SSRFError';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// ============================================================================
|
|
67
|
+
// URL Security Helpers
|
|
68
|
+
// ============================================================================
|
|
69
|
+
const dnsLookup = promisify(dns.lookup);
|
|
70
|
+
/** Timeout for URL fetch operations (30 seconds) */
|
|
71
|
+
const URL_FETCH_TIMEOUT_MS = 30000;
|
|
72
|
+
/** Allowed URL schemes for workflow references */
|
|
73
|
+
const ALLOWED_URL_SCHEMES = ['https:'];
|
|
74
|
+
/**
|
|
75
|
+
* Check if an IP address is in a private/internal range.
|
|
76
|
+
* Blocks: localhost, private networks, link-local, loopback
|
|
77
|
+
*/
|
|
78
|
+
function isPrivateIP(ip) {
|
|
79
|
+
// IPv4 patterns
|
|
80
|
+
const ipv4Patterns = [
|
|
81
|
+
/^127\./, // 127.0.0.0/8 - Loopback
|
|
82
|
+
/^10\./, // 10.0.0.0/8 - Private
|
|
83
|
+
/^172\.(1[6-9]|2[0-9]|3[0-1])\./, // 172.16.0.0/12 - Private
|
|
84
|
+
/^192\.168\./, // 192.168.0.0/16 - Private
|
|
85
|
+
/^169\.254\./, // 169.254.0.0/16 - Link-local (AWS metadata!)
|
|
86
|
+
/^0\./, // 0.0.0.0/8 - Current network
|
|
87
|
+
/^100\.(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-7])\./, // 100.64.0.0/10 - Carrier-grade NAT
|
|
88
|
+
/^192\.0\.0\./, // 192.0.0.0/24 - IETF Protocol Assignments
|
|
89
|
+
/^192\.0\.2\./, // 192.0.2.0/24 - TEST-NET-1
|
|
90
|
+
/^198\.(1[89])\./, // 198.18.0.0/15 - Benchmarking
|
|
91
|
+
/^198\.51\.100\./, // 198.51.100.0/24 - TEST-NET-2
|
|
92
|
+
/^203\.0\.113\./, // 203.0.113.0/24 - TEST-NET-3
|
|
93
|
+
/^224\./, // 224.0.0.0/4 - Multicast
|
|
94
|
+
/^240\./, // 240.0.0.0/4 - Reserved
|
|
95
|
+
/^255\.255\.255\.255$/, // Broadcast
|
|
96
|
+
];
|
|
97
|
+
// IPv6 patterns
|
|
98
|
+
const ipv6Patterns = [
|
|
99
|
+
/^::1$/, // Loopback
|
|
100
|
+
/^fe80:/i, // Link-local
|
|
101
|
+
/^fc00:/i, // Unique local (private)
|
|
102
|
+
/^fd[0-9a-f]{2}:/i, // Unique local (private)
|
|
103
|
+
/^::ffff:(127\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.|169\.254\.)/i, // IPv4-mapped
|
|
104
|
+
];
|
|
105
|
+
for (const pattern of ipv4Patterns) {
|
|
106
|
+
if (pattern.test(ip))
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
for (const pattern of ipv6Patterns) {
|
|
110
|
+
if (pattern.test(ip))
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Validate a URL for SSRF protection.
|
|
117
|
+
* Throws SSRFError if the URL is potentially dangerous.
|
|
118
|
+
*
|
|
119
|
+
* SECURITY NOTE: DNS Rebinding (TOCTOU) Limitation
|
|
120
|
+
* ------------------------------------------------
|
|
121
|
+
* This validation has a Time-of-Check-Time-of-Use vulnerability: the DNS
|
|
122
|
+
* resolution performed here may return a different IP than the one used
|
|
123
|
+
* by the subsequent fetch() call. An attacker with DNS control could:
|
|
124
|
+
* 1. First resolution (validation): returns public IP -> passes validation
|
|
125
|
+
* 2. Second resolution (fetch): returns private IP -> SSRF achieved
|
|
126
|
+
*
|
|
127
|
+
* Mitigation requires a custom HTTP agent that validates IP at connection
|
|
128
|
+
* time, which is complex to implement. For workflow references, this risk
|
|
129
|
+
* is acceptable because:
|
|
130
|
+
* - URL references are typically from trusted sources (marketplace configs)
|
|
131
|
+
* - The attacker would need DNS control over the domain
|
|
132
|
+
* - Additional mitigations exist (HTTPS-only, redirect blocking)
|
|
133
|
+
*
|
|
134
|
+
* For high-security environments, disable URL references entirely and use
|
|
135
|
+
* only explicit plugin@marketplace:workflow or project-local references.
|
|
136
|
+
*/
|
|
137
|
+
async function validateUrlSecurity(url) {
|
|
138
|
+
let parsedUrl;
|
|
139
|
+
try {
|
|
140
|
+
parsedUrl = new URL(url);
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
throw new SSRFError(url, 'Invalid URL format');
|
|
144
|
+
}
|
|
145
|
+
// Check scheme (only HTTPS allowed)
|
|
146
|
+
if (!ALLOWED_URL_SCHEMES.includes(parsedUrl.protocol)) {
|
|
147
|
+
throw new SSRFError(url, `URL scheme '${parsedUrl.protocol}' not allowed. Only HTTPS is permitted.`);
|
|
148
|
+
}
|
|
149
|
+
// Block localhost hostnames
|
|
150
|
+
const hostname = parsedUrl.hostname.toLowerCase();
|
|
151
|
+
if (hostname === 'localhost' ||
|
|
152
|
+
hostname === 'localhost.localdomain' ||
|
|
153
|
+
hostname.endsWith('.localhost') ||
|
|
154
|
+
hostname.endsWith('.local')) {
|
|
155
|
+
throw new SSRFError(url, 'Localhost URLs are not allowed');
|
|
156
|
+
}
|
|
157
|
+
// Resolve hostname to IP and check if private
|
|
158
|
+
try {
|
|
159
|
+
const { address } = await dnsLookup(hostname);
|
|
160
|
+
if (isPrivateIP(address)) {
|
|
161
|
+
throw new SSRFError(url, `URL resolves to private/internal IP address (${address})`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
if (error instanceof SSRFError)
|
|
166
|
+
throw error;
|
|
167
|
+
throw new SSRFError(url, `Failed to resolve hostname: ${error.message}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
53
170
|
// ============================================================================
|
|
54
171
|
// Workflow Resolver Class
|
|
55
172
|
// ============================================================================
|
|
@@ -158,19 +275,26 @@ export class WorkflowResolver {
|
|
|
158
275
|
}
|
|
159
276
|
/**
|
|
160
277
|
* Load a workflow file by ID.
|
|
161
|
-
* Supports
|
|
278
|
+
* Supports URL references, explicit plugin@marketplace references,
|
|
279
|
+
* and project-local references with fallback to plugin defaults.
|
|
162
280
|
*/
|
|
163
281
|
async loadWorkflowFile(workflowId) {
|
|
164
282
|
// Check cache first
|
|
165
283
|
if (this.workflowCache.has(workflowId)) {
|
|
166
284
|
return this.workflowCache.get(workflowId);
|
|
167
285
|
}
|
|
168
|
-
const
|
|
286
|
+
const pathOrUrl = this.resolveWorkflowPath(workflowId);
|
|
287
|
+
// Handle URL references
|
|
288
|
+
if (typeof pathOrUrl === 'object' && pathOrUrl.type === 'url') {
|
|
289
|
+
return this.fetchWorkflowFromUrl(workflowId, pathOrUrl.url);
|
|
290
|
+
}
|
|
291
|
+
// At this point, pathOrUrl is guaranteed to be a string
|
|
292
|
+
const filePath = pathOrUrl;
|
|
169
293
|
const searchedPaths = [filePath];
|
|
170
294
|
if (!fs.existsSync(filePath)) {
|
|
171
|
-
// Fallback: if no
|
|
172
|
-
if (!workflowId.includes(':')) {
|
|
173
|
-
const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
295
|
+
// Fallback: if project-local (no @ or :), try plugin defaults
|
|
296
|
+
if (!workflowId.includes('@') && !workflowId.includes(':')) {
|
|
297
|
+
const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows', `${workflowId}.json`);
|
|
174
298
|
searchedPaths.push(fallbackPath);
|
|
175
299
|
if (fs.existsSync(fallbackPath)) {
|
|
176
300
|
return this.loadAndCacheWorkflow(workflowId, fallbackPath);
|
|
@@ -198,51 +322,159 @@ export class WorkflowResolver {
|
|
|
198
322
|
}
|
|
199
323
|
}
|
|
200
324
|
/**
|
|
201
|
-
*
|
|
202
|
-
*
|
|
325
|
+
* Fetch a workflow from a URL with caching.
|
|
326
|
+
* Cache is valid for 1 hour.
|
|
327
|
+
*
|
|
328
|
+
* Security: Validates URL to prevent SSRF attacks before fetching.
|
|
203
329
|
*/
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
330
|
+
async fetchWorkflowFromUrl(workflowId, url) {
|
|
331
|
+
// SSRF Protection: Validate URL before fetching
|
|
332
|
+
await validateUrlSecurity(url);
|
|
333
|
+
const cacheDir = path.join(this.marketplaceRoot, '.cache', 'workflows');
|
|
334
|
+
const cacheFile = path.join(cacheDir, `${this.hashString(url)}.json`);
|
|
335
|
+
// Check cache (1 hour TTL)
|
|
336
|
+
if (fs.existsSync(cacheFile)) {
|
|
337
|
+
const stats = fs.statSync(cacheFile);
|
|
338
|
+
const ageMinutes = (Date.now() - stats.mtimeMs) / 60000;
|
|
339
|
+
if (ageMinutes < 60) {
|
|
340
|
+
return this.loadAndCacheWorkflow(workflowId, cacheFile);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Fetch from URL with timeout and security settings
|
|
344
|
+
const controller = new AbortController();
|
|
345
|
+
const timeoutId = setTimeout(() => controller.abort(), URL_FETCH_TIMEOUT_MS);
|
|
346
|
+
try {
|
|
347
|
+
const response = await fetch(url, {
|
|
348
|
+
signal: controller.signal,
|
|
349
|
+
redirect: 'error', // Block redirects to prevent SSRF via redirect
|
|
350
|
+
headers: {
|
|
351
|
+
'User-Agent': 'Fractary-Faber-WorkflowResolver/1.0',
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
if (!response.ok) {
|
|
355
|
+
throw new WorkflowNotFoundError(workflowId, [url]);
|
|
356
|
+
}
|
|
357
|
+
// Content-Length validation to prevent DoS via memory exhaustion (10MB limit)
|
|
358
|
+
const MAX_CONTENT_LENGTH = 10 * 1024 * 1024; // 10MB
|
|
359
|
+
const contentLengthHeader = response.headers.get('content-length');
|
|
360
|
+
if (contentLengthHeader) {
|
|
361
|
+
const contentLength = parseInt(contentLengthHeader, 10);
|
|
362
|
+
if (contentLength > MAX_CONTENT_LENGTH) {
|
|
363
|
+
throw new InvalidWorkflowError(workflowId, `Response too large (${contentLength} bytes). Maximum allowed: ${MAX_CONTENT_LENGTH} bytes`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
const content = await response.text();
|
|
367
|
+
// Also validate actual content size (in case Content-Length header was missing/incorrect)
|
|
368
|
+
if (content.length > MAX_CONTENT_LENGTH) {
|
|
369
|
+
throw new InvalidWorkflowError(workflowId, `Response too large (${content.length} bytes). Maximum allowed: ${MAX_CONTENT_LENGTH} bytes`);
|
|
370
|
+
}
|
|
371
|
+
// Validate JSON before caching
|
|
372
|
+
try {
|
|
373
|
+
JSON.parse(content);
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
throw new InvalidWorkflowError(workflowId, `Invalid JSON from URL: ${url}`);
|
|
377
|
+
}
|
|
378
|
+
// Create cache directory with restricted permissions (owner only)
|
|
379
|
+
fs.mkdirSync(cacheDir, { recursive: true, mode: 0o700 });
|
|
380
|
+
// Atomic file write to prevent permission race condition:
|
|
381
|
+
// Write to temp file first, then rename (atomic on POSIX systems)
|
|
382
|
+
const tempFile = `${cacheFile}.${process.pid}.tmp`;
|
|
383
|
+
try {
|
|
384
|
+
// Write with restrictive permissions from the start
|
|
385
|
+
const fd = fs.openSync(tempFile, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL, 0o600);
|
|
386
|
+
fs.writeSync(fd, content);
|
|
387
|
+
fs.closeSync(fd);
|
|
388
|
+
// Atomic rename
|
|
389
|
+
fs.renameSync(tempFile, cacheFile);
|
|
390
|
+
}
|
|
391
|
+
catch (writeError) {
|
|
392
|
+
// Clean up temp file on error
|
|
393
|
+
try {
|
|
394
|
+
fs.unlinkSync(tempFile);
|
|
395
|
+
}
|
|
396
|
+
catch { /* ignore */ }
|
|
397
|
+
throw writeError;
|
|
398
|
+
}
|
|
399
|
+
// Opportunistic cache cleanup: remove expired entries (>1 hour old)
|
|
400
|
+
this.cleanupExpiredCache(cacheDir);
|
|
401
|
+
return this.loadAndCacheWorkflow(workflowId, cacheFile);
|
|
402
|
+
}
|
|
403
|
+
catch (error) {
|
|
404
|
+
// Handle timeout
|
|
405
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
406
|
+
throw new InvalidWorkflowError(workflowId, `URL fetch timed out after ${URL_FETCH_TIMEOUT_MS / 1000} seconds: ${url}`);
|
|
233
407
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
408
|
+
throw error;
|
|
409
|
+
}
|
|
410
|
+
finally {
|
|
411
|
+
clearTimeout(timeoutId);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Hash a string using SHA-256.
|
|
416
|
+
*/
|
|
417
|
+
hashString(str) {
|
|
418
|
+
return crypto.createHash('sha256').update(str).digest('hex');
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Clean up expired cache entries (older than 1 hour).
|
|
422
|
+
* Called opportunistically when writing new cache files.
|
|
423
|
+
* Errors are silently ignored to not disrupt normal operations.
|
|
424
|
+
*/
|
|
425
|
+
cleanupExpiredCache(cacheDir) {
|
|
426
|
+
try {
|
|
427
|
+
if (!fs.existsSync(cacheDir))
|
|
428
|
+
return;
|
|
429
|
+
const files = fs.readdirSync(cacheDir);
|
|
430
|
+
const now = Date.now();
|
|
431
|
+
const ONE_HOUR_MS = 60 * 60 * 1000;
|
|
432
|
+
for (const file of files) {
|
|
433
|
+
// Only process .json cache files (skip .tmp files)
|
|
434
|
+
if (!file.endsWith('.json'))
|
|
435
|
+
continue;
|
|
436
|
+
const filePath = path.join(cacheDir, file);
|
|
437
|
+
try {
|
|
438
|
+
const stats = fs.statSync(filePath);
|
|
439
|
+
const ageMs = now - stats.mtimeMs;
|
|
440
|
+
if (ageMs > ONE_HOUR_MS) {
|
|
441
|
+
fs.unlinkSync(filePath);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
catch {
|
|
445
|
+
// Ignore errors for individual files (may have been deleted by another process)
|
|
446
|
+
}
|
|
244
447
|
}
|
|
245
448
|
}
|
|
449
|
+
catch {
|
|
450
|
+
// Silently ignore cleanup errors - this is opportunistic
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Resolve a workflow ID to a file path or URL reference.
|
|
455
|
+
* Supports three formats:
|
|
456
|
+
* 1. URL: url:https://example.com/workflow.json
|
|
457
|
+
* 2. Explicit: plugin@marketplace:workflow
|
|
458
|
+
* 3. Project-local: workflow-name
|
|
459
|
+
* Validates all path components to prevent path traversal attacks.
|
|
460
|
+
*/
|
|
461
|
+
resolveWorkflowPath(workflowId) {
|
|
462
|
+
// Format 1: URL reference
|
|
463
|
+
if (workflowId.startsWith('url:')) {
|
|
464
|
+
return { type: 'url', url: workflowId.slice(4) };
|
|
465
|
+
}
|
|
466
|
+
// Format 2: Explicit plugin@marketplace:workflow
|
|
467
|
+
const explicitMatch = workflowId.match(/^([^@]+)@([^:]+):(.+)$/);
|
|
468
|
+
if (explicitMatch) {
|
|
469
|
+
const [, plugin, marketplace, workflow] = explicitMatch;
|
|
470
|
+
this.sanitizePathComponent(plugin, 'plugin');
|
|
471
|
+
this.sanitizePathComponent(marketplace, 'marketplace');
|
|
472
|
+
this.sanitizePathComponent(workflow, 'workflow');
|
|
473
|
+
return path.join(this.marketplaceRoot, marketplace, 'plugins', plugin, '.fractary/faber/workflows', `${workflow}.json`);
|
|
474
|
+
}
|
|
475
|
+
// Format 3: Project-local (no @ symbol)
|
|
476
|
+
this.sanitizePathComponent(workflowId, 'workflow');
|
|
477
|
+
return path.join(this.projectRoot, '.fractary/faber/workflows', `${workflowId}.json`);
|
|
246
478
|
}
|
|
247
479
|
/**
|
|
248
480
|
* Merge phases for an entire inheritance chain.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAgKjC,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAErC;IACA;IAFT,YACS,UAAkB,EAClB,aAAuB;QAE9B,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAHpC,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAU;QAG9B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAExC;IACA;IAFT,YACS,UAAkB,EAClB,KAAe;QAEtB,KAAK,CAAC,kCAAkC,UAAU,4BAA4B,CAAC,CAAC;QAHzE,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAU;QAGtB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC1B;IAAnB,YAAmB,YAAsB;QACvC,KAAK,CAAC,6BAA6B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAD7C,iBAAY,GAAZ,YAAY,CAAU;QAEvC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAEpC;IACA;IAFT,YACS,UAAkB,EAClB,MAAc;QAErB,KAAK,CAAC,oBAAoB,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;QAH5C,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEzB;IACA;IAFT,YACS,GAAW,EACX,MAAc;QAErB,KAAK,CAAC,+BAA+B,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;QAHhD,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAExC,oDAAoD;AACpD,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,kDAAkD;AAClD,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEvC;;;GAGG;AACH,SAAS,WAAW,CAAC,EAAU;IAC7B,gBAAgB;IAChB,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,yBAAyB;QACnC,OAAO,EAAE,uBAAuB;QAChC,gCAAgC,EAAE,0BAA0B;QAC5D,aAAa,EAAE,2BAA2B;QAC1C,aAAa,EAAE,8CAA8C;QAC7D,MAAM,EAAE,8BAA8B;QACtC,iDAAiD,EAAE,oCAAoC;QACvF,cAAc,EAAE,2CAA2C;QAC3D,cAAc,EAAE,4BAA4B;QAC5C,iBAAiB,EAAE,+BAA+B;QAClD,iBAAiB,EAAE,+BAA+B;QAClD,gBAAgB,EAAE,8BAA8B;QAChD,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,yBAAyB;QACnC,sBAAsB,EAAE,YAAY;KACrC,CAAC;IAEF,gBAAgB;IAChB,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,yBAAyB;QACpC,kBAAkB,EAAE,yBAAyB;QAC7C,2EAA2E,EAAE,cAAc;KAC5F,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,KAAK,UAAU,mBAAmB,CAAC,GAAW;IAC5C,IAAI,SAAc,CAAC;IAEnB,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,eAAe,SAAS,CAAC,QAAQ,yCAAyC,CAC3E,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClD,IACE,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,uBAAuB;QACpC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,gDAAgD,OAAO,GAAG,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS;YAAE,MAAM,KAAK,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IACnB,eAAe,CAAS;IACxB,WAAW,CAAS;IACpB,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEnE,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe;gBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,SAAiB,EAAE,OAAe;QAC9D,0BAA0B;QAC1B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,GAAG,OAAO,kBAAkB,CAAC,CAAC;QAC1E,CAAC;QAED,kCAAkC;QAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,GAAG,OAAO,+CAA+C,CAAC,CAAC;QACvG,CAAC;QAED,gDAAgD;QAChD,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,GAAG,OAAO,6BAA6B,CAAC,CAAC;QACrF,CAAC;QAED,0DAA0D;QAC1D,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,GAAG,OAAO,8BAA8B,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,wDAAwD;QACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE3D,wCAAwC;QACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;QAEjD,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE1D,6CAA6C;QAC7C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEnC,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAEjD,0BAA0B;QAC1B,MAAM,QAAQ,GAAqB;YACjC,EAAE,EAAE,aAAa,CAAC,EAAE;YACpB,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,iBAAiB,EAAE,KAAK;YACxB,MAAM;YACN,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,YAAY,EAAE,aAAa,CAAC,YAAY;SACzC,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/H,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QACpD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,SAAS,GAAuB,UAAU,CAAC;QAE/C,OAAO,SAAS,EAAE,CAAC;YACjB,iCAAiC;YACjC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtB,gCAAgC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxD,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC/C,oBAAoB;QACpB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAC7C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEvD,wBAAwB;QACxB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,SAAmB,CAAC;QACrC,MAAM,aAAa,GAAa,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,eAAe,EACpB,wDAAwD,EACxD,GAAG,UAAU,OAAO,CACrB,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEjC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,MAAM,IAAI,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,UAAkB,EAAE,QAAgB;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAAC,UAAkB,EAAE,GAAW;QAChE,gDAAgD;QAChD,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACxD,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,OAAO,EAAE,+CAA+C;gBAClE,OAAO,EAAE;oBACP,YAAY,EAAE,qCAAqC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,qBAAqB,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,CAAC;YAED,8EAA8E;YAC9E,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;YACpD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACnE,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,aAAa,GAAG,kBAAkB,EAAE,CAAC;oBACvC,MAAM,IAAI,oBAAoB,CAC5B,UAAU,EACV,uBAAuB,aAAa,6BAA6B,kBAAkB,QAAQ,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEtC,0FAA0F;YAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;gBACxC,MAAM,IAAI,oBAAoB,CAC5B,UAAU,EACV,uBAAuB,OAAO,CAAC,MAAM,6BAA6B,kBAAkB,QAAQ,CAC7F,CAAC;YACJ,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,kEAAkE;YAClE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAEzD,0DAA0D;YAC1D,kEAAkE;YAClE,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YACnD,IAAI,CAAC;gBACH,oDAAoD;gBACpD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5G,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC1B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjB,gBAAgB;gBAChB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,8BAA8B;gBAC9B,IAAI,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACvD,MAAM,UAAU,CAAC;YACnB,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEnC,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;YACjB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,IAAI,oBAAoB,CAC5B,UAAU,EACV,6BAA6B,oBAAoB,GAAG,IAAI,aAAa,GAAG,EAAE,CAC3E,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW;QAC5B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,QAAgB;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YAErC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,mDAAmD;gBACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACpC,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;oBAClC,IAAI,KAAK,GAAG,WAAW,EAAE,CAAC;wBACxB,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gFAAgF;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,UAAkB;QAC5C,0BAA0B;QAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC;QAED,iDAAiD;QACjD,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC;YACxD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACvD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,eAAe,EACpB,WAAW,EACX,SAAS,EACT,MAAM,EACN,2BAA2B,EAC3B,GAAG,QAAQ,OAAO,CACnB,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,KAAe,EACf,SAAmB;QAEnB,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;QACnF,MAAM,MAAM,GAAkC,EAAE,CAAC;QAEjD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAElE,uCAAuC;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;YACxD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,CAAC,SAAS,CAAC,GAAG;gBAClB,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,IAAI;gBACpC,WAAW,EAAE,UAAU,EAAE,WAAW;gBACpC,KAAK,EAAE,aAAa;gBACpB,gBAAgB,EAAE,UAAU,EAAE,gBAAgB;gBAC9C,WAAW,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC;QACJ,CAAC;QAED,OAAO,MAAoC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CACrB,KAAe,EACf,SAAmE;QAEnE,MAAM,WAAW,GAAmB,EAAE,CAAC;QAEvC,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;YAExC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC;oBACf,GAAG,IAAI;oBACP,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,UAAU;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;QACxD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC;gBACf,GAAG,IAAI;gBACP,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChB,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC;YAE1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC;oBACf,GAAG,IAAI;oBACP,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,WAAW;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAqB,EAAE,SAAmB;QAC/D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAkC;QAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,cAAc;QACxD,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,KAAe;QAC1C,MAAM,MAAM,GAAoB;YAC9B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;QAEnF,kFAAkF;QAClF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;YACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,uBAAuB;YACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;oBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM;oBACrC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACjB,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC;wBAC3C,CAAC,CAAC,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;wBACpD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GACd,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
|