@secondlayer/stacks 4.3.2 → 5.0.1

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.
Files changed (165) hide show
  1. package/README.md +27 -11
  2. package/dist/shared/{stacks-bfan7ex7.js → stacks-4d7c3x27.js} +5 -5
  3. package/dist/shared/{stacks-bfan7ex7.js.map → stacks-4d7c3x27.js.map} +3 -3
  4. package/dist/shared/{stacks-709tra19.js → stacks-4hs8r4q2.js} +16 -2
  5. package/dist/shared/stacks-4hs8r4q2.js.map +10 -0
  6. package/dist/shared/{stacks-w23294am.js → stacks-51ybf135.js} +3 -3
  7. package/dist/shared/{stacks-0jk7vd8r.cjs → stacks-69nq48jp.js} +120 -17
  8. package/dist/shared/stacks-69nq48jp.js.map +15 -0
  9. package/dist/shared/{stacks-8pfdscq6.js → stacks-6gavarmy.js} +37 -9
  10. package/dist/shared/stacks-6gavarmy.js.map +12 -0
  11. package/dist/shared/{stacks-gxq2pbky.js → stacks-71k0vmct.js} +65 -8
  12. package/dist/shared/stacks-71k0vmct.js.map +13 -0
  13. package/dist/shared/{stacks-7wkf2rph.js → stacks-7bqkf3b0.js} +86 -71
  14. package/dist/shared/{stacks-7wkf2rph.js.map → stacks-7bqkf3b0.js.map} +9 -10
  15. package/dist/shared/{stacks-zcpvzbr0.js → stacks-8brgfvqx.js} +3 -3
  16. package/dist/shared/{stacks-4vzmhw3q.cjs → stacks-8vzxax5e.cjs} +13 -3
  17. package/dist/shared/stacks-8vzxax5e.cjs.map +10 -0
  18. package/dist/shared/{stacks-hnqt5rz4.js → stacks-9c1yam8b.js} +3 -3
  19. package/dist/shared/{stacks-bnbdqznq.cjs → stacks-bdgh9n83.cjs} +11 -10
  20. package/dist/shared/{stacks-bnbdqznq.cjs.map → stacks-bdgh9n83.cjs.map} +3 -3
  21. package/dist/shared/{stacks-fb75yew8.js → stacks-db3kwavg.cjs} +346 -138
  22. package/dist/shared/stacks-db3kwavg.cjs.map +23 -0
  23. package/dist/shared/{stacks-jpt52csy.js → stacks-e3nwm1dz.js} +14 -17
  24. package/dist/shared/stacks-e3nwm1dz.js.map +10 -0
  25. package/dist/shared/{stacks-ta1gar0b.cjs → stacks-ee53k9j2.cjs} +62 -6
  26. package/dist/shared/stacks-ee53k9j2.cjs.map +13 -0
  27. package/dist/shared/{stacks-27fmgajb.js → stacks-ga026yxz.js} +9 -9
  28. package/dist/shared/{stacks-27fmgajb.js.map → stacks-ga026yxz.js.map} +3 -3
  29. package/dist/shared/{stacks-nyaw1z2a.cjs → stacks-ggdz96r1.cjs} +4 -4
  30. package/dist/shared/{stacks-nyaw1z2a.cjs.map → stacks-ggdz96r1.cjs.map} +3 -3
  31. package/dist/shared/{stacks-08y0y0t7.js → stacks-gjz26k6b.js} +2 -2
  32. package/dist/shared/{stacks-x5386y2y.cjs → stacks-gza2n1zs.cjs} +5 -5
  33. package/dist/shared/{stacks-x5386y2y.cjs.map → stacks-gza2n1zs.cjs.map} +3 -3
  34. package/dist/shared/{stacks-ztzygy90.js → stacks-mftyrc60.js} +2 -2
  35. package/dist/shared/stacks-n4d8j8q3.js +801 -0
  36. package/dist/shared/stacks-n4d8j8q3.js.map +23 -0
  37. package/dist/shared/{stacks-ycbq8pf7.cjs → stacks-p337hp6m.cjs} +74 -59
  38. package/dist/shared/{stacks-ycbq8pf7.cjs.map → stacks-p337hp6m.cjs.map} +9 -10
  39. package/dist/shared/{stacks-ttdk2g2f.js → stacks-s5vej5z6.cjs} +92 -41
  40. package/dist/shared/stacks-s5vej5z6.cjs.map +15 -0
  41. package/dist/shared/stacks-sdqkapct.cjs +67 -0
  42. package/dist/shared/stacks-sdqkapct.cjs.map +12 -0
  43. package/dist/shared/{stacks-1arrcd11.js → stacks-v2rfr46a.js} +2 -2
  44. package/dist/shared/{stacks-9mqveyjv.cjs → stacks-w9t61fra.cjs} +7 -10
  45. package/dist/shared/stacks-w9t61fra.cjs.map +10 -0
  46. package/dist/shared/{stacks-tjjnkt3r.js → stacks-wxfd6r4b.js} +2 -2
  47. package/dist/shared/{stacks-4z72akdf.js → stacks-x0qqwrev.js} +3 -3
  48. package/dist/shared/{stacks-gck1sq7h.cjs → stacks-xjkn3en1.cjs} +16 -2
  49. package/dist/shared/stacks-xjkn3en1.cjs.map +10 -0
  50. package/dist/shared/stacks-xnrywjf1.cjs +131 -0
  51. package/dist/shared/stacks-xnrywjf1.cjs.map +11 -0
  52. package/dist/shared/stacks-yajyej2y.js +139 -0
  53. package/dist/shared/stacks-yajyej2y.js.map +11 -0
  54. package/dist/shared/{stacks-913a2rx7.js → stacks-yvb7rvwk.js} +13 -3
  55. package/dist/shared/stacks-yvb7rvwk.js.map +10 -0
  56. package/dist/shared/{stacks-0cdm20eh.js → stacks-z90xdr1x.js} +7 -11
  57. package/dist/shared/{stacks-0cdm20eh.js.map → stacks-z90xdr1x.js.map} +3 -3
  58. package/dist/src/accounts/index.js +2 -3
  59. package/dist/src/accounts/index.js.map +2 -2
  60. package/dist/src/actions/index.cjs +2 -1
  61. package/dist/src/actions/index.cjs.map +1 -1
  62. package/dist/src/actions/index.d.cts +108 -20
  63. package/dist/src/actions/index.d.ts +108 -20
  64. package/dist/src/actions/index.js +17 -15
  65. package/dist/src/actions/index.js.map +1 -1
  66. package/dist/src/bitcoin/index.d.cts +27 -0
  67. package/dist/src/bitcoin/index.d.ts +27 -0
  68. package/dist/src/bitcoin/index.js +10 -11
  69. package/dist/src/bitcoin/index.js.map +2 -2
  70. package/dist/src/bns/index.d.cts +27 -0
  71. package/dist/src/bns/index.d.ts +27 -0
  72. package/dist/src/bns/index.js +13 -13
  73. package/dist/src/bns/index.js.map +1 -1
  74. package/dist/src/clarity/index.js +7 -6
  75. package/dist/src/clarity/index.js.map +1 -1
  76. package/dist/src/connect/index.cjs +44 -30
  77. package/dist/src/connect/index.cjs.map +7 -7
  78. package/dist/src/connect/index.d.cts +16 -1
  79. package/dist/src/connect/index.d.ts +16 -1
  80. package/dist/src/connect/index.js +44 -30
  81. package/dist/src/connect/index.js.map +7 -7
  82. package/dist/src/connect/walletconnect/index.cjs +49 -413
  83. package/dist/src/connect/walletconnect/index.cjs.map +4 -4
  84. package/dist/src/connect/walletconnect/index.js +47 -411
  85. package/dist/src/connect/walletconnect/index.js.map +4 -4
  86. package/dist/src/filters/index.js +2 -2
  87. package/dist/src/index.cjs +49 -124
  88. package/dist/src/index.cjs.map +6 -8
  89. package/dist/src/index.d.cts +163 -54
  90. package/dist/src/index.d.ts +163 -54
  91. package/dist/src/index.js +79 -147
  92. package/dist/src/index.js.map +6 -8
  93. package/dist/src/postconditions/index.js +6 -5
  94. package/dist/src/postconditions/index.js.map +1 -1
  95. package/dist/src/pox/index.cjs +7 -83
  96. package/dist/src/pox/index.cjs.map +3 -3
  97. package/dist/src/pox/index.d.cts +32 -1
  98. package/dist/src/pox/index.d.ts +32 -1
  99. package/dist/src/pox/index.js +22 -102
  100. package/dist/src/pox/index.js.map +3 -3
  101. package/dist/src/pox5/index.cjs +4 -112
  102. package/dist/src/pox5/index.cjs.map +3 -4
  103. package/dist/src/pox5/index.d.cts +27 -0
  104. package/dist/src/pox5/index.d.ts +27 -0
  105. package/dist/src/pox5/index.js +20 -131
  106. package/dist/src/pox5/index.js.map +3 -4
  107. package/dist/src/sbtc/index.cjs +2 -27
  108. package/dist/src/sbtc/index.cjs.map +3 -3
  109. package/dist/src/sbtc/index.d.cts +30 -2
  110. package/dist/src/sbtc/index.d.ts +30 -2
  111. package/dist/src/sbtc/index.js +15 -45
  112. package/dist/src/sbtc/index.js.map +3 -3
  113. package/dist/src/stackingdao/index.d.cts +27 -0
  114. package/dist/src/stackingdao/index.d.ts +27 -0
  115. package/dist/src/stackingdao/index.js +11 -11
  116. package/dist/src/stackingdao/index.js.map +1 -1
  117. package/dist/src/subscriptions/index.d.cts +27 -0
  118. package/dist/src/subscriptions/index.d.ts +27 -0
  119. package/dist/src/subscriptions/index.js +2 -2
  120. package/dist/src/tools/btc/index.cjs.map +2 -2
  121. package/dist/src/tools/btc/index.js.map +2 -2
  122. package/dist/src/tools/index.cjs +629 -392
  123. package/dist/src/tools/index.cjs.map +30 -28
  124. package/dist/src/tools/index.d.cts +44 -0
  125. package/dist/src/tools/index.d.ts +44 -0
  126. package/dist/src/tools/index.js +628 -391
  127. package/dist/src/tools/index.js.map +30 -28
  128. package/dist/src/transactions/index.js +6 -5
  129. package/dist/src/transactions/index.js.map +1 -1
  130. package/dist/src/utils/index.d.cts +2 -5
  131. package/dist/src/utils/index.d.ts +2 -5
  132. package/dist/src/utils/index.js +2 -2
  133. package/package.json +18 -7
  134. package/dist/shared/stacks-0eatsx6d.cjs +0 -25
  135. package/dist/shared/stacks-0eatsx6d.cjs.map +0 -10
  136. package/dist/shared/stacks-0jk7vd8r.cjs.map +0 -14
  137. package/dist/shared/stacks-4vzmhw3q.cjs.map +0 -10
  138. package/dist/shared/stacks-5nmz5ad9.js +0 -409
  139. package/dist/shared/stacks-5nmz5ad9.js.map +0 -10
  140. package/dist/shared/stacks-709tra19.js.map +0 -10
  141. package/dist/shared/stacks-8pfdscq6.js.map +0 -12
  142. package/dist/shared/stacks-913a2rx7.js.map +0 -10
  143. package/dist/shared/stacks-9mqveyjv.cjs.map +0 -10
  144. package/dist/shared/stacks-e4xn4m7j.js +0 -27
  145. package/dist/shared/stacks-e4xn4m7j.js.map +0 -10
  146. package/dist/shared/stacks-fb75yew8.js.map +0 -21
  147. package/dist/shared/stacks-gck1sq7h.cjs.map +0 -10
  148. package/dist/shared/stacks-gxq2pbky.js.map +0 -13
  149. package/dist/shared/stacks-jpt52csy.js.map +0 -10
  150. package/dist/shared/stacks-mnnhpex3.cjs +0 -407
  151. package/dist/shared/stacks-mnnhpex3.cjs.map +0 -10
  152. package/dist/shared/stacks-ta1gar0b.cjs.map +0 -13
  153. package/dist/shared/stacks-tdsp5gsb.cjs +0 -527
  154. package/dist/shared/stacks-tdsp5gsb.cjs.map +0 -21
  155. package/dist/shared/stacks-ttdk2g2f.js.map +0 -14
  156. package/dist/shared/stacks-wdp5yr8n.cjs +0 -39
  157. package/dist/shared/stacks-wdp5yr8n.cjs.map +0 -12
  158. /package/dist/shared/{stacks-w23294am.js.map → stacks-51ybf135.js.map} +0 -0
  159. /package/dist/shared/{stacks-zcpvzbr0.js.map → stacks-8brgfvqx.js.map} +0 -0
  160. /package/dist/shared/{stacks-hnqt5rz4.js.map → stacks-9c1yam8b.js.map} +0 -0
  161. /package/dist/shared/{stacks-08y0y0t7.js.map → stacks-gjz26k6b.js.map} +0 -0
  162. /package/dist/shared/{stacks-ztzygy90.js.map → stacks-mftyrc60.js.map} +0 -0
  163. /package/dist/shared/{stacks-1arrcd11.js.map → stacks-v2rfr46a.js.map} +0 -0
  164. /package/dist/shared/{stacks-tjjnkt3r.js.map → stacks-wxfd6r4b.js.map} +0 -0
  165. /package/dist/shared/{stacks-4z72akdf.js.map → stacks-x0qqwrev.js.map} +0 -0
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/connect/walletconnect/crypto.ts", "../../../../../../node_modules/@scure/base/index.js", "../../../../src/utils/encoding.ts", "../../../../src/connect/walletconnect/relay.ts", "../../../../src/connect/walletconnect/session.ts", "../../../../src/connect/walletconnect/provider.ts", "../../../../src/connect/walletconnect/qr.ts", "../../../../src/connect/provider.ts", "../../../../src/connect/walletconnect/modal.ts"],
3
+ "sources": ["../../../../src/connect/walletconnect/crypto.ts", "../../../../src/utils/encoding.ts", "../../../../src/connect/walletconnect/relay.ts", "../../../../src/connect/walletconnect/session.ts", "../../../../src/connect/walletconnect/provider.ts", "../../../../src/connect/walletconnect/qr.ts", "../../../../src/errors/base.ts", "../../../../src/connect/provider.ts", "../../../../src/connect/walletconnect/modal.ts"],
4
4
  "sourcesContent": [
5
5
  "/** WalletConnect v2 envelope encryption (Type 0 + Type 1) + relay JWT auth */\n\nimport { gcm } from \"@noble/ciphers/aes.js\";\nimport { ed25519, x25519 } from \"@noble/curves/ed25519.js\";\nimport { hkdf } from \"@noble/hashes/hkdf.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { randomBytes } from \"@noble/hashes/utils.js\";\nimport { base58, base64urlnopad } from \"@scure/base\";\nimport { bytesToHex, hexToBytes } from \"../../utils/encoding.ts\";\n\nconst IV_LENGTH = 12;\nconst KEY_LENGTH = 32;\nconst TYPE_0 = 0x00;\nconst TYPE_1 = 0x01;\n\n// -- Key generation --\n\nexport function generateKeyPair() {\n\tconst privateKey = randomBytes(KEY_LENGTH);\n\tconst publicKey = x25519.getPublicKey(privateKey);\n\treturn { privateKey, publicKey };\n}\n\nexport function generateSymKey(): Uint8Array {\n\treturn randomBytes(KEY_LENGTH);\n}\n\n/** Derive symmetric key from X25519 shared secret via HKDF */\nexport function deriveSymKey(\n\tselfPrivate: Uint8Array,\n\tpeerPublic: Uint8Array,\n): Uint8Array {\n\tconst shared = x25519.getSharedSecret(selfPrivate, peerPublic);\n\treturn hkdf(sha256, shared, undefined, undefined, KEY_LENGTH);\n}\n\n/** Topic = first 32 bytes of SHA-256(symKey) as hex */\nexport function symKeyToTopic(symKey: Uint8Array): string {\n\treturn bytesToHex(sha256(symKey));\n}\n\n// -- Base64 helpers (browser-safe) --\n\nexport function encodeBase64(data: Uint8Array): string {\n\tlet binary = \"\";\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tfor (let i = 0; i < data.length; i++) binary += String.fromCharCode(data[i]!);\n\treturn btoa(binary);\n}\n\nexport function decodeBase64(str: string): Uint8Array {\n\tconst binary = atob(str);\n\tconst bytes = new Uint8Array(binary.length);\n\tfor (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n\treturn bytes;\n}\n\n// -- Type 0 envelope (symmetric, pairing) --\n// Layout: [0x00][12-byte IV][ciphertext + 16-byte tag]\n\nexport function encryptType0(\n\tsymKey: Uint8Array,\n\tplaintext: string,\n): Uint8Array {\n\tconst iv = randomBytes(IV_LENGTH);\n\tconst data = new TextEncoder().encode(plaintext);\n\tconst cipher = gcm(symKey, iv);\n\tconst sealed = cipher.encrypt(data);\n\tconst envelope = new Uint8Array(1 + IV_LENGTH + sealed.length);\n\tenvelope[0] = TYPE_0;\n\tenvelope.set(iv, 1);\n\tenvelope.set(sealed, 1 + IV_LENGTH);\n\treturn envelope;\n}\n\nexport function decryptType0(symKey: Uint8Array, envelope: Uint8Array): string {\n\tif (envelope[0] !== TYPE_0) throw new Error(\"Not a type-0 envelope\");\n\tconst iv = envelope.subarray(1, 1 + IV_LENGTH);\n\tconst sealed = envelope.subarray(1 + IV_LENGTH);\n\tconst cipher = gcm(symKey, iv);\n\tconst plain = cipher.decrypt(sealed);\n\treturn new TextDecoder().decode(plain);\n}\n\n// -- Type 1 envelope (asymmetric, session proposal) --\n// Layout: [0x01][32-byte sender pubkey][12-byte IV][ciphertext + 16-byte tag]\n\nexport function encryptType1(\n\tsenderPrivate: Uint8Array,\n\treceiverPublic: Uint8Array,\n\tplaintext: string,\n): Uint8Array {\n\tconst senderPublic = x25519.getPublicKey(senderPrivate);\n\tconst symKey = deriveSymKey(senderPrivate, receiverPublic);\n\tconst iv = randomBytes(IV_LENGTH);\n\tconst data = new TextEncoder().encode(plaintext);\n\tconst cipher = gcm(symKey, iv);\n\tconst sealed = cipher.encrypt(data);\n\tconst envelope = new Uint8Array(1 + KEY_LENGTH + IV_LENGTH + sealed.length);\n\tenvelope[0] = TYPE_1;\n\tenvelope.set(senderPublic, 1);\n\tenvelope.set(iv, 1 + KEY_LENGTH);\n\tenvelope.set(sealed, 1 + KEY_LENGTH + IV_LENGTH);\n\treturn envelope;\n}\n\nexport function decryptType1(\n\treceiverPrivate: Uint8Array,\n\tenvelope: Uint8Array,\n): string {\n\tif (envelope[0] !== TYPE_1) throw new Error(\"Not a type-1 envelope\");\n\tconst senderPublic = envelope.subarray(1, 1 + KEY_LENGTH);\n\tconst iv = envelope.subarray(1 + KEY_LENGTH, 1 + KEY_LENGTH + IV_LENGTH);\n\tconst sealed = envelope.subarray(1 + KEY_LENGTH + IV_LENGTH);\n\tconst symKey = deriveSymKey(receiverPrivate, senderPublic);\n\tconst cipher = gcm(symKey, iv);\n\tconst plain = cipher.decrypt(sealed);\n\treturn new TextDecoder().decode(plain);\n}\n\n// -- Unified decrypt --\n\nexport function decrypt(\n\tkeyOrPrivate: Uint8Array,\n\tenvelope: Uint8Array,\n): string {\n\treturn envelope[0] === TYPE_1\n\t\t? decryptType1(keyOrPrivate, envelope)\n\t\t: decryptType0(keyOrPrivate, envelope);\n}\n\n// -- Relay JWT auth (Ed25519 + did:key) --\n\n/** Ed25519 multicodec varint prefix */\nconst ED25519_MULTICODEC = new Uint8Array([0xed, 0x01]);\n\nfunction encodeDidKey(publicKey: Uint8Array): string {\n\tconst prefixed = new Uint8Array(ED25519_MULTICODEC.length + publicKey.length);\n\tprefixed.set(ED25519_MULTICODEC);\n\tprefixed.set(publicKey, ED25519_MULTICODEC.length);\n\treturn `did:key:z${base58.encode(prefixed)}`;\n}\n\nfunction base64urlEncode(data: Uint8Array | string): string {\n\tconst bytes =\n\t\ttypeof data === \"string\" ? new TextEncoder().encode(data) : data;\n\treturn base64urlnopad.encode(bytes);\n}\n\n/** Generate a signed JWT for WC relay authentication */\nexport function createRelayAuthJwt(relayUrl: string): {\n\tjwt: string;\n\tclientId: string;\n} {\n\tconst privateKey = ed25519.utils.randomSecretKey();\n\tconst publicKey = ed25519.getPublicKey(privateKey);\n\tconst clientId = encodeDidKey(publicKey);\n\n\tconst now = Math.floor(Date.now() / 1000);\n\tconst header = base64urlEncode(JSON.stringify({ alg: \"EdDSA\", typ: \"JWT\" }));\n\tconst payload = base64urlEncode(\n\t\tJSON.stringify({\n\t\t\tiss: clientId,\n\t\t\tsub: bytesToHex(randomBytes(32)),\n\t\t\taud: relayUrl,\n\t\t\tiat: now,\n\t\t\texp: now + 86400, // 24 hours\n\t\t\tact: \"client_auth\",\n\t\t}),\n\t);\n\n\tconst message = new TextEncoder().encode(`${header}.${payload}`);\n\tconst signature = base64urlEncode(ed25519.sign(message, privateKey));\n\n\treturn { jwt: `${header}.${payload}.${signature}`, clientId };\n}\n\nexport { bytesToHex, hexToBytes };\n",
6
- "/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n}\nfunction isArrayOf(isString, arr) {\n if (!Array.isArray(arr))\n return false;\n if (arr.length === 0)\n return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n }\n else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\nfunction afn(input) {\n if (typeof input !== 'function')\n throw new Error('function expected');\n return true;\n}\nfunction astr(label, input) {\n if (typeof input !== 'string')\n throw new Error(`${label}: string expected`);\n return true;\n}\nfunction anumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`invalid integer: ${n}`);\n}\nfunction aArr(input) {\n if (!Array.isArray(input))\n throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n if (!isArrayOf(true, input))\n throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n if (!isArrayOf(false, input))\n throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n return lettersA[i];\n });\n },\n decode: (input) => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n astr('join', separator);\n return {\n encode: (from) => {\n astrArr('join.decode', from);\n return from.join(separator);\n },\n decode: (to) => {\n astr('join.decode', to);\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data) {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n astrArr('padding.decode', input);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('padding: invalid, string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n const last = end - 1;\n const byte = last * bits;\n if (byte % 8 === 0)\n throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n afn(fn);\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from)\n throw new Error(`invalid integer: ${d}`);\n return d;\n });\n const dlen = digits.length;\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < dlen; i++) {\n const digit = digits[i];\n const fromCarry = from * carry;\n const digitBase = fromCarry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry) {\n throw new Error('convertRadix: carry overflow');\n }\n const div = digitBase / to;\n carry = digitBase % to;\n const rounded = Math.floor(div);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++)\n res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n aArr(data);\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const max = powers[from];\n const mask = powers[to] - 1;\n const res = [];\n for (const n of data) {\n anumber(n);\n if (n >= max)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined)\n throw new Error('invalid carry');\n carry &= pow - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry > 0)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n anumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n afn(fn);\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n anumber(len);\n afn(fn);\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const sum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(sum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const oldChecksum = data.slice(-len);\n const newChecksum = fn(payload).slice(0, len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding from RFC 4648.\n * @example\n * ```js\n * base16.encode(Uint8Array.from([0x12, 0xab]));\n * // => '12AB'\n * ```\n */\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n/**\n * base32 encoding from RFC 4648. Has padding.\n * Use `base32nopad` for unpadded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ===='\n * base32.decode('CKVQ====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding.\n * Use `base32` for padded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ'\n * base32nopad.decode('CKVQ');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\n/**\n * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hexnopad` for unpadded version.\n * @example\n * ```js\n * base32hex.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG===='\n * base32hex.decode('2ALG====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hex` for padded version.\n * @example\n * ```js\n * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG'\n * base32hexnopad.decode('2ALG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\n/**\n * base32 encoding from RFC 4648. Doug Crockford's version.\n * https://www.crockford.com/base32.html\n * @example\n * ```js\n * base32crockford.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ANG'\n * base32crockford.decode('2ANG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' &&\n typeof Uint8Array.fromBase64 === 'function')();\nconst decodeBase64Builtin = (s, isUrl) => {\n astr('base64', s);\n const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;\n const alphabet = isUrl ? 'base64url' : 'base64';\n if (s.length > 0 && !re.test(s))\n throw new Error('invalid base64');\n return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\n/**\n * base64 from RFC 4648. Padded.\n * Use `base64nopad` for unpadded version.\n * Also check out `base64url`, `base64urlnopad`.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64 = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 from RFC 4648. No padding.\n * Use `base64` for padded version.\n * @example\n * ```js\n * base64nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64nopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. Padded.\n * Use `base64urlnopad` for unpadded version.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64url.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64url.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64url = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. No padding.\n * Use `base64url` for padded version.\n * @example\n * ```js\n * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64urlnopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * base58: base64 without ambigous characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n * @example\n * ```js\n * base58.decode('01abcdef');\n * // => '3UhJW'\n * ```\n */\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * base58: XMR version. Check out `base58`.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\n/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words))\n words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0)\n throw new TypeError(`Invalid prefix length ${plen}`);\n const actualLength = plen + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n astr('bech32.decode input', str);\n const slen = str.length;\n if (slen < 8 || (limit !== false && slen > limit))\n throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n function encodeFromBytes(prefix, bytes) {\n return encode(prefix, toWords(bytes));\n }\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\n}\n/**\n * bech32 from BIP 173. Operates on words.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32 = genBech32('bech32');\n/**\n * bech32m from BIP 350. Operates on words.\n * It was to mitigate `bech32` weaknesses.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * ```js\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n * ```\n */\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' &&\n typeof Uint8Array.fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin = {\n encode(data) { abytes(data); return data.toHex(); },\n decode(s) { astr('hex', s); return Uint8Array.fromHex(s); },\n};\n/**\n * hex string decoder. Uses built-in function, when available.\n * @example\n * ```js\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n * ```\n */\nexport const hex = hasHexBuiltin\n ? hexBuiltin\n : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n }));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n/** @deprecated */\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n/** @deprecated */\nexport const str = bytesToString; // as in python, but for bytes only\n/** @deprecated */\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map",
7
6
  "const hexes = Array.from({ length: 256 }, (_, i) =>\n\ti.toString(16).padStart(2, \"0\"),\n);\n\nexport function bytesToHex(bytes: Uint8Array): string {\n\tlet hex = \"\";\n\tfor (const b of bytes) {\n\t\thex += hexes[b];\n\t}\n\treturn hex;\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n\tlet h = without0x(hex);\n\tif (h.length % 2) h = `0${h}`;\n\n\tconst array = new Uint8Array(h.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(h.slice(j, j + 2), 16);\n\t\tif (Number.isNaN(byte) || byte < 0)\n\t\t\tthrow new Error(\"Invalid byte sequence\");\n\t\tarray[i] = byte;\n\t}\n\treturn array;\n}\n\nexport function with0x(value: string): string {\n\treturn /^0x/i.test(value) ? value : `0x${value}`;\n}\n\nexport function without0x(value: string): string {\n\treturn /^0x/i.test(value) ? value.slice(2) : value;\n}\n\nexport function utf8ToBytes(str: string): Uint8Array {\n\treturn new TextEncoder().encode(str);\n}\n\nexport function bytesToUtf8(bytes: Uint8Array): string {\n\treturn new TextDecoder().decode(bytes);\n}\n\nexport function asciiToBytes(str: string): Uint8Array {\n\tconst bytes = new Uint8Array(str.length);\n\tfor (let i = 0; i < str.length; i++) {\n\t\tbytes[i] = str.charCodeAt(i) & 0xff;\n\t}\n\treturn bytes;\n}\n\nexport function bytesToAscii(bytes: Uint8Array): string {\n\treturn String.fromCharCode(...bytes);\n}\n\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tif (arrays.length === 1) return arrays[0]!;\n\tconst length = arrays.reduce((a, arr) => a + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tlet pad = 0;\n\tfor (const arr of arrays) {\n\t\tresult.set(arr, pad);\n\t\tpad += arr.length;\n\t}\n\treturn result;\n}\n\nexport type IntegerType = number | string | bigint | Uint8Array;\n\nexport function intToBigInt(value: IntegerType): bigint {\n\tif (typeof value === \"bigint\") return value;\n\tif (typeof value === \"string\") return BigInt(value);\n\tif (typeof value === \"number\") {\n\t\tif (!Number.isInteger(value))\n\t\t\tthrow new RangeError(\"Values of type 'number' must be an integer.\");\n\t\tif (value > Number.MAX_SAFE_INTEGER)\n\t\t\tthrow new RangeError(\n\t\t\t\t`Values of type 'number' must be <= ${Number.MAX_SAFE_INTEGER}. Use BigInt instead.`,\n\t\t\t);\n\t\treturn BigInt(value);\n\t}\n\tif (value instanceof Uint8Array) return BigInt(`0x${bytesToHex(value)}`);\n\tthrow new TypeError(\"Must be a number, bigint, string, or Uint8Array.\");\n}\n\nexport function intToBytes(value: IntegerType, byteLength: number): Uint8Array {\n\treturn bigIntToBytes(intToBigInt(value), byteLength);\n}\n\nexport function bigIntToBytes(value: bigint, length = 16): Uint8Array {\n\tconst hex = value.toString(16).padStart(length * 2, \"0\");\n\treturn hexToBytes(hex);\n}\n\nexport function intToHex(integer: IntegerType, byteLength = 8): string {\n\tconst value = typeof integer === \"bigint\" ? integer : intToBigInt(integer);\n\treturn value.toString(16).padStart(byteLength * 2, \"0\");\n}\n\nexport function toTwos(value: bigint, width: bigint): bigint {\n\tconst limit = BigInt(1) << (width - BigInt(1));\n\tif (value < -limit || value > limit - BigInt(1)) {\n\t\tthrow new Error(`Unable to represent integer in width: ${width}`);\n\t}\n\tif (value >= BigInt(0)) return value;\n\treturn value + (BigInt(1) << width);\n}\n\nexport function fromTwos(value: bigint, width: bigint): bigint {\n\tif (value & (BigInt(1) << (width - BigInt(1)))) {\n\t\treturn value - (BigInt(1) << width);\n\t}\n\treturn value;\n}\n\nexport function bytesToTwosBigInt(bytes: Uint8Array): bigint {\n\tif (bytes.length === 0) return 0n;\n\tconst hex = bytesToHex(bytes);\n\tif (hex.length === 0) return 0n;\n\treturn fromTwos(BigInt(`0x${hex}`), BigInt(bytes.byteLength * 8));\n}\n\nexport function writeUInt32BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(4);\n\tbuf[0] = (value >>> 24) & 0xff;\n\tbuf[1] = (value >>> 16) & 0xff;\n\tbuf[2] = (value >>> 8) & 0xff;\n\tbuf[3] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt32BE(bytes: Uint8Array, offset = 0): number {\n\treturn (\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t((bytes[offset]! << 24) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 1]! << 16) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 2]! << 8) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tbytes[offset + 3]!) >>>\n\t\t0\n\t);\n}\n\nexport function writeUInt16BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(2);\n\tbuf[0] = (value >>> 8) & 0xff;\n\tbuf[1] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt16BE(bytes: Uint8Array, offset = 0): number {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\treturn ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n\treturn new Uint8Array([value & 0xff]);\n}\n",
8
7
  "/** WalletConnect v2 relay client (wss://relay.walletconnect.com) */\n\nimport { createRelayAuthJwt, encodeBase64, encryptType0 } from \"./crypto.ts\";\nimport type { WcRelayMessage } from \"./types.ts\";\n\nconst DEFAULT_RELAY = \"wss://relay.walletconnect.com\";\nconst DEFAULT_TTL = 300; // 5 minutes\n\ntype PendingRpc = {\n\tresolve: (v: unknown) => void;\n\treject: (e: Error) => void;\n};\n\ntype SubscriptionHandler = (message: WcRelayMessage) => void;\n\nexport class WcRelay {\n\tprivate ws: WebSocket | null = null;\n\tprivate url: string;\n\tprivate projectId: string;\n\tprivate nextId = Date.now() * 1000 + Math.floor(Math.random() * 1000);\n\tprivate pending = new Map<number, PendingRpc>();\n\tprivate subscriptions = new Map<string, SubscriptionHandler>();\n\t/** Map subscription ID (from server) → topic */\n\tprivate subIdToTopic = new Map<string, string>();\n\tprivate destroyed = false;\n\tprivate reconnecting = false;\n\tprivate reconnectAttempt = 0;\n\tprivate reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate connectPromise: Promise<void> | null = null;\n\tprivate connectReject: ((e: Error) => void) | null = null;\n\n\tconstructor(projectId: string, relayUrl?: string) {\n\t\tthis.projectId = projectId;\n\t\tthis.url = relayUrl ?? DEFAULT_RELAY;\n\t}\n\n\t// -- Connection --\n\n\tasync connect(): Promise<void> {\n\t\tif (this.ws?.readyState === WebSocket.OPEN) return;\n\t\tif (this.connectPromise) return this.connectPromise;\n\n\t\tthis.connectPromise = new Promise<void>((resolve, reject) => {\n\t\t\tthis.connectReject = reject;\n\t\t\tconst { jwt } = createRelayAuthJwt(this.url);\n\t\t\tconst wsUrl = `${this.url}/?auth=${jwt}&projectId=${this.projectId}`;\n\t\t\tthis.ws = new WebSocket(wsUrl);\n\n\t\t\tthis.ws.addEventListener(\n\t\t\t\t\"open\",\n\t\t\t\t() => {\n\t\t\t\t\tthis.reconnectAttempt = 0;\n\t\t\t\t\tthis.reconnecting = false;\n\t\t\t\t\tthis.connectPromise = null;\n\t\t\t\t\tthis.connectReject = null;\n\t\t\t\t\tresolve();\n\t\t\t\t},\n\t\t\t\t{ once: true },\n\t\t\t);\n\n\t\t\tthis.ws.addEventListener(\n\t\t\t\t\"error\",\n\t\t\t\t(e) => {\n\t\t\t\t\tthis.connectPromise = null;\n\t\t\t\t\tthis.connectReject = null;\n\t\t\t\t\treject(new Error(`WC relay connection failed: ${e}`));\n\t\t\t\t},\n\t\t\t\t{ once: true },\n\t\t\t);\n\n\t\t\tthis.ws.addEventListener(\"message\", (event) => {\n\t\t\t\tthis.handleMessage(\n\t\t\t\t\ttypeof event.data === \"string\"\n\t\t\t\t\t\t? event.data\n\t\t\t\t\t\t: new TextDecoder().decode(event.data as ArrayBuffer),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tthis.ws.addEventListener(\"close\", () => {\n\t\t\t\tthis.connectPromise = null;\n\t\t\t\tif (!this.destroyed) this.handleDisconnect();\n\t\t\t});\n\t\t});\n\n\t\treturn this.connectPromise;\n\t}\n\n\t// -- Publish/Subscribe --\n\n\tasync subscribe(\n\t\ttopic: string,\n\t\thandler: SubscriptionHandler,\n\t): Promise<string> {\n\t\tawait this.connect();\n\t\tthis.subscriptions.set(topic, handler);\n\t\tconst subId = (await this.rpc(\"irn_subscribe\", { topic })) as string;\n\t\tthis.subIdToTopic.set(subId, topic);\n\t\treturn subId;\n\t}\n\n\tasync publish(\n\t\ttopic: string,\n\t\tmessage: string,\n\t\ttag: number,\n\t\tttl: number = DEFAULT_TTL,\n\t): Promise<void> {\n\t\tawait this.connect();\n\t\tawait this.rpc(\"irn_publish\", {\n\t\t\ttopic,\n\t\t\tmessage,\n\t\t\tttl,\n\t\t\ttag,\n\t\t\tprompt: false,\n\t\t});\n\t}\n\n\t/** Encrypt + publish a type-0 envelope */\n\tasync publishEncrypted(\n\t\ttopic: string,\n\t\tsymKey: Uint8Array,\n\t\tpayload: unknown,\n\t\ttag: number,\n\t\tttl: number = DEFAULT_TTL,\n\t): Promise<void> {\n\t\tconst plaintext = JSON.stringify(payload);\n\t\tconst envelope = encryptType0(symKey, plaintext);\n\t\tawait this.publish(topic, encodeBase64(envelope), tag, ttl);\n\t}\n\n\t// -- Internal --\n\n\tprivate rpc(\n\t\tmethod: string,\n\t\tparams: Record<string, unknown>,\n\t): Promise<unknown> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n\t\t\t\treturn reject(new Error(\"WC relay not connected\"));\n\t\t\t}\n\t\t\tconst id = this.nextId++;\n\t\t\tthis.pending.set(id, { resolve, reject });\n\t\t\tthis.ws.send(JSON.stringify({ id, jsonrpc: \"2.0\", method, params }));\n\t\t});\n\t}\n\n\tprivate handleMessage(raw: string) {\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\tlet msg: any;\n\t\ttry {\n\t\t\tmsg = JSON.parse(raw);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\t// RPC response\n\t\tif (\"id\" in msg && msg.id != null && this.pending.has(msg.id)) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\tconst p = this.pending.get(msg.id)!;\n\t\t\tthis.pending.delete(msg.id);\n\t\t\tif (msg.error) {\n\t\t\t\tp.reject(new Error(`WC relay error: ${msg.error.message}`));\n\t\t\t} else {\n\t\t\t\tp.resolve(msg.result);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Server push (irn_subscription)\n\t\tif (msg.method === \"irn_subscription\" && msg.params) {\n\t\t\tconst { id: subId, data } = msg.params;\n\t\t\tconst topic = data?.topic ?? this.subIdToTopic.get(subId);\n\t\t\tconst handler = topic ? this.subscriptions.get(topic) : undefined;\n\t\t\tif (handler && data) {\n\t\t\t\thandler({\n\t\t\t\t\ttopic: data.topic,\n\t\t\t\t\tmessage: data.message,\n\t\t\t\t\tpublishedAt: data.publishedAt ?? Date.now(),\n\t\t\t\t\ttag: data.tag ?? 0,\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Acknowledge\n\t\t\tif (msg.id != null) {\n\t\t\t\tthis.ws?.send(\n\t\t\t\t\tJSON.stringify({ id: msg.id, jsonrpc: \"2.0\", result: true }),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate handleDisconnect() {\n\t\tthis.ws = null;\n\t\tfor (const [, p] of this.pending) {\n\t\t\tp.reject(new Error(\"WC relay disconnected\"));\n\t\t}\n\t\tthis.pending.clear();\n\n\t\tif (this.subscriptions.size > 0 && this.reconnectAttempt < 5) {\n\t\t\tthis.scheduleReconnect();\n\t\t}\n\t}\n\n\tprivate scheduleReconnect() {\n\t\tif (this.destroyed || this.reconnecting) return;\n\t\tthis.reconnecting = true;\n\t\tconst delay = 1000 * 2 ** this.reconnectAttempt;\n\t\tthis.reconnectAttempt++;\n\n\t\tthis.reconnectTimer = setTimeout(async () => {\n\t\t\tthis.reconnecting = false;\n\t\t\ttry {\n\t\t\t\tawait this.connect();\n\t\t\t\t// Re-subscribe all topics\n\t\t\t\tfor (const [topic] of this.subscriptions) {\n\t\t\t\t\tconst subId = (await this.rpc(\"irn_subscribe\", { topic })) as string;\n\t\t\t\t\tthis.subIdToTopic.set(subId, topic);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tif (!this.destroyed && this.subscriptions.size > 0) {\n\t\t\t\t\tthis.handleDisconnect();\n\t\t\t\t}\n\t\t\t}\n\t\t}, delay);\n\t}\n\n\tdestroy(): void {\n\t\tthis.destroyed = true;\n\t\tif (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\t\tif (this.connectReject) {\n\t\t\tthis.connectReject(new Error(\"WC relay destroyed\"));\n\t\t\tthis.connectReject = null;\n\t\t\tthis.connectPromise = null;\n\t\t}\n\t\tfor (const [, p] of this.pending) {\n\t\t\tp.reject(new Error(\"WC relay destroyed\"));\n\t\t}\n\t\tthis.pending.clear();\n\t\tthis.subscriptions.clear();\n\t\tthis.subIdToTopic.clear();\n\t\tif (this.ws) {\n\t\t\tthis.ws.close();\n\t\t\tthis.ws = null;\n\t\t}\n\t}\n}\n",
9
8
  "/** WalletConnect v2 session state machine (pairing → proposal → settlement) */\n\nimport {\n\tbytesToHex,\n\tdecodeBase64,\n\tdecryptType0,\n\tdecryptType1,\n\tderiveSymKey,\n\tgenerateKeyPair,\n\tgenerateSymKey,\n\thexToBytes,\n\tsymKeyToTopic,\n} from \"./crypto.ts\";\nimport { WcRelay } from \"./relay.ts\";\nimport type {\n\tWcJsonRpc,\n\tWcPairResult,\n\tWcProposal,\n\tWcProviderConfig,\n\tWcSessionData,\n\tWcSessionSettled,\n} from \"./types.ts\";\n\nconst STORAGE_KEY = \"@secondlayer/wc:session\";\nconst SESSION_EXPIRY = 7 * 24 * 60 * 60; // 7 days in seconds\n\nconst STACKS_METHODS = [\n\t\"stx_getAddresses\",\n\t\"stx_transferStx\",\n\t\"stx_callContract\",\n\t\"stx_deployContract\",\n\t\"stx_signMessage\",\n\t\"stx_signTransaction\",\n];\n\nconst STACKS_EVENTS = [\"chainChanged\", \"accountsChanged\"];\n\ndeclare const localStorage:\n\t| {\n\t\t\tgetItem(key: string): string | null;\n\t\t\tsetItem(key: string, value: string): void;\n\t\t\tremoveItem(key: string): void;\n\t }\n\t| undefined;\n\nfunction getStorage() {\n\treturn typeof localStorage !== \"undefined\" ? localStorage : undefined;\n}\n\nexport class WcSession {\n\tprivate relay: WcRelay;\n\tprivate config: WcProviderConfig;\n\tprivate chains: string[];\n\n\t// Pairing state\n\tprivate pairingSymKey: Uint8Array | null = null;\n\tprivate pairingTopic: string | null = null;\n\tprivate selfKeyPair: {\n\t\tprivateKey: Uint8Array;\n\t\tpublicKey: Uint8Array;\n\t} | null = null;\n\n\t// Session state\n\tprivate sessionData: WcSessionData | null = null;\n\tprivate sessionSymKey: Uint8Array | null = null;\n\tprivate pending = new Map<\n\t\tnumber,\n\t\t{ resolve: (v: unknown) => void; reject: (e: Error) => void }\n\t>();\n\tprivate nextId = Date.now();\n\n\tconstructor(config: WcProviderConfig) {\n\t\tthis.config = config;\n\t\tthis.chains = config.chains ?? [\"stacks:1\"];\n\t\tthis.relay = new WcRelay(config.projectId, config.relayUrl);\n\t}\n\n\t/** Try restoring a persisted session. Returns true if valid session found. */\n\trestore(): boolean {\n\t\ttry {\n\t\t\tconst raw = getStorage()?.getItem(STORAGE_KEY);\n\t\t\tif (!raw) return false;\n\t\t\tconst data = JSON.parse(raw) as WcSessionData;\n\t\t\tif (data.expiry < Date.now() / 1000) {\n\t\t\t\tgetStorage()?.removeItem(STORAGE_KEY);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.sessionData = data;\n\t\t\tthis.sessionSymKey = hexToBytes(data.symKey);\n\t\t\t// Subscribe to session topic for incoming requests (fire-and-forget)\n\t\t\tthis.subscribeSession().catch(() => {});\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** Initiate pairing. Returns URI for QR code + approval promise. */\n\tasync pair(): Promise<WcPairResult> {\n\t\tthis.pairingSymKey = generateSymKey();\n\t\tthis.pairingTopic = symKeyToTopic(this.pairingSymKey);\n\t\tthis.selfKeyPair = generateKeyPair();\n\n\t\tconst symKeyHex = bytesToHex(this.pairingSymKey);\n\t\tconst uri = `wc:${this.pairingTopic}@2?relay-protocol=irn&symKey=${symKeyHex}`;\n\n\t\tconst approval = new Promise<WcSessionSettled>((resolve, reject) => {\n\t\t\tthis.relay\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\t.subscribe(this.pairingTopic!, (msg) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.handlePairingMessage(msg.message, resolve, reject);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(err instanceof Error ? err : new Error(String(err)));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(reject);\n\t\t});\n\n\t\treturn { uri, approval };\n\t}\n\n\t/** Send a JSON-RPC request over the session. */\n\tasync request(method: string, params?: unknown): Promise<unknown> {\n\t\tif (!this.sessionData || !this.sessionSymKey) {\n\t\t\tthrow new Error(\"No active WC session\");\n\t\t}\n\n\t\tconst id = this.nextId++;\n\t\tconst payload = {\n\t\t\tid,\n\t\t\tjsonrpc: \"2.0\" as const,\n\t\t\tmethod: \"wc_sessionRequest\",\n\t\t\tparams: {\n\t\t\t\trequest: { method, params },\n\t\t\t\tchainId: this.chains[0],\n\t\t\t},\n\t\t};\n\n\t\tconst sessionData = this.sessionData;\n\t\tconst sessionSymKey = this.sessionSymKey;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.pending.set(id, { resolve, reject });\n\t\t\tthis.relay\n\t\t\t\t.publishEncrypted(\n\t\t\t\t\tsessionData.topic,\n\t\t\t\t\tsessionSymKey,\n\t\t\t\t\tpayload,\n\t\t\t\t\t1108, // tag for session request\n\t\t\t\t\tSESSION_EXPIRY,\n\t\t\t\t)\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tthis.pending.delete(id);\n\t\t\t\t\treject(err);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tdisconnect(): void {\n\t\tif (this.sessionData && this.sessionSymKey) {\n\t\t\tconst id = this.nextId++;\n\t\t\tconst payload = {\n\t\t\t\tid,\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tmethod: \"wc_sessionDelete\",\n\t\t\t\tparams: { code: 6000, message: \"User disconnected\" },\n\t\t\t};\n\t\t\t// Best-effort notify peer\n\t\t\tthis.relay\n\t\t\t\t.publishEncrypted(\n\t\t\t\t\tthis.sessionData.topic,\n\t\t\t\t\tthis.sessionSymKey,\n\t\t\t\t\tpayload,\n\t\t\t\t\t1112,\n\t\t\t\t)\n\t\t\t\t.catch(() => {});\n\t\t}\n\t\tthis.sessionData = null;\n\t\tthis.sessionSymKey = null;\n\t\tthis.pending.clear();\n\t\tgetStorage()?.removeItem(STORAGE_KEY);\n\t\tthis.relay.destroy();\n\t}\n\n\tget session(): WcSessionData | null {\n\t\treturn this.sessionData;\n\t}\n\n\t// -- Internal --\n\n\tprivate handlePairingMessage(\n\t\tmessage: string,\n\t\tresolve: (v: WcSessionSettled) => void,\n\t\treject: (e: Error) => void,\n\t) {\n\t\tconst envelope = decodeBase64(message);\n\t\tlet plaintext: string;\n\n\t\t// Could be type 0 (symmetric) or type 1 (asymmetric)\n\t\tif (envelope[0] === 0x01 && this.selfKeyPair) {\n\t\t\tplaintext = decryptType1(this.selfKeyPair.privateKey, envelope);\n\t\t} else if (this.pairingSymKey) {\n\t\t\tplaintext = decryptType0(this.pairingSymKey, envelope);\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tlet rpc: WcJsonRpc;\n\t\ttry {\n\t\t\trpc = JSON.parse(plaintext) as WcJsonRpc;\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\tif (rpc.method === \"wc_sessionPropose\") {\n\t\t\tthis.handleProposal(rpc as WcJsonRpc<WcProposal>, resolve, reject).catch(\n\t\t\t\treject,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate async handleProposal(\n\t\trpc: WcJsonRpc<WcProposal>,\n\t\tresolve: (v: WcSessionSettled) => void,\n\t\treject: (e: Error) => void,\n\t) {\n\t\ttry {\n\t\t\tconst proposal = rpc.params;\n\t\t\tconst peerPublicKey = hexToBytes(proposal.proposer.publicKey);\n\n\t\t\t// Generate session key pair + derive session symmetric key\n\t\t\tconst sessionKp = generateKeyPair();\n\t\t\tconst sessionSymKey = deriveSymKey(sessionKp.privateKey, peerPublicKey);\n\t\t\tconst sessionTopic = symKeyToTopic(sessionSymKey);\n\n\t\t\tconst expiry = Math.floor(Date.now() / 1000) + SESSION_EXPIRY;\n\n\t\t\tconst settled: WcSessionSettled = {\n\t\t\t\trelay: { protocol: \"irn\" },\n\t\t\t\tnamespaces: {\n\t\t\t\t\tstacks: {\n\t\t\t\t\t\tchains: this.chains,\n\t\t\t\t\t\tmethods: STACKS_METHODS,\n\t\t\t\t\t\tevents: STACKS_EVENTS,\n\t\t\t\t\t\taccounts: this.chains.map((c) => `${c}:placeholder`),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcontroller: {\n\t\t\t\t\tpublicKey: bytesToHex(sessionKp.publicKey),\n\t\t\t\t\tmetadata: this.config.metadata,\n\t\t\t\t},\n\t\t\t\texpiry,\n\t\t\t};\n\n\t\t\t// Approve the proposal on the pairing topic\n\t\t\tconst approvePayload = {\n\t\t\t\tid: rpc.id,\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tresult: {\n\t\t\t\t\trelay: { protocol: \"irn\" },\n\t\t\t\t\tresponderPublicKey: bytesToHex(sessionKp.publicKey),\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tawait this.relay.publishEncrypted(\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tthis.pairingTopic!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tthis.pairingSymKey!,\n\t\t\t\tapprovePayload,\n\t\t\t\t1101, // tag for session propose response\n\t\t\t);\n\n\t\t\t// Subscribe to session topic\n\t\t\tthis.sessionSymKey = sessionSymKey;\n\t\t\tthis.sessionData = {\n\t\t\t\ttopic: sessionTopic,\n\t\t\t\tsymKey: bytesToHex(sessionSymKey),\n\t\t\t\tpeerMeta: proposal.proposer.metadata,\n\t\t\t\texpiry,\n\t\t\t\taccounts: [],\n\t\t\t\tcontrollerPublicKey: proposal.proposer.publicKey,\n\t\t\t};\n\n\t\t\tawait this.subscribeSession();\n\n\t\t\t// Send session settle on the new session topic\n\t\t\tconst settlePayload = {\n\t\t\t\tid: this.nextId++,\n\t\t\t\tjsonrpc: \"2.0\",\n\t\t\t\tmethod: \"wc_sessionSettle\",\n\t\t\t\tparams: settled,\n\t\t\t};\n\n\t\t\tawait this.relay.publishEncrypted(\n\t\t\t\tsessionTopic,\n\t\t\t\tsessionSymKey,\n\t\t\t\tsettlePayload,\n\t\t\t\t1104, // tag for session settle\n\t\t\t);\n\n\t\t\t// Persist\n\t\t\tgetStorage()?.setItem(STORAGE_KEY, JSON.stringify(this.sessionData));\n\n\t\t\tresolve(settled);\n\t\t} catch (err) {\n\t\t\treject(err instanceof Error ? err : new Error(String(err)));\n\t\t}\n\t}\n\n\tprivate async subscribeSession() {\n\t\tif (!this.sessionData || !this.sessionSymKey) return;\n\n\t\tconst symKey = this.sessionSymKey;\n\t\tawait this.relay.subscribe(this.sessionData.topic, (msg) => {\n\t\t\ttry {\n\t\t\t\tconst envelope = decodeBase64(msg.message);\n\t\t\t\tconst plaintext = decryptType0(symKey, envelope);\n\t\t\t\tconst rpc = JSON.parse(plaintext);\n\n\t\t\t\t// Response to our request\n\t\t\t\tif (\"id\" in rpc && this.pending.has(rpc.id)) {\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\t\tconst p = this.pending.get(rpc.id)!;\n\t\t\t\t\tthis.pending.delete(rpc.id);\n\t\t\t\t\tif (rpc.error) {\n\t\t\t\t\t\tp.reject(new Error(rpc.error.message ?? \"WC request failed\"));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.resolve(rpc.result);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Session delete from peer\n\t\t\t\tif (rpc.method === \"wc_sessionDelete\") {\n\t\t\t\t\tthis.sessionData = null;\n\t\t\t\t\tthis.sessionSymKey = null;\n\t\t\t\t\tthis.pending.clear();\n\t\t\t\t\tgetStorage()?.removeItem(STORAGE_KEY);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// ignore malformed messages\n\t\t\t}\n\t\t});\n\t}\n}\n",
10
9
  "/** WalletProvider adapter for WalletConnect v2 */\n\nimport type { WalletProvider } from \"../types.ts\";\nimport { WcSession } from \"./session.ts\";\nimport type { WcPairResult, WcProviderConfig, WcSessionData } from \"./types.ts\";\n\nexport class WalletConnectProvider implements WalletProvider {\n\tprivate session: WcSession;\n\n\tconstructor(config: WcProviderConfig) {\n\t\tthis.session = new WcSession(config);\n\t}\n\n\t/** Try restoring a persisted session. Returns true if valid. */\n\trestore(): boolean {\n\t\treturn this.session.restore();\n\t}\n\n\t/** Initiate pairing. Returns URI for QR + approval promise. */\n\tasync pair(): Promise<WcPairResult> {\n\t\treturn this.session.pair();\n\t}\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tasync request(method: string, params?: any): Promise<any> {\n\t\treturn this.session.request(method, params);\n\t}\n\n\tdisconnect(): void {\n\t\tthis.session.disconnect();\n\t}\n\n\tget sessionData(): WcSessionData | null {\n\t\treturn this.session.session;\n\t}\n}\n",
11
10
  "/**\n * Minimal QR code generator for WalletConnect URIs.\n * Produces SVG string. Byte-mode encoding, error correction level L.\n * Supports versions 1-10 (up to 271 bytes — plenty for WC URIs).\n */\n\n// Version capacity table (byte mode, EC level L)\nconst CAPACITIES = [0, 17, 32, 53, 78, 106, 134, 154, 192, 230, 271];\n\n// Generator polynomials for EC codewords per version (L level)\n// [totalCodewords, ecCodewordsPerBlock, numBlocks]\nconst EC_PARAMS: [number, number, number][] = [\n\t[0, 0, 0], // v0 placeholder\n\t[26, 7, 1],\n\t[44, 10, 1],\n\t[70, 15, 1],\n\t[100, 20, 1],\n\t[134, 26, 1],\n\t[172, 18, 2],\n\t[196, 20, 2],\n\t[242, 24, 2],\n\t[292, 30, 2],\n\t[346, 18, 4],\n];\n\nfunction selectVersion(len: number): number {\n\tfor (let v = 1; v <= 10; v++) {\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tif (len <= CAPACITIES[v]!) return v;\n\t}\n\tthrow new Error(\"QR data too long\");\n}\n\n// GF(256) arithmetic for Reed-Solomon\nconst GF_EXP = new Uint8Array(512);\nconst GF_LOG = new Uint8Array(256);\n{\n\tlet x = 1;\n\tfor (let i = 0; i < 255; i++) {\n\t\tGF_EXP[i] = x;\n\t\tGF_LOG[x] = i;\n\t\tx = (x << 1) ^ (x >= 128 ? 0x11d : 0);\n\t}\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tfor (let i = 255; i < 512; i++) GF_EXP[i] = GF_EXP[i - 255]!;\n}\n\nfunction gfMul(a: number, b: number): number {\n\tif (a === 0 || b === 0) return 0;\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\treturn GF_EXP[GF_LOG[a]! + GF_LOG[b]!]!;\n}\n\nfunction rsGenPoly(n: number): Uint8Array {\n\tlet poly = new Uint8Array([1]);\n\tfor (let i = 0; i < n; i++) {\n\t\tconst next = new Uint8Array(poly.length + 1);\n\t\tfor (let j = 0; j < poly.length; j++) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tnext[j] = next[j]! ^ poly[j]!;\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tnext[j + 1] = next[j + 1]! ^ gfMul(poly[j]!, GF_EXP[i]!);\n\t\t}\n\t\tpoly = next;\n\t}\n\treturn poly;\n}\n\nfunction rsEncode(data: Uint8Array, ecLen: number): Uint8Array {\n\tconst gen = rsGenPoly(ecLen);\n\tconst result = new Uint8Array(data.length + ecLen);\n\tresult.set(data);\n\tfor (let i = 0; i < data.length; i++) {\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tconst coef = result[i]!;\n\t\tif (coef === 0) continue;\n\t\tfor (let j = 0; j < gen.length; j++) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tresult[i + j] = result[i + j]! ^ gfMul(gen[j]!, coef);\n\t\t}\n\t}\n\treturn result.subarray(data.length);\n}\n\nfunction encodeData(bytes: Uint8Array, version: number): Uint8Array {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tconst [totalCw, ecPerBlock, numBlocks] = EC_PARAMS[version]!;\n\tconst dataCw = totalCw - ecPerBlock * numBlocks;\n\n\t// Build byte-mode bitstream\n\tconst bits: number[] = [];\n\tconst push = (val: number, len: number) => {\n\t\tfor (let i = len - 1; i >= 0; i--) bits.push((val >> i) & 1);\n\t};\n\n\tpush(0b0100, 4); // byte mode indicator\n\tpush(bytes.length, version <= 9 ? 8 : 16); // character count\n\tfor (const b of bytes) push(b, 8);\n\tpush(0, 4); // terminator (up to 4 bits)\n\n\t// Pad to byte boundary\n\twhile (bits.length % 8 !== 0) bits.push(0);\n\n\t// Build codeword array\n\tconst codewords = new Uint8Array(dataCw);\n\tfor (let i = 0; i < dataCw; i++) {\n\t\tlet byte = 0;\n\t\tfor (let j = 0; j < 8; j++) {\n\t\t\tconst idx = i * 8 + j;\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tbyte = (byte << 1) | (idx < bits.length ? bits[idx]! : 0);\n\t\t}\n\t\tcodewords[i] = byte;\n\t}\n\n\t// Pad codewords\n\tlet padByte = 0xec;\n\tfor (let i = Math.ceil(bits.length / 8); i < dataCw; i++) {\n\t\tcodewords[i] = padByte;\n\t\tpadByte = padByte === 0xec ? 0x11 : 0xec;\n\t}\n\n\t// Reed-Solomon EC\n\tconst cwPerBlock = Math.floor(dataCw / numBlocks);\n\tconst dataBlocks: Uint8Array[] = [];\n\tconst ecBlocks: Uint8Array[] = [];\n\tlet offset = 0;\n\tfor (let b = 0; b < numBlocks; b++) {\n\t\tconst blockLen = cwPerBlock + (b < dataCw % numBlocks ? 1 : 0);\n\t\tconst block = codewords.subarray(offset, offset + blockLen);\n\t\tdataBlocks.push(block);\n\t\tecBlocks.push(rsEncode(block, ecPerBlock));\n\t\toffset += blockLen;\n\t}\n\n\t// Interleave\n\tconst result: number[] = [];\n\tconst maxDataLen = Math.max(...dataBlocks.map((b) => b.length));\n\tfor (let i = 0; i < maxDataLen; i++) {\n\t\tfor (const block of dataBlocks) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tif (i < block.length) result.push(block[i]!);\n\t\t}\n\t}\n\tfor (let i = 0; i < ecPerBlock; i++) {\n\t\tfor (const block of ecBlocks) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tif (i < block.length) result.push(block[i]!);\n\t\t}\n\t}\n\n\treturn new Uint8Array(result);\n}\n\n// QR matrix operations\n\ntype Matrix = Uint8Array[];\n\nfunction createMatrix(size: number): Matrix {\n\treturn Array.from({ length: size }, () => new Uint8Array(size));\n}\n\nfunction setModule(\n\tm: Matrix,\n\tr: number,\n\tc: number,\n\tval: number,\n\treserved: Matrix,\n) {\n\tif (r >= 0 && r < m.length && c >= 0 && c < m.length) {\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tm[r]![c] = val;\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\treserved[r]![c] = 1;\n\t}\n}\n\nfunction addFinderPattern(m: Matrix, r: number, c: number, res: Matrix) {\n\tfor (let dr = -1; dr <= 7; dr++) {\n\t\tfor (let dc = -1; dc <= 7; dc++) {\n\t\t\tconst rr = r + dr;\n\t\t\tconst cc = c + dc;\n\t\t\tif (rr < 0 || rr >= m.length || cc < 0 || cc >= m.length) continue;\n\t\t\tconst inOuter = dr >= 0 && dr <= 6 && dc >= 0 && dc <= 6;\n\t\t\tconst inInner = dr >= 2 && dr <= 4 && dc >= 2 && dc <= 4;\n\t\t\tconst onBorder = dr === 0 || dr === 6 || dc === 0 || dc === 6;\n\t\t\tconst val = inInner || (inOuter && onBorder) ? 1 : 0;\n\t\t\tsetModule(m, rr, cc, val, res);\n\t\t}\n\t}\n}\n\nfunction addTimingPatterns(m: Matrix, res: Matrix) {\n\tfor (let i = 8; i < m.length - 8; i++) {\n\t\tconst val = i % 2 === 0 ? 1 : 0;\n\t\tif (!res[6]?.[i]) setModule(m, 6, i, val, res);\n\t\tif (!res[i]?.[6]) setModule(m, i, 6, val, res);\n\t}\n}\n\nfunction addFormatInfo(m: Matrix, res: Matrix) {\n\t// EC level L (01), mask 0 (000) → format bits 01000 → with BCH: 0x77C0 ... simplified\n\t// Use pre-computed format info for L/mask0: 111011111000100\n\tconst fmt = 0b111011111000100;\n\tconst n = m.length;\n\tfor (let i = 0; i < 15; i++) {\n\t\tconst bit = (fmt >> (14 - i)) & 1;\n\t\t// Around top-left finder\n\t\tif (i < 6) setModule(m, 8, i, bit, res);\n\t\telse if (i === 6) setModule(m, 8, 7, bit, res);\n\t\telse if (i === 7) setModule(m, 8, 8, bit, res);\n\t\telse if (i === 8) setModule(m, 7, 8, bit, res);\n\t\telse setModule(m, 14 - i, 8, bit, res);\n\n\t\t// Around other finders\n\t\tif (i < 8) setModule(m, n - 1 - i, 8, bit, res);\n\t\telse setModule(m, 8, n - 15 + i, bit, res);\n\t}\n\t// Dark module\n\tsetModule(m, n - 8, 8, 1, res);\n}\n\nfunction placeData(m: Matrix, res: Matrix, data: Uint8Array) {\n\tconst n = m.length;\n\tlet bitIdx = 0;\n\tconst totalBits = data.length * 8;\n\n\tlet col = n - 1;\n\tlet upward = true;\n\n\twhile (col >= 0) {\n\t\tif (col === 6) col--; // skip timing column\n\t\tconst rows = upward\n\t\t\t? Array.from({ length: n }, (_, i) => n - 1 - i)\n\t\t\t: Array.from({ length: n }, (_, i) => i);\n\n\t\tfor (const row of rows) {\n\t\t\tfor (const dc of [0, -1]) {\n\t\t\t\tconst c = col + dc;\n\t\t\t\tif (c < 0 || res[row]?.[c]) continue;\n\t\t\t\tif (bitIdx < totalBits) {\n\t\t\t\t\tconst byteIdx = bitIdx >> 3;\n\t\t\t\t\tconst bitPos = 7 - (bitIdx & 7);\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t\t\tconst bit = (data[byteIdx]! >> bitPos) & 1;\n\t\t\t\t\t// Apply mask 0: (row + col) % 2 === 0\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t\t\tm[row]![c] = bit ^ ((row + c) % 2 === 0 ? 1 : 0);\n\t\t\t\t\tbitIdx++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcol -= 2;\n\t\tupward = !upward;\n\t}\n}\n\nfunction buildMatrix(version: number, codewords: Uint8Array): Matrix {\n\tconst n = version * 4 + 17;\n\tconst m = createMatrix(n);\n\tconst res = createMatrix(n); // reserved modules\n\n\t// Finder patterns\n\taddFinderPattern(m, 0, 0, res);\n\taddFinderPattern(m, 0, n - 7, res);\n\taddFinderPattern(m, n - 7, 0, res);\n\n\taddTimingPatterns(m, res);\n\taddFormatInfo(m, res);\n\n\t// Alignment patterns for v >= 2\n\tif (version >= 2) {\n\t\tconst pos = [6, version * 4 + 10]; // simplified for v2-v6\n\t\tfor (const r of pos) {\n\t\t\tfor (const c of pos) {\n\t\t\t\t// Skip if overlapping finder\n\t\t\t\tif (res[r]?.[c]) continue;\n\t\t\t\tfor (let dr = -2; dr <= 2; dr++) {\n\t\t\t\t\tfor (let dc = -2; dc <= 2; dc++) {\n\t\t\t\t\t\tconst val =\n\t\t\t\t\t\t\tMath.abs(dr) === 2 || Math.abs(dc) === 2 || (dr === 0 && dc === 0)\n\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t\tsetModule(m, r + dr, c + dc, val, res);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tplaceData(m, res, codewords);\n\treturn m;\n}\n\n/** Generate a QR code as an SVG string for the given data. */\nexport function qrSvg(\n\tdata: string,\n\topts?: { size?: number; dark?: string; light?: string },\n): string {\n\tconst size = opts?.size ?? 256;\n\tconst dark = opts?.dark ?? \"#000000\";\n\tconst light = opts?.light ?? \"#ffffff\";\n\n\tconst bytes = new TextEncoder().encode(data);\n\tconst version = selectVersion(bytes.length);\n\tconst codewords = encodeData(bytes, version);\n\tconst matrix = buildMatrix(version, codewords);\n\n\tconst n = matrix.length;\n\tconst quiet = 4; // quiet zone modules\n\tconst total = n + quiet * 2;\n\tconst scale = size / total;\n\n\tlet paths = \"\";\n\tfor (let r = 0; r < n; r++) {\n\t\tfor (let c = 0; c < n; c++) {\n\t\t\tif (matrix[r]?.[c]) {\n\t\t\t\tconst x = (c + quiet) * scale;\n\t\t\t\tconst y = (r + quiet) * scale;\n\t\t\t\tpaths += `M${x},${y}h${scale}v${scale}h-${scale}z`;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [\n\t\t`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${size} ${size}\" width=\"${size}\" height=\"${size}\">`,\n\t\t`<rect width=\"${size}\" height=\"${size}\" fill=\"${light}\"/>`,\n\t\t`<path d=\"${paths}\" fill=\"${dark}\"/>`,\n\t\t\"</svg>\",\n\t].join(\"\");\n}\n",
11
+ "/**\n * Derive a stable machine-readable code from an error's `name` field:\n * `HttpRequestError` becomes `HTTP_REQUEST_ERROR`. `name` is a string\n * literal each class sets, so the code survives a bundler that mangles\n * class names. Branch on `code` instead of parsing `message`, which is\n * free to change.\n */\nfunction codeFromName(name: string): string {\n\treturn name\n\t\t.replace(/([a-z0-9])([A-Z])/g, \"$1_$2\")\n\t\t.replace(/([A-Z]+)([A-Z][a-z])/g, \"$1_$2\")\n\t\t.toUpperCase();\n}\n\nexport class BaseError extends Error {\n\toverride name = \"StacksError\";\n\t#code?: string;\n\tshortMessage: string;\n\tdetails?: string;\n\n\tconstructor(\n\t\tshortMessage: string,\n\t\toptions?: { cause?: Error; details?: string; code?: string },\n\t) {\n\t\tconst message = [\n\t\t\tshortMessage,\n\t\t\toptions?.details ? `\\n${options.details}` : \"\",\n\t\t].join(\"\");\n\n\t\tsuper(message, { cause: options?.cause });\n\t\tif (options?.code !== undefined) this.#code = options.code;\n\t\tthis.shortMessage = shortMessage;\n\t\tthis.details = options?.details;\n\t}\n\n\t/**\n\t * Stable identifier for programmatic handling; survives message\n\t * rewording and minification. An explicit `code` option wins, else it\n\t * is derived from `name` (`TimeoutError` gives `TIMEOUT_ERROR`).\n\t */\n\tget code(): string {\n\t\treturn this.#code ?? codeFromName(this.name);\n\t}\n\n\tset code(value: string) {\n\t\tthis.#code = value;\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tshortMessage: string;\n\t\tdetails: string | undefined;\n\t\tcause: string | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tshortMessage: this.shortMessage,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause instanceof Error ? this.cause.message : undefined,\n\t\t};\n\t}\n}\n",
12
12
  "import { ConnectError } from \"./errors.ts\";\nimport type { WalletProvider } from \"./types.ts\";\n\ndeclare const window:\n\t| {\n\t\t\tStacksProvider?: WalletProvider;\n\t\t\tLeatherProvider?: WalletProvider;\n\t\t\tXverseProvider?: WalletProvider;\n\t\t\tHiroWalletProvider?: WalletProvider;\n\t }\n\t| undefined;\n\nlet customProvider: WalletProvider | null = null;\n\n/** Set a custom provider (e.g. WalletConnectProvider). Pass null to clear. */\nexport function setProvider(provider: WalletProvider | null): void {\n\tcustomProvider = provider;\n}\n\nexport function getProvider(): WalletProvider {\n\tif (customProvider) return customProvider;\n\n\tif (typeof window === \"undefined\") {\n\t\tthrow new ConnectError(\"No Stacks wallet found\");\n\t}\n\n\tconst provider =\n\t\twindow.StacksProvider ??\n\t\twindow.LeatherProvider ??\n\t\twindow.XverseProvider ??\n\t\twindow.HiroWalletProvider;\n\n\tif (!provider) throw new ConnectError(\"No Stacks wallet found\");\n\treturn provider;\n}\n\nexport function isWalletInstalled(): boolean {\n\treturn (\n\t\ttypeof window !== \"undefined\" &&\n\t\t!!(\n\t\t\twindow.StacksProvider ||\n\t\t\twindow.LeatherProvider ||\n\t\t\twindow.XverseProvider ||\n\t\t\twindow.HiroWalletProvider\n\t\t)\n\t);\n}\n",
13
13
  "/** Minimal wallet picker modal (injected wallets + WC QR) */\n\nimport { isWalletInstalled } from \"../provider.ts\";\nimport { qrSvg } from \"./qr.ts\";\n\n// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\ndeclare const document: any;\n\nconst MODAL_ID = \"sl-wc-modal\";\n\nconst STYLES = `\n #${MODAL_ID} { position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5) }\n #${MODAL_ID} .sl-wc-box { background:#fff;border-radius:16px;padding:24px;max-width:360px;width:90%;text-align:center;font-family:system-ui,sans-serif }\n #${MODAL_ID} .sl-wc-title { margin:0 0 16px;font-size:18px;font-weight:600;color:#1a1a1a }\n #${MODAL_ID} .sl-wc-btn { display:block;width:100%;padding:12px;margin:8px 0;border:1px solid #e5e5e5;border-radius:12px;background:#fff;cursor:pointer;font-size:15px;font-weight:500;color:#1a1a1a;transition:background .15s }\n #${MODAL_ID} .sl-wc-btn:hover { background:#f5f5f5 }\n #${MODAL_ID} .sl-wc-divider { margin:16px 0;color:#999;font-size:13px }\n #${MODAL_ID} .sl-wc-qr { margin:16px auto 0 }\n #${MODAL_ID} .sl-wc-close { position:absolute;top:12px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:#999 }\n`;\n\nexport interface ModalOptions {\n\twcUri?: string;\n\tonSelectInjected?: () => void;\n\tonClose?: () => void;\n}\n\nexport function showModal(opts: ModalOptions): () => void {\n\tif (typeof document === \"undefined\") return () => {};\n\n\t// Remove existing\n\tdocument.getElementById(MODAL_ID)?.remove();\n\n\tconst overlay = document.createElement(\"div\");\n\toverlay.id = MODAL_ID;\n\n\tconst style = document.createElement(\"style\");\n\tstyle.textContent = STYLES;\n\toverlay.appendChild(style);\n\n\tconst box = document.createElement(\"div\");\n\tbox.className = \"sl-wc-box\";\n\tbox.style.position = \"relative\";\n\n\t// Close button\n\tconst close = document.createElement(\"button\");\n\tclose.className = \"sl-wc-close\";\n\tclose.textContent = \"\\u00d7\";\n\tclose.onclick = dismiss;\n\tbox.appendChild(close);\n\n\t// Title\n\tconst title = document.createElement(\"h2\");\n\ttitle.className = \"sl-wc-title\";\n\ttitle.textContent = \"Connect Wallet\";\n\tbox.appendChild(title);\n\n\t// Injected wallet button\n\tif (isWalletInstalled()) {\n\t\tconst btn = document.createElement(\"button\");\n\t\tbtn.className = \"sl-wc-btn\";\n\t\tbtn.textContent = \"Browser Wallet\";\n\t\tbtn.onclick = () => {\n\t\t\tdismiss();\n\t\t\topts.onSelectInjected?.();\n\t\t};\n\t\tbox.appendChild(btn);\n\t}\n\n\t// QR code\n\tif (opts.wcUri) {\n\t\tif (isWalletInstalled()) {\n\t\t\tconst divider = document.createElement(\"div\");\n\t\t\tdivider.className = \"sl-wc-divider\";\n\t\t\tdivider.textContent = \"or scan with mobile wallet\";\n\t\t\tbox.appendChild(divider);\n\t\t}\n\n\t\tconst qr = document.createElement(\"div\");\n\t\tqr.className = \"sl-wc-qr\";\n\t\tqr.innerHTML = qrSvg(opts.wcUri, { size: 240 });\n\t\tbox.appendChild(qr);\n\t}\n\n\toverlay.appendChild(box);\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\toverlay.onclick = (e: any) => {\n\t\tif (e.target === overlay) dismiss();\n\t};\n\n\tdocument.body.appendChild(overlay);\n\n\tfunction dismiss() {\n\t\toverlay.remove();\n\t\topts.onClose?.();\n\t}\n\n\treturn dismiss;\n}\n\nexport function hideModal(): void {\n\tif (typeof document === \"undefined\") return;\n\tdocument.getElementById(MODAL_ID)?.remove();\n}\n"
14
14
  ],
15
- "mappings": "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",
16
- "debugId": "3224112B5536B35F64756E2164756E21",
15
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEoB,IAApB;AACgC,IAAhC;AACqB,IAArB;AACuB,IAAvB;AAC4B,IAA5B;AACuC,IAAvC;;;ACPA,IAAM,QAAQ,MAAM,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,MAC7C,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAC/B;AAEO,SAAS,UAAU,CAAC,OAA2B;AAAA,EACrD,IAAI,MAAM;AAAA,EACV,WAAW,KAAK,OAAO;AAAA,IACtB,OAAO,MAAM;AAAA,EACd;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,UAAU,CAAC,KAAyB;AAAA,EACnD,IAAI,IAAI,UAAU,GAAG;AAAA,EACrB,IAAI,EAAE,SAAS;AAAA,IAAG,IAAI,IAAI;AAAA,EAE1B,MAAM,QAAQ,IAAI,WAAW,EAAE,SAAS,CAAC;AAAA,EACzC,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACtC,MAAM,IAAI,IAAI;AAAA,IACd,MAAM,OAAO,OAAO,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;AAAA,IAClD,IAAI,OAAO,MAAM,IAAI,KAAK,OAAO;AAAA,MAChC,MAAM,IAAI,MAAM,uBAAuB;AAAA,IACxC,MAAM,KAAK;AAAA,EACZ;AAAA,EACA,OAAO;AAAA;AAOD,SAAS,SAAS,CAAC,OAAuB;AAAA,EAChD,OAAO,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC,IAAI;AAAA;;;ADtB9C,IAAM,YAAY;AAClB,IAAM,aAAa;AACnB,IAAM,SAAS;AACf,IAAM,SAAS;AAIR,SAAS,eAAe,GAAG;AAAA,EACjC,MAAM,aAAa,yBAAY,UAAU;AAAA,EACzC,MAAM,YAAY,sBAAO,aAAa,UAAU;AAAA,EAChD,OAAO,EAAE,YAAY,UAAU;AAAA;AAGzB,SAAS,cAAc,GAAe;AAAA,EAC5C,OAAO,yBAAY,UAAU;AAAA;AAIvB,SAAS,YAAY,CAC3B,aACA,YACa;AAAA,EACb,MAAM,SAAS,sBAAO,gBAAgB,aAAa,UAAU;AAAA,EAC7D,OAAO,iBAAK,oBAAQ,QAAQ,WAAW,WAAW,UAAU;AAAA;AAItD,SAAS,aAAa,CAAC,QAA4B;AAAA,EACzD,OAAO,WAAW,mBAAO,MAAM,CAAC;AAAA;AAK1B,SAAS,YAAY,CAAC,MAA0B;AAAA,EACtD,IAAI,SAAS;AAAA,EAEb,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ;AAAA,IAAK,UAAU,OAAO,aAAa,KAAK,EAAG;AAAA,EAC5E,OAAO,KAAK,MAAM;AAAA;AAGZ,SAAS,YAAY,CAAC,KAAyB;AAAA,EACrD,MAAM,SAAS,KAAK,GAAG;AAAA,EACvB,MAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAAA,EAC1C,SAAS,IAAI,EAAG,IAAI,OAAO,QAAQ;AAAA,IAAK,MAAM,KAAK,OAAO,WAAW,CAAC;AAAA,EACtE,OAAO;AAAA;AAMD,SAAS,YAAY,CAC3B,QACA,WACa;AAAA,EACb,MAAM,KAAK,yBAAY,SAAS;AAAA,EAChC,MAAM,OAAO,IAAI,YAAY,EAAE,OAAO,SAAS;AAAA,EAC/C,MAAM,SAAS,eAAI,QAAQ,EAAE;AAAA,EAC7B,MAAM,SAAS,OAAO,QAAQ,IAAI;AAAA,EAClC,MAAM,WAAW,IAAI,WAAW,IAAI,YAAY,OAAO,MAAM;AAAA,EAC7D,SAAS,KAAK;AAAA,EACd,SAAS,IAAI,IAAI,CAAC;AAAA,EAClB,SAAS,IAAI,QAAQ,IAAI,SAAS;AAAA,EAClC,OAAO;AAAA;AAGD,SAAS,YAAY,CAAC,QAAoB,UAA8B;AAAA,EAC9E,IAAI,SAAS,OAAO;AAAA,IAAQ,MAAM,IAAI,MAAM,uBAAuB;AAAA,EACnE,MAAM,KAAK,SAAS,SAAS,GAAG,IAAI,SAAS;AAAA,EAC7C,MAAM,SAAS,SAAS,SAAS,IAAI,SAAS;AAAA,EAC9C,MAAM,SAAS,eAAI,QAAQ,EAAE;AAAA,EAC7B,MAAM,QAAQ,OAAO,QAAQ,MAAM;AAAA,EACnC,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA;AAyB/B,SAAS,YAAY,CAC3B,iBACA,UACS;AAAA,EACT,IAAI,SAAS,OAAO;AAAA,IAAQ,MAAM,IAAI,MAAM,uBAAuB;AAAA,EACnE,MAAM,eAAe,SAAS,SAAS,GAAG,IAAI,UAAU;AAAA,EACxD,MAAM,KAAK,SAAS,SAAS,IAAI,YAAY,IAAI,aAAa,SAAS;AAAA,EACvE,MAAM,SAAS,SAAS,SAAS,IAAI,aAAa,SAAS;AAAA,EAC3D,MAAM,SAAS,aAAa,iBAAiB,YAAY;AAAA,EACzD,MAAM,SAAS,eAAI,QAAQ,EAAE;AAAA,EAC7B,MAAM,QAAQ,OAAO,QAAQ,MAAM;AAAA,EACnC,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA;AAiBtC,IAAM,qBAAqB,IAAI,WAAW,CAAC,KAAM,CAAI,CAAC;AAEtD,SAAS,YAAY,CAAC,WAA+B;AAAA,EACpD,MAAM,WAAW,IAAI,WAAW,mBAAmB,SAAS,UAAU,MAAM;AAAA,EAC5E,SAAS,IAAI,kBAAkB;AAAA,EAC/B,SAAS,IAAI,WAAW,mBAAmB,MAAM;AAAA,EACjD,OAAO,YAAY,mBAAO,OAAO,QAAQ;AAAA;AAG1C,SAAS,eAAe,CAAC,MAAmC;AAAA,EAC3D,MAAM,QACL,OAAO,SAAS,WAAW,IAAI,YAAY,EAAE,OAAO,IAAI,IAAI;AAAA,EAC7D,OAAO,2BAAe,OAAO,KAAK;AAAA;AAI5B,SAAS,kBAAkB,CAAC,UAGjC;AAAA,EACD,MAAM,aAAa,uBAAQ,MAAM,gBAAgB;AAAA,EACjD,MAAM,YAAY,uBAAQ,aAAa,UAAU;AAAA,EACjD,MAAM,WAAW,aAAa,SAAS;AAAA,EAEvC,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI;AAAA,EACxC,MAAM,SAAS,gBAAgB,KAAK,UAAU,EAAE,KAAK,SAAS,KAAK,MAAM,CAAC,CAAC;AAAA,EAC3E,MAAM,UAAU,gBACf,KAAK,UAAU;AAAA,IACd,KAAK;AAAA,IACL,KAAK,WAAW,yBAAY,EAAE,CAAC;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,MAAM;AAAA,IACX,KAAK;AAAA,EACN,CAAC,CACF;AAAA,EAEA,MAAM,UAAU,IAAI,YAAY,EAAE,OAAO,GAAG,UAAU,SAAS;AAAA,EAC/D,MAAM,YAAY,gBAAgB,uBAAQ,KAAK,SAAS,UAAU,CAAC;AAAA,EAEnE,OAAO,EAAE,KAAK,GAAG,UAAU,WAAW,aAAa,SAAS;AAAA;;;AEzK7D,IAAM,gBAAgB;AACtB,IAAM,cAAc;AAAA;AASb,MAAM,QAAQ;AAAA,EACZ,KAAuB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI;AAAA,EAC5D,UAAU,IAAI;AAAA,EACd,gBAAgB,IAAI;AAAA,EAEpB,eAAe,IAAI;AAAA,EACnB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,iBAAuD;AAAA,EACvD,iBAAuC;AAAA,EACvC,gBAA6C;AAAA,EAErD,WAAW,CAAC,WAAmB,UAAmB;AAAA,IACjD,KAAK,YAAY;AAAA,IACjB,KAAK,MAAM,YAAY;AAAA;AAAA,OAKlB,QAAO,GAAkB;AAAA,IAC9B,IAAI,KAAK,IAAI,eAAe,UAAU;AAAA,MAAM;AAAA,IAC5C,IAAI,KAAK;AAAA,MAAgB,OAAO,KAAK;AAAA,IAErC,KAAK,iBAAiB,IAAI,QAAc,CAAC,SAAS,WAAW;AAAA,MAC5D,KAAK,gBAAgB;AAAA,MACrB,QAAQ,QAAQ,mBAAmB,KAAK,GAAG;AAAA,MAC3C,MAAM,QAAQ,GAAG,KAAK,aAAa,iBAAiB,KAAK;AAAA,MACzD,KAAK,KAAK,IAAI,UAAU,KAAK;AAAA,MAE7B,KAAK,GAAG,iBACP,QACA,MAAM;AAAA,QACL,KAAK,mBAAmB;AAAA,QACxB,KAAK,eAAe;AAAA,QACpB,KAAK,iBAAiB;AAAA,QACtB,KAAK,gBAAgB;AAAA,QACrB,QAAQ;AAAA,SAET,EAAE,MAAM,KAAK,CACd;AAAA,MAEA,KAAK,GAAG,iBACP,SACA,CAAC,MAAM;AAAA,QACN,KAAK,iBAAiB;AAAA,QACtB,KAAK,gBAAgB;AAAA,QACrB,OAAO,IAAI,MAAM,+BAA+B,GAAG,CAAC;AAAA,SAErD,EAAE,MAAM,KAAK,CACd;AAAA,MAEA,KAAK,GAAG,iBAAiB,WAAW,CAAC,UAAU;AAAA,QAC9C,KAAK,cACJ,OAAO,MAAM,SAAS,WACnB,MAAM,OACN,IAAI,YAAY,EAAE,OAAO,MAAM,IAAmB,CACtD;AAAA,OACA;AAAA,MAED,KAAK,GAAG,iBAAiB,SAAS,MAAM;AAAA,QACvC,KAAK,iBAAiB;AAAA,QACtB,IAAI,CAAC,KAAK;AAAA,UAAW,KAAK,iBAAiB;AAAA,OAC3C;AAAA,KACD;AAAA,IAED,OAAO,KAAK;AAAA;AAAA,OAKP,UAAS,CACd,OACA,SACkB;AAAA,IAClB,MAAM,KAAK,QAAQ;AAAA,IACnB,KAAK,cAAc,IAAI,OAAO,OAAO;AAAA,IACrC,MAAM,QAAS,MAAM,KAAK,IAAI,iBAAiB,EAAE,MAAM,CAAC;AAAA,IACxD,KAAK,aAAa,IAAI,OAAO,KAAK;AAAA,IAClC,OAAO;AAAA;AAAA,OAGF,QAAO,CACZ,OACA,SACA,KACA,MAAc,aACE;AAAA,IAChB,MAAM,KAAK,QAAQ;AAAA,IACnB,MAAM,KAAK,IAAI,eAAe;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,OAII,iBAAgB,CACrB,OACA,QACA,SACA,KACA,MAAc,aACE;AAAA,IAChB,MAAM,YAAY,KAAK,UAAU,OAAO;AAAA,IACxC,MAAM,WAAW,aAAa,QAAQ,SAAS;AAAA,IAC/C,MAAM,KAAK,QAAQ,OAAO,aAAa,QAAQ,GAAG,KAAK,GAAG;AAAA;AAAA,EAKnD,GAAG,CACV,QACA,QACmB;AAAA,IACnB,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACvC,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,eAAe,UAAU,MAAM;AAAA,QACtD,OAAO,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAAA,MAClD;AAAA,MACA,MAAM,KAAK,KAAK;AAAA,MAChB,KAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,OAAO,CAAC;AAAA,MACxC,KAAK,GAAG,KAAK,KAAK,UAAU,EAAE,IAAI,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC;AAAA,KACnE;AAAA;AAAA,EAGM,aAAa,CAAC,KAAa;AAAA,IAElC,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,MAAM,KAAK,MAAM,GAAG;AAAA,MACnB,MAAM;AAAA,MACP;AAAA;AAAA,IAID,IAAI,QAAQ,OAAO,IAAI,MAAM,QAAQ,KAAK,QAAQ,IAAI,IAAI,EAAE,GAAG;AAAA,MAE9D,MAAM,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,MACjC,KAAK,QAAQ,OAAO,IAAI,EAAE;AAAA,MAC1B,IAAI,IAAI,OAAO;AAAA,QACd,EAAE,OAAO,IAAI,MAAM,mBAAmB,IAAI,MAAM,SAAS,CAAC;AAAA,MAC3D,EAAO;AAAA,QACN,EAAE,QAAQ,IAAI,MAAM;AAAA;AAAA,MAErB;AAAA,IACD;AAAA,IAGA,IAAI,IAAI,WAAW,sBAAsB,IAAI,QAAQ;AAAA,MACpD,QAAQ,IAAI,OAAO,SAAS,IAAI;AAAA,MAChC,MAAM,QAAQ,MAAM,SAAS,KAAK,aAAa,IAAI,KAAK;AAAA,MACxD,MAAM,UAAU,QAAQ,KAAK,cAAc,IAAI,KAAK,IAAI;AAAA,MACxD,IAAI,WAAW,MAAM;AAAA,QACpB,QAAQ;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,SAAS,KAAK;AAAA,UACd,aAAa,KAAK,eAAe,KAAK,IAAI;AAAA,UAC1C,KAAK,KAAK,OAAO;AAAA,QAClB,CAAC;AAAA,MACF;AAAA,MAEA,IAAI,IAAI,MAAM,MAAM;AAAA,QACnB,KAAK,IAAI,KACR,KAAK,UAAU,EAAE,IAAI,IAAI,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC,CAC5D;AAAA,MACD;AAAA,IACD;AAAA;AAAA,EAGO,gBAAgB,GAAG;AAAA,IAC1B,KAAK,KAAK;AAAA,IACV,cAAc,MAAM,KAAK,SAAS;AAAA,MACjC,EAAE,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAAA,IAC5C;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IAEnB,IAAI,KAAK,cAAc,OAAO,KAAK,KAAK,mBAAmB,GAAG;AAAA,MAC7D,KAAK,kBAAkB;AAAA,IACxB;AAAA;AAAA,EAGO,iBAAiB,GAAG;AAAA,IAC3B,IAAI,KAAK,aAAa,KAAK;AAAA,MAAc;AAAA,IACzC,KAAK,eAAe;AAAA,IACpB,MAAM,QAAQ,OAAO,KAAK,KAAK;AAAA,IAC/B,KAAK;AAAA,IAEL,KAAK,iBAAiB,WAAW,YAAY;AAAA,MAC5C,KAAK,eAAe;AAAA,MACpB,IAAI;AAAA,QACH,MAAM,KAAK,QAAQ;AAAA,QAEnB,YAAY,UAAU,KAAK,eAAe;AAAA,UACzC,MAAM,QAAS,MAAM,KAAK,IAAI,iBAAiB,EAAE,MAAM,CAAC;AAAA,UACxD,KAAK,aAAa,IAAI,OAAO,KAAK;AAAA,QACnC;AAAA,QACC,MAAM;AAAA,QACP,IAAI,CAAC,KAAK,aAAa,KAAK,cAAc,OAAO,GAAG;AAAA,UACnD,KAAK,iBAAiB;AAAA,QACvB;AAAA;AAAA,OAEC,KAAK;AAAA;AAAA,EAGT,OAAO,GAAS;AAAA,IACf,KAAK,YAAY;AAAA,IACjB,IAAI,KAAK;AAAA,MAAgB,aAAa,KAAK,cAAc;AAAA,IACzD,IAAI,KAAK,eAAe;AAAA,MACvB,KAAK,cAAc,IAAI,MAAM,oBAAoB,CAAC;AAAA,MAClD,KAAK,gBAAgB;AAAA,MACrB,KAAK,iBAAiB;AAAA,IACvB;AAAA,IACA,cAAc,MAAM,KAAK,SAAS;AAAA,MACjC,EAAE,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,IACzC;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,cAAc,MAAM;AAAA,IACzB,KAAK,aAAa,MAAM;AAAA,IACxB,IAAI,KAAK,IAAI;AAAA,MACZ,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACX;AAAA;AAEF;;;AC5NA,IAAM,cAAc;AACpB,IAAM,iBAAiB,IAAI,KAAK,KAAK;AAErC,IAAM,iBAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,IAAM,gBAAgB,CAAC,gBAAgB,iBAAiB;AAUxD,SAAS,UAAU,GAAG;AAAA,EACrB,OAAO,OAAO,iBAAiB,cAAc,eAAe;AAAA;AAAA;AAGtD,MAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EAGA,gBAAmC;AAAA,EACnC,eAA8B;AAAA,EAC9B,cAGG;AAAA,EAGH,cAAoC;AAAA,EACpC,gBAAmC;AAAA,EACnC,UAAU,IAAI;AAAA,EAId,SAAS,KAAK,IAAI;AAAA,EAE1B,WAAW,CAAC,QAA0B;AAAA,IACrC,KAAK,SAAS;AAAA,IACd,KAAK,SAAS,OAAO,UAAU,CAAC,UAAU;AAAA,IAC1C,KAAK,QAAQ,IAAI,QAAQ,OAAO,WAAW,OAAO,QAAQ;AAAA;AAAA,EAI3D,OAAO,GAAY;AAAA,IAClB,IAAI;AAAA,MACH,MAAM,MAAM,WAAW,GAAG,QAAQ,WAAW;AAAA,MAC7C,IAAI,CAAC;AAAA,QAAK,OAAO;AAAA,MACjB,MAAM,OAAO,KAAK,MAAM,GAAG;AAAA,MAC3B,IAAI,KAAK,SAAS,KAAK,IAAI,IAAI,MAAM;AAAA,QACpC,WAAW,GAAG,WAAW,WAAW;AAAA,QACpC,OAAO;AAAA,MACR;AAAA,MACA,KAAK,cAAc;AAAA,MACnB,KAAK,gBAAgB,WAAW,KAAK,MAAM;AAAA,MAE3C,KAAK,iBAAiB,EAAE,MAAM,MAAM,EAAE;AAAA,MACtC,OAAO;AAAA,MACN,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA,OAKH,KAAI,GAA0B;AAAA,IACnC,KAAK,gBAAgB,eAAe;AAAA,IACpC,KAAK,eAAe,cAAc,KAAK,aAAa;AAAA,IACpD,KAAK,cAAc,gBAAgB;AAAA,IAEnC,MAAM,YAAY,WAAW,KAAK,aAAa;AAAA,IAC/C,MAAM,MAAM,MAAM,KAAK,4CAA4C;AAAA,IAEnE,MAAM,WAAW,IAAI,QAA0B,CAAC,SAAS,WAAW;AAAA,MACnE,KAAK,MAEH,UAAU,KAAK,cAAe,CAAC,QAAQ;AAAA,QACvC,IAAI;AAAA,UACH,KAAK,qBAAqB,IAAI,SAAS,SAAS,MAAM;AAAA,UACrD,OAAO,KAAK;AAAA,UACb,OAAO,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;AAAA;AAAA,OAE3D,EACA,MAAM,MAAM;AAAA,KACd;AAAA,IAED,OAAO,EAAE,KAAK,SAAS;AAAA;AAAA,OAIlB,QAAO,CAAC,QAAgB,QAAoC;AAAA,IACjE,IAAI,CAAC,KAAK,eAAe,CAAC,KAAK,eAAe;AAAA,MAC7C,MAAM,IAAI,MAAM,sBAAsB;AAAA,IACvC;AAAA,IAEA,MAAM,KAAK,KAAK;AAAA,IAChB,MAAM,UAAU;AAAA,MACf;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,QACP,SAAS,EAAE,QAAQ,OAAO;AAAA,QAC1B,SAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,IAEA,MAAM,cAAc,KAAK;AAAA,IACzB,MAAM,gBAAgB,KAAK;AAAA,IAC3B,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACvC,KAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,OAAO,CAAC;AAAA,MACxC,KAAK,MACH,iBACA,YAAY,OACZ,eACA,SACA,MACA,cACD,EACC,MAAM,CAAC,QAAQ;AAAA,QACf,KAAK,QAAQ,OAAO,EAAE;AAAA,QACtB,OAAO,GAAG;AAAA,OACV;AAAA,KACF;AAAA;AAAA,EAGF,UAAU,GAAS;AAAA,IAClB,IAAI,KAAK,eAAe,KAAK,eAAe;AAAA,MAC3C,MAAM,KAAK,KAAK;AAAA,MAChB,MAAM,UAAU;AAAA,QACf;AAAA,QACA,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ,EAAE,MAAM,MAAM,SAAS,oBAAoB;AAAA,MACpD;AAAA,MAEA,KAAK,MACH,iBACA,KAAK,YAAY,OACjB,KAAK,eACL,SACA,IACD,EACC,MAAM,MAAM,EAAE;AAAA,IACjB;AAAA,IACA,KAAK,cAAc;AAAA,IACnB,KAAK,gBAAgB;AAAA,IACrB,KAAK,QAAQ,MAAM;AAAA,IACnB,WAAW,GAAG,WAAW,WAAW;AAAA,IACpC,KAAK,MAAM,QAAQ;AAAA;AAAA,MAGhB,OAAO,GAAyB;AAAA,IACnC,OAAO,KAAK;AAAA;AAAA,EAKL,oBAAoB,CAC3B,SACA,SACA,QACC;AAAA,IACD,MAAM,WAAW,aAAa,OAAO;AAAA,IACrC,IAAI;AAAA,IAGJ,IAAI,SAAS,OAAO,KAAQ,KAAK,aAAa;AAAA,MAC7C,YAAY,aAAa,KAAK,YAAY,YAAY,QAAQ;AAAA,IAC/D,EAAO,SAAI,KAAK,eAAe;AAAA,MAC9B,YAAY,aAAa,KAAK,eAAe,QAAQ;AAAA,IACtD,EAAO;AAAA,MACN;AAAA;AAAA,IAGD,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,MAAM,KAAK,MAAM,SAAS;AAAA,MACzB,MAAM;AAAA,MACP;AAAA;AAAA,IAGD,IAAI,IAAI,WAAW,qBAAqB;AAAA,MACvC,KAAK,eAAe,KAA8B,SAAS,MAAM,EAAE,MAClE,MACD;AAAA,IACD;AAAA;AAAA,OAGa,eAAc,CAC3B,KACA,SACA,QACC;AAAA,IACD,IAAI;AAAA,MACH,MAAM,WAAW,IAAI;AAAA,MACrB,MAAM,gBAAgB,WAAW,SAAS,SAAS,SAAS;AAAA,MAG5D,MAAM,YAAY,gBAAgB;AAAA,MAClC,MAAM,gBAAgB,aAAa,UAAU,YAAY,aAAa;AAAA,MACtE,MAAM,eAAe,cAAc,aAAa;AAAA,MAEhD,MAAM,SAAS,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI;AAAA,MAE/C,MAAM,UAA4B;AAAA,QACjC,OAAO,EAAE,UAAU,MAAM;AAAA,QACzB,YAAY;AAAA,UACX,QAAQ;AAAA,YACP,QAAQ,KAAK;AAAA,YACb,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,UAAU,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,eAAe;AAAA,UACpD;AAAA,QACD;AAAA,QACA,YAAY;AAAA,UACX,WAAW,WAAW,UAAU,SAAS;AAAA,UACzC,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,QACA;AAAA,MACD;AAAA,MAGA,MAAM,iBAAiB;AAAA,QACtB,IAAI,IAAI;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,UACP,OAAO,EAAE,UAAU,MAAM;AAAA,UACzB,oBAAoB,WAAW,UAAU,SAAS;AAAA,QACnD;AAAA,MACD;AAAA,MAEA,MAAM,KAAK,MAAM,iBAEhB,KAAK,cAEL,KAAK,eACL,gBACA,IACD;AAAA,MAGA,KAAK,gBAAgB;AAAA,MACrB,KAAK,cAAc;AAAA,QAClB,OAAO;AAAA,QACP,QAAQ,WAAW,aAAa;AAAA,QAChC,UAAU,SAAS,SAAS;AAAA,QAC5B;AAAA,QACA,UAAU,CAAC;AAAA,QACX,qBAAqB,SAAS,SAAS;AAAA,MACxC;AAAA,MAEA,MAAM,KAAK,iBAAiB;AAAA,MAG5B,MAAM,gBAAgB;AAAA,QACrB,IAAI,KAAK;AAAA,QACT,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MAEA,MAAM,KAAK,MAAM,iBAChB,cACA,eACA,eACA,IACD;AAAA,MAGA,WAAW,GAAG,QAAQ,aAAa,KAAK,UAAU,KAAK,WAAW,CAAC;AAAA,MAEnE,QAAQ,OAAO;AAAA,MACd,OAAO,KAAK;AAAA,MACb,OAAO,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA,OAI9C,iBAAgB,GAAG;AAAA,IAChC,IAAI,CAAC,KAAK,eAAe,CAAC,KAAK;AAAA,MAAe;AAAA,IAE9C,MAAM,SAAS,KAAK;AAAA,IACpB,MAAM,KAAK,MAAM,UAAU,KAAK,YAAY,OAAO,CAAC,QAAQ;AAAA,MAC3D,IAAI;AAAA,QACH,MAAM,WAAW,aAAa,IAAI,OAAO;AAAA,QACzC,MAAM,YAAY,aAAa,QAAQ,QAAQ;AAAA,QAC/C,MAAM,MAAM,KAAK,MAAM,SAAS;AAAA,QAGhC,IAAI,QAAQ,OAAO,KAAK,QAAQ,IAAI,IAAI,EAAE,GAAG;AAAA,UAE5C,MAAM,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,UACjC,KAAK,QAAQ,OAAO,IAAI,EAAE;AAAA,UAC1B,IAAI,IAAI,OAAO;AAAA,YACd,EAAE,OAAO,IAAI,MAAM,IAAI,MAAM,WAAW,mBAAmB,CAAC;AAAA,UAC7D,EAAO;AAAA,YACN,EAAE,QAAQ,IAAI,MAAM;AAAA;AAAA,QAEtB;AAAA,QAGA,IAAI,IAAI,WAAW,oBAAoB;AAAA,UACtC,KAAK,cAAc;AAAA,UACnB,KAAK,gBAAgB;AAAA,UACrB,KAAK,QAAQ,MAAM;AAAA,UACnB,WAAW,GAAG,WAAW,WAAW;AAAA,QACrC;AAAA,QACC,MAAM;AAAA,KAGR;AAAA;AAEH;;;AClVO,MAAM,sBAAgD;AAAA,EACpD;AAAA,EAER,WAAW,CAAC,QAA0B;AAAA,IACrC,KAAK,UAAU,IAAI,UAAU,MAAM;AAAA;AAAA,EAIpC,OAAO,GAAY;AAAA,IAClB,OAAO,KAAK,QAAQ,QAAQ;AAAA;AAAA,OAIvB,KAAI,GAA0B;AAAA,IACnC,OAAO,KAAK,QAAQ,KAAK;AAAA;AAAA,OAIpB,QAAO,CAAC,QAAgB,QAA4B;AAAA,IACzD,OAAO,KAAK,QAAQ,QAAQ,QAAQ,MAAM;AAAA;AAAA,EAG3C,UAAU,GAAS;AAAA,IAClB,KAAK,QAAQ,WAAW;AAAA;AAAA,MAGrB,WAAW,GAAyB;AAAA,IACvC,OAAO,KAAK,QAAQ;AAAA;AAEtB;;AC5BA,IAAM,aAAa,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAInE,IAAM,YAAwC;AAAA,EAC7C,CAAC,GAAG,GAAG,CAAC;AAAA,EACR,CAAC,IAAI,GAAG,CAAC;AAAA,EACT,CAAC,IAAI,IAAI,CAAC;AAAA,EACV,CAAC,IAAI,IAAI,CAAC;AAAA,EACV,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AAAA,EACX,CAAC,KAAK,IAAI,CAAC;AACZ;AAEA,SAAS,aAAa,CAAC,KAAqB;AAAA,EAC3C,SAAS,IAAI,EAAG,KAAK,IAAI,KAAK;AAAA,IAE7B,IAAI,OAAO,WAAW;AAAA,MAAK,OAAO;AAAA,EACnC;AAAA,EACA,MAAM,IAAI,MAAM,kBAAkB;AAAA;AAInC,IAAM,SAAS,IAAI,WAAW,GAAG;AACjC,IAAM,SAAS,IAAI,WAAW,GAAG;AACjC;AAAA,EACC,IAAI,IAAI;AAAA,EACR,SAAS,IAAI,EAAG,IAAI,KAAK,KAAK;AAAA,IAC7B,OAAO,KAAK;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,IAAK,KAAK,KAAM,KAAK,MAAM,MAAQ;AAAA,EACpC;AAAA,EAEA,SAAS,IAAI,IAAK,IAAI,KAAK;AAAA,IAAK,OAAO,KAAK,OAAO,IAAI;AACxD;AAEA,SAAS,KAAK,CAAC,GAAW,GAAmB;AAAA,EAC5C,IAAI,MAAM,KAAK,MAAM;AAAA,IAAG,OAAO;AAAA,EAE/B,OAAO,OAAO,OAAO,KAAM,OAAO;AAAA;AAGnC,SAAS,SAAS,CAAC,GAAuB;AAAA,EACzC,IAAI,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AAAA,EAC7B,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC3B,MAAM,OAAO,IAAI,WAAW,KAAK,SAAS,CAAC;AAAA,IAC3C,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,MAErC,KAAK,KAAK,KAAK,KAAM,KAAK;AAAA,MAE1B,KAAK,IAAI,KAAK,KAAK,IAAI,KAAM,MAAM,KAAK,IAAK,OAAO,EAAG;AAAA,IACxD;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,QAAQ,CAAC,MAAkB,OAA2B;AAAA,EAC9D,MAAM,MAAM,UAAU,KAAK;AAAA,EAC3B,MAAM,SAAS,IAAI,WAAW,KAAK,SAAS,KAAK;AAAA,EACjD,OAAO,IAAI,IAAI;AAAA,EACf,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IAErC,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,SAAS;AAAA,MAAG;AAAA,IAChB,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,MAEpC,OAAO,IAAI,KAAK,OAAO,IAAI,KAAM,MAAM,IAAI,IAAK,IAAI;AAAA,IACrD;AAAA,EACD;AAAA,EACA,OAAO,OAAO,SAAS,KAAK,MAAM;AAAA;AAGnC,SAAS,UAAU,CAAC,OAAmB,SAA6B;AAAA,EAEnE,OAAO,SAAS,YAAY,aAAa,UAAU;AAAA,EACnD,MAAM,SAAS,UAAU,aAAa;AAAA,EAGtC,MAAM,OAAiB,CAAC;AAAA,EACxB,MAAM,OAAO,CAAC,KAAa,QAAgB;AAAA,IAC1C,SAAS,IAAI,MAAM,EAAG,KAAK,GAAG;AAAA,MAAK,KAAK,KAAM,OAAO,IAAK,CAAC;AAAA;AAAA,EAG5D,KAAK,GAAQ,CAAC;AAAA,EACd,KAAK,MAAM,QAAQ,WAAW,IAAI,IAAI,EAAE;AAAA,EACxC,WAAW,KAAK;AAAA,IAAO,KAAK,GAAG,CAAC;AAAA,EAChC,KAAK,GAAG,CAAC;AAAA,EAGT,OAAO,KAAK,SAAS,MAAM;AAAA,IAAG,KAAK,KAAK,CAAC;AAAA,EAGzC,MAAM,YAAY,IAAI,WAAW,MAAM;AAAA,EACvC,SAAS,IAAI,EAAG,IAAI,QAAQ,KAAK;AAAA,IAChC,IAAI,OAAO;AAAA,IACX,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,MAC3B,MAAM,MAAM,IAAI,IAAI;AAAA,MAEpB,OAAQ,QAAQ,KAAM,MAAM,KAAK,SAAS,KAAK,OAAQ;AAAA,IACxD;AAAA,IACA,UAAU,KAAK;AAAA,EAChB;AAAA,EAGA,IAAI,UAAU;AAAA,EACd,SAAS,IAAI,KAAK,KAAK,KAAK,SAAS,CAAC,EAAG,IAAI,QAAQ,KAAK;AAAA,IACzD,UAAU,KAAK;AAAA,IACf,UAAU,YAAY,MAAO,KAAO;AAAA,EACrC;AAAA,EAGA,MAAM,aAAa,KAAK,MAAM,SAAS,SAAS;AAAA,EAChD,MAAM,aAA2B,CAAC;AAAA,EAClC,MAAM,WAAyB,CAAC;AAAA,EAChC,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,WAAW,KAAK;AAAA,IACnC,MAAM,WAAW,cAAc,IAAI,SAAS,YAAY,IAAI;AAAA,IAC5D,MAAM,QAAQ,UAAU,SAAS,QAAQ,SAAS,QAAQ;AAAA,IAC1D,WAAW,KAAK,KAAK;AAAA,IACrB,SAAS,KAAK,SAAS,OAAO,UAAU,CAAC;AAAA,IACzC,UAAU;AAAA,EACX;AAAA,EAGA,MAAM,SAAmB,CAAC;AAAA,EAC1B,MAAM,aAAa,KAAK,IAAI,GAAG,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAAA,EAC9D,SAAS,IAAI,EAAG,IAAI,YAAY,KAAK;AAAA,IACpC,WAAW,SAAS,YAAY;AAAA,MAE/B,IAAI,IAAI,MAAM;AAAA,QAAQ,OAAO,KAAK,MAAM,EAAG;AAAA,IAC5C;AAAA,EACD;AAAA,EACA,SAAS,IAAI,EAAG,IAAI,YAAY,KAAK;AAAA,IACpC,WAAW,SAAS,UAAU;AAAA,MAE7B,IAAI,IAAI,MAAM;AAAA,QAAQ,OAAO,KAAK,MAAM,EAAG;AAAA,IAC5C;AAAA,EACD;AAAA,EAEA,OAAO,IAAI,WAAW,MAAM;AAAA;AAO7B,SAAS,YAAY,CAAC,MAAsB;AAAA,EAC3C,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,GAAG,MAAM,IAAI,WAAW,IAAI,CAAC;AAAA;AAG/D,SAAS,SAAS,CACjB,GACA,GACA,GACA,KACA,UACC;AAAA,EACD,IAAI,KAAK,KAAK,IAAI,EAAE,UAAU,KAAK,KAAK,IAAI,EAAE,QAAQ;AAAA,IAErD,EAAE,GAAI,KAAK;AAAA,IAEX,SAAS,GAAI,KAAK;AAAA,EACnB;AAAA;AAGD,SAAS,gBAAgB,CAAC,GAAW,GAAW,GAAW,KAAa;AAAA,EACvE,SAAS,KAAK,GAAI,MAAM,GAAG,MAAM;AAAA,IAChC,SAAS,KAAK,GAAI,MAAM,GAAG,MAAM;AAAA,MAChC,MAAM,KAAK,IAAI;AAAA,MACf,MAAM,KAAK,IAAI;AAAA,MACf,IAAI,KAAK,KAAK,MAAM,EAAE,UAAU,KAAK,KAAK,MAAM,EAAE;AAAA,QAAQ;AAAA,MAC1D,MAAM,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AAAA,MACvD,MAAM,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AAAA,MACvD,MAAM,WAAW,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO;AAAA,MAC5D,MAAM,MAAM,WAAY,WAAW,WAAY,IAAI;AAAA,MACnD,UAAU,GAAG,IAAI,IAAI,KAAK,GAAG;AAAA,IAC9B;AAAA,EACD;AAAA;AAGD,SAAS,iBAAiB,CAAC,GAAW,KAAa;AAAA,EAClD,SAAS,IAAI,EAAG,IAAI,EAAE,SAAS,GAAG,KAAK;AAAA,IACtC,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI;AAAA,IAC9B,IAAI,CAAC,IAAI,KAAK;AAAA,MAAI,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,IAC7C,IAAI,CAAC,IAAI,KAAK;AAAA,MAAI,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,EAC9C;AAAA;AAGD,SAAS,aAAa,CAAC,GAAW,KAAa;AAAA,EAG9C,MAAM,MAAM;AAAA,EACZ,MAAM,IAAI,EAAE;AAAA,EACZ,SAAS,IAAI,EAAG,IAAI,IAAI,KAAK;AAAA,IAC5B,MAAM,MAAO,OAAQ,KAAK,IAAM;AAAA,IAEhC,IAAI,IAAI;AAAA,MAAG,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,IACjC,SAAI,MAAM;AAAA,MAAG,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,IACxC,SAAI,MAAM;AAAA,MAAG,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,IACxC,SAAI,MAAM;AAAA,MAAG,UAAU,GAAG,GAAG,GAAG,KAAK,GAAG;AAAA,IACxC;AAAA,gBAAU,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG;AAAA,IAGrC,IAAI,IAAI;AAAA,MAAG,UAAU,GAAG,IAAI,IAAI,GAAG,GAAG,KAAK,GAAG;AAAA,IACzC;AAAA,gBAAU,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,GAAG;AAAA,EAC1C;AAAA,EAEA,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;AAAA;AAG9B,SAAS,SAAS,CAAC,GAAW,KAAa,MAAkB;AAAA,EAC5D,MAAM,IAAI,EAAE;AAAA,EACZ,IAAI,SAAS;AAAA,EACb,MAAM,YAAY,KAAK,SAAS;AAAA,EAEhC,IAAI,MAAM,IAAI;AAAA,EACd,IAAI,SAAS;AAAA,EAEb,OAAO,OAAO,GAAG;AAAA,IAChB,IAAI,QAAQ;AAAA,MAAG;AAAA,IACf,MAAM,OAAO,SACV,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,IAC7C,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AAAA,IAExC,WAAW,OAAO,MAAM;AAAA,MACvB,WAAW,MAAM,CAAC,GAAG,EAAE,GAAG;AAAA,QACzB,MAAM,IAAI,MAAM;AAAA,QAChB,IAAI,IAAI,KAAK,IAAI,OAAO;AAAA,UAAI;AAAA,QAC5B,IAAI,SAAS,WAAW;AAAA,UACvB,MAAM,UAAU,UAAU;AAAA,UAC1B,MAAM,SAAS,KAAK,SAAS;AAAA,UAE7B,MAAM,MAAO,KAAK,YAAa,SAAU;AAAA,UAGzC,EAAE,KAAM,KAAK,QAAQ,MAAM,KAAK,MAAM,IAAI,IAAI;AAAA,UAC9C;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,OAAO;AAAA,IACP,SAAS,CAAC;AAAA,EACX;AAAA;AAGD,SAAS,WAAW,CAAC,SAAiB,WAA+B;AAAA,EACpE,MAAM,IAAI,UAAU,IAAI;AAAA,EACxB,MAAM,IAAI,aAAa,CAAC;AAAA,EACxB,MAAM,MAAM,aAAa,CAAC;AAAA,EAG1B,iBAAiB,GAAG,GAAG,GAAG,GAAG;AAAA,EAC7B,iBAAiB,GAAG,GAAG,IAAI,GAAG,GAAG;AAAA,EACjC,iBAAiB,GAAG,IAAI,GAAG,GAAG,GAAG;AAAA,EAEjC,kBAAkB,GAAG,GAAG;AAAA,EACxB,cAAc,GAAG,GAAG;AAAA,EAGpB,IAAI,WAAW,GAAG;AAAA,IACjB,MAAM,MAAM,CAAC,GAAG,UAAU,IAAI,EAAE;AAAA,IAChC,WAAW,KAAK,KAAK;AAAA,MACpB,WAAW,KAAK,KAAK;AAAA,QAEpB,IAAI,IAAI,KAAK;AAAA,UAAI;AAAA,QACjB,SAAS,KAAK,GAAI,MAAM,GAAG,MAAM;AAAA,UAChC,SAAS,KAAK,GAAI,MAAM,GAAG,MAAM;AAAA,YAChC,MAAM,MACL,KAAK,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,EAAE,MAAM,KAAM,OAAO,KAAK,OAAO,IAC7D,IACA;AAAA,YACJ,UAAU,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG;AAAA,UACtC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UAAU,GAAG,KAAK,SAAS;AAAA,EAC3B,OAAO;AAAA;AAID,SAAS,KAAK,CACpB,MACA,MACS;AAAA,EACT,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,MAAM,QAAQ,MAAM,SAAS;AAAA,EAE7B,MAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EAC3C,MAAM,UAAU,cAAc,MAAM,MAAM;AAAA,EAC1C,MAAM,YAAY,WAAW,OAAO,OAAO;AAAA,EAC3C,MAAM,SAAS,YAAY,SAAS,SAAS;AAAA,EAE7C,MAAM,IAAI,OAAO;AAAA,EACjB,MAAM,QAAQ;AAAA,EACd,MAAM,QAAQ,IAAI,QAAQ;AAAA,EAC1B,MAAM,QAAQ,OAAO;AAAA,EAErB,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC3B,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,MAC3B,IAAI,OAAO,KAAK,IAAI;AAAA,QACnB,MAAM,KAAK,IAAI,SAAS;AAAA,QACxB,MAAM,KAAK,IAAI,SAAS;AAAA,QACxB,SAAS,IAAI,KAAK,KAAK,SAAS,UAAU;AAAA,MAC3C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,wDAAwD,QAAQ,gBAAgB,iBAAiB;AAAA,IACjG,gBAAgB,iBAAiB,eAAe;AAAA,IAChD,YAAY,gBAAgB;AAAA,IAC5B;AAAA,EACD,EAAE,KAAK,EAAE;AAAA;;ACnUV,SAAS,YAAY,CAAC,MAAsB;AAAA,EAC3C,OAAO,KACL,QAAQ,sBAAsB,OAAO,EACrC,QAAQ,yBAAyB,OAAO,EACxC,YAAY;AAAA;AAAA;AAGR,MAAM,kBAAkB,MAAM;AAAA,EAC3B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EAEA,WAAW,CACV,cACA,SACC;AAAA,IACD,MAAM,UAAU;AAAA,MACf;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC7C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,IAAI,SAAS,SAAS;AAAA,MAAW,KAAK,QAAQ,QAAQ;AAAA,IACtD,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,MAQrB,IAAI,GAAW;AAAA,IAClB,OAAO,KAAK,SAAS,aAAa,KAAK,IAAI;AAAA;AAAA,MAGxC,IAAI,CAAC,OAAe;AAAA,IACvB,KAAK,QAAQ;AAAA;AAAA,EAGd,MAAM,GAOJ;AAAA,IACD,OAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,OAAO,KAAK,iBAAiB,QAAQ,KAAK,MAAM,UAAU;AAAA,IAC3D;AAAA;AAEF;;;AC7BO,SAAS,iBAAiB,GAAY;AAAA,EAC5C,OACC,OAAO,WAAW,eAClB,CAAC,EACA,OAAO,kBACP,OAAO,mBACP,OAAO,kBACP,OAAO;AAAA;;;ACnCV,IAAM,WAAW;AAEjB,IAAM,SAAS;AAAA,KACV;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA;AASE,SAAS,SAAS,CAAC,MAAgC;AAAA,EACzD,IAAI,OAAO,aAAa;AAAA,IAAa,OAAO,MAAM;AAAA,EAGlD,SAAS,eAAe,QAAQ,GAAG,OAAO;AAAA,EAE1C,MAAM,UAAU,SAAS,cAAc,KAAK;AAAA,EAC5C,QAAQ,KAAK;AAAA,EAEb,MAAM,QAAQ,SAAS,cAAc,OAAO;AAAA,EAC5C,MAAM,cAAc;AAAA,EACpB,QAAQ,YAAY,KAAK;AAAA,EAEzB,MAAM,MAAM,SAAS,cAAc,KAAK;AAAA,EACxC,IAAI,YAAY;AAAA,EAChB,IAAI,MAAM,WAAW;AAAA,EAGrB,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAAA,EAC7C,MAAM,YAAY;AAAA,EAClB,MAAM,cAAc;AAAA,EACpB,MAAM,UAAU;AAAA,EAChB,IAAI,YAAY,KAAK;AAAA,EAGrB,MAAM,QAAQ,SAAS,cAAc,IAAI;AAAA,EACzC,MAAM,YAAY;AAAA,EAClB,MAAM,cAAc;AAAA,EACpB,IAAI,YAAY,KAAK;AAAA,EAGrB,IAAI,kBAAkB,GAAG;AAAA,IACxB,MAAM,MAAM,SAAS,cAAc,QAAQ;AAAA,IAC3C,IAAI,YAAY;AAAA,IAChB,IAAI,cAAc;AAAA,IAClB,IAAI,UAAU,MAAM;AAAA,MACnB,QAAQ;AAAA,MACR,KAAK,mBAAmB;AAAA;AAAA,IAEzB,IAAI,YAAY,GAAG;AAAA,EACpB;AAAA,EAGA,IAAI,KAAK,OAAO;AAAA,IACf,IAAI,kBAAkB,GAAG;AAAA,MACxB,MAAM,UAAU,SAAS,cAAc,KAAK;AAAA,MAC5C,QAAQ,YAAY;AAAA,MACpB,QAAQ,cAAc;AAAA,MACtB,IAAI,YAAY,OAAO;AAAA,IACxB;AAAA,IAEA,MAAM,KAAK,SAAS,cAAc,KAAK;AAAA,IACvC,GAAG,YAAY;AAAA,IACf,GAAG,YAAY,MAAM,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AAAA,IAC9C,IAAI,YAAY,EAAE;AAAA,EACnB;AAAA,EAEA,QAAQ,YAAY,GAAG;AAAA,EAEvB,QAAQ,UAAU,CAAC,MAAW;AAAA,IAC7B,IAAI,EAAE,WAAW;AAAA,MAAS,QAAQ;AAAA;AAAA,EAGnC,SAAS,KAAK,YAAY,OAAO;AAAA,EAEjC,SAAS,OAAO,GAAG;AAAA,IAClB,QAAQ,OAAO;AAAA,IACf,KAAK,UAAU;AAAA;AAAA,EAGhB,OAAO;AAAA;AAGD,SAAS,SAAS,GAAS;AAAA,EACjC,IAAI,OAAO,aAAa;AAAA,IAAa;AAAA,EACrC,SAAS,eAAe,QAAQ,GAAG,OAAO;AAAA;",
16
+ "debugId": "5660C55B8F249B5B64756E2164756E21",
17
17
  "names": []
18
18
  }