@nexart/cli 0.2.1 → 0.2.3
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 +119 -20
- package/dist/index.d.ts +2 -2
- package/dist/index.js +177 -54
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @nexart/cli v0.2
|
|
1
|
+
# @nexart/cli v0.2.3
|
|
2
2
|
|
|
3
3
|
Command-line interface for NexArt CodeMode — run, replay, and verify deterministic generative art.
|
|
4
4
|
|
|
@@ -12,6 +12,57 @@ npm install -g @nexart/cli
|
|
|
12
12
|
nexart run sketch.js --seed 12345
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Quickstart: Run an Example
|
|
16
|
+
|
|
17
|
+
The SDK includes example sketches in the `examples/` folder:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# 1. Set up authentication
|
|
21
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
22
|
+
export NEXART_API_KEY=nx_live_your_key_here
|
|
23
|
+
|
|
24
|
+
# 2. Run the main example sketch (outputs to current directory)
|
|
25
|
+
npx @nexart/cli run ./examples/sketch.js --seed 12345 --include-code --out ./out.png
|
|
26
|
+
# Creates: ./out.png and ./out.snapshot.json
|
|
27
|
+
|
|
28
|
+
# 3. Verify the output is deterministic
|
|
29
|
+
npx @nexart/cli verify ./out.snapshot.json
|
|
30
|
+
# Output: [nexart] Result: PASS
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Output Files
|
|
34
|
+
|
|
35
|
+
When you run with `--out ./out.png`, the CLI creates:
|
|
36
|
+
- `./out.png` — The rendered PNG image
|
|
37
|
+
- `./out.snapshot.json` — Snapshot for replay/verify
|
|
38
|
+
|
|
39
|
+
### Example Sketches
|
|
40
|
+
|
|
41
|
+
| File | Description |
|
|
42
|
+
|------|-------------|
|
|
43
|
+
| `examples/sketch.js` | Main example — VAR controls + random palette, protocol-safe |
|
|
44
|
+
| `examples/sketch-minimal.js` | Simple shapes, no randomness — identical output every run |
|
|
45
|
+
| `examples/sketch-vars.js` | Uses VAR + random() — demonstrates determinism with same seed |
|
|
46
|
+
|
|
47
|
+
## Canonical Size
|
|
48
|
+
|
|
49
|
+
The canonical renderer enforces a fixed canvas size:
|
|
50
|
+
|
|
51
|
+
| Property | Value |
|
|
52
|
+
|----------|-------|
|
|
53
|
+
| Width | 1950 |
|
|
54
|
+
| Height | 2400 |
|
|
55
|
+
|
|
56
|
+
**Important:** Do not pass custom `--width` or `--height` to the canonical renderer endpoint. The canonical size is enforced server-side for consistent, verifiable output.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Correct: use default canonical size
|
|
60
|
+
nexart run sketch.js --seed 12345
|
|
61
|
+
|
|
62
|
+
# Avoid: custom sizes may be rejected by canonical renderer
|
|
63
|
+
# nexart run sketch.js --width 800 --height 600 # NOT recommended
|
|
64
|
+
```
|
|
65
|
+
|
|
15
66
|
## Quick Start (npx)
|
|
16
67
|
|
|
17
68
|
Run without installing globally:
|
|
@@ -27,12 +78,48 @@ npx @nexart/cli replay out.snapshot.json --out replay.png
|
|
|
27
78
|
|
|
28
79
|
The CLI renders Code Mode sketches via a **remote canonical renderer** and creates verifiable snapshots.
|
|
29
80
|
|
|
30
|
-
**v0.2 features:**
|
|
81
|
+
**v0.2.2 features:**
|
|
82
|
+
- Authenticated remote rendering with API keys
|
|
31
83
|
- Real PNG output via remote renderer
|
|
32
84
|
- Snapshot v1 format with SHA-256 hashing
|
|
33
85
|
- Verify and replay commands
|
|
34
86
|
- Optional code embedding in snapshots
|
|
35
87
|
|
|
88
|
+
## Authentication
|
|
89
|
+
|
|
90
|
+
Remote rendering requires an API key for metered access.
|
|
91
|
+
|
|
92
|
+
### Setup
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Set environment variables
|
|
96
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
97
|
+
export NEXART_API_KEY=nx_live_your_key_here
|
|
98
|
+
|
|
99
|
+
# Run with authentication
|
|
100
|
+
npx @nexart/cli@0.2.2 run sketch.js --seed 12345 --include-code --out out.png
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### API Key Options
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Via environment variable (recommended)
|
|
107
|
+
export NEXART_API_KEY=nx_live_...
|
|
108
|
+
nexart run sketch.js --seed 12345
|
|
109
|
+
|
|
110
|
+
# Via CLI flag
|
|
111
|
+
nexart run sketch.js --seed 12345 --api-key nx_live_...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Error Messages
|
|
115
|
+
|
|
116
|
+
If authentication fails:
|
|
117
|
+
```
|
|
118
|
+
[nexart] Error: Missing API key for remote rendering.
|
|
119
|
+
[nexart] Set NEXART_API_KEY environment variable or pass --api-key.
|
|
120
|
+
[nexart] Get your API key at: https://nexart.art/dashboard/api
|
|
121
|
+
```
|
|
122
|
+
|
|
36
123
|
## Commands
|
|
37
124
|
|
|
38
125
|
### Run
|
|
@@ -40,13 +127,13 @@ The CLI renders Code Mode sketches via a **remote canonical renderer** and creat
|
|
|
40
127
|
Execute a sketch and create a snapshot:
|
|
41
128
|
|
|
42
129
|
```bash
|
|
43
|
-
# With remote renderer (default)
|
|
130
|
+
# With remote renderer (default, requires API key for remote endpoints)
|
|
44
131
|
nexart run sketch.js --seed 12345 --out render.png
|
|
45
132
|
|
|
46
133
|
# With code embedded for standalone verify/replay
|
|
47
134
|
nexart run sketch.js --seed 12345 --include-code
|
|
48
135
|
|
|
49
|
-
#
|
|
136
|
+
# Local mode (placeholder PNG, no auth required)
|
|
50
137
|
nexart run sketch.js --renderer local
|
|
51
138
|
```
|
|
52
139
|
|
|
@@ -56,10 +143,11 @@ nexart run sketch.js --renderer local
|
|
|
56
143
|
| `--out, -o` | out.png | Output PNG path |
|
|
57
144
|
| `--seed, -s` | random | PRNG seed |
|
|
58
145
|
| `--vars, -v` | 0,0,0,0,0,0,0,0,0,0 | VAR values (comma-separated) |
|
|
59
|
-
| `--width, -w` | 1950 | Canvas width |
|
|
60
|
-
| `--height` | 2400 | Canvas height |
|
|
146
|
+
| `--width, -w` | 1950 | Canvas width (use default for canonical) |
|
|
147
|
+
| `--height` | 2400 | Canvas height (use default for canonical) |
|
|
61
148
|
| `--renderer` | remote | `remote` or `local` |
|
|
62
149
|
| `--endpoint` | env/localhost:5000 | Remote renderer URL |
|
|
150
|
+
| `--api-key` | env | API key for authentication |
|
|
63
151
|
| `--include-code` | false | Embed code in snapshot |
|
|
64
152
|
| `--runtime-hash` | auto | Override runtime hash |
|
|
65
153
|
|
|
@@ -101,10 +189,11 @@ The CLI calls a canonical Node.js renderer endpoint for real PNG generation.
|
|
|
101
189
|
|
|
102
190
|
```bash
|
|
103
191
|
# Via environment variable
|
|
104
|
-
export NEXART_RENDERER_ENDPOINT=
|
|
192
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
193
|
+
export NEXART_API_KEY=nx_live_...
|
|
105
194
|
|
|
106
|
-
# Via CLI
|
|
107
|
-
nexart run sketch.js --endpoint
|
|
195
|
+
# Via CLI flags
|
|
196
|
+
nexart run sketch.js --endpoint https://render.nexart.io --api-key nx_live_...
|
|
108
197
|
```
|
|
109
198
|
|
|
110
199
|
### Expected API
|
|
@@ -112,6 +201,7 @@ nexart run sketch.js --endpoint http://render.nexart.io
|
|
|
112
201
|
```
|
|
113
202
|
POST /api/render
|
|
114
203
|
Content-Type: application/json
|
|
204
|
+
Authorization: Bearer <api_key>
|
|
115
205
|
|
|
116
206
|
{
|
|
117
207
|
"code": "...",
|
|
@@ -127,12 +217,14 @@ Headers:
|
|
|
127
217
|
X-Runtime-Hash: <hash>
|
|
128
218
|
```
|
|
129
219
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"
|
|
135
|
-
|
|
220
|
+
### Equivalent curl
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
curl -X POST https://nexart-canonical-renderer-production.up.railway.app/api/render \
|
|
224
|
+
-H "Content-Type: application/json" \
|
|
225
|
+
-H "Authorization: Bearer nx_live_..." \
|
|
226
|
+
-d '{"code":"createCanvas(1950,2400);\nbackground(0);\n","seed":12345,"VAR":[0,0,0,0,0,0,0,0,0,0],"width":1950,"height":2400,"protocolVersion":"1.2.0"}' \
|
|
227
|
+
--output render.png
|
|
136
228
|
```
|
|
137
229
|
|
|
138
230
|
## Snapshot Format (v1)
|
|
@@ -148,7 +240,7 @@ Or JSON response:
|
|
|
148
240
|
"VAR": [0,0,0,0,0,0,0,0,0,0],
|
|
149
241
|
"canvas": { "width": 1950, "height": 2400 },
|
|
150
242
|
"outputHash": "<sha256>",
|
|
151
|
-
"createdAt": "2026-01-
|
|
243
|
+
"createdAt": "2026-01-25T...",
|
|
152
244
|
"code": "..." // optional, if --include-code
|
|
153
245
|
}
|
|
154
246
|
```
|
|
@@ -162,19 +254,26 @@ Or JSON response:
|
|
|
162
254
|
|
|
163
255
|
| Mode | Description |
|
|
164
256
|
|------|-------------|
|
|
165
|
-
| `--renderer remote` | **Default.** Calls canonical renderer, produces real PNG output. |
|
|
166
|
-
| `--renderer local` | **NOT implemented yet.** Outputs a 1x1 placeholder image only. No
|
|
257
|
+
| `--renderer remote` | **Default.** Calls canonical renderer with auth, produces real PNG output. |
|
|
258
|
+
| `--renderer local` | **NOT implemented yet.** Outputs a 1x1 placeholder image only. No auth required. |
|
|
167
259
|
|
|
168
260
|
```bash
|
|
169
|
-
# Remote (default) — real PNG output
|
|
261
|
+
# Remote (default) — real PNG output, requires API key for remote endpoints
|
|
170
262
|
nexart run sketch.js --seed 12345
|
|
171
263
|
|
|
172
|
-
# Local — NOT implemented, placeholder only
|
|
264
|
+
# Local — NOT implemented, placeholder only, no auth
|
|
173
265
|
nexart run sketch.js --renderer local
|
|
174
266
|
```
|
|
175
267
|
|
|
176
268
|
Real local/offline rendering is planned for a future release.
|
|
177
269
|
|
|
270
|
+
## Environment Variables
|
|
271
|
+
|
|
272
|
+
| Variable | Description |
|
|
273
|
+
|----------|-------------|
|
|
274
|
+
| `NEXART_RENDERER_ENDPOINT` | Remote renderer URL (default: http://localhost:5000) |
|
|
275
|
+
| `NEXART_API_KEY` | API key for authenticated rendering |
|
|
276
|
+
|
|
178
277
|
## License
|
|
179
278
|
|
|
180
279
|
MIT — Free for all use including commercial.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @nexart/cli v0.2 — NexArt CodeMode CLI
|
|
3
|
+
* @nexart/cli v0.2.3 — NexArt CodeMode CLI
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* - nexart run <file> — Execute via remote renderer and create snapshot
|
|
7
7
|
* - nexart replay <snapshot> — Re-execute from snapshot
|
|
8
8
|
* - nexart verify <snapshot> — Verify snapshot hash
|
|
9
9
|
*
|
|
10
|
-
* Remote rendering via canonical Node renderer endpoint.
|
|
10
|
+
* Remote rendering via canonical Node renderer endpoint with API key auth.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @nexart/cli v0.2 — NexArt CodeMode CLI
|
|
3
|
+
* @nexart/cli v0.2.3 — NexArt CodeMode CLI
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* - nexart run <file> — Execute via remote renderer and create snapshot
|
|
7
7
|
* - nexart replay <snapshot> — Re-execute from snapshot
|
|
8
8
|
* - nexart verify <snapshot> — Verify snapshot hash
|
|
9
9
|
*
|
|
10
|
-
* Remote rendering via canonical Node renderer endpoint.
|
|
10
|
+
* Remote rendering via canonical Node renderer endpoint with API key auth.
|
|
11
11
|
*/
|
|
12
12
|
import yargs from 'yargs';
|
|
13
13
|
import { hideBin } from 'yargs/helpers';
|
|
14
14
|
import * as fs from 'fs';
|
|
15
|
+
import * as path from 'path';
|
|
15
16
|
import * as crypto from 'crypto';
|
|
16
17
|
import * as http from 'http';
|
|
17
18
|
import * as https from 'https';
|
|
18
|
-
const CLI_VERSION = '0.2.
|
|
19
|
-
const SDK_VERSION = '1.8.
|
|
19
|
+
const CLI_VERSION = '0.2.3';
|
|
20
|
+
const SDK_VERSION = '1.8.4';
|
|
20
21
|
const PROTOCOL_VERSION = '1.2.0';
|
|
21
22
|
const DEFAULT_ENDPOINT = process.env.NEXART_RENDERER_ENDPOINT || 'http://localhost:5000';
|
|
23
|
+
const DEFAULT_API_KEY = process.env.NEXART_API_KEY || '';
|
|
22
24
|
function sha256(data) {
|
|
23
25
|
const buffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
|
|
24
26
|
return crypto.createHash('sha256').update(buffer).digest('hex');
|
|
@@ -47,10 +49,72 @@ function parseVars(varsStr) {
|
|
|
47
49
|
const parts = varsStr.split(',').map(s => parseInt(s.trim(), 10) || 0);
|
|
48
50
|
return normalizeVAR(parts);
|
|
49
51
|
}
|
|
52
|
+
function isRemoteEndpoint(endpoint) {
|
|
53
|
+
try {
|
|
54
|
+
const url = new URL(endpoint);
|
|
55
|
+
const host = url.hostname.toLowerCase();
|
|
56
|
+
return host !== 'localhost' && host !== '127.0.0.1' && host !== '::1';
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function validateApiKey(apiKey, endpoint) {
|
|
63
|
+
if (isRemoteEndpoint(endpoint) && !apiKey) {
|
|
64
|
+
console.error('[nexart] Error: Missing API key for remote rendering.');
|
|
65
|
+
console.error('[nexart] Set NEXART_API_KEY environment variable or pass --api-key.');
|
|
66
|
+
console.error('[nexart] Get your API key at: https://nexart.art/dashboard/api');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function resolveOutputPath(outPath) {
|
|
71
|
+
if (path.isAbsolute(outPath)) {
|
|
72
|
+
return outPath;
|
|
73
|
+
}
|
|
74
|
+
return path.resolve(process.cwd(), outPath);
|
|
75
|
+
}
|
|
76
|
+
function deriveSnapshotPath(pngPath) {
|
|
77
|
+
if (pngPath.toLowerCase().endsWith('.png')) {
|
|
78
|
+
return pngPath.replace(/\.png$/i, '.snapshot.json');
|
|
79
|
+
}
|
|
80
|
+
return pngPath + '.snapshot.json';
|
|
81
|
+
}
|
|
82
|
+
function writeFileAndVerify(filePath, data) {
|
|
83
|
+
const absolutePath = resolveOutputPath(filePath);
|
|
84
|
+
const dir = path.dirname(absolutePath);
|
|
85
|
+
if (!fs.existsSync(dir)) {
|
|
86
|
+
try {
|
|
87
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error(`[nexart] Error: Failed to create directory: ${dir}`);
|
|
91
|
+
console.error(`[nexart] ${error}`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
fs.writeFileSync(absolutePath, data);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error(`[nexart] Error: Failed to write file: ${absolutePath}`);
|
|
100
|
+
console.error(`[nexart] ${error}`);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
if (!fs.existsSync(absolutePath)) {
|
|
104
|
+
console.error(`[nexart] Error: File was not created: ${absolutePath}`);
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
const stats = fs.statSync(absolutePath);
|
|
108
|
+
if (stats.size === 0) {
|
|
109
|
+
console.error(`[nexart] Error: File is empty (0 bytes): ${absolutePath}`);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
return absolutePath;
|
|
113
|
+
}
|
|
50
114
|
/**
|
|
51
|
-
* Call remote renderer endpoint
|
|
115
|
+
* Call remote renderer endpoint with optional API key auth
|
|
52
116
|
*/
|
|
53
|
-
async function callRenderer(endpoint, code, seed, VAR, width, height) {
|
|
117
|
+
async function callRenderer(endpoint, code, seed, VAR, width, height, apiKey) {
|
|
54
118
|
const url = new URL('/api/render', endpoint);
|
|
55
119
|
const isHttps = url.protocol === 'https:';
|
|
56
120
|
const httpModule = isHttps ? https : http;
|
|
@@ -62,29 +126,53 @@ async function callRenderer(endpoint, code, seed, VAR, width, height) {
|
|
|
62
126
|
height,
|
|
63
127
|
protocolVersion: PROTOCOL_VERSION,
|
|
64
128
|
});
|
|
129
|
+
const headers = {
|
|
130
|
+
'Content-Type': 'application/json',
|
|
131
|
+
'Content-Length': Buffer.byteLength(body),
|
|
132
|
+
};
|
|
133
|
+
if (apiKey) {
|
|
134
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
135
|
+
}
|
|
65
136
|
return new Promise((resolve, reject) => {
|
|
66
137
|
const req = httpModule.request({
|
|
67
138
|
hostname: url.hostname,
|
|
68
139
|
port: url.port || (isHttps ? 443 : 80),
|
|
69
140
|
path: url.pathname,
|
|
70
141
|
method: 'POST',
|
|
71
|
-
headers
|
|
72
|
-
'Content-Type': 'application/json',
|
|
73
|
-
'Content-Length': Buffer.byteLength(body),
|
|
74
|
-
},
|
|
142
|
+
headers,
|
|
75
143
|
}, (res) => {
|
|
76
144
|
const chunks = [];
|
|
77
145
|
res.on('data', (chunk) => chunks.push(chunk));
|
|
78
146
|
res.on('end', () => {
|
|
79
147
|
const responseBuffer = Buffer.concat(chunks);
|
|
80
148
|
const contentType = res.headers['content-type'] || '';
|
|
81
|
-
|
|
149
|
+
if (res.statusCode === 401) {
|
|
150
|
+
reject(new Error('Authentication failed. Check your API key.'));
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (res.statusCode === 403) {
|
|
154
|
+
reject(new Error('Access denied. Your API key may not have render permissions.'));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (res.statusCode === 429) {
|
|
158
|
+
reject(new Error('Rate limited. Please wait before making more requests.'));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
162
|
+
try {
|
|
163
|
+
const json = JSON.parse(responseBuffer.toString('utf-8'));
|
|
164
|
+
reject(new Error(json.error || `Server error: ${res.statusCode}`));
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
reject(new Error(`Server error: ${res.statusCode}`));
|
|
168
|
+
}
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
82
171
|
if (contentType.includes('image/png')) {
|
|
83
172
|
const runtimeHash = res.headers['x-runtime-hash'] || sha256(SDK_VERSION);
|
|
84
173
|
resolve({ pngBytes: responseBuffer, runtimeHash });
|
|
85
174
|
return;
|
|
86
175
|
}
|
|
87
|
-
// Handle JSON response (with base64 PNG or error)
|
|
88
176
|
try {
|
|
89
177
|
const json = JSON.parse(responseBuffer.toString('utf-8'));
|
|
90
178
|
if (json.error) {
|
|
@@ -130,8 +218,9 @@ function createPlaceholderPng() {
|
|
|
130
218
|
async function runCommand(file, options) {
|
|
131
219
|
console.log(`[nexart] Running: ${file}`);
|
|
132
220
|
console.log(`[nexart] Renderer: ${options.renderer}`);
|
|
221
|
+
console.log(`[nexart] Output: ${options.out}`);
|
|
133
222
|
if (!fs.existsSync(file)) {
|
|
134
|
-
console.error(`Error: File not found: ${file}`);
|
|
223
|
+
console.error(`[nexart] Error: File not found: ${file}`);
|
|
135
224
|
process.exit(1);
|
|
136
225
|
}
|
|
137
226
|
const code = fs.readFileSync(file, 'utf-8');
|
|
@@ -144,18 +233,20 @@ async function runCommand(file, options) {
|
|
|
144
233
|
let pngBytes;
|
|
145
234
|
let runtimeHash;
|
|
146
235
|
if (options.renderer === 'remote') {
|
|
236
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
147
237
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
238
|
+
if (options.apiKey) {
|
|
239
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
240
|
+
}
|
|
148
241
|
try {
|
|
149
|
-
const result = await callRenderer(options.endpoint, code, seed, VAR, width, height);
|
|
242
|
+
const result = await callRenderer(options.endpoint, code, seed, VAR, width, height, options.apiKey);
|
|
150
243
|
pngBytes = result.pngBytes;
|
|
151
244
|
runtimeHash = options.runtimeHash || result.runtimeHash;
|
|
152
245
|
console.log(`[nexart] Received ${pngBytes.length} bytes from renderer`);
|
|
153
246
|
}
|
|
154
247
|
catch (error) {
|
|
155
248
|
console.error(`[nexart] Remote render failed: ${error}`);
|
|
156
|
-
|
|
157
|
-
pngBytes = createPlaceholderPng();
|
|
158
|
-
runtimeHash = options.runtimeHash || sha256(SDK_VERSION);
|
|
249
|
+
process.exit(1);
|
|
159
250
|
}
|
|
160
251
|
}
|
|
161
252
|
else {
|
|
@@ -179,27 +270,26 @@ async function runCommand(file, options) {
|
|
|
179
270
|
if (options.includeCode) {
|
|
180
271
|
snapshot.code = code;
|
|
181
272
|
}
|
|
182
|
-
const
|
|
183
|
-
const snapshotPath =
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
console.log(`[nexart]
|
|
187
|
-
console.log(`[nexart] Snapshot: ${
|
|
273
|
+
const pngPath = resolveOutputPath(options.out);
|
|
274
|
+
const snapshotPath = deriveSnapshotPath(pngPath);
|
|
275
|
+
const pngAbsPath = writeFileAndVerify(pngPath, pngBytes);
|
|
276
|
+
const snapshotAbsPath = writeFileAndVerify(snapshotPath, JSON.stringify(snapshot, null, 2));
|
|
277
|
+
console.log(`[nexart] Wrote PNG: ${pngAbsPath} (${pngBytes.length} bytes)`);
|
|
278
|
+
console.log(`[nexart] Wrote Snapshot: ${snapshotAbsPath}`);
|
|
188
279
|
console.log(`[nexart] outputHash: ${outputHash}`);
|
|
189
280
|
console.log(`[nexart] codeHash: ${codeHash}`);
|
|
190
281
|
}
|
|
191
282
|
async function replayCommand(snapshotFile, options) {
|
|
192
283
|
console.log(`[nexart] Replaying from: ${snapshotFile}`);
|
|
193
284
|
if (!fs.existsSync(snapshotFile)) {
|
|
194
|
-
console.error(`Error: Snapshot not found: ${snapshotFile}`);
|
|
285
|
+
console.error(`[nexart] Error: Snapshot not found: ${snapshotFile}`);
|
|
195
286
|
process.exit(1);
|
|
196
287
|
}
|
|
197
288
|
const snapshot = JSON.parse(fs.readFileSync(snapshotFile, 'utf-8'));
|
|
198
289
|
if (snapshot.protocol !== 'nexart') {
|
|
199
|
-
console.error('Error: Invalid snapshot format');
|
|
290
|
+
console.error('[nexart] Error: Invalid snapshot format');
|
|
200
291
|
process.exit(1);
|
|
201
292
|
}
|
|
202
|
-
// Get code from snapshot, --code flag, or error
|
|
203
293
|
let code;
|
|
204
294
|
if (options.code && fs.existsSync(options.code)) {
|
|
205
295
|
code = fs.readFileSync(options.code, 'utf-8');
|
|
@@ -210,8 +300,8 @@ async function replayCommand(snapshotFile, options) {
|
|
|
210
300
|
console.log(`[nexart] Using embedded code from snapshot`);
|
|
211
301
|
}
|
|
212
302
|
else {
|
|
213
|
-
console.error('Error: No code available. Provide --code <file> or use a snapshot with embedded code.');
|
|
214
|
-
console.error('Hint: Use --include-code when running to embed code in snapshot.');
|
|
303
|
+
console.error('[nexart] Error: No code available. Provide --code <file> or use a snapshot with embedded code.');
|
|
304
|
+
console.error('[nexart] Hint: Use --include-code when running to embed code in snapshot.');
|
|
215
305
|
process.exit(1);
|
|
216
306
|
}
|
|
217
307
|
console.log(`[nexart] Protocol: ${snapshot.protocolVersion}`);
|
|
@@ -220,37 +310,42 @@ async function replayCommand(snapshotFile, options) {
|
|
|
220
310
|
console.log(`[nexart] Canvas: ${snapshot.canvas.width}x${snapshot.canvas.height}`);
|
|
221
311
|
let pngBytes;
|
|
222
312
|
if (options.renderer === 'remote') {
|
|
313
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
223
314
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
315
|
+
if (options.apiKey) {
|
|
316
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
317
|
+
}
|
|
224
318
|
try {
|
|
225
|
-
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height);
|
|
319
|
+
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height, options.apiKey);
|
|
226
320
|
pngBytes = result.pngBytes;
|
|
227
321
|
console.log(`[nexart] Received ${pngBytes.length} bytes from renderer`);
|
|
228
322
|
}
|
|
229
323
|
catch (error) {
|
|
230
324
|
console.error(`[nexart] Remote render failed: ${error}`);
|
|
231
|
-
|
|
325
|
+
process.exit(1);
|
|
232
326
|
}
|
|
233
327
|
}
|
|
234
328
|
else {
|
|
329
|
+
console.log(`[nexart] WARNING: Local renderer NOT implemented yet — outputs placeholder image only`);
|
|
235
330
|
pngBytes = createPlaceholderPng();
|
|
236
331
|
}
|
|
237
332
|
const outputHash = sha256(pngBytes);
|
|
238
|
-
|
|
239
|
-
|
|
333
|
+
const pngPath = resolveOutputPath(options.out);
|
|
334
|
+
const pngAbsPath = writeFileAndVerify(pngPath, pngBytes);
|
|
335
|
+
console.log(`[nexart] Wrote PNG: ${pngAbsPath} (${pngBytes.length} bytes)`);
|
|
240
336
|
console.log(`[nexart] outputHash: ${outputHash}`);
|
|
241
337
|
}
|
|
242
338
|
async function verifyCommand(snapshotFile, options) {
|
|
243
339
|
console.log(`[nexart] Verifying: ${snapshotFile}`);
|
|
244
340
|
if (!fs.existsSync(snapshotFile)) {
|
|
245
|
-
console.error(`Error: Snapshot not found: ${snapshotFile}`);
|
|
341
|
+
console.error(`[nexart] Error: Snapshot not found: ${snapshotFile}`);
|
|
246
342
|
process.exit(1);
|
|
247
343
|
}
|
|
248
344
|
const snapshot = JSON.parse(fs.readFileSync(snapshotFile, 'utf-8'));
|
|
249
345
|
if (snapshot.protocol !== 'nexart') {
|
|
250
|
-
console.error('Error: Invalid snapshot format');
|
|
346
|
+
console.error('[nexart] Error: Invalid snapshot format');
|
|
251
347
|
process.exit(1);
|
|
252
348
|
}
|
|
253
|
-
// Get code
|
|
254
349
|
let code;
|
|
255
350
|
if (options.code && fs.existsSync(options.code)) {
|
|
256
351
|
code = fs.readFileSync(options.code, 'utf-8');
|
|
@@ -261,12 +356,11 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
261
356
|
console.log(`[nexart] Using embedded code from snapshot`);
|
|
262
357
|
}
|
|
263
358
|
else {
|
|
264
|
-
console.error('Error: No code available for verification.');
|
|
265
|
-
console.error('Provide --code <file> or use a snapshot with embedded code.');
|
|
266
|
-
console.error('Hint: Use --include-code when running to embed code in snapshot.');
|
|
359
|
+
console.error('[nexart] Error: No code available for verification.');
|
|
360
|
+
console.error('[nexart] Provide --code <file> or use a snapshot with embedded code.');
|
|
361
|
+
console.error('[nexart] Hint: Use --include-code when running to embed code in snapshot.');
|
|
267
362
|
process.exit(1);
|
|
268
363
|
}
|
|
269
|
-
// Verify codeHash matches
|
|
270
364
|
const computedCodeHash = hashCode(code);
|
|
271
365
|
if (computedCodeHash !== snapshot.codeHash) {
|
|
272
366
|
console.error(`[nexart] Code hash mismatch!`);
|
|
@@ -278,9 +372,13 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
278
372
|
const expected = snapshot.outputHash;
|
|
279
373
|
let actual;
|
|
280
374
|
if (options.renderer === 'remote') {
|
|
375
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
281
376
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
377
|
+
if (options.apiKey) {
|
|
378
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
379
|
+
}
|
|
282
380
|
try {
|
|
283
|
-
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height);
|
|
381
|
+
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height, options.apiKey);
|
|
284
382
|
actual = sha256(result.pngBytes);
|
|
285
383
|
}
|
|
286
384
|
catch (error) {
|
|
@@ -290,6 +388,7 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
290
388
|
}
|
|
291
389
|
}
|
|
292
390
|
else {
|
|
391
|
+
console.log(`[nexart] WARNING: Local renderer NOT implemented — using placeholder hash`);
|
|
293
392
|
actual = sha256(createPlaceholderPng());
|
|
294
393
|
}
|
|
295
394
|
console.log(`[nexart] Expected: ${expected}`);
|
|
@@ -303,7 +402,13 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
303
402
|
process.exit(1);
|
|
304
403
|
}
|
|
305
404
|
}
|
|
306
|
-
|
|
405
|
+
const apiKeyOption = {
|
|
406
|
+
'api-key': {
|
|
407
|
+
describe: 'API key for authenticated remote rendering',
|
|
408
|
+
type: 'string',
|
|
409
|
+
default: DEFAULT_API_KEY,
|
|
410
|
+
},
|
|
411
|
+
};
|
|
307
412
|
yargs(hideBin(process.argv))
|
|
308
413
|
.command('run <file>', 'Execute a Code Mode sketch and create snapshot', (yargs) => {
|
|
309
414
|
return yargs
|
|
@@ -314,7 +419,7 @@ yargs(hideBin(process.argv))
|
|
|
314
419
|
})
|
|
315
420
|
.option('out', {
|
|
316
421
|
alias: 'o',
|
|
317
|
-
describe: 'Output PNG path',
|
|
422
|
+
describe: 'Output PNG file path (writes to current directory)',
|
|
318
423
|
type: 'string',
|
|
319
424
|
default: 'out.png',
|
|
320
425
|
})
|
|
@@ -332,17 +437,17 @@ yargs(hideBin(process.argv))
|
|
|
332
437
|
})
|
|
333
438
|
.option('width', {
|
|
334
439
|
alias: 'w',
|
|
335
|
-
describe: 'Canvas width',
|
|
440
|
+
describe: 'Canvas width (use default 1950 for canonical)',
|
|
336
441
|
type: 'number',
|
|
337
442
|
default: 1950,
|
|
338
443
|
})
|
|
339
444
|
.option('height', {
|
|
340
|
-
describe: 'Canvas height',
|
|
445
|
+
describe: 'Canvas height (use default 2400 for canonical)',
|
|
341
446
|
type: 'number',
|
|
342
447
|
default: 2400,
|
|
343
448
|
})
|
|
344
449
|
.option('renderer', {
|
|
345
|
-
describe: 'Renderer mode: remote (default
|
|
450
|
+
describe: 'Renderer mode: remote (default) or local (placeholder)',
|
|
346
451
|
choices: ['local', 'remote'],
|
|
347
452
|
default: 'remote',
|
|
348
453
|
})
|
|
@@ -351,6 +456,7 @@ yargs(hideBin(process.argv))
|
|
|
351
456
|
type: 'string',
|
|
352
457
|
default: DEFAULT_ENDPOINT,
|
|
353
458
|
})
|
|
459
|
+
.options(apiKeyOption)
|
|
354
460
|
.option('runtime-hash', {
|
|
355
461
|
describe: 'Override runtime hash (advanced)',
|
|
356
462
|
type: 'string',
|
|
@@ -359,7 +465,9 @@ yargs(hideBin(process.argv))
|
|
|
359
465
|
describe: 'Embed code in snapshot for standalone replay/verify',
|
|
360
466
|
type: 'boolean',
|
|
361
467
|
default: false,
|
|
362
|
-
})
|
|
468
|
+
})
|
|
469
|
+
.example('$0 run sketch.js --seed 123 --out ./out.png', 'Run sketch and write to ./out.png')
|
|
470
|
+
.example('$0 run sketch.js --seed 123 --include-code', 'Run and embed code in snapshot');
|
|
363
471
|
}, async (argv) => {
|
|
364
472
|
await runCommand(argv.file, {
|
|
365
473
|
out: argv.out,
|
|
@@ -369,6 +477,7 @@ yargs(hideBin(process.argv))
|
|
|
369
477
|
height: argv.height,
|
|
370
478
|
renderer: argv.renderer,
|
|
371
479
|
endpoint: argv.endpoint,
|
|
480
|
+
apiKey: argv['api-key'],
|
|
372
481
|
runtimeHash: argv['runtime-hash'],
|
|
373
482
|
includeCode: argv['include-code'],
|
|
374
483
|
});
|
|
@@ -382,7 +491,7 @@ yargs(hideBin(process.argv))
|
|
|
382
491
|
})
|
|
383
492
|
.option('out', {
|
|
384
493
|
alias: 'o',
|
|
385
|
-
describe: 'Output PNG path',
|
|
494
|
+
describe: 'Output PNG file path',
|
|
386
495
|
type: 'string',
|
|
387
496
|
default: 'replay.png',
|
|
388
497
|
})
|
|
@@ -400,13 +509,15 @@ yargs(hideBin(process.argv))
|
|
|
400
509
|
describe: 'Remote renderer endpoint URL',
|
|
401
510
|
type: 'string',
|
|
402
511
|
default: DEFAULT_ENDPOINT,
|
|
403
|
-
})
|
|
512
|
+
})
|
|
513
|
+
.options(apiKeyOption);
|
|
404
514
|
}, async (argv) => {
|
|
405
515
|
await replayCommand(argv.snapshot, {
|
|
406
516
|
out: argv.out,
|
|
407
517
|
code: argv.code,
|
|
408
518
|
renderer: argv.renderer,
|
|
409
519
|
endpoint: argv.endpoint,
|
|
520
|
+
apiKey: argv['api-key'],
|
|
410
521
|
});
|
|
411
522
|
})
|
|
412
523
|
.command('verify <snapshot>', 'Verify a snapshot produces the expected output', (yargs) => {
|
|
@@ -430,12 +541,14 @@ yargs(hideBin(process.argv))
|
|
|
430
541
|
describe: 'Remote renderer endpoint URL',
|
|
431
542
|
type: 'string',
|
|
432
543
|
default: DEFAULT_ENDPOINT,
|
|
433
|
-
})
|
|
544
|
+
})
|
|
545
|
+
.options(apiKeyOption);
|
|
434
546
|
}, async (argv) => {
|
|
435
547
|
await verifyCommand(argv.snapshot, {
|
|
436
548
|
code: argv.code,
|
|
437
549
|
renderer: argv.renderer,
|
|
438
550
|
endpoint: argv.endpoint,
|
|
551
|
+
apiKey: argv['api-key'],
|
|
439
552
|
});
|
|
440
553
|
})
|
|
441
554
|
.demandCommand(1, 'You must provide a command')
|
|
@@ -443,13 +556,23 @@ yargs(hideBin(process.argv))
|
|
|
443
556
|
.version(CLI_VERSION)
|
|
444
557
|
.epilog(`
|
|
445
558
|
Environment Variables:
|
|
446
|
-
NEXART_RENDERER_ENDPOINT
|
|
559
|
+
NEXART_RENDERER_ENDPOINT Remote renderer URL (default: http://localhost:5000)
|
|
560
|
+
NEXART_API_KEY API key for authenticated rendering
|
|
561
|
+
|
|
562
|
+
Output Files:
|
|
563
|
+
--out ./out.png creates:
|
|
564
|
+
./out.png - The rendered PNG image
|
|
565
|
+
./out.snapshot.json - Snapshot for replay/verify
|
|
447
566
|
|
|
448
567
|
Examples:
|
|
449
|
-
|
|
450
|
-
nexart
|
|
451
|
-
|
|
452
|
-
|
|
568
|
+
# Run with remote renderer
|
|
569
|
+
npx @nexart/cli run ./sketch.js --seed 123 --include-code --out ./out.png
|
|
570
|
+
|
|
571
|
+
# Verify output is deterministic
|
|
572
|
+
npx @nexart/cli verify ./out.snapshot.json
|
|
573
|
+
|
|
574
|
+
# Local mode (placeholder only)
|
|
575
|
+
npx @nexart/cli run ./sketch.js --renderer local --out ./out.png
|
|
453
576
|
`)
|
|
454
577
|
.parse();
|
|
455
578
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,uBAAuB,CAAC;AACzF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AA2BzD,SAAS,MAAM,CAAC,IAAqB;IACnC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,IAAe;IACnC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAA0B,EAAE,QAAgB;IAClE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,GAAG,gBAAgB,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,IAAqB;IACjE,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,4CAA4C,YAAY,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,IAAY,EACZ,IAAY,EACZ,GAAa,EACb,KAAa,EACb,MAAc,EACd,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,eAAe,EAAE,gBAAgB;KAClC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAoC;QAC/C,cAAc,EAAE,kBAAkB;QAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KAC1C,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAC5B;YACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,OAAO;SACR,EACD,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAEtD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;oBAClF,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBAC5E,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC5C,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC1D,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,iBAAiB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACrE,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;oBACnF,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1E,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACnD,OAAO;oBACT,CAAC;oBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC5D,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnC,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAWvC;IACC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;IAEnD,IAAI,QAAgB,CAAC;IACrB,IAAI,WAAmB,CAAC;IAExB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,OAAO,CAAC,MAAM,CACf,CAAC;YACF,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QACrG,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QAClC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAqB;QACjC,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE,gBAAgB;QACjC,OAAO,EAAE,WAAW;QACpB,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACzB,UAAU;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5F,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,4BAA4B,eAAe,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,OAMlD;IACC,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtF,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;QAChH,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnF,IAAI,QAAgB,CAAC;IAErB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,EACrB,QAAQ,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;YACF,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QACrG,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,OAKlD;IACC,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtF,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;IACrC,IAAI,MAAc,CAAC;IAEnB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,EACrB,QAAQ,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;QACzF,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;IAE5C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE;QACT,QAAQ,EAAE,4CAA4C;QACtD,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,eAAe;KACzB;CACF,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,OAAO,CACN,YAAY,EACZ,gDAAgD,EAChD,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK;SACT,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,yBAAyB;QACnC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,oDAAoD;QAC9D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC;KAChD,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,+CAA+C;QACzD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;KAC/B,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,+CAA+C;QACzD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,QAAQ,EAAE,gDAAgD;QAC1D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,wDAAwD;QAClE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAU;QACrC,OAAO,EAAE,QAAiB;KAC3B,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC;SACD,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,CAAC,cAAc,EAAE;QACtB,QAAQ,EAAE,kCAAkC;QAC5C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,QAAQ,EAAE,qDAAqD;QAC/D,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,OAAO,CAAC,6CAA6C,EAAE,mCAAmC,CAAC;SAC3F,OAAO,CAAC,4CAA4C,EAAE,gCAAgC,CAAC,CAAC;AAC7F,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,UAAU,CAAC,IAAI,CAAC,IAAc,EAAE;QACpC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvB,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;QACjC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KAClC,CAAC,CAAC;AACL,CAAC,CACF;KACA,OAAO,CACN,mBAAmB,EACnB,iCAAiC,EACjC,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK;SACT,UAAU,CAAC,UAAU,EAAE;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,YAAY;KACtB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAU;QACrC,OAAO,EAAE,QAAiB;KAC3B,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC;SACD,OAAO,CAAC,YAAY,CAAC,CAAC;AAC3B,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,aAAa,CAAC,IAAI,CAAC,QAAkB,EAAE;QAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;KACxB,CAAC,CAAC;AACL,CAAC,CACF;KACA,OAAO,CACN,mBAAmB,EACnB,gDAAgD,EAChD,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK;SACT,UAAU,CAAC,UAAU,EAAE;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAU;QACrC,OAAO,EAAE,QAAiB;KAC3B,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC;SACD,OAAO,CAAC,YAAY,CAAC,CAAC;AAC3B,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,aAAa,CAAC,IAAI,CAAC,QAAkB,EAAE;QAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;KACxB,CAAC,CAAC;AACL,CAAC,CACF;KACA,aAAa,CAAC,CAAC,EAAE,4BAA4B,CAAC;KAC9C,IAAI,EAAE;KACN,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC;;;;;;;;;;;;;;;;;;;GAmBP,CAAC;KACD,KAAK,EAAE,CAAC"}
|