ferrycat 0.3.2 → 0.4.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/dist/engine.js CHANGED
@@ -5,7 +5,7 @@ import path from 'node:path';
5
5
  import { DatabaseSync } from 'node:sqlite';
6
6
  import { computeFingerprints, verifyAllPointers, verifyFingerprintsWithRetry, } from './fingerprint.js';
7
7
  import { validateContractOutput } from './schema-validator.js';
8
- import { validateJsonPayload } from './schemas.js';
8
+ import { MAX_JSON_PAYLOAD_BYTES, validateJsonPayload } from './schemas.js';
9
9
  /** Default queue window (SUBMITTED) in seconds. */
10
10
  export const DEFAULT_QUEUE_TTL_SEC = 1800;
11
11
  /**
@@ -129,6 +129,14 @@ export class FerryCatEngine {
129
129
 
130
130
  CREATE INDEX IF NOT EXISTS idx_contracts_poll
131
131
  ON contracts(target_agent, status, created_at);
132
+
133
+ CREATE TABLE IF NOT EXISTS daemon_locks (
134
+ id TEXT PRIMARY KEY,
135
+ owner_token TEXT NOT NULL,
136
+ heartbeat_at INTEGER NOT NULL,
137
+ expires_at INTEGER NOT NULL,
138
+ metadata_json TEXT
139
+ );
132
140
  `);
133
141
  // Additive, idempotent column migrations for databases created by older FerryCat versions.
134
142
  // Older hosts sharing the same mesh.db keep working: they simply leave the new columns at defaults.
@@ -244,14 +252,22 @@ export class FerryCatEngine {
244
252
  const claimStmt = this.db.prepare(`UPDATE contracts
245
253
  SET status = 'CLAIMED', claimed_at = ?, claim_token = ?
246
254
  WHERE id = ? AND status = 'SUBMITTED'`);
247
- const candidatesStmt = this.db.prepare(`SELECT * FROM contracts
248
- WHERE target_agent = ? AND status = 'SUBMITTED'
249
- ORDER BY ${QUEUE_START_SQL} ASC, rowid ASC
250
- LIMIT 10`);
255
+ const taskTypesFilter = input.task_types && input.task_types.length > 0 ? input.task_types : null;
256
+ let candidatesQuery = `SELECT * FROM contracts WHERE target_agent = ? AND status = 'SUBMITTED'`;
257
+ if (taskTypesFilter) {
258
+ const placeholders = taskTypesFilter.map(() => '?').join(',');
259
+ candidatesQuery += ` AND task_type IN (${placeholders})`;
260
+ }
261
+ candidatesQuery += ` ORDER BY ${QUEUE_START_SQL} ASC, rowid ASC LIMIT 10`;
262
+ const candidatesStmt = this.db.prepare(candidatesQuery);
263
+ const queryParams = [agentId];
264
+ if (taskTypesFilter) {
265
+ queryParams.push(...taskTypesFilter);
266
+ }
251
267
  let lastStaleError;
252
268
  let anyCandidatesSeen = false;
253
269
  while (true) {
254
- const candidates = candidatesStmt.all(agentId);
270
+ const candidates = candidatesStmt.all(...queryParams);
255
271
  if (candidates.length === 0) {
256
272
  break;
257
273
  }
@@ -273,28 +289,36 @@ export class FerryCatEngine {
273
289
  }
274
290
  catch (err) {
275
291
  const errMsg = `UNEXPECTED_FS_ERROR: ${err instanceof Error ? err.message : String(err)}`;
276
- this.db
277
- .prepare(`UPDATE contracts SET status = 'POINTER_STALE', error_reason = ? WHERE id = ?`)
278
- .run(errMsg, candidate.id);
279
- lastStaleError = {
280
- contract_id: candidate.id,
281
- reason: 'UNEXPECTED_FS_ERROR',
282
- message: `Contract "${candidate.id}" marked POINTER_STALE due to filesystem error (${errMsg}).`,
283
- };
292
+ // CAS-protected state transition to prevent racing with concurrent timeout/cancellation
293
+ const updRes = this.db
294
+ .prepare(`UPDATE contracts
295
+ SET status = 'POINTER_STALE', error_reason = ?
296
+ WHERE id = ? AND status = 'CLAIMED' AND claim_token = ?`)
297
+ .run(errMsg, candidate.id, claimToken);
298
+ if (updRes.changes > 0) {
299
+ lastStaleError = {
300
+ contract_id: candidate.id,
301
+ reason: 'UNEXPECTED_FS_ERROR',
302
+ message: `Contract "${candidate.id}" marked POINTER_STALE due to filesystem error (${errMsg}).`,
303
+ };
304
+ }
284
305
  continue;
285
306
  }
286
307
  if (!verification.valid) {
287
308
  const errorReason = `${verification.reason}: ${verification.detail}`;
288
- this.db
309
+ // CAS-protected state transition to prevent racing with concurrent timeout/cancellation
310
+ const updRes = this.db
289
311
  .prepare(`UPDATE contracts
290
312
  SET status = 'POINTER_STALE', error_reason = ?
291
- WHERE id = ?`)
292
- .run(errorReason, candidate.id);
293
- lastStaleError = {
294
- contract_id: candidate.id,
295
- reason: verification.reason,
296
- message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
297
- };
313
+ WHERE id = ? AND status = 'CLAIMED' AND claim_token = ?`)
314
+ .run(errorReason, candidate.id, claimToken);
315
+ if (updRes.changes > 0) {
316
+ lastStaleError = {
317
+ contract_id: candidate.id,
318
+ reason: verification.reason,
319
+ message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
320
+ };
321
+ }
298
322
  continue;
299
323
  }
300
324
  return {
@@ -677,6 +701,39 @@ export class FerryCatEngine {
677
701
  message: `Execution window for contract "${row.id}" renewed for ${row.exec_ttl_sec}s (extension ${extendCount}/${MAX_TTL_EXTENSIONS}).`,
678
702
  };
679
703
  }
704
+ /**
705
+ * Read-only lease snapshot used by the execution supervisor (Phase 3 Step 0, CK-03) to
706
+ * re-read row state after an optimistic-lock conflict instead of crashing the worker.
707
+ * Never mutates state.
708
+ */
709
+ getLeaseSnapshot(contractId) {
710
+ const row = this.db
711
+ .prepare(`SELECT status, claim_token, claimed_at, exec_ttl_sec, extend_count FROM contracts WHERE id = ?`)
712
+ .get(contractId);
713
+ return row ?? null;
714
+ }
715
+ /**
716
+ * Persist partial worker output into salvaged_result_json WITHOUT any status transition
717
+ * (Phase 3 Step 0, CK-07 / CK-09). Allowed for the lease holder while CLAIMED, and also
718
+ * right after the window closed (TIMED_OUT) so produced output is never silently dropped.
719
+ * Returns false when the caller no longer owns the lease (no write happens).
720
+ */
721
+ recordSalvage(input) {
722
+ const agentId = this.resolveAgentIdentity(input.agent_id, 'agent_id');
723
+ const payload = JSON.stringify(input.salvage);
724
+ if (Buffer.byteLength(payload, 'utf8') > MAX_JSON_PAYLOAD_BYTES) {
725
+ throw new Error('salvage payload exceeds 1MB limit (FC-302).');
726
+ }
727
+ const res = this.db
728
+ .prepare(`UPDATE contracts
729
+ SET salvaged_result_json = ?
730
+ WHERE id = ?
731
+ AND target_agent = ?
732
+ AND status IN ('CLAIMED', 'TIMED_OUT')
733
+ AND (claim_token IS NULL OR claim_token = ?)`)
734
+ .run(payload, input.contract_id, agentId, input.claim_token ?? '');
735
+ return Number(res.changes) === 1;
736
+ }
680
737
  /**
681
738
  * CLAIMED -> FAILED (terminal). Lets the holder close the loop explicitly instead of
682
739
  * leaving the requester waiting for the execution TTL to expire.
@@ -697,11 +754,17 @@ export class FerryCatEngine {
697
754
  message: `Contract "${row.id}" had already exceeded execution TTL (${row.exec_ttl_sec}s); marked TIMED_OUT with the failure reason attached.`,
698
755
  };
699
756
  }
700
- const res = this.db
701
- .prepare(`UPDATE contracts
702
- SET status = 'FAILED', error_reason = ?, completed_at = ?
703
- WHERE id = ? AND status = 'CLAIMED' AND target_agent = ?`)
704
- .run(`WORKER_FAILED: ${reason}`, nowMs, row.id, agentId);
757
+ const failSql = row.claim_token !== null && row.claim_token !== undefined
758
+ ? `UPDATE contracts
759
+ SET status = 'FAILED', error_reason = ?, completed_at = ?
760
+ WHERE id = ? AND status = 'CLAIMED' AND target_agent = ? AND claim_token = ?`
761
+ : `UPDATE contracts
762
+ SET status = 'FAILED', error_reason = ?, completed_at = ?
763
+ WHERE id = ? AND status = 'CLAIMED' AND target_agent = ?`;
764
+ const failParams = row.claim_token !== null && row.claim_token !== undefined
765
+ ? [`WORKER_FAILED: ${reason}`, nowMs, row.id, agentId, row.claim_token]
766
+ : [`WORKER_FAILED: ${reason}`, nowMs, row.id, agentId];
767
+ const res = this.db.prepare(failSql).run(...failParams);
705
768
  if (Number(res.changes) !== 1) {
706
769
  throw new Error(`Concurrent state change detected: contract "${row.id}" is no longer in 'CLAIMED' state.`);
707
770
  }
@@ -842,6 +905,104 @@ export class FerryCatEngine {
842
905
  contracts: formatted,
843
906
  };
844
907
  }
908
+ // =========================================================================
909
+ // Daemon CAS Lease Management (ADR-0005)
910
+ // Single-statement atomic micro-transactions (Zero multi-step lock starvation)
911
+ // =========================================================================
912
+ acquireDaemonLease(input) {
913
+ const lockId = (input.lock_id ?? 'global').trim();
914
+ const ownerToken = input.owner_token?.trim();
915
+ if (!ownerToken) {
916
+ throw new Error('owner_token is required to acquire a daemon lease.');
917
+ }
918
+ const ttlSec = input.ttl_sec && input.ttl_sec > 0 ? input.ttl_sec : 30;
919
+ const nowMs = Date.now();
920
+ const expiresAt = nowMs + ttlSec * 1000;
921
+ const metadataJson = input.metadata ? JSON.stringify(input.metadata) : null;
922
+ // Single-statement atomic UPSERT with CAS condition:
923
+ // Acquire if new OR existing lease has expired OR same owner is re-acquiring.
924
+ const stmt = this.db.prepare(`
925
+ INSERT INTO daemon_locks(id, owner_token, heartbeat_at, expires_at, metadata_json)
926
+ VALUES (?, ?, ?, ?, ?)
927
+ ON CONFLICT(id) DO UPDATE SET
928
+ owner_token = excluded.owner_token,
929
+ heartbeat_at = excluded.heartbeat_at,
930
+ expires_at = excluded.expires_at,
931
+ metadata_json = excluded.metadata_json
932
+ WHERE daemon_locks.expires_at < ? OR daemon_locks.owner_token = ?
933
+ `);
934
+ const result = stmt.run(lockId, ownerToken, nowMs, expiresAt, metadataJson, nowMs, ownerToken);
935
+ if (result.changes > 0) {
936
+ return {
937
+ ok: true,
938
+ lock_id: lockId,
939
+ owner_token: ownerToken,
940
+ expires_at: expiresAt,
941
+ };
942
+ }
943
+ const current = this.inspectDaemonLease(lockId);
944
+ return {
945
+ ok: false,
946
+ lock_id: lockId,
947
+ owner_token: ownerToken,
948
+ expires_at: current ? current.expires_at : 0,
949
+ message: current
950
+ ? `Lease '${lockId}' is held by '${current.owner_token}' until ${new Date(current.expires_at).toISOString()}.`
951
+ : `Failed to acquire lease '${lockId}'.`,
952
+ };
953
+ }
954
+ renewDaemonLease(input) {
955
+ const lockId = (input.lock_id ?? 'global').trim();
956
+ const ownerToken = input.owner_token?.trim();
957
+ if (!ownerToken) {
958
+ throw new Error('owner_token is required to renew a daemon lease.');
959
+ }
960
+ const ttlSec = input.ttl_sec && input.ttl_sec > 0 ? input.ttl_sec : 30;
961
+ const nowMs = Date.now();
962
+ const expiresAt = nowMs + ttlSec * 1000;
963
+ const stmt = this.db.prepare(`
964
+ UPDATE daemon_locks
965
+ SET heartbeat_at = ?, expires_at = ?
966
+ WHERE id = ? AND owner_token = ?
967
+ `);
968
+ const result = stmt.run(nowMs, expiresAt, lockId, ownerToken);
969
+ if (result.changes > 0) {
970
+ return {
971
+ ok: true,
972
+ lock_id: lockId,
973
+ expires_at: expiresAt,
974
+ };
975
+ }
976
+ return {
977
+ ok: false,
978
+ lock_id: lockId,
979
+ expires_at: 0,
980
+ message: `Failed to renew lease '${lockId}': not owned by token '${ownerToken}' or expired/deleted.`,
981
+ };
982
+ }
983
+ releaseDaemonLease(input) {
984
+ const lockId = (input.lock_id ?? 'global').trim();
985
+ const ownerToken = input.owner_token?.trim();
986
+ if (!ownerToken) {
987
+ throw new Error('owner_token is required to release a daemon lease.');
988
+ }
989
+ const stmt = this.db.prepare(`
990
+ DELETE FROM daemon_locks
991
+ WHERE id = ? AND owner_token = ?
992
+ `);
993
+ const result = stmt.run(lockId, ownerToken);
994
+ return {
995
+ ok: result.changes > 0,
996
+ lock_id: lockId,
997
+ message: result.changes > 0 ? undefined : `Lease '${lockId}' was not held by '${ownerToken}'.`,
998
+ };
999
+ }
1000
+ inspectDaemonLease(lockId = 'global') {
1001
+ const row = this.db
1002
+ .prepare('SELECT id, owner_token, heartbeat_at, expires_at, metadata_json FROM daemon_locks WHERE id = ?')
1003
+ .get(lockId);
1004
+ return row ?? null;
1005
+ }
845
1006
  close() {
846
1007
  this.db.close();
847
1008
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAsBnD,mDAAmD;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAuC;IACnF,WAAW,EAAE,IAAI;IACjB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,sGAAsG;AACtG,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAAqB;IACjD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AASD,MAAM,OAAO,cAAc;IACT,MAAM,CAAS;IACd,EAAE,CAAe;IACjB,gBAAgB,CAAU;IAC1B,uBAAuB,CAAS;IACjC,iBAAiB,CAAU;IAE3C,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC3E,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,GAAG,CAAC;QACtE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,iBAAiB;QACvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,OAAO,iGAAiG,CAClK,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCZ,CAAC,CAAC;QAEH,2FAA2F;QAC3F,oGAAoG;QACpG,MAAM,UAAU,GAAyC;YACvD,CAAC,sBAAsB,EAAE,MAAM,CAAC;YAChC,CAAC,WAAW,EAAE,SAAS,CAAC;YACxB,CAAC,cAAc,EAAE,4BAA4B,CAAC;YAC9C,CAAC,eAAe,EAAE,4BAA4B,CAAC;YAC/C,CAAC,eAAe,EAAE,4BAA4B,CAAC;YAC/C,CAAC,sBAAsB,EAAE,MAAM,CAAC;YAChC,CAAC,aAAa,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAA8B,CAAC,GAAG,CACpF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,CACF,CAAC;QACF,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;2CAE0B,eAAe;KACrD,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,aAAsB,EAAE,YAAoB,OAAO;QAC9E,MAAM,QAAQ,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,6HAA6H,CAC1I,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,gBAAgB,CACrB,KAA4B,EAC5B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1E,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAC5D,iBAAiB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CACN,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAC;QACjE,MAAM,UAAU,GACd,KAAK,CAAC,YAAY,IAAI,iCAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;QAElF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,eAAe,EACrB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EACpE,WAAW,EACX,UAAU,EACV,KAAK,EACL,KAAK,CACN,CAAC;QAEF,MAAM,MAAM,GAA2B;YACrC,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC,CAAC;SACJ,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO;gBACZ,0JAA0J,CAAC;QAC/J,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,6BAA6B,CAAC,KAAa;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CACN;4CACoC,eAAe;iFACsB,CAC1E;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAuC,CAAC;QAE3D,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;;8CAMoC,eAAe;mFACsB,CAC1E;iBACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEM,YAAY,CACjB,QAA2B,EAAE,EAC7B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtE,2EAA2E;QAC3E,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAE1C,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B;;6CAEuC,CACxC,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC;;kBAEY,eAAe;gBACjB,CACX,CAAC;QAEF,IAAI,cAA6D,CAAC;QAClE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAA6B,CAAC;YAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YAEzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,6EAA6E;gBAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvC,qEAAqE;oBACrE,SAAS;gBACX,CAAC;gBAED,gGAAgG;gBAChG,IAAI,YAA+B,CAAC;gBACpC,IAAI,YAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAsB,CAAC;oBACxE,YAAY,GAAG,2BAA2B,CACxC,SAAS,CAAC,cAAc,EACxB,YAAY,EACZ,IAAI,CAAC,uBAAuB,CAC7B,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1F,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN,8EAA8E,CAC/E;yBACA,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC7B,cAAc,GAAG;wBACf,WAAW,EAAE,SAAS,CAAC,EAAE;wBACzB,MAAM,EAAE,qBAAqB;wBAC7B,OAAO,EAAE,aAAa,SAAS,CAAC,EAAE,mDAAmD,MAAM,IAAI;qBAChG,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBACxB,MAAM,WAAW,GAAG,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;oBACrE,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN;;4BAEc,CACf;yBACA,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;oBAElC,cAAc,GAAG;wBACf,WAAW,EAAE,SAAS,CAAC,EAAE;wBACzB,MAAM,EAAE,YAAY,CAAC,MAAO;wBAC5B,OAAO,EAAE,aAAa,SAAS,CAAC,EAAE,gCAAgC,WAAW,4BAA4B,SAAS,CAAC,eAAe,gDAAgD;qBACnL,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE;wBACR,WAAW,EAAE,SAAS,CAAC,EAAE;wBACzB,eAAe,EAAE,SAAS,CAAC,eAAe;wBAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,eAAe,EAAE,SAAS,CAAC,eAAe;wBAC1C,cAAc,EAAE,SAAS,CAAC,cAAc;wBACxC,QAAQ,EAAE,YAAY;wBACtB,eAAe,EAAE,SAAS,CAAC,oBAAoB;4BAC7C,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAA6B;4BACzE,CAAC,CAAC,IAAI;wBACR,UAAU,EAAE,KAAK;wBACjB,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,WAAW,EAAE,UAAU;qBACxB;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,cAAc;aAC5B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,iBAAiB;gBACxB,CAAC,CAAC,gCAAgC,OAAO,yCAAyC;gBAClF,CAAC,CAAC,6CAA6C,OAAO,IAAI;SAC7D,CAAC;IACJ,CAAC;IAEM,eAAe,CACpB,KAA2B,EAC3B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,SAAS,EACT,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,8BAA8B;aACxG,CAAC;QACJ,CAAC;QAED,wGAAwG;QACxG,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAsB,CAAC;QACxE,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,UAAU,WAAW,CAAC,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACrG,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;gBACrC,kGAAkG;gBAClG,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;;iDAEqC,CACtC;qBACA,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAElC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,WAAW,EAAE,GAAG,CAAC,EAAE;oBACnB,MAAM,EAAE,cAAc;oBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,aAAa,EAAE,UAAU;oBACzB,kBAAkB,EAAE,kBAAkB;oBACtC,WAAW,EAAE,WAAW,CAAC,UAAU;oBACnC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,qCAAqC,UAAU,IAAI,kBAAkB,yCAAyC,GAAG,CAAC,YAAY,cAAc,YAAY,qKAAqK,GAAG,CAAC,EAAE,qKAAqK,GAAG,CAAC,eAAe,mBAAmB;iBAC3iB,CAAC;YACJ,CAAC;YAED,yHAAyH;YACzH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;gBAClD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,WAAW,CAAC,UAAU;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;;+CAMqC,CACtC;iBACA,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,aAAa,EAAE,UAAU;gBACzB,kBAAkB,EAAE,kBAAkB;gBACtC,WAAW,EAAE,WAAW,CAAC,UAAU;gBACnC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,4FAA4F,kBAAkB,MAAM,YAAY,+FAA+F,GAAG,CAAC,eAAe,gDAAgD;aAC/T,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE1D,8CAA8C;QAC9C,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAA4B,CAAC;YAC/E,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAE3E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;gBAE3C,IAAI,cAAc,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACtC,6FAA6F;oBAC7F,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN,0FAA0F,CAC3F;yBACA,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEtC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,WAAW,EAAE,GAAG,CAAC,EAAE;wBACnB,MAAM,EAAE,cAAc;wBACtB,WAAW,EAAE,cAAc;wBAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,iBAAiB,EAAE,UAAU,CAAC,MAAM;wBACpC,OAAO,EAAE,8DAA8D,cAAc,iBAAiB,GAAG,CAAC,WAAW,mCAAmC,GAAG,CAAC,YAAY,oDAAoD;qBAC7N,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,kCAAkC,GAAG,CAAC,WAAW,aAAa,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChH,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN;;;;;mDAKqC,CACtC;yBACA,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAElD,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,WAAW,EAAE,GAAG,CAAC,EAAE;wBACnB,MAAM,EAAE,mBAAmB;wBAC3B,WAAW,EAAE,cAAc;wBAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,iBAAiB,EAAE,UAAU,CAAC,MAAM;wBACpC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6EAA6E,GAAG,CAAC,WAAW,IAAI;qBAC7H,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;aACxB,OAAO,CACN;;;;;;;6CAOqC,CACtC;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EACxE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1E,kBAAkB,EAClB,KAAK,EACL,GAAG,CAAC,EAAE,CACP,CAAC;QAEJ,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,mBAAmB,OAAO,yBAAyB;SAChF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,4BAA4B,CAClC,UAAkB,EAClB,OAAe,EACf,SAAoD,EACpD,UAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,sCAAsC,CAAC;aAC/C,GAAG,CAAC,UAAU,CAAuC,CAAC;QAEzD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,cAAc,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,GAAG,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,CAAC,EAAE,sBAAsB,GAAG,CAAC,YAAY,UAAU,MAAM,sBAAsB,OAAO,IAAI,CAC9H,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,cAAc,UAAU,wDAAwD,GAAG,CAAC,MAAM,IAAI,CAClH,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,CAAC,EAAE,uFAAuF,SAAS,GAAG,CAC1I,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,qEAAqE,SAAS,iBAAiB,GAAG,CAAC,EAAE,IAAI,CAC1G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAC5B,GAAgB,EAChB,KAAa,EACb,cAAsB,kBAAkB;QAExC,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,iGAAiG,CAClG;aACA,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,GAAgB;QAC1C,OAAO,GAAG,CAAC,UAAU,GAAG,6BAA6B,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IACnF,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CACpB,KAA2B,EAC3B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,SAAS,EACT,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,6CAA6C;aACvH,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN,2HAA2H,CAC5H;iBACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,wCAAwC,6BAA6B,6DAA6D;aAC/J,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC;YACtC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,+BAA+B,GAAG,CAAC,aAAa,eAAe,YAAY,2BAA2B,OAAO,gEAAgE;aAC1M,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACrF,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY;YAClC,CAAC,CAAC,GAAG,YAAY,YAAY,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;YAC9D,CAAC,CAAC,YAAY,CAAC;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;wFASgF,CACjF;aACA,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,YAAY;YAC3B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,kBAAkB,OAAO,yCAAyC,YAAY,IAAI,YAAY,WAAW,GAAG,CAAC,aAAa,kBAAkB;SACzK,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAqB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,QAAQ,EACR,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,2FAA2F;aACrK,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAE7E,IAAI,GAAG,CAAC,YAAY,IAAI,kBAAkB,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,yCAAyC,GAAG,CAAC,EAAE,MAAM,kBAAkB,IAAI,kBAAkB,qHAAqH;aAC5N,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;YAC9B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,qDAAqD,6BAA6B,oFAAoF,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,GAAG;aAC9O,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1D,IAAI,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;YACzC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,4CAA4C,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,0CAA0C,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,uCAAuC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,GAAG;aACtR,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;uFAE+E,CAChF;aACA,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,yCAAyC,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,kCAAkC,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,YAAY,gBAAgB,WAAW,IAAI,kBAAkB,IAAI;SACxI,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAwB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,MAAM,EACN,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,uGAAuG;QACvG,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,0CAA0C,MAAM,GAAG,CAAC,EAAE,CAAC;YACjG,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,yCAAyC,GAAG,CAAC,YAAY,wDAAwD;aAC9I,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;kEAE0D,CAC3D;aACA,GAAG,CAAC,kBAAkB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,uBAAuB,OAAO,IAAI;SAC/D,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,KAA0B;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,sCAAsC,CAAC;aAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAuC,CAAC;QAEhE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,WAAW,cAAc,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAsB,CAAC;QACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GACd,WAAW,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY;YAC7C,CAAC,CAAC,oCAAoC,GAAG,CAAC,YAAY,mBAAmB,WAAW,KAAK;YACzF,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;YAC7C,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW;gBACX,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,aAAa,EAAE,YAAY;gBAC3B,kBAAkB,EAAE,kBAAkB;gBACtC,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,WAAW;oBAClB,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,4DAA4D,UAAU,EAAE;oBAC5I,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,iDAAiD,GAAG,CAAC,MAAM,iGAAiG,UAAU,EAAE;aAC/O,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,aAAa,EAAE,YAAY;YAC3B,kBAAkB,EAAE,kBAAkB;YACtC,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,OAAO,EAAE,6BAA6B,KAAK,CAAC,UAAU,CAAC,MAAM,aAAa,UAAU,mBAAmB,GAAG,CAAC,EAAE,wIAAwI,UAAU,EAAE;SAClQ,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,gBAAgB,CACrB,QAA+B,EAAE,EACjC,QAAgB,IAAI,CAAC,GAAG,EAAE;QAK1B,IAAI,IAAmB,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QAEhD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;iBACnB,OAAO,CAAC,sCAAsC,CAAC;iBAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAuC,CAAC;YAChE,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAE1C,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,IAAI,GAAG,IAAI,CAAC,EAAE;iBACX,OAAO,CAAC,2BAA2B,WAAW,mCAAmC,CAAC;iBAClF,GAAG,CAAC,GAAG,MAAM,CAA6B,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC;YAC/C,MAAM,kBAAkB,GACtB,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;gBACzE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;oBACrB,CAAC,CAAC,UAAU,KAAK,IAAI;oBACrB,KAAK,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAElD,OAAO;gBACL,WAAW,EAAE,CAAC,CAAC,EAAE;gBACjB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,oBAAoB,EAAE,kBAAkB;gBACxC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;gBACjC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;gBACnC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;gBACrC,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,iBAAiB,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzF,kBAAkB,EAAE,CAAC,CAAC,uBAAuB;oBAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC;oBACvC,CAAC,CAAC,IAAI;gBACR,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,SAAS,EAAE,UAAU;gBACrB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,eAAe,EACb,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;oBAC7C,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI;oBACtC,CAAC,CAAC,IAAI;gBACV,YAAY,EAAE,CAAC,CAAC,YAAY;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ function loadPackageVersion() {
9
9
  try {
10
10
  const pkgPath = fileURLToPath(new URL('../package.json', import.meta.url));
11
11
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
12
- return pkg.version ?? '0.3.2';
12
+ return pkg.version ?? '0.4.0';
13
13
  }
14
14
  catch {
15
15
  return '0.3.2';
@@ -45,8 +45,10 @@ Exposed MCP Tools (8):
45
45
  fail_contract Mark CLAIMED contract as terminal FAILED with reason
46
46
  inspect_mesh_state Read-only query of contracts by status, ID, or target_agent
47
47
 
48
- For CLI command usage (dispatch/poll/fulfill/verify/release/extend/fail/inspect/worker), run:
49
- ferrycat-cli --help`);
48
+ CLI Subcommands (same binary: \`npx ferrycat <command>\`):
49
+ demo Zero-config sandbox walkthrough of the full lifecycle (no MCP setup)
50
+ dispatch | poll | verify | fulfill | release | extend | fail | inspect | worker | daemon
51
+ Run \`ferrycat-cli --help\` (after a global install) for the full CLI reference.`);
50
52
  process.exit(0);
51
53
  }
52
54
  const engine = new FerryCatEngine();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}