test-genie-mcp 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +219 -0
- package/dist/analyzers/astAnalyzer.d.ts +108 -0
- package/dist/analyzers/astAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/astAnalyzer.js +800 -0
- package/dist/analyzers/astAnalyzer.js.map +1 -0
- package/dist/analyzers/performanceAnalyzer.d.ts +90 -0
- package/dist/analyzers/performanceAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/performanceAnalyzer.js +647 -0
- package/dist/analyzers/performanceAnalyzer.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +683 -0
- package/dist/index.js.map +1 -0
- package/dist/platforms/android/index.d.ts +90 -0
- package/dist/platforms/android/index.d.ts.map +1 -0
- package/dist/platforms/android/index.js +519 -0
- package/dist/platforms/android/index.js.map +1 -0
- package/dist/platforms/flutter/index.d.ts +105 -0
- package/dist/platforms/flutter/index.d.ts.map +1 -0
- package/dist/platforms/flutter/index.js +533 -0
- package/dist/platforms/flutter/index.js.map +1 -0
- package/dist/platforms/ios/index.d.ts +79 -0
- package/dist/platforms/ios/index.d.ts.map +1 -0
- package/dist/platforms/ios/index.js +393 -0
- package/dist/platforms/ios/index.js.map +1 -0
- package/dist/platforms/react-native/index.d.ts +160 -0
- package/dist/platforms/react-native/index.d.ts.map +1 -0
- package/dist/platforms/react-native/index.js +602 -0
- package/dist/platforms/react-native/index.js.map +1 -0
- package/dist/platforms/web/index.d.ts +177 -0
- package/dist/platforms/web/index.d.ts.map +1 -0
- package/dist/platforms/web/index.js +637 -0
- package/dist/platforms/web/index.js.map +1 -0
- package/dist/storage/index.d.ts +35 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +351 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/tools/analysis/analyzeAppStructure.d.ts +9 -0
- package/dist/tools/analysis/analyzeAppStructure.d.ts.map +1 -0
- package/dist/tools/analysis/analyzeAppStructure.js +289 -0
- package/dist/tools/analysis/analyzeAppStructure.js.map +1 -0
- package/dist/tools/analysis/createTestPlan.d.ts +21 -0
- package/dist/tools/analysis/createTestPlan.d.ts.map +1 -0
- package/dist/tools/analysis/createTestPlan.js +214 -0
- package/dist/tools/analysis/createTestPlan.js.map +1 -0
- package/dist/tools/analysis/generateScenarios.d.ts +21 -0
- package/dist/tools/analysis/generateScenarios.d.ts.map +1 -0
- package/dist/tools/analysis/generateScenarios.js +567 -0
- package/dist/tools/analysis/generateScenarios.js.map +1 -0
- package/dist/tools/automation/cicdIntegration.d.ts +41 -0
- package/dist/tools/automation/cicdIntegration.d.ts.map +1 -0
- package/dist/tools/automation/cicdIntegration.js +825 -0
- package/dist/tools/automation/cicdIntegration.js.map +1 -0
- package/dist/tools/automation/generateReport.d.ts +16 -0
- package/dist/tools/automation/generateReport.d.ts.map +1 -0
- package/dist/tools/automation/generateReport.js +406 -0
- package/dist/tools/automation/generateReport.js.map +1 -0
- package/dist/tools/automation/runFullAutomation.d.ts +25 -0
- package/dist/tools/automation/runFullAutomation.d.ts.map +1 -0
- package/dist/tools/automation/runFullAutomation.js +296 -0
- package/dist/tools/automation/runFullAutomation.js.map +1 -0
- package/dist/tools/detection/detectLogicErrors.d.ts +18 -0
- package/dist/tools/detection/detectLogicErrors.d.ts.map +1 -0
- package/dist/tools/detection/detectLogicErrors.js +470 -0
- package/dist/tools/detection/detectLogicErrors.js.map +1 -0
- package/dist/tools/detection/detectMemoryLeaks.d.ts +23 -0
- package/dist/tools/detection/detectMemoryLeaks.d.ts.map +1 -0
- package/dist/tools/detection/detectMemoryLeaks.js +453 -0
- package/dist/tools/detection/detectMemoryLeaks.js.map +1 -0
- package/dist/tools/execution/runScenarioTest.d.ts +34 -0
- package/dist/tools/execution/runScenarioTest.d.ts.map +1 -0
- package/dist/tools/execution/runScenarioTest.js +334 -0
- package/dist/tools/execution/runScenarioTest.js.map +1 -0
- package/dist/tools/execution/runSimulation.d.ts +17 -0
- package/dist/tools/execution/runSimulation.d.ts.map +1 -0
- package/dist/tools/execution/runSimulation.js +250 -0
- package/dist/tools/execution/runSimulation.js.map +1 -0
- package/dist/tools/execution/runStressTest.d.ts +52 -0
- package/dist/tools/execution/runStressTest.d.ts.map +1 -0
- package/dist/tools/execution/runStressTest.js +176 -0
- package/dist/tools/execution/runStressTest.js.map +1 -0
- package/dist/tools/fixing/applyFix.d.ts +44 -0
- package/dist/tools/fixing/applyFix.d.ts.map +1 -0
- package/dist/tools/fixing/applyFix.js +399 -0
- package/dist/tools/fixing/applyFix.js.map +1 -0
- package/dist/tools/fixing/confirmFix.d.ts +31 -0
- package/dist/tools/fixing/confirmFix.d.ts.map +1 -0
- package/dist/tools/fixing/confirmFix.js +136 -0
- package/dist/tools/fixing/confirmFix.js.map +1 -0
- package/dist/tools/fixing/suggestFixes.d.ts +23 -0
- package/dist/tools/fixing/suggestFixes.d.ts.map +1 -0
- package/dist/tools/fixing/suggestFixes.js +349 -0
- package/dist/tools/fixing/suggestFixes.js.map +1 -0
- package/dist/types.d.ts +322 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/codeParser.d.ts +12 -0
- package/dist/utils/codeParser.d.ts.map +1 -0
- package/dist/utils/codeParser.js +487 -0
- package/dist/utils/codeParser.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
export interface WebTestConfig {
|
|
2
|
+
projectPath: string;
|
|
3
|
+
testPath?: string;
|
|
4
|
+
browser?: 'chromium' | 'firefox' | 'webkit' | 'all';
|
|
5
|
+
headless?: boolean;
|
|
6
|
+
workers?: number;
|
|
7
|
+
reporter?: 'list' | 'dot' | 'html' | 'json';
|
|
8
|
+
timeout?: number;
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BrowserInstance {
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
executablePath: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function listBrowsers(): Promise<BrowserInstance[]>;
|
|
17
|
+
export declare function installBrowsers(): Promise<boolean>;
|
|
18
|
+
export declare function runPlaywrightTests(config: WebTestConfig): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
output: string;
|
|
21
|
+
results: {
|
|
22
|
+
total: number;
|
|
23
|
+
passed: number;
|
|
24
|
+
failed: number;
|
|
25
|
+
skipped: number;
|
|
26
|
+
flaky: number;
|
|
27
|
+
duration: number;
|
|
28
|
+
tests: {
|
|
29
|
+
title: string;
|
|
30
|
+
file: string;
|
|
31
|
+
status: 'passed' | 'failed' | 'skipped' | 'timedOut';
|
|
32
|
+
duration: number;
|
|
33
|
+
error?: string;
|
|
34
|
+
retry?: number;
|
|
35
|
+
}[];
|
|
36
|
+
};
|
|
37
|
+
artifacts: {
|
|
38
|
+
screenshots: string[];
|
|
39
|
+
videos: string[];
|
|
40
|
+
traces: string[];
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
export declare function runVisualTests(config: WebTestConfig & {
|
|
44
|
+
updateSnapshots?: boolean;
|
|
45
|
+
threshold?: number;
|
|
46
|
+
}): Promise<{
|
|
47
|
+
success: boolean;
|
|
48
|
+
output: string;
|
|
49
|
+
comparisons: {
|
|
50
|
+
name: string;
|
|
51
|
+
matched: boolean;
|
|
52
|
+
diffPixels?: number;
|
|
53
|
+
diffPath?: string;
|
|
54
|
+
}[];
|
|
55
|
+
}>;
|
|
56
|
+
export declare function runCypressTests(config: WebTestConfig): Promise<{
|
|
57
|
+
success: boolean;
|
|
58
|
+
output: string;
|
|
59
|
+
results: {
|
|
60
|
+
total: number;
|
|
61
|
+
passed: number;
|
|
62
|
+
failed: number;
|
|
63
|
+
pending: number;
|
|
64
|
+
duration: number;
|
|
65
|
+
tests: {
|
|
66
|
+
title: string;
|
|
67
|
+
state: 'passed' | 'failed' | 'pending';
|
|
68
|
+
duration: number;
|
|
69
|
+
error?: string;
|
|
70
|
+
}[];
|
|
71
|
+
};
|
|
72
|
+
videos: string[];
|
|
73
|
+
screenshots: string[];
|
|
74
|
+
}>;
|
|
75
|
+
export interface LighthouseConfig {
|
|
76
|
+
url: string;
|
|
77
|
+
projectPath: string;
|
|
78
|
+
categories?: ('performance' | 'accessibility' | 'best-practices' | 'seo' | 'pwa')[];
|
|
79
|
+
device?: 'mobile' | 'desktop';
|
|
80
|
+
throttling?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export declare function runLighthouse(config: LighthouseConfig): Promise<{
|
|
83
|
+
success: boolean;
|
|
84
|
+
scores: {
|
|
85
|
+
performance: number;
|
|
86
|
+
accessibility: number;
|
|
87
|
+
bestPractices: number;
|
|
88
|
+
seo: number;
|
|
89
|
+
pwa?: number;
|
|
90
|
+
};
|
|
91
|
+
metrics: {
|
|
92
|
+
firstContentfulPaint: number;
|
|
93
|
+
largestContentfulPaint: number;
|
|
94
|
+
timeToInteractive: number;
|
|
95
|
+
totalBlockingTime: number;
|
|
96
|
+
cumulativeLayoutShift: number;
|
|
97
|
+
speedIndex: number;
|
|
98
|
+
};
|
|
99
|
+
reportPath: string;
|
|
100
|
+
}>;
|
|
101
|
+
export declare function runAccessibilityTests(config: {
|
|
102
|
+
projectPath: string;
|
|
103
|
+
url: string;
|
|
104
|
+
rules?: string[];
|
|
105
|
+
tags?: string[];
|
|
106
|
+
}): Promise<{
|
|
107
|
+
success: boolean;
|
|
108
|
+
violations: {
|
|
109
|
+
id: string;
|
|
110
|
+
impact: 'minor' | 'moderate' | 'serious' | 'critical';
|
|
111
|
+
description: string;
|
|
112
|
+
nodes: {
|
|
113
|
+
html: string;
|
|
114
|
+
target: string;
|
|
115
|
+
}[];
|
|
116
|
+
}[];
|
|
117
|
+
passes: number;
|
|
118
|
+
inapplicable: number;
|
|
119
|
+
}>;
|
|
120
|
+
export interface APITestConfig {
|
|
121
|
+
projectPath: string;
|
|
122
|
+
baseUrl: string;
|
|
123
|
+
endpoints: {
|
|
124
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
125
|
+
path: string;
|
|
126
|
+
headers?: Record<string, string>;
|
|
127
|
+
body?: any;
|
|
128
|
+
expectedStatus: number;
|
|
129
|
+
expectedSchema?: any;
|
|
130
|
+
}[];
|
|
131
|
+
}
|
|
132
|
+
export declare function runAPITests(config: APITestConfig): Promise<{
|
|
133
|
+
success: boolean;
|
|
134
|
+
results: {
|
|
135
|
+
endpoint: string;
|
|
136
|
+
method: string;
|
|
137
|
+
status: number;
|
|
138
|
+
duration: number;
|
|
139
|
+
passed: boolean;
|
|
140
|
+
error?: string;
|
|
141
|
+
}[];
|
|
142
|
+
totalDuration: number;
|
|
143
|
+
}>;
|
|
144
|
+
export interface LoadTestConfig {
|
|
145
|
+
projectPath: string;
|
|
146
|
+
url: string;
|
|
147
|
+
duration: string;
|
|
148
|
+
vus: number;
|
|
149
|
+
thresholds?: {
|
|
150
|
+
http_req_duration?: string;
|
|
151
|
+
http_req_failed?: string;
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
export declare function runLoadTest(config: LoadTestConfig): Promise<{
|
|
155
|
+
success: boolean;
|
|
156
|
+
metrics: {
|
|
157
|
+
http_reqs: number;
|
|
158
|
+
http_req_duration_avg: number;
|
|
159
|
+
http_req_duration_p95: number;
|
|
160
|
+
http_req_failed: number;
|
|
161
|
+
vus: number;
|
|
162
|
+
};
|
|
163
|
+
output: string;
|
|
164
|
+
}>;
|
|
165
|
+
declare const _default: {
|
|
166
|
+
listBrowsers: typeof listBrowsers;
|
|
167
|
+
installBrowsers: typeof installBrowsers;
|
|
168
|
+
runPlaywrightTests: typeof runPlaywrightTests;
|
|
169
|
+
runVisualTests: typeof runVisualTests;
|
|
170
|
+
runCypressTests: typeof runCypressTests;
|
|
171
|
+
runLighthouse: typeof runLighthouse;
|
|
172
|
+
runAccessibilityTests: typeof runAccessibilityTests;
|
|
173
|
+
runAPITests: typeof runAPITests;
|
|
174
|
+
runLoadTest: typeof runLoadTest;
|
|
175
|
+
};
|
|
176
|
+
export default _default;
|
|
177
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/web/index.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAKD,wBAAsB,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAkB/D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAKD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;YACrD,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;KACL,CAAC;IACF,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH,CAAC,CAqDD;AAwHD,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL,CAAC,CAiCD;AA6CD,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;KACL,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC,CAmDD;AAyGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;IACpF,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CA+ED;AAKD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;QACtD,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;KACL,EAAE,CAAC;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAgED;AAKD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,GAAG,CAAC;KACtB,EAAE,CAAC;CACL;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAwDD;AAKD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE;QACX,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CA+DD;;;;;;;;;;;;AAmCD,wBAUE"}
|