@ic402/mcp 2.5.3 → 2.5.5

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
@@ -10,10 +10,10 @@ The server identifies itself to MCP clients as:
10
10
 
11
11
  ```
12
12
  name: ic402
13
- version: 2.5.3
13
+ version: (tracks the @ic402/mcp package version)
14
14
  ```
15
15
 
16
- (see `src/index.ts`, the `new McpServer({ name: 'ic402', version: '2.5.3' })` registration).
16
+ (see the `new McpServer({ name, version }, { instructions })` registration in `src/index.ts`).
17
17
 
18
18
  > **Security note up front.** This server is driven by an LLM whose inputs may be influenced by
19
19
  > untrusted web content (prompt injection) while it holds a controller identity capable of
@@ -264,10 +264,12 @@ redirect-safe `safeFetch` (both in `security.ts`):
264
264
  origin 30x's to an internal/metadata target. The x402 probe uses the same per-hop
265
265
  `validateRedirect` check.
266
266
 
267
- > **Known limitation DNS rebinding.** `validateFetchUrl` validates the *literal* host only. A
268
- > public hostname that resolves to a private IP is **not** covered. Closing it requires resolving
269
- > the host and re-checking the resolved addresses before connecting (a resolver seam, noted in
270
- > `security.ts`).
267
+ > **Residualcheck-vs-connect rebinding window.** DNS rebinding is closed: `safeFetch` resolves
268
+ > every host and every redirect hop and rejects the request if *any* resolved address is
269
+ > private/loopback/link-local/metadata (`assertResolvedHostIsPublic`, the SEC-0 fix). What remains is
270
+ > a narrow TOCTOU window — the OS re-resolves at connection time, so a name that flips to an internal
271
+ > IP between the check and the connect is not caught. Fully closing it requires pinning the validated
272
+ > IP at the connection layer (a custom undici dispatcher); noted in `security.ts`.
271
273
 
272
274
  ### The `call` allowlist & blocklist
273
275
 
@@ -322,5 +324,5 @@ When `allowSecurityChanges` or `allowDangerousTools` is enabled, the banner adds
322
324
  `resolveSecurityConfig`, `isToolAllowed` / `DANGEROUS_TOOLS`, `resolveOperatorConfig`.
323
325
  - `src/security.ts` — pure SSRF validation (`validateFetchUrl` and the IPv4/IPv6 helpers) and the
324
326
  redirect-safe `safeFetch`.
325
- - `package.json` — `@ic402/mcp` v2.1.1; `build` runs `tsc`, `start` runs `node dist/index.js`,
327
+ - `package.json` — `@ic402/mcp` package metadata; `build` runs `tsc`, `start` runs `node dist/index.js`,
326
328
  and the `ic402-mcp` bin maps to `dist/index.js`.
package/dist/index.js CHANGED
@@ -194,39 +194,78 @@ function serialize(value) {
194
194
  // ---------------------------------------------------------------------------
195
195
  const server = new McpServer({
196
196
  name: 'ic402',
197
- version: '2.5.3',
197
+ version: '2.5.5',
198
+ }, {
199
+ instructions: 'ic402 MCP server: connects an agent to an ic402-enabled ICP canister for x402 paid HTTP ' +
200
+ 'endpoints, streaming micropayment sessions, encrypted content delivery, marketplace jobs, ' +
201
+ 'and ERC-8004 agent registration on EVM chains.\n' +
202
+ '\n' +
203
+ 'Rules:\n' +
204
+ '1. Call "configure" first — every other tool fails until it succeeds.\n' +
205
+ '2. Read-only tools (never move funds): search, request_session, get_session, ' +
206
+ 'list_sessions, list_services, get_job_result, fetch_content, call.\n' +
207
+ '3. Value-moving tools (escrow, sign, pay, settle, or spend gas): open_session, ' +
208
+ 'close_session, fetch_x402, submit_request, register_agent. session_query spends from a ' +
209
+ 'deposit already escrowed and confirmed at open_session. dispute_job mutates job state on ' +
210
+ 'the canister but signs no transfer.\n' +
211
+ '4. Two-phase confirmation: value-moving tools default to confirm:false and return ' +
212
+ '{status:"confirmation_required", proposal:{amount, recipient, asset, chain}} WITHOUT ' +
213
+ 'acting. Present the proposal to the human; re-invoke with confirm:true only after the ' +
214
+ 'human approves those exact values. Never set confirm:true on the first call, and never ' +
215
+ 'confirm on your own initiative.\n' +
216
+ '5. Token amounts are ATOMIC units passed as decimal integer strings ("1000000" = 1.00 ' +
217
+ 'USDC at 6 decimals). Never floats; JS numbers that lose precision are rejected.\n' +
218
+ '6. Spend caps: every capped spend must pass perCallMaxAtomic and the cumulative ' +
219
+ 'sessionMaxAtomic. Caps, autoPayment, and localDev are operator-set at startup; ' +
220
+ '"configure" cannot loosen them unless the operator enabled security changes out-of-band.\n' +
221
+ '7. Admin tools (upload_content, register_service, enable_service, claim_job, ' +
222
+ 'submit_job_result) and dangerous primitives (sign_typed_data, delete_content) are ' +
223
+ 'DISABLED by default and fail unless the operator enabled them at startup. If one reports ' +
224
+ 'disabled, tell the human — do not retry.',
198
225
  });
199
226
  // ---------------------------------------------------------------------------
200
227
  // Tool: configure
201
228
  // ---------------------------------------------------------------------------
202
- server.tool('configure', 'Connect to an ic402-enabled ICP canister. Must be called before any other tool.', {
203
- canisterId: z.string().describe('Principal of the canister to interact with'),
204
- host: z.string().default('http://localhost:4944').describe('ICP replica URL'),
205
- network: z.string().default('icp:1').describe('CAIP-2 network identifier'),
229
+ server.tool('configure', 'Connect to an ic402-enabled ICP canister and optionally load a signing identity. MUST be ' +
230
+ 'called before any other tool (they all fail until configured). Does not move funds. The ' +
231
+ 'security params (autoPayment, localDev, perCallMaxAtomic, sessionMaxAtomic) are requests ' +
232
+ 'only: they are IGNORED unless the operator started the server with ' +
233
+ 'IC402_MCP_ALLOW_SECURITY_CHANGES=1, and the result reports any ignored fields.', {
234
+ canisterId: z
235
+ .string()
236
+ .describe('Principal of the ic402 canister to connect to (e.g. "rrkah-fqaaa-aaaaa-aaaaq-cai"). Becomes the default target for all other tools.'),
237
+ host: z
238
+ .string()
239
+ .default('http://localhost:4944')
240
+ .describe('ICP replica/gateway URL. Default targets a local replica; the root key is auto-fetched when the host contains "localhost".'),
241
+ network: z
242
+ .string()
243
+ .default('icp:1')
244
+ .describe('CAIP-2 network identifier for ICP-side payments (default "icp:1" = ICP mainnet).'),
206
245
  identityPem: z
207
246
  .string()
208
247
  .optional()
209
- .describe('Path to a secp256k1 PEM file for signing (e.g. identity.pem)'),
248
+ .describe('Filesystem path to a secp256k1 private-key PEM (SEC1 "EC PRIVATE KEY" or PKCS#8 "PRIVATE KEY") used to sign canister calls. Falls back to the ICP_IDENTITY_PEM env var; anonymous if neither is set. An unparseable PEM is a hard error, not a silent fallback.'),
210
249
  ledger: z
211
250
  .string()
212
251
  .optional()
213
- .describe('ICRC-2 ledger canister ID for auto-payment (e.g. ckUSDC)'),
252
+ .describe('ICRC-2 ledger canister ID (e.g. the ckUSDC ledger) used for ICP-side payments: session escrow deposits and submit_request auto-payment. Required for ICP paid flows.'),
214
253
  autoPayment: z
215
254
  .boolean()
216
255
  .default(false)
217
- .describe('Allow paid endpoints to auto-approve/pay (opt-in). Even when true, spends are capped and confirmation-gated. Default false.'),
256
+ .describe('Request that paid endpoints may auto-approve/pay. IGNORED unless the operator enabled security changes at startup; even when honored, every spend stays capped and confirm-gated. Default false.'),
218
257
  localDev: z
219
258
  .boolean()
220
259
  .default(false)
221
- .describe('Allow http://localhost and private/loopback fetch targets (local development only). Default false.'),
260
+ .describe('Request permission to fetch http://localhost and private/loopback URLs (local development only). IGNORED unless the operator enabled security changes at startup. Default false.'),
222
261
  perCallMaxAtomic: z
223
262
  .string()
224
263
  .optional()
225
- .describe('Per-call max spend in atomic token units (caps a single signed transfer). Defaults to a small value.'),
264
+ .describe('Requested per-call spend cap in atomic token units, as a decimal integer string (caps a single signed transfer). IGNORED unless the operator enabled security changes. Default 1000000 (= 1.00 USDC at 6 decimals).'),
226
265
  sessionMaxAtomic: z
227
266
  .string()
228
267
  .optional()
229
- .describe('Cumulative session max spend in atomic token units across all signed transfers. Defaults to a small value.'),
268
+ .describe('Requested cumulative spend cap for this whole server session in atomic token units, as a decimal integer string. IGNORED unless the operator enabled security changes. Default 5000000 (= 5.00 USDC).'),
230
269
  }, async ({ canisterId, host, network, identityPem, ledger, autoPayment, localDev, perCallMaxAtomic, sessionMaxAtomic, }) => {
231
270
  // Load identity from PEM if provided, otherwise check env, otherwise anonymous.
232
271
  // icp identity export outputs PKCS#8 ("BEGIN PRIVATE KEY"), but
@@ -315,12 +354,15 @@ server.tool('configure', 'Connect to an ic402-enabled ICP canister. Must be call
315
354
  // ---------------------------------------------------------------------------
316
355
  // Tool: search
317
356
  // ---------------------------------------------------------------------------
318
- server.tool('search', 'Call the search endpoint on an ic402 canister (x402 charge flow). Returns results or a payment requirement.', {
319
- query: z.string().describe('Search query text'),
357
+ server.tool('search', 'Probe the canister\'s paid "search" endpoint with NO payment attached (x402 charge flow). ' +
358
+ 'Never signs or pays. Returns {status:"ok", results} when access is free/covered, or ' +
359
+ '{status:"payment_required", requirements} describing what payment the canister demands — ' +
360
+ 'it does not pay automatically.', {
361
+ query: z.string().describe('Search query text passed to the canister search method.'),
320
362
  canisterId: z
321
363
  .string()
322
364
  .optional()
323
- .describe('Canister to call (defaults to configured canister)'),
365
+ .describe('Target canister (defaults to the canister set by configure).'),
324
366
  }, async ({ query, canisterId }) => {
325
367
  const cid = canisterId ?? defaultCanisterId;
326
368
  if (!cid)
@@ -358,11 +400,13 @@ server.tool('search', 'Call the search endpoint on an ic402 canister (x402 charg
358
400
  // ---------------------------------------------------------------------------
359
401
  // Tool: request_session
360
402
  // ---------------------------------------------------------------------------
361
- server.tool('request_session', 'Request a session intent from a canister — returns pricing (suggestedDeposit, costPerCall) without opening a session.', {
403
+ server.tool('request_session', 'Fetch the session intent from the canister — pricing such as suggestedDeposit and ' +
404
+ 'costPerCall — WITHOUT opening a session or moving funds. Read-only. Call this before ' +
405
+ 'open_session to learn the deposit the canister expects.', {
362
406
  canisterId: z
363
407
  .string()
364
408
  .optional()
365
- .describe('Canister to query (defaults to configured canister)'),
409
+ .describe('Target canister (defaults to the canister set by configure).'),
366
410
  }, async ({ canisterId }) => {
367
411
  const cid = canisterId ?? defaultCanisterId;
368
412
  if (!cid)
@@ -375,37 +419,47 @@ server.tool('request_session', 'Request a session intent from a canister — ret
375
419
  // ---------------------------------------------------------------------------
376
420
  // Tool: open_session
377
421
  // ---------------------------------------------------------------------------
378
- server.tool('open_session', 'Open a streaming micropayment session. For ICP: uses ICRC-2 escrow. For EVM: pass evmTxHash proving the USDC deposit.', {
379
- canisterId: z.string().optional().describe('Canister to open session on'),
422
+ server.tool('open_session', 'Open a streaming micropayment session by escrowing a deposit this MOVES FUNDS. Two-phase: ' +
423
+ 'with confirm:false (default) it returns a confirmation_required proposal ' +
424
+ '(amount/recipient/asset/chain) and does nothing; re-invoke with confirm:true only after ' +
425
+ 'the human approves. ICP path: ICRC-2 escrow via the ledger set in configure. EVM path: ' +
426
+ 'pass evmTxHash proving an on-chain USDC deposit, or an EIP-3009 authorization for the ' +
427
+ 'canister to pull the deposit, plus evmNetwork/evmSender/evmToken/evmRecipient. The deposit ' +
428
+ 'is checked against and counted toward the spend caps. Returns {sessionId, deposited, ' +
429
+ 'remaining}; use sessionId with session_query, get_session, and close_session.', {
430
+ canisterId: z
431
+ .string()
432
+ .optional()
433
+ .describe('Canister to open the session on (defaults to the canister set by configure).'),
380
434
  maxDeposit: z
381
435
  .string()
382
436
  .optional()
383
- .describe('Max deposit in token units (defaults to canister suggestion)'),
437
+ .describe('Escrow deposit in ATOMIC token units as a decimal integer string (e.g. "1000000" = 1.00 USDC at 6 decimals). Omit to use the canister\'s suggestedDeposit from request_session.'),
384
438
  evmTxHash: z
385
439
  .string()
386
440
  .regex(/^0x[0-9a-fA-F]{64}$/, 'Must be a 0x-prefixed 32-byte hex hash')
387
441
  .optional()
388
- .describe('EVM tx hash proving USDC deposit (for EVM sessions)'),
442
+ .describe("EVM sessions only: hash of the on-chain tx that deposited USDC to the canister's EVM address (0x + 64 hex chars)."),
389
443
  evmNetwork: z
390
444
  .string()
391
445
  .regex(/^eip155:\d+$/, 'Must be CAIP-2 format: eip155:<chainId>')
392
446
  .optional()
393
- .describe('CAIP-2 network, e.g., "eip155:84532" (for EVM sessions)'),
447
+ .describe('EVM sessions only: CAIP-2 chain of the deposit, format "eip155:<chainId>" (e.g. "eip155:84532" = Base Sepolia).'),
394
448
  evmSender: z
395
449
  .string()
396
450
  .regex(/^0x[0-9a-fA-F]{40}$/, 'Must be a 0x-prefixed 20-byte EVM address')
397
451
  .optional()
398
- .describe('Payer EVM address for refund (for EVM sessions)'),
452
+ .describe("EVM sessions only: the payer's EVM address (0x + 40 hex chars); the unused remainder is refunded here on close."),
399
453
  evmToken: z
400
454
  .string()
401
455
  .regex(/^0x[0-9a-fA-F]{40}$/, 'Must be a 0x-prefixed 20-byte EVM address')
402
456
  .optional()
403
- .describe('ERC-20 token contract address (for EVM sessions)'),
457
+ .describe('EVM sessions only: ERC-20 contract address of the deposit token (e.g. USDC), 0x + 40 hex chars.'),
404
458
  evmRecipient: z
405
459
  .string()
406
460
  .regex(/^0x[0-9a-fA-F]{40}$/, 'Must be a 0x-prefixed 20-byte EVM address')
407
461
  .optional()
408
- .describe('Canister EVM address for settlement (for EVM sessions)'),
462
+ .describe("EVM sessions only: the canister's EVM address that receives the settled amount, 0x + 40 hex chars."),
409
463
  authorization: z
410
464
  .object({
411
465
  from: z.string(),
@@ -419,11 +473,11 @@ server.tool('open_session', 'Open a streaming micropayment session. For ICP: use
419
473
  s: z.array(z.number()),
420
474
  })
421
475
  .optional()
422
- .describe('EIP-3009 authorization for EVM session deposit'),
476
+ .describe('EVM sessions only: a signed EIP-3009 transferWithAuthorization authorizing the deposit pull. value/validAfter/validBefore MUST be decimal integer strings (uint256 — JS numbers that lose precision are rejected). nonce, r, s are 32-byte number[] arrays; v is the ECDSA recovery value.'),
423
477
  confirm: z
424
478
  .boolean()
425
479
  .default(false)
426
- .describe('Authorize the escrow deposit. Returns the proposed deposit for review when false.'),
480
+ .describe('Two-phase gate: false (default) returns the proposed deposit for human review without moving funds; true executes the escrow deposit. Only pass true after the human approves the proposal.'),
427
481
  }, async ({ canisterId, maxDeposit, evmTxHash, evmNetwork, evmSender, evmToken, evmRecipient, authorization, confirm, }) => {
428
482
  const c = requireClient();
429
483
  const cid = canisterId ?? defaultCanisterId;
@@ -513,9 +567,14 @@ server.tool('open_session', 'Open a streaming micropayment session. For ICP: use
513
567
  // ---------------------------------------------------------------------------
514
568
  // Tool: session_query
515
569
  // ---------------------------------------------------------------------------
516
- server.tool('session_query', 'Send a query through an open session (auto-signs a voucher). Each call consumes costPerCall from the deposit.', {
517
- sessionId: z.string().describe('Session ID from open_session'),
518
- question: z.string().describe('Question or query text'),
570
+ server.tool('session_query', 'Send a query through an already-open session. Auto-signs a micropayment voucher; each call ' +
571
+ 'consumes costPerCall from the deposit that was escrowed (and human-confirmed) at ' +
572
+ 'open_session, so no new confirmation is requested here. Returns {answer, consumed, ' +
573
+ 'remaining}. Fails if the sessionId is not active in this server process.', {
574
+ sessionId: z
575
+ .string()
576
+ .describe('Session ID returned by open_session (must be active in this server process).'),
577
+ question: z.string().describe('Query text to send through the session.'),
519
578
  }, async ({ sessionId, question }) => {
520
579
  const session = activeSessions.get(sessionId);
521
580
  if (!session)
@@ -537,8 +596,9 @@ server.tool('session_query', 'Send a query through an open session (auto-signs a
537
596
  // ---------------------------------------------------------------------------
538
597
  // Tool: get_session
539
598
  // ---------------------------------------------------------------------------
540
- server.tool('get_session', 'Get the current state of an active session (consumed, remaining, voucher count).', {
541
- sessionId: z.string().describe('Session ID'),
599
+ server.tool('get_session', 'Read the state of an active session: deposited, consumed, and remaining atomic amounts. ' +
600
+ 'Read-only; no funds moved. Only sees sessions opened by this server process.', {
601
+ sessionId: z.string().describe('Session ID returned by open_session.'),
542
602
  }, async ({ sessionId }) => {
543
603
  const session = activeSessions.get(sessionId);
544
604
  if (!session)
@@ -560,12 +620,19 @@ server.tool('get_session', 'Get the current state of an active session (consumed
560
620
  // ---------------------------------------------------------------------------
561
621
  // Tool: close_session
562
622
  // ---------------------------------------------------------------------------
563
- server.tool('close_session', 'Close a session — settles consumed amount on-chain and refunds the remainder. Returns a payment receipt. Settles value: pass confirm:true after reviewing the consumed amount.', {
564
- sessionId: z.string().describe('Session ID to close'),
623
+ server.tool('close_session', 'Close an active session — SETTLES VALUE on-chain: the consumed amount is paid out and the ' +
624
+ 'unused remainder is refunded to the payer. Two-phase: with confirm:false (default) it ' +
625
+ 'returns the consumed/refund amounts for review without acting; re-invoke with confirm:true ' +
626
+ 'after the human approves. Returns a payment receipt and removes the session from the ' +
627
+ 'active list. (The consumed amount was already counted against the spend caps at deposit ' +
628
+ 'time, so it is not re-charged here.)', {
629
+ sessionId: z
630
+ .string()
631
+ .describe('Session ID returned by open_session (must be active in this server process).'),
565
632
  confirm: z
566
633
  .boolean()
567
634
  .default(false)
568
- .describe('Authorize the on-chain settlement. Returns the consumed amount for review when false.'),
635
+ .describe('Two-phase gate: false (default) returns the consumed amount and refund for review; true executes the on-chain settlement. Only pass true after the human approves.'),
569
636
  }, async ({ sessionId, confirm }) => {
570
637
  const session = activeSessions.get(sessionId);
571
638
  if (!session)
@@ -593,7 +660,8 @@ server.tool('close_session', 'Close a session — settles consumed amount on-cha
593
660
  // ---------------------------------------------------------------------------
594
661
  // Tool: list_sessions
595
662
  // ---------------------------------------------------------------------------
596
- server.tool('list_sessions', 'List all active sessions managed by this MCP server.', {}, async () => {
663
+ server.tool('list_sessions', 'List all sessions currently held by this MCP server process (sessionId, deposited, ' +
664
+ 'consumed, remaining). Read-only; no funds moved. Sessions opened elsewhere are not visible.', {}, async () => {
597
665
  const sessions = Array.from(activeSessions.entries()).map(([id, s]) => ({
598
666
  sessionId: id,
599
667
  deposited: s.deposited.toString(),
@@ -605,12 +673,19 @@ server.tool('list_sessions', 'List all active sessions managed by this MCP serve
605
673
  // ---------------------------------------------------------------------------
606
674
  // Tool: fetch_content
607
675
  // ---------------------------------------------------------------------------
608
- server.tool('fetch_content', 'Fetch content from a ContentDelivery response. Supports inline, httpUrl, assetCanister, and canisterQuery delivery methods.', {
609
- delivery: z.string().describe('ContentDelivery JSON string (as returned by content endpoints)'),
676
+ server.tool('fetch_content', 'Retrieve content described by a ContentDelivery JSON payload previously returned by a ' +
677
+ 'canister content endpoint. Does NOT purchase or pay for anything — the grant must already ' +
678
+ 'exist. Delivery modes: inline bytes; httpUrl (SSRF-guarded fetch); assetCanister (served ' +
679
+ 'from https://<canisterId>.icp0.io); canisterQuery (chunked reads, restricted to the ' +
680
+ 'getChunk/getContent query methods, max 10000 chunks). Returns {contentId, mimeType, ' +
681
+ 'content} with the bytes decoded as UTF-8 text.', {
682
+ delivery: z
683
+ .string()
684
+ .describe('The ContentDelivery JSON string exactly as returned by a content endpoint: an object with "grant" and "delivery" fields, where delivery has exactly one of inline, httpUrl, assetCanister, canisterQuery.'),
610
685
  canisterId: z
611
686
  .string()
612
687
  .optional()
613
- .describe('Canister ID for canisterQuery delivery (defaults to configured canister)'),
688
+ .describe('Canister to read chunks from (canisterQuery mode only; defaults to the canister set by configure). Ignored for other delivery modes.'),
614
689
  }, async ({ delivery: deliveryJson, canisterId }) => {
615
690
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
616
691
  let parsed;
@@ -734,14 +809,29 @@ function errorResult(e) {
734
809
  // ---------------------------------------------------------------------------
735
810
  // Tool: fetch_x402
736
811
  // ---------------------------------------------------------------------------
737
- server.tool('fetch_x402', 'Fetch from an x402-gated URL. Full flow: probe URL canister signs payment → retry with payment header. Signing moves value: pass confirm:true to authorize after reviewing the proposed amount/recipient.', {
738
- url: z.string().describe('The x402-gated URL to fetch'),
739
- chainId: z.number().default(84532).describe('EVM chain ID (default: Base Sepolia 84532)'),
740
- canisterId: z.string().optional().describe('Canister to sign with (defaults to configured)'),
812
+ server.tool('fetch_x402', "Fetch an x402 (HTTP 402) payment-gated URL, optionally paying from the canister's EVM " +
813
+ 'wallet. confirm:false (default) = PROBE ONLY: nothing is signed, no funds move; returns ' +
814
+ 'the body if the URL is free, or a confirmation_required proposal ' +
815
+ '(amount/recipient/asset/chain) if payment is demanded. confirm:true = the canister SIGNS ' +
816
+ 'the payment from its own EVM address and retries the URL with the payment header — this ' +
817
+ 'MOVES FUNDS, is checked against the spend caps, and must only be used after the human ' +
818
+ 'approves the exact amount/recipient/asset/chain. The URL and every redirect hop are ' +
819
+ 'SSRF-validated.', {
820
+ url: z
821
+ .string()
822
+ .describe('The x402-gated URL to fetch. Must be a public https URL (private/loopback/metadata hosts are rejected; http://localhost only with localDev).'),
823
+ chainId: z
824
+ .number()
825
+ .default(84532)
826
+ .describe("Fallback EVM chain ID used for the probe and when the server's payment requirement lacks a parseable eip155 network (default 84532 = Base Sepolia). The requirement's own network wins when present."),
827
+ canisterId: z
828
+ .string()
829
+ .optional()
830
+ .describe('Canister whose tECDSA EVM key signs the payment (defaults to the canister set by configure).'),
741
831
  confirm: z
742
832
  .boolean()
743
833
  .default(false)
744
- .describe('Authorize signing the proposed payment. Probe-only (no signing) when false.'),
834
+ .describe('Two-phase gate: false (default) probes only and never signs; true signs and sends the payment shown in the prior proposal. Only pass true after the human approves.'),
745
835
  }, async ({ url, chainId, canisterId, confirm }) => {
746
836
  requireClient();
747
837
  requireAgent();
@@ -866,14 +956,28 @@ server.tool('fetch_x402', 'Fetch from an x402-gated URL. Full flow: probe URL
866
956
  // ---------------------------------------------------------------------------
867
957
  // Tool: register_agent
868
958
  // ---------------------------------------------------------------------------
869
- server.tool('register_agent', 'Register the canister as an ERC-8004 agent on-chain. Full flow: get nonce+gas canister signs → broadcast → poll receipt. Broadcasts a signed tx (spends gas): pass confirm:true to authorize.', {
870
- chainId: z.number().default(84532).describe('EVM chain ID (default: Base Sepolia 84532)'),
871
- canisterId: z.string().optional().describe('Canister to register (defaults to configured)'),
872
- rpcUrl: z.string().optional().describe('Custom EVM RPC URL (defaults to public RPC)'),
959
+ server.tool('register_agent', 'Register the canister as an ERC-8004 agent on an EVM chain: fetch nonce+gas, canister signs ' +
960
+ 'the registration tx with its tECDSA key, broadcast, poll for the receipt. BROADCASTS A ' +
961
+ "TRANSACTION that spends native gas from the canister's EVM address; no token amount is " +
962
+ 'involved, so the spend caps do NOT apply — the confirm gate is the only control. ' +
963
+ 'confirm:false (default) returns a proposal without signing anything. Returns {tokenId, ' +
964
+ 'txHash} on success.', {
965
+ chainId: z
966
+ .number()
967
+ .default(84532)
968
+ .describe('EVM chain ID to register on (default 84532 = Base Sepolia).'),
969
+ canisterId: z
970
+ .string()
971
+ .optional()
972
+ .describe('Canister to register as the agent (defaults to the canister set by configure).'),
973
+ rpcUrl: z
974
+ .string()
975
+ .optional()
976
+ .describe('Optional custom EVM JSON-RPC endpoint URL (defaults to a public RPC for the chain). SSRF-validated: private/internal hosts are rejected.'),
873
977
  confirm: z
874
978
  .boolean()
875
979
  .default(false)
876
- .describe('Authorize signing and broadcasting the registration tx (spends gas).'),
980
+ .describe('Two-phase gate: false (default) returns a proposal without signing; true signs and broadcasts the registration tx (spends native gas). Only pass true after the human approves.'),
877
981
  }, async ({ chainId, canisterId, rpcUrl, confirm }) => {
878
982
  const c = requireClient();
879
983
  const cid = canisterId ?? defaultCanisterId;
@@ -925,7 +1029,8 @@ server.tool('register_agent', 'Register the canister as an ERC-8004 agent on-cha
925
1029
  // ---------------------------------------------------------------------------
926
1030
  // Tool: list_services
927
1031
  // ---------------------------------------------------------------------------
928
- server.tool('list_services', 'List available paid services from the canister.', {}, async () => {
1032
+ server.tool('list_services', 'List the paid services registered on the canister. Read-only; no funds moved. Use this ' +
1033
+ 'before submit_request to find a serviceId.', {}, async () => {
929
1034
  const c = requireClient();
930
1035
  const services = await c.listServices();
931
1036
  return textResult(serialize(services));
@@ -933,13 +1038,21 @@ server.tool('list_services', 'List available paid services from the canister.',
933
1038
  // ---------------------------------------------------------------------------
934
1039
  // Tool: submit_request
935
1040
  // ---------------------------------------------------------------------------
936
- server.tool('submit_request', 'Submit a paid service request. If the service demands payment, you must opt into autoPayment (via "configure") and pass confirm:true after reviewing the amount/recipient. Returns a job ID for polling.', {
937
- serviceId: z.string().describe('Service ID to request'),
938
- params: z.string().default('').describe('Job parameters (UTF-8 string, sent as bytes)'),
1041
+ server.tool('submit_request', 'Submit a marketplace service request; MOVES FUNDS when the service is paid. Flow: the price ' +
1042
+ 'is quoted via a read-only query first; a total of 0 (free or session-billed) submits ' +
1043
+ 'immediately with no payment; a paid service requires BOTH operator-enabled autoPayment AND ' +
1044
+ 'confirm:true. With confirm:false it returns a confirmation_required proposal with the ' +
1045
+ 'exact total (price + ledger fee) — the amount the spend caps are checked against. Returns ' +
1046
+ '{jobId} (plus paidAmount when paid); poll the result with get_job_result.', {
1047
+ serviceId: z.string().describe('ID of the service to request (see list_services).'),
1048
+ params: z
1049
+ .string()
1050
+ .default('')
1051
+ .describe('Job parameters as a UTF-8 string; delivered to the service as raw bytes.'),
939
1052
  confirm: z
940
1053
  .boolean()
941
1054
  .default(false)
942
- .describe('Authorize auto-payment of the amount the canister demands.'),
1055
+ .describe('Two-phase gate for paid services: false (default) returns the quoted total for review; true approves and pays it (price + ledger fee). Ignored for free services. Only pass true after the human approves.'),
943
1056
  }, async ({ serviceId, params, confirm }) => {
944
1057
  const c = requireClient();
945
1058
  const cid = defaultCanisterId;
@@ -1021,9 +1134,13 @@ server.tool('submit_request', 'Submit a paid service request. If the service dem
1021
1134
  // ---------------------------------------------------------------------------
1022
1135
  // Tool: get_job_result
1023
1136
  // ---------------------------------------------------------------------------
1024
- server.tool('get_job_result', 'Poll for a job result. Waits until the job completes or times out.', {
1025
- jobId: z.string().describe('Job ID from submit_request'),
1026
- maxAttempts: z.number().default(15).describe('Max poll attempts'),
1137
+ server.tool('get_job_result', 'Poll the canister for a job result until it completes or the attempt limit is reached. ' +
1138
+ 'Read-only; no funds moved.', {
1139
+ jobId: z.string().describe('Job ID returned by submit_request.'),
1140
+ maxAttempts: z
1141
+ .number()
1142
+ .default(15)
1143
+ .describe('Maximum polling attempts before giving up (default 15).'),
1027
1144
  }, async ({ jobId, maxAttempts }) => {
1028
1145
  const c = requireClient();
1029
1146
  try {
@@ -1037,9 +1154,14 @@ server.tool('get_job_result', 'Poll for a job result. Waits until the job comple
1037
1154
  // ---------------------------------------------------------------------------
1038
1155
  // Tool: dispute_job
1039
1156
  // ---------------------------------------------------------------------------
1040
- server.tool('dispute_job', 'Dispute a job result (for BuyerConfirm verification services).', {
1041
- jobId: z.string().describe('Job ID to dispute'),
1042
- reason: z.string().describe('Reason for dispute'),
1157
+ server.tool('dispute_job', 'Dispute a job result on the canister (only meaningful for services using BuyerConfirm ' +
1158
+ "verification). State-changing on the canister and may affect how the job's payment " +
1159
+ 'settles, but signs no transfer from this server. Use only for a job you submitted whose ' +
1160
+ 'result is wrong or missing.', {
1161
+ jobId: z.string().describe('Job ID of the job whose result you are disputing.'),
1162
+ reason: z
1163
+ .string()
1164
+ .describe('Human-readable reason for the dispute (recorded on the canister).'),
1043
1165
  }, async ({ jobId, reason }) => {
1044
1166
  const c = requireClient();
1045
1167
  try {
@@ -1058,13 +1180,23 @@ server.tool('dispute_job', 'Dispute a job result (for BuyerConfirm verification
1058
1180
  // read) in the IDL. Anything not listed is rejected; the LLM must use the
1059
1181
  // dedicated, capped, confirmation-gated tool for state-changing/signing calls.
1060
1182
  // isCallMethodAllowed + the READONLY_CALL_ALLOWLIST / CALL_BLOCK_SUBSTRINGS tables live in guards.ts (testable).
1061
- server.tool('call', 'Call a READ-ONLY/query method on the configured canister (allowlisted getters only). State-changing, signing, payment, and admin methods are blocked here — use their dedicated tools.', {
1062
- method: z.string().describe('Canister query/read method name (allowlisted getters only)'),
1063
- args: z.string().default('[]').describe('JSON array of arguments'),
1183
+ server.tool('call', 'Escape hatch: invoke a READ-ONLY query method on the canister. Allowed: a curated getter ' +
1184
+ 'allowlist (listContent, getChunk, getAgentCard, getAgentId, verifyGrant, listServices, ' +
1185
+ 'getJobStatus, getJob, getJobResult, keccak256, getPolicyConfig), plus other methods named ' +
1186
+ 'get*/list*/fetch*/is* whose names contain no state-changing keywords. Any signing, ' +
1187
+ 'payment, admin, or otherwise state-changing method is rejected — use its dedicated tool ' +
1188
+ 'instead. No funds moved.', {
1189
+ method: z
1190
+ .string()
1191
+ .describe('Read-only canister method name: on the allowlist above, or a get*/list*/fetch*/is* getter with no blocked keywords.'),
1192
+ args: z
1193
+ .string()
1194
+ .default('[]')
1195
+ .describe('Positional arguments as a JSON array string (default "[]"). Candid opt values are encoded as [] (none) or [value] (some).'),
1064
1196
  canisterId: z
1065
1197
  .string()
1066
1198
  .optional()
1067
- .describe('Canister to call (defaults to configured canister)'),
1199
+ .describe('Target canister (defaults to the canister set by configure).'),
1068
1200
  }, async ({ method, args, canisterId }) => {
1069
1201
  const cid = canisterId ?? defaultCanisterId;
1070
1202
  if (!cid)
@@ -1117,8 +1249,14 @@ async function invokeCanisterMethod(cid, method, argsJson) {
1117
1249
  function adminTool(toolName, canisterMethod, description, argsHint, note) {
1118
1250
  server.tool(toolName, description, {
1119
1251
  args: z.string().describe(argsHint),
1120
- canisterId: z.string().optional().describe('Canister to call (defaults to configured)'),
1121
- confirm: z.boolean().default(false).describe('Authorize this state-changing/signing action.'),
1252
+ canisterId: z
1253
+ .string()
1254
+ .optional()
1255
+ .describe('Target canister (defaults to the canister set by configure).'),
1256
+ confirm: z
1257
+ .boolean()
1258
+ .default(false)
1259
+ .describe('Two-phase gate: false (default) returns a confirmation_required proposal without acting; true executes this state-changing/signing action. Only pass true after the human approves.'),
1122
1260
  }, async ({ args, canisterId, confirm }) => {
1123
1261
  // S1/S9 + SEC-3: refuse dangerous primitives (raw EIP-712 signing oracle, destructive
1124
1262
  // delete) AND state-changing admin tools (register/enable service, claim/submit job,
@@ -1146,13 +1284,33 @@ function adminTool(toolName, canisterMethod, description, argsHint, note) {
1146
1284
  }
1147
1285
  });
1148
1286
  }
1149
- adminTool('upload_content', 'uploadContent', 'Upload + encrypt content into the canister ContentStore (controller-gated, state-changing).', 'JSON array: [id, mimeType, dataBytes] where dataBytes is a number[] of the raw bytes.', 'Uploads and encrypts content into the canister (controller-gated).');
1150
- adminTool('delete_content', 'deleteContent', 'Delete a content entry from the canister ContentStore (controller-gated, destructive).', 'JSON array: [id].', 'Permanently deletes content from the canister (controller-gated, destructive).');
1151
- adminTool('register_service', 'registerService', 'Register a paid service in the marketplace (controller-gated, state-changing).', 'JSON array of registerService args: [name, description, serviceType, pricing, verificationMethod, verifierCanisterId?, verificationKey?, delivery, timeout].', 'Registers a marketplace service on the canister (controller-gated).');
1152
- adminTool('enable_service', 'enableService', 'Enable a registered service so it can accept paid requests (controller-gated).', 'JSON array: [serviceId].', 'Enables a marketplace service on the canister (controller-gated).');
1153
- adminTool('claim_job', 'claimJob', 'Operator claims a pending marketplace job (state-changing).', 'JSON array: [jobId].', 'Claims a marketplace job for the operator.');
1154
- adminTool('submit_job_result', 'submitJobResult', 'Operator submits a job result (and optional proof) for verification + settlement (state-changing).', 'JSON array: [jobId, resultBytes, proof?, actualCost?].', 'Submits a job result to the canister (triggers verification + settlement).');
1155
- adminTool('sign_typed_data', 'signTypedData', 'Sign arbitrary EIP-712 typed data with the canister tECDSA key. SENSITIVE — this is a generic signing primitive; only sign digests you constructed and trust.', 'JSON array: [domainSeparatorBytes, structHashBytes] two 32-byte number[] arrays.', 'Signs an EIP-712 digest with the canister key (a generic signature primitive — forgeable use is dangerous).');
1287
+ adminTool('upload_content', 'uploadContent', 'Upload and encrypt content into the canister ContentStore for later paid delivery. ' +
1288
+ 'State-changing; controller-gated (the configured identity must control the canister). ' +
1289
+ 'DISABLED by default fails unless the operator started the server with ' +
1290
+ 'IC402_MCP_ALLOW_ADMIN_TOOLS=1. Requires confirm:true.', 'JSON array [id, mimeType, dataBytes]: id string, mimeType string (e.g. "text/plain"), dataBytes a number[] of the raw content bytes.', 'Uploads and encrypts content into the canister (controller-gated).');
1291
+ adminTool('delete_content', 'deleteContent', 'Permanently delete a content entry from the canister ContentStore. DESTRUCTIVE and ' +
1292
+ 'irreversible; controller-gated. DISABLED by default fails unless the operator started ' +
1293
+ 'the server with IC402_MCP_ALLOW_DANGEROUS_TOOLS=1. Requires confirm:true.', 'JSON array [id]: the content ID string to delete.', 'Permanently deletes content from the canister (controller-gated, destructive).');
1294
+ adminTool('register_service', 'registerService', 'Register a paid service in the canister marketplace. State-changing; controller-gated. ' +
1295
+ 'DISABLED by default — fails unless the operator started the server with ' +
1296
+ 'IC402_MCP_ALLOW_ADMIN_TOOLS=1. Requires confirm:true. Use enable_service afterwards so ' +
1297
+ 'the service can accept paid requests.', 'JSON array of positional registerService args: [name, description, serviceType, pricing, verificationMethod, verifierCanisterId?, verificationKey?, delivery, timeout]. Values must mirror the canister Candid types; optional (opt) args are encoded as [] (none) or [value] (some).', 'Registers a marketplace service on the canister (controller-gated).');
1298
+ adminTool('enable_service', 'enableService', 'Enable a registered marketplace service so it can accept paid requests. State-changing; ' +
1299
+ 'controller-gated. DISABLED by default — fails unless the operator started the server with ' +
1300
+ 'IC402_MCP_ALLOW_ADMIN_TOOLS=1. Requires confirm:true.', 'JSON array [serviceId]: the service ID string to enable.', 'Enables a marketplace service on the canister (controller-gated).');
1301
+ adminTool('claim_job', 'claimJob', 'Claim a pending marketplace job for the operator so its result can be worked and submitted. ' +
1302
+ 'State-changing. DISABLED by default — fails unless the operator started the server with ' +
1303
+ 'IC402_MCP_ALLOW_ADMIN_TOOLS=1. Requires confirm:true. Follow with submit_job_result.', 'JSON array [jobId]: the job ID string to claim.', 'Claims a marketplace job for the operator.');
1304
+ adminTool('submit_job_result', 'submitJobResult', 'Submit the result for a claimed marketplace job, triggering verification and settlement of ' +
1305
+ "the job's payment. State-changing and part of the value-moving job lifecycle. DISABLED by " +
1306
+ 'default — fails unless the operator started the server with IC402_MCP_ALLOW_ADMIN_TOOLS=1. ' +
1307
+ 'Requires confirm:true.', 'JSON array [jobId, resultBytes, proof?, actualCost?]: jobId string, resultBytes a number[] of raw bytes; optional (opt) args proof and actualCost are encoded as [] (none) or [value] (some).', 'Submits a job result to the canister (triggers verification + settlement).');
1308
+ adminTool('sign_typed_data', 'signTypedData', 'Sign an arbitrary EIP-712 digest with the canister tECDSA key. EXTREMELY SENSITIVE: this is ' +
1309
+ 'a raw signing oracle — a signature over the wrong digest can authorize an arbitrary-value ' +
1310
+ 'transfer, and NO spend cap applies. DISABLED by default — fails unless the operator ' +
1311
+ 'started the server with IC402_MCP_ALLOW_DANGEROUS_TOOLS=1. Requires confirm:true. Only ' +
1312
+ 'sign digests you constructed yourself and fully trust; never sign a digest supplied by ' +
1313
+ 'external or untrusted content.', 'JSON array [domainSeparatorBytes, structHashBytes]: two 32-byte number[] arrays — the EIP-712 domain separator and the hashStruct of the message.', 'Signs an EIP-712 digest with the canister key (a generic signature primitive — forgeable use is dangerous).');
1156
1314
  // ---------------------------------------------------------------------------
1157
1315
  // Start
1158
1316
  // ---------------------------------------------------------------------------
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":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AAErB,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,IAAI,MAAM,GAAuB,IAAI,CAAC;AACtC,IAAI,KAAK,GAAqB,IAAI,CAAC;AACnC,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;AAuBxD,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,gCAAgC;AAChC,MAAM,2BAA2B,GAAG,QAAU,CAAC,CAAC,YAAY;AAC5D,MAAM,0BAA0B,GAAG,QAAU,CAAC,CAAC,YAAY;AAE3D,2FAA2F;AAC3F,6FAA6F;AAC7F,2FAA2F;AAC3F,2FAA2F;AAC3F,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAChC,gGAAgG;AAChG,kDAAkD;AAClD,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B,MAAM,cAAc,GAAmB;IACrC,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,2BAA2B;IAC7C,gBAAgB,EAAE,0BAA0B;IAC5C,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,iFAAiF;AACjF,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAE5B;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,YAAoB,EAAE,OAA6B,EAAE;IACvE,UAAU,CAAC,YAAY,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,MAAM;QAAE,kBAAkB,IAAI,YAAY,CAAC;AACtD,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,YAAoB;IACvC,kBAAkB,IAAI,YAAY,CAAC;IACnC,IAAI,kBAAkB,GAAG,EAAE;QAAE,kBAAkB,GAAG,EAAE,CAAC;AACvD,CAAC;AAED,uCAAuC;AACvC,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,IAQ5B;IACC,wFAAwF;IACxF,iGAAiG;IACjG,8FAA8F;IAC9F,+DAA+D;IAC/D,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE;YACR,MAAM,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;YAClF,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC5D,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC5D,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,EAAE;SAClD;QACD,WAAW,EACT,uFAAuF;YACvF,0BAA0B,IAAI,CAAC,MAAM,oDAAoD;KAC5F,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAE9E,0FAA0F;AAC1F,oFAAoF;AACpF,0FAA0F;AAC1F,yDAAyD;AAEzD,kFAAkF;AAClF,SAAS,QAAQ;IACf,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,EAAU;IACpC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB;IACtC,OAAO,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE;QAC1C,KAAK,EAAE,YAAY,EAAE;QACrB,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,GAAG,CAAC,OAAO,CAAC;QACjB,aAAa,EAAE,GAAG,CAAC,IAAI,CACrB;YACE,GAAG,CAAC,MAAM,CAAC;gBACT,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,GAAG,CAAC,GAAG;gBACf,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;gBACnC,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBACpC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;aAC/B,CAAC;SACH,EACD,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,EAAE,CACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,kBAAkB,CAAC,gBAAwB;IAClD,OAAO,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;QACvC,KAAK,EAAE,YAAY,EAAE;QACrB,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvD,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;IACE,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EACV,0FAA0F;QAC1F,4FAA4F;QAC5F,kDAAkD;QAClD,IAAI;QACJ,UAAU;QACV,yEAAyE;QACzE,+EAA+E;QAC/E,sEAAsE;QACtE,iFAAiF;QACjF,yFAAyF;QACzF,2FAA2F;QAC3F,uCAAuC;QACvC,oFAAoF;QACpF,uFAAuF;QACvF,wFAAwF;QACxF,yFAAyF;QACzF,mCAAmC;QACnC,wFAAwF;QACxF,mFAAmF;QACnF,kFAAkF;QAClF,iFAAiF;QACjF,4FAA4F;QAC5F,+EAA+E;QAC/E,oFAAoF;QACpF,2FAA2F;QAC3F,0CAA0C;CAC7C,CACF,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,WAAW,EACX,2FAA2F;IACzF,0FAA0F;IAC1F,2FAA2F;IAC3F,qEAAqE;IACrE,gFAAgF,EAClF;IACE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CACP,qIAAqI,CACtI;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,OAAO,CAAC,uBAAuB,CAAC;SAChC,QAAQ,CACP,4HAA4H,CAC7H;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,kFAAkF,CAAC;IAC/F,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iQAAiQ,CAClQ;IACH,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sKAAsK,CACvK;IACH,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,kMAAkM,CACnM;IACH,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,kLAAkL,CACnL;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qNAAqN,CACtN;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uMAAuM,CACxM;CACJ,EACD,KAAK,EAAE,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,GACjB,EAAE,EAAE;IACH,gFAAgF;IAChF,gEAAgE;IAChE,sEAAsE;IACtE,uEAAuE;IACvE,IAAI,QAAQ,GAAgC,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5D,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACzC,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7C,+EAA+E;gBAC/E,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACvC,sEAAsE;gBACtE,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACtE,CAAC;gBACD,8DAA8D;gBAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBACD,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,+EAA+E;YAC/E,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAI;QACJ,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,QAAQ,EAAE,QAAQ,IAAI,SAAS;KAChC,CAAC,CAAC;IAEH,iBAAiB,GAAG,UAAU,CAAC;IAE/B,gFAAgF;IAChF,wEAAwE;IACxE,kFAAkF;IAClF,wEAAwE;IACxE,MAAM,QAAQ,GAAG,qBAAqB,CACpC,cAAc,EACd,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAC7D,oBAAoB,CACrB,CAAC;IACF,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;IACnD,cAAc,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IACzD,cAAc,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACnE,cAAc,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACnE,MAAM,WAAW,GACf,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,6BAA6B;YACzF,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,GAAG,IAAI,WAAW,CAAC;QACvB,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,mEAAmE;QACnE,8DAA8D;QAC9D,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EACF,gBAAgB,UAAU,OAAO,IAAI,cAAc,OAAO,eAAe,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK;oBACvI,eAAe,cAAc,CAAC,WAAW,cAAc,cAAc,CAAC,QAAQ,IAAI;oBAClF,oBAAoB,cAAc,CAAC,gBAAgB,sBAAsB,cAAc,CAAC,gBAAgB,GAAG;oBAC3G,WAAW;aACd;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,4FAA4F;IAC1F,sFAAsF;IACtF,2FAA2F;IAC3F,gCAAgC,EAClC;IACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACjF,YAAY,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAA4B,CAAC;IAE1E,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,EACrE,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;aACtF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACrE;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,oFAAoF;IAClF,uFAAuF;IACvF,yDAAyD,EAC3D;IACE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvB,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,YAAY,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IAE5C,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,8FAA8F;IAC5F,2EAA2E;IAC3E,0FAA0F;IAC1F,yFAAyF;IACzF,wFAAwF;IACxF,6FAA6F;IAC7F,uFAAuF;IACvF,+EAA+E,EACjF;IACE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iLAAiL,CAClL;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACtE,QAAQ,EAAE;SACV,QAAQ,CACP,mHAAmH,CACpH;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,cAAc,EAAE,yCAAyC,CAAC;SAChE,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;SACzE,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;SACzE,QAAQ,EAAE;SACV,QAAQ,CACP,iGAAiG,CAClG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;SACzE,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACvB,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,4RAA4R,CAC7R;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,6LAA6L,CAC9L;CACJ,EACD,KAAK,EAAE,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,OAAO,GACR,EAAE,EAAE;IACH,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,oEAAoE;IACpE,yEAAyE;IACzE,6CAA6C;IAC7C,IAAI,aAAqB,CAAC;IAC1B,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAA4B,CAAC;QACrF,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACrE,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAC/B,MAAM,EAAE,cAAc;QACtB,OAAO;QACP,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,YAAY,IAAI,GAAG;QAC9B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,qDAAqD;KAC5D,CAAC,CAAC;IACH,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,UAAU;QAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3C,2FAA2F;IAC3F,IAAI,aAAa,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACrE,IAAI,UAAU;QAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9C,IAAI,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3C,IAAI,QAAQ;QAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,IAAI,YAAY;QAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QAClB,iFAAiF;QACjF,oFAAoF;QACpF,KAAK,CAAC,aAAa,GAAG;YACpB,GAAG,aAAa;YAChB,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC;YACpE,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC;YACnF,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,2BAA2B,CAAC;SACvF,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IACtD,MAAM,aAAa,GAAkB;QACnC,KAAK,CAAC,IAAI,CAAC,OAAmB;YAC5B,OAAO,IAAI,UAAU,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,OAAO,IAAI,UAAU,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;IAEF,6EAA6E;IAC7E,uFAAuF;IACvF,MAAM,OAAO,GAAG,MAAM,CAAC;SACpB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAC9E,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEL,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAExC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;oBACvC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;iBACxC,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,6FAA6F;IAC3F,mFAAmF;IACnF,qFAAqF;IACrF,0EAA0E,EAC5E;IACE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACzE,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,MAAM;oBACN,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACrC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;iBACxC,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,aAAa,EACb,0FAA0F;IACxF,8EAA8E,EAChF;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CACvE,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;oBACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACrC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;iBACxC,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4FAA4F;IAC1F,wFAAwF;IACxF,6FAA6F;IAC7F,uFAAuF;IACvF,0FAA0F;IAC1F,sCAAsC,EACxC;IACE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,oKAAoK,CACrK;CACJ,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAEjE,wEAAwE;IACxE,wEAAwE;IACxE,0EAA0E;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,uBAAuB;YAC/B,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE;gBACR,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACrC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC/C,IAAI,EAAE,yEAAyE;aAChF;YACD,WAAW,EAAE,wDAAwD;SACtE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAmB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtD,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,qFAAqF;IACnF,6FAA6F,EAC/F,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC,CAAC;IAEJ,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wFAAwF;IACtF,4FAA4F;IAC5F,2FAA2F;IAC3F,sFAAsF;IACtF,sFAAsF;IACtF,gDAAgD,EAClD;IACE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,2MAA2M,CAC5M;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sIAAsI,CACvI;CACJ,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IAC/C,8DAA8D;IAC9D,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAE5B,IAAI,UAAkB,CAAC;IAEvB,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,GAAG,GACP,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5F,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC5B,gFAAgF;QAChF,mEAAmE;QACnE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;SAAM,IAAI,eAAe,IAAI,GAAG,EAAE,CAAC;QAClC,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,OAAO,UAAU,CAAC,CAAC;QAClD,uEAAuE;QACvE,qDAAqD;QACrD,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChF,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;SAAM,IAAI,eAAe,IAAI,GAAG,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,IAAI,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACtE,YAAY,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;QACjD,qEAAqE;QACrE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,eAAe,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClG,CAAC;QACJ,CAAC;QACD,2FAA2F;QAC3F,2FAA2F;QAC3F,4FAA4F;QAC5F,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,gBAAgB,gBAAgB,qBAAqB,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,+EAA+E;YAC/E,qFAAqF;YACrF,wFAAwF;YACxF,wFAAwF;YACxF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,oDAAoD,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAA0B,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,wFAAwF;QACxF,gDAAgD;QAChD,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;oBAChC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ;oBACrC,OAAO,EAAE,UAAU;iBACpB,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,2FAA2F;AAC3F,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;qBACpE,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;iBAC3D,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,wFAAwF;IACtF,0FAA0F;IAC1F,mEAAmE;IACnE,2FAA2F;IAC3F,0FAA0F;IAC1F,wFAAwF;IACxF,sFAAsF;IACtF,iBAAiB,EACnB;IACE,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,CACP,8IAA8I,CAC/I;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,sMAAsM,CACvM;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,8FAA8F,CAC/F;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,qKAAqK,CACtK;CACJ,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9C,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,iFAAiF;IACjF,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,4FAA4F;QAC5F,+FAA+F;QAC/F,kGAAkG;QAClG,MAAM,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,WAAW,CAAC;QAChB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,SAAS,CAC3B,OAAO,EACP,OAAO,EACP,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAC7B;gBACE,+EAA+E;gBAC/E,qDAAqD;gBACrD,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;oBACtB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,YAAY,EAAE,CAAC;aAChB,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACjF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACjF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;QAElF,uEAAuE;QACvE,wEAAwE;QACxE,mDAAmD;QACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC;YAC/B,MAAM,EAAE,YAAY;YACpB,OAAO;YACP,YAAY,EAAE,GAAG,CAAC,MAAM;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,+BAA+B,OAAO,EAAE;SAC/C,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,2CAA2C;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,CAAC,MAAM,KAAK,CAAC,eAAe,CAC7C,aAAa,EACb,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,YAAY,CACjB,CAA4B,CAAC;QAC9B,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACvC,4DAA4D;YAC5D,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,WAAW,CAChB,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,EAA4C,CAAC;QACvE,uFAAuF;QACvF,wFAAwF;QACxF,6DAA6D;QAC7D,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;QAE9E,4FAA4F;QAC5F,4FAA4F;QAC5F,mDAAmD;QAEnD,+DAA+D;QAC/D,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACvE,IAAI,YAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,SAAS,CAC5B,OAAO,EACP;gBACE,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE;gBACzE,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,EACD,QAAQ,EAAE,CACX,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,MAAM,EAAE,IAAI;4BACZ,IAAI,EAAE,YAAY,CAAC,MAAM;4BACzB,IAAI;4BACJ,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;yBACzC,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChC,OAAO,WAAW,CAAC,IAAI,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,WAAW,CAChB,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CACnF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8FAA8F;IAC5F,yFAAyF;IACzF,yFAAyF;IACzF,mFAAmF;IACnF,yFAAyF;IACzF,qBAAqB,EACvB;IACE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0IAA0I,CAC3I;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,iLAAiL,CAClL;CACJ,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACjD,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrC,8FAA8F;YAC9F,6FAA6F;YAC7F,6FAA6F;YAC7F,4FAA4F;YAC5F,MAAM,0BAA0B,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAC/B,MAAM,EAAE,gBAAgB;QACxB,OAAO;QACP,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,uEAAuE;KAC9E,CAAC,CAAC;IACH,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI;wBAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,yFAAyF;IACvF,4CAA4C,EAC9C,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;IACxC,OAAO,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8FAA8F;IAC5F,uFAAuF;IACvF,6FAA6F;IAC7F,wFAAwF;IACxF,4FAA4F;IAC5F,2EAA2E,EAC7E;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACnF,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,0EAA0E,CAAC;IACvF,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,4MAA4M,CAC7M;CACJ,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACvC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,iBAAiB,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,2FAA2F;IAC3F,6FAA6F;IAC7F,6FAA6F;IAC7F,mGAAmG;IACnG,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,uFAAuF;QACvF,yFAAyF;QACzF,iFAAiF;QACjF,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAA4B,CAAC;QACtF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACzD,OAAO,WAAW,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC,GACL,KASD,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,WAAW,CAChB,IAAI,UAAU,CAAC,SAAS,EAAE,qBAAqB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,YAAY,SAAS,eAAe,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,yFAAyF;QACzF,4FAA4F;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAE5D,+EAA+E;QAC/E,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,kBAAkB;gBAC1B,SAAS;gBACT,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;gBAC/B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;gBACvB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACnB,WAAW,EACT,wKAAwK;aAC3K,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,MAAM,IAAI,GAAG,mBAAmB,CAAC;YAC/B,MAAM,EAAE,gBAAgB;YACxB,OAAO;YACP,YAAY;YACZ,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,YAAY,YAAY,WAAW,KAAK,iBAAiB,GAAG,kBAAkB,SAAS,iBAAiB,GAAG,EAAE;SACpH,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,8FAA8F;QAC9F,2FAA2F;QAC3F,cAAc,GAAG,YAAY,CAAC;QAE9B,oFAAoF;QACpF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,8FAA8F;QAC9F,+FAA+F;QAC/F,6FAA6F;QAC7F,IAAI,cAAc,GAAG,EAAE;YAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,yFAAyF;IACvF,4BAA4B,EAC9B;IACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAChE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,yDAAyD,CAAC;CACvE,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IAC/B,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wFAAwF;IACtF,qFAAqF;IACrF,0FAA0F;IAC1F,6BAA6B,EAC/B;IACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC/E,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,mEAAmE,CAAC;CACjF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1B,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,+EAA+E;AAC/E,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAE/E,iHAAiH;AAEjH,MAAM,CAAC,IAAI,CACT,MAAM,EACN,2FAA2F;IACzF,yFAAyF;IACzF,4FAA4F;IAC5F,qFAAqF;IACrF,0FAA0F;IAC1F,0BAA0B,EAC5B;IACE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CACP,qHAAqH,CACtH;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,2HAA2H,CAC5H;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;IACrC,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,YAAY,EAAE,CAAC;IAEf,mEAAmE;IACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,8DAA8D;IAC9D,IAAI,UAAe,CAAC;IACpB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/F,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,kCAAkC;AAClC,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,MAAc,EACd,QAAgB;IAEhB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,8DAA8D;IAC9D,MAAM,EAAE,GAAI,KAAa,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAChB,QAAgB,EAChB,cAAsB,EACtB,WAAmB,EACnB,QAAgB,EAChB,IAAY;IAEZ,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,WAAW,EACX;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnC,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,OAAO,EAAE,CAAC;aACP,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,qLAAqL,CACtL;KACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,sFAAsF;QACtF,qFAAqF;QACrF,uFAAuF;QACvF,wFAAwF;QACxF,qCAAqC;QACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE,CAAC;YACnE,OAAO,WAAW,CAChB,IAAI,KAAK,CACP,SAAS,QAAQ,qEAAqE;gBACpF,mFAAmF;gBACnF,uFAAuF;gBACvF,8DAA8D,CACjE,CACF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,IAAI,iBAAiB,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,YAAY,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,CACP,gBAAgB,EAChB,eAAe,EACf,qFAAqF;IACnF,wFAAwF;IACxF,0EAA0E;IAC1E,uDAAuD,EACzD,sIAAsI,EACtI,oEAAoE,CACrE,CAAC;AACF,SAAS,CACP,gBAAgB,EAChB,eAAe,EACf,qFAAqF;IACnF,0FAA0F;IAC1F,2EAA2E,EAC7E,mDAAmD,EACnD,gFAAgF,CACjF,CAAC;AACF,SAAS,CACP,kBAAkB,EAClB,iBAAiB,EACjB,yFAAyF;IACvF,0EAA0E;IAC1E,yFAAyF;IACzF,uCAAuC,EACzC,uRAAuR,EACvR,qEAAqE,CACtE,CAAC;AACF,SAAS,CACP,gBAAgB,EAChB,eAAe,EACf,0FAA0F;IACxF,4FAA4F;IAC5F,uDAAuD,EACzD,0DAA0D,EAC1D,mEAAmE,CACpE,CAAC;AACF,SAAS,CACP,WAAW,EACX,UAAU,EACV,8FAA8F;IAC5F,0FAA0F;IAC1F,sFAAsF,EACxF,iDAAiD,EACjD,4CAA4C,CAC7C,CAAC;AACF,SAAS,CACP,mBAAmB,EACnB,iBAAiB,EACjB,6FAA6F;IAC3F,4FAA4F;IAC5F,6FAA6F;IAC7F,wBAAwB,EAC1B,+LAA+L,EAC/L,4EAA4E,CAC7E,CAAC;AACF,SAAS,CACP,iBAAiB,EACjB,eAAe,EACf,8FAA8F;IAC5F,4FAA4F;IAC5F,sFAAsF;IACtF,yFAAyF;IACzF,yFAAyF;IACzF,gCAAgC,EAClC,mJAAmJ,EACnJ,6GAA6G,CAC9G,CAAC;AAEF,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED;+FAC+F;AAC/F,SAAS,mBAAmB,CAAC,GAAmB,EAAE,MAAqB;IACrE,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,iEAAiE,CAAC,CAAC;IACrE,CAAC,CAAC,oEAAoE,CAAC,CAAC;IACxE,CAAC,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC,+BAA+B,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,+BAA+B,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,+BAA+B,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,+BAA+B,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC,CACC,+BAA+B,GAAG,CAAC,oBAAoB,yCAAyC,CACjG,CAAC;IACF,CAAC,CAAC,+BAA+B,GAAG,CAAC,mBAAmB,sCAAsC,CAAC,CAAC;IAChG,CAAC,CACC,+BAA+B,GAAG,CAAC,eAAe,+DAA+D,CAClH,CAAC;IACF,IAAI,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAC/E,CAAC,CACC,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD,CAAC,CAAC,iEAAiE,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,+FAA+F;IAC/F,2FAA2F;IAC3F,iCAAiC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAC/E,IAAI,QAAQ,GAAmC,IAAI,CAAC;IACpD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA4B,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,yCAAyC,UAAU,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvD,gBAAgB,EAAE,2BAA2B;QAC7C,gBAAgB,EAAE,0BAA0B;KAC7C,CAAC,CAAC;IACH,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChD,cAAc,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtD,cAAc,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAChE,cAAc,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAChE,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAChD,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC9C,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IACtC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic402/mcp",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
4
4
  "description": "MCP server for ic402 — exposes x402 charges and streaming sessions as tools",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {