@gobius/t3ctl 0.5.0 → 0.6.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 CHANGED
@@ -113,8 +113,48 @@ t3ctl warns you when:
113
113
  The token is optional so you can register a host before minting one, but reads
114
114
  will fail until you add it.
115
115
 
116
- The older `t3ctl host add <name> <origin> <token>` form still works and prints a
117
- deprecation notice.
116
+ ### `t3ctl host add <ssh-target> [--name <name>] [--ttl <duration>]`
117
+
118
+ Register a host given **only its ssh login** — no URL, no token, no port:
119
+
120
+ ```sh
121
+ t3ctl host add agent@goobles-agentbox
122
+ ```
123
+
124
+ That one command bootstraps the machine end to end:
125
+
126
+ 1. **Probes it over ssh** for a running T3 Code server. The server records its
127
+ port in `~/.t3/userdata/server-runtime.json` on the remote, so the port is
128
+ discovered, never assumed (it is 3773 or whatever free port the server fell
129
+ back to).
130
+ 2. **Installs the server if none is running** — `t3 service install`, T3 Code's
131
+ own per-user launchd/systemd service (no sudo; macOS and Linux). The exact
132
+ `t3` CLI version is resolved locally via npm (`latest`, falling back to
133
+ `nightly`); override with `--t3-version <version-or-tag>`. The remote npm
134
+ output streams past — a cold cache can download for a few minutes.
135
+ 3. **Mints a token for you** — `t3 auth session issue` on the remote, labeled
136
+ `t3ctl:<name>`, TTL 30d by default (`--ttl` changes it). The session id is
137
+ printed along with the exact revoke command for that host.
138
+ 4. **Tunnels to it** — an ssh ControlMaster forwards a local port to the remote
139
+ server (loopback-only by design; nothing is exposed on the remote's network).
140
+ The master outlives t3ctl, and every command silently rebuilds it when it
141
+ dies or the remote port changed.
142
+
143
+ Registering again for the same login is idempotent: it refreshes the tunnel and
144
+ reuses the stored token unless the login now lands on a *different machine*
145
+ (different `environmentId`), in which case a fresh token is minted.
146
+
147
+ Give it a name with `--name` (otherwise it is named after the remote's own
148
+ machine label, same as the origin form). Notes:
149
+
150
+ - `t3ctl host rm <name>` tears the tunnel down with the entry.
151
+ - **macOS remotes need someone logged in at the console** — a launchd agent
152
+ starts at login, so an ssh install with nobody logged in installs fine but
153
+ cannot start the server. Linux (systemd user service) has no such gap.
154
+ - If the remote lacks node for non-interactive shells, install Node there (a
155
+ version manager may need configuring for non-login shells); if a native
156
+ dependency fails to build, a C toolchain is missing (`build-essential` /
157
+ `gcc-c++` / `xcode-select --install`).
118
158
 
119
159
  ### `t3ctl host rm <name>`
120
160
 
@@ -255,6 +295,82 @@ t3ctl thread delete "scratch experiment"
255
295
 
256
296
  `delete` is not prompted and not undoable from t3ctl — check with `ls -t` first.
257
297
 
298
+ ### `t3ctl export prompts --since <date> [--until <date>]`
299
+
300
+ Every prompt you typed in a window, across every registered host, with the
301
+ project each one happened in. Read-only, and built for other tools to consume
302
+ rather than for reading yourself — time trackers, activity logs, weeknotes.
303
+
304
+ ```sh
305
+ t3ctl export prompts --since 2026-09-14 --until 2026-09-15
306
+ ```
307
+ ```
308
+ 29 prompts 2026-09-14T00:00:00.000Z -> 2026-09-15T00:00:00.000Z
309
+
310
+ agentbox 29 local state.sqlite
311
+ @clients/dsl 28
312
+ t3ctl 1
313
+ ```
314
+
315
+ | Option | |
316
+ |---|---|
317
+ | `--since <date>` | Required. Start of the window, inclusive. |
318
+ | `--until <date>` | End of the window, exclusive. Defaults to now. |
319
+ | `--host <name>` | Just this host. Defaults to all of them. |
320
+ | `--watch <path>` | Only projects under this root. Repeatable. Defaults to `~/Code`. |
321
+ | `--json` | The full records instead of the summary. |
322
+
323
+ A bare `YYYY-MM-DD` is a **UTC** day boundary, not local midnight — the stored
324
+ timestamps are UTC and an export should mean the same window wherever it runs.
325
+ Pass a full ISO instant (`2026-09-14T09:00:00+02:00`) when you want a different
326
+ edge. The window is half-open: `[since, until)`.
327
+
328
+ `--watch` is also the filter. A prompt in a project outside every watched root
329
+ is not exported, because it has no marker to file it under.
330
+
331
+ With `--json`:
332
+
333
+ ```json
334
+ {
335
+ "messages": [
336
+ {
337
+ "host": "agentbox",
338
+ "threadId": "f54ddbd8-92e1-402b-b228-a45e948e2f08",
339
+ "messageId": "8e7ea607-39db-4572-9373-92d3ac764bc7",
340
+ "createdAt": "2026-09-14T10:32:47.421Z",
341
+ "text": "which data is being fetched from /api/data?",
342
+ "workspaceRoot": "/home/agent/Code/@clients/dsl",
343
+ "marker": "@clients/dsl"
344
+ }
345
+ ],
346
+ "unreachable": []
347
+ }
348
+ ```
349
+
350
+ `text` is the prompt on one line: `<user_query>` wrappers removed, whitespace
351
+ collapsed. `marker` is the project path relative to the watched root it sits
352
+ under — prefixed with the host name for every host but the local one, since two
353
+ machines routinely hold the same repo at the same path.
354
+
355
+ A host that can't be read lands in `unreachable` and the rest still return, so
356
+ one asleep laptop doesn't cost you the export. The exit code is non-zero only
357
+ when *every* host failed.
358
+
359
+ #### How each host is read
360
+
361
+ Same rows either way; only the cost differs.
362
+
363
+ | Host | How | Cost |
364
+ |---|---|---|
365
+ | Origin on loopback | Reads `~/.t3/userdata/state.sqlite` directly | One query |
366
+ | Anything else | Snapshot, then one fetch per thread that could match | N+1 requests |
367
+
368
+ The snapshot is filtered by each thread's `updatedAt` before anything is
369
+ fetched, so a host with hundreds of idle threads still only requests the ones
370
+ active in the window. The database is in WAL mode, so reading it alongside a
371
+ running T3 Code is safe and needs no copy — which matters, because it runs to
372
+ hundreds of megabytes.
373
+
258
374
  ## Referring to projects and threads
259
375
 
260
376
  You rarely need to paste a UUID.
@@ -312,13 +428,17 @@ settled shows as `running`.
312
428
  t3ctl only ever stores an origin string, so **any transport that gives a host a
313
429
  reachable URL works.** There's nothing to configure beyond `host add`.
314
430
 
431
+ - **SSH login** — `t3ctl host add you@box` does everything: server install if
432
+ needed, token minting, and a managed tunnel (see its section above). Good for
433
+ hosts you don't want exposed at all.
315
434
  - **Tailscale** — on the host, `npx t3 serve --tailscale-serve` publishes it at
316
435
  `https://machine.tailnet.ts.net/`. Register that URL.
317
436
  - **LAN** — `npx t3 serve --host 0.0.0.0` (or a specific interface), then register
318
437
  `http://192.168.1.x:3773`. Read the URL `t3 serve` prints; it picks another port
319
438
  if the default is taken.
320
- - **SSH port-forward** — `ssh -N -L 3773:localhost:3773 you@box`, then register
321
- `http://localhost:3773`. Good for hosts you don't want exposed at all.
439
+ - **Manual SSH port-forward** — `ssh -N -L 3773:localhost:3773 you@box` in a
440
+ terminal you keep open, then register `http://localhost:3773`. The `host add
441
+ you@box` form automates exactly this and keeps the forward alive for you.
322
442
 
323
443
  **One token per host.** Tokens are issued by the server they belong to, so run
324
444
  `npx t3 auth session issue --label t3ctl --ttl 30d --token-only` on each machine
@@ -328,11 +448,12 @@ and give each host its own short name:
328
448
  t3ctl host add http://localhost:3773 eyJ2Ijox...
329
449
  t3ctl host add https://studio.tailnet-1234.ts.net eyJ2Ijox...
330
450
  t3ctl host add http://10.0.0.42:3773 eyJ2Ijox...
451
+ t3ctl host add you@elsewhere # token minted for you
331
452
  t3ctl ls -t
332
453
  ```
333
454
 
334
- `ls` then fans out to all three at once. Machines that are asleep or offline show
335
- up as `unreachable` and don't block the rest.
455
+ `ls` then fans out to all of them at once. Machines that are asleep or offline
456
+ show up as `unreachable` and don't block the rest.
336
457
 
337
458
  T3 Code's own **T3 Connect relay** (what the mobile app uses when you're off your
338
459
  tailnet) is **not planned**: the relay's `dpop-token` exchange only accepts a
@@ -349,14 +470,16 @@ Worth knowing before you build a workflow on this:
349
470
  and payloads can change without warning** and a T3 Code update may break t3ctl
350
471
  until it catches up.
351
472
  - **A host is only reachable while its T3 Code server is running.** t3ctl can't
352
- wake a machine, launch a server, or queue work for later. If the desktop app is
353
- closed and no `t3 serve` is running, that host is `unreachable`.
473
+ wake a machine or queue work for later. If the desktop app is closed and no
474
+ `t3 serve` is running, that host is `unreachable` — except an ssh-registered
475
+ host, whose boot service keeps a server running (on macOS only while someone
476
+ is logged in at that console).
354
477
  - **`thread create` doesn't run anything.** It leaves an idle thread with no
355
478
  messages — a state the desktop UI never produces. Follow it with `thread start`,
356
479
  or the thread just sits there.
357
480
  - **Not everything the API supports is wired up.** No `pin`, `unsettle`,
358
- `snooze`/`unsnooze`, no reading message content, no live tailing of a running
359
- turn. `unpin` exists without `pin` because only some of these share a payload
481
+ `snooze`/`unsnooze`, no live tailing of a running turn. `export prompts` reads
482
+ your own prompts; nothing reads agent output. `unpin` exists without `pin` because only some of these share a payload
360
483
  shape — see [CONTRIBUTING.md](CONTRIBUTING.md).
361
484
  - **`ls` fetches full snapshots.** Fine interactively; too heavy to poll in a
362
485
  loop.
package/dist/t3ctl.js CHANGED
@@ -2,7 +2,10 @@
2
2
  // t3ctl — a controller CLI for T3 Code hosts.
3
3
  // Peer of the mobile app: pairs once per host, then reads/controls remotely.
4
4
  // Spike scope: host registry + read-only listing.
5
+ import { spawnSync } from 'node:child_process';
6
+ import { createHash } from 'node:crypto';
5
7
  import fs from 'node:fs';
8
+ import net from 'node:net';
6
9
  import { Command } from 'commander';
7
10
  import os from 'node:os';
8
11
  import path from 'node:path';
@@ -18,6 +21,7 @@ const writeHosts = (hosts) => {
18
21
  fs.writeFileSync(HOSTS_FILE, JSON.stringify({ hosts }, null, 2), { mode: 0o600 });
19
22
  };
20
23
  const snapshot = async (host) => {
24
+ await ensureTunnel(host);
21
25
  const res = await fetch(`${host.origin}/api/orchestration/snapshot`, {
22
26
  headers: host.token ? { authorization: `Bearer ${host.token}` } : {},
23
27
  signal: AbortSignal.timeout(host.timeoutMs ?? 15000),
@@ -214,6 +218,7 @@ const cmdHostAdd = async (pos, flags, hosts) => {
214
218
  const cmdHostsList = async (hosts) => {
215
219
  if (!hosts.length)
216
220
  return console.log('(no hosts)');
221
+ await Promise.allSettled(hosts.filter((h) => h.ssh).map((h) => ensureTunnel(h)));
217
222
  const probes = await Promise.allSettled(hosts.map((h) => probe(h.origin)));
218
223
  const drifted = [];
219
224
  hosts.forEach((h, i) => {
@@ -228,7 +233,8 @@ const cmdHostsList = async (hosts) => {
228
233
  // Values for an unreachable host are whatever was last stored, so dim the
229
234
  // whole row to keep remembered data visually distinct from probed data.
230
235
  const cell = (text, width) => (live ? text.padEnd(width) : dim(text.padEnd(width)));
231
- console.log(`${icon} ${live ? bold(h.name.padEnd(14)) : dim(h.name.padEnd(14))} ${cell(label, 18)} ${dim(env.padEnd(9))} ${cell(version, 28)} ${dim(h.origin)}` +
236
+ const where = dim(h.ssh ? `${h.ssh} -> ${h.origin}` : h.origin);
237
+ console.log(`${icon} ${live ? bold(h.name.padEnd(14)) : dim(h.name.padEnd(14))} ${cell(label, 18)} ${dim(env.padEnd(9))} ${cell(version, 28)} ${where}` +
232
238
  (live || !p || p.status !== 'rejected' ? '' : ` ${dim(errorMessage(p.reason))}`));
233
239
  });
234
240
  for (const { h, live } of drifted) {
@@ -236,6 +242,363 @@ const cmdHostsList = async (hosts) => {
236
242
  ` was ${h.environmentId} (${h.label ?? 'unknown'})\n now ${live.environmentId} (${live.label})`);
237
243
  }
238
244
  };
245
+ // ---- ssh hosts ----------------------------------------------------------
246
+ // `t3ctl host add agent@box` fully bootstraps a remote T3 Code host: detect a
247
+ // running server, install the boot service if none, mint a token, and keep a
248
+ // local ssh port-forward alive. Three properties of T3 Code make "just an ssh
249
+ // login" enough:
250
+ // * the server records {pid, port} in ~/.t3/userdata/server-runtime.json, so
251
+ // the port is discoverable, never hardcoded (3773 or an ephemeral fallback,
252
+ // rewritten on every start);
253
+ // * `t3 auth session issue` mints a bearer token filesystem-locally — no HTTP,
254
+ // no --port — valid for the already-running server sharing ~/.t3, so t3ctl
255
+ // can mint its own token over ssh;
256
+ // * `t3 service install` is per-user launchd/systemd (no sudo, macOS/Linux).
257
+ // Remote shell scripts pass data back on stdout as lines starting with a
258
+ // marker, parsed bottom-up: `t3 auth` can leak Effect error logs onto stdout
259
+ // (the desktop's own SSH path parses the same way, tunnel.ts:791).
260
+ // npm package is literally `t3`; exact versions are pinned because the boot
261
+ // service installs that same version into its pinned runtime.
262
+ const SSH_READY_MS = 90_000; // server readiness after install (npm download can be slow)
263
+ const TUNNEL_WAIT_MS = 30_000; // ssh auth may prompt interactively; give it time
264
+ const PROBE_MS = 2500; // liveness probe of the local tunnel end
265
+ const T3_PACKAGE = 't3';
266
+ const SSH_SCRIPT = `set -eu
267
+ # PATH discovery for NON-INTERACTIVE ssh shells, trimmed from T3 Code's own
268
+ # remote runner (packages/ssh/src/tunnel.ts REMOTE_NODE_ENV_SCRIPT): plain PATH
269
+ # additions, version-manager shims, nvm. Engine checks and the "prefer installed
270
+ # t3" branch are dropped on purpose — t3ctl pins an exact version and runs npx.
271
+ prepend_path_if_dir() {
272
+ if [ -d "$1" ]; then
273
+ case ":$PATH:" in
274
+ *":$1:"*) ;;
275
+ *) PATH="$1:$PATH" ;;
276
+ esac
277
+ fi
278
+ }
279
+ ensure_node_path() {
280
+ command -v node >/dev/null 2>&1 && return 0
281
+ prepend_path_if_dir "$HOME/.local/bin"
282
+ prepend_path_if_dir "$HOME/bin"
283
+ prepend_path_if_dir "/opt/homebrew/bin"
284
+ prepend_path_if_dir "/usr/local/bin"
285
+ prepend_path_if_dir "/usr/bin"
286
+ prepend_path_if_dir "/bin"
287
+ if [ -z "\${VOLTA_HOME:-}" ]; then VOLTA_HOME="$HOME/.volta"; fi
288
+ prepend_path_if_dir "$VOLTA_HOME/bin"
289
+ prepend_path_if_dir "$HOME/.asdf/shims"
290
+ prepend_path_if_dir "$HOME/.asdf/bin"
291
+ if [ ! -x "$HOME/.asdf/shims/node" ] && [ -s "$HOME/.asdf/asdf.sh" ]; then . "$HOME/.asdf/asdf.sh"; fi
292
+ prepend_path_if_dir "$HOME/.local/share/mise/shims"
293
+ prepend_path_if_dir "$HOME/.mise/shims"
294
+ if ! command -v node >/dev/null 2>&1 && command -v mise >/dev/null 2>&1; then eval "$(mise activate sh)" >/dev/null 2>&1 || true; fi
295
+ if [ -z "\${FNM_DIR:-}" ]; then FNM_DIR="$HOME/.local/share/fnm"; fi
296
+ prepend_path_if_dir "$FNM_DIR"
297
+ prepend_path_if_dir "$HOME/.fnm"
298
+ if ! command -v node >/dev/null 2>&1 && command -v fnm >/dev/null 2>&1; then
299
+ eval "$(fnm env --shell bash)" >/dev/null 2>&1 || true
300
+ fnm use --silent-if-unchanged >/dev/null 2>&1 || fnm use default >/dev/null 2>&1 || true
301
+ fi
302
+ prepend_path_if_dir "$HOME/.nodenv/bin"
303
+ prepend_path_if_dir "$HOME/.nodenv/shims"
304
+ if ! command -v node >/dev/null 2>&1 && command -v nodenv >/dev/null 2>&1; then eval "$(nodenv init -)" >/dev/null 2>&1 || true; fi
305
+ if [ -z "\${NVM_DIR:-}" ]; then NVM_DIR="$HOME/.nvm"; fi
306
+ if [ -s "$NVM_DIR/nvm.sh" ]; then
307
+ . "$NVM_DIR/nvm.sh"
308
+ if ! command -v node >/dev/null 2>&1 && command -v nvm >/dev/null 2>&1; then
309
+ nvm use --silent default >/dev/null 2>&1 || nvm use --silent node >/dev/null 2>&1 || nvm use --silent --lts >/dev/null 2>&1 || true
310
+ fi
311
+ fi
312
+ if ! command -v node >/dev/null 2>&1 && [ -d "$NVM_DIR/versions/node" ]; then
313
+ for NODE_BIN in "$NVM_DIR"/versions/node/*/bin; do
314
+ if [ -x "$NODE_BIN/node" ]; then PATH="$NODE_BIN:$PATH"; fi
315
+ done
316
+ fi
317
+ command -v node >/dev/null 2>&1
318
+ }
319
+ # npm extracts a package before running its deps' native builds; a failed
320
+ # node-pty build leaves the npx cache WITHOUT a t3 bin while \`npx --yes\` still
321
+ # exits 0 (same guard as T3 Code's require_installed_t3_cli). Resolve up front
322
+ # so the failure is reported here, with npm's own output on stderr.
323
+ require_t3_cli() {
324
+ T3_CLI_PATH="$(npx --yes --package t3@"$1" -- sh -c 'command -v t3' 2>/dev/null || true)"
325
+ if [ -n "$T3_CLI_PATH" ]; then return 0; fi
326
+ printf 'npm installed t3@"%s" but produced no t3 executable — usually a native dependency (node-pty) failed to build. Install a C toolchain on this host (Debian/Ubuntu: build-essential, Fedora/RHEL: gcc-c++ make, macOS: xcode-select --install) and retry.\\n' "$1" >&2
327
+ return 1
328
+ }
329
+ # detect: is there a T3 Code server running on this machine? The runtime file is
330
+ # rewritten on every server start and cleared on shutdown, so its pid is
331
+ # checked before its port is trusted (stale file, reused port).
332
+ RUNTIME_JSON="$HOME/.t3/userdata/server-runtime.json"
333
+ detect() {
334
+ if ! ensure_node_path; then
335
+ printf 'T3CTL {"node":false}\\n'
336
+ return 0
337
+ fi
338
+ node - "$RUNTIME_JSON" <<'NODE'
339
+ const fs = require('node:fs');
340
+ try {
341
+ const r = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
342
+ const pid = Number(r.pid), port = Number(r.port);
343
+ if (!Number.isInteger(pid) || pid <= 0 || !Number.isInteger(port)) throw 0;
344
+ const origin = new URL(String(r.origin ?? ''));
345
+ if (origin.protocol !== 'http:' || !['127.0.0.1', 'localhost'].includes(origin.hostname)) throw 0;
346
+ process.kill(pid, 0);
347
+ process.stdout.write('T3CTL {"running":true,"port":' + port + '}\\n');
348
+ } catch {
349
+ process.stdout.write('T3CTL {"running":false}\\n');
350
+ }
351
+ NODE
352
+ }
353
+ case "$1" in
354
+ detect) detect ;;
355
+ install)
356
+ ensure_node_path || { printf 'no node on this machine — install Node 22+ (non-interactive shells may need a version manager configured)\\n' >&2; exit 1; }
357
+ require_t3_cli "$2" || exit 1
358
+ exec npx --yes --package t3@"$2" t3 service install
359
+ ;;
360
+ token)
361
+ ensure_node_path || { printf 'no node on this machine\\n' >&2; exit 1; }
362
+ require_t3_cli "$2" || exit 1
363
+ exec npx --yes --package t3@"$2" t3 auth session issue --json --label "$3" --ttl "$4"
364
+ ;;
365
+ *) printf 'unknown op: %s\\n' "$1" >&2; exit 2 ;;
366
+ esac
367
+ `;
368
+ const sshRun = (target, args, { streamStderr = false } = {}) => {
369
+ const res = spawnSync('ssh', ['-o', 'ConnectTimeout=15', target, 'sh', '-s', '--', ...args], {
370
+ input: SSH_SCRIPT,
371
+ encoding: 'utf8',
372
+ maxBuffer: 8 * 1024 * 1024,
373
+ stdio: streamStderr ? ['pipe', 'pipe', 'inherit'] : 'pipe',
374
+ });
375
+ if (res.error?.code === 'ENOENT')
376
+ throw new Error('ssh not found locally');
377
+ return { status: res.status ?? 1, stdout: String(res.stdout ?? ''), stderr: String(res.stderr ?? '') };
378
+ };
379
+ // Bottom-up scan for the last T3CTL JSON marker — immune to npm chatter above it.
380
+ const sshDetect = (target) => {
381
+ const res = sshRun(target, ['detect']);
382
+ if (res.status !== 0)
383
+ throw new Error(`ssh to ${target} failed (exit ${res.status})${res.stderr.trim() ? `: ${res.stderr.trim().split('\n').slice(-2).join('\n')}` : ''}`);
384
+ const line = res.stdout.split('\n').reverse().find((l) => l.startsWith('T3CTL {'));
385
+ if (!line)
386
+ throw new Error(`detect on ${target} produced no answer`);
387
+ return JSON.parse(line.slice('T3CTL '.length));
388
+ };
389
+ const sshToken = (target, version, label, ttl) => {
390
+ // First run downloads t3@<version> into the remote npx cache — minutes with
391
+ // nothing to show unless npm's progress on stderr streams through.
392
+ const res = sshRun(target, ['token', version, label, ttl], { streamStderr: true });
393
+ if (res.status !== 0)
394
+ throw new Error(`token minting failed on ${target}${res.stderr.trim() ? `: ${res.stderr.trim().split('\n').slice(-3).join('\n')}` : ''}`);
395
+ // The session JSON is pretty-printed over many lines and stray Effect error
396
+ // lines can precede it, so accumulate bottom-up until an object with a token
397
+ // field parses — the token is the only reliable anchor.
398
+ const lines = res.stdout.split('\n').filter((l) => l.trim() !== '');
399
+ let buf = '';
400
+ for (let i = lines.length - 1; i >= 0; i--) {
401
+ buf = `${lines[i]}\n${buf}`;
402
+ try {
403
+ const parsed = JSON.parse(buf);
404
+ if (typeof parsed.token === 'string' && parsed.token)
405
+ return { token: parsed.token, sessionId: parsed.sessionId };
406
+ }
407
+ catch { /* keep accumulating */ }
408
+ }
409
+ throw new Error(`no token in output from ${target}`);
410
+ };
411
+ // --t3-version wins; else ask npm locally for the exact latest, nightly only as
412
+ // a fallback. An exact version is required by the boot service's pinned runtime.
413
+ const resolveT3Version = (flags) => {
414
+ if (flags['t3-version'])
415
+ return flags['t3-version'];
416
+ if (spawnSync('npm', ['--version'], { stdio: 'ignore' }).status !== 0) {
417
+ throw new Error('npm not found locally — install npm or pass --t3-version <version-or-tag>');
418
+ }
419
+ const res = spawnSync('npm', ['view', `${T3_PACKAGE}@latest`, 'version'], { encoding: 'utf8' });
420
+ if (res.status === 0 && res.stdout.trim())
421
+ return res.stdout.trim();
422
+ const nightly = spawnSync('npm', ['view', `${T3_PACKAGE}@nightly`, 'version'], { encoding: 'utf8' });
423
+ if (nightly.status === 0 && nightly.stdout.trim())
424
+ return nightly.stdout.trim();
425
+ throw new Error(`cannot resolve a t3 CLI version via npm — pass --t3-version (tried: ${res.stderr?.trim().split('\n')[0] ?? 'npm failed'})`);
426
+ };
427
+ const freePort = async () =>
428
+ // TOCTOU between this probe and ssh binding the port is real; ExitOnForwardFailure
429
+ // turns the loss into a nonzero ssh exit, which spawnMaster retries on.
430
+ new Promise((resolve, reject) => {
431
+ const s = net.createServer();
432
+ s.listen(0, '127.0.0.1', () => {
433
+ const p = s.address();
434
+ s.close(() => resolve(p && typeof p === 'object' ? p.port : 0));
435
+ });
436
+ s.on('error', reject);
437
+ });
438
+ const ctlPath = (target, port) => path.join(CONFIG_DIR, `ssh-${createHash('sha256').update(`${target}:${port ?? ''}`).digest('hex').slice(0, 12)}`);
439
+ // ssh -fN + ControlPersist=yes keeps the master alive after t3ctl exits
440
+ // (ssh_config(5)); -f with ExitOnForwardFailure=yes means a clean return from
441
+ // spawnSync implies the local listener exists. stderr stays visible so
442
+ // passphrase prompts (ssh opens /dev/tty itself) and bind errors surface.
443
+ const spawnMaster = async (ssh, sshRemotePort) => {
444
+ for (let attempt = 0; attempt < 3; attempt++) {
445
+ const port = await freePort();
446
+ const res = spawnSync('ssh', [
447
+ '-M', '-S', ctlPath(ssh, port), '-fN',
448
+ '-o', 'ConnectTimeout=15', '-o', 'ControlPersist=yes',
449
+ '-o', 'ExitOnForwardFailure=yes', '-o', 'ServerAliveInterval=15',
450
+ '-o', 'StrictHostKeyChecking=accept-new',
451
+ '-L', `${port}:127.0.0.1:${sshRemotePort}`, ssh,
452
+ ], { stdio: ['ignore', 'ignore', 'inherit'] });
453
+ if (res.status === 0)
454
+ return port;
455
+ if (res.error?.code === 'ENOENT')
456
+ throw new Error('ssh not found locally');
457
+ }
458
+ throw new Error(`could not establish the ssh tunnel to ${ssh} (3 attempts)`);
459
+ };
460
+ const waitForOrigin = async (origin, deadline) => {
461
+ while (Date.now() < deadline) {
462
+ if (await probe(origin, PROBE_MS).then(() => true, () => false))
463
+ return true;
464
+ await new Promise((r) => setTimeout(r, 1000));
465
+ }
466
+ return false;
467
+ };
468
+ // Single-flight per host name: cmdLs fans out concurrently and every write
469
+ // command re-enters here.
470
+ const tunnelJobs = new Map();
471
+ const ensureTunnel = (host) => {
472
+ if (!host.ssh)
473
+ return Promise.resolve();
474
+ const inFlight = tunnelJobs.get(host.name);
475
+ if (inFlight)
476
+ return inFlight;
477
+ const job = (async () => {
478
+ const target = host.ssh; // captured: TS cannot narrow the optional inside the closure
479
+ if (!target)
480
+ return;
481
+ // Liveness is the HTTP probe, never `ssh -O check` — a live master does not
482
+ // prove the forward works, and the remote port can change on server restart.
483
+ if (await probe(host.origin, PROBE_MS).then(() => true, () => false))
484
+ return;
485
+ spawnSync('ssh', ['-O', 'exit', '-S', ctlPath(target, host.sshLocalPort), target], { stdio: 'ignore' });
486
+ const detect = sshDetect(target);
487
+ if (!detect.running)
488
+ throw new Error(`${target}: no T3 Code server is running — rerun: t3ctl host add ${target}`);
489
+ // Re-pick the local port if something else grabbed it; the origin changes
490
+ // with it, so persist both.
491
+ const localPort = await spawnMaster(target, detect.port ?? 3773);
492
+ const origin = `http://127.0.0.1:${localPort}`;
493
+ writeHosts(readHosts().map((h) => h.name === host.name ? { ...h, sshLocalPort: localPort, sshRemotePort: detect.port ?? 3773, origin } : h));
494
+ if (!(await waitForOrigin(origin, Date.now() + TUNNEL_WAIT_MS))) {
495
+ throw new Error(`${host.ssh}: the ssh tunnel is up but ${origin} is not answering (is the server still running on the remote port?)`);
496
+ }
497
+ })().finally(() => tunnelJobs.delete(host.name));
498
+ tunnelJobs.set(host.name, job);
499
+ return job;
500
+ };
501
+ // `t3ctl host add agent@box` — the full bootstrap. Idempotent: rerunning
502
+ // refreshes the tunnel and keeps the stored token unless the machine behind
503
+ // the login changed (different environmentId).
504
+ const cmdHostAddSsh = async (target, flags, hosts) => {
505
+ const version = resolveT3Version(flags);
506
+ console.log(`probing ${bold(target)} over ssh`);
507
+ let detect = sshDetect(target);
508
+ if (detect.node === false) {
509
+ throw new Error(`${target} has no node on PATH for non-interactive ssh — install Node 22+ there (a version manager may need configuring for non-login shells)`);
510
+ }
511
+ if (!detect.running) {
512
+ console.log(`no T3 Code server on ${target} — installing the t3 boot service (t3@${version})`);
513
+ console.log(dim(` this downloads packages on ${target} and can take a few minutes; its output follows`));
514
+ // No timeout: t3code itself allows 10 minutes for the pinned-runtime npm
515
+ // install, and the user watches the output stream by.
516
+ const res = sshRun(target, ['install', version], { streamStderr: true });
517
+ if (res.status !== 0)
518
+ throw new Error(`t3 service install failed on ${target} (exit ${res.status})`);
519
+ const deadline = Date.now() + SSH_READY_MS;
520
+ let ready = null;
521
+ while (Date.now() < deadline) {
522
+ await new Promise((r) => setTimeout(r, 3000));
523
+ try {
524
+ ready = await sshDetect(target);
525
+ if (ready.running)
526
+ break;
527
+ }
528
+ catch { /* transient ssh hiccups while the service boots */ }
529
+ }
530
+ if (!ready?.running) {
531
+ // Nothing is written to the registry — the origin is not proven yet
532
+ // (probe-first discipline). A tunnel master is only spawned after the
533
+ // probe below, so there is nothing to clean up here either.
534
+ usage(`the boot service was installed on ${target} but no server became ready within ${SSH_READY_MS / 1000}s.\n` +
535
+ ` Check its service log on ${target}: ~/.t3/userdata/logs/boot-service.log\n` +
536
+ ` On a Mac this usually means nobody is logged in at that console — a launchd\n` +
537
+ ` agent starts at login, and an ssh install alone cannot start it.\n` +
538
+ ` Rerunning t3ctl host add ${target} is safe once the server is up.`);
539
+ return;
540
+ }
541
+ detect = ready;
542
+ }
543
+ // The stored local port may be taken by now; spawnMaster retries with fresh
544
+ // ports and returns whichever won.
545
+ const existing = hosts.find((h) => h.ssh === target);
546
+ const localPort = await spawnMaster(target, detect.port ?? 3773);
547
+ const origin = `http://127.0.0.1:${localPort}`;
548
+ try {
549
+ if (!(await waitForOrigin(origin, Date.now() + TUNNEL_WAIT_MS))) {
550
+ throw new Error(`the tunnel is up but ${origin} is not answering — is the server listening on 127.0.0.1:${detect.port ?? 3773} on ${target}?`);
551
+ }
552
+ const descriptor = await probe(origin);
553
+ // A changed environmentId on a known login means it now lands on a
554
+ // different machine — same warning as a changed origin, same consequence.
555
+ if (existing?.environmentId && existing.environmentId !== descriptor.environmentId) {
556
+ warn(`${target} is now a DIFFERENT environment\n` +
557
+ ` was ${existing.environmentId} (${existing.label ?? 'unknown'})\n` +
558
+ ` now ${descriptor.environmentId} (${descriptor.label})\n` +
559
+ ` the token stored for "${existing.name}" was issued by the old one and will be replaced`);
560
+ }
561
+ const name = flags.name ?? existing?.name ?? uniqueName(slugify(descriptor.label), hosts);
562
+ let token = existing?.token ?? null;
563
+ let session = null;
564
+ if (!token || (existing?.environmentId && existing.environmentId !== descriptor.environmentId)) {
565
+ const issued = sshToken(target, version, `t3ctl:${name}`, flags.ttl ?? '30d');
566
+ token = issued.token;
567
+ session = issued;
568
+ }
569
+ const others = hosts.filter((h) => h.name !== name && h.origin !== origin && h.serverVersion);
570
+ const skewed = [...new Set(others.flatMap((h) => (h.serverVersion ? [h.serverVersion] : [])))]
571
+ .filter((v) => v !== descriptor.serverVersion);
572
+ if (skewed.length)
573
+ warn(`serverVersion ${descriptor.serverVersion} differs from other hosts: ${skewed.join(', ')}`);
574
+ // A master on a superseded local port would linger forever otherwise.
575
+ if (existing?.sshLocalPort && existing.sshLocalPort !== localPort) {
576
+ spawnSync('ssh', ['-O', 'exit', '-S', ctlPath(target, existing.sshLocalPort), target], { stdio: 'ignore' });
577
+ }
578
+ writeHosts(hosts.filter((h) => h.name !== name && h.ssh !== target).concat({
579
+ name, origin, token,
580
+ environmentId: descriptor.environmentId,
581
+ label: descriptor.label,
582
+ serverVersion: descriptor.serverVersion,
583
+ ssh: target, sshLocalPort: localPort, sshRemotePort: detect.port ?? 3773, t3Version: version,
584
+ }));
585
+ console.log(`added ${bold(name)} -> ${origin} (via ssh)\n label ${descriptor.label}\n` +
586
+ ` env ${descriptor.environmentId}\n version ${descriptor.serverVersion}\n` +
587
+ ` tunnel 127.0.0.1:${localPort} -> 127.0.0.1:${detect.port ?? 3773} on ${target}`);
588
+ if (session) {
589
+ console.log(` session ${session.sessionId ?? '?'} (label t3ctl:${name})\n` +
590
+ ` revoke on ${target} with: npx t3 auth session revoke ${session.sessionId ?? '?'}`);
591
+ }
592
+ else {
593
+ console.log(' token reusing the stored session');
594
+ }
595
+ }
596
+ catch (error) {
597
+ // Keep no half-registered host: the master would outlive t3ctl otherwise.
598
+ spawnSync('ssh', ['-O', 'exit', '-S', ctlPath(target, localPort), target], { stdio: 'ignore' });
599
+ throw error;
600
+ }
601
+ };
239
602
  // ---- writes -------------------------------------------------------------
240
603
  // Commands are dispatched directly (no envelope). The CLIENT mints every id;
241
604
  // commandId is the idempotency key, so retries are safe.
@@ -258,6 +621,7 @@ const pickHost = (flags) => {
258
621
  return only;
259
622
  };
260
623
  const dispatch = async (host, command) => {
624
+ await ensureTunnel(host);
261
625
  const res = await fetch(`${host.origin}/api/orchestration/dispatch`, {
262
626
  method: 'POST',
263
627
  headers: { ...(host.token ? { authorization: `Bearer ${host.token}` } : {}), 'content-type': 'application/json' },
@@ -338,8 +702,12 @@ const cmdThreadRename = async (thread, host, title) => {
338
702
  };
339
703
  // Lighter than the full snapshot; retitle polls this so it does not refetch every
340
704
  // thread's history once a second.
341
- const threadDetail = async (host, threadId) => {
342
- const res = await fetch(`${host.origin}/api/orchestration/threads/${threadId}?turnLimit=1`, {
705
+ // `turnLimit` is null for callers that want the whole history (export), 1 for
706
+ // callers that only want to poll a field (retitle).
707
+ const threadDetail = async (host, threadId, turnLimit = 1) => {
708
+ await ensureTunnel(host);
709
+ const query = turnLimit === null ? '' : `?turnLimit=${turnLimit}`;
710
+ const res = await fetch(`${host.origin}/api/orchestration/threads/${threadId}${query}`, {
343
711
  headers: { authorization: `Bearer ${host.token}` },
344
712
  signal: AbortSignal.timeout(host.timeoutMs ?? 15000),
345
713
  });
@@ -425,6 +793,256 @@ const cmdThreadSimple = async (verb, ref, flags) => {
425
793
  });
426
794
  console.log(`${verb}d ${bold(thread.title || thread.id)}\n id ${thread.id}\n seq ${sequence}`);
427
795
  };
796
+ const STRATEGY_LABEL = {
797
+ sqlite: 'local state.sqlite',
798
+ http: 'snapshot + per-thread fetch',
799
+ };
800
+ /** Fixed by T3 Code. Read relative to whichever machine's home directory applies. */
801
+ const STATE_DB = '.t3/userdata/state.sqlite';
802
+ const expandHome = (p) => path.resolve(p.replace(/^~(?=$|\/)/, os.homedir()));
803
+ /**
804
+ * Where a prompt happened, named the way a human would: the workspace path made
805
+ * relative to the watched root it sits under. Longest matching root wins, so
806
+ * `~/Code` and `~/Code/@clients` both configured gives `afa`, not `@clients/afa`.
807
+ * A workspace under no watched root has no marker and the prompt is dropped.
808
+ */
809
+ const markerForWorkspace = (workspaceRoot, watched) => {
810
+ const ws = workspaceRoot.replace(/\/+$/, '');
811
+ let best = null;
812
+ let bestLen = -1;
813
+ for (const root of watched) {
814
+ const r = root.replace(/\/+$/, '');
815
+ if (ws === r)
816
+ return ws.split('/').pop() ?? ws;
817
+ if (ws.startsWith(`${r}/`) && r.length > bestLen) {
818
+ best = ws.slice(r.length + 1);
819
+ bestLen = r.length;
820
+ }
821
+ }
822
+ return best;
823
+ };
824
+ /**
825
+ * Prompts arrive with the harness's wrapping still on them. Mirrors
826
+ * `cleanPrompt` in spr-time-entrier, which is the consumer this shape is for:
827
+ * unwrap `<user_query>` when present, then collapse whitespace to one line.
828
+ */
829
+ const cleanPrompt = (text) => {
830
+ const tagged = text.match(/<user_query>\s*([\s\S]*?)\s*<\/user_query>/);
831
+ return (tagged?.[1] ?? text).replace(/\s+/g, ' ').trim();
832
+ };
833
+ // One statement, shared by every strategy that reads the local store directly,
834
+ // so it cannot drift from what the HTTP path reconstructs.
835
+ const PROMPT_SQL = `SELECT m.message_id, m.thread_id, m.text, m.created_at, p.workspace_root
836
+ FROM projection_thread_messages m
837
+ JOIN projection_threads t ON t.thread_id = m.thread_id
838
+ JOIN projection_projects p ON p.project_id = t.project_id
839
+ WHERE m.role = 'user'
840
+ AND t.deleted_at IS NULL
841
+ AND p.deleted_at IS NULL
842
+ AND m.created_at >= ? AND m.created_at < ?
843
+ ORDER BY m.created_at`;
844
+ /**
845
+ * A bare `--since 2026-09-14` is the UTC day boundary, not local midnight: the
846
+ * rows being filtered are UTC, and an export should describe the same window
847
+ * whichever machine runs it. Anything else is handed to `Date` as written.
848
+ */
849
+ const isoBound = (value, flag) => {
850
+ const raw = /^\d{4}-\d{2}-\d{2}$/.test(value) ? `${value}T00:00:00.000Z` : value;
851
+ const at = new Date(raw);
852
+ if (Number.isNaN(at.getTime()))
853
+ throw new Error(`${flag}: not a date I can read: ${value}`);
854
+ return at.toISOString();
855
+ };
856
+ /**
857
+ * node:sqlite arrived in Node 22.5 behind `--experimental-sqlite`. Current
858
+ * releases have it unflagged (verified on 22.23 and 24), but `engines` allows
859
+ * `>=22`, which still admits the flagged ones. Importing it lazily means only
860
+ * this command fails there, instead of the whole CLI failing to start.
861
+ */
862
+ const loadSqlite = async () => {
863
+ try {
864
+ return (await import('node:sqlite')).DatabaseSync;
865
+ }
866
+ catch {
867
+ throw new Error('reading state.sqlite needs node:sqlite — upgrade to Node >= 22.13, or pass --experimental-sqlite on 22.5-22.12');
868
+ }
869
+ };
870
+ const queryLocal = async (since, until) => {
871
+ const file = path.join(os.homedir(), STATE_DB);
872
+ if (!fs.existsSync(file))
873
+ throw new Error(`no T3 Code database at ${file}`);
874
+ const DatabaseSync = await loadSqlite();
875
+ // The database is in WAL mode, so this reader neither blocks the running app
876
+ // nor is blocked by it, and no copy is needed — it is ~500 MB.
877
+ const db = new DatabaseSync(file, { readOnly: true });
878
+ try {
879
+ return db.prepare(PROMPT_SQL).all(since, until);
880
+ }
881
+ finally {
882
+ db.close();
883
+ }
884
+ };
885
+ /** `Date.parse` returns NaN for junk and for null; both mean "cannot compare". */
886
+ const instant = (value) => {
887
+ const t = value ? Date.parse(value) : Number.NaN;
888
+ return Number.isNaN(t) ? null : t;
889
+ };
890
+ /**
891
+ * Which threads are worth a request. `updatedAt` moves with every new message,
892
+ * so a thread untouched since the window opened cannot hold one, and a thread
893
+ * created after it closed cannot either. Anything unknown is fetched.
894
+ */
895
+ const mayHavePrompts = (t, since, until) => {
896
+ if (t.deletedAt)
897
+ return false;
898
+ const updated = instant(t.updatedAt);
899
+ if (updated !== null && updated < since)
900
+ return false;
901
+ const created = instant(t.createdAt);
902
+ if (created !== null && created >= until)
903
+ return false;
904
+ return true;
905
+ };
906
+ /** Bounded fan-out: a host with 200 live threads should not get 200 sockets at once. */
907
+ const mapPool = async (items, limit, fn) => {
908
+ const out = new Array(items.length);
909
+ // Every worker pulls from the same iterator, so each entry goes to exactly one
910
+ // of them and the last to finish is the last item, not the last worker.
911
+ const queue = items.entries();
912
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, async () => {
913
+ for (const [i, item] of queue)
914
+ out[i] = await fn(item);
915
+ }));
916
+ return out;
917
+ };
918
+ const queryOverHttp = async (host, since, until) => {
919
+ const snap = await snapshot(host);
920
+ const roots = new Map(snap.projects.filter((p) => !p.deletedAt).map((p) => [p.id, p.workspaceRoot]));
921
+ const from = Date.parse(since);
922
+ const to = Date.parse(until);
923
+ const threads = snap.threads.filter((t) => roots.has(t.projectId) && mayHavePrompts(t, from, to));
924
+ const perThread = await mapPool(threads, 8, async (t) => {
925
+ const workspaceRoot = roots.get(t.projectId);
926
+ if (workspaceRoot === undefined)
927
+ return [];
928
+ const detail = await threadDetail(host, t.id, null);
929
+ const rows = [];
930
+ for (const m of detail.messages ?? []) {
931
+ if (m.role !== 'user')
932
+ continue;
933
+ const at = instant(m.createdAt);
934
+ if (at === null || at < from || at >= to)
935
+ continue;
936
+ const messageId = m.messageId ?? m.id;
937
+ if (messageId === undefined)
938
+ continue;
939
+ rows.push({
940
+ message_id: messageId,
941
+ thread_id: t.id,
942
+ text: m.text ?? '',
943
+ created_at: new Date(at).toISOString(),
944
+ workspace_root: workspaceRoot,
945
+ });
946
+ }
947
+ return rows;
948
+ });
949
+ return perThread.flat();
950
+ };
951
+ /**
952
+ * Loopback means the database this process can already open is the very one the
953
+ * host serves, so read it and skip the network entirely. Everything else goes
954
+ * over HTTP.
955
+ */
956
+ const LOOPBACK = new Set(['localhost', '127.0.0.1', '::1', '[::1]']);
957
+ const strategyFor = (host) => {
958
+ let hostname = '';
959
+ try {
960
+ hostname = new URL(host.origin).hostname;
961
+ }
962
+ catch { /* an unparseable origin is not loopback; let the HTTP path report it */ }
963
+ return LOOPBACK.has(hostname) ? 'sqlite' : 'http';
964
+ };
965
+ const readPrompts = (host, strategy, since, until) => {
966
+ if (strategy === 'sqlite')
967
+ return queryLocal(since, until);
968
+ return queryOverHttp(host, since, until);
969
+ };
970
+ const cmdExportPrompts = async (o) => {
971
+ const since = isoBound(o.since, '--since');
972
+ const until = o.until ? isoBound(o.until, '--until') : new Date().toISOString();
973
+ if (until <= since)
974
+ throw new Error(`--until (${until}) must be after --since (${since})`);
975
+ const registered = readHosts();
976
+ if (!registered.length)
977
+ throw new Error('no hosts registered — run: t3ctl host add <origin> <token>');
978
+ const hosts = o.host ? registered.filter((h) => h.name === o.host) : registered;
979
+ if (!hosts.length)
980
+ throw new Error(`no such host: ${o.host}`);
981
+ const watched = (o.watch?.length ? o.watch : ['~/Code']).map(expandHome);
982
+ const settled = await Promise.allSettled(hosts.map(async (h) => {
983
+ const strategy = strategyFor(h);
984
+ return { strategy, rows: await readPrompts(h, strategy, since, until) };
985
+ }));
986
+ const messages = [];
987
+ const unreachable = [];
988
+ const reached = [];
989
+ settled.forEach((result, i) => {
990
+ const host = hosts[i];
991
+ if (!host)
992
+ return;
993
+ if (result.status === 'rejected') {
994
+ unreachable.push({ host: host.name, error: errorMessage(result.reason) });
995
+ return;
996
+ }
997
+ const { strategy, rows } = result.value;
998
+ let count = 0;
999
+ for (const row of rows) {
1000
+ const marker = markerForWorkspace(row.workspace_root, watched);
1001
+ if (marker === null)
1002
+ continue; // outside every watched root
1003
+ messages.push({
1004
+ host: host.name,
1005
+ threadId: row.thread_id,
1006
+ messageId: row.message_id,
1007
+ createdAt: row.created_at,
1008
+ text: cleanPrompt(row.text),
1009
+ workspaceRoot: row.workspace_root,
1010
+ // Markers have to stay unique across machines, and two hosts routinely
1011
+ // hold a checkout of the same repo at the same path. The local host is
1012
+ // the unprefixed one so single-machine consumers see plain names.
1013
+ marker: strategy === 'sqlite' ? marker : `${host.name}/${marker}`,
1014
+ });
1015
+ count++;
1016
+ }
1017
+ reached.push({ host: host.name, strategy, count });
1018
+ });
1019
+ messages.sort((a, b) => a.createdAt.localeCompare(b.createdAt) || a.messageId.localeCompare(b.messageId));
1020
+ if (o.json) {
1021
+ console.log(JSON.stringify({ messages, unreachable }, null, 2));
1022
+ }
1023
+ else {
1024
+ const n = messages.length;
1025
+ console.log(`${bold(String(n))} prompt${n === 1 ? '' : 's'} ${dim(`${since} -> ${until}`)}`);
1026
+ for (const { host, strategy, count } of reached) {
1027
+ console.log(`\n${bold(host)} ${count} ${dim(STRATEGY_LABEL[strategy])}`);
1028
+ const tally = new Map();
1029
+ for (const m of messages) {
1030
+ if (m.host === host)
1031
+ tally.set(m.marker, (tally.get(m.marker) ?? 0) + 1);
1032
+ }
1033
+ const width = Math.max(0, ...[...tally.keys()].map((k) => k.length));
1034
+ for (const [marker, hits] of [...tally].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))) {
1035
+ console.log(` ${marker.padEnd(width)} ${hits}`);
1036
+ }
1037
+ }
1038
+ }
1039
+ for (const u of unreachable)
1040
+ console.error(`${ICON.error} ${u.host} ${dim(u.error)}`);
1041
+ // Partial results are still useful and `unreachable` reports what is missing,
1042
+ // so only a total failure is an error.
1043
+ if (unreachable.length === hosts.length)
1044
+ process.exitCode = 1;
1045
+ };
428
1046
  // ---- cli ----------------------------------------------------------------
429
1047
  // commander's option names arrive camelCased; the command implementations were
430
1048
  // written against the kebab-case spellings, so translate once here rather than
@@ -463,18 +1081,43 @@ program.command('ls')
463
1081
  .action((o) => cmdLs(o));
464
1082
  const host = program.command('host').description('manage the host registry');
465
1083
  host.command('add')
466
- .argument('<origin>', 'base URL of the host, e.g. https://box.tailnet.ts.net:3773')
467
- .argument('[token]', 'bearer token from `t3 auth session issue` on that host')
468
- .description('register a host, probing /.well-known/t3/environment first')
1084
+ .argument('<origin>', 'base URL of the host, e.g. https://box.tailnet.ts.net:3773 — or an ssh login like agent@box to bootstrap that machine end to end')
1085
+ .argument('[token]', 'bearer token from `t3 auth session issue` on that host (origin form only)')
1086
+ .description('register a host — from a URL, or from its ssh login alone')
469
1087
  .option('--name <name>', 'override the label detected from the host')
470
- .action((origin, token, o) => cmdHostAdd([origin, token].filter(Boolean), toFlags(o), readHosts()));
1088
+ .option('--ttl <duration>', 'session lifetime for the ssh form, e.g. 30d (default 30d)', '30d')
1089
+ .option('--t3-version <version>', 'exact t3 CLI version to install remotely (default: npm-resolved latest, nightly as fallback)')
1090
+ .action(async (origin, token, o) => {
1091
+ const flags = toFlags(o);
1092
+ const hosts = readHosts();
1093
+ // Two shapes, told apart by scheme: an http(s) origin pairs with an existing
1094
+ // server; anything else is an ssh login that bootstraps one.
1095
+ if (isOrigin(origin)) {
1096
+ return cmdHostAdd([origin, ...(token ? [token] : [])], flags, hosts);
1097
+ }
1098
+ // An origin missing its scheme is still the old, deliberate rejection — not
1099
+ // guessed at, and not misread as an ssh target (ssh targets never carry a
1100
+ // colon; ports belong to origins).
1101
+ if (origin.includes(':')) {
1102
+ return usage('an origin needs a scheme, e.g. http://localhost:3773');
1103
+ }
1104
+ if (token) {
1105
+ throw new Error('a token argument only makes sense with an <origin>; the ssh form mints its own');
1106
+ }
1107
+ return cmdHostAddSsh(origin, flags, hosts);
1108
+ });
471
1109
  host.command('rm')
472
1110
  .argument('<name>', 'registered host name')
473
1111
  .description('remove a host from the registry')
474
1112
  .action((name) => {
475
1113
  const hosts = readHosts();
476
- if (!hosts.some((h) => h.name === name))
1114
+ const gone = hosts.find((h) => h.name === name);
1115
+ if (!gone)
477
1116
  throw new Error(`no such host: ${name}`);
1117
+ // Taking the ssh master down with the entry; a missing socket just exits 255.
1118
+ if (gone.ssh) {
1119
+ spawnSync('ssh', ['-O', 'exit', '-S', ctlPath(gone.ssh, gone.sshLocalPort), gone.ssh], { stdio: 'ignore' });
1120
+ }
478
1121
  writeHosts(hosts.filter((h) => h.name !== name));
479
1122
  console.log(`removed ${name}`);
480
1123
  });
@@ -482,6 +1125,19 @@ host.command('ls').description('list registered hosts and probe each one')
482
1125
  .action(() => cmdHostsList(readHosts()));
483
1126
  program.command('hosts').description('list registered hosts and probe each one (alias of `host ls`)')
484
1127
  .action(() => cmdHostsList(readHosts()));
1128
+ // Repeatable, because a workspace tree is not always one root. No default value
1129
+ // is handed to commander: it would print `(default: [])` in the help, which is
1130
+ // not what happens when the flag is omitted.
1131
+ const addWatch = (value, previous) => [...(previous ?? []), value];
1132
+ const exportGroup = program.command('export').description('read-only exports for other tools');
1133
+ exportGroup.command('prompts')
1134
+ .description('every prompt a human typed, across hosts, with the project it happened in')
1135
+ .requiredOption('--since <date>', 'window start, inclusive — a bare YYYY-MM-DD is a UTC day boundary')
1136
+ .option('--until <date>', 'window end, exclusive (default: now)')
1137
+ .option('--host <name>', 'only this registered host (default: every one of them)')
1138
+ .option('--watch <path>', 'only prompts in projects under this root; repeatable (default: ~/Code)', addWatch)
1139
+ .option('--json', 'emit JSON instead of a summary')
1140
+ .action((o) => cmdExportPrompts(o));
485
1141
  const project = program.command('project').description('manage projects');
486
1142
  hostOption(project.command('create')
487
1143
  .argument('<title>', 'name for the project as it appears in T3 Code')
package/dist/t3ctl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"t3ctl.js","sourceRoot":"","sources":["../src/t3ctl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"t3ctl.js","sourceRoot":"","sources":["../src/t3ctl.ts"],"names":[],"mappings":";AACA,8CAA8C;AAC9C,6EAA6E;AAC7E,kDAAkD;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA4F7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEvD,MAAM,SAAS,GAAG,GAAW,EAAE;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAQ,EAAE;IACzC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAU,EAAqB,EAAE;IACvD,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,6BAA6B,EAAE;QACnE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QACpE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KACrD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAa,CAAC;AACxC,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,YAAY,GAAG,CAAC,CAAS,EAAgB,EAAE;IAC/C,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,CAAC,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjF,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrF,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAC9E,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB;IAC1F,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB;IAClF,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;CAC1D,CAAC;AACF,gFAAgF;AAChF,MAAM,YAAY,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACjD,6EAA6E;AAC7E,oCAAoC;AACpC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAQ,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AAKjD,MAAM,OAAO,GAAG,KAAK,EAAE,KAAa,EAAmD,EAAE;IACvF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,EAAE,GAAc,EAAE,CAAC;IACzB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC,CAAC;AAIF,MAAM,KAAK,GAAG,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAa,EAAiB,EAAE;IACrG,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAErG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa;YACzE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;iBACtD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;iBACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAC5J,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjI,OAAO;IACT,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;aAClE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;iBAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;iBACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;gBAAE,SAAS;YAE1C,MAAM,MAAM,GAA0C,EAAE,CAAC;YACzD,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACtF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAiB,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAExG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,WAAW;gBAAE,SAAS;YAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzG,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,mFAAmF;AAEnF,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAEtD,MAAM,KAAK,GAAG,KAAK,EAAE,MAAc,EAAE,SAAS,GAAG,IAAI,EAAuB,EAAE;IAC5E,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iFAAiF;QACjF,MAAM,CAAC,GAAG,KAA0E,CAAC;QACrF,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,SAAS,IAAI;YACrE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,yBAAyB,eAAe,IAAI,GAAG,GAAG,CAAC,CAAC;IAC7F,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,IAAI,CAA0B,CAAC;IAC/B,IAAI,CAAC;QAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,CAAU,CAAC;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,eAAe,CAAW;QAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,CAAW;QAC3B,aAAa,EAAE,CAAC,CAAC,eAAe,CAAW;KAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,EAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;AAErF,gFAAgF;AAChF,wCAAwC;AACxC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;AAEnH,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE;IACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE;QAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAEvE,MAAM,YAAY,GAAG,CAAC,GAAa,EAAmD,EAAE;IACtF,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;IAC5B,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,0DAA0D;IAC/E,6DAA6D,CAAC;AAEhE,MAAM,UAAU,GAAG,KAAK,EAAE,GAAa,EAAE,KAAY,EAAE,KAAa,EAAiB,EAAE;IACrF,2EAA2E;IAC3E,wCAAwC;IACxC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAExD,6EAA6E;IAC7E,gFAAgF;IAChF,IAAI,QAAQ,EAAE,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;QACnF,IAAI,CAAC,GAAG,MAAM,mCAAmC;YAC/C,SAAS,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,IAAI,SAAS,KAAK;YACpE,SAAS,UAAU,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,KAAK;YAC3D,2BAA2B,QAAQ,CAAC,IAAI,kDAAkD,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI;QACvC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC;IAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,iBAAiB,UAAU,CAAC,aAAa,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpH,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC5E,IAAI,EAAE,MAAM,EAAE,KAAK;QACnB,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,aAAa,EAAE,UAAU,CAAC,aAAa;KACxC,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,eAAe,UAAU,CAAC,KAAK,IAAI;QAC7E,aAAa,UAAU,CAAC,aAAa,eAAe,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,uBAAuB,IAAI,oDAAoD,MAAM,UAAU,CAAC,CAAC;AACpH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;IAC1D,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACjG,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,EAAE,aAAa,IAAI,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC;QAC9D,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE;YACrJ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,oCAAoC;YAC7D,SAAS,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,KAAK,IAAI,SAAS,YAAY,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACvG,CAAC;AACH,CAAC,CAAC;AAEF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,iBAAiB;AACjB,+EAA+E;AAC/E,gFAAgF;AAChF,iCAAiC;AACjC,iFAAiF;AACjF,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAC7E,mEAAmE;AAEnE,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,4DAA4D;AACzF,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,kDAAkD;AACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,yCAAyC;AAChE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGlB,CAAC;AASF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,IAAc,EAAE,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,EAAa,EAAE;IAC1F,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;QAC3F,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QAC1B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;KAC3D,CAAC,CAAC;IACH,IAAK,GAAG,CAAC,KAA2C,EAAE,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClH,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;AACzG,CAAC,CAAC;AAIF,kFAAkF;AAClF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAgB,EAAE;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,iBAAiB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3K,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,qBAAqB,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAiB,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,GAAW,EAAyC,EAAE;IACtH,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChK,4EAA4E;IAC5E,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2C,CAAC;YACzE,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACpH,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IAChD,IAAI,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,UAAU,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,UAAU,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAChF,MAAM,IAAI,KAAK,CAAC,uEAAuE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;AAC/I,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,IAAqB,EAAE;AAC3C,mFAAmF;AACnF,wEAAwE;AACxE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,IAAa,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAC7E,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAE9F,wEAAwE;AACxE,8EAA8E;AAC9E,uEAAuE;AACvE,0EAA0E;AAC1E,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,aAAqB,EAAmB,EAAE;IAChF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK;YACrC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB;YACrD,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,wBAAwB;YAChE,IAAI,EAAE,kCAAkC;YACxC,IAAI,EAAE,GAAG,IAAI,cAAc,aAAa,EAAE,EAAE,GAAG;SAChD,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,IAAK,GAAG,CAAC,KAA2C,EAAE,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,eAAe,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAE,QAAgB,EAAoB,EAAE;IACjF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,2EAA2E;AAC3E,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;AACpD,MAAM,YAAY,GAAG,CAAC,IAAU,EAAiB,EAAE;IACjD,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,6DAA6D;QACtF,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;YAAE,OAAO;QAC7E,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxG,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,0DAA0D,MAAM,EAAE,CAAC,CAAC;QAClH,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,oBAAoB,SAAS,EAAE,CAAC;QAC/C,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7I,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,8BAA8B,MAAM,qEAAqE,CAAC,CAAC;QACxI,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,yEAAyE;AACzE,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAE,KAAY,EAAE,KAAa,EAAiB,EAAE;IACzF,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,qIAAqI,CAAC,CAAC;IAClK,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,yCAAyC,OAAO,GAAG,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,gCAAgC,MAAM,iDAAiD,CAAC,CAAC,CAAC;QAC1G,yEAAyE;QACzE,sDAAsD;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAErG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC3C,IAAI,KAAK,GAAwB,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,OAAO;oBAAE,MAAM;YAC3B,CAAC;YAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACpB,oEAAoE;YACpE,sEAAsE;YACtE,4DAA4D;YAC5D,KAAK,CAAC,qCAAqC,MAAM,sCAAsC,YAAY,GAAG,IAAI,MAAM;gBAC9G,8BAA8B,MAAM,0CAA0C;gBAC9E,iFAAiF;gBACjF,sEAAsE;gBACtE,8BAA8B,MAAM,iCAAiC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,mCAAmC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,oBAAoB,SAAS,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,4DAA4D,MAAM,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,GAAG,CAAC,CAAC;QACjJ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvC,mEAAmE;QACnE,0EAA0E;QAC1E,IAAI,QAAQ,EAAE,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;YACnF,IAAI,CAAC,GAAG,MAAM,mCAAmC;gBAC/C,SAAS,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,IAAI,SAAS,KAAK;gBACpE,SAAS,UAAU,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,KAAK;gBAC3D,2BAA2B,QAAQ,CAAC,IAAI,kDAAkD,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1F,IAAI,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC;QACpC,IAAI,OAAO,GAAiD,IAAI,CAAC;QACjE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;YAC9E,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,iBAAiB,UAAU,CAAC,aAAa,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpH,sEAAsE;QACtE,IAAI,QAAQ,EAAE,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAClE,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;YACzE,IAAI,EAAE,MAAM,EAAE,KAAK;YACnB,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO;SAC7F,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,yBAAyB,UAAU,CAAC,KAAK,IAAI;YACvF,aAAa,UAAU,CAAC,aAAa,eAAe,UAAU,CAAC,aAAa,IAAI;YAChF,uBAAuB,SAAS,iBAAiB,MAAM,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,EAAE,CAAC,CAAC;QACvF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,SAAS,IAAI,GAAG,iBAAiB,IAAI,KAAK;gBACzE,eAAe,MAAM,qCAAqC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAIF,4EAA4E;AAC5E,6EAA6E;AAC7E,yDAAyD;AACzD,wEAAwE;AAExE,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAQ,EAAE;IACtC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACjG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAU,EAAE,OAA6B,EAAiC,EAAE;IAClG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,6BAA6B,EAAE;QACnE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACjH,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KACrD,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,iBAAiB,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,GAAW,EAAuB,EAAE,CAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAG/G,2EAA2E;AAC3E,0EAA0E;AAC1E,iEAAiE;AACjE,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAErF,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,GAAW,EAAU,EAAE;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IAC5C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5F,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,aAAa,KAAK,CAAC,MAAM,aAAa;YAC3D,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC;AACjD,CAAC,CAAC;AAGF,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,cAAc,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAE,IAAY,EAAE,KAAY,EAAiB,EAAE;IACrG,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAChF,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,aAAa;QACzE,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,SAAS;QACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC3F,OAAO,CAAC,cAAc,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;IAC5G,CAAC;SAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACjD,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAA+B,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,MAAM,CAAC,EAAE,EAAE;QAC5E,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,aAAa,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,eAAe,aAAa,QAAQ,EAAE,CAAC,CAAC;AAC1F,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAiB,EAAE;IAC7E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;KACnF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;AACnF,CAAC,CAAC;AAIF,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,eAAe,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAE,KAAa,EAAiB,EAAE;IACzF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK;KACvF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,kFAAkF;AAClF,kCAAkC;AAClC,8EAA8E;AAC9E,oDAAoD;AACpD,MAAM,YAAY,GAAG,KAAK,EAAE,IAAU,EAAE,QAAgB,EAAE,SAAS,GAAkB,CAAC,EAAmB,EAAE;IACzG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,8BAA8B,QAAQ,GAAG,KAAK,EAAE,EAAE;QACtF,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE;QAClD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KACrD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,OAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC,MAAM,CAAC;AAC3D,CAAC,CAAC;AAEF,8EAA8E;AAC9E,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,qEAAqE;AACrE,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,IAAU,EAAE,cAAsB,EAAiB,EAAE;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;QAC/E,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;IAErG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC;IACpD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9D,IAAI,SAAS;YAAE,MAAM,CAAC,mDAAmD;IAC3E,CAAC;IAED,OAAO,CAAC,KAAK,CACX,sDAAsD,SAAS,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,4BAA4B,cAAc,GAAG,KAAK;QAClK,yBAAyB,MAAM,wBAAwB;QACvD,2BAA2B,MAAM,CAAC,EAAE,aAAa,CAClD,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AAGF,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAa,EAAE,IAAY,EAAE,KAAY,EAAiB,EAAE;IAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAC;IACtG,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;QACtD,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrE,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,YAAY,SAAS,YAAY,aAAa,YAAY,QAAQ,EAAE,CAAC,CAAC;AAClI,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,UAAkB,EAAE,KAAa,EAAE,KAAY,EAAiB,EAAE;IAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,2BAA2B,CAAC;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,GAAG,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;QACrD,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc;QACtD,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,aAAa;QACnD,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,SAAS;QACvD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,YAAY,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QACpC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,aAAa,QAAQ,aAAa,cAAc,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK,aAAa,QAAQ,EAAE,CAAC,CAAC;AAC3L,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,KAAY,EAAiB,EAAE;IACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QACxC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;KAC5E,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,MAAM,CAAC,EAAE,WAAW,QAAQ,EAAE,CAAC,CAAC;AACpG,CAAC,CAAC;AAmCF,MAAM,cAAc,GAA6B;IAC/C,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,6BAA6B;CACpC,CAAC;AAEF,qFAAqF;AACrF,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAE7C,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAE9F;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,OAAiB,EAAiB,EAAE;IACrF,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YACjD,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9B,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF,+EAA+E;AAC/E,2DAA2D;AAC3D,MAAM,UAAU,GAAG;;;;;;;;sBAQG,CAAC;AAEvB;;;;GAIG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,IAAY,EAAU,EAAE;IACvD,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACjF,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,KAAK,EAAE,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,GAAG,KAAK,IAAwD,EAAE;IAChF,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;IACpI,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAE,KAAa,EAAwB,EAAE;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,UAAU,EAAE,CAAC;IACxC,6EAA6E;IAC7E,+DAA+D;IAC/D,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAA2B,CAAC;IAC5E,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,OAAO,GAAG,CAAC,KAAqB,EAAiB,EAAE;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,KAAa,EAAE,KAAa,EAAW,EAAE;IAC1E,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,wFAAwF;AACxF,MAAM,OAAO,GAAG,KAAK,EAAQ,KAAU,EAAE,KAAa,EAAE,EAA2B,EAAgB,EAAE;IACnG,MAAM,GAAG,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QACjF,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAU,EAAE,KAAa,EAAE,KAAa,EAAwB,EAAE;IAC7F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAElG,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAgB,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YAChC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE;gBAAE,SAAS;YACnD,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,SAAS,KAAK,SAAS;gBAAE,SAAS;YACtC,IAAI,CAAC,IAAI,CAAC;gBACR,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,CAAC,CAAC,EAAE;gBACf,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;gBAClB,UAAU,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;gBACtC,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,GAAG,CAAC,IAAU,EAAY,EAAE;IAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAC,wEAAwE,CAAC,CAAC;IACpF,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,QAAkB,EAAE,KAAa,EAAE,KAAa,EAAwB,EAAE;IACzG,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAIF,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAgB,EAAiB,EAAE;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChF,IAAI,KAAK,IAAI,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,4BAA4B,KAAK,GAAG,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACtG,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAChF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAsC,EAAE,CAAC;IAC1D,MAAM,OAAO,GAA0D,EAAE,CAAC;IAE1E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS,CAAC,6BAA6B;YAC5D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC3B,aAAa,EAAE,GAAG,CAAC,cAAc;gBACjC,uEAAuE;gBACvE,uEAAuE;gBACvE,kEAAkE;gBAClE,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;aAClE,CAAC,CAAC;YACH,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1G,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9F,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;oBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChG,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtF,8EAA8E;IAC9E,uCAAuC;IACvC,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,4BAA4B;AAC5B,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;IACpE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IAChC,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB;CACjE,CAAC;AACF,qEAAqE;AACrE,+EAA+E;AAC/E,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,CAA0B,EAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CACvE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KACvB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;KACzC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAE,CAA0B,EAAE,EAAE;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC,CAAC;AAEF,gFAAgF;AAChF,0EAA0E;AAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAC9C,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,sGAAsG,CAAC;KACnH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,yBAAyB,CAAC;KAChE,kBAAkB,CAAC,kDAAkD,CAAC;KACtE,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9C,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,yEAAyE,CAAC,CAAC;AAE5I,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;KAClB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAE7E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAChB,QAAQ,CAAC,UAAU,EAAE,kIAAkI,CAAC;KACxJ,QAAQ,CAAC,SAAS,EAAE,2EAA2E,CAAC;KAChG,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,kBAAkB,EAAE,2DAA2D,EAAE,KAAK,CAAC;KAC9F,MAAM,CAAC,wBAAwB,EAAE,8FAA8F,CAAC;KAChI,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,KAAyB,EAAE,CAAe,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,mCAAmC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KACf,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACpD,8EAA8E;IAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC;KACvE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAE3C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,+DAA+D,CAAC;KAClG,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAE3C,gFAAgF;AAChF,+EAA+E;AAC/E,6CAA6C;AAC7C,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,QAAmB,EAAY,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAEhG,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;AAE/F,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KAC3B,WAAW,CAAC,2EAA2E,CAAC;KACxF,cAAc,CAAC,gBAAgB,EAAE,mEAAmE,CAAC;KACrG,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC;KACjF,MAAM,CAAC,gBAAgB,EAAE,wEAAwE,EAAE,QAAQ,CAAC;KAC5G,MAAM,CAAC,QAAQ,EAAE,gCAAgC,CAAC;KAClD,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAkB,CAAC,CAAC,CAAC;AAErE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC1E,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACjC,QAAQ,CAAC,SAAS,EAAE,+CAA+C,CAAC;KACpE,QAAQ,CAAC,kBAAkB,EAAE,wCAAwC,CAAC;KACtE,WAAW,CAAC,4CAA4C,CAAC,CAAC;KAC1D,MAAM,CAAC,CAAC,KAAa,EAAE,IAAY,EAAE,CAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAEjF,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;KAChC,QAAQ,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC7D,QAAQ,CAAC,YAAY,EAAE,oDAAoD,CAAC;KAC5E,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,EAAE,2BAA2B,CAAC;KACjG,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;KACtE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;KACpE,MAAM,CAAC,uBAAuB,EAAE,4DAA4D,EAAE,aAAa,CAAC;KAC5G,MAAM,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;KACjE,MAAM,CAAC,CAAC,GAAW,EAAE,KAAe,EAAE,CAAe,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhH,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KAC9B,KAAK,CAAC,OAAO,CAAC;KACd,QAAQ,CAAC,UAAU,EAAE,6CAA6C,CAAC;KACnE,QAAQ,CAAC,cAAc,EAAE,kDAAkD,CAAC;KAC5E,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,2CAA2C,CAAC;KAC/E,MAAM,CAAC,uBAAuB,EAAE,4DAA4D,CAAC;KAC7F,MAAM,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAiB,EAAE,CAAe,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;KAChC,QAAQ,CAAC,UAAU,EAAE,6CAA6C,CAAC;KACnE,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;KACvC,WAAW,CAAC,6BAA6B,CAAC,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,KAAe,EAAE,CAAe,EAAE,EAAE;IAC9D,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEL,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;KACjC,QAAQ,CAAC,UAAU,EAAE,6CAA6C,CAAC;KACnE,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,EAAE,IAAI,CAAC,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,CAAe,EAAE,EAAE;IAC7C,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEL,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;KACnC,QAAQ,CAAC,UAAU,EAAE,6CAA6C,CAAC;KACnE,WAAW,CAAC,6CAA6C,CAAC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,CAAe,EAAE,EAAE;IAC7C,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,MAAM,SAAS,GAA2B;IACxC,MAAM,EAAE,uDAAuD;IAC/D,OAAO,EAAE,qDAAqD;IAC9D,SAAS,EAAE,wDAAwD;IACnE,KAAK,EAAE,yCAAyC;IAChD,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AACF,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;IAC1C,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,QAAQ,CAAC,UAAU,EAAE,6CAA6C,CAAC;SACnE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC;SACnD,MAAM,CAAC,CAAC,GAAW,EAAE,CAAe,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobius/t3ctl",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "description": "Controller CLI for T3 Code hosts — list and drive threads across machines",
6
6
  "keywords": [